cv_hrnetocr_skychange|天空图像替换

cv_hrnetocr_skychange是一个基于hrnet-ocr框架的天空图像替换模型,可实现换天算法,自动获取天空区域的alpha图,并利用融合算法将原天空进行替换,从而改变原图的天空样式。

cv_hrnetocr_skychange|天空图像替换模型

换天算法是计算机视觉的经典任务之一,也是image sky matting的应用之一。输入一张原图A以及一张参考图B,换天算法会得到两张图片对应的天空区域的alpha图(alpha属于软分割,与硬分割mask不同,mask将视频分为前景与背景,取值为0或1,而alpha的取值范围是0到1之间,数值代表透明度,因此alpha比mask更为精细) 换天算法利用A和B图对应的天空区域alpha图,配合融合算法,将参考图B的天空样式替换到原图A中,从而改变原图A的天空样式,实现换天功能。

模型结构介绍

该模型由三大部分构成:低分辨率处理模块,高分辨率处理模块和换天模块;

其中低分辨率处理模块的backbone是基于hrnet-ocr框架实现的,采用了w18v2的版本,为了实现更好的效果,我们对原网络模块进行了一定修改,主要添加了自设计的super模块以及ASPP模块,扩大了感受野,重新进行分割训练,这部分的结果作为高分辨率处理模块的输入; 高分辨率处理模块基于UNET,实现对低分辨率后超分至原有分辨率,该层具有可学习参数,效果远优于直接上采样效果; 换天模块基于Multiband blender 图像拼缝技术实现;

使用方式和范围

使用方式:

  • 支持GPU/CPU推理,在任意两张包含天空的图片上进行直接推理和换天操作。

使用范围:

  • 包含天空区域的图片(3通道RGB图像,支持PNG、JPG、JPEG格式),图像分辨率建议小于5000×5000,低质图像建议预先增强处理。

目标场景:

  • 艺术创作、社交娱乐。

抠像建议

人物抠像

如果您想对人像抠图查看以下文章,因为您目前所浏览的模型仅对天空检测支持较好,对人物的抠图效果较差。

物体抠像

如果您想对物体抠图查看以下文章,因为您目前所浏览的模型仅对天空检测支持较好,对物体的抠图效果较差。

视频抠像

如果您想对视频抠图查看以下文章,因为您目前所浏览的模型仅对天空检测支持较好,对视频的抠图效果较差。

部署教程

如果您是初学者,对于命令行不太理解,那么请按下键盘上的Win键+R键后,在弹出的新窗口内输入CMD并按下回车,打开CMD窗口,按顺序执行如下的每一条命令。

首先我们需要确认一个工作目录,用来存放cv_hrnetocr_skychange的相关环境依赖文件。本站所选择的目录为D盘的根目录下openai.wiki文件夹,完整路径为:D:\openai.wiki\cv_hrnetocr_skychange

检测D盘是否在openai.wiki目录下有没有cv_hrnetocr_skychange文件夹,没有则创建该文件夹。

if not exist D:\openai.wiki\cv_hrnetocr_skychange mkdir D:\openai.wiki\cv_hrnetocr_skychange

强制切换工作路径为D盘的openai.wiki\cv_hrnetocr_skychange文件夹。

cd /d D:\openai.wiki\cv_hrnetocr_skychange

为不影响电脑中的现有环境,请一定要安装Conda,如果您不知道什么是Conda,或者未安装过Conda,请参考如下文章,安装部署Conda之后再继续以下步骤。

在CMD中执行下面的命令行,创建Conda虚拟环境至该项目的目录中,方便日后重装系统也能够正常使用,无需重新部署环境。

conda create -p D:\openai.wiki\cv_hrnetocr_skychange\ENV python=3.7

执行完成上面的命令之后,将会在CMD窗口中看到Proceed ([y]/n)?提示,我们直接按下回车即可。

初始化Conda环境,避免后续可能报错。

conda init cmd.exe

激活已创建的Conda环境,这样我们可以将我们后续所需要的所有环境依赖都安装至此环境下。

conda activate D:\openai.wiki\cv_hrnetocr_skychange\ENV

执行如下命令,安装阿里达摩院相关依赖。

pip install modelscope

执行如下命令,安装torch依赖。

pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

执行如下命令,安装CV2依赖库。

pip install opencv-python

使用教程

推荐下载VS Code代码编辑器,然后在代码编辑器器内新建一个Python文件,粘贴如下代码,在代码编辑器的右下角选择Python环境为D:\openai.wiki\cv_hrnetocr_skychange\ENV

默认情况下,使用该方式将会仅输出视频的黑白遮罩,如果您会使用PhotoShop或After Effects等软件,那么您肯定会了解遮罩的作用是什么,您可以理解为这个遮罩层的白色为保留区域,黑色删除的部分。

该模型官方并未给了示例,本站已经帮您写好了相关的代码,复制粘贴即可使用。

注意:请自行输入输出路径和图片名称,然后再执行如下代码,否则会报错。

# 此脚本由openai.wiki提供,转载请注明出处,谢谢配合。

import cv2
import os.path as osp
import modelscope
from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.pipelines.base import Pipeline
from modelscope.utils.constant import Tasks

# 被更改天空的图片路径
scene_IMG = 'D:/openai.wiki/cv_hrnetocr_skychange/openAI_wki.jpg'

# 参考的天空图片路径
input_SkyIMG = 'D:/openai.wiki/cv_hrnetocr_skychange/openAI_wki_Sky.jpg'

# 合成输出图片路径
output_SkyIMG = 'D:/openai.wiki/cv_hrnetocr_skychange/openAI_wki_F.jpg'



image_skychange = pipeline(Tasks.image_skychange, 
                       model='damo/cv_hrnetocr_skychange')
result = image_skychange({'sky_image':input_SkyIMG,
                                   'scene_image':scene_IMG})
cv2.imwrite(output_SkyIMG, result[OutputKeys.OUTPUT_IMG])
print(f'Output written to {osp.abspath(output_SkyIMG)}')

效果展示

远山做为场景输入+城市天空=最终效果

城市做为场景输入+远山天空=最终效果

此文章由OpenAI开源维基百科原创发布,如若转载请注明出处:https://openai.wiki/cv_hrnetocr_skychange.html

(0)
上一篇 2023-04-08 16:46
下一篇 2023-04-09 15:26

相关推荐

  • mPLUG|图像中文描述

    AI根据图片信息生成对应描述自动图像Tag标签,mplug_image-captioning_coco_base_zh模型是生成多模态的基础,基于skip-connections高效跨模态融合框架。

    2023-07-09
    021.2K
  • Cycle-CenterNet|表格结构识别

    Cycle-CenterNet表格结构识别模型是一种基于深度学习技术的图像处理模型,用于图中表格单元格拼接后的物理坐标的输出,具体输出的是单元格的四个角点的坐标,按照顺时针的顺序依次输出各个点的坐标。

    2023-04-07
    052.6K
  • cv_unet_universal-matting|通用抠图

    cv_unet_universal-matting可以对包括人、物、植物、车辆等在内的多种物体进行抠图处理,无需额外输入。该模型基于粗分割和精细抠图两个子网络实现,具有较好的抠图效果。

    2023-04-08
    021.9K
  • CV_ORC-Text-Spotting|多场景文字ORC识别

    CV_ORC-Text-Spotting是一个多场景文字识别模型,可用于提取图片中的文字并输出对应字符串。该模型可适用于多种场景的文字识别,包括手写、自然、车牌和文档印刷,并提供了相应的文本检测模型。

    2023-04-12
    001.7K
  • Segment-Anything|万物分割

    分割任何物体(Segment Anything Model),可输入提示生成高质量的对象掩码,用于图像中所有对象的分割任务。该模型有望取代传统的OpenCV,成为未来图像分割抠图领域的主流模型。

    2023-04-10
    0154.5K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

微信