秋学期的课程任务稍微有点紧张,论文笔记有一点耽误了。感觉看过的论文还是需要复习,还是有一些值得思考的地方的。总结一些看过的我认为采取 “多阶段” 策略的论文,这个多阶段和”end-to-end“不矛盾,就是看上去像一种有先后顺序的感觉。这篇论文的题目是《Learning for Disparity Estimation through Feature Constancy》,收录在 CVPR-18,作者提出一个特征恒量,这个表达还是第一次看到,所以笔记的题目就取了这两个词。

    立体匹配的四个步骤:代价计算、代价聚合、视差估计、视差调优。这里稍微穿插一下代价聚合的理解,之前有提问不过好像也没什么人来解答,结合一直看的,感觉代价聚合就是对计算得到的代价(通常是 cost volume 的形式)进行进一步处理如融合通道等,得到最终用于输出视差的一个代价量。回到论文中来,作者用一个网络聚合这四个步骤。具体分为三个阶段:特征提取;代价计算、聚合和视差估计;计算 “特征恒量” 并用于最后视差调优。

    特征恒量是用来连接视差计算和视差调优这两个步骤,它表示了初始视差的准确度。“恒量 constancy” 一词来自于光流估计,代表着特征空间两个像素的一致性。(划重点:特征空间)具体在本文中,特征恒量由两项组成:特征相关 feature correlation 和重构误差 reconstruction error,这里重构也是在特征空间进行的。

    立体匹配论文笔记(四):Feature Constancy - 知乎 - 图1

    输入图像首先提取多尺度的特征,这个共享特征用在视差估计和视差调优。紫色块是特征计算的相关,就是特征恒量的第一项。前面的相关和后面的相关视差偏移不同,前面的较多,代表着粗略的较大范围的一致性,后面的较少,代表着精细的较小范围的一致性。相关的计算就等价于匹配代价(相关值越低匹配代价越高),这部分的输入除了相关外,还串联了左图特征,文中称希望提供低级语义信息。视差估计这一部分采用了 encoder-decoder 的结构,采取了一些跳跃连接。

    绿色部分就是解码器输出的初始视差估计,这个初始的视差图会存在一些深度不连续和异常点。接下来我们将用一直提到的特征恒量调优,第一项特征恒量——特征相关就是不同视差移位左右特征的一致性,正确的视差移位会得到较大的相关结果;第二项重建误差(图中红色部分)——根据初始的视差图,可以将右图变换到左图,变换的左图特征和原始的作图特征计算一个误差,误差越大说明初始的视差估计越差。这两项具体在网络中怎么用可以看图:初始视差 + 重建误差 + 作图特征先卷积,再串联特征相关,最后输出黑色的调优残差。这里注意我们将视差调优部分看作一个残差模块,输出的是残差,加上绿色的初始视差估计才得到最终的视差结果。这样的做法使得我们可以多次迭代利用这个视差调优模块,残差加上初始视差得到的最终视差可以看作下一次迭代的初始视差,送入这个网络再次进行调优。

    在实验部分,作者对比了特征恒量和色彩恒量。在 CRL(级联残差学习)这篇论文中,采用的色彩空间的重建误差,而特征恒量对比于色彩恒量鲁棒性更高,对噪声不敏感。感觉本篇作者是借鉴了 CRL 这篇论文的,所以最近也是想总结这些多阶段这种感觉的想法。

    立体匹配论文笔记(四):Feature Constancy - 知乎 - 图2

    在 KITTI 上的测试结果。DES-net 是未加入视差调优部分的输出(感觉已经很好了…),然后 iResNet-i2 是用了两次视差调优的结果。下面就是其他一些方法的结果。

    简单总结一下,作者提出了特征恒量,虽然这个词比较新,但是特征相关和重建误差都经常见到的。重建误差采用特征比较新颖,之前看到的基本都是对 RGB 图像重建计算光度误差的。后面调优部分输出残差,保证可以多次迭代使用这一部分,也值得学习。
    https://zhuanlan.zhihu.com/p/62660197