SteveHawk's Blog

数字抠图技术的发展



——数字图像处理论文

摘要

随着光学信号采集设备和数字图像处理技术的发展,抠图技术越发成为数字图像处理的重要研究方向。在电影工业中,利用绿幕等技术拍摄的影像就需要抠图技术进行处理,加上另外的背景。这样的技术随着个人设备性能的提升和算法的改进,在个人拍摄的影像中也逐渐流行开,需求也变成了从复杂背景中准确抠出主体的图像。本文介绍了几种图像和视频的抠图技术,最后总结了抠图技术的研究现况和未来的发展方向。

关键词:抠图,图像分割,对象消除,背景填充,深度学习

0. 引言

在一张照片或者图片中,有时候我们会有这样的需求:将画面中的主体从图片中抠出来,然后更换背景。目前最流行的操作是使用 Adobe 公司开发的图像处理软件 Photoshop 一点点手动描画出主体的轮廓,然后再进行相应的背景置换操作。这样做非常费力,特别是对精细度要求非常高的时候,需要耗费大量的人力。而且,在毛发等复杂的地方往往没有办法达到很好的效果。到电影工业中,为了特效画面这样的技术早就被开发了出来,即绿幕/蓝幕技术。前期演员在绿色/蓝色的幕布前录像,后期将纯色背景抠除,然后替换成其他的背景。纯色背景的抠除相对比较方便,但是很多时候个人拍摄的视频并没有纯色背景的条件,如何在复杂背景视频中抠出主体又是一个非常棘手的问题。在这样的需求驱使下,数字图像处理领域中出现了应对的算法,即抠图(Image Matting)和视频抠图(Video Matting)算法。事实上为了其他更加精细的需求,还有一类称之为图像分割(Semantic Segmentation)的算法。图像分割较之于抠图会更加细致,抠图只是把主体和背景分离,而图像分割需要把画面上的所有独立主体以及背景都进行分离。本文并不深入探究两类算法的区别,暂且认为是相似目的的算法。

1. 抠图与图像分割算法

1.1 贝叶斯抠图算法(Bayesian Matting)

普遍图像中,相近的像素在统计特征上往往具有相关性,可以对相近的像素进行颜色采样,根据样本颜色的特点对未知区域像素的抠像参数进行估算。Berman 等人在 2000 年提出 Knockout 算法,对周边确定区域像素的前景/背景色进行加权,作为未知区域像素的估算结果。Ruzon 和 Tomasi 则最先在数字抠像中引入概率统计,其基本思想是对于未知区域的像素,先取附近已知的前景和背景像素作为样本,进行聚类和统计,每个聚类使用高斯模型进行描述。然后根据样本颜色的概率模型和未知区域像素的颜色,估算未知像素与前景/背景中各个聚类的相似度,推导该像素的前景不透明度。2001 年,Chuang 等人在此基础上提出了贝叶斯抠像(Bayesian matting)。这种方法使用贝叶斯公式,把未知像素的估算问题转化为一个最大后验概率问题。

图像抠图的核心问题就是求解下面这个融合方程Matting equation(在图像隐藏和图像去雾中都有类似的融合方程):

$$C=αF−(1−α)B$$

其中,C是一个已知的待处理的图像中的一个像素点,也可以理解为整个图像。F 是前景图像,B 是背景图像,融合系数α是一个介于0到1之间的分数,它给出了前景和背景在待处理图像中所占的比例。在融合方程中,已知的只有C,而F、B和α都是未知的。于是可以从条件概率的角度去考虑这个问题,即给定C时,F、B和α的联合概率应为

$$P(F,B,α|C) = \frac{P(C|F,B,α)P(F,B,α)}{P(C)} = \frac{P(C|F,B,α)P(F)P(B)P(α)}{P(C)}$$

其中第一个等号是根据贝叶斯公式得到的,第二个等号则是考虑F、B和α是彼此独立的。上式表明抠图问题可以被转化为已知待计算像素颜色C的情况下,如何估计它的F、B和α的值以最大化后验概率$P(F,B,α|C)$的问题。

简单来说,算法采用一个连续滑动的窗口对邻域进行采样,窗口从未知区域和己知区域之间的两条边开始向内逐轮廓推进,计算过程也随之推进。最终通过采样统计的方式估计出上述等式中的右端项,得到结果。具体进行计算时的算法数学细节太过复杂,这里不再深入。

除去这里提及的贝叶斯抠图算法,人们还开发了许多其他非常成功的算法,例如著名的kNN抠图和泊松抠图(Poisson Matting)等等。限于篇幅,这里不再介绍更多传统抠图算法,下面来介绍一些近年利用机器学习技术的抠图算法。

1.2 Adobe Deep Image Matting

2017年3月,Adobe 公司的研究院发表了一篇论文,提出一种基于深度学习的新算法,主要解决传统抠图方法中只有低级特征(low-level features)以及缺乏高层次上下图境(high-level context)的问题。这个深度模型分为两个阶段。第一阶段是深度卷积编码-解码网络(deep convolutional encoder-decoder network),该神经网络将图像和相对应的三分图作为输入,并预测图像的α蒙版。第二阶段是一个小型卷积神经网络,该神经网络对第一个网络预测的α蒙版进行精炼从而拥有更准确的α值和锐化边缘。另外,他们还创建了一个大规模抠图数据集,包含了 49300 张训练图像和 1000 张测试图像。在抠图基准、测试数据集和各种真实图像上评估算法后,结果表明此算法比先前的方法表现更好。

传统抠图算法具有很大的局限性:首先就是目前用来求解抠图的方程式即1.1中提到过的融合方程的方法存在问题。在这个方程式中,抠图问题形式化为两种颜色的线性组合,因此大多数现存的算法很大一部分都是将其近似求解色彩的问题。另一个局限性就因为小数据集而产生。一般用于抠图的数据真值是很复杂的,所以很少有较大的数据集,较小的数据集会带来自然偏差,训练出来的算法也会很难进行泛化。

在Adobe的论文中提出了一种克服这些局限性的方法。他们的方法就是使用深度学习在给定输入图像和三分图的基础上直接计算α蒙版。他们使用的神经网络并不首要依赖于色彩信息,它会学习图像的自然结构,并将其反映到α蒙版中。例如毛发(通常需要将其抠出来)就拥有很强的结构和纹理图案,它们通常存在能抽取出的共同结构或α蒙版轮廓。并且由于低层次的特征并不会捕获这些结构,那么就需要深度神经网络去表征它们了。他们使用的两阶段神经网络包含了编码器-解码器阶段和使用小型残差网络进行精炼阶段。利用另外创建的一个大规模抠图数据集,他们训练出的模型有着非常优秀的结果。

1.3 Semantic Soft Segmentation

今年8月,MIT CSAIL的研究人员发布了一篇论文,介绍了一种基于深度学习的图像编辑工具,能够自动抠图,替换任何图像的背景。他们称之为“图像软分割”,这个系统能够分析原始图像的纹理和颜色,仅需3~4分钟,生成非常自然的图像。在这篇新论文中,该团队提出的方法可以将拍摄的图像自动分解为一组不同的图层,图层之间通过一系列“软过渡”(soft transitions)相分隔。他们把这个系统命名为“语义软分割”(semantic soft segmentation,SSS),它能够分析原始图像的纹理和颜色,并将其与神经网络收集的有关图像中实际目标的信息相结合。

这个过程从神经网络估计图像的区域和特征开始。对于输入图像,要生成每个像素的超维语义特征向量(hyperdimensional semantic feature vectors),并使用纹理和语义信息定义图形。图形构造使得相应的拉普拉斯矩阵及其特征向量揭示了语义对象和它们之间的软过渡。使用特征向量来构建一组初始的软分割(soft segments),并将它们组合起来得到语义上有意义的分割。接着对软分割进行细化,使其可用于目标图像编辑任务。于是,神经网络就相当于检测到了软过渡,例如狗狗的毛发和草。然后通过颜色将图像中的像素相互关联,这些信息与神经网络检测到的特征相结合,对图像的层进行估计。经过这一系列处理,就可以实现AI自动抠图并更换背景了。

该方法最重要的是自动生成输入图像的软分割,也就是说,将输入图像分解成表示场景中对象的层,包括透明度和软过渡。研究人员表示,他们的目的并不是解决一般的自然抠图问题。自然抠图是一个成熟的领域,面临许多特有的挑战,例如在非常相似颜色的前景和背景区域中生成精确的抠图结果。当目标颜色非常相似时,他们的方法可能在开始的约束稀疏化步骤中失败,或者基于大面积过渡区域建立了不可靠的语义特征向量,可能导致软分割的失败。他们的目的想让抠图的过程变得更简单、快捷,让一般用户也可以更方便地进行图像编辑。目前SSS可供Instagram和Snapchat等社交平台使用,让图像过滤器的效果更加逼真,尤其是在更改自拍背景或模拟特定类型的相机时。在未来,研究人员计划进一步将处理图像所需的时间从几分钟降低到几秒,并通过提高系统匹配颜色和处理光照和阴影目标的能力,使图像看上去更加逼真。

2. 视频分割算法

2.1 Google Mobile Real-time Video Segmentation

今年3月份,谷歌为手机设计了一种实时抠图技术,以满足创作者修改或替换视频背景的需求。该新型分割技术不需要专业设备,让创作者能方便地替换和修改背景,给用户带来精确、实时、便携的移动视频分割体验,从而轻易地提高视频的制作水准。

谷歌使用机器学习的卷积神经网络来解决语义分割任务,从而实现该技术。为了满足移动端的轻量级需求和至少要每秒30秒以上的分割速度需求,研究人员专门设计了适合手机的网络架构和训练流程。

研究人员标注了成千上万张捕捉了广泛类型的前景姿态和背景环境的图像,以为新的机器学习流程提供高质量的数据。这些标注包括前景元素的像素级精确定位,例如头发、眼镜、脖子、皮肤、嘴唇等;而背景标签普遍能达到人类标注质量的98%的交叉验证结果。

谷歌设计的分割任务是为每个视频的输入帧(三个通道,RGB)计算二进制掩码,以将前景从背景上分割出来。其中,获得计算掩码在帧上的时间一致性是关键。当前的方法是使用 LSTM 或 GRU 来实现,但对于在移动设备上实时应用来说其计算开销太高了。因此,首先将前一帧的计算掩码作为先验知识,并作为第四个通道结合当前的 RGB 输入帧,以获得时间一致性。

另外,谷歌的团队还对网络架构和训练过程做了很多的优化,这些修改的最终结果是新的神经网络速度很快,并适用于移动端设备。在手机上可以实现好几十帧的处理速度,在APP中能够提供各种平滑的展示效果。

2.2 Adobe Project Cloak

在一般的抠图需求中,我们需要的是把主体抠出来,更换背景。但是在其他有一些场合中,我们的需求是把主体抠掉,只留下背景。对于我们之前提到的图像或者视频分割技术,我们的确可以分离出背景,但是一定会留下一块抠掉的主体形状的未知区域。这部分未知区域的填充是也是一个非常难解决的问题,对于静态图片我们能做的只有通过周围的像素点来预测未知区域的样子。然而对于视频,我们很有可能在附近的视频帧中拥有足够的信息来近乎完美的填充这块未知的区域。

2017年10月,Adobe在Adobe Max 2017大会上公布了一个正在研发中的新功能,代号Project Cloak。他们利用稠密追踪(dense tracking)的方法,在前后的视频帧中寻找缺失的像素,以此自动填充抠图后未知的区域。在展示中,这个项目的demo相当惊艳的消除了画面上的对象并且补出了对象之后缺失的背景,仿佛之前从来没有出现过画面上的对象。

Adobe尚未正式发布这项功能,也还没有公布这项功能背后的技术实现细节。非常期待这样类似内容感知的功能能够早日向消费者开放,这样不仅是专业团队还是普通创作者都可以轻松的进行画面上的对象消除,轻松的降低视频制作的难度,提高视频制作的水准。

总结

根据上述介绍,我们可以看出,现在的图像和视频抠图技术在逐步从传统的算法向着深度学习转变。随着机器学习的发展,机器学习模型的效果越来越好,不管是结果还是效率上都赶上甚至超过了传统算法。这样一来,抠图算法可以进一步向着普通用户普及,随便拿谁的手机都可以进行轻松的抠图替换背景的操作,这让所有人都可以轻松接触到原本好莱坞级别的大片才会有的特效,从而进行更有意思的创作。希望这些算法在未来能够发展出更好的效果和效率,为“人人都能当导演”的概念提供更加完美的土壤。

参考文献

  1. Yung-Yu Chuang, B. Curless, D.H. Salesin, and R. Szeliski, A Bayesian Approach to Digital Matting. CVPR, 2001.
  2. M. T. Orchard and C. A. Bouman. Color Quantization of Images. IEEE Transactions on Signal Processing, 39(12):2677–2690, December 1991.
  3. 张展鹏, 朱青松, 谢耀钦. 数字抠像的最新研究进展. 自动化学报, 2012, 38(10): 1571-1584
  4. 吕巨建. 自然图像抠图方法的研究. 硕士学位论文, 广东工业大学, 2009
  5. Ning Xu, Brian Price, Scott Cohen, and Thomas Huang. Deep Image Matting. Computer Vision and Pattern Recognition (cs.CV). arXiv:1703.03872v3 [cs.CV]
  6. Yagiz Aksoy, Tae-Hyun Oh, Sylvain Paris, Marc Pollefeys, Wojciech Matusik. Semantic Soft Segmentation. ACM Transactions on Graphics (Proc. SIGGRAPH), Vol. 37, No. 4, Article 72.
  7. Valentin Bazarevsky, Andrei Tkachenka. (March 1, 2018). Mobile Real-time Video Segmentation. [Web log post]. Google AI Blog. Retrieved Oct. 27, 2018, from https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

参考网站

https://blog.csdn.net/baimafujinji/article/details/72863106

https://wenku.baidu.com/view/e93468d1b9f3f90f76c61b3d.html

https://zhzhanp.github.io/papers/matting_survey.pdf

https://arxiv.org/abs/1703.03872

https://cloud.tencent.com/developer/article/1116658

https://blog.csdn.net/qq_36165459/article/details/78550293

https://blog.csdn.net/u012905422/article/details/62226403

https://t.cj.sina.com.cn/articles/view/5703921756/m153faf05c01900a9i8

http://cfg.mit.edu/sites/cfg.mit.edu/files/sss_3.pdf

http://people.inf.ethz.ch/aksoyy/sss/

https://www.jiqizhixin.com/articles/030202

https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

https://zhuanlan.zhihu.com/p/30443186

https://research.adobe.com/cloak-remove-unwanted-objects-in-video/

https://theblog.adobe.com/peek-behind-sneaks-filmmakers-gain-power-invisibility/


#courses
本文总字数 5019
本文阅读量
本站访客量

↪ reply by email