查看: 89|回复: 0

双目视差估计网络GC-Net

[复制链接]

4

主题

8

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-6-28 21:12:49 | 显示全部楼层 |阅读模式
简单记录一下用网络进行双目视差估计的开山之作,GC-Net,出自ICCV 2017 论文《GC-Net:End-to-End Learning of Geometry and Context for Deep Stereo Regression》。
对于双目图像,极线对齐后可以利用对极几何求出像素对应的深度,从而恢复像素的三维结构。深度的获取简单说来就是求出左右目图像的同源物点在图像上投影的像素横向偏差(视差),再利用相机光心间的基线长度和矫正后的焦距根据相似三角原理计算得出。
原理不难,抛开前面的双目矫正部分,对于已经矫正好极线对齐的一对图像,求其视差的关键在于寻找同一极线上的匹配点。根据相似三角原理,深度和视差成反比关系,越近的点视差越大,越远的点视差越小。对于稍远一些距离,匹配精度对于深度的影响非常大。
如何产生鲁棒的双目像素点匹配关系,从而鲁棒的估计双目视差?GC-Net利用神经网络进行了精巧的设计,提出了新的思路。
核心思想

文章核心要点说白了就两个,一个是如何构造cost volume(可以理解为如何构造匹配关系),另一个是如何构造可微的视差估计方式。



模型架构

模型的结构可以从上图看出,利用一个公共的2D CNN结构分别提取左右目图像对的特征,将其按照一定方式构造cost volume,后接3D CNN进一步提取特征,最后根据soft argmax计算得出视差。
着重讲一下cost volume构造,假定一共有d个视差等级,那针对每个视差等级,通过padding方式等效将右目特征图右移对应视差等级的单位,再和左目特征concat到一起,最后形成d*H*W*2C的4D特征volume。这个想法很巧妙,因为CNN本身不具备获取像素位置的能力,将右目特征右移则人为的帮助网络找到相似特征的位置。打个比方,流水线上有一堆货物,但是寻找需要的货物的检测器本身位置是固定的,这样构造cost volume相当于是流水线把货物一个一个送过来,方便检测器匹配。代码如下:



cost volume 实现

最后通过3D CNN网络编解码出一个D*H*W的张量,我们可以理解为在每个视差(D通道)等级,左右目图像特征在每个像素位置(H*W)的匹配度。不得不说这样的做法很好的利用了双目视差匹配的视觉原理,很好的利用了CNN网络的优势,同时也规避了CNN网络对于利用像素位置的劣势。
自然的,采用softmax机制,求出每个视差等级对应的权重,再乘以对应的视差等级,即文章中的soft argmin机制被提了出来,公式如下。



soft argmin

这个网络,突出一个端到端,构思巧妙,文章作者也是大有来头。用网络解决双目视差估计鲁棒性问题对工业界产生了很大的影响。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表