无需绿幕的实时人物视频抠图
Is a Green Screen Really Necessary for Real-Time Human Matting? 论文阅读笔记
Github地址:https://github.com/ZHKKKe/MODNet
影视作品中虚拟视觉效果的实现离不开抠图的辅助,例如电影中的科幻、仙侠世界特效效果往往是在绿幕场景中进行拍摄后,再制作精细的抠图。但在现实生活中,我们常常没有预设好的绿幕,或者更希望从已有的视频素材中更换背景,无缝瞬移到新场景中,那么我们只能通过绿幕来解决嘛?
答案是不需要。但常用的抠图算法中需要原图与相应对齐的trimap图*或背景图进行抠图,但相对应的trimap图或背景图又不太容易获取,因此本算法模型MODNet致力于仅靠单张RGB图像进行精细化的人物抠图,并应用于视频素材中。
MODNet的总体架构如上图所示:
基于已标记的数据进行模型训练、学习抠图的各个子任务;
利用子目标间的一致性,基于未标记的数据进行模型精调;
在人物视频抠图的实际应用中,基于ODF策略平滑最终的前景预测结果
创新点
为了克服域迁移问题,基于子目标一致性(SOC)提出了一种自监督策略,即利用子目标之间的一致性来减少预测前景蒙版中的伪影;
提出单帧延迟(OFD)这种后处理方法,目的是在视频抠图后获得更流畅的输出。
数据集
包括3000张已标记前景区域的图片,分辨率在1000x1000 ~ 2000x2000间。使用时先同比例调整为短边长512的图像,再随机裁剪长边长为512的子图像。
模型结构
作为trimap-free的抠图,本算法同样在预测trimap+基于trimap的抠图思路上延伸,对trimap-free抠图目标分解为语义估计、细节预测、语义与细节融合这三个子目标。
MODNet共包含三个分支,每个分支均通过特定约束学习不同的子目标。
低分辨率分支:用于预测人物语义信息;
高分辨率分支:用于辨别细节边界信息;
融合分支:用于预测最终的前景蒙版;
Sub-Objective Consistency(SOC)策略:
针对trimap-free的抠图情况,上述三个分支可能存在不一致的结果。例如,前景模版的区域预测可能在融合分支中错误预测,但在语义分割中预测正确。但直观来说,这两个分支的预测结果像素区域应该是相似的,同时由于语义分割网络是预先训练过的,产生的结果会相对准确。因此SOC策略在子目标的预测结果之间增加了关于一致性的约束,用于提升最终的预测结果。
One-Frame Delay(OFD)策略:
基于对视频进行逐帧处理后再重新拼接成新视频的算法输出的视频,往往会产生时间上的不一致问题(例如视频中某个位置突然闪烁)。由于闪烁的错误帧前后帧往往是正确的预测,因此可以利用这一特性来进行效果优化。
举个栗子,假设我们现在有三张连续帧的图像,并已计算出每张图像相应的前景蒙版。如果三张前景蒙版满足以下条件,则认为中间帧存在错误的跳动像素,并用前后帧的结果均值来代替中间帧的预测结果,以提高视觉上的平滑变化。
(隔帧间图像足够相似,且中间帧与前后两帧都存在足够大差别)
但有得必有失,这个策略会在展示平滑运动的视频中有较好的表现,但在快速变化的视频中反而可能过度平滑掉某些变化。
效果图
MODNet与其他算法的抠图效果对比:
加入SOC与OFD处理方法后,对视频输入的隔帧输出效果:
(a)输入(b)MODNet(c)MODNet+SOC(d)MODNet+SOC+OFD
MODNet对比其他trimap-base模型(DIM)的抠图效果优势
基于计算深度图来预测的trimap图错误,导致了trimap-base模型DIM的抠图失败。而MODNet可以做到更好的人物抠图效果。
总结
可优化点:
在处理难度较大的姿势、复杂服饰等时依然会出现问题;
对与背景较为贴近的服饰边缘的抠图效果依然不太理想;
备注:
*trimap图:对内容添加粗略区域划分标记的图像
以上~感谢阅读