在影视剧中,拍摄者经常会使用绿幕把演员或物体从普通场景画面中分离出来,合成到剧情需要的炫酷奇幻的场景中去。

好莱坞大片、迪士尼动画巨作等制作过程中,都离不开抠图算法。 

绿幕换背景图 python cv2 绿幕照片怎么换背景_数据

大片拍摄过程中少不了绿幕

但是,在日常生活中,没有绿幕的普通群众,可以随意转换自己的视频场景吗?

近日,来自华盛顿大学的研究者 Soumyadip Sengupta 等人发表了一篇论文:《Background Matting: The World is Your Green Screen》文中提出了一种创建蒙版(matting)的新方法,可以实现任意背景下的自动抠图,十分惊艳。

目前,该论文已被 CVPR 2020 接收。

 


算法自动抠图,效果完美 


目前,从作者给出的实现效果来看,可以说非常给力了,即使视频中的女主角疯狂晃动头发,算法也依然丝毫不受干扰地把背景抠了出来。

用 Soumyadip Sengupta 方法的场景转换

除了原始图像/视频之外,研究者还要求拍摄者多拍一张不带人物的背景图。这一过程要比创建三元图所需的时间少得多。 

他们用对抗损失训练了一个深度网络,用来预测蒙版。他们首先利用带有 ground truth 的合成数据训练了一个具有监督损失的蒙版网络。

为了在没有标签的情况下缩小合成图像与真实图像之间的差距,他们训练了另一个蒙版网络,该网络是在一个网络的指导下进行训练的,并通过一个判别器来判断合成图像的质量。 

作者还在各种照片和视频上对这一新方法进行了测试,结果证明这一方法显著优于之前的 SOTA。 

绿幕换背景图 python cv2 绿幕照片怎么换背景_绿幕换背景图 python cv2_02

 

想去哪里,背景就换哪里

对于目前不得不宅在家的同学们来说,这个方法可让你过过旅游拍美照的瘾,想去哪里都不再是问题。

绿幕换背景图 python cv2 绿幕照片怎么换背景_抠图_03

论文地址:https://arxiv.org/abs/2004.00626

具体实现方法如下(建议收藏):

用手机摄像头拍摄一张带人物的图,再多拍一张不带人物的背景图。采用具有对抗性损失的深层网络来恢复前景蒙版(alpha matte)和前景色(foreground color),把结果合成到一个新的背景上。

对于手持相机,研究者假设相机的移动幅度很小,利用单应性(homography)将背景与给定的输入图像对齐。从输入中,研究者还提取了目标人物的软分割。对于视频输入,可以添加临近的帧来辅助生成蒙版。

实现效果展示

在室内和室外不同环境下,他们使用固定和手持摄像机捕获了 50  个不同动作主体的视频,当拍摄主体离开拍摄场景,他们也会拍摄不带主体的背景图。他们将很快发布此数据,以进行背景蒙版(Background Matting)的研究。

与现有方法相较 研究者将该方法与其他方法进行了比较,包括以下几种在基准上表现良好的深度蒙版算法:

(1)基于三元图(Trimap):Context Aware Matting(CAM)和Index Matting(IM)进行比较,其中 Trimap 是通过分割自动创建的。 

(2)自动蒙版算法 Late Fusion Matting(LFM)进行比较。 

研究者首先在 Adobe Matting 数据集(只用不透明物体的图像)上训练了一个深度蒙版网络,然后在自监督和对抗损失的无标记真实数据上进行训练(Ours Real)。