openAI维基百科 openAI维基百科
  • 首页
  • 语言
    • LLaMA
    • ChatGPT
      • 基础教程
      • Prompt训练
      • API编程指南
      • ChatGPT拓展
    • 其它模型
  • 图像
    • 风格化
    • 画质增强
    • 图像识别
    • 视觉交互
    • 扩展填充
  • 绘画
    • Midjourney
    • Stable Diffusion
      • LoRA
      • ControlNet
      • Fooocus
      • ComfyUI
    • 其它模型
  • 音频
    • 人声模拟
    • 音频识别
    • 音频分离
    • 智能编曲
  • 视频
    • AI换脸
    • AI补帧
    • 视频抠图
    • 视频动漫化
    • 文本生成视频
  • 3D
    • 文本生成模型
  • 教程
    • 基础知识
    • 微软AI学习
    • 深度学习笔记
    • 交互式了解AI
  • 问答
  • 资源
首页 › 图像 › 图像识别 › cv_unet_universal-matting|通用抠图

cv_unet_universal-matting|通用抠图

PhiltreX
2 年前
cv_unet_universal-matting|通用抠图-openAI维基百科
原图
cv_unet_universal-matting|通用抠图-openAI维基百科
抠图

cv_unet_universal-matting通用万物抠图模型

通用抠图对输入图像中的主体进行抠图处理,支持商品、人物、动物、植物、汽车等等,无需任何额外输入,实现端到端通用万物抠图,输出四通道抠图结果。

人像抠图建议

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

cv_unet_image-matting|人像抠图
cv_unet_universal-matting|通用抠图-openAI维基百科
原图
cv_unet_universal-matting|通用抠图-openAI维基百科
cv_effnetv2_video-human-matting
cv_unet_universal-matting|通用抠图-openAI维基百科
cv_unet_universal-matting

模型描述

模型分为粗分割和精细抠图两个子网络,将抠图复杂问题拆解,先粗分割再精细化分割,两部分网络均为unet结构。粗分割网络从输入图片预测粗语义分割mask,精细分割网络基于原图和粗语义分割mask预测精细的抠图结果。

期望模型使用方式以及适用范围

使用方式:

  • 直接推理,输入图像直接进行推理

使用范围:

  • 适合含有主题的图像分割,期望图像中主体占比不要过小
  • 在分辨率小于2000×2000图像上可取得期望效果

目标场景:

  • 需要图像抠图的场景,如换背景等

部署教程

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

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

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

if not exist D:\openai.wiki\cv_unet_universal-matting mkdir D:\openai.wiki\cv_unet_universal-matting

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

cd /d D:\openai.wiki\cv_unet_universal-matting

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

Anaconda|Miniconda

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

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

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

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

conda init cmd.exe

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

conda activate D:\openai.wiki\cv_unet_universal-matting\ENV

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

pip install modelscope

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

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

关于tensorflow的安装,支持CPU和GPU双版本,以下两行代码选择其中一个执行安装即可。

如果你想用CPU来计算,请复制第一行内容执行。如果你想用GPU来计算,请复制第二行内容执行。

pip install --upgrade tensorflow
pip install --upgrade tensorflow-gpu

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

pip install opencv-python

执行如下命令,卸载较新的protobuf版本依赖库。

pip uninstall protobuf

执行如下命令,安装3.20.0版本的protobuf依赖库。

pip install --force-reinstall protobuf==3.20.0

使用教程

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

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

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

注意:请自行输入名称(resultIMGName)为自己的图像文件名称,然后再执行,否则会报错。

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

import cv2
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.outputs import OutputKeys

# 原图名称
resultIMGName = 'openai.wiki'
# 原图格式
resultIMGFormat = '.jpg'
# 原图路径
resultIMGPath = 'D:\openai.wiki\cv_unet_universal-matting'
# 输出图像名称
outputIMGName = 'openai.wiki'
# 输出格式 | 尽量不要改
outputFormat = '.png'
# 输出路径
outputIMGPath = 'D:\openai.wiki\cv_unet_universal-matting'

print (('原图路径:%s/%s%s'%(resultIMGPath,resultIMGName,resultIMGFormat)).replace('\\', '/'))
print (('输出路径:%s/%s%s'%(outputIMGPath,outputIMGName,resultIMGFormat)).replace('\\', '/'))
universal_matting = pipeline(Tasks.universal_matting,model='damo/cv_unet_universal-matting')
result = universal_matting(('%s/%s%s'%(resultIMGPath,resultIMGName,resultIMGFormat)).replace('\\', '/'))
cv2.imwrite((('%s/%s%s'%(outputIMGPath,outputIMGName,resultIMGFormat)).replace('\\', '/')), result[OutputKeys.OUTPUT_IMG])
print ('输出完成')

效果展示

原图较为模糊的抠图效果如下:

cv_unet_universal-matting|通用抠图-openAI维基百科
原图
cv_unet_universal-matting|通用抠图-openAI维基百科
抠图
cv_unet_universal-matting|通用抠图-openAI维基百科
原图
cv_unet_universal-matting|通用抠图-openAI维基百科
抠图

原图较为清晰的抠图效果如下:

cv_unet_universal-matting|通用抠图-openAI维基百科
原图
cv_unet_universal-matting|通用抠图-openAI维基百科
抠图

模型局限性以及可能的偏差

  • 模型训练数据有限,部分非常规图像或者主体占比过小可能会影响抠图效果。
  • 在分辨率小于2000×2000图像上可取得期望效果,分辨率过大可能出现分割后边缘有模糊

训练数据介绍

  • 训练数据从公开数据集(COCO等)、互联网搜索图像,并进行标注作为训练数据
  • 通过将前景粘贴到不同背景图上,生成总共约200000张训练数据
智能抠图
1
2
Cycle-CenterNet|表格结构识别
上一篇
cv_hrnetocr_skychange|天空图像替换
下一篇

评论 (2)

取消
  • Tia

    直接用remove.bg 抠的很好还方便,可惜就是限制了png的大小,可以再用ai工具放大下

    2 年前 湖南省 回复
    • PhiltreX

      @Tia 的确是挺方便的,但是毕竟要上传自己的数据到别人的服务器上哈,安全性无法评估呢。

      2 年前 浙江省 回复

猜你喜欢

  • mPLUG|图像中文描述
  • CV_ORC-Text-Spotting|多场景文字ORC识别
  • Segment-Anything|万物分割

论坛公告

为方便大家交流,交换资源等。

本站论坛限量开放注册中,免费答疑。

欢迎大家踊跃注册,关闭注册时间待定。

论坛地址:https://bbs.openai.wiki

增值服务

本站无广告|无会员|免注册

  1. 提供有偿远程帮助服务
  2. 提供POE会员代充代售
  3. 提供ChatGPT代充代售
  4. 提供Midjourney代充服务

商务合作

关于合作请点此联系

  • 首页
  • 语言
  • 图像
  • 绘画
  • 音频
  • 视频
  • 3D
  • 教程
  • 问答
  • 资源
Copyright © 20221212-2025 openAI维基百科. Designed by nicetheme. 京公网安备 11010502051430号 京ICP备2021019752号-5
  • 首页
  • 语言
    • LLaMA
    • ChatGPT
      • 基础教程
      • Prompt训练
      • API编程指南
      • ChatGPT拓展
    • 其它模型
  • 图像
    • 风格化
    • 画质增强
    • 图像识别
    • 视觉交互
    • 扩展填充
  • 绘画
    • Midjourney
    • Stable Diffusion
      • LoRA
      • ControlNet
      • Fooocus
      • ComfyUI
    • 其它模型
  • 音频
    • 人声模拟
    • 音频识别
    • 音频分离
    • 智能编曲
  • 视频
    • AI换脸
    • AI补帧
    • 视频抠图
    • 视频动漫化
    • 文本生成视频
  • 3D
    • 文本生成模型
  • 教程
    • 基础知识
    • 微软AI学习
    • 深度学习笔记
    • 交互式了解AI
  • 问答
  • 资源