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

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.

论文资源合集

立体匹配综合论文集 : http://download.csdn.net/detail/wangyaninglm/9591251

基于图像分割的立体匹配论文合集 : http://download.csdn.net/detail/wangyaninglm/9591253

并行立体匹配论文合集 : http://download.csdn.net/detail/wangyaninglm/9591255

基于置信传播的立体匹配论文合集 : http://download.csdn.net/detail/wangyaninglm/9591256

基于稠密匹配的论文合集: http://download.csdn.net/detail/wangyaninglm/9591259

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度相机(二)--结构光深度测距

原文&#xff1a; http://blog.sina.com.cn/s/blog_80ce3a550100wg5j.html http://blog.csdn.net/u013360881/article/details/51395427 网上资源&#xff1a;http://eia.udg.es/~qsalvi/recerca.html 结构光编码&#xff1a; 在3D 的深度获取上&#xff0c;最为常见的方法是类…

用python实现模拟登录人人网

用python实现模拟登录人人网 字数4068 阅读1762 评论19 喜欢46我决定从头说起。懂的人可以快速略过前面理论看最后几张图。 web基础知识 从OSI参考模型&#xff08;从低到高&#xff1a;物理层&#xff0c;数据链路层&#xff0c;网络层&#xff0c;传输层&#xff0c;会话层&a…

双目相机--双目视差与深度距离关系推导详解

相机成像的模型如下图所示&#xff1a; P为空间中的点&#xff0c;P1和P2是点P在左右像平面上的成像点&#xff0c;f是焦距&#xff0c;OR和OT是左右相机的光心。由下图可见左右两个相机的光轴是平行的。XR和XT是两个成像点在左右两个像面上距离图像左边缘的距离。 -----------…

SQL Server有这些属性吗

2019独角兽企业重金招聘Python工程师标准>>> Navicat for SQL Server是一个全面的图形化方式管理数据库&#xff0c;可进行创建、编辑和删除全部数据库对象&#xff0c;例如表、视图、函数、索引和触发器&#xff0c;或运行SQL查询和脚本&#xff0c;查看或编辑BLOB…

【立体视觉】双目立体标定与立体校正

from&#xff1a;https://blog.csdn.net/u011574296/article/details/73826420 参考&#xff1a; 机器视觉学习笔记&#xff08;6&#xff09;——双目摄像机标定参数说明 机器视觉学习笔记&#xff08;8&#xff09;——基于OpenCV的Bouguet立体校正 双摄像头立体成像(三)-畸变…

bootstrap .col-md-6 文字居中问题处理

转载于:https://www.cnblogs.com/benbenfishfish/p/5672520.html

机器视觉学习笔记(4)——单目摄像机标定参数说明

from&#xff1a;https://blog.csdn.net/xuelabizp/article/details/50314633机器视觉学习笔记&#xff08;4&#xff09;——单目摄像机标定参数说明 标签&#xff1a; 机器视觉1.针孔摄像机模型 在介绍摄像机标定参数之前&#xff0c;需要先简单说一下针孔摄像机的原理。投影…

mysql 5.6 binlog组提交

mysql 5.6 binlog组提交实现原理http://blog.itpub.net/15480802/viewspace-1411356 Redo组提交 Redo提交流程大致如下 lock log->mutex write redo log buffer to disk unlock log->mutex fsync Fsync写磁盘耗时较长且不占用log->mutex&#xff0c;也就是其执行期间其…

张正友相机标定Opencv实现以及标定流程标定结果评价图像矫正流程解析(附标定程序和棋盘图)

from&#xff1a;https://blog.csdn.net/dcrmg/article/details/52939318使用Opencv实现张正友法相机标定之前&#xff0c;有几个问题事先要确认一下&#xff0c;那就是相机为什么需要标定&#xff0c;标定需要的输入和输出分别是哪些&#xff1f;相机标定的目的&#xff1a;获…

opencv双目视觉标定、匹配和测量 (附代码)

from&#xff1a;https://blog.csdn.net/bcj296050240/article/details/52778741双目视觉原理方面参照《学习Opencv》和大牛博客 http://blog.csdn.net/chenyusiyuan/article/details/5970799中16-19系列博客。本文主要记录我自己在双目视觉标定&#xff0c;立体匹配&#xff0…

工业相机的选择方法

信号  工业相机的信号类型有模拟信号和数字信号两种。模拟相机必须有图像采集卡&#xff0c;标准的模拟相机分辨率很低&#xff0c;采集到的是模拟信号&#xff0c;经数字采集卡转换为数字信号进行传输存储。工业数字相机采集到的是数字信号&#xff0c;数字信号不受电噪声影…

socket编程初级

什么是socket定义socket通常也称作套接字&#xff0c;用于描述IP地址和端口&#xff0c;是一个通信链的句柄&#xff0c;应用程序通常通过套接字向网络发出请求或者应答网络请求。socket起源于Unix&#xff0c;而Unix/Linux基本哲学之一就是“一切皆文件”&#xff0c;对于文件…

OpenCV—基本数据结构与示例

OpenCV的基本数据结构及示例OpenCV中强大的Mat类型大家已经比较熟悉了。这里梳理一些在工程中其他经常用到的几种基本数据类型。包括&#xff1a;VecScalarPointSizeRectRotatedRect1. Vec类1.1 基本概念Vec是一个模板类&#xff0c;主要用于存储数值向量。1.2 用法&#xff08…

转载-程序员编程技术迅速提高的终极攻略

2019独角兽企业重金招聘Python工程师标准>>> 前言 你是否觉得自己从学校毕业的时候只做过小玩具一样的程序&#xff1f;走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍&#xff08;朋友的抱怨&#xff1a;学校课程总是从理论出发&#xff0c;作业项目都…

SVM

from&#xff1a;https://blog.csdn.net/liugan528/article/details/79448379 SVM 1. 基本概念 支持向量机&#xff08;Support Vector Machine, SVM&#xff09;的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。SVM是用来解决二分类问题的有监督学…

LoadRunner常用术语

1.场景 2.负载发生器 3.虚拟用户 4.虚拟用户脚本 5.事务 6.思考时间 7.集合点 8.事务响应时间 转载于:https://www.cnblogs.com/Andy-Lv/p/5263707.html

跟我学Shiro目录贴

2019独角兽企业重金招聘Python工程师标准>>> http://jinnianshilongnian.iteye.com/blog/2018398 转载于:https://my.oschina.net/zhanggongming/blog/714844

【WinForm-无边框窗体】实现Panel移动窗体,没有边框的窗体

没有边框的窗体怎么移动&#xff1f;其实方法有很多&#xff0c;下面介绍一种用控件来移动窗体&#xff0c;Panel或PictureBox都可。主要设置控件的MouseDowm和MouseLeave事件。 第一步&#xff1a;窗体设计 窗体最上面是一个panel1 窗体最下面是一个Panel3&#xff0c;只显示最…

\Grokking Algorithms\简介与作者采访

\关键点\这本书目的是告诉读者解决问题的新方法。 \这本书试图通过插图来让大家更容易掌握主题&#xff0c;避免部分读者觉得太费解。 \这本书不仅适合没有接触过算法的人&#xff0c;也适合刚从计算机专业毕业的学生。 \这本书提供了非常多的例子和简单练习。 \这并不是一本参…

ZedGraph使用经验

开源的统计图控件中基本常用的是OpenFlashChar和ZedGraph&#xff0c;今天就先来讲讲ZedGraph的使用。 ZedGraph资源 ZedGraph来源&#xff1a;http://sourceforge.net/project/showfiles.php?group_id114675ZedGraph相关例子资源&#xff1a;http://zedgraph.org/wiki/index.…