赞
踩
参考代码:stereo-transformer
导读:这篇文章通过transformer机制实现了一种立体匹配算法(STTR),在该方法中将立体匹配问题转换为序列上的响应问题,使用未知信息编码与注意力机制替换了传统匹配方法中的cost volume策略。由于替换了cost volume解除了预定max-disparity假设的限制,增强了网络的泛化表达能力。在估计视差图的同时显示地估计遮挡区域的概率结果。此外,为了寻找右视图到左视图的最佳匹配,文中对其中的匹配矩阵添加熵约束,从而实现对匹配过程的添加唯一性约束。
将文章的方法(STTR)与correlation-based和3D convolution-based方法进行比较,可以归纳为:
文章的方法在下面几个数据集下的结果:
文章提出的方法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得到最后的结果。
文章提出的transformer结构可见下图:
在上图中可以看到其中首先会经过几个attention层(带position encoding),之后
特征经过带mask的cross-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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。