【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)SemiGlobalMatching(SGM),立体匹配经典算法,理论详解教学!

  半全局立体匹配算法Semi-Global Matching,SGM由学者Hirschmüller在2005年所提出1,提出的背景是一方面高效率的局部算法由于所基于的局部窗口视差相同的假设在很多情况下并不成立导致匹配效果较差;而另一方面全局算法虽然通过二维相邻像素视差之间的约束(如平滑性约束)而得到更好的匹配效果,但是对内存的占用量大,速度慢。为了结合两者的优点,同时避免两者的缺点,SGM算法依旧采用全局框架,但是在计算能量函数最小化的步骤时使用高效率的一维路径聚合方法来代替全局算法中的二维最小化算法,使用一维最优来近似二维最优,得到的视差图在效果上和全局算法没有太大的差别,但是算法效率却有非常大的提升。

本专题将从匹配算法的四个步骤出发,来对SGM算法的理论做一个详细介绍。


理论恒叨系列

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)
【理论恒叨】【立体匹配系列】经典SGM:(2)匹配代价计算之Census变换
【理论恒叨】【立体匹配系列】经典SGM:(3)代价聚合(Cost Aggregation)
【理论恒叨】【立体匹配系列】经典SGM:(4)视差计算、视差优化

【理论恒叨】【立体匹配系列】经典SGM:匹配代价计算之互信息(MI)

  本篇首先介绍SGM算法第一步:匹配代价计算 的典型算法之一:基于互信息(Mutual Information,MI)的匹配代价计算法。

基于互信息的匹配代价计算

  从上一篇文章中可知,匹配代价计算是双目立体匹配的第一步,在双目匹配算法中,大部分算法会为每个像素预先设置一个固定的视差搜索范围 D D D( d m i n d_{min} dmin~ d m a x d_{max} dmax),将像素的视差真值限定在范围 D D D内,并引入一个大小为 W × H × D W×H×D W×H×D的三维代价空间 C C C, C C C中的每个元素映射左影像每个像素在视差范围内每个视差下的匹配代价值,而匹配代价计算即是通过计算像素之间的相关性来填充 C C C的步骤,计算的时间复杂度为 O ( W H D ) O(W H D) O(WHD)
  在SGM被提出的文献1 2中,Hirschmüller使用基于互信息(Mutual Information,MI)的匹配测度计算算法来计算匹配代价,互信息是一种对影像明暗变化不敏感的相关性测度,它通过两张影像各自的熵 H H H以及两者的联合熵来定义,熵代表影像的信息量,是基于灰度的概率分布所得到的统计量,图像的熵越大代表包含的像素灰度越丰富,灰度分布越均匀。互信息MI通过公式1来计算,

式1

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

  其中, 为图像 I 1 I_1 I1 I 2 I_2 I2的互信息, H I 1 H_{I_1} HI1 H I 2 H_{I_2} HI2分别为 I 1 I_1 I1 I 2 I_2 I2的熵, H I 1 , I 2 H_{I_1,I_2} HI1,I2为两张图像的联合熵。图像的熵及联合熵通过灰度的概率分布P计算,计算公式分别如公式2及3所示。

式2

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

式3

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

  对于两幅配准好的影像来说,它们的联合熵是很小的,因为其中一张影像可以通过另外一张影像预测,这表示两者的的可区分度很低,所包含的信息很少,而由公式1可知它们的互信息会相对更大,这也是互信息可以作为相关性测度的理论依据,当两者的相关性越高,则互信息越大。
在使用互信息的立体匹配中,首先必须将其中一幅图像根据视差图进行纠正,使得同名点在两张图像中处于同一位置,假设基准影像为 I b I_b Ib,匹配影像为 I m I_m Im,则纠正方式可表示为

式4

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

  公式1是针对全图计算互信息的公式,而不是像素之间独立计算,无法直接用于匹配代价计算,Kim等3使用泰勒展开方法将联合熵的计算转换为通过数据项累加的方式,数据项的计算依赖于同名点对且对每个像素独立,如公式5所示,

式5

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

  其中,数据项 h I 1 , I 2 h_{I_1,I_2} hI1,I2通过左右影像同名点灰度的概率分布 来计算,若影像内同名点数为 n n n,通过基于高斯卷积 g ( i , k ) g(i,k) g(i,k) 的Parzen窗估计法3来计算数据项,见公式6:

式6

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

  上式中, i , k i, k i,k为参与计算数据项的两个灰度,它们的联合概率分布使用公式7计算

式7

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

  其中, T T T函数若其参数为真,则返回1,反之返回0,实际上就是统计灰度对与 ( i , k ) (i, k) i,k相同的同名点对在全图中所占的比例。

  Kim等人3认为基准影像的熵 H I 1 H_{I_1} HI1是固定的,而匹配影像的熵 H I 2 H_{I_2} HI2也基本是固定的因为纠正函数 f D ( I b ) f_D(I_b) fD(Ib)只不过是对匹配影像的灰度进行了重新位置分配,但是由于有遮挡的存在,基准影像被遮挡的区域没有正确的视差值,这些区域也就不存在同名点,不能参与熵计算,而由于这些区域的位置是无法预先被告知,所以只能认定两张影像的熵都是不固定的,因此一般来说,采用计算联合熵相类似的方式来计算影像各自的熵,如公式8所示:

式8

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

  概率分布的计算需要遍历全图,但只需要统计同名点对所在的区域。实际上 P I ( i ) P_I(i) PI(i)可以直接使用联合概率分布来计算,即

式9

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

  最终,互信息的定义可以用公式10来描述:

式10

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

  基于互信息的匹配代价可通过公式11来计算:

式11

【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)

  其中, q q q表示像素 p p p的同名点。

  从以上描述可以看到,要计算互信息,必须预先知道视差图来对匹配影像进行纠正,这仿佛类似于鸡生蛋蛋生鸡的问题,论文1中采用的是一种分层迭代的方案,对影像进行逐级降采样得到多层影像对,为最上层影像对随机生成一张视差图,然后计算得到的代价数组作为初始代价数组计算新的视差图并作为下一层影像对的视差图,如此迭代至最下层影像,一般迭代三次即可达到较好的匹配结果。

  互信息法代价计算原理较为复杂,且计算需要迭代,计算效率不高,在实际应用中,更简单有效的方法如Census变换、BT法会得到更多的青睐。下一篇中,将为大家详细介绍实用高效且简单易懂的Census变换法。

  查看下篇Census变换法请点击>> link


码上教学系列

【码上实战】【立体匹配系列】经典SGM:(1)框架与类设计
【码上实战】【立体匹配系列】经典SGM:(2)代价计算
【码上实战】【立体匹配系列】经典SGM:(3)代价聚合
【码上实战】【立体匹配系列】经典SGM:(4)代价聚合2
【码上实战】【立体匹配系列】经典SGM:(5)视差优化
【码上实战】【立体匹配系列】经典SGM:(6)视差填充
【码上实战】【立体匹配系列】经典SGM:(7)弱纹理优化

完整代码已发布于Github开源项目:Github/SemiGlobalMatching,欢迎免费下载

博主简介:
Ethan Li 李迎松
武汉大学 摄影测量与遥感专业博士

主方向立体匹配、三维重建

2019年获测绘科技进步一等奖(省部级)

爱三维,爱分享,爱开源
GitHub: https://github.com/ethan-li-coding
邮箱:ethan.li.whu@gmail.com

个人微信:
【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)
欢迎交流!

喜欢博主的文章不妨关注一下博主的博客,感谢!
博客主页:https://blog.csdn.net/rs_lys


  1. HIRSCHMULLER H. Accurate and Efficient Stereo Processing by Semi-Global Matching and Mutual Information: Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on, 2005[C]. ↩︎ ↩︎ ↩︎

  2. HIRSCHMÜLLER H. Hirschmüller, H.: Stereo processing by semiglobal matching and mutual information. IEEE PAMI 30(2), 328-341[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2008,30(2):328-341. ↩︎

  3. KIM J, KOLMOGOROV V, ZABIH R. Visual Correspondence Using Energy Minimization and Mutual Information: IEEE International Conference on Computer Vision, 2003. Proceedings, 2008[C]. ↩︎ ↩︎ ↩︎

今天的文章【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12925.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注