动画弹幕蒙版功能测试以及方法介绍

背景

       弹幕是社区文化的重要体现之一,但是随着视频中弹幕的堆积,视频内容尤其是其中的人物形象往往不能被清晰的看到。为了优化用户观看视频的综合体验,我们通计算机视觉相关技术,设计了「弹幕蒙版」这一功能,希望用户在观看弹幕视频时能够获得一种平衡的观看体验。

       目前该功能已经应用在很多真人场景的视频中(如av10048895),但是在动画内容中暂未落地,原因有二:

  1. 动画人物和真人的视觉特征有明显区别,而且因为画风不同,不同动画人物之间的视觉特征亦有明显区别

  2. 动画视频通常场景复杂,帧与帧的连续性不如真人视频

我们针对以上两个问题进行了技术调研,在动画人物识别和蒙版稳定性方面均取得了初步的进展,现放出一些demo(如av42062024),期望能提升该品类内容的观看体验。

目前使用的方案细节

数据集制作

首先需要解决的是数据集的问题,目前我们使用了图像分割技术制作弹幕蒙版,但业内没有公开的动画人物分割数据集。人工标注数据固然是一种很好的方法,但是它效率较低,成本大,极大的影响调研和开发效率。

我们通过构造数据的形式来制作语义分割和实例分割的数据集。首先通过多种途径获取到纯色背景或者简单背景的动画人物图片。由于图片背景相对简单,通过传统的边缘检测算法就能提取到人物的轮廓。从原图中抠出的主体轮廓作为数据的前景人物,然后选一些不包含人物的背景素材,将前景人物和背景素材叠加,做相应的比例和色调调整,最终得到合成图片和对应的蒙版标注。

模型训练

基于深度学习的目标分割算法已经比较成熟,目前主流的语义分割有FCN,SegNet,UNet,PspNet,DenseNet,Deeplab系列等等. 这里我们使用 Deeplabv3+.

Deeplabv3+结构如下:

图1. 图像语义分割模型[1]

后处理

如果直接将结果输出,得到的蒙版不够精确,而且检测效果不稳定,视频看起来会有部分区域蒙版时有时无,引起观看的不适感,为了解决分割效果的精确性和视频分割的平滑性,我们采用如下的后处理方法,将模型经过softmax后的结果先做帧间连续性处理,然后用CRF细化蒙版效果。

    图2. 后处理流程图

1. 镜头分割算法[2]

由于在动画中视频镜头切换频繁,为了将整个视频按不同镜头切分,我们使用基于直方图的分割算法,它是最普遍的分割方法,实现简单方便,而且对于大多数视频能得到较好的效果。

2. 帧间平滑

在同一镜头下,通过当前的预测值和前帧之间的依赖性来增加帧间mask平滑过渡,我们采用如下算法:out(i) = (prob(i)+miu*out(i-1))/(1+miu),miu的大小控制前后帧之间的依赖强度。

3. CRF(条件随机场)[3]

将输出结果导入CRF精细化分割效果,我们采用全连接条件随机场(DenseCRF) 迭代细化结果。CRF通过极小化势函数来促使相似像素分配相同标签、不同像素分配不同标签,从而使图像尽量在边界处分割。

实验结果

分别用真人训练集和合成数据集训练结果,如图3所示,可以看出在合成的数据集训练后的模型有很好的表现力。


图3 真人训练集训练后检测结果(上)和合成数据集训练后检测结果(下)

分别就单帧直接预测,加CRF,以及平滑处理后加CRF后的对比实验结果。实验结果如图4所示,可以看出在人物挥舞的左手臂上有出现漏检问题,在经过我们的后处理后,蒙版效果可以平滑的过渡,更加稳定。






图4.从左至右分别为原输出、CRF输出和帧间平滑+CRF。从上至下对应连续若干帧

如上结果表明,根据我们合成的数据集可以有效的完成对动画人物的检测,通过必要的后处理可以使得视频的蒙版检测更加平滑稳定。接下来我们会在模型的实时性、泛化性和稳定性上迭代效果,并进一步通过理解画面内容增强后处理的控制能力,给大家提供更好的蒙版效果。


参考文献

[1].Chen L C , Zhu Y , Papandreou G , et al. Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation[J]. 2018.

[2].钱刚, 曾贵华. 典型视频镜头分割方法的比较[J]. 计算机工程与应用, 2004, 40(32).

[3].https://github.com/lucasb-eyer/pydensecrf


本文禁止转载或摘编

-- --
  • 投诉或建议
评论