头像/证件照抠图与圣诞背景替换

Posted 冰不语

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了头像/证件照抠图与圣诞背景替换相关的知识,希望对你有一定的参考价值。

CVPy抠图系列文章继续。

1. 头像/证件照抠图

之前已经有过《一键智能抠图》、《【CV派】新玩法——AI一键抠图+素描》、《一键动物抠图,毛发毕现——人是不是动物?》、《如何从头训练一个一键抠图模型》几篇文章。

之前的抠图模型是一个通用模型,任何物体都可以抠。但是正如在《如何从头训练一个一键抠图模型》文章结尾笔者提到的,边缘特别是人物头发处的抠图效果还有待提高:

上面的抠图效果还是有待提高,比如头发等边缘处,还是可见部分背景未分离。前几天刚转发了动物抠图的新论文,边缘和毛发的抠图效果很赞。其单开一条支路专门做轮廓边缘处的抠图的思路值得参考。

不过,作者暂时开源了测试代码,并没有训练代码。我昨晚肝到十二点半,终于根据论文实现了一版训练代码,但是貌似收敛的更慢,这个优化还是慢慢来吧。就这训练速度,想快也快不起来啊。反正就是玩,好玩就行。

来个示例图应该就很清楚了:


注意看右图的头发部分,可以看到头发部分抠图还是有些微背景分离不太完全,虽然只是很微小的一部分,但是对于想要换背景做证件照的人来说,这个效果其实是不可接受的。

为此,笔者专门针对头像抠图优化了一版模型,特别是针对头发部分,参考最近两年的抠图论文,重新设计了损失函数,并在十万量级的头像抠图数据集做实验调参,经过近一个月的实验和训练,终于训练出一个专门针对头像抠图的模型。

还是上面这张头像图片,在新模型下的效果如下:


**再仔细看看头发部分的抠图,是不是就顺眼多了。**其实这个图头发边缘的位置仍然有些白色背景,但是不放大仔细看已经不显眼了。

下面是一张纯头发部分的图片。


再来一张长发飘飘的图片。为了能够展现抠图模型的效果,我同时展示模型输出的Alpha,图下图的中间子图所示。


其实对于头像抠图来说,其中的两个难点如下:

  1. 头发等边缘细节抠图不精细
  2. 闭合边缘里的背景容易被判为前景

以上三张图可以看到,新模型对这两种难点都处理的很好。

2. 圣诞背景替换

有了以上的抠图模型,做背景替换就很简单了。背景替换可以用以下公式来描述:

Img2 = Img * Mask + Bg * (1 - Mask)

笔者掐指一算,圣诞节即将来临。鉴于给头像带圣诞帽已经是好几年前就玩过的了。那就趁着头像抠图再玩一把圣诞替换吧。

看几张替换之后的效果图吧:


没有找到更好看的背景图我很抱歉,如果谁有更好看的圣诞风格背景图,希望能联系我一下~


最后,仍然是可以自己去玩CVPy网站上体验效果。

网址:CV-Studio (cvpy.net)

或者通过公众号下方的菜单,移动端访问也是支持的。

以上是关于头像/证件照抠图与圣诞背景替换的主要内容,如果未能解决你的问题,请参考以下文章

[数字媒体] Photoshop基础之图像校正抠图(证件照)和融合

[数字媒体] Photoshop基础之图像校正抠图(证件照)和融合

GIMP 抠图/证件照背景色

OpenCV——证件照自动抠图

PS证件照换背景

常见的几种抠图方式?