快捷搜索:  汽车  科技

用这个模板记录爱豆造型:天啦噜 在家和爱豆玩 剪刀石头布

用这个模板记录爱豆造型:天啦噜 在家和爱豆玩 剪刀石头布图像语义分割任务(Semantic Segmentation)根据物体的不同类别进行像素级别的标记。针对人这个特殊的类别,Human Parsing将人的各个部位(脸部/头发/四肢等)进行像素级别的区分。我们分别从数据、模型、框架优化三面着手,整体提升分割效果和体验。二. 人像语义切割端上互动用到的手势识别、POSE检测、人像语义切割等能力,涉及计算机视觉分类、检测、语义切割几个核心问题。随着这几年深度学习的发展,目前这些任务比较好的解法都是基于深度学习方法。我们的业务场景(手淘)要求模型一般能够大规模部署到手机和低性能的嵌入式设备上。这些任务尽管解决的Pipeline不一样,都会面临一个共性的问题:设计一个面向低性能平台的轻量级高效神经网络,并且能在 cpu、gpu、dsp等混合环境有高效的实现部署、运行,让网络在保持不错的性能下,尽量降低计算代价和带宽需求。在神经网络加速方面,目前业界

下面是基于实时人体关键点检测的《西虹市首富》宣发互动玩法:

用这个模板记录爱豆造型:天啦噜 在家和爱豆玩 剪刀石头布(1)

下面是和“黄小鹿”互动大屏在线下商场部署的“明星合图”活动:用户通过在大屏上自拍,经过人像切割后跟明星合照,用手淘扫码导流到线上关注店铺,完成照片打印。

用这个模板记录爱豆造型:天啦噜 在家和爱豆玩 剪刀石头布(2)

为了打造AliPlayStudio视频互动平台,我们从基础图像算法能力到系统层面的端上模型推理加速、客户端native实现(视频、图片,Camera多输入源渲染)、H5玩法模块化等,做了大量研发工作。

本文主要介绍图像算法这块的研发工作。

端上互动用到的手势识别、POSE检测、人像语义切割等能力,涉及计算机视觉分类、检测、语义切割几个核心问题。随着这几年深度学习的发展,目前这些任务比较好的解法都是基于深度学习方法。我们的业务场景(手淘)要求模型一般能够大规模部署到手机和低性能的嵌入式设备上。这些任务尽管解决的Pipeline不一样,都会面临一个共性的问题:设计一个面向低性能平台的轻量级高效神经网络,并且能在 cpu、gpu、dsp等混合环境有高效的实现部署、运行,让网络在保持不错的性能下,尽量降低计算代价和带宽需求。

在神经网络加速方面,目前业界常用的一些方法有网络减支和参数共享、网络量化、知识蒸馏以及模型结构优化等。关于剪枝方面的研究在大模型上做的比较多,效果也比较好。但是我们模型的backbone一般是采用MobileNet/ShuffleNet这类很小的网络,剪枝在小网络上精度损失比较大,加速收益比不高。目前我们主要采用模型结构优化和知识蒸馏来提升网络性能。

我们研发的视觉互动基础算法能力中,人脸识别、人脸关键点检测,用户年龄性别预测等是已经有较好解决方案的任务,人像语义切割、手势识别、人体关键点识别、图像风格化、人脸融合这几个目前业界还没有成熟方案的任务。我们的工作重点也主要投入在后面几个任务上。

二. 人像语义切割

图像语义分割任务(Semantic Segmentation)根据物体的不同类别进行像素级别的标记。针对人这个特殊的类别,Human Parsing将人的各个部位(脸部/头发/四肢等)进行像素级别的区分。我们分别从数据、模型、框架优化三面着手,整体提升分割效果和体验。

用这个模板记录爱豆造型:天啦噜 在家和爱豆玩 剪刀石头布(3)

在数据层面,语义切割的样本标注非常贵,我们通过图片合成创造更多样本。为了模拟真实的数据分布,分别采用了颜色迁移算法调整前背景光照、通过人位置的分布统计将人贴到合理的位置。通过人工合成高质量的数据,我们能够获得相比原来数十倍的分割样本。

在模型层面,我们分别针对图片分割场景和视频分割场景训练了高精度模型和实时模型:

语义分割网络大都采用Encoder-Decoder结构,Encoder负责提取高层语义信息,Decoder负责还原边缘分割细节。对于高精度模型,在backbone选取方面,我们采用了Inception结构。为了获得更大的感受野,我们参考DeepLab系列工作的思路,引入了ASPP(Atrous Spatial Pyramid Pooling)。

在Decoder设计上,我们参考UNet系列工作的思路,将前层的特征进行融合,以获得更好的边缘细节。整体的网络结构如下图所示:

用这个模板记录爱豆造型:天啦噜 在家和爱豆玩 剪刀石头布(4)

实时模型需要做到精度 / 速度的相对平衡。因此模型设计的整体原则是:Encoder尽量精简、Decoder尽量恢复细节。Encoder模块针对backbone分析耗时瓶颈,进行模型裁剪,减少channels数目;采用fast downsample,使得feature maps的大小尽可能早的缩小,以节省计算量;不固定输入大小,在不同机型下可以使用不同大小的输入。

Decoder网络在精简的基础上尽可能多的融合前层特征,提高网络整体并行度:采用类似UNet的结构,融入浅层特征;在Decoder部分也采用较大的卷积核来进一步扩大感受野;引入残差结构增加信息流动。

通过以上优化,我们的模型大小在1.7MB左右(量化后0.5M),miou 0.94,在中端Android机型(高通625)、320*240输入下,能达到25FPS,满足实时化要求。

此外针对人这个特定的类别,我们尝试加入更多关于人的先验知识来提升分割效果。分别尝试了Pose Estimation-Human Segmentation联合训练和Human Parsing- Human Segmentation联合训练。通过联合训练的方式,不同任务之间能够相互作用从而提高各个任务的精度。

下面是手机端实时切割的效果(同时加上了手势检测,识别剪刀手势来实时换背景):

用这个模板记录爱豆造型:天啦噜 在家和爱豆玩 剪刀石头布(5)

猜您喜欢: