【立体匹配-2021-CoEx】Correlate-and-Excite: Real-Time Stereo Matching via Guided Cost Volume Excitation

文章链接
代码链接

1. 核心贡献

  1. 提出GCEGuided Cost volume Excitation)模块,利用图像的特征图引导代价体(cost volume)的聚合过程;
  2. 在视差回归部分,提出利用top-k匹配代价执行soft-argmax/argmin
  3. 基于上述两个模块,构建实时立体匹配网络CoEx

2. 网络架构

在这里插入图片描述
当前多数基于深度学习的立体匹配网络,多包括特征提取、匹配代价计算、代价聚合及视差回归几个步骤。本文也不例外,作者将其前两个contribution定义为模块,并指出该模块可集成进其它基于cost volume(文中表述为volumetric,一个意思)的立体匹配架构中,同时不会显著增加计算开销。
在这里插入图片描述

2.1. 特征提取

CoEx利用预训练的MobileNetV2作为特征提取的骨干网络(backbone),这里主要为了轻量化,且可提供类似U-Net结构的多尺度特征。该特征将在后续代价聚合过程中作为weight与对应尺度的cost volume相乘,用以引导代价聚合过程。

CoEx的输入为左右目两张RGB图像( 3 × H × W 3 \times H \times W 3×H×W),所提取的特征分别为4x、8x、16x及32x倍降采样原图分辨率的尺寸。利用4x降采样分辨率的特征图构建相关性代价体correlation cost volume),输出的cost volume的尺寸为 D / 4 × H / 4 × W / 4 D/4 \times H/4 \times W/4 D/4×H/4×W/4,其中D=192为设置的最大视差范围。

2.2. GCE模块构建

在这里插入图片描述
GCE如上图示,这里的Guided Channel Excitation和前面的GCE(Guided Cost volume Excitation)应该是一个东西,毕竟Guided Channel Excitation全文只出现了一次,可能是作者笔误。。

GCE模块用公式表示为:
α = σ ( F 2 D ( I ( s ) ) ) C o ( s ) = α × C i ( s ) \alpha=\sigma(F^{2D}(I^{(s)})) \\ C_o^{(s)}=\alpha \times C_i^{(s)} α=σ(F2D(I(s)))Co(s)=α×Ci(s)

其中, s s s表示不同尺度, I ( s ) I^{(s)} I(s) s s s尺度下的特征图, F 2 D F^{2D} F2D为2D的point-wise卷积(实际上就是将特征图的channel维度压缩为1,然后通过sigmoid( σ ( ⋅ ) \sigma(\cdot) σ())获得 α \alpha α作为该尺度下的权重图。

对1/4分辨率的cost volume利用hourglass结构进行encode下采样,获得不同尺度下的cost volume记为 C i ( s ) C_i^{(s)} Ci(s),进而将上述获得的权重 α \alpha α与其相乘获得 C o ( s ) C_o^{(s)} Co(s)。经过decode上采样和skip connection最终获得1/4分辨率的cost volume,作为视差回归的输入。

2.3. top-k视差回归

该模块是对GC-Net所提出soft-argmin的改进。soft-argmin中,在cost volume的视差维度 D D D执行softmax,并利用下式回归视差:
d ^ = ∑ d = 0 D d × S o f t m a x ( c d ) \hat{d}=\sum_{d=0}^D {d \times Softmax(c_d)} d^=d=0Dd×Softmax(cd)

然而,当softmax结果中出现多个峰值时,soft argmin表现并不理想。作者通过实验发现,对于每一个像素,在视差维度取前k个最可能的候选值进行视差回归,会得到更加准确的结果:
在这里插入图片描述
为了进一步降低计算量,作者选择在1/4分辨率的cost volume执行top-k soft-argmin,获得初始的视差图(1/4原始分辨率)后,再通过上采样获得原始分辨率的视差图。上采样这一步follow了另外一篇做分割的文章,想了解的话可以参考下原文。

2.4. loss

损失函数比较简单,利用预测视差与gt视差的smooth L1损失:
L ( d G T , d ^ ) = 1 N ∑ i = 1 N s m o o t h L 1 ( d G T − d i ^ ) L(d_{GT}, \hat{d})=\frac{1}{N} \sum_{i=1}^{N}smooth_{L_1}(d_{GT}-\hat{d_i}) L(dGT,d^)=N1i=1NsmoothL1(dGTdi^)

s m o o t h L 1 ( x ) = { 0.5 x 2 , i f ∣ x ∣ < 1 ∣ x ∣ − 0.5 , o t h e r w i s e smooth_{L_1}(x)= \begin{cases} 0.5 x^2, if |x|<1\\ |x|-0.5, otherwise \end{cases} smoothL1(x)={0.5x2,ifx<1x0.5,otherwise

x. 写在最后

论文读完,源码建议不要看了,代码质量不高看的我一头雾水。建议多读有科技企业参与或实力较强的实验室的论文和源码,养成良好的编码习惯。

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值