多视图立体几何PatchMatchStereo:DSI与Cost Volume
在上一篇文章:传统多视图立体算法:PatchMatchStereo详解[1]中,我们谈到利用在视差空间对每一个像素随机一个视差平面,然后通过传播这个视差平面参数,使得每一个像素经过周围像素影响以得到更佳的视差平面。这其中涉及到的几何推理文中并没有详细说明,使读者对公式产生疑惑,因此,本文将首先对文中的几何公式进行推导,其次,该篇文章在视差平面采样的时候提到DSI(Disparity Space Image)的概念,这表示引入一个视差空间,并在这个空间中进行采样。虽然本文对DSI没有过多的阐述和使用,但DSI在立体视觉中是一个重要的概念,而同时在立体稠密匹配和多视匹配中,无论是传统方法还是深度学习方法,许多的文章或工作都提及了Cost Volume概念,又与DSI有何联系呢?本篇文章将一一揭晓。
注1:文末附【三维重建】交流群
注2:整理不易,请点赞支持!
作者:视觉企鹅 | 来源:3D视觉工坊微信公众号
1、再谈PatchMatch Stereo中的几何关系
回顾一下,PatchMatch Stereo中的视差计算公式(式1),


① 图像坐标系左手系或者右手系都可以定义,不过一般是右手系

2、Cost Volume和DSI
2.1、Cost Volume
Cost Volume,暂且翻译作代价卷、代价体。在基于深度学习的立体匹配、多视图几何中经常提及,比如香港科技大学的2018年提出的经典框架MVSNet[3],利用三维卷积神经网络对多视图匹配代价体进行正则化,并利用softmax方法得到每个像素在不同的深度的概率,阿里巴巴在2020年提出了改进网络Cascade-Cost Volume[4],利用一种接链式代价体构造方法提升深度估计的分辨率和精度。那我们应该如何理解Cost Volume呢?这和我们传统方法中的匹配代价有何联系呢?

所以在MVSNet类的深度学习中,Cost Volume与视差空间的绿色方块一样,是深度空间中,以图像长宽为x,y轴,深度方向为z轴,每一块表示在该深度下,像素点三维wrap后的匹配代价。

在此基础上,我们就比较容易理解DSI这一概念了。
2.2、DSI
DSI(Disparity Space Image),暂且翻译为视差空间图像,是一种保存左、右立体视图在视差空间中匹配代价的辅助图像,与不同搜索算法结合,广泛应用在立体视觉、多视图几何中。而我们在文献中一般会看到两种形式的视差图,一种是单线扫描匹配代价图(图3-a),一种视差空间切面匹配代价图(图3-b),这两种匹配图的像素值不是视差,而是匹配代价,可以约定颜色的深浅来表示匹配代价的高低,一般的,比如图3-b)中,颜色约深,表示匹配代价越小。

形象的来看,这两种图可以看作对图1中的视差空间体(绿色方块),进行不同角度的切片,容易理解图3-b)是沿垂直于z轴切片的匹配代价图,而图3-a)则表示沿y轴切片的匹配代价图。
首先我们来看视差空间切面匹配图(图3-b),顾名思义,此类匹配图是在同一个视差下的匹配代价,图像的每个像素都对应都是同一个视差,每一个像素值表示在该视差下的匹配代价,如图4所示,假设有一对初始的立体像对,那么不同视差下可以计算出不同的视差切面匹配图(图4-c,d,e),颜色越前表示匹配代价越小。同时立体匹配亦满足,空间点距离相机越近,则视差越大,距离相机越远,则视差越小。因此,当视差为10像素时(图4-c),后面的书架匹配代价小,为深色,视差为21像素时(图4-e),前面的雕像匹配代价小。

图4 DSI示意图[5],a)为RGB影像,b)为视差的Ground Truth图像,c), d), e)分别表示视差在10、16、21像素的匹配结果
具体的切面方式也可以从图5看出,比较容易理解,因此不再赘述。

图5 视差切面示意图
其次是单线扫描视差图,这个比较抽象,所以我们借助双目立体的原理图进行解释(图6)。我们知道,在双目立体结构中,以左视图为参考图,单视角下像素(图6 点)在三维空间中表示一条直线,需要利用右视图去确定该像素在空间中的具体位置。因此,如果固定点,那么右图立体匹配就是在同名极线上计算匹配代价,因此左图的单像素点,映射到右图上是一条极线。

由此,当我们对左图的某一条扫描线(图7中黄色线)上的每一个像素进行计算时,每一个像素在右图上就表示的是一条同名极线,故每个像素将会形成一条匹配线,所有像素形成的扫描线就会形成一张匹配图。这张图就是该扫描线对应的匹配代价图。这里需要注意的是,单线扫描匹配代价图的大小不一定和原图一样大,单线扫描匹配代价图的宽(轴)是采样数,如果我们对扫描线上所有的像素都进行采样,那么匹配代价图的宽和左图的宽一致,匹配代价图的长(轴)是匹配数,也是视差搜索空间大小。

3、总结
本节作为PMS的拾遗第一部分,主要回顾了PMS中的几何公式以及DSI和Cost Volume的联系,虽然PMS中没有特别强调DSI这一概念,而只是利用视差空间这一概念辅助视差搜索,但DSI在立体视觉中却是很关键的概念,无论是深度学习方法还是传统方法,都有广泛地使用。下一节将会是PMS拾遗的第二部分,主要是延申PatchMatch的深度传播方法,揭示目前在大分辨率的场景重建Benchmark,例如ETH3D High Resolution,传统方法远高于深度学习方法的原因。
参考文献
[1] Bleyer M , Rhemann C , Rother C . PatchMatch Stereo - Stereo Matching with Slanted Support Windows[C]// British Machine Vision Conference 2011. 2011.
[2] Richard Hartley and Andrew Zisserman. 2003. Multiple View Geometry in Computer Vision (2nd. ed.). Cambridge University Press, USA. P326
[3] Yao Y, Luo Z, Li S, et al. Mvsnet: Depth inference for unstructured multi-view stereo[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 767-783.
[4] Gu X, Fan Z, Zhu S, et al. Cascade cost volume for high-resolution multi-view stereo and stereo matching[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 2495-2504.
[5] Szeliski R. Computer vision: algorithms and applications[M]. Springer Science & Business Media, 2010.P540
备注:作者也是我们「3D视觉从入门到精通」知识星球特邀嘉宾:一个超干货的3D视觉学习社区
本文仅做学术分享,如有侵权,请联系删文。
3D视觉工坊-三维重建交流群
已建立3D视觉工坊-三维重建微信交流群!想要进三维重建学习交流群的同学,可以直接加微信号:CV_LAB。加的时候备注一下:三维重建+学校+昵称,即可。然后就可以拉你进群了。
强烈推荐大家关注3D视觉工坊知乎账号和3D视觉工坊微信公众号,可以快速了解到最新优质的3D视觉与SLAM论文。