最后更新:2020-04-10 11:36:52 手机定位技术交流文章
机器心脏报告
参与:张骞浣熊
在电影和电视剧中,绿屏是剪切图片和改变背景的利器,但是如果我们不在绿屏前拍摄,我们能完美地改变背景吗?华盛顿大学的研究人员最近上传了一篇论文,这篇论文可以完美地改变视频背景,而不用在绿色屏幕前拍摄,让整个世界成为你的绿色屏幕。
从作者给出的演示可以看出,他们的方法非常令人印象深刻。即使视频中的人乱丢头发,合成效果也不会受到影响:

在各种行动中没有“偷懒”:

即使人物与背景没有很好的分离,手持镜头轻微抖动,抠图效果也不错:

目前,该论文已被CVPR 2020大会接受。

论文链接:https://arxiv.org/pdf/2004.00626.pdfGitHub链接:在https://github.com/senguptaumd/Background-Matting's的论文中,研究人员提出了一种创建遮罩的新方法。大多数现有的掩蔽方法需要一个绿色屏幕作为背景,或者手动创建一个三元图(trimap)。当然,也有一些不需要三元图的自动方法,但是结果会很差。本文提出的掩蔽方法也不需要三值图,但抠图和改变背景的效果更好。当然,取得这样好的结果是有条件的。除了原始图像/视频,研究人员还要求摄影师拍摄另一张没有人物的背景图像。这个过程比创建三元图节省了很多时间。研究人员训练了一个深度网络来预测具有抗损失能力的面具。他们首先使用合成数据和基本事实训练了一个监控损失的掩蔽网络。为了在不做标记的情况下缩小合成图像和真实图像之间的差距,他们在第一个网络的指导下训练另一个掩蔽网络,并通过鉴别器判断合成图像的质量。研究人员在许多图像和视频上测试了他们的新方法,发现这种方法明显优于以前的SOTA。

在本文的讨论中,我们可以看到许多潜在的应用场景,如vlog(云旅游)、视频会议等。


对于广大的“烟酒和尚”,如果老师要求你下次发一个在实验室工作(触摸)和制作(鱼)的视频,这也可能是有用的。方法系统的输入是图像或视频。图像/视频中的人站在静态自然背景前。此外,需要输入纯背景图。背景图的获取非常简单,只有角色需要走出取景区域,然后使用固定曝光和焦距的相机进行拍摄(例如智能手机相机)。对于手持相机,研究人员假设相机的运动幅度非常小,并使用单应性将背景与给定的输入图像对齐。从输入中,研究者还提取了目标字符的软分割。对于视频输入,可以添加相邻帧来帮助生成遮罩。

图2:方法概述。Adobe数据集监督培训研究人员首先在Adobe Matting数据集(仅不透明对象的图像)上培训了深度遮罩网络。该网络以人、纯背景图像B”、人S和相邻帧的时间堆栈M(可选)的图像I的软分割作为输入,输出是前景图像F和前景掩模α。在腐蚀生成S中,研究人员应用了字符分割、腐蚀、膨胀和高斯模糊。当处理视频时,它们将M设置为在I之前和之后的两个连续帧。如果两个帧之间的间隔设置为t,则所选择的相邻帧是{i2t,it,I+t,I+2t}。这些图像被转换成灰度图像,以忽略颜色并更多地关注运动信息。如果输入中没有视频,研究者将m设置为{I,I,I,I},并且这些图像也被转换成灰度图像。输入集表示为{I,B ',S,M},具有权重参数θ的网络操作可以表示为:

研究人员提出了一种上下文切换块(CS块)网络,根据输入图像更有效地组合所有输入信息的特征(见上图2)。例如,当一些字符具有相似的背景时,网络应该更加注意该区域中的分割线索。该网络有四个编码器,分别生成256个通道特征图。然后,通过应用1×1卷积、BatchNorm和ReLU,将来自I的图像特征分别与B’、S和M组合,为三对中的每一对生成64个通道特征。最后,他们通过1x1卷积、BatchNorm和ReLU将这三组64通道特征与原始的256通道特征相结合,以获得编码特征并将其传输到网络的其他部分,包括剩余块和解码器。研究人员观察到,上述CS块架构有助于网络从Adobe数据集推广到实际数据。研究人员培训网络;θ_土坯):

其中,(F,α)= G(X;θ_Adobe),梯度项α可以促使模型生成更高清晰度的图像。对抗训练是在未标记的真实数据上进行的,尽管研究者提出的CS块在结合了数据增强之后,显著地缩短了真实图像和使用Adobe数据集合成的图像之间的差距。然而,这种方法在处理真实图像时仍然存在以下困难:
手指、手臂和头发附近的背景被复制到遮罩中。图像分割失败;前景重要部分的颜色与背景相似。图像和背景之间没有对齐。为了解决上述问题,研究者提出使用自监督学习方法从未标记的真实数据中训练模型。该方法的主要思想是,在新的背景下,掩模估计中的主要误差将导致合成图像的失真。例如,一个坏的遮罩可能包含一些原始图像背景,当它与新的背景结合时,先前背景的一部分将被复制到新的背景。因此,研究人员训练了一个对抗鉴别器来区分合成图像和真实图像,从而提高了掩蔽网络的性能。研究人员使用最小二乘-遗传神经网络框架来训练发生器G_{Real}和鉴别器D,最小化训练发生器的下列目标函数:

其中,(F,α)= G(X;θ_{Real},条{B}是鉴别器用来生成合成图像的给定背景。研究人员将λ设置为0.05,并在训练过程中每两个时期将其减半,以便鉴别器发挥重要作用。研究人员给阿尔法损失函数设置了更高的权重,以鼓励模型生成更高清晰度的图像。研究人员使用以下目标函数来训练鉴别器:

其中θ_{Disc}代表鉴别器网络的权重,并且(F,α)= G(X;θ_ {实数}).实验结果研究人员将该方法与其他方法进行了比较,包括几种在基准上表现良好的深度掩蔽算法,如贝叶斯抠图、上下文感知抠图、索引抠图和后期融合抠图。在Adobe数据集上的结果研究人员首先用26,900个样本训练GAdobe,在100个随机背景上合成269个目标,添加背景的扰动版本作为网络输入,用Adam优化器训练,批量为4,学习率为1e。该实验比较了Adobe Dataset中220种合成材料的结果,如下图所示:

表1:1上的阿尔法掩码错误:Adobe数据集。值越低,性能越好。此外,研究人员使用智能手机iPhone 8在室内和室外分别用手持和固定摄像头拍摄视频。

图3:(a-e)是自然背景下手持摄像机拍摄视频的alpha通道和前景,(e)是动态背景下的失败案例。此外,研究人员对用户组进行了调查,结果包括测试视频的总得分。分数证明了本文提出的方法优于其他方法,特别是在摄像机拍摄的场景中,但是由于非平面背景造成的视差,手动拍摄的视频仍然会出现一些蒙版误差。

表2:10个真实世界视频(固定摄像机)的用户研究结果。

表3:10个真实世界视频的用户研究(手持摄像机)。开放源代码使用配置文件环境配置在本地克隆项目:
GitClone https://github.com/senguptaumd/Background-Matting.git作者提供的代码需要在Python 3环境中运行,并在Pytorch=1.1.0、Tensorflow=1.14、cuda10.0中进行测试和传递。接下来,我们创建一个conda虚拟环境并安装依赖项:
condo create-name back-matting python = 3.6 condo activate back-matting确保CUDA 10.0是默认的CUDA。如果CUDA 10.0安装在计算机上的/usr/local/cuda-10.0目录中,请运行以下命令:
export LD _ library _ path =/usr/local/cuda-10.0/lib 64 export path = $ path:/usr/local/cuda-10.0/bin安装PyTorch和Tensorflow及相关依赖项:
conda InstallPytorch = 1 . 1 . 0或检查Cuda工具包= 10.0-C PytorchPip installtensorFlow-GPU = 1 . 14 . 0 Pip安装-R要求。对样本图像运行推理程序(1)准备数据为了在图形剪切上实现绿色屏幕效果,我们需要以下数据:
有字符的图像(扩展名为img.png)而没有字符的背景图像(扩展名为back.png)需要插入到字符的目标背景图像中(存储在数据/背景文件夹下)。我们也可以使用sample_data/ folder进行测试,并参考它准备我们自己的测试数据。(2)预培训模型从作者提供的云盘下载,并放置在模型/目录中。
预处理分割背景抠图需要一个对象的分割遮罩。我们使用的是Deeplabv3+的tendorflow版本。(3)预处理器使用deep labv 3+的tendorflow版本来生成用于字符抠图的分段掩码:
cd背景-Matting/git克隆https://github.com/tensorflow/models.gitcd模型/研究/导出PETHONPATH = $ PETHONPATH:` pwd `: ` pwd `/ slim CD../..当然,我们也可以使用任何其他图像分割网络来代替deepplabv3+。将分割结果保存为扩展名为_ masksdl.png的文件。之后,我们需要对图像对齐进行预处理,即将背景与输入图像对齐。应该注意的是,在拍摄图像时,我们需要关闭自动对焦和自动曝光功能。Py-isample _ data/input可用于预处理图像。它会自动对齐背景图像,并调整偏移量和增益以匹配输入图像。(4)背景可以通过运行以下肖像剪切代码来替换。对于用三脚架拍摄的照片,最好的结果可以通过选择-m个实景摄像机获得。选择-m syn-comp-Adobe将允许我们使用在Adobe的合成数据集上训练的模型,而不是真实数据(最坏的效果)。
python test _ background-matting _ image . py-m real-hand-I sample _ data/input/-o sample _ data/output/-TB sample _ data/background/0001 . png
本文由 在线网速测试 整理编辑,转载请注明出处。