乐趣区

关于人工智能:AI自助帮你换背景超强实时人像扣图算法开源啦

谈到人像抠图想必大家都不生疏。在影视剪辑、直播娱乐、线上教学、视频会议等场景中都有人像宰割的身影,它能够帮忙用户实时、精准地将人物和背景精准辨认进去,实现更精细化的人物美颜、背景虚化替换、弹幕穿人等,进一步晋升视觉利用体验。

高精度的实时人像抠图模型始终是学术和产业界钻研的重点,为此 PaddleSeg 团队开源了多场景笼罩的 PP-HumanSeg 人像系列模型:

  • PP-HumanSeg 提供了 3 个高精度的人像宰割模型:

    有利用于服务端 GPU 部署的 PP-HumanSegl 模型,有实用于挪动端的轻量 PP-HumanSegm 模型,还有可能在浏览器部署的超轻量模型 PP-HumanSegs 模型。

  • 提供了欠缺的服务端、挪动端、Web 端部署文档,尤其是 Web 端提供了产业级的实时人像宰割解决方案。

近期“百度视频会议”也上线虚构背景性能,反对用户在视频会议时进行人像背景切换。这个性能正是基于 PP-HumanSeg 提供的超轻量的 PP-HumanSegs 来实现。通过 Padddle.js 实现了在 Web 端部署,间接利用浏览器的算力进行实时人像抠图,成果受到统一好评!

模型性能如此之好,是不是急不可待地想晓得如何实现的?

大规模数据合成和数据加强

在训练集里有各种比例的图片,有横屏的,有竖屏的。如果间接应用缩放变形等数据加强形式,会间接导致形变失真,反而不会晋升精度。针对此类问题,采纳维持图像纵横比缩放、Padding 补齐等形式缩放图像达到原图比例。通过这些形式解决后图像不会失真,训练精度也失去了晋升。

针对人像标注样本少的问题,应用标注信息和背景图合成的形式进行数据生成,数据量的裁减晋升了模型的精度。

轻量级网络设计形式

对于挪动端和网页端的人像宰割,一个高效的轻量级网络必不可少,在这里为大家总结了一些轻量化要害设计办法。

要害一:深度可拆散卷积

深度可拆散卷积是一种卷积合成形式,将一般卷积合成为 Depthwise Convolution 和 Pointwise Convolution,次要目标是缩小计算量和参数量,此形式已被广泛应用在轻量级卷积网络中。

要害二:Channel Shuffle(通道洗牌)

在深度可拆散卷积中用到的 Depthwise Convolution 会将所有的 channel 分组,每个 channel 分为一组,这就导致组与组之间无信息替换。Channel Shuffle 通过对 group convolution 之后的特色图进行“重组”,能够保障接下了采纳的 group convolution 输出来自不同的组,因而信息能够在不同组之间流转。

要害三:Skip-connection(跳跃连贯)

对于宰割工作,空间域信息十分重要。支流的宰割网络均采纳 encoder-decoder 构造。网络的 encoder 局部通过下采样层把特色图分辨率降得十分小,这一点不利于准确的宰割 mask 生成,通过 skip-connection 跨层连贯编码器和解码器,更利于生成精密的 mask。Skip-connection 间接复用 encoder 的特色,简直不减少计算量,性价比十分之高!

要害四:上采样办法

Decoder 的次要目标是将低分辨率信息的特色复原到高分辨率。为了实现这个目标就须要上采样。罕用的上采样形式有四类:转置卷积、反池化、插值、亚像素卷积。

当应用转置卷积进行上采样的时候,容易呈现棋盘效应(左图肩膀处)。开发团队为均衡计算量、显存占用和成果,最终采纳深度可拆散卷积 + 双线性插值,在放弃高效计算的同时解决了棋盘效应问题。

综合思考上述四个要害,开发团队设计了 Web 端超轻量级模型 PP-HumanSegs。

优化损失函数解决类别不平衡

人像在整张图片中所占的比例往往较小,存在前景背景类别占比不平衡的问题。罕用的 Cross Entropy Loss 会偏心解决正负样本,当呈现正样本占比拟小时,就会被更多的负样本吞没。通过扭转损失函数,应用 Lovasz loss 来升高正负样本不平衡的问题。

光流后处理优化

视频宰割存在一个问题:视频帧间不连贯,边缘局部闪动重大,为此研发团队利用时序信息联合光流法,对宰割后果进行优化。采纳光流解决办法,将光流预测后果与宰割后果进行交融,这样就能够参考上一帧的静止信息,使得前后帧变换绝对更加稳固,缩小边缘的闪动。

             原图 (左)     未加光流成果 (中)     加光流成果 (右)   

心动不如口头,大家能够间接返回 Github 地址取得残缺开源我的项目代码,记得 Star 珍藏反对一下哦:

https://github.com/PaddlePadd…

百度 AI 开发者社区 https://ai.baidu.com/forum,为全国各地开发者提供一个交换、分享、答疑解惑的平台,让开发者在研发路上不再“孤军奋战”,通过一直地交换与探讨找出更好的技术解决方案。如果你想尝试各种人工智能技术、开辟利用场景,赶快退出百度 AI 社区,你对 AI 的所有畅想,在这里都能够实现!

扫描下方二维码,增加小助手微信「京东卡、小度定制周边、神秘礼盒、行李箱」等更多福利你来拿~

退出移动版