Digging into Self-Supervised Monocular Depth Prediction 论文笔记

深度估计论文笔记 专栏收录该内容
3 篇文章 0 订阅

Digging into Self-Supervised Monocular Depth Prediction

论文链接: https://arxiv.org/abs/1806.01260

一、 Problem Statement

解决monodepth1重叠,深度不连续,还有需要两张图片进行训练等问题。

二、 Direction

提出了三点:

  1. a minimum project loss(appearance matching loss), 解决occlusion问题。
  2. a full-resolution multi-scale 采样方法,降低visual artifacts。
  3. an auto-masking loss, 忽略违背相机运动假设的训练像素。
  4. 提供了三种训练方式,单目,双目和单目加双目。

三、 Method

1、Self-Supervised Training

首先对自监督深度估计,或者monodepth的insight进行回顾。目的是输入一张图像, 输出一个深度图 D t D_t Dt, 因此网络是通过输入source image 预测 target image的appearance。作者用 T t → t ′ T_{t\rightarrow t'} Ttt表示source image I t ′ I_{t'} It 到 target image I t I_t It的relative pose。把问题当成是最小化photometric loss的, 因此输出的深度图 D t D_t Dt,即最小化 L p L_p Lp

L p = ∑ t ′ p e ( I t , I t ′ → t ) I t ′ → t = I t ′ < p r o j ( D t , T t → t ′ , L ) > L_p = \sum_{t'} pe(I_t, I_{t'\rightarrow t}) \\ I_{t' \rightarrow t} = I_{t'} <proj(D_t, T_{t \rightarrow t'}, L)> Lp=tpe(It,Itt)Itt=It<proj(Dt,Ttt,L)>
其中 p e pe pe 是photometric reconstruction error----L1 distance in pixel space。 p r o j ( ) proj() proj()是深度图 D t D_t Dt投影在source image I t ′ I_{t'} It的2D坐标系, < > < > <> 是采样操作。具体来说:

p e ( I a , I b ) = a 2 ( 1 − S S I M ( I a , I b ) ) + ( 1 − α ) ∣ ∣ I a − I b ∣ ∣ pe(I_a, I_b) = \frac{a}{2}(1-SSIM(I_a,I_b)) + (1-\alpha)||I_a-I_b|| pe(Ia,Ib)=2a(1SSIM(Ia,Ib))+(1α)IaIb

也使用了edge-aware smoothness:

L s = ∣ ∂ x d t ∗ ∣ e − ∣ ∂ x I t ∣ + ∣ ∂ y d t ∗ ∣ e − ∣ ∂ y I t ∣ L_s = |\partial_x d_t^*|e^{-|\partial_x I_t|} + |\partial_y d_t^*|e^{-|\partial_y I_t|} Ls=xdtexIt+ydteyIt

这里的 d t ∗ = d t / d t ˉ d_t^* = d_t/\bar{dt} dt=dt/dtˉ, 是阻止估计深度收缩的平均归一化反深度。

对于双目摄像头source image I t ′ I_{t'} It是另一个视角的图像,因此有知道的相对位姿 T t → t ′ T_{t \rightarrow t'} Ttt而对于单目摄像头,并不能提前知道这个相对位姿,所以就使用了posenet去估计相对位姿,作者使用临近 I t I_t It的两帧图像, I t ′ ∈ { I t − 1 , I t + 1 } I_{t'} \in \{I_{t-1}, I_{t+1}\} It{It1,It+1} 作为source image。

2、Improved Self-Supervised Depth Estimation (本文重点)

先来看一下总体的loss:

L = μ L p + λ L s L = \mu L_p + \lambda L_s L=μLp+λLs

(1). Per-pixel Minimum Reprojection Loss

目前计算reprojection error是计算多个source images的平均误差。但从上图的c可以看出,在重叠的地方可能不太能匹配上对应目标,导致一个高的photometric error。所以作者分析,问题像素来自于两点: 超出边界的像素 和 遮挡的像素。而超出边界的像素可以通过在reprojection loss里面使用掩膜来解决,但对于遮挡部分,作者采用了求在source images的最小误差。 因此,最终的per-pixel photometric loss为:

L p = min ⁡ t ′ p e ( I t , I t ′ → t ) L_p = \min_{t'}pe(I_t, I_{t' \rightarrow t}) Lp=tminpe(It,Itt)

(2). Auto-Masking Stationary Pixels

自监督单目训练通常基于一个假设就是:相机移动而场景固定。 当这个假设被打破了,比如相机是固定的,或者在场景内有目标在移动,性能就会下降。因此作者提出了auto-masking 方法去过滤那些在当前帧和下一帧没有变化的像素。这就可以使得网络忽略那些与相机同样速度的目标,甚至在相机停止移动的时候,忽略整个数据帧。所以作者设置了一个掩膜 μ \mu μ 如下:

μ = [ min ⁡ t ′ p e ( I t , I t ′ → t ) < min ⁡ t ′ p e ( I t , I t ′ ) ] \mu = [\min_{t'}pe(I_t, I_{t'\rightarrow t})< \min_{t'}pe(I_t, I_{t'})] μ=[tminpe(It,Itt)<tminpe(It,It)]

(3). Multi-scale Estimation

如上图d中所示,作者没有使用低分辨率的深度图进行计算photometric error,而是首先upscale深度图到输入图片的大小后,在进行计算。

四、 Conclusion

提供了monodepth改进的ideas。

五、 Network Architecture

作者使用了ResNet18 作为深度的网络和posenet的encoder。但是pose encoder修改为可以接收一对输入。 Decoder 使用了以下的结构:

六、 Reference

  1. https://arxiv.org/abs/1806.01260
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值