《STTR:Revisiting Stereo Depth Estimation From a Sequence-to-Sequence Perspective with Transformers》

参考代码:stereo-transformer

1. 概述

导读:这篇文章通过transformer机制实现了一种立体匹配算法(STTR),在该方法中将立体匹配问题转换为序列上的响应问题,使用未知信息编码与注意力机制替换了传统匹配方法中的cost volume策略。由于替换了cost volume解除了预定max-disparity假设的限制,增强了网络的泛化表达能力。在估计视差图的同时显示地估计遮挡区域的概率结果。此外,为了寻找右视图到左视图的最佳匹配,文中对其中的匹配矩阵添加熵约束,从而实现对匹配过程的添加唯一性约束。

将文章的方法(STTR)与correlation-based和3D convolution-based方法进行比较,可以归纳为:

  • 1)STTR与correlation-based方法比较:STTR在进行左右视图匹配的时候通过self-attention和cross-attention建立相关性,并且对像素点匹配的结果进行唯一性约束;
  • 2)STTR与3D convolution-based方法比较:STTR通过attention建立像素之间的关联,而不是通过设定max-disparity的形式建立cost volume;

文章的方法在下面几个数据集下的结果:
在这里插入图片描述

2. 方法设计

2.1 pipline

文章提出的方法pipeline见下图所示:
在这里插入图片描述
在上图中可以看到左右两视图经过一个共享backbone和tokenizer进行特征抽取,这部分的实现可以参考:

# backbone 部分
# module/feat_extractor_backbone.py#L15
class SppBackbone(nn.Module):# tokenizer部分
# module/feat_extractor_tokenizer.py#L62
class Tokenizer(nn.Module):

经过上面两个过程对特征进行抽取得到的是channel为 C e C_e Ce,空间分辨率与原输入尺度 ( I h , I w ) (I_h,I_w) (Ih,Iw)一致的特征图。之后这些特征图便与位置编码组合经过 N N N层的attention操作预测得到粗预测结果,之后再改结果的基础上进行refine得到最后的结果。

2.2 Transformer操作

文章提出的transformer结构可见下图:
在这里插入图片描述
在上图中可以看到其中首先会经过几个attention层(带position encoding),之后
特征经过带mask的cross-attention得到最后优化的特征。

2.2.1 attention操作

这里采用的attention操作是multi-head attention,可以参考pytorch的实现nn.MultiheadAttention。这里会将特征图在channel维度进行分组操作,对不同的分组进行运算从而增强特征的表达的能力,对于组的划分可以描述为: C h = C e N h C_h=\frac{C_e}{N_h} Ch=NhCe,其中分母是划分的组的数量。在每个分组中会产生回应的query、key和value向量,其分别表示为:
Q h = W Q h e I + b Q h Q_h=W_{Q_h}e_I+b_{Q_h} Qh=WQheI+bQh
K h = W K h e I + b K h K_h=W_{K_h}e_I+b_{K_h} Kh=WKheI+bKh
V h = W V h e I + b V h V_h=W_{V_h}e_I+b_{V_h} Vh=WVh

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值