【论文学习笔记-6】立体匹配:MGM(More global matching)和R3SGM(Real-time Raster-Respecting global matching)
本篇博客主要介绍MGM和R3SGM两篇文章,个人学习用途。
MGM(More global matching):
提出了MGM来改进SGM,提高结果的精确度,能够消除SGM算法中存在的Streaking Effect问题。
R3SGM(Real-time Raster-Respecting global matching):
改进了SGM,更改了动态规划过程,使matching过程更加硬件亲和,提高速度,同时略微下降了准确率
Motivation
由于SGM通过多个一维动态规划求解过程来获得当前像素点的修正值,对像素点的cost修正只依赖于一个星型区域的像素间关系,如图
上图中红点与所有的白点间的像素值关系均不能通过传统SGM算法进行修正。
因此有相当一部分位置不满足事先定义好的一维线性关系的临近元素之间不会有任何的信息交互和视差修正关系,因为他们之间没有任何一条一维通路可以互相传递信息。这导致了这些临近元素不能满足SGM想要达到的临近元素有相似的视差值这一假定前提,这也导致了经过SGM过程得到的视差图的准确率。MGM和R3SGM都是受此启发,改进了SGM算法,但它们又各有不同。
MGM
Method
MGM算法改进了SGM算法,将SGM算法中每个一维方向替换成两个垂直方向的视差信息平均,如图所示:
这样在总方向不变的情况下(如SGM有上下左右四个方向时,则MGM有上+右,右+下,下+左,左+上四个方向),能让每个方向的动态规划过程过得更多的信息,同时,这个结构让图像中每两个点之间都有至少一个方向的通路进行信息传输,解决了SGM的星型通路无法连通所有点的问题。
动态规划公式:
SGM与MGM的对比
Experiment(双目匹配实验)
R3SGM
R3SGM受到SGM和MGM的启发,考虑到MGM虽然解决了Streaking,但是考虑到两个垂直方向的cost最小化,同时还需要存储多个方向的信息并进行比较,这与FPGA读取信息及计算方式是相互冲突的, R3SGM综合了SGM和MGM的思想,设计了一种硬件亲和的半全局匹配算法。
Method
算法示意图,左图是MGM算法,右图是R3SGM算法
整个半全局匹配过程仅有一个计算过程,包含了四个方向的信息和,这样只需要一次计算流程,而不需要计算多个方向并进行Winner Takes All判断