Victory组近期整理了图像精细分割技术开源代码,文章刊登于《中国计算机学会计算机视觉专委会简报》2018年第6期上。
图像精细分割(Image Matting)又名抠图,旨在把图像的前景从背景中精确地分离出来。该技术依据的公式为
(1)
Ii为已知像素值,Fi和Bi分别为前景像素值和后景像素值,αi为Bi在前景中的透明度,且Fi、Bi和αi均未知。如图1所示,从左到右依次为原图、三分图(Trimap)、Matting图(也叫ɑ图)。图像精细分割的实现是通过原图得到相应的三分图,再根据三分图精确计算出每个像素的值。
图1 图像精细分割示意图
本文着重介绍几个用于图像精细分割技术的开源代码,包括图像精细分割的标准测试数据集和算法,具体算法包括Bayesian Matting、Closed Form Matting、Spectral Matting、KNN Matting、Deep Image Matting。
1. 图像精细分割数据集alphamatting.com
介绍:Alphamattin.com是图像精细分割的标准测试网站,其图像用于测试图像精细分割的准确度。它包含27个训练图像和8个测试图像。
主页:
http://alphamatting.com/
2. 图像精细分割算法
图像精细分割的算法有很多,经alphamatting.com数据集测试,目前分割效果最好的三个算法如图2所示,由于部分技术代码并未开源,因此下面将着重介绍几个使用较多且已开源的技术。
图2 alphamatting.com数据集中SAD排行榜前三名
2.1. Bayesian Matting
论文:Chuang Y Y,Curless B, Salesin D H, et al. A Bayesian approach to digital matting[C]//Computer Vision and Pattern Recognition, 2001. CVPR 2001. Proceedings of the2001 IEEE Computer Society Conference on. IEEE, 2003:II-264-II-271 vol.2.
工作:从条件概率的角度求解未知的Fi、Bi和αi。如公式2所示,公式右端需要通过采样统计的方式进行估计,而这种估计结果的准确性,很大程度上决定了算法的融合质量。具体来说,算法采用一个连续滑动的窗口对邻域进行采样,窗口从未知区域和已知区域之间的两条边开始向内逐轮廓推进,计算过程也随之推进。
(2)
图3 Bayesian Matting的采样过程
代码:
https://github.com/MarcoForte/bayesian-matting
2.2. Closed Form Matting
论文:LevinA, Lischinski D, Weiss Y. A Closed Form Solution to Natural Image Matting[J].IEEE Transactions on Pattern Analysis & Machine Intelligence, 2007,30(2):228-242.
工作:封闭式表面抠图假定局部颜色分布遵循前文中的公式(1),其中局部窗口内的颜色可以表示为两种颜色的线性组合。基于这个假设,Levin导出了matting Laplacian,证明了前景的alpha matte可以在没有明确估计前景和背景颜色的情况下以封闭的形式求解。至此,matting Laplacian被广泛地用作正则化以增强估计的alpha matte和其他应用的平滑性。该方法的优点是参数少,不足就是假设失效的情况也是比较多的,且需人工辅助标注前后景局部区域。
图4 Closed Form Matting示例。(a)、(c)是笔刷标注后的图像,前景用白色,后景用黑色,(b)、(d)是提取后的前景图像
代码:
https://github.com/MarcoForte/closed-form-matting
2.3. Spectral Matting
论文:LevinA, Ravacha A, Lischinski D. Spectral matting.[J]. IEEE Transactions on PatternAnalysis & Machine Intelligence, 2008, 30(10):1699-1712.
工作:从matting Laplacian矩阵的最小特征向量所构成的特征子空间来构建理想的matting components,然后通过优化一个关于matting components的代价函数来得到最终的alpha-matte。此方案抽取了soft mattingcomponents的方法来使分割后的图像边缘更平滑,同时实现了无监督学习alpha-matte,省去了用户提供trimap或者scribble的过程。
代码:
http://www.vision.huji.ac.il/SpectralMatting/code.tar.gz
2.4. KNN Matting
论文:Chen Q,Li D, Tang C K. KNN matting[C]// Computer Vision and Pattern Recognition. IEEE,2012:869-876.
工作:KNN抠图属于非局部抠图,其目标是通过在非局部像素中传播alpha值来解决matting Laplacian的局限性。类似于closed form matting,非局部抠图也对采样的非局部像素进行了假设。它假定像素的α值可以通过具有相似外观的非局部像素的α值的加权和来描述。它通过仅考虑颜色和它们特征空间中的位置相似性来减少计算。优点也是参数少,易于调整;不足是难以定义一个通用的特征空间。
代码:
https://github.com/dingzeyuli/knn-matting
2.5. Deep Image Matting
论文:Xu N,Price B, Cohen S, et al. Deep Image Matting[J]. 2017.
工作:Adobe提出一种基于深度学习的新算法,主要解决传统方法中只有low-levelfeatures和缺乏high-levelcontext的问题。深度模型分为两个阶段。第一阶段是深度卷积编码-解码网络,该神经网络将原图和对应的tri-map作为输入,并预测图像的alpha matte。第二阶段是一个小型卷积神经网络,该网络对第一个网络预测的alphamatte进行精炼,从而拥有更准确的α值和锐化边缘。
图5 Deep Image Matting网络结构
代码:
https://github.com/Joker316701882/Deep-Image-Matting
李梦园
北京电子科技学院在读研究生,研究方向为计算图像语义分割。
Email:mengyuan_626@126.com