双目视觉立体匹配方法

【专利摘要】双目视觉立体匹配方法,首先对视图组中待匹配点进行基于稠密特征描述方法的视差先验估计,而后使用汉明间距方法计算视图组中候选匹配点之间的匹配代价,然后使用基于自适应窗口代价聚集方法求取候选匹配点的代价聚集值,然后再使用基于最大后验概率模型的视差估计方法计算视图组中每个像素点的视差值,最后对立体匹配结果进行求精处理。本发明可以有效抑制左右视图光照不同或曝光时间不同对立体匹配的影响,获得了较高的立体匹配精度,算法快速、稳定、可靠。

【专利说明】双目视觉立体匹配方法所属【技术领域】

[0001]本发明涉及一种双目视觉数字图像的处理方法,特别是双目视觉立体匹配方法。【背景技术】

[0002]立体匹配是由二维图像信息获得三维物体信息的主要技术手段,在三维场景重构、自动驾驶、虚拟现实等许多双目视觉应用中,立体匹配一直是一个极具挑战性的核心问题。立体匹配一般假设匹配像素之间具有相似的亮度或者颜色信息,并基于这些信息进行视差估计。然而,实际应用场景中由于左右视图存在辐射变化导致这种假设并不成立。光照变化和摄像机的曝光时间变化是影响立体匹配主要的辐射变化因素,大多数立体匹配方法面临这些变化时其表现都会明显下降。调试好的立体匹配方法只能在输入图像辐射不变的条件下使用,否则会产生很大的匹配误差。

[0003]目前立体匹配方法主要分为局部匹配方法和全局匹配方法两种。局部匹配方法通过固定尺寸窗口进行代价聚集,运算速度快,但在低纹理和深度不连续区域匹配效果差;全局匹配方法虽然能够通过构建复杂的能量函数模型得到高精度的匹配结果,但计算速度慢,并且对计算机的内存需求较大。此外,上述两种方法大都没有考虑左右视图辐射变化这一因素,其理想的匹配效果获取的前提条件是参与匹配的左右视图是在同一条件下得到的,即左右视图的辐射变化一致。然而,双目视觉在实际应用中经常会面临光照变化或者摄像机曝光时间变化等辐射因素带来的挑战,上述两种立体匹配方法的性能往往会随着辐射变化的增强而急剧下降,导致双目视觉无法正常使用。

【发明内容】

[0004]本发明的技术解决问题:为了解决现有立体匹配方法对左右视图的光照变化或曝光时间变化敏感、匹配精度低、运算速度慢等缺点,本发明提供一种双目视觉立体匹配方法,用于在左右视图辐射变化较大、图像成像质量较差的情况下采用。该方法不仅匹配速度快、对左右视图辐射变化鲁棒,而且可以获得较好的匹配精度和抗噪声能力。

`[0005]本发明的技术方案是:双目视觉立体匹配方法,其特征在于:首先对视图组中待匹配点进行基于稠密特征描述方法的视差先验估计,而后使用汉明间距方法计算视图组中候选匹配点之间的匹配代价,然后使用基于自适应窗口代价聚集方法求取候选匹配点的代价聚集值,然后再使用基于最大后验概率模型的视差估计方法计算视图组中每个像素点的视差值,最后对立体匹配结果进行求精处理。

[0006]上述的基于稠密特征描述方法的视差先验估计实现步骤:首先对视图组中的左右视图进行Canny边缘检测和固定步长网格抽样,得到一组抽样待匹配点。而后对左右视图分别进行Census变换和DAISY特征描述,并基于特征描述对得到的抽样待匹配点进行特征匹配,获得一组鲁棒匹配点的视差。最后根据这些鲁棒点的视差对视差空间进行三角化,得到待匹配点的视差先验估计值。

[0007]上述的自适应窗口代价聚集方法实现步骤:首先设置初始代价聚集窗口的尺寸,而后求取聚集窗口内像素的灰度均值,然后根据灰度均值计算聚集窗口内每个像素点的二值权重,最后根据权重设计自适应代价聚集函数,并求取候选匹配点之间的代价聚集值。

[0008]上述的基于最大后验概率模型的视差估计方法实现步骤:首先将视差的求解表示为求解最大条件概率的形式,而后将条件概率分解为先验概率与释然概率之积,并建立各自的函数模型,然后根据求解的条件概率函数模型构建视差能量函数,最后通过最小化能量函数求解视图组中每个像素点的视差值。

[0009]本发明主要有两大创新:(I)为提高匹配效率并实现对辐射变化鲁棒,本发明将DAISY和Census变换结合计算一组鲁棒匹配点的视差,通过对视差空间三角化为剩余待匹配点的视差估计提供先验信息;(2)为同时在深度不连续区域和低纹理区域获得正确的视差估计,本发明提出一种简单高效的基于Census变换的自适应窗口代价聚集方法。

[0010]本发明与现有技术相比的优点在于:本发明可以有效抑制左右视图光照不同或曝光时间不同对立体匹配的影响,获得了较高的立体匹配精度,算法快速、稳定、可靠。

【专利附图】

【附图说明】

[0011]图1为本发明的流程图;

[0012]图2为视图组I中的左视图;

[0013]图3为视图组I中的右视图1 ;

[0014]图4为视图组I中的右视图2 ;

[0015]图5为视图组I的理想立体匹配结果;

[0016]图6为现有技术中的视图组I中的左视图与右视图1立体匹配结果;

[0017]图7为现有技术中的视图组I中的左视图与右视图2立体匹配结果;

[0018]图8为本发明中的视图组I中的左视图Canny边缘检测结果;

[0019]图9为本发明中的视图组I中的左视图Census变换结果;

[0020]图10为本发明中的视图组I中的鲁棒匹配点检测结果;

[0021]图11为本发明中的视图组I中的左视图与右视图1立体匹配结果;

[0022]图12为本发明中的视图组I中的左视图与右视图2立体匹配结果;

[0023]图13为视图组2中的左视图;

[0024]图14为视图组2中的右视图1 ;

[0025]图15为视图组2中的右视图2 ;

[0026]图16为视图组2的真实视差图;

[0027]图17为现有技术中的视图组2中的左视图与右视图1立体匹配结果;

[0028]图18为本发明中视图组2中的左视图与右视图1立体匹配结果;

[0029]图19为现有技术中的视图2中的左视图与右视图2立体匹配结果;

[0030]图20为本发明中视图组2中的左视图与右视图2立体匹配结果。

【具体实施方式】

[0031]如图1所示,本发明的方法过程是,首先对视图组中待匹配点进行基于稠密特征描述方法的视差先验估计,而后使用基于汉明间距方法计算视图组中候选匹配点之间的匹配代价,然后使用基于自适应窗口代价聚集方法求取候选匹配点的代价聚集值,然后再使用基于最大后验概率模型的视差估计方法计算视图组中每个像素点的视差值,最后对立体匹配结果进行求精处理。

[0032]图2和图3分别为视图组I中的左视图和右视图1,这两幅视图的拍摄条件相同。图4是视图组I中的右视图2,该视图与右视图1相比,只有光照差异,其他完全一致。从图中可以看出,场景中的同一个物体在图2和图3中的亮度基本一致,而在图4中亮度明显偏闻。

[0033]图5是视图组I中的左视图与右视图1 (或右视图2)立体匹配的理想结果。从图中可以看出,越靠近摄像机的物体,在图中的亮度越高,反之越低。通过亮度能够有效探知场景中物体的实际深度,这是双目立体视觉最为重要的功能。

[0034]图6是现有技术中的视图组I中的左视图与右视图1立体匹配结果。将该图与图5进行对比可以看出,当左视图与右视图的光照条件一致时,现有技术能够计算出的立体匹配结果与理想匹配结果接近,结果比较令人满意。

[0035]图7为现有技术中的视图组I中的左视图与右视图2立体匹配结果。将该图与图5进行对比可以看出,一旦左视图与右视图的光照条件不一致,现有技术计算出的立体匹配结果与理想匹配结果相差较大,一些局部区域的匹配误差过大,难以满足双目视觉的应用要求。

[0036]本发明主要分为视差先验估计、匹配代价计算、代价聚集、视差估计和视差求精五部分,并将视图组中的左右视图分别称为参考图像和目标图像。本发明假设参考图像与目标图像经过了立体校正,即消除了图像畸变并实现了行对准。

[0037]视差先验估计是指在参考图像中找到一组能够鲁棒匹配点,并根据这些点的视差构建分段线性视差平面,为剩余点的匹配提供一个先验估计值。图8是视图组I中的左视图Canny边缘检测结果。从图中可以看出,图像边缘包含了图像的大部分关键信息。这些边缘对辐射变化不敏感,可以找到对应的鲁棒匹配点。实际上除了边缘点之外,图像中仍有许多点能够鲁棒匹配。基于这一图像特点,本发明提出基于稠密特征描述方法的视差先验估计方法,具体实现步骤如下:首先对视图组中的左右视图进行Canny边缘检测,并将检测到的边缘点作为第一组抽样点。而后进行固定步长网格采样,获得第二组覆盖图像大部分区域的抽样点。本发明将得到的上述两组抽样点称为候选鲁棒匹配点。为实现对辐射变化鲁棒,本发明对视图进行Census变换,如图9所示,而后采用稠密特征描述子DAISY对变换后的图像进行特征描述,最后基于特征描述对候选鲁棒匹配点进行严格的特征匹配。

[0038]设视差搜索范围为Dp lRCensus IlCensus分别表示经过CeilSUS变换后的参考图像和目标图像,DAISY (U,V)表示1 3中像素点P (U,V)的描述子,d表示其视差值。由于图像为校正后的图像,那么该点在ITCmsus中的匹配点可以表示为V (u-d, V),对应的特征描述子可以表示为DAISY(u-d,v)。本发明将p(u,v)具有视差值d的概率表示为:

【权利要求】

1.双目视觉立体匹配方法,其特征在于:首先对视图组中待匹配点进行基于稠密特征描述方法的视差先验估计,而后使用汉明间距方法计算视图组中候选匹配点之间的匹配代价,然后使用基于自适应窗口代价聚集方法求取候选匹配点的代价聚集值,然后再使用基于最大后验概率模型的视差估计方法计算视图组中每个像素点的视差值,最后对立体匹配结果进行求精处理。

2.根据权利要求1所述的双目视觉立体匹配方法,其特征在于:所述的基于稠密特征描述方法的视差先验估计实现步骤:首先对视图组中的左右视图进行Canny边缘检测和固定步长网格抽样,得到一组抽样待匹配点。而后对左右视图分别进行Census变换和DAISY特征描述,并基于特征描述对得到的抽样待匹配点进行特征匹配,获得一组鲁棒匹配点的视差。最后根据这些视差对视差空间三角化,得到待匹配点的视差先验估计值。

3.根据权利要求1所述的双目视觉立体匹配方法,其特征在于:所述的自适应窗口代价聚集方法实现步骤:首先设置初始代价聚集窗口的尺寸,而后求取聚集窗口内像素的灰度均值,然后根据灰度均值计算聚集窗口内每个像素点的二值权重,最后根据权重设计自适应代价聚集函数,并求取候选匹配点之间的代价聚集值。

4.根据权利要求1所述的双目视觉立体匹配方法,其特征在于:所述的基于最大后验概率模型的视差估计方法实现步骤:首先将视差的求解表示为求解最大条件概率的形式,而后将条件概率分解为先验概率与释然概率之积,并建立各自的函数模型,然后根据求解的条件概率函数模型构建视差能量函数,最后通过最小化能量函数求解视图组中每个像素点的视差值。

【文档编号】G06T5/00GK103440653SQ201310378696

【公开日】2013年12月11日 申请日期:2013年8月27日 优先权日:2013年8月27日

【发明者】屈玉福, 姜吉祥, 姜楠, 杨民 申请人:北京航空航天大学

双目视觉立体匹配matlab,双目视觉立体匹配方法相关推荐

  1. 三维重建 - 摄像机标定和立体匹配中极线约束方法

    摘自http://www.ahcit.com/lanmuyd.asp?id=2677,以作备录,若有版本问题,请告知. 关于摄像机标定和立体匹配中极线约束方法方面,描述的比较清楚. 一种基于OpenC ...

  2. 数学建模matlab imread,《matlab数学建模方法与实践》第三章 数据的处理

    3.1数据的获取 3.1.1从Excel中读取数据 a= xlsread('路径',n(sheetn),'A(n-1):Bn(读入的数据范围)') 3.1.2从TXT中读取数据 3.1.2.1.1 同 ...

  3. 光流 | 基于Matlab实现Lucas-Kanade方法:方法2(附源代码)

    github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 基于Matlab实现Lucas-Kanad ...

  4. 光流 | 基于Matlab实现Lucas-Kanade方法:方法1(附源代码)

    github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 基于Matlab实现Lucas-Kanad ...

  5. gps数据处理matlab,基于Matlab的数据处理方法在GPS高程拟合中的应用

    基于Matlab的数据处理方法在GPS高程拟合中的应用 在分析GPS高程异常拟合模型实质的基础上,结合工程实例,顾及地球重力场的空间连续性特点,运用Matlab中的拟合插值函数Griddata等进行高 ...

  6. C/C++ VS中调用matlab函数的方法

    C/C++ VS中调用matlab函数的方法 [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/73743654 Matla ...

  7. matlab用for编写乘法表,实验二 Matlab程序设计基本方法1

    实验二Matlab程序设计基本方法 覃照乘自092 电气工程学院 一.实验目的: 1.熟悉MATLAB 程序编辑与设计环境 2.掌握各种编程语句语法规则及程序设计方法 3.函数文件的编写和设计 4.了 ...

  8. bms用matlab吗,一种BMS的MATLAB建模集成方法与流程

    技术特征: 1.一种BMS的MATLAB建模集成方法,其特征在于,包括以下步骤: S01:将BMS分为输入模块.输出模块及若干个中间模块,并定义各模块的名称: S02:定义各模块的输入端口和输出端口的 ...

  9. 基于matlab的prony方法实现,基于MATLAB的Prony方法实现

    基于MATLAB的Prony方法实现 本文介绍了Prony方法在MATLAB中的实现和应用.首先叙述了Prony方 (本文共2页) 阅读全文>> 瞬时频率是信号重要的瞬时特征参数,由于其在 ...

最新文章

  1. mysql远程连接授权
  2. java按行读取txt文件内容_对txt文件中的内容进行排序
  3. 【Node.js学习小案例】DNS域名解析 一
  4. 解决oracle主键问题,解决renren-security使用oracle主键问题
  5. Java实现第二次登陆强制下线_Android登陆页面记住密码以及强制下线功能的实现...
  6. String类型的学习
  7. php内存映射,如何用ZwMapViewOfSection将Driver分配的内存映射到App空间?
  8. 【Python CheckiO 题解】Secret Message
  9. 编译gcc5.1.0时的报错
  10. excel怎么打钩(excel怎么打钩符号)
  11. python中flag=1什么意思_001_flag包详解
  12. html页面嵌入高德地图,高德地图WEB版基础控件展示
  13. 电子齿轮 电子凸轮
  14. 双系统android,如何在Android手机上实现双系统
  15. 微信小程序之校园二手交易系统app毕业设计ssm
  16. Fedora17下的hadoop-1.0.4系统配置
  17. microbit和python_Microbit MicroPython 介绍
  18. 那些年啊,那些事——一个程序员的奋斗史 ——26
  19. 第19章、 认识与分析登录档
  20. USB CDC 程序架构分析

热门文章

  1. PythonChallenge解谜
  2. [Shader 着色器]冰霜效果的思考和实现
  3. Hexo主题Aurora的魔改(一)
  4. 【2012.03.3普及组】打牌
  5. xilinxFPGA使用差分信号及差分信号有关的原语
  6. Lanchester方程的离散模型及Python代码实现
  7. 【Ubuntu】修改系统时间
  8. 小程序使用less(vscode)
  9. 招银网络科技 笔试、面试
  10. 搞计算机的离开高校的几个理由