基于互信息的立体匹配方法之计算机分析

论文价格:免费 论文用途:其他 编辑:硕博论文网 点击次数:
论文字数:26636 论文编号:sb2019121411544028874 日期:2020-01-06 来源:硕博论文网

1 引言

1.1 研究背景与意义
人类获取信息绝大部分来自双眼,视觉是一种有效获取外部信息的手段。对于人工智能与机器人,视觉系统是获取外界信息的重要途径之一,所以从摄像头输出的图像中获取信息是人工智能领域的重要课题。其中获取场景的深度信息对于人工智能和机器人具有重要作用,获得的深度信息可以用于三维重建、SLAM、汽车导航、目标追踪、非接触测量等。而获取场景深度的视觉方案有很多,主流有结构光、光度立体、SFM、双目立体视觉[1] [2]等方法。
其中双目立体视觉相对于其他立体视觉方案具有结构简单、适合室外场景、实时性强等优点。尤其在自动驾驶领域[3],双目立体视觉可以解决场景复杂和景深大幅度变化的问题。将两个摄像头并排固定,同时获取两个摄像头的图像信息,就构成了最简单的双目视觉系统[3],对双目系统进行双目标定获取内参和外参,对于物理空间中一点在双目图像中像素位置的差距[4],即视差,通过三角测距原理和内外参数据,就能获取该点相对于相机的距离,即景深,这个寻找视差的过程就是立体匹配。
.......................

1.2 国内外研究现状
国内对于立体视觉的研究起步较晚,早期的立体匹配算法主要利用特征点进行匹配[5],随着技术的深入研究,对立体匹配的优化工作重点主要放在了两个方面,一是提升全局优化算法;二是提升精准度。现有的大部分方法是先对待匹配图像通过图像分割算法进行剖分,再构建一个基于左、右图的代价函数,对其优化后以达到立体匹配期望的效果[6]。如 Yin 等使用图像的颜色信息来进行分割:其方法为先将参考图像根据颜色的分布进行快速聚类,后计算初始视差图,将分割结果作为能量视差函数的一个参考项,最后采用图割算法求取使全局能量最小的视差最优分配。这类基于图像分割的立体匹配方法首先需要认可一个先验,以此作为算法的核心,先验是认为分割区域块内的视差变化是平滑的,即在物体表面没有明显的深度变化,但在实际的立体匹配情况中存在缺陷,物体的表面出现视差变化是真实存在的,所以与其他基于局部特征信息和全局优化的立体匹配算法相比,此类算法可大块低纹理区域有良好的表现,匹配精度也相对比较高,优点是在物体边界处能很好的捕捉边缘信息,缺点是损失了对物体表面视差变化的捕捉能力。通过图像进行分割,需要进行匹配的基元减少了,需要进行匹配的负担变小了,增加了算法的运算速度,边界模糊和低纹理区域的误匹配情况得以解决。相对于国内,国外在计算机立体视觉上的研究起步较早,上世纪九十年代,立体视觉的研究者们就意识到了立体匹配中高分辨率图像会使得算法运行时间呈指数增长的情况,Geiger 等人在其论文《Efficient Large-Scale Stereo Matching》[7]中,针对此类问题,第一次引入了强约束点的概念,即纹理或特征信息较为丰富的点,将其作为支点,并在支点之间通过图像形态学的三角剖分对视差图进行分解,然后对三角中间区域的像素点进行视差插值计算,结合一些并行计算和底层优化方法,最终在一般性能的 CPU 上实现并行计算。该方法具有实现简单和易于搭建环境的优点,降低了匹配的算法复杂度,使其在运算能力有限的通用微型计算机上也可以实现实时的立体匹配过程;其缺点也很明显,视差图的质量和基于全局优化的匹配算法存在一定差距。最早将图割算法应用于立体匹配的是Boykov 的《Fast Approximate Energy Minimization via Graph Cuts》[8],并在其实验中证明了,针对其他立体匹配全局优化算法中动态规划生成视差图会产生横向的条纹瑕疵的缺点,图割算法不仅可以有效地解决此类问题,而且视差信息在临近极线处不连续的情况也能很好解决。但因为图像分割会降低匹配图对细节轮廓的描述能力,会导致输出的视差图会出现边沿轮廓处出现模糊的情况,降低了视差图的区分度。
...........................

2 灰度互信息与立体匹配

2.1 立体匹配
立体匹配是从两幅或者多幅图像中获取场景深度的一类算法过程,双目立体视觉系统是最简单的多视角立体系统,双目视觉的立体匹配也是最简单最直观的立体匹配[14]。双目视觉的立体匹配受到诸多计算机科学工作者的研究,在 KITTI 网站中有诸多双目立体匹配的数据集和论文成果,本文的数据集来自 KITTI 的经典数据集。
2.1.1 双目视觉中的立体匹配
将两个相同参数的摄像头并排固定,使得两个摄像头的法向平行,仅在相机的水平方向有偏移,控制两个相机同时拍照,构建最简单的双目立体系统。理想的双目立体视觉测距原理如下图 2.1。

在实际的设备搭建中会遇到诸多问题如:相机镜头的畸变需要通过对每个相机的内参进行标定来校正;实际的安装过程中没办法保证两个摄像头的法向平行;两个相机的姿态偏差等。这时就需要进行双目标定来获取两个相机间的姿态 T 和偏移 d,偏移 d 用于将视差信息转换为深度时,姿态 T 用于将图像进行“行对准”,行对准会让物理空间中的每个点在两个图像中都在同一行,这是立体匹配中非常重要的特性[15],这意味着图像中需要进行匹配的点一定在其同一行的左侧或者右侧,搜索匹配点时只需要在同行的点中进行搜索,矫正畸变和行对准后,双目图像将被修正到理想模型。本文使用的数据集来自 KITTI 的标准数据集,数据集提供了相机的内参和外参,而且对图像进行了畸变校正和行对准,所以本文的算法准对理想双目图像进行立体匹配,理想图的一些特点也会影响算法的建模,所以在建模时要充分利用理想双目图的特点进行算法的设计。
........................

2.2 信息论与灰度互信息
从其他学科领域去借鉴一些方法和理论可以帮助计算机科学工作者解决自身领域的一些问题,例如神经网络借鉴了生物的大脑结构提高了算法的抽象能力、卷积神经网络借鉴了人眼认知物体的神经结构提高了识别算法的准确率。图像本身就是一种信息的载体,借鉴信息论的知识和方法去建模是合理可行的,从信息论中选择合适可行的数学模型来给立体匹配问题建模,并简单介绍为什么选择该模型建模,将是本章节的主要工作内容。
2.2.1 图像的灰度熵与联合熵
图像可以看作是二维地存放信息的系统,每一个像素点都是一个存放信息的载体。在计算机系统中,数据都是以离散的形式存在,在常规的灰度图像系统中,每个像素点都由一个 0-255 的离散通道组成,所以一张灰度图就可以看作由有限个像素点构成的离散系统,每个像素点的值就是一个随机变量。图像中像素点的灰度值分布就可以看作图像的信息,在信息论中用熵来表示。
........................
3 基于互信息的代价函数.................................... 16
3.1 视差修正................................. 16
3.1.1 视差修正的意义......................................16
3.1.2 视差修正的方法..............................16
4 代价聚合与优化..................................... 21
4.1 正则化约束.......................... 22
4.2 代价聚合............................... 23
5 算法流程和实验....................................... 30
5.1 算法流程............................. 30
5.2 算法实验........................................ 32

5 算法流程和实验

5.1 算法流程
整体上,算法的输入是双目的左图和右图,输出视差图,中间部分是迭代优化的循环,循环次数为常量。理论上迭代次数越多,那么视差图会越接近真实的视差图,但是在工程应用迭代次数过多会浪费运算资源,而且在迭代进行的后期,视差图的变化会很小,所以,在本文的算法实验中,选择了将迭代次数设置为一个常量 6,通常进行六次迭代后视差图将不会有明显的变化,输出结果会趋向于稳定。
对此设计出算法的整体流程图如图 5.1。

........................

6 结束语
本文利用灰度互信息构建了一个立体匹配算法,从最后实验的结果可以看出,使用灰度互信息构建立体匹配的代价函数的可行的,实验的结果也满足了算法设计前对灰度互信息作为代价函数的先验。通过观察问题来获取先验,再利用先验知识来引导算法的设计和改良,是本文算法设计和实验过程中一直用到的方法,事实证明这种方法确实可以让算法的结果满足设计者的需求,这种方法需要算法设计者对先验有良好的认知,并且可以透过表象看到先验中的数学原理,把抽象的问题具体化,在依据先验建模的过程中需要有良好的专业知识的储备,在诸多数学模型中找到合适的模型,例如本文使用的灰度互信息的概念来自机器学习课程中对于正态分布函数的推导过程,保持视差图平滑的正则化约束的方法也是来自于机器学习中优化所常用的方法。
对立体匹配算法而言,国内外的各种研究方法都有很大的不同,仅从先构建代价函数再优化的这一类全局匹配算法讲,能用于构建代价函数的方法有特别多,不同的代价函数的构建方法会使得最终视差图的特点大不相同,算法性能也各有特点。使用不同的优化算法也会影响最后算法的输出结果,算法的复杂度也会有所差异。本文使用灰度互信息构建代价函数,使用扫描线优化来优化代价函数,这两步都可能被拆分然后应用在其他的立体匹配算法中。CSCA 算法就提供了一种一般化的代价优化模型的框架,代价构建部分和优化部分可以任意组合,很多先构建代价函数再优化的立体匹配算法可以看作是它的特例,CSCA 还提供了一种多尺度交互的方法,将多种代价函数模型进行整合叠加,来增强算法对于各种问题的应对能力,本文的代价构建方法是否可以加到该框架中,将是本文作者后面希望尝试的一个目标。
参考文献(略)

如果您有论文相关需求,可以通过下面的方式联系我们
点击联系客服
QQ 1429724474 电话 18964107217