社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【深度学习】MODNET:基于深度学习的抠图工具,已开源

机器学习初学者 • 1 年前 • 339 次点击  

对于抠图(matting)大家可能不太熟悉,但我说几个功能,你定用过,微信视频通话中的背景虚化功能,B站视频播放过程中的弹幕蒙版,直播过程中的背景替换,它们背后的技术原理都与抠图有着密切的关系。

什么是抠图?

抠图(Matting)是一种图像处理技术,它的目标是从图像中准确地提取出前景对象,并将其与背景进行分离。抠图的结果是一个具有透明度通道的图像,其中前景对象的像素值表示其在合成或叠加时应具有的透明度。

抠图的主要挑战在于处理前景对象与背景之间的复杂边界和细节,特别是在存在复杂的前景边缘和半透明区域的情况下。传统的抠图方法通常需要用户提供额外的输入,如剪贴路径(trimap)或用户交互,以帮助确定前景和背景的边界。然而,近年来,许多基于计算机视觉和深度学习的方法已经提出,旨在实现自动化和精确的抠图,而无需人工干预。

抠图的应用非常广泛,包括图像合成、虚化背景、物体分割、人像编辑、特效制作以及增强现实等领域。它为图像处理和计算机视觉任务提供了重要的先决步骤,使得可以从复杂的场景中准确地提取出感兴趣的前景对象,并将其与不同的背景进行组合和合成。

抠图与图像分割的区别

看完前面对抠图的定义,大家可能觉得这不就是图像分割吗?其实,两者是有区别的,分割的结果是像素分类标签,是整数,而抠图的结果是像素属于前景或者背景的概率。如果使用分割的结果提取前景图像,前景背景的边界没有过渡,会显得过于泾渭分明。

MODNET模型简介

论文地址:https://arxiv.org/pdf/2011.11961.pdf官方源码:https://github.com/ZHKKKe/MODNet

模型的输出matte是与原始图像image大小一致的单通道矩阵,矩阵的每一个元素代表该像素属于前景的概率,接下来就可以通过matte来提取前景图像了。

foreground = image * matte + np.full(image.shape, 255) * (1 - matte)

Matting Tool抠图工具功能展示

Matting Tool将官方发布的pytorch格式预训练模型转换为ONNX格式,然后使用ONNXRuntime for .Net进行推理,采用WPF进行用户交互和效果展示。

源码:https://github.com/AIDajiangtang/MODNET-Matting-tool

安装包以及模型文件:公众号后台回复【mat】获取下载链接

软件支持导入本地图像,可以替换背景为纯色或者其他图像。

除了支持本地图像还支持截图和剪切板。

除了图像外,还支持导入视频,由于视频需要处理,所以为了高效率,目前Fps设置为2,也就是每秒2帧。




    
往期精彩回顾




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/161429
 
339 次点击