论文阅读《HITNet: Hierarchical Iterative Tile Refinement Network for Real-time Stereo Matching》

论文地址:https://arxiv.org/abs/2007.12140v2


背景

  本文提出一种不需要构建代价体来进行立体匹配的方法,通过多分辨率初始化、可微的传播过程与warp机制来实现视差预测。此外基于倾斜窗口的假设来提升几何warp与上采样操作的精度;创新点如下:

  • 提出一种高效的多分辨率初始化步骤,能够使用学习到的特征计算高分辨率匹配;
  • 基于倾斜窗口假设与学习到的特征进行视差传播;

模型架构

在这里插入图片描述
  模型大致内容如下:先使用一个紧凑的U-Net结构提取左右视图的多尺度特征,在多尺度上构建基于平行窗口的视差假设层,然后基于 L 1 L_1 L1 距离得到初始视差图;在得到初始视差图的前提下使用视差传播来得到更精确的视差图;

Tile Hypothesis

使用Tile Hypothesis来存储一个title的信息,其包含几何约束信息与可学习的特征信息,如式1所示:
h = [ d , d x , d y ⏟ plane  , p ⏟ descriptor  ] (1) \mathbf{h}=[\underbrace{d, d_{x}, d_{y}}_{\text {plane }}, \underbrace{\mathbf{p}}_{\text {descriptor }}]\tag1 h=[plane  d,dx,dy,descriptor  p](1)
其中 d d d 为title的视差, d x 、 d y d_x、d_y dxdy 为该title内视差的梯度,用这三个量可以表示一个title平面; p p p 为特征描述符,是一个可学习的参数,用于表示title的特征向量,通过网络学习可以将学习到的附加信息叠加到title中;模型的目标是为对title的视差进行调优,获得最终的视差图;

特征提取模块

  首先使用U-Net得到多尺度的特征图 E = { e 0 , … e M } \mathcal{E}=\left\{e_{0}, \ldots e_{M}\right\} E={e0,eM} ,其中 e l e_l el 表示第 l l l 层的特征图,其中 l ∈ 0 , . . . M l\in 0,...M l0,...M e 0 e_0 e0 表示原始分辨率大小的特征图, e M e_M eM 表示原图下采样 2 M 2^{M} 2M 倍的特征图, e l , x , y e_{l,x,y} el,x,y 表示 e l e_l el 特征图中 ( x , y ) (x,y) (x,y) 点的特征向量;

初始化

  初始化的过程包含在所有分辨率上初始化视差 d i n i t d^{init} dinit 与 特征描述子 P i n i t P^{init} Pinit ,经过初始化会得到 M + 1 M+1 M+1 个基于平行视差窗口的 tile Hypothesis: h i n i t = [ d i n i t , 0 , 0 , p i n i t ] h^{init}=[d^{init}, 0, 0, p^{init}] hinit=[dinit,0,0,pinit]

视差初始化

  对于所有分辨率的左视图的特征图,使用 4 × 4 4\times 4 4×4 步长的CNN对特征图 e l L e^L_l elL 处理后得 1 4 h × 1 4 w \frac{1}{4}h\times \frac{1}{4}w 41h×41w的匹配特征图 e ~ l L \tilde{e}^L_l e~lL;对所有分辨率的右视图的特征图使用 4 × 1 4\times 1 4×1步长的CNN进行特征提取后得 1 4 h × w \frac{1}{4}h\times w 41h×w 尺寸的匹配特征图 e ~ l R \tilde{e}^R_l e~lR;在卷积层后面后跟随一个 ReLU层与 1 × 1 1\times 1 1×1 的卷积层;由此得到 E L ~ = { e ~ 0 L , … , e ~ M L } \tilde{\mathcal{E^L}}=\left\{\tilde{\mathbf{e}}^L_{0}, \ldots, \tilde{\mathbf{e}}^L_{M}\right\} EL~={e~0L,,e~ML} E R ~ = { e ~ 0 R , … , e ~ M R } \tilde{\mathcal{E^R}}=\left\{\tilde{\mathbf{e}}^R_{0}, \ldots, \tilde{\mathbf{e}}^R_{M}\right\} ER~={e~0R,,e~MR},此时左右匹配特征图的尺寸不同(左视图的匹配特征图的宽度为右匹配特征图的 1 4 \frac{1}{4} 41
初始化匹配代价为
使用匹配特征 E L ~ 、 E R ~ \tilde{\mathcal{E^L}}、\tilde{\mathcal{E^R}} EL~ER~求初始代价体如式2所示:
ϱ ( l , x , y , d ) = ∥ e ~ l , x , y L − e ~ l , 4 x − d , y R ∥ 1 (2) \varrho(l, x, y, d)=\left\|\tilde{\mathbf{e}}_{l, x, y}^{L}-\tilde{\mathbf{e}}_{l, 4 x-d, y}^{R}\right\|_{1}\tag2 ϱ(l,x,y,d)= e~l,x,yLe~l,4xd,yR 1(2)
因为右视图的宽度是左视图的4倍,因此右视图的索引下标为 4 x − d 4x-d 4xd
初始的视差:如式3所示:
d l , x , y init  = argmin ⁡ d ∈ [ 0 , D ] ϱ ( l , x , y , d ) (3) d_{l, x, y}^{\text {init }}=\operatorname{argmin}_{d \in[0, D]} \varrho(l, x, y, d)\tag3 dl,x,yinit =argmind[0,D]ϱ(l,x,y,d)(3)
  此外,尽管初始化阶段所有 patch 都计算匹配代价,但不需要存储代价体。测试阶段只需要提取最佳匹配的位置,这可以利用快速存储器(例如,GPU上的共享存储器)非常高效地完成。因此,不需要存储和处理3D匹配代价体;
初始的描述子:如式4所示:
p l , x , y init  = D ( ϱ ( d l , x , y init  ) , e ~ l , x , y L ; θ D l ) (4) \mathbf{p}_{l, x, y}^{\text {init }}=\mathcal{D}\left(\varrho\left(d_{l, x, y}^{\text {init }}\right), \tilde{\mathbf{e}}_{l, x, y}^{L} ; \boldsymbol{\theta}_{\mathcal{D}_{l}}\right)\tag4 pl,x,yinit =D(ϱ(dl,x,yinit ),e~l,x,yL;θDl)(4)
其中,初始描述子 实际上使用一个多层感知机预测而来,感知机的输入为某像素点的初始深度对应的代价值 ϱ ( l , x , y , d i n i t ) \varrho(l, x, y, d_{init}) ϱ(l,x,y,dinit) 与 该层对应的匹配特征图在该点的特征向量 e ~ l , x , y L \tilde{\mathbf{e}}_{l, x, y}^{L} e~l,x,yL,而 θ D l \boldsymbol{\theta}_{\mathcal{D}_{l}} θDl 表示MLP的参数;

传播

  传播过程是以该层初始化的Tile Hypothesis与上一层预测的Tile Hypothesis上采样为输入,基于空间传播和信息融合来得到更精细化的Tile Hypothesis,过程中将右视图的特征warp到左视图用于求输入Tile Hypothesis的残差;此外,额外引入了一个置信度参数,用于融合上一层上采样而来的Tile Hypothesis与本层初始化的Tile Hypothesis;

Local Cost Volume
  warping 操作是基于第 l l l 层的tiles Hypothesis将 e l R e^R_l elR 的特征图warp到左视图,然后与 e l L e^L_l elL 求损失。以此来衡量该层的tiles Hypothesis 的准确性(自监督损失);在初始化阶段,每个 title Hypothesis 代表了一个 4 × 4 4\times 4 4×4 窗口内的信息(匹配特征图是有原始特征图以stride为 4 × 4 4\times 4 4×4下采样而来),根据中心点的视差 d d d 与梯度 d x 、 d y d_x 、d_y dxdy 可以计算出窗口内其余点的视差值;利用一个窗口内16个点的16个视差值,可以将 e l R e^R_l elR 中对应16个点的特征图warp到左视图并与 e l R e^R_l elR 对应点特征求误差,从而得到16个匹配误差值;
在这里插入图片描述
在title plane求邻域点的视差:tiles Hypothesis中每个像素点(黑点)对应原始特征图 e l L e^L_l elL 每个 4 × 4 4\times 4 4×4 窗口,给定中心点的视差d与梯度 d x 、 d y d_x 、d_y dxdy e l L e^L_l elL 4 × 4 4\times 4 4×4 窗口内其余点的的视差如式5所示:
d i , j ′ = d + ( i − 1.5 ) d x + ( j − 1.5 ) d y (5) \mathbf{d}_{i, j}^{\prime}=d+(i-1.5) d_{x}+(j-1.5) d_{y}\tag5 di,j=d+(i1.5)dx+(j1.5)dy(5)
其中 i , j ∈ { 0 , 1 , 2 , 3 } i, j \in\{0, 1, 2, 3\} i,j{0,1,2,3}

故每个窗口内的warp后的匹配误差向量 ϕ ( e l , d ′ ) ∈ R 16 \boldsymbol{\phi}\left(\mathbf{e}_{l}, \mathbf{d}^{\prime}\right)\in{R^{16}} ϕ(el,d)R16 如式6所示:
ϕ ( e l , d ′ ) = [ c 0 , 0 , c 0 , 1 , … , c 0 , 3 , c 1 , 0 … c 3 , 3 ] w h e r e      c i , j = ∥ e l , 4 x + i , 4 y + j L − e l , 4 x + i − d ′ i , j , 4 y + j R ∥ 1 (6) \boldsymbol{\phi}\left(\mathbf{e}_{l}, \mathbf{d}^{\prime}\right)=\left[c_{0,0}, c_{0,1}, \ldots, c_{0,3}, c_{1,0} \ldots c_{3,3}\right]\\\\ where \ \ \ \ c_{i, j}=\left\|\mathbf{e}_{l, 4 x+i, 4 y+j}^{L}-\mathbf{e}_{l, 4 x+i-\mathbf{d}^{\prime}{ }_{i, j}, 4 y+j}^{R}\right\|_{1} \tag6 ϕ(el,d)=[c0,0,c0,1,,c0,3,c1,0c3,3]where    ci,j= el,4x+i,4y+jLel,4x+idi,j,4y+jR 1(6)

式6表明匹配误差向量是在 e l L e^L_{l} elL e l R e^R_{l} elR上的特征匹配计算得来的, 其中 e l , 4 x + i − d ′ i , j , 4 y + j R \mathbf{e}_{l, 4 x+i-\mathbf{d}^{\prime}{ }_{i, j}, 4 y+j}^{R} el,4x+idi,j,4y+jR 就是右视图根据根据每个像素预测的视差值warp回左视图的特征向量;

  文中同时考虑了 ϕ ( e l , d ′ − 1 ) \boldsymbol{\phi}\left(\mathbf{e}_{l}, \mathbf{d}^{\prime}-1\right) ϕ(el,d1) ϕ ( e l , d ′ + 1 ) \boldsymbol{\phi}\left(\mathbf{e}_{l}, \mathbf{d}^{\prime}+1\right) ϕ(el,d+1) ,即局部代价体(Local Cost Volume)为 { ϕ ( e l , d ′ − 1 ) \boldsymbol{\phi}\left(\mathbf{e}_{l}, \mathbf{d}^{\prime}-1\right) ϕ(el,d1) ϕ ( e l , d ′ ) \boldsymbol{\phi}\left(\mathbf{e}_{l}, \mathbf{d}^{\prime}\right) ϕ(el,d) ϕ ( e l , d ′ + 1 ) \boldsymbol{\phi}\left(\mathbf{e}_{l}, \mathbf{d}^{\prime}+1\right) ϕ(el,d+1)}

Tile Update Prediction
  结合Tile Hypothesis: h l , x , y h_{l, x, y} hl,x,y 与 Local Cost Volume 一起构成了更新 Tile Hypothesis 的 CNN 模型的输入:
a l , x , y = [ h l , x , y , ϕ ( e l , d ′ − 1 ) , ϕ ( e l , d ′ ) , ϕ ( e l , d ′ + 1 ) ⏟ local cost volume  ] (7) \mathbf{a}_{l, x, y}=[\mathbf{h}_{l, x, y}, \underbrace{\phi\left(\mathbf{e}_{l}, \mathbf{d}^{\prime}-\mathbf{1}\right), \phi\left(\mathbf{e}_{l}, \mathbf{d}^{\prime}\right), \phi\left(\mathbf{e}_{l}, \mathbf{d}^{\prime}+\mathbf{1}\right)}_{\text {local cost volume }}]\tag7 al,x,y=[hl,x,y,local cost volume  ϕ(el,d1),ϕ(el,d),ϕ(el,d+1)](7)
  这一步将每个像素的 n 个 Tile Hypothesis 作为输入,并预测 Tile Hypothesis 的更新残差值加上每个Tile Hypothesis 的权重 w n w^n wn ,表明这个Tile Hypothesis 的置信度。使用CNN模块 U l \mathcal{U}_{l} Ul来预测n个 Tile Hypothesis 的残差与置信度:
( Δ h l 1 , w 1 , … , Δ h l n , w n ⏟ hypotheses updates  ) = U l ( a l 1 , … , a l n ; θ U l ) . (8) (\underbrace{\Delta \mathbf{h}_{l}^{1}, w^{1}, \ldots, \Delta \mathbf{h}_{l}^{n}, w^{n}}_{\text {hypotheses updates }})=\mathcal{U}_{l}\left(\mathbf{a}_{l}^{1}, \ldots, \mathbf{a}_{l}^{n} ; \boldsymbol{\theta}_{\mathcal{U}_{l}}\right) .\tag8 (hypotheses updates  Δhl1,w1,,Δhln,wn)=Ul(al1,,aln;θUl).(8)
其中 w i ∈ R w^{i}\in R wiR 为每个 title hypothesis的权重;其中 n 代表有每个像素点有几个 Tile Hypothesis :
  当 l = M l=M l=M 时(最低分辨率层),每个像素点只有初始化的 Tile Hypothesis,故 n = 1 n=1 n=1 。通过预测的 title hypothesis 残差值与原来的title hypothesis 得到更新后的title hypothesis,再对其进行2倍上采样得到下一层的 title hypothesis。在这一步,因此,视差 d 使用title hypothesis的平面方程进行上采样,而title hypothesis的其余部分dx、dy和p使用最近邻采样进行上采样。
  当 l = M − 1 l = M-1 l=M1 n = 2 n=2 n=2 ,一个是 l = M − 1 l = M-1 l=M1 层初始化得到的 Tile Hypothesis ,一个是上个state的Tile Hypothesis经过上采样得到的 Tile Hypothesis;此时使用 w i w_i wi 来选择并更新置信度最高的 Tile Hypothesis ;然后重复此过程,直到得到原始分辨率的视差图,从而实现对视差的精细化;


损失函数

损失函数包含一个约束初始视差估计的对比损失和一个约束tile视差参数的损失(既约束tile中的视差,又约束tile中的视差梯度,还涉及置信度的约束)

Initialization Loss

Ground True是亚像素精度的视差值,但是初始化视差是用整数表示
ψ ( d ) = ( d − ⌊ d ⌋ ) ϱ ( ⌊ d ⌋ + 1 ) + ( ⌊ d ⌋ + 1 − d ) ϱ ( ⌊ d ⌋ ) (9) \psi(d)=(d-\lfloor d\rfloor) \varrho(\lfloor d\rfloor+1)+(\lfloor d\rfloor+1-d) \varrho(\lfloor d\rfloor)\tag9 ψ(d)=(dd⌋)ϱ(⌊d+1)+(⌊d+1d)ϱ(⌊d⌋)(9)

Initialization Loss 目标是U-Net得到一个较好的特征 E \mathcal{E} E 使得初始初始代价体在ground true处的代价最小而在其它 d d d 的代价较大,为此设计了一个对比损失:
L i n i t ( d g t , d n m ) = ψ ( d g t ) + max ⁡ ( β − ψ ( d n m ) , 0 ) (10) L^{\mathrm{init}}\left(d^{\mathrm{gt}}, d^{\mathrm{nm}}\right)=\psi\left(d^{\mathrm{gt}}\right)+\max \left(\beta-\psi\left(d^{\mathrm{nm}}\right), 0\right)\tag{10} Linit(dgt,dnm)=ψ(dgt)+max(βψ(dnm),0)(10)
其中 β > 0 \beta >0 β>0 是个边界, d g t d^{gt} dgt 是标签视差, d m n d^{mn} dmn 如式11所示:
d n m = argmin ⁡ d ∈ [ 0 , D ] / { d : d ∈ [ d g t − 1.5 , d g t + 1.5 ] } ϱ ( d ) (11) d^{\mathrm{nm}}=\operatorname{argmin}_{d \in[0, D] /\left\{d: d \in\left[d^{\mathrm{gt}}-1.5, d^{\mathrm{gt}}+1.5\right]\right\}} \varrho(d)\tag{11} dnm=argmind[0,D]/{d:d[dgt1.5,dgt+1.5]}ϱ(d)(11)
d m n d^{mn} dmn表示在不匹配的视差值 d d d 产生的最低代价, d ∈ [ 0 , D ] / { d : d ∈ [ d g t − 1.5 , d g t + 1.5 ] d \in[0, D] /\{d: d \in [d^{\mathrm{gt}}-1.5, d^{\mathrm{gt}}+1.5] d[0,D]/{d:d[dgt1.5,dgt+1.5] 表示 d ∈ [ 0 , d g t − 1.5 ] ∪ [ d g t + 1.5 , D ] d\in [0, d^{\mathrm{gt}}-1.5]\cup [d^{\mathrm{gt}}+1.5, D] d[0,dgt1.5][dgt+1.5,D] 也就是非最优视差d;该损失将 d = g r o u n d t r u e d = ground true d=groundtrue 时的初始代价推向0,以及驱使非最优视差d的匹配代价推向一定的边界(有点像传统算法中的最优和次优拉开一定的距离,形成单峰损失)。要么使用一个随机的非最优视差匹配代价作为负样本,要么使用所有的非最优视差匹配代价作为负样本。

Propagation Loss

在传播过程中,对 tile 的几何约束信息和置信度设置损失函数:
L prop  ( d , d x , d y ) = min ⁡ ( ρ ( d diff  ) , A ) (12) L^{\text {prop }}\left(d, d_{x}, d_{y}\right)=\min \left(\rho\left(d^{\text {diff }}\right), A\right)\tag{12} Lprop (d,dx,dy)=min(ρ(ddiff ),A)(12)

其中 ρ ( . ) \rho(.) ρ(.) 表示一个平滑 L 1 L_1 L1 损失,且 d d i f f = d g t − d ^ d^{\mathrm{diff}}=d^{\mathrm{gt}}-\hat{d} ddiff=dgtd^

此外,还对倾斜表面设置损失,如式13所示:
L s l a n t ( d x , d y ) = ∥ d x g t − d x d y g t − d y ∥ 1 χ ∣ d d i f f ∣ < B (13) L^{\mathrm{slant}}\left(d_{x}, d_{y}\right)=\left\|\begin{array}{c} d_{x}^{\mathrm{gt}}-d_{x} \\ d_{y}^{\mathrm{gt}}-d_{y} \end{array}\right\|_{1} \chi_{\left|d^{\mathrm{diff}}\right|<B}\tag{13} Lslant(dx,dy)= dxgtdxdygtdy 1χddiff<B(13)
其中 χ \chi χ 是一个指示函数,当条件满足时,它的值为1,否则为0。

为了监督置信度,当预测的视差与 d g t d_{gt} dgt 距离小于 C 1 C_1 C1 增加置信度,而距离大于 C 2 C_2 C2 时应该减小置信度,如式14所示:
L w ( w ) = max ⁡ ( 1 − w , 0 ) χ ∣ d diff  ∣ < C 1 + max ⁡ ( w , 0 ) χ ∣ d diff  ∣ > C 2 (14) L^{\mathrm{w}}(w)=\max (1-w, 0) \chi_{| d^{\text {diff }}|<C_{1}}+\max (w, 0) \chi_{|d^{\text {diff }}|>C_{2}}\tag{14} Lw(w)=max(1w,0)χddiff <C1+max(w,0)χddiff >C2(14)

Global Loss

总体的损失函数如式15所示:
L t o t a l = ∑ l , x , y λ init  L l init  + λ prop  L l prop  + λ slant  L l slant  + λ w L l w (15) L_{total} = \sum_{l, x, y} \lambda^{\text {init }} L_{l}^{\text {init }}+\lambda^{\text {prop }} L_{l}^{\text {prop }}+\lambda^{\text {slant }} L_{l}^{\text {slant }}+\lambda^{\mathrm{w}} L_{l}^{\mathrm{w}}\tag{15} Ltotal=l,x,yλinit Llinit +λprop Llprop +λslant Llslant +λwLlw(15)


实验结果

在这里插入图片描述

在这里插入图片描述

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CV科研随想录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值