头像/证件照抠图与圣诞背景替换
Posted 冰不语
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了头像/证件照抠图与圣诞背景替换相关的知识,希望对你有一定的参考价值。
CVPy抠图系列文章继续。
1. 头像/证件照抠图
之前已经有过《一键智能抠图》、《【CV派】新玩法——AI一键抠图+素描》、《一键动物抠图,毛发毕现——人是不是动物?》、《如何从头训练一个一键抠图模型》几篇文章。
之前的抠图模型是一个通用模型,任何物体都可以抠。但是正如在《如何从头训练一个一键抠图模型》文章结尾笔者提到的,边缘特别是人物头发处的抠图效果还有待提高:
上面的抠图效果还是有待提高,比如头发等边缘处,还是可见部分背景未分离。前几天刚转发了动物抠图的新论文,边缘和毛发的抠图效果很赞。其单开一条支路专门做轮廓边缘处的抠图的思路值得参考。
不过,作者暂时开源了测试代码,并没有训练代码。我昨晚肝到十二点半,终于根据论文实现了一版训练代码,但是貌似收敛的更慢,这个优化还是慢慢来吧。就这训练速度,想快也快不起来啊。反正就是玩,好玩就行。
来个示例图应该就很清楚了:
注意看右图的头发部分,可以看到头发部分抠图还是有些微背景分离不太完全,虽然只是很微小的一部分,但是对于想要换背景做证件照的人来说,这个效果其实是不可接受的。
为此,笔者专门针对头像抠图优化了一版模型,特别是针对头发部分,参考最近两年的抠图论文,重新设计了损失函数,并在十万量级的头像抠图数据集做实验调参,经过近一个月的实验和训练,终于训练出一个专门针对头像抠图的模型。
还是上面这张头像图片,在新模型下的效果如下:
**再仔细看看头发部分的抠图,是不是就顺眼多了。**其实这个图头发边缘的位置仍然有些白色背景,但是不放大仔细看已经不显眼了。
下面是一张纯头发部分的图片。
再来一张长发飘飘的图片。为了能够展现抠图模型的效果,我同时展示模型输出的Alpha,图下图的中间子图所示。
其实对于头像抠图来说,其中的两个难点如下:
- 头发等边缘细节抠图不精细
- 闭合边缘里的背景容易被判为前景
以上三张图可以看到,新模型对这两种难点都处理的很好。
2. 圣诞背景替换
有了以上的抠图模型,做背景替换就很简单了。背景替换可以用以下公式来描述:
Img2 = Img * Mask + Bg * (1 - Mask)
笔者掐指一算,圣诞节即将来临。鉴于给头像带圣诞帽已经是好几年前就玩过的了。那就趁着头像抠图再玩一把圣诞替换吧。
看几张替换之后的效果图吧:
没有找到更好看的背景图我很抱歉,如果谁有更好看的圣诞风格背景图,希望能联系我一下~
最后,仍然是可以自己去玩CVPy网站上体验效果。
或者通过公众号下方的菜单,移动端访问也是支持的。
以上是关于头像/证件照抠图与圣诞背景替换的主要内容,如果未能解决你的问题,请参考以下文章
[数字媒体] Photoshop基础之图像校正抠图(证件照)和融合