本发明属于数字图像处理技术领域,特指一种基于双目视觉的全自动前景背景分隔方法。
背景技术:
在机器视觉领域,双目立体视觉技术具有越来越重要的位置,其在医疗诊断、手机摄影、图像跟踪等领域有着广泛应用。人们对深度图像的质量的要求也越来越苛刻,尤其是深度图像的边缘部分。在传统的立体匹配算法中生成很精确的深度图边界很困难的。因此有必要采用一种新的方法来来弥补立体匹配算法在这点上的缺陷。
一种很有前途的方法就是利用图像抠图蕴含的丰富的边界细节。但是现有的经典抠图算法,都要求用户首先指明确定的前景、背景部分,不能实现自动化的抠图。这很大程度上限制了抠图的应用范围,例如在手机上的应用。更糟糕的是,这使得抠图质量完全取决于用户指定的前景、背景的代表性,如果用户指定的确定性前、背景不全面,那么抠图效果会大打折扣。
技术实现要素:
针对现有方法的不足,本发明其目的在于提出一种基于双目视觉的全自动前景背景分隔方法。将图像抠图看作是一个粗糙的“深度图”。因此,深度图能为图像抠图提供可靠地前景、背景分割,能够自动生成trimap,同时深度值也能为图像抠图算法提供新的信息,使其在实现多层抠图时更加精确。本发明将双目立体匹配算法与图像抠图算法相结合,达到互相迭代增强的效果,并实现自动抠图,无需人机交互,可以使这项技术更加便利,适用范围更加广泛,例如可以应用在现有的双目手机上。
本发明的技术方案是:
一种基于双目视觉的全自动前景背景分隔方法,包括以下步骤:
s1对经过行配准的双目图像,使用局部匹配算法得到初始视差图;
s2利用步骤s1得到的初始视差图,自动生成trimap,得到初始化抠图;
s3将步骤s2得到的初始化抠图中的抠图信息融入到步骤s1的局部匹配算法中,得到优化后的视差图;
s4利用步骤s3得到的优化后的视差图,将视差与颜色信息一起作为平滑项优化步骤s2得到初始化抠图;
s5重复迭代步骤s3和s4,重复迭代2次以上,输出最终的视差图和抠图。
本发明中:
步骤s1的实现方法是:
步骤s11:在双目图像中的左、右图像内,选取大小为(2n+1)*(2n+1)的窗口,在候选视差值为d={-dmax,…,-1,0,1,…,dmax}(dmax代表最大视差范围)下,计算颜色距离代价ci、梯度距离代价
其中,x,y代表位于窗口中心的像素点p的横纵坐标,d∈d,i、j均为自然数;il、ir分别代表双目图像中的左、右图像对应像素点的像素值,
步骤s12:采用winnertakesall来选择像素点p的最优视差值dp。
其中,dlp为左图像上像素点p对应的初始视差值,drp为右图像上像素点p对应的初始视差值。
步骤s13:遍历双目图像中的左、右图像内的所有大小为(2n+1)*(2n+1)的窗口,按照同样的方法得到所有像素点的最优视差值,生成左右两幅初始视差图。
步骤s2的实现方法是:
步骤s21:采用分水岭算法对步骤s1得到的初始视差图进行划分,根据预先设定的阈值将分割后的视差图二值化为前景、背景。
a.对步骤s1得到的初始视差图计算梯度,并对梯度进行阈值处理:
g(x,y)=max(grad(d(x,y)),θ)(5)
其中,d(x,y)代表步骤s1得到的初始视差图上任一点的视差值,g(x,y)代表该点的梯度值,θ为阈值,grad()为梯度函数。
b.对步骤a得到的梯度图像使用分水岭算法分割成前景、背景两部分。
步骤s22:对步骤s21得到的前景、背景进行形态学腐蚀,并进行二值化得到确定的前景、背景,腐蚀部分作为不确定性区域得到traimap。
步骤s23:计算双目图像中的左、右图像中各像素点的不透明度α,生成左、右图像相应的初始化抠图,其能量函数公式为:
其中,l为拉普拉斯矩阵,其第(i,j)项为:
其中,δij为克罗内克积,ai是像素点的rgb三维向量,μk是双目图像其左、右图像中任意大小为3×3的窗口wk内向量ai的平均向量,|wk|是窗口k内像素点的个数,ε是一个用来保证数值稳定性的常数,σk是一个3×3的协方差矩阵,i3是一个3×3的单位矩阵。
步骤s3中,将步骤s2计算得到的左、右图像各像素点的不透明度α融入到步骤s1的局部匹配算法中,得到优化后的视差图,其实现方法如下:
步骤s31:在步骤s2得到的左、右图像相应的初始化抠图即左初始化抠图和右初始化抠图中,遍历所有大小为(2n+1)*(2n+1)的窗口,在候选视差值为d={1,2,…,dmax}下,计算左、右图像相应的初始化抠图不透明度的匹配代价cα:
其中,x,y代表窗口的中心像素点p的横纵坐标,d∈d,αr、α1分别代表左初始化抠图和右初始化抠图对应点不透明度;
步骤s32:将cα加到公式(3)中,计算优化后的双目视差代价聚合函数:
c'(x,y,d)=c(x,y,d)+ξ·cα(x,y,d)(9)
其中,ξ为平衡参数,取值范围为[0,1]。
步骤s33:将步骤s32得到的优化后的双目视差代价带入公式(4),得到左初始化抠图和右初始化抠图中像素点p的最优视差值,按照同样的的方法,得到左初始化抠图和右初始化抠图中的所有像素点的最优视差值,生成左右两幅优化后的视差图。
步骤s4中,利用步骤s3得到的优化后的视差图,将视差与颜色信息一起作为平滑项对步骤s2求出的左、右图像各像素点的不透明度α进行加权滤波,优化步骤s2得到初始化抠图;
其中,wc、wd分别表示颜色与视差距离的权重,其值的计算公式为:
wc(i(i),i(j))=exp{-||ii-ij||2/wc}(9)
wd(d(i),d(j))=exp{-||di-dj||2/wd}
其中,wc、wd分别为预设的调整颜色值i、视差值d距离权重的参数。
本发明提出一种基于双目视觉的全自动前景背景分隔方法,在初始化阶段,首先局部匹配算法初步生成视差图,之后利用初始视差图生成trimap,并按照levin等人提出的基于颜色线性假设理论方法求解出初始不透明度α。在迭代优化阶段,首先将左右图像的不透明度信息融入代价聚合函数增强视差图,尤其是边界区域。再利用增强的视差图为抠图提供更加可靠地trimap,并利用视差梯度作为扩散映射插入到抠图公式中。整个优化过程不断迭代直至得到满意的结果。
本发明结合双目视差与图像抠图算法,充分利用二者提供的互补信息,经过迭代优化得到高质量的视差图与图像抠图。其思路是借助视差图实现图像抠图的自动生成与增强;利用图像抠图蕴含的丰富的边界细节信息提升视差图的效果。相比于手动抠图算法,本发明实现了自动抠图,并能处理人工难以标注的图像区域,得到更加精确的trimap。经过实验验证该算法具有很好的鲁棒性,明显降低了视差图边界处的误差,提高了图像抠图的准确性。
附图说明
图1是本发明一种基于双目视觉的全自动前景背景分隔方法的流程图;
图2为本发明实现自动得到trimap的示意图。
图3为本发明优化增强深度图和抠图的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
参照图1,为本实施例一种基于双目视觉的全自动前景背景分隔方法的流程图,包括以下步骤:
步骤s1:对经过行配准的双目图像,使用局部匹配算法得到初始视差图;
步骤s11:在双目图像中的左、右图像内,选取大小为(2n+1)*(2n+1)的窗口,在候选视差值为d={-dmax,…,-1,0,1,…,dmax}(dmax代表最大视差范围)下,计算颜色距离代价ci与梯度距离代价
其中,x,y代表位于窗口中心的像素点p的横纵坐标,d∈d,i、j均为自然数;il、ir分别代表双目图像中的左、右图像对应像素点的像素值,
步骤s12:采用winnertakesall来选择像素点p的最优视差值dp:
其中,dlp为左图像上像素点p对应的初始视差值,drp为右图像上像素点p对应的初始视差值。
步骤s13:遍历双目图像中的左、右图像内的所有大小为(2n+1)*(2n+1)的窗口,按照同样的方法得到所有像素点的最优视差值,生成左右两幅初始视差图。
步骤s2:见图2,利用步骤s1得到的初始视差图,自动生成trimap,得到初始化抠图;
步骤s21:采用分水岭算法对步骤s1得到的视差图进行划分,根据预先设定的阈值将分割后的视差图二值化为前景、背景。
a:对步骤s1得到的初始视差图计算梯度,并对梯度进行阈值处理:
g(x,y)=max(grad(d(x,y)),θ)(5)
其中,d(x,y)代表步骤s1得到的初始视差图任一点的视差值,g(x,y)代表该点的梯度值,θ为阈值,grad()为梯度函数。
b:对步骤a得到的梯度图像使用分水岭算法分割成前景、背景两部分,
步骤s22:对步骤s21得到的前景、背景进行形态学腐蚀,并进行二值化得到确定的前景、背景,腐蚀部分作为不确定性区域得到traimap。
步骤s23:根据levin等人提出的基于颜色线性假设理论a.levin,d.lischinski,andy.weiss.2008.aclosedformsolutiontonaturalimagematting.ieeetrans.onpami,30(2):228–242.计算双目图像中的左、右图像中各像素点的不透明度α,生成左、右图像相应的初始化抠图,其能量函数公式为:
其中,l为拉普拉斯矩阵,其第(i,j)项为:
其中,δij为克罗内克积,ai是像素点的rgb三维向量,μk是双目图像的左、右图像任意大小为3×3的窗口wk内向量ai的平均向量,|wk|是窗口k内像素点的个数,ε是一个用来保证数值稳定性的常数,σk是一个3×3的协方差矩阵,i3是一个3×3的单位矩阵。
步骤s3:将步骤s2得到的左、右图像各像素点的不透明度融入到步骤s1的局部匹配算法中,得到优化后的视差图;
步骤s31:在步骤s2得到的左、右图像相应的初始化抠图即左初始化抠图和右初始化抠图中,遍历所有大小为(2n+1)*(2n+1)的窗口,在候选视差值为d={1,2,…,dmax}(dmax代表最大视差范围)下,计算左、右图像相应的初始化抠图不透明度的匹配代价cα:
其中,x,y代表窗口的中心像素点p的横纵坐标,d∈d,αr、αl分别代表左初始化抠图和右初始化抠图对应点不透明度。
步骤s32:将cα加到公式(3)中,计算优化后的双目视差代价聚合函数:
c'(x,y,d)=c(x,y,d)+ξ·cα(x,y,d)(9)
其中,ξ为平衡参数,取值范围为[0,1]。
步骤s33:将步骤s32得到的优化后的双目视差代价带入公式(4),得到左初始化抠图和右初始化抠图中像素点p的最优视差值,按照同样的的方法,得到左初始化抠图和右初始化抠图中的所有像素点的最优视差值,生成左右两幅优化后的视差图。
步骤s4:利用步骤s3得到的优化后的视差图,将视差与颜色信息一起作为平滑项对步骤2求出的左、右图像各像素点的不透明度α进行加权滤波,优化步骤s2得到初始化抠图:
其中,wc、wd分别表示颜色与视差距离的权重,其值的计算公式为:
wc(i(i),i(j))=exp{-||ii-ij||2/wc}(9)
wd(d(i),d(j))=exp{-||di-dj||2/wd}
其中,wc、wd分别为预设的调整颜色值i、视差值d距离权重的参数。
步骤五:重复迭代步骤s3和s42~3次,输出最终的视差图和抠图,见图3。
以上包含了本发明优选实施例的说明,这是为了详细说明本发明的技术特征,并不是想要将发明内容限制在实施例所描述的具体形式中,依据本发明内容主旨进行的其他修改和变型也受本专利保护。本发明内容的主旨是由权利要求书所界定,而非由实施例的具体描述所界定。