关于图像抠图算法,Levin等人在2007年基于图像的局部光滑 假设,利用代数的方法推导出了alpha matte矩阵闭合解的形式。原文名称是”A Closed Form Solution to Natural Image Matting”。
在抠图问题中,假设第i个像素点的值 Ii 是由前景点 Fi 和背景点 Bi 按下式加权合成的:
Ii=αiFi+(1−αi)Bi式1
其中
αi
称为前景透明度,也就是要求解的”alpha matte”矩阵,指定了原图中对应像素点的类型——属于背景(
αi=0
)、前景(
αi=1
)或是未知(
0<αi<1
)。鉴于前景图F和背景图B都是未知,要想求解出alpha矩阵,需要其他条件——用户输入提示和图像分布假设。
用户输入方式
不同的抠图系统所接受的用户输入一般有两种形式——trimap或scribbles。两种方式的目的都是要给出alpha matte矩阵的初始估计。trimap的方式需要用户指出所有的混合像素点,哪怕以掺入大量的前景点和背景点为代价,如(a)所示;而scribbles的方法只需用户在确定的前景和背景区域分别画出一些条状区域即可,如下图(b)所示,在转化成alpha matte矩阵时, α 的值同样也是前景处为1,背景处为0,scribble的交互方式显然比trimap的方式要简单,尤其当对于图像前景轮廓比较复杂的时候。
(a)trimap |
(b)scribble |
灰度图
为了使式1可以被求解,必须对F和B施加一些假设,该算法即假定F和B是局部光滑的,也就是在一个小的图像窗口w中(如3x3),F和B固定不变,那么式(1)就可以写成:
αi≈aIi+b,∀i∈w式2
也就是说
α
与
Ii
是线性关系(
a=1F−B
,
b=−BF−B
是常数)。那么就可以简单的定义要优化的目标函数为
α
的估计值与实际值的差:
J(α,a,b)=∑j∈I(∑i∈wj(αi−ajIi−bj)2+εa2j)式3
从表达式可以看出,子窗口存在大量重叠,正是该性质使得像素信息可以进行传播。该算法的巧妙之处在于通过一些代数推导,可以将a和b从式3中消去,转换为只有一个变量 α 的优化问题。
J(α)=mina,bJ(α,