【论文学习笔记-13】GwcNet:Group-wise Correlation Stereo Network(2019CVPR)
以往的立体匹配存在的问题:
相关性计算给每个视差值只提供了一个单通道的相关图。使用GCNet和PSMNet等文章中的拼接+3DCONV的方法的参数量和计算量很大,其他的方法要通过传统的cost计算方法,很难融入端到端网络中。
本文提出了简单但高效的group-wise correlation方法。首先提取多层次的特征并叠加,获取高位的特征表示fl,fr。然后特征被分为若干组,然后对应组之间进行互相关操作,获得group-wise correlation maps,最后correlation maps打包形成最后的4D Cost Volume。多重matching cost计算能减少信息的损失。
Contribution
①提出了group wise的correlation来建立cost volume。
②使用了沙漏refine network来提高速度(没有额外消耗时间)
③效果超过了之前的方法③计算速度比3D CONV强大。
Network
网络包含四个部分,特征提取,cost volume,3D 聚合模块和视差预测。
特征提取使用了类ResNet网络(PSMNet采用),使用了空洞卷积和金字塔池化模块。最后的三层特征层被叠加起来,得到320通道的featuremap。
CostVolume由两个部分组成,第一个部分是和PSMNet一样的特征拼接(错位拼接?)。但是在这之前先通过两个卷积将特征压缩至12个channel,然后是一个组间correlation操作(之后详细描述),之后两个volume拼接在一起并输入3D aggregation 模块。
3D aggregation模块和GCNet,PSMNet类似,用于视差间通信,替代sgm等算法的作用,包括了一个前沙漏模块和三个堆叠的3D沙漏网络进行聚合和优化如图:
Group-wise correlation volume:
之前的网络会将左右特征错位拼接,或是进行相关性计算(算相似度?),但是两种方法都有局限。后者只计算出了单通道的相关性图(将汉明等方法相比于n->1的一层网络),凭借的volume并不包括特征相似性信息,所以网络通常要很深,来让网络学习相似性的度量。为了解决这些问题,本文引入了Group-wise correlation来解决这个问题。首先将所有的unary features分为g份,组间相关性的计算公式为:
简单地说就是每组,每对潜在匹配点进行组特征内积。生成新的代价体。生成的是=[D,H,W,G]的向量。然后这个代价体再和左右特征错位拼接的代价体进一步进行拼接,获得最后的output,输入3D aggregation。
(对这个操作的理解:以往的代价体计算方式主要有两种,一种是直接用低维手算方法(使用汉明,余弦相似度,内积等等),直接输出相似度值,这种方法比较好但是又不足够好,另一种方法是直接通过网络学习,但是网络一般比较深。如果可以通过一些融合的方法,利用低维手算的相似度做guide再经过网络学习也许效果会有用,但是如果只算出了一个值,不适合进行放进后面的网络当输入,因此作者进行分组,获得了一个相似度向量。再通过网络进行进一步优化。)