3D Packing for Self-Supervised Monocular Depth Estimation
论文链接: https://arxiv.org/abs/1905.02693
一、 Problem Statement
作者提出了三个问题:
- 基于自监督深度网络的RGB图像序列场景结构和摄像机运动联合估计问题。
- 深度估计的性能主要是由模型框架决定的。
- 单目视觉在尺度模糊的问题。
二、 Direction
- 提出一个新的框架PackNet,能够最大限度的传递稠密的表面和几何信息同时,还能实时运行。
- 提出一个新的loss,可以选择性的加入相机的速度来解决尺度模糊的问题。
- 提出了一个新的数据集,Dense Depth for Automated Driving。
三、 Method
整体的框架如上图所示。
作者目的是:
- 学习一个单目深度模型 f D : I → D f_D:I \rightarrow D fD:I→D, 能够对taget image I I I 的每一个像素预测一个 尺度模糊 的深度 D ^ = f D ( I ( p ) ) \hat{D}=f_D(I(p)) D^=fD(I(p))。
- 学习一个单目的ego-motion 预测模型 f x : ( I t , I S ) → x t → S f_x : (I_t, I_S) \rightarrow x_{t \rightarrow S} fx:(It,IS)→xt→S, 能够预测一个在taget image I t I_t It 和一系列source images I s ∈ I S I_s \in I_S Is∈IS之间的6自由度的变换 x t → s = ( R t 0 0 ) ∈ S E ( 3 ) x_{t \rightarrow s} = (\begin{matrix} R \quad t \\ 0 \quad 0 \end{matrix} ) \in SE(3) xt→s=(Rt00)∈SE(3) 。在实际中,source images是相邻两帧 I t − 1 , I t + 1 I_{t-1}, I_{t+1} It−1,It+1
1. 目标函数
整体的目标函数如下:
L ( I t , I t ^ ) = L p ( I t , I S ) ⊛ M p ⊛ M t + λ 1 L s ( D t ^ ) L_(I_t, \hat{I_t}) = L_p(I_t, I_S) \circledast M_p \circledast M_t + \lambda_1 L_s(\hat{D_t}) L(It,It^)=Lp(It,IS)⊛Mp⊛Mt+λ1Ls(Dt^)
其中, I t ^ \hat{I_t} It^ 是 synthesized taget image, I t I_t It 是target image, appearance matching loss是 L p L_p Lp, depth regularization (edge-aware smoothing) L s L_s Ls 。 M t M_t Mt 是 binary mask,避免计算那些没有有效映射的像素的photometric loss。 而 ⊛ \circledast ⊛表示element-wise multiplication。
(1) Appearance Matching Loss
L P ( I t , I t ^ ) = α 1 − S S I M ( I t , I t ^ ) 2 + ( 1 − α ) ∣ ∣ I t − I t ^ ∣ ∣ L_P(I_t, \hat{I_t}) = \alpha \frac{1-SSIM(I_t, \hat{I_t})}{2}+(1-\alpha)||I_t - \hat{I_t}|| LP(It,It^)=α21−SSIM(It,It^)+(1−α)∣∣It−It^∣∣
L p ( I t , I S ) = min I S L p ( I , I t ^ ) L_p(I_t, I_S) = \min_{I_S} L_p (I_, \hat{I_t}) Lp(It,IS)=ISminLp(I,It^)
M p = min I s L p ( I t , I s ) > min I s L p ( I t , I t ^ ) M_p=\min_{I_{s}} L_p(I_t, I_s) > \min_{I_s} L_p(I_t, \hat{I_t}) Mp=IsminLp(It,Is)>IsminLp(It,It^)
(2) Depth Smoothness Loss
L s ( D t ^ ) = ∣ δ x D t ^ ∣ e − ∣ δ x I t ∣ + ∣ δ y D t ^ ∣ e ∣ δ y I t ∣ L_s(\hat{D_t}) = |\delta_x \hat{D_t}|e^{-|\delta_x I_t|} + |\delta_y \hat{D_t}| e^{|\delta_y I_t|} Ls(Dt^)=∣δxDt^∣e−∣δxIt∣+∣δyDt^∣e∣δyIt∣
(1)和(2) 和 monodepth2一样。
(3) Scale-Aware Sfm
这一部分是解决尺度模糊的方法。作者提出了 velocity supervision loss。
L v ( t ^ t → s , v ) = ∣ ∥ t ^ t → s ∥ − ∣ v ∣ △ T t → s ∣ L_v(\hat{t}_{t \rightarrow s}, v) = | \| \hat{t}_{t \rightarrow s} \| -|v|\triangle T_{t \rightarrow s} | Lv(t^t→s,v)=∣∥t^t→s∥−∣v∣△Tt→s∣
所以整体的loss可以改进为:
L s c a l e ( I t , I t ^ , v ) = L ( I t , I ^ t ) + λ 2 L v ( t ^ t → s , v ) L_{scale} (I_t, \hat{I_t}, v) = L(I_t, \hat{I}_t) + \lambda_2 L_v(\hat{t}_{t \rightarrow s}, v) Lscale(It,It^,v)=L(It,I^t)+λ2Lv(t^t→s,v)
2. 网络结构
monodepth 使用了类似于U-Net的网络结构,而本文也是类似于encoder-decoder的结构。作者认为
四、 Conclusion
通过引入相机速度改进了尺度模糊的问题,也提出了一个新的网络结构,提升性能。