Alpha matting算法发展

一、抠图算法简介

  Alpha matting算法研究的是如何将一幅图像中的前景信息和背景信息分离的问题,即抠图。这类问题是数字图像处理与数字图像编辑领域中的一类经典问题,广泛应用于视频编缉与视频分割领域中。Alpha matting的数学模型是

                  

由Porter 和 Duff于1984 年提出[1]。他们首先引入了α 通道的概念,即它是一种前景和背景颜色的线性混合表示方法。一张图片包含前景信息、背景信息,将该图片看成是前景图和背景图的合成图,于是便有了以上的混合模型。前景α为1, 背景α为 0,α的取值介于0-1之间,表示前后背景图的线性组合。在大多数自然图像中,大多数像素点都属于绝对前景或者绝对背景,如何将其它混合点的α 值准确的估计出来是alpha matting的关键。

  给定一个输入图像,对于所有像素点,它的(F,B, α)都是未知的,需要进行估计,如果图片是灰度图片,每个像素点包含3个未知数,这样的问题是一个欠约束问题。大多数抠图问题需要用户交互的先验条件,使得我们对已知输入图像的颜色统计有预先的估计和假设,从而能够更加准确的估计出未知量的值,常见的人工添加的约束条件有三区标注图(trimap)草图(scribble)两种。

  预先提供的约束条件(trimap图或scribble图)越精确,未知区域内的点就越少,更多前景和背景信息就更容易利用。然而,在实践中,要求预先输入非常准确的 trimap 是一件异常繁琐的工作,不现实也不必要的,如何在预先提供的trimap以及最终算法所求得的抠图结果之间寻求一个最佳答案,不同的抠图算法对于这个问题有着不同的阐述。

二、Alpha matting 算法的发展

  通常,alpha matting算法要解决两个问题,一个是求解图像像素点颜色分布模型,一个是求解像素点颜色和α 值的关系。一些经典的抠图算法会预先假设好局部像素点颜色分布模型和像素点颜色α 值模型,再通过采样(例如贝叶斯抠图[2])或传播(例如封闭式(closed-form)抠图[3])的方法拟合模型,求解α 值,另一些抠图算法将抠图问题视为一个半监督的学习过程,用学习的方法拟合模型求解α 值[4]。以上这些方法中关联像素点是从待定像素的邻域中取的,除了这些局部抠图算法之外,一些学者根据非局部原理提出非局部抠图算法,例如K近邻抠图[5]、全局采样抠图[6]等。近年来深度学习如火如荼,最近比较热门的发展方向是基于CNN的抠图方法[7]

  2003年Chuang Y Y等提出贝叶斯抠图(Bayes matting)[2]算法,核心是通过领域采样,从待定像素的领域像素中采样关联像素,利用图像像素点的颜色值特征,以定向高斯模型建立像素颜色模型,再用极大似然发估计α 值。贝叶斯方法从条件概率的角度去考虑抠图问题,以贝叶斯公式建立F、B和α的联合概率分布,抠图问题就可以被转化为已知图片像素颜色I的情况下,为了最大化后验概率P(F,B,α|I),求 F、B和α估计值的问题。

  2006年Levin A等提出封闭式抠图(Closed formed matting)[3],核心思想是通过传播的方法来利用图像的颜色特征,即允许α值从已知区域传播到领域未知域。封闭式抠图基于两个假设:一是颜色分布遵循颜色线性模型;二是前景背景颜色值局部平滑,并由此推知未知像素的alpha值和该像素点的颜色I呈线性相关关系,经过矩阵计算之后,代价函数表达式转化为关于α的二次型形式:  

                  

  其中L为拉普拉斯矩阵(matting Laplacian matirx),可以由图像局部像素点颜色计算得到。由此,待定点的α值可以在没有明确估计该像素点前景和背景颜色的情况下以封闭的形式求解。

  封闭式抠图方法提出的拉普拉斯矩阵被广泛地于各种抠图方法中。例如,K近邻抠图(KNN matting,2012)[5]就是通过在特征空间取k个最邻近点计算得拉普拉斯矩阵计算α值,这种非局部抠图关注于可以处理更稀疏的trimap,甚至不需要附加的约束条件输入,直接通过图像自身的前景与背景属性的区别来进行分割。

  贝叶斯算法基于图像局部颜色一致性的假设前提,封闭式抠图预先假设了颜色线性模型,这两种经典方法都预先假设了颜色分布模型,考虑到颜色分布不一定服从一个确定的模型,2009年有学者提出了基于学习的抠图算法(learning based matting)[4],将抠图问题视为一个半监督的学习问题,以更通用的学习的方法拟合颜色模型求解α值,并且这种算法模型,除了颜色之外还可以融入其他图像特征。较早期的抠图算法中图像特征只考虑颜色,例如贝叶斯抠图(2003)和封闭式抠图(2006)采用的图像特征是颜色,K近邻抠图(2012)采用的特征是HSV颜色和像素点坐标两种[5],随着抠图算法的发展,算法模型中渐渐融入其他图像特征。例如2017年Chao L[9]设计了一个新的特征,称为SUMD特征,以增加像素识别能力。这种特征是一种纹理特征,功能是使具有相似纹理的像素点具有相似的特征值。

  传统alpha matting 方法通常只使用低层次的特征,基于深度学习的算法可以考虑更高层次的图像特征,并且可以通过创建大型图像数据集来自动优化算法。2017年Xu N等 [7]提出一种基于深度学习的新抠图算法,使用的CNN模型分为两个阶段:第一阶段是深卷积编码器,将原图和对应的trimap图作为输入,预测图像的α;第二阶段是一个小型卷积神经网络,作用是对第一个网络的输出进行精修优化。由于CNN网络可以捕捉到更高阶的图像结构和语义特征,并且可以通过大数据集进行优化,基于深度学习的抠图方法可以更好的适用于真实图像。

三、抠图公式-图像去雾

  图像去雾的研究算法有很多,但是主要分为两类,基于图像增强的去雾算法和基于图像复原的去雾算法。基于图像增强的去雾算法主要是通过去除图像的噪声,提高图像的对比度,从而恢复出无雾清晰图像。而基于图像复原的去雾算法,主要是采用雾化图像模型。

  2009年何凯明[14]提出暗通道去雾算法,将抠图算法应用到图像去雾算法中,以优化透射率计算。何的暗通道去雾算法是基于图像复原的去雾算法,采用雾化图像模型,其数学表达为:

                 

  其中I(x)为观测到的雾化图像,J(x)是景物的实际图像,t(x)是透射率,A 为大气光成分。

      

  图像去雾的目标就是从I(x)中恢复J(x) 、A、 t(x),在雾化图像模型中,大气光成分A虽然是未知量,但一般情况下,它是一个三通道强度值均接近于255的全局常量,唯一的未知是散射率t(x),而在求得t(x)的情况下,可以很容易恢复出实际图像J。

  雾化图像模型抠图公式数学表达形式是一样的,J、A、t分别与前景F、背景B、透明度通道α对应。何参考封闭式抠图[3]的代价函数提出去雾算法透射率的代价函数:

                  E(t) = tTLt                                          

  其中L为拉普拉阿斯矩阵,与封闭式抠图[3]中的拉普拉斯矩阵有着相似的形式,这样就可以采用图像软抠图的方法,对计算得到的透射率图t(x)进行精细优化。

  采用封闭式抠图算法优化图像去雾透射率的方法计算速度较慢,为了解决这个问题,2013年何凯明[15]提出了一种新型的图像滤波方法——引导滤波器,将封闭式抠图算法应用在图像滤波中。

参考文献

[1]       T. Duff, T. Porter. Compositing Digital Images[C]//Proceedings of the 11th Annual Conference on Computer Graphics and Interactive Techniques. 1984:253–259.

[2]       Chuang Y Y, Curless B, Salesin D H, et al. A Bayesian approach to digital matting[C]// IEEE Computer Society Conference on Computer Vision & Pattern Recognition. 2003.

[3]       Levin A , Lischinski D , Weiss Y. A Closed Form Solution to Natural Image Matting[C]// null. IEEE Computer Society, 2006:61-68.

[4]       Zheng Y , Kambhamettu C . Learning based digital matting[C]// 2009 IEEE 12th International Conference on Computer Vision (ICCV). IEEE Computer Society, 2009.

[5]       Chen Q , Li D , Tang C K . KNN Matting[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35(9):2175-2188.

[6]       He K, Rhemann C, Rother C, et al. A global sampling method for alpha matting[J]. 2011.

[7]       Xu N , Price B , Cohen S , et al. Deep Image Matting[J]. 2017.

[8]       He K , Rhemann C , Rother C , et al. A global sampling method for alpha matting[J]. 2011.

[9]       Chao L, Ping W, Zhu X, et al. Three-layer graph framework with the sumD feature for alpha matting[J]. Computer Vision & Image Understanding, 2017, 162:S1077314217301236.

[10]     姚桂林. 数字图像抠图关键技术研究[D].哈尔滨工业大学,2013.

[11]     杨仙魁. 闭合型抠图的研究与应用[D].云南大学,2013.

[12]     崔兆华,高立群,马红宾,李洪军.改进alpha-matting算法及其在军事红外目标提取中的应用[J].渤海大学学报(自然科学版),2013,34(02):225-231+95.

[13]     Al Y Y B E. Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images[J]. Iccv, 2001, 1:105-112.

[14]     He K, Jian S, Tang X. Single image haze removal using dark channel prior[C]// IEEE Conference on Computer Vision & Pattern Recognition. 2009.

[15]     He K, Sun J, Tang X. Guided Image Filtering[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2013, 35(6):1397-1409.

原文地址:https://www.cnblogs.com/smartweed/p/10373565.html

时间: 2024-08-30 11:49:33

Alpha matting算法发展的相关文章

图像抠图算法学习 - Shared Sampling for Real-Time Alpha Matting

http://www.tuicool.com/articles/63aANv 一.序言 陆陆续续的如果累计起来,我估计至少有二十来位左右的朋友加我QQ,向我咨询有关抠图方面的算法,可惜的是,我对这方面之前一直是没有研究过的.除了利用和Photoshop中的魔棒一样的技术或者Photoshop中的选区菜单中的色彩范围类似的算法(这两个我有何PS至少90%一致的代码)是实现简单的抠图外,现在一些state of art 方面的算法我都不了解.因此,也浪费了不少的将知识转换为资产的机会.年30那天,偶

回声消除中的自适应算法发展历程

传统的IIR和FIR滤波器在处理输入信号的过程中滤波器的参数固定,当环境发生变化时,滤波器无法实现原先设定的目标.自适应滤波器能够根据自身的状态和环境变化调整滤波器的权重. 自适应滤波器理论 $x(n)$是输入信号,$y(n)$是输出信号,$d(n)$是期望信号或参考信号,$e(n)=d(n)-y(n)$为误差信号.根据自适应算法和误差信号$e(n)$调整滤波器系数. 自适应滤波器类型.可以分为两大类:非线性自适应滤波器.线性自适应滤波器.非线性自适应滤波器包括基于神经网络的自适应滤波器及Vol

CNN目标检测系列算法发展脉络简析(二):R-CNN

上周简要介绍了一下AlexNet,这周来聊一聊RCNN. 2013年提出的RCNN结合了启发式的区域推荐(Select Search).CNN特征提取器(AlexNet)和传统的图像分类器(SVM),在07-12年的VOC数据集上以压倒性的优势将旧霸主DPM远远甩在身后,详细数据可见原文(https://arxiv.org/abs/1311.2524). 一.模型架构 如上图,RCNN的结构大致可以分为三个部分:区域推荐(Select Search).特征提取(AlexNet).图像分类器(SV

c#实现SharedMatting抠图算法

内容简介 将Alpha Matting抠图算法由c++ 版本移植至c#环境. 主要采用OpenCV的C#版本Emgu取代c++支撑的OpenCV. 参考资料 http://www.inf.ufrgs.br/~eslgastal/SharedMatting/ 这个网页是算法的论文介绍页,可以从该网页下载到论文原文以及测试用图以及linux下的Demo. https://github.com/np-csu/AlphaMatting我从该网页下载了Alpha Matting算法的c++源码. http

RGBA alpha 透明度混合算法

RGBA alpha 透明度混合算法 .分类: 图像处理 Ps技术 2011-05-25 09:11 1112人阅读 评论(0) 收藏 举报 Alpha 透明度混合算法,网上收集整理,分成以下三种: 一. R1,G1,B1,Alpha1 为前景颜色值,R2,G2,B2,Alpha2 为背景颜色值,则 前景色 R = R1 * Alpha1 + R2 * Alpha2 * (1-Alpha1) : G = G1 * Alpha1 + G2 * Alpha2 * (1-Alpha1) : B = B

Computer vision:algorithm and application 计算机视觉算法与应用

最近在看Computer vision:algorithm and application计算机视觉算法与应用这本书,感觉对机器视觉学习很好的一本书,下面对书本知识和网上的资源作个总结. 先从后面的附录开始看,其中包括数据集站点,相关机器视觉软件和参考文献,对今后算法学习与实现有用. 下面是学长整理的一些资料,现在搬过来学习学习: 以下是computer vision:algorithm and application计算机视觉算法与应用这本书中附录里的关于计算机视觉的一些测试数据集和源码站点,

paper 27 :图像/视觉显著性检测技术发展情况梳理(Saliency Detection、Visual Attention)

1. 早期C. Koch与S. Ullman的研究工作. 他们提出了非常有影响力的生物启发模型. C. Koch and S. Ullman . Shifts in selective visual attention: Towards the underlying neural circuitry. Human Neurobiology, 4(4):219-227, 1985. C. Koch and T. Poggio. Predicting the Visual World: Silenc

计算机视觉算法与代码集锦

计算机视觉算法与代码集锦 计算机视觉是结合了传统摄影测量,现代计算机信息技术.人工智能等多学科的一个大学科,是一片开垦不足的大陆,路很远,但很多人都在跋涉! 本文转自CSDN(地址http://blog.csdn.net/whucv/article/details/7907391),是一篇很好的算法与代码总结文档,转载在此供大家学习参考. 原文如下: UIUC的Jia-Bin Huang同学收集了很多计算机视觉方面的代码,链接如下: https://netfiles.uiuc.edu/jbhua

paper 116:自然图像抠图/视频抠像技术梳理(image matting, video matting)

1. Bayesian Matting, Chuang, CVPR 2001.http://grail.cs.washington.edu/projects/digital-matting/papers/cvpr2001.pdf  论文下载http://grail.cs.washington.edu/projects/digital-matting/image-matting/项目网址 2. GraphCut Segmentation System, Rother, 2004.http://pd