一. 业务背景

随着各大视频平台相继推出弹幕穿人性能,广受好评。在公众生产视频的同时,大大增加了观看的娱乐互动性。接着,其余视频、动漫、浏览等内容平台也都减少了弹幕性能。弹幕曾经成为一种重要的内容互动的伎俩。
优酷作为视频生产为主的业务平台,也针对相干爆款视频,推出了服务端宰割技术主导的弹幕穿人性能。服务端宰割性能稳固,辨认精度高,但存在肯定的存储和带宽老本,且无奈满足实时的特效,特地是爆款视频,时效性要求特地高。因而,优酷视频弹幕穿人业务对挪动端的人像宰割技术有强烈的需要。

针对优酷弹幕穿人业务,设计了实时性和精度都较高的挪动端人像宰割模型,加上淘系PixelAI SDK的加持,将人像宰割技术上线到优酷挪动端弹幕穿人业务。本文将从算法和工程两个方面,具体论述解决方案。

二. 显著人像宰割

优酷弹幕穿人,次要用于视频中显著人像的宰割,对于非聚焦区域的人物和背景都无需宰割。挪动端和服务端模型的设计有很大区别,服务端精度要求高于实时性,因而模型的设计能够更大,对于输出的尺寸要求也能够更大。而对于挪动端而言,模型的设计须要精准到每个模块的设计和耗时需要,因而首先须要和业务明确显著人像的定义。显著人像除了指镜头下聚焦的区域外,还须要明确人物的尺寸比例。在明确算法需要的前提下,进行数据采集,打标,模型设计以及训练优化。
1.构建数据集
团队通过了几年的宰割积淀,曾经领有了百万级的人像宰割数据,且服务了团体的钉钉和淘系相干业务。
针对优酷非凡的场景需要,将视频场景划分为了:古代都市剧,现代剧,军事题材。在不同的题材中,有针对显著人像的特色,分为了:半身、全身、单人、多人,以及人体不同的姿势。因为影视作品中有很多特殊效果镜头,会影响算法的宰割成果,所以针对这些特效,咱们还专门收集了一些长尾的数据,比方逆光、暗光、伸手等场景,能够进步模型的鲁棒性。最终,咱们应用了百万级的训练数据。

**2.模型设计
2.1 轻量化网络钻研**
目前罕用的轻量化网络模型有mobilenet系列、shufflenet系列,ghostnet系列等,然而这些学术界的挪动端模型离理论的挪动端利用还相差甚远,特地是运行时效上齐全不能达到业务需要。针对这一问题,咱们在团体的MNN挪动端推理框架下,从算子执行工夫,不同模块执行效率,不同网络效率三个维度在CPU和GPU模式下进行了比照试验,后果如下图所示:


通过网络参数控制变量试验剖析,VGG这类直筒型的网络设计性能最佳,效率最优。
2.2 自研网络AirSegNet系列设计
2.2.1 网络backbone设计
基于前述试验论断,咱们从新设计了淘系新的挪动端宰割网络AirSegNet系列,次要的backbone设计思维如下:
(1)Decode局部的卷积全副应用1x1 conv,先卷积扭转通道后与low feature map进行交融,从而升高计算量;
(2)Decode局部交融了x2,x4,x8倍三种尺度的低层特色,还原更多细节;
(3)设置双线性插值参数align_corners=False而非主流的True,获取更精准的边缘宰割,在True模式下,当推理的图片输出分辨率与训练不统一时,会存在像素点误差。

模型会针对不同机型,以及CPU或GPU模型,进行相应的批改,已达到最佳的性能。以后咱们设计实现了AirSegNet-CPU, AirSegNet-GPU,AirSegNet-Server三种骨干架构。
2.2.2 训练优化
在模型训练中,采纳穿插熵损失函数作为loss函数,在此基础上逐渐试验,发现了几个无效的策略:
(1) 背景权重计算,解决误辨认问题。统计训练数据中前景和背景的散布比例,设计分类权重,分类权重采纳经典的计算公式:其中,r 示意前景或者背景的比例。
=1/(log(1.1+r))
(2) 边缘加权,解决边缘交融成果。

采纳5x5的核查ground truth进行收缩操作;采纳5x5的核查ground truth进行侵蚀操作;判断图1不等于图2的局部,即为边缘,给边缘调配5倍的loss权重。

(3) 提出聚类loss,晋升宰割精度。计算公式如下:如果点i、j的ground thuth为同一类,则束缚两者的网络输入小于,否则束缚两者的网络输入大于。
loss_(i,j)={█(max(‖e_i-e_j ‖-,0) if l_i=l_j@max(-‖e_i-e_j ‖,0) if l_i≠l_j )┤
(4)应用topk loss。针对难负样本,尤其是针对模型稳固阶段的深度优化有较大的成果。
在应用边缘加权和聚类loss的前提下,针对GPU训练模型的比照试验后果如下:

最终人像IOU达到了0.98。
2.2.3 .后处理优化
模型输入的成果在不同的分辨率下会呈现锯齿状的景象,特地是原图尺寸比模型的理论输出尺寸大很多的时候。因而,须要进行一系列后处理优化,进步理论的出现成果体感。
(1)边缘优化,分为如下两步:

对原始网络输入应用3x3的高斯含糊,平滑人像边缘,理论在模型转成mnn时,同时将高斯含糊交融进网络,既能够节约解决工夫,又能够防止在C++中调用高斯含糊。因为网络输入的是0-1之间的概率值,因而交融背景图后在边缘处会存在过渡区域,采纳曲线变换放大过渡区域。

(2)利用动量克制帧间抖动,为了自适应解决不动场景和跳变场景,动量是一个变动值,会依据变动的幅度扭转阈值。
(3)针对画面变动很小时,采纳隔帧检测,缩小计算量。

三. 工程部署

AirSegNet系列算法集成到团体的算法部署平台PixelAI SDK中,优酷应用此SDK进行对接。工程端,算法前向次要流程如下图所示,视频序列中每幅图像通过CNN网络,失去初步的宰割后果,随后通过后处理(包含平滑和动量解决等步骤),失去稳固精细化的宰割后果。整个流程中耗时最久的就是CNN网络推理。

基于团体的MNN推理框架,针对咱们的设计的AirSegNet-CPU, AirSegNet-GPU模型,在不同机型上进行了性能测试,如下所示:
性能测试后果(单位:ms):绿色代表CPU推理耗时,粉色代表GPU推理耗时。
1.Android机型测试

测试论断:
(1)对于高端机型来说(>85),CPU性能很弱小,轻量化模型GPU减速均不太显著。
(2)对于中端机型来说(30-70),GPU模型利用GPU减速成果显著,但CPU模型利用GPU反而会变慢,这是因为CPU模型的设计不合乎GPU减速逻辑。
(3)对于低端机型来说(<20),因为GPU太弱,所有模型应用GPU推理都会比CPU推理慢。
2.ios机型测试

ios测试论断:对于iPhone系列来说,CPU性能很强,CPU模型推理速度高于GPU。
3.优酷业务工程逻辑优化
优酷业务要求,整个SDK申请耗时要小于15ms。依据如上的测试后果,PixelAI SDK框架会依据不同的机型,下发最优的模型,疾速适配不同的业务场景。但在优酷业务对接中,依然进行了如下两个重大的耗时问题:
1)纯GPU模型初始化重大耗时。在下发GPU模型的时候,会存在初始化耗时特地重大的问题,达到秒的级别。因为,MNN的GPU推理初始化时耗时很高,如果单纯下发GPU模型,那么第一帧耗时就会特地高。这就须要从工程端去应用策略来解决。外围解决思路是,如果此类机型GPU模型最优化,则同时下发CPU模型和GPU模型,且同时初始化两类模型。在GPU模型初始化阶段,应用CPU模型后行进行前向,待GPU模型初始化实现后再切回GPU模型进行前向推理。依据如上论断,对于90%以上的机型,CPU的前向推理也是能够满足耗时小于15ms的业务需要的,在用户端达到无感的弹幕体验。
2)纯CPU模型弹幕渲染卡顿。针对优酷弹幕业务的特殊性,除了算法以外,也有很多的渲染线程,在挪动端上同时应用模型和这些线程的时候,CPU资源十分吃紧,所以导致渲染卡顿的问题。依据如上的试验论断,对于90%以上机型的GPU模型前向耗时是能合乎15ms以内的需要的,因而采纳了CPU+GPU混合下发的形式。在不影响渲染的状况下,保障了模型的效率。

查看系列文章:
优酷挪动端弹幕穿人架构设计与工程实战总结

参考文献:
[1]Khoreva A, Perazzi F, Benenson R, et al. Learning video object segmentation from static images[J]. arXiv preprint arXiv:1612.02646, 2016.
[2]Jégou S, Drozdzal M, Vazquez D, et al. The one hundred layers tiramisu: Fully convolutional densenets for semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition workshops. 2017: 11-19.
[3]Ding H, Jiang X, Shuai B, et al. Context contrasted feature and gated multi-scale aggregation for scene segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 2393-2402.
[4]Jégou S, Drozdzal M, Vazquez D, et al. The one hundred layers tiramisu: Fully convolutional densenets for semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition workshops. 2017: 11-19.
[5]Chen L C, Zhu Y, Papandreou G, et al. Encoder-decoder with atrous separable convolution for semantic image segmentation[C]//Proceedings of the European conference on computer vision (ECCV). 2018: 801-818.
[6]Chen L C, Collins M, Zhu Y, et al. Searching for efficient multi-scale architectures for dense image prediction[J]. Advances in neural information processing systems, 2018, 31.
[7]Tang J, Aksoy Y, Oztireli C, et al. Learning-based sampling for natural image matting[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 3055-3063.
[8]Li H, Xiong P, Fan H, et al. Dfanet: Deep feature aggregation for real-time semantic segmentation[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 9522-9531.
[9]Zhang S H, Dong X, Li H, et al. PortraitNet: Real-time portrait segmentation network for mobile device[J]. Computers & Graphics, 2019, 80: 104-113.
[10]Tang J, Aksoy Y, Oztireli C, et al. Learning-based sampling for natural image matting[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 3055-3063.
[11]Zhang Y, Gong L, Fan L, et al. A late fusion cnn for digital matting[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019: 7469-7478.
[12]Ghosh S, Das N, Das I, et al. Understanding deep learning techniques for image segmentation[J]. ACM Computing Surveys (CSUR), 2019, 52(4): 1-35.
[13]Yuan Y, Chen X, Chen X, et al. Segmentation transformer: Object-contextual representations for semantic segmentation[J]. arXiv preprint arXiv:1909.11065, 2019.
[14]Wang Y, Zhou Q, Liu J, et al. Lednet: A lightweight encoder-decoder network for real-time semantic segmentation[C]//2019 IEEE International Conference on Image Processing (ICIP). IEEE, 2019: 1860-1864.
[15]Wu H, Zhang J, Huang K, et al. Fastfcn: Rethinking dilated convolution in the backbone for semantic segmentation[J]. arXiv preprint arXiv:1903.11816, 2019.
[16]Sengupta S, Jayaram V, Curless B, et al. Background matting: The world is your green screen[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 2291-2300.
[17]Park H, Sjosund L, Yoo Y J, et al. Sinet: Extreme lightweight portrait segmentation networks with spatial squeeze module and information blocking decoder[C]//Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. 2020: 2066-2074.
[18]Luo L, Xue D, Feng X. Ehanet: An effective hierarchical aggregation network for face parsing[J]. Applied Sciences, 2020, 10(9): 3135.
[19]Cheng H K, Tai Y W, Tang C K. Modular interactive video object segmentation: Interaction-to-mask, propagation and difference-aware fusion[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 5559-5568.
[20]Wu T, Tang S, Zhang R, et al. Cgnet: A light-weight context guided network for semantic segmentation[J]. IEEE Transactions on Image Processing, 2020, 30: 1169-1179.