本文共 3028 字,大约阅读时间需要 10 分钟。
参考代码:
导读:这篇文章提出了一种自监督的深度估计方法,其使用视频序列与运动信息作为输入,用网络去估计深度信息/相机位姿,并用最小重构误差去约束整个训练的过程从而实现自监督。文章的创新点主要体现为:使用3D卷机作为深度编解码网络,在相机位姿的6d信息基础上对平移分量进行约束,提出了一个新的数据集DDAD(Dense Depth for Automated Driving)。
单目情况下的自监督深度估计问题一般是使用几个相邻的视频帧去相互映射,其中完成映射所需要的参数是通过网络估计出来的。在这篇文章之前monodepth是一个较为成功的案例,文章的方法在很多环节的设计上与之类似,整体下来文章的主要工作可以归纳为:
文章方法的效果见下图例子所示:
文章的整体pipeline结构见下图所示:
深度的自监督与monodepth中使用的方法类似,其损失函数为:
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)\odot M_p\odot M_t+\lambda_1L_s(\hat{D_t}) L(It,It^)=Lp(It,Is)⊙Mp⊙Mt+λ1Ls(Dt^) 其中, M t M_t Mt代表的是那些未被匹配到的像素掩膜。其中对于重建误差的描述形式为: 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 t , I t ^ ) L_p(I_t,I_S)=\min_{I_S}L_p(I_t,\hat{I_t}) Lp(It,IS)=ISminLp(It,It^) 此外为了增加训练的稳定性与对视频中目标移动的适应,增加了一个automask掩膜机制,其取值描述为: 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)\gt\min_{I_S}L_p(I_t,\hat{I_t}) Mp=ISminLp(It,IS)>ISminLp(It,It^) 上述损失中的最后一项是边界平滑损失,描述为: L s ( D t ^ ) = ∣ ∂ x D t ^ ∣ e − ∣ ∂ x I t ∣ + ∣ ∂ y D t ^ ∣ e − | ∂ y I t | L_s(\hat{D_t})=|\partial_x\hat{D_t}|e^{-|\partial_xI_t|}+|\partial_y\hat{D_t}|e^{-|\partial_yI_t|} Ls(Dt^)=∣∂xDt^∣e−∣∂xIt∣+∣∂yDt^∣e−|∂yIt|在monodepth中(也就是上节内容)是对相机位姿没有一个准确的scale去做约束的,这就导致了最后估计出来的深度并补准确,对此文章使用加速度计对估计出来的相机位姿中的平移分量进行约束,从而使其引入了scale的属性,从而使得估计出来的深度信息更加准确。这里使用到了帧间的时间差 Δ T t → s \Delta T_{t\rightarrow s} ΔTt→s,加速度计得到的瞬时速度 v v v,网络估计出来的平移参数 t ^ t → s \hat{t}_{t\rightarrow s} t^t→s,则文章中将scale属性的损失定义为:
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\Delta T_{t\rightarrow s}| Lv(t^t→s,v)=∣∣∣t^t→s∣∣−∣∣vΔTt→s∣ 因而加上引入scale属性,整个网络的损失函数被描述为: 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_2L_v(\hat{t}_{t\rightarrow s},v) Lscale(It,It^,v)=L(It,It^)+λ2Lv(t^t→s,v)上下采样模块:
文章抛弃了使用pool操作和线性upsample操作用作下和上采样,充分使用3D卷积的内在属性,从而有效规避了这些操作,从而使得网络在细节上具有更好的变现能力。其使用3D卷积进行上下采样的基础模块见下图所示:网络结构:
这里的网络结构详细见下表所示:与monodepth的性能比较:
转载地址:http://ukkhj.baihongyu.com/