欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

神奇的 Animal Matting 算法,毛发抠图不是事。

程序员文章站 2024-02-19 22:33:52
...

一、前言

抠图是个体力活。

抠图最难的,就是处理毛发。

想没想过,有一天,算法直接帮你自动抠图?细致到毛发的那种!

神奇的 Animal Matting 算法,毛发抠图不是事。

毛发的分割都不是问题

新鲜热乎刚出炉的 Image Matting 算法,你值得拥有。

老规矩,今天,继续手把手教学。

算法原理、环境搭建、效果实现,一条龙服务,尽在下文!

二、Animal Matting

抠图问题的核心是精确地将图像或视频中的前景估计出来,对图像编辑,影片剪辑等都有很深的意义。

最新发表的论文 End-to-end Animal Image Matting ,只需要一张图,无需任何先验知识,即可实现端到端的抠图,效果非常惊艳

论文提出了一个名为 GFM 的抠图模型,该模型可同时生成全局语义分割和局部 alpha mask。

同时,论文也开源了第一个自然动物图像抠像数据集 AM-2k,并设计了基于高分辨率背景数据集 BG-20k 的 RSSN 合成数据方法。

GFM 网络结构如下:

神奇的 Animal Matting 算法,毛发抠图不是事。

网络结构:是一个编码解码器的结构,编码器由两个平行的解码器共享。

被共享的编码器:以在 ImageNet 上预训练的 ResNet-34 或 DenseNet-121 作为编码器。

Glance Decoder(GD): 用于学习高层语义信息。在编码器的第四个模块之后,加入金字塔池化模块(PPM)输出全局上下文,用于GD中。

Focus Decoder (FD):用于在低结构特征中提取细节。在编码器的第四个模块之后,加入桥联模块(BB)收敛不同域中的局部上下文。并结合U-net,将 FD 与编码器的对应模块进行跳跃连接,训练 FD。

最后,以不同的表征域,连接 GD 和 FD 的输出结果。

GFM-TT:以真实 alpha 掩摸膨胀和腐蚀的 3 类 trimap T 作为 GD 监督信号、以未知过渡域的 alpha 掩摸作为 FD 监督信号。

GFM-FT:以 2 类前景分割 mask 作为 GD 的监督信号、以未知过渡域的 alpha 掩膜作为 FD 监督信号。

GFM-BT:以 2 类背景分割 mask 作为 GD 的监督信号、以未知过渡域的 alpha 掩膜作为 FD 监督信号。

最后,通过协同合作抠图(CM),将上述三个不同的表征域的结果,进行合并,获得最终的 alpha 预测。

更详细的内容,可以直接看 paper:

论文地址:https://arxiv.org/pdf/2010.16188.pdf

三、效果测试

Github 项目地址:https://github.com/JizhiziLi/animal-matting

第一步:搭建测试环境。

根据 Requirements.txt 安装依赖库即可,很简单。

神奇的 Animal Matting 算法,毛发抠图不是事。

第二步:下载训练好的模型权重文件。

下载地址(需*):点击查看

第三步:在工程目录,运行程序。

python ./core/test_samples.py --cuda --arch="e2e_resnet34_2b_gfm_tt" --model_path="models/model_r34_2b_gfm_tt.pth" --pred_choice=3 --hybrid

samples 目录下的 original 目录保存原始图片;

samples 目录下的 result_alpha 目录保存分割 mask ;

samples 目录下的 result_color 目录保存提取结果。

我将程序和权重文件都进行了打包,嫌麻烦,可以下载直接使用。

下载地址(提取码:s6uh ):

https://pan.baidu.com/s/1xjBbj3iptZuPV8nlg9Dthw

运行效果:

神奇的 Animal Matting 算法,毛发抠图不是事。

运行速度很快,运行效果展示:

神奇的 Animal Matting 算法,毛发抠图不是事。

四、最后

算法只针对动物,想对人进行抠图,需要自己制作数据集以及训练模型。

文章持续更新,可以微信公众号搜索【JackCui-AI】第一时间阅读,本文 GitHub https://github.com/Jack-Cherish/PythonPark 已经收录,有大厂面试完整考点,欢迎Star。