基于图像分割的立体匹配方法

1.绪论

立体匹配是三维重建系统的关键步骤,并且作为一种非接触测量方法在工业以及科研领域具有重要的应用价值。为了完成匹配工作以及获取场景的稠密视差图,可以通过构建能量函数对应立体匹配的约束条件。复杂能量函数的全局最优解通常是NP难问题。相对于其他全局优化算法相比如模拟退火、梯度下降、动态规划等,图割算法不仅精度高,收敛速度快,并且对于光照变化、弱纹理等区域的匹配效果也比其他算法好。

2.图割算法

计算机视觉领域的大部分问题可以转换为标号问题,在立体匹配中视差的求解就是对图像的像素在视察范围内的离散标号问题。离散标号的最优解问题可以采用能量函数的最小化来求解,图割做为一种可以求解能量最小化问题的算法,在计算机视觉领域的应用非常广泛,如图像分割,图像恢复,立体匹配等。

Kolmogorov指出了如何将能量函数最小化问题与立体视差计算联系起来。通常使用图割算法进行立体匹配分为三个步骤,建立网络图,图割算法求解,生成视差图。图割算法由于其全局优化的特性能够获取效果良好的稠密视差图,但是对于处理高分辨率图像其运算量过大,为了降低运算量,一般思路都是采用分割后的图像缩小网络图的规模从而降低计算量。然而由于采用自动化非交互的彩色图像分割方法会把相同视差的区域分开或隐去了图像的部分细节信息,导致分割误差,而消除误差需要引入其他方法,如通过引入初试视差估计等方法,但这些方法增加了立体匹配算法的整体复杂度,而且没有有效利用分割信息。

在实际应用场景中为了获取感兴趣区域的精细视差图,针对于以往基于图像分割的立体匹配算法复杂、计算量大,没有充分利用分割结果的信息等缺点,本文提出了一种基于图像分割的立体匹配方法。该方法在图像分割时采用可交互的图割方法获得感兴趣目标,只针对感兴趣目标进行立体匹配,因此运算量大大减少,同时保留了原有图割算法具有的全局最优特性。

2.1 能量函数

使用图割算法进行立体匹配的过程中,需要将图割中的网络图和能量函数对应起来。能量函数定义为:

该能量函数的四项分别为数据项,遮挡项,平滑项,唯一项。每一项都表征匹配时待处理的问题。

  • 1)数据项

    数据项是为了让算法获取最佳的像素匹配,像素之间的色彩相似度越高,数据项的值越小。

    其中函数D(a)用来表征匹配像素p,q之间的不相似性,a = (p,q)表示如果p,q像素匹配,数据项约束生效并可以按照下式:进行展开计算。

  • 2)遮挡项

    遮挡项的作用依然是为了将匹配像素个数最大化,对于存在遮挡无法匹配的像素按照下式乘以惩罚系数,由公式可知遮挡像素越少,遮挡项的值越小。

  • 3)平滑项

    平滑项主要衡量的内容是对于临近像素一般具有相似性特别是色彩相似这一特点,对于像素p而言其邻接像素p1和p2应该具有相同的视差分配。

    平滑项一般采用分段函数。其中可以按照距离度量展开成分段函数。平滑项的值越低意味着临近像素的视差越相近。

  • 4)唯一项

    唯一项专注于立体匹配的唯一性约束,若待匹配点出现了不止一个匹配的情况则将惩罚值设置为无穷大。下式为其数学表达

2.2 网络流

(一)最大流

对于带有源点S和汇点T的有向图,称为网络图。在网络图中设f是定义在集合E上的非负函数。用fij表示f在弧e = (vi,vj)上的值,即为弧e上从vi到vj的流量称为网络流。网络流fij满足下列两个条件:

  • 1.流量Fij不超过弧的容量Cij,
  • 2.对于任意顶点vi,从vi留出的流量等于从vi流入的流量。即:

    满足上述条件的所有网络流中流量最大的一个,称为最大流。

(二)最小割

网络图中一个S-T的割意味着将顶点集分为两部分,。割的代价为顶点集到所有割边的容量和,容量和最小的割称为最小割。设x 和y 是顶点集V中的两个顶点,(x,y)表示从x 到y 的一条边,其边的权值表示为c(x,y)。因此对于图G=(v,e)其一个割可以表示为:

Ford 和 Fulkerson 早在1962年证明了最大流和最小割的等价对应关系。通过求网络图的最大流来等价其最小割,进而可以获取此最小割对应能量函数的全局最小值。一个值得注意的工作为Boykov等人提出的基于图割理论有效的能量函数优化方法。在该方法中,作者提出标号函数的两种比较大的移动,扩张移动

(expansion moves)和交换移动(swap moves),并证明了其扩张算法所获得的局部小和全局小相差一个已知的常数,而交换算法可以处理更一般的能量函数形式。本文使用扩张移动算法。

3.立体匹配网络图的构造

在使用图割算法进行立体匹配过程中首先需要构建网络图,对于上文提到的网格图由节点和连接节点的有向边组成。源点S,汇点T为两个特殊节点。边分为两种,一种视差边,一种是平滑边。视差边对应于能量函数(公式(1))第1项,平滑边对应于能量函数第2项。

网格图的具体构建过程如下:

  • 1.建立3维坐标系O-XYZ,把图像置于OXY平面,得的原点,X轴、Y轴与OXY平面的原点以及相应的轴重合。
  • 2.在Z轴的正半轴上,从原点开始等距离的放置向量了l1,l2,…ln,在l1即原点O的地方放置q0,对于i=1,2,…n-1在li和li+1的中点放置点qi,最后在ln处放置qn。

至此,由OXY平面中像素点p=(px,py)以及Z的正半轴上点q0,q1,…qn构成了一个立方体网格。我们可以知道,对i=1,2,…n-1,在Z轴上的每个区间[qi,qi+1]恰好包含一个li+1。记(p,qi)=:(px,py,qi)为立方体网格上的节点,N(P)为像素点P的邻域。在网络图两端分别添加两个节点,即源点S,汇点T。并在S到I1中每个属于左视图分割模版(图(1))中标记为前景的像素点之间添加一个边,在T到集合即立方体网络上与OXY平面相对的另一个面上的节点,添加到汇点的边。由此,获得一个无向图G=< v,e >即:

则网络图中各边的容量为:

  • (1)源点,汇点连接边的容量为:汇点链接边的容量

  • (2)视差边的容量为:对任意,边的容量为:

    在对视差边的处理上,视差边对应能量函数的数据项,既(1)式的第一项,在彩色图像中我们对RGB三通道分开处理,再求加权平均,这样保留了颜色信息,结果更加精准,特别的,为了更进一步的准确,本文采用线性最近邻插值算法添加了亚像素信息。上式可以扩展为:

为彩色图像各个通道的权值,可取0.29,0.11,0.58,或者0.33。

  • (3)光滑边的容量:p, q为衣服图像中相邻两像素:

    于是网络图构建完成,如图所示:

4.基于图割算法的图像分割

本文以图割算法为基本框架,采用基于图像分割的办法来实现对于感兴趣物体的立体匹配。由于彩色图像分割算法会影响到后期立体匹配的结果,所以选取合适的分割算法非常重要。

基于自动化非交互的分割方法可能会把相同视差的区域分开或者隐去了图像的部分细节信息,这就造成了误差,而消除误差需要引入其他方法,如通过引入局部匹配算法为分割模版提供初试视差估计等方法,但这些方法提升了立体匹配算法的整体复杂度,而且没有有效利用分割信息。所以本文采用基于图割算法的图像分割,在构建立体匹配网络图的同时进行图像分割。

在图像分割问题中我们定义如下的能量函数形式:

传统基于图割算法的图像分割将上式映射为求解对应加权图的最大流/最小割问题,对于低分辨率的简单图像交互分割效果良好但是计算复杂度较高,内存开销大。为了提高分割速度并且适用于高分辨率图像,将图像分割融入立体匹配的流程中。本文采用文献[22]中的方法,通过添加辅助索引节点,并使用新的能量函数形式:

加速分割并减少运算量。公式(5)数据项中跟表示前景物体跟背景的非归一直方图,平滑项中

,为图像中所有⊿I的均值。该方法简化了图割计算时间,并且得到了非常精准的分割结果。如下所示(蓝色种子点用来标记背景,红色种子点用来标记前景):

baby1左视图种子点设置 左视图分割结果
baby1右视图种子点设置 右视图分割结果

5.图割算法立体匹配

在立体匹配问题中,视差图的标号问题可以等价为全局能量函数的最小化求值问题,通常表示为Greig能量函数形式

在图1中,点表示源点,点表示汇点,视差边对应于能量函数式(1)中的第一项,平滑边对应于能量函数第二项。求解式(1)的能量函数的最小值可以等价为求解图的最小割问题,获得全局最优的视差图。

为了减少立体匹配的运算量,本文根据图像分割的结果得到感兴趣物体与分割模版,由分割模版构建网络图,使用图割算法进行立体匹配,有效利用了分割信息。综上所述本文算法可以概括为两大步骤:1感兴趣目标的提取,2利用网络图进行立体匹配。算法流程图如图2所示:

Figure 2 Flow chart of the Algorithm

本文相对于传统方法,根据每个像素构建网络图的算法有所不同。对于图,在两端分别添加源点,汇点之后,只在到中每个属于左视图分割模版中标记为目标的像素点之间添加边,在T到集合即立方体网络上与平面相对的另一个面上的节点,添加对应到汇点的边。通过上述方法,可以大大减少计算量。

为了进一步优化匹配结果,本文在对网络图中视差边的处理上,针对彩色图像采用RGB三通道分开处理,用线性最近邻插值算法在图像的横坐标方向添加了亚像素信息。即将(2)式扩展为:

式中为彩色图像各个通道的权值。

按照上述的方法法构造网络图,并给各个边赋相应的权值,采用基于增广路的最大流算法求解,得到全局最小值,即为最优视差匹配。

参考文献

[16]Boykov Y, Kolmogorov V. An experimental comparison of min-cut/max-flow algorithms for energy minimization in vision[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2004, 26(9): 1124-1137.

[19]Roy S, Cox I J. A maximum-flow formulation of the n-camera stereo correspondence problem[A]// IEEE International Conference on Computer Vision[A], 1998 January 4-7, Bombay India:492-499.

[20]Hong L, Chen G. Segment-based stereo matching using graph cuts[A]// IEEE Conference on Computer Vision and Pattern Recognition[C],2004 June 27-July 2,Washington DC USA:74-81.

[23]Tang M, Gorelick L, Veksler O, et al. GrabCut in One Cut[A]// IEEE International Conference on Computer Vision[C], 2013 Dec 01 - 08, Sydney, Australia 1769-1776.

[24]王年, 范益政, 鲍文霞等. 基于图割的图像匹配算法[J]. 电子学报, 2006, 34(2):232-236.

[25]Scharstein D, Szeliski R. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms[C]// Stereo and Multi-Baseline Vision, 2001. (SMBV 2001). Proceedings. IEEE Workshop on. IEEE, 2001:131-140.

[28]Deng Y, Yang Q, Lin X, et al. A symmetric patch-based correspondence model for occlusion handling[C]// Proceedings / IEEE International Conference on Computer Vision. IEEE International Conference on Computer Vision. 2005:1316-1322 Vol. 2.

[29]Freeman W T. Comparison of graph cuts with belief propagation for stereo, using identical MRF parameters[C]// Computer Vision, 2003. Proceedings. Ninth IEEE International Conference on. IEEE, 2003:900.

[30]Kolmogorov V. Graph based algorithms for scene reconstruction from two or more views[D]. Cornell University, 2004.

[31]Kolmogorov V, Zabih R. Multi-camera scene reconstruction via graph cuts[M]//Computer Vision—ECCV 2002. Springer Berlin Heidelberg, 2002: 82-96.

时间: 2024-09-29 20:15:39

基于图像分割的立体匹配方法的相关文章

基于图像分割的目标识别

1. 图像分割的背景与意义 在应用方面,由于图像分割是从图像处理到图像分析的重要一步,所以自从它的产生到现在,一直受到人们的高度重视.它主要起源于上世纪70年代的电影行业.至今为止,随着我们科技的不断进步,我们也提出了许多种图像分割的算法,并且也有了不小的成绩,而且图像分割也已经在我们的生活中的各个领域得到了广泛的应用,例如在在线产品检验.生产过程控制.文档图像处理.工业自动化.遥感.生产过程控制和生物医学的图像分析,以及体育.农业.军事工程等方面.但是,到目前为止我们还没有一种较为通用的分割方

基于图像分割的目标识别的研究

1.课题研究的背景 图像分割是把图像分成几个特定的区域,然后提取出所需的对象目标的技术和过程.由于图像分割是从图像处理到图像分析的重要一步,所以自从它的产生到现在,一直受到人们的高度重视.而且图像分割的结果是图像特征提取和识别等图像理解的基础,对图像分割的研究也一直是数字图像处理技术的焦点和热点.它主要起源于上世纪70年代的电影行业,从图像分割技术产生发展到现在的这几十年中,随着我们科技的不断进步,我们也提出了许多种图像分割的算法,并且也有了不小的成绩,而且图像分割也已经在我们的生活中的各个领域

了解移动用户的隐私期望:一种基于推荐的Crowdsourcing方法

应学习之需,最近一段时间阅读了一篇论文,特写下总结,若有纰漏,还望指出. 目录 引言 推荐机制 1.1 为什么要了解移动用户的隐私期望 1.移动设备的广泛使用存在一些潜在的隐私威胁和信息泄漏. 2.系统供应商针对这个问题已经提出了相应措施,例如:苹果的iOS系统可以让用户控制应用是否可以访问特定的敏感数据源.Android平台同样也有类似的细粒度权限控制机制.然而,存在自身缺点:不包括所有的用户都具备知识背景能够正确地进行隐私配置.同时是一项乏味且具有挑战性的工作.用户体验不高. 3.没有一个简

数据库分表和分库的原理及基于thinkPHP的实现方法

为什么要分表,分库: 当我们的数据表数据量,访问量很大,或者是使用频繁的时候,一个数据表已经不能承受如此大的数据访问和存储,所以,为了减轻数据库的负担,加快数据的存储,就需要将一张表分成多张,及将一类数据存入不同的几张表,当分表已经不能满足需求是,我们还可以分库,及用几个数据库存储. 分表会随着需求和功能的不同有不同的实现方法,下面是我做项目中的一个例子: 需求:product,product_price两张表是一对多的关系,及产品和产品每日的价格,一个产品对应几种价格,现在由于产品表数据量很大

基于fMRI生理噪声抑制方法知识的应用研究

第六章 基于fMRI生理噪声抑制方法知识的应用研究 6.1 引言 生理噪声抑制研究的应用可分为两个方向,纵向研究应用和横向研究应用.将生理噪声抑制操作融入fMRI信号分析的预处理环节中,属于纵向研究应用.比如,Kelley等人[74]利用python编程语言编写的生理噪声处理工具包PhysioNoise:牛津大学功能磁共振研究中心推出的FSL(FMRIB Software Library)软件包[75]融入了生理噪声抑制预处理组件PNM(Physiological Noise Modelling

机器学习四 -- 基于概率论的分类方法:朴素贝叶斯

基于概率的分类方法:朴素贝叶斯 贝叶斯决策理论 朴素贝叶斯是贝叶斯决策理论的一部分,所以在讲解朴素贝叶斯之前我们先快速简单了解一下贝叶斯决策理论知识. 贝叶斯决策理论的核心思想:选择具有最高概率的决策.比如我们毕业选择就业方向,选择C++方向的概率为0.3,选择Java的概率为0.2,选择机器学习的概率为0.5.那么我们就把这样的一位毕业生就业方向归类为机器学习方向. 条件概率 什么是条件概率?事件A在另一个事件B已知发生条件下的发生概率,记为P(A|B),读作“在B条件下A的概率”. 例子1:

浅谈分词算法(2)基于词典的分词方法

[TOC] 前言 在浅谈分词算法(1)分词中的基本问题中我们探讨了分词中的基本问题,也提到了基于词典的分词方法.基于词典的分词方法是一种比较传统的方式,这类分词方法有很多,如:正向最大匹配(forward maximum matching method, FMM).逆向最大匹配(backward maximum matching method,BMM).双向扫描法.逐词遍历法.N-最短路径方法以及基于词的n-gram语法模型的分词方法等等.对于这类方法,词典的整理选择在其中占到了很重要的作用,本

基于MST的立体匹配及相关改进(A Non-Local Cost Aggregation Method for Stereo Matching)

怀着很纠结的心情来总结这篇论文,这主要是因为作者提虽然供了源代码,但是我并没有仔细去深究他的code,只是把他的算法加进了自己的项目.希望以后有时间能把MST这一结构自己编程实现!! 论文题目是基于非局部代价聚类(non-local cost aggregation)的立体匹配,从题目上看这篇论文不是局部算法,但是也不是传统意义上的全局算法.这要从基于窗结构局部立体匹配算法说起,如下图: 我们求左右两幅图像在视差d下一点的cost时,我们实际是求得以该点为中心半径为r的Windows内所有点的c

区域生长法图像分割的实现方法

本文介绍一种区域生长法进行图像分割的数据组织方式和实现方法,给出了核心代码,可用该方法实现立体匹配中的非法点检测. 区域生长法图像分割是直接根据像素的相似性和连通性来对图像进行聚类的算法.基本原理是,给出若干种子点,然后依次对这些种子点进行如下操作,直到种子点集合为空:判断种子点四邻域或八邻域的像素点是否和种子点相似(灰度相似或其他测度相似),如果相似则将该点加入种子点集合,否则不作处理. 该算法原理很简单,但在数据结构的组织上却需要技巧,本文介绍一种简易的数据组织方式实现该算法. 如上图所示,