参照文章:https://zhuanlan.zhihu.com/p/52641036
立体匹配这边左右视图提取特征的网络都是共享权重的。SPP模块可以从左下方看到,就是四个不同尺度的池化,再上采样串联起来,其实就是整合多尺度的信息。送到cost volume之前左右图的特征是(1,32,96,312)维度的(连着两个乘号会把中间的加粗…行吧),32是通道数,96*312是输入图像分辨率的1/4,1是batch size,后面的cost volume的1也是这个,就不管了。cost volume的维度是(1,64,48,96,312),64的前32个通道是左视图的,后32个通道是右视图的;48代表视差等级的维度,即视差为0-47px(设置最大视差为191px,后面会上采样)。贴一下形成cost volume这部分的代码,比如现在i=10,即cost volume的第三个维度视差为10px时,第二个维度的前32个通道取左图x轴上10以后的像素,后32个通道取右图x轴上去掉最后10像素的所有,其他地方都是0(截图没截出来)。
得到cost volume之后就是一大堆3D卷积(Stacked hourglass的结构比Basic效果好,反正谁复杂谁强呗…),可以看到右下方有bilinear和regression模块,就是将低分辨率、低视差等级的图插值为(D,H,W)维度的,然后用softmax作用于所有视差等级求出各个视差的概率,加权得到最终各个像素点的视差,即H*W的视差图。
整个论文 就是给定两个不同视角left , right, 算出disparity map, 这样就可以根据stereo pair算出深度
怎么算? 见introduction