3D Packing for Self-Supervised Monocular Depth Estimation论文笔记

2019 3D Packing for Self-Supervised Monocular Depth Estimation

1、基础知识:

在这里插入图片描述

​ 如上图所示,虽然处于同一水平面上的照相机L、R拍摄了同一个物体,两者之间产生的图片是不同的,并且这种不同是不能通过平移生成的图片所消除的。离相机近的物体偏离的位置比较大,离相机远的物体偏离的比较小。这种差异性的存在就是三维空间带来的。同时同一水平线上的两个相机拍摄到的图片是服从以下物理规律的:
在这里插入图片描述

​ 在图中, z z z为场景所距离我们的深度, X X X为三维场景映射到的二维图像平面,也就是最终我们得到的二维图像所在的平面。 f f f为相机的焦距, b b b为两个相机之间的距离, x l x_l xl x r x_r xr分别为相同物体在左右两个不同相机中成像的坐标。根据以上信息和简单的三角形相似规律可以得到:
x − b = z f x r ; x = z f x l ; ⇒ ( x l − x r ) = f b z x-b=\frac{z}{f}x_r; x=\frac{z}{f}x_l;\Rightarrow (x_l-x_r)=\frac{fb}{z} xb=fzxr;x=fzxl;(xlxr)=zfb
​ 这里 x l − x r x_l-x_r xlxr就是我们常说的视差 d d d(disparity),代表了 x r x_r xr这个点在相机 L L L和相机 R R R中成像的偏离值。也就是说这个值代表了左相机中的像素需要通过平移 d d d才能形成右相机中相应的像素。所以两个视角之间的关系可以写作:
d = x l − x r ⇒ x l = d + x r d=x_l-x_r \Rightarrow x_l=d+x_r d=xlxrxl=d+xr
​ 假设我们有一个很强大的函数 F F F,没错这个函数就是神经网络,使得 F ( I r ) = d F(I_r)=d F(Ir)=d I r I_r Ir是右相机拍摄的图像,那么就有:
I r ( x r ) = I l ( x l ) ; x l = F ( I r ) + x r ; ⇒ I r ( x r ) = I l ( F ( I r ) + x r ) I_r(x_r)=I_l(x_l); x_l=F(I_r)+x_r; \Rightarrow I_r(x_r)=I_l(F(I_r)+x_r) Ir(xr)=Il(xl);xl=F(Ir)+xr;Ir(xr)=Il(F(Ir)+xr)
​ 其中 I l I_l Il是左相机拍摄的图像,只要我们以 I l I_l Il作为训练的输入, I r I_r Ir作为所对应的参考标准,建立如上关系的神经网络 F F F,通过大量的双目图像对的训练,得到的神经网络 F F F就是一个输入一张图片 I l I_l Il来预测所对应的视差 d d d的函数,这样就将一个没有约束的问题变成了符合如上规律的问题,就可以采用常规思路进行求解了。同时视差 d d d在已知相机参数 b , f b,f b,f的情况下,就能求取相对应的深度 z z z

​ 总结以上规律我们得到:因为单目求深度需要昂贵的激光雷达,但是两个同一水平线上的两个相机所拍摄的图片却相对容易得到。只要我们通过单张输入图片求取相对应的disparity d d d,同时在得知相机参数 ( b , f ) (b,f) (b,f)的情况下也就能求得所对应的深度 z z z

​ 通过以上,可以将单目深度估计问题写成一个简单的函数:
z = f b d ; d = F ( I r ) ; ⇒ z = f b 1 F ( I r ) z=\frac{fb}{d}; d=F(I_r); \Rightarrow z=fb\frac{1}{F(I_r)} z=dfb;d=F(Ir);z=fbF(Ir)1
​ 即可以写成:
z = F ( I ) z=F(I) z=F(I)
​ 其中 z z z为所预测的深度, d d d为固定相机下的视差, b b b为相机两个镜头之间的距离, f f f为焦距。

​ 我们知道, z = F ( I ) z=F(I) z=F(I)这种关系可以轻而易举的使用CNN模拟出来,但是有1个问题,我们预测到的 d d d是连续的浮点数,如果使用 x l − d x_l-d xld的套路,那么很有可能会落入到不在(整数)像素点的位置,同时由于不同位置 d d d不同,也有可能有一个 I r I_r Ir中的像素点 x r x_r xr接受多个来自 I l I_l Il的像素点颜色,因为它们都满足 x r = x l 1 − d 1 = x l 2 − d 2 = x l 3 − d 3 . . . x_r=x_{l_1}-d_1=x_{l_2}-d_2=x_{l_3}-d_3... xr=xl1d1=xl2d2=xl3d3...。**而也有一些点并没有相符合的 d d d,因为这些点由于视差的原因在原图中可能根本不可见。**为了解决这个问题,一般采用backward(reverse) mapping的方法,如下图所示:
在这里插入图片描述

​ 这两种方法的区别在于,在forward mapping中,我们得到 I ′ I' I中的点可能会落在不是整数像素点的位置,这时只能通过最近原则将原图 I I I中的像素点对应到 I ′ I' I中去;而在Inverse mapping中,我们从 I ′ I' I出发(也就是 x r + d x_r+d xr+d),去寻找相对应的原图中的点,这样能够确保 I ′ I' I中的每一个点都有赋值而不会出现空洞,并且如果 x r + d x_r+d xr+d得到的原图中的点不属于(整数)像素点,这时可以通过插值的方法求得所对应非像素点的位置,一般在这里采用双线性插值的方法,而且它在sub-pixel level是可导的【Spatial Transformer Networks】,这样就可以端到端的训练网络了。

​ 在训练的时候我们的网络分为了以下步骤:
d = F ( I r ) d=F(I_r) d=F(Ir)

I l ′ = M a p p i n g ( I r , d ) I'_l=Mapping(I_r,d) Il=Mapping(Ir,d)

​ 而所对应的损失函数为:
a r g m i n θ L o s s ( I l ′ , I l ) ​ argmin_\theta Loss(I'_l,I_l)​ argminθLoss(Il,Il)
​ 至此,正向传播过程通过 F F F来得到所对应的视差 d d dmapping过程将左图转换成右图,损失函数计算当前的准确度并且进入优化过程,反向传播过程如下式所述:
δ L o s s δ θ = δ L o s s δ m a p p i n g × δ m a p p i n g δ F × δ F δ θ \frac{\delta Loss}{\delta \theta}=\frac{\delta Loss}{\delta mapping}\times \frac{\delta mapping}{\delta F} \times \frac{\delta F}{\delta \theta} δθδLoss=δmappingδLoss×δFδmapping×δθδF
​ 上式中, θ \theta θ F F F中需要优化的神经网络的参数, δ L o s s δ m a p p i n g \frac{\delta Loss}{\delta mapping} δmappingδLoss由损失函数得到, δ m a p p i n g δ F \frac{\delta mapping }{\delta F} δFδmapping由mapping方法提供, δ F δ θ \frac{\delta F}{\delta \theta} δθδF由神经网络自己反向传播得到。测试过程只需要将 I I I传入神经网络 F F F就能得到所对应的视差,结合相机参数,就能求得深度。

2、基本网络:

在这里插入图片描述

3、创新点:

​ 1)提出一种新的卷积网络架构,称为PackNet,用于高分辨率自监督单目深度估计。作者提出了新的压缩和解压缩块,它们共同利用3D卷积来学习,最大程度地传播密集外观和几何信息的表示,同时仍然能够实时运行。2)提出了一种新损失,能够利用相机的速度来解决单目视觉中固有的尺度模糊。3)提出一个新的数据集:自动驾驶的密集深度(DDAD)数据集。它利用了来自配备摄像头和高精度远程 LiDAR 的经过良好校准的自动驾驶车队的各种日志。与现有基准相比,DDAD可以在距离范围内进行更精确的深度评估,这对于高分辨率单目深度估计方法至关重要。

4、该论文整体的网络结构:

在这里插入图片描述

图2:PackNet-SfM: 作者提出的尺度感知自监督单目运动结构架构。将PackNet作为一种新的深度网络引入,并可选择在训练时包括弱速度监督以生成尺度感知深度和位姿模型。

5、PackNet:

​ 标准卷积结构使用大步幅和池化来增加它们感受野的大小。然而,这可能会降低需要细粒度表示的任务的模型性能[20、50]。同样,传统的上采样策略[12、7]无法在解码器层传播和保留足够的细节以恢复准确的深度预测。相比之下,作者提出了一种名为PackNet的新型编码器-解码器架构,它引入了新的3D压缩和解压缩块,以学习共同保存和恢复重要的空间信息以进行深度估计。作者首先描述了提出的体系架构的不同块,然后继续展示它们如何集成在单个模型中以进行单目深度估计。

5.1、压缩块:

​ 压缩块(图3a)首先通过Space2Depth操作将卷积特征映射的空间维度折叠到额外的特征通道中[40]。生成的张量分辨率降低,但与跨步或池化相比,这种转换是可逆的,不会有任何损失。接下来,学习压缩这个连接的特征空间,以将其维数降低到所需数量的输出通道。正如消融实验所展示,二维卷积并不是为了直接利用特征空间的平铺结构而设计的。
在这里插入图片描述

​ 图3:提出的3D压缩和解压缩块。压缩代替了跨步和池化,而解压缩是其对称特征的上采样机制

​ 相反,作者建议首先学习通过3D卷积层扩展这种结构化表示。然后,在最终的2D卷积收缩层之前,将生成的高维特征空间铺平(通过简单的reshaping)。这种受可逆网络[22、4]启发的结构化特征扩展收缩,虽然作者不确保可逆性,但允许架构投入更多参数来学习如何压缩高分辨率深度解码需要保留的关键空间细节。
在这里插入图片描述

5.2、解压缩块:

​ 对称地,解压缩块(图3b)在解码过程中学习解压缩和展开压缩的卷积特征通道,使其回到更高分辨率的空间维度。解压缩块取代了卷积特征上采样,通常通过最近邻或可学习的转置卷积权重执行。它受到亚像素卷积[40]的启发,但适用于反转在编码器中特征的3D压缩过程。首先,作者使用2D卷积层为后续的3D卷积层生成所需数量的特征通道。其次,这个3D卷积学习扩展压缩的空间特征。第三,这些解压缩的特征通过reshape和Depth2Space操作[40]转换回空间细节,以获得具有所需输出通道数和更高分辨率目标的张量。
在这里插入图片描述

5.3、使用PackNet重建图像的结果:

​ 在图4中,作者说明了压缩/解压缩组合的细节保留特性,表明可以通过最小化 L 1 L_1 L1损失来获得用于单张图像重建的近乎无损的编码-解码器。作者训练了一个简单的网络,该网络由一个压缩层和一个对称的解压缩层组成,并表明它能够几乎准确地重建输入图像(最终损失为0.0079),包括清晰的边缘和更精细的细节。相比之下,用最大池化/双线性上采样(并保持2D卷积)代替压缩/解压缩的可比基线只能学习模糊重建(最终损失为0.063)。这突出了PackNet如何能够通过在整个网络中端到端地保留空间和外观信息来学习更复杂的特征。
在这里插入图片描述

图4:图像重建 用不同的编码-解码器:(b)标准的最大池化和双线性上采样,每个后面都跟上2D卷积;© D = 2 D=2 D=2的一种压缩解压缩组合(见图3)。对于中间通道,所有内核大小均为 K = 3 K=3 K=3 C = 4 C=4 C=4

5.4、PackNet模型结构:

​ 表1详细介绍了作者用于自监督单目深度估计的PackNet结构。作者提出的对称编码器-解码器结构包含多个压缩和解压缩块,并辅以跳跃连接[36]以促进信息和梯度在整个过程中的流动网络。解码器生成中间逆深度图,这些深度图在与相应的跳跃连接和解压缩的特征图连接之前被上采样。在使用最近邻插值法上采样到完整输出分辨率后,这些中间逆深度图也在训练时用于损失计算。
在这里插入图片描述

表1:用于自监督单目深度估计的PackNet结构总结。Packing和Unpacking块如图3所示,内核大小 K = 3 K=3 K=3 D = 8 D=8 D=8。Conv2d块包括G=16的Group-Norm[46]和ELU非线性激活函数[8]。InvDepth块包含一个 K = 3 K=3 K=3和sigmoid非线性的2D卷积层。每个ResidualBlock都是3个2D卷积层的序列, K = 3 / 3 / 1 K=3/3/1 K=3/3/1和ELU非线性激活函数,最后一层是 G = 16 G=16 G=16的GroupNorm和0.5比例的Dropout[41]。Upsample是最近邻插值操作。括号中的数字表示输入层,+作为通道连接。
在这里插入图片描述

6、损失函数:

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->s}, v) Lscale(It,I^t,v)=L(It,I^t)+λ2Lv(t^t>s,v)
在这里插入图片描述
L p ( I t , I S ) = m i n 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)=minISLp(It,I^t)

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,I^t)=α21SSIM(It,I^t)+(1α)∣∣ItI^t∣∣

M p = m i n I S L p ( I t , I s ) > m i n 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=minISLp(It,Is)>minISLp(It,I^t)

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_xI_t|}+|\delta_y\hat{D}_t|e^{-|\delta_yI_t|} Ls(D^t)=δxD^teδxIt+δyD^teδyIt

​ 其中, I t I_t It是目标图像、 I ^ t \hat{I}_t I^t是合成目标图像、 L p L_p Lp是外观匹配损失、 I S I_S IS I s I_s Is的集合,即上下文视图, I s I_s Is是源图像、原始的 L p L_p Lp中会有视差影响,为了消除视差影响,计算 I S I_S IS中每一张图片的 L p L_p Lp然后取最小的作为新的 L p L_p Lp M p M_p Mp是自动掩膜,去除掉帧之间外观不变的像素,其中包括静态场景和没有相对运动的动态物体,当假设没有自运动时,它们的光度损失较小、 M t M_t Mt是一个二元掩膜,不计算在给定估计的目标深度的情况下没有投影到目标图像上的源图像的像素 、 λ \lambda λ1是深度正则化项、 L s L_s Ls是深度平滑损失、 D ^ t \hat{D}_t D^t是深度估计,在纹理不明显/低分辨率的区域,引入估计深度 D ^ t \hat{D}_t D^t的正则平滑项,按照采样率权重衰减。
L v ( t ^ t − > s , v ) = ∣ ∣ ∣ t ^ t − > s ∣ ∣ − ∣ v ∣ Δ T t − > s ∣ L_v(\hat{t}_{t->s},v)=|||\hat{t}_{t->s}||-|v|\Delta T_{t->s}| Lv(t^t>s,v)=∣∣∣t^t>s∣∣v∣ΔTt>s
​ 在训练过程中,计算位姿网络预测的位姿平移分量的大小 t ^ \hat{t} t^以及测得的瞬时速度标量 v v v乘以目标帧和源帧之间的时间差 Δ T t − > s \Delta T_{t->s} ΔTt>s ,并在此之间施加了一个额外的损失 L v L_v Lv

7、提出的新数据集:

DDAD(Dense Depth for Automated Driving)。作者发布了由全球自动驾驶汽车车队策划的城市、高速公路和住宅场景的多样化数据集。它包含17050个训练帧和4150个评估帧,以及使用Luminar-H2传感器从密集LiDAR测量生成的真值深度图。这个新数据集是深度估计的更现实和更具挑战性的基准,因为它是多样化的,并且可以在更长的范围内(深度达200米,而以前的数据集为80米)捕获跨图像的精确结构。(每帧30k点)。

8、实现细节:

​ 作者使用Pytorch在8个Titan V100 GPU上训练所有的模型。使用Adam优化器,其中 β 1 = 0.9 \beta_1=0.9 β1=0.9 β 2 = 0.999 \beta_2=0.999 β2=0.999。单目深度和位姿网络训练了100个周期,批量大小为4,初始深度和位姿学习率分别为 2 ⋅ 1 0 − 4 2\cdot10^{-4} 2104 5 ⋅ 1 0 − 4 5\cdot10^{-4} 5104。训练序列是使用步长1生成的,这意味着使用 t − 1 t-1 t1帧、当前帧 t t t t + 1 t+1 t+1帧来计算损失。随着训练的进行,学习率每40个周期衰减2倍。作者将SSIM权重设置为 α = 0.85 \alpha=0.85 α=0.85,深度正则化权重设置为 λ 1 = 0.001 \lambda_1=0.001 λ1=0.001,并且在可用的情况下,速度缩放权重设置为 λ 2 = 0.05 \lambda_2=0.05 λ2=0.05

深度网络。除非另有说明,否则作者使用表1中指定的PackNet结构。在训练期间,所有4个逆深度输出尺度都用于损失计算。测试时,使用最近邻插值调整全真值深度图分辨率之后,仅使用最终输出尺度。

位姿网络。作者使用[52]提出的没有可解释性掩码的结构,发现并不能改善结果。位姿网络由7个卷积层和最后一个1x1卷积层组成。网络的输入由目标视图 I t I_t It和上下文视图 I S I_S IS组成,输出是 I t I_t It I s I_s Is之间的6个自由度变换的集合,其中 s ∈ S s\in S sS

9、实验结果:

​ 首先由于引入了新的DDAD数据集,作者提出的单目深度估计方法考虑了更长距离时的性能。使用该数据集训练和测试的深度估计结果,考虑到累积距离可达200米,可以在图5和表2中找到。
在这里插入图片描述

​ 图5:在DDAD数据集上的PackNet点云重建

在这里插入图片描述

表2:在DDAD数据集上的深度测试,640x384分辨率和最远200米的距离。虽然ResNet系列验证依赖大规模监督ImageNet预训练(用‡ 表示),虽然PackNet从头训练,但取得了明显更好的结果。

​ 此外,在图6中,作者展示了独立计算的不同深度间隔的结果。从这些结果中可以看出,PackNet-SfM方法显著优于基于ResNet系列的现有技术[19],当考虑更大的距离时,性能差距持续增加。

在这里插入图片描述

​ 图6:以不同间隔对 DDAD 进行分箱的深度评估,仅通过考虑该范围(0-20m、20-40m,…)中的真值深度像素独立计算。

​ 其次,作者使用Eigen等人[14]中描述的指标评估KITTI的深度预测。对于来自[14]的原始深度图和来自[42]的累积深度图,在表3中总结了结果,并在图7中定性地说明了它们的性能。与以前的方法[6、19]相比,主要是专注于修改训练目标,表明作者提出的PackNet结构本身可以提高性能,并为单目深度估计任务建立一个新的技术水平,在自监督的单目环境中训练。
在这里插入图片描述

表3:PackNet-SfM在KITTI数据集上针对最远80m距离的定量性能比较。对于Abs Rel、Sq Rel、RMSE和RMSElog越低越好,对于 δ < 1.25 \delta<1.25 δ<1.25 δ < 1.252 \delta<1.252 δ<1.252 δ < 1.253 \delta<1.253 δ<1.253越高越好。在Dataset一栏中,CS+K指的是在CityScapes(CS)上进行预训练,在KITTI(K)上微调。M是指使用单目图像进行训练的方法,M+v是指添加速度弱监督,见3.2节。‡指在ImageNet上预训练。Original用来自[14]的原始深度图进行评估,而Improved使用来自[42]的带注释的深度图。在测试阶段,所有单目方法都使用中间的真值LiDAR信息来估计深度。Velocity-scaled(M+v)和supervised(D)方法没有以这种方式缩放,因为它们是已经计量准确的。
在这里插入图片描述

图7:来自KITTI数据集(Eigen 测试拆分)的帧上,将PackNet与以前的方法进行定性单目深度估计性能比较。由于空间信息的学习保存,作者提出的方法能够捕获更清晰的细节和结构(例如,车辆、行人和细杆上)。

​ 此外,作者表明,通过简单地引入额外的未标记视频源,例如公开可用的CitySpaces数据集(CS+K)[9],能够进一步提高单目深度估计性能。正如Pillai等人[39]指出的,作者还需要观察在更高图像分辨率下性能的提高,作者将其归因于所提出的网络能够端到端地正确保存和处理空间信息。这篇论文的最佳结果是在训练时注入更多未标记数据并处理更高分辨率的输入图像时实现的,其性能可与半监督[29]和完全监督[15]方法相媲美。

​ 在表6中,作者展示了PackNet SfM框架在KITTI基准上的结果。为了与相关方法进行比较,作者在KITTI基准的序列00-08上进行训练,采用与正文中的表3具有完全相同的参数和网络。为了与相关方法保持一致,我们计算了序列 09 和 10 上所有重叠的 5 帧片段的平均绝对轨迹误差 (ATE)。请注意,我们的位姿网络仅将两个帧作为输入,并输出该对帧之间的单个变换。为了在 5 帧片段上评估我们的模型,我们结合了目标帧和第一个上下文之间的相对转换帧分成 5 帧长重叠轨迹,即我们堆叠 f x ( I t , I t − 1 = x t − > t − 1 ) f_x(I_t, I_{t-1}=x_{t->t-1}) fx(It,It1=xt>t1)以创建适当大小的轨迹。

在这里插入图片描述

表6:KITTI 里程计基准 [17] 上以米为单位的平均绝对轨迹误差 (ATE) :所有⽅法都在序列 00-08 上进⾏训练,并在序列 09-10 上进⾏评估。 ATE 数是测试序列中所有重叠的 5 帧⽚段的平均值。除了单⽬图像(M)之外,M+v 指的是速度监督(v)。GT 复选标记表示使用真值转换来缩放测试时的估计值。

​ ATE 结果总结在表 6 中,作者提出的框架相对于其他相关方法取得了有竞争力的结果。作者还注意到,所有这些相关方法都是在单目设置 (M) 中训练的,因此在测试时使用真值信息进行缩放。另一方面,作者提出的方法进行训练时速度监督损失 (M+v) 在测试时不需要真值缩放,因为它能够完全从单目图像中恢复度量准确的比例。尽管如此,它和其他方法相比仍然能够取得比较有竞争力的成绩。 在图 9 中可以找到使用 PackNet-SfM 为测试序列获得的重建轨迹示例。
在这里插入图片描述

​ 图9:KITTI 测试序列的位姿评估。 PackNet-SfM 在 KITTI ⾥程计基准测试序列 09 和 10 上的定性轨迹结果。

10、网络复杂度:

​ 由于参数数量的增加,引入压缩和解压缩作为标准下采样和上采样操作的替代方案增加了网络的复杂度。为了确保实验中显示的性能提升不仅仅是由于模型容量的增加,作者将PackNet结构的不同变体(通过修改层数和特征通道获得)与ResNet结构进行了比较。这些结果如图8所示,表明虽然ResNet系列随着参数数量的增加稳定且收益递减,但PackNet系列在大约70M参数时与其性能相匹配,并随着复杂度的增加而进一步提高。最后,所提出的结构(表1)在Titan V100 GPU上达到约128M参数和60ms的推理时间,使用TensorRT可以进一步提高到<30ms,使其适合实时应用。

在这里插入图片描述

图8:在分辨率为 640 x192 (MR) 和 1280 x 384 (HR) 的原始 KITTI Eigen 拆分 [14] 上,不同深度网络架构在不同数量参数下的性能。虽然ResNet系列在70M参数时稳定,但PackNet系列在MR的相同参数数量下与其性能相匹配,在HR上明显优于它,并且随着参数的增加而不会过拟合。

​ PackNet系列在更高的分辨率下也一贯表现更好,因为它在层之间适当地保存和传播空间信息。相比之下,正如之前的论文[19]所说明的那样,ResNet结构的扩展性不佳,在更高分辨率下只有微小的改进。

11、消融实验:

​ 为了进一步研究PackNet提供的性能改进,作者对引入的不同结构组件进行了消融实验,如表4所示。作者表明,在没有提出压缩和解压缩块的情况下,基本结构已经为单目深度估计任务产生了强大的基线。压缩和解压缩的引入提高了深度估计性能,尤其是在添加更多3D卷积滤波器时,表1中描述的结构实现了最先进的结果。
在这里插入图片描述

表4:PackNet结构的消融研究,在标准的640x192的分辨率的KITTI基准上。ResNetXX表示特定结构[21]作为编码器,用‡ 表示使用了ImageNet进行预训练。作者还展示了所提出的PackNet结构的结果,首先去掉了压缩和解压缩(分别替换为卷积跨步和双线性上采样),然后增加3D卷积滤波器的数量(D=0表示没有3D卷积)。

​ 正如[19、15]中提到的,ResNet结构从ImageNet预训练中受益匪浅,因为它们最初是为分类任务开发的。有趣的是,作者还注意到,由于导致过拟合的灾难性遗忘,预训练ResNet结构的性能在较长的训练周期内会下降。另一方面,所提出的 PackNet 架构从随机初始化的权重中获得了最先进的结果,并且可以通过对其他数据集的自监督预训练进一步改进,因此由于其结构,可以适当地利用未标记信息的大规模可用性。

12、泛化能力:

​ 作者还研究了PackNet的泛化能力,作为它不只是记住训练数据而是学习可迁移的判别特征的证据。为了评估这一点,作者在最近出的NuScenes数据集上测试模型,这些模型在CitySpaces和KITTI(CS+K)的组合上训练,没有任何微调。结果如表5所示:

在这里插入图片描述

​ 表5:不同深度网络的泛化能力,在KITTI和CitySpaces上训练并在NuScenes上测试,分辨率为640x192,距离可达80m。‡表示在 ImageNet上预训练。

​ PackNet确实在有大量车辆的国家/地区(德国的CS+K,美国+新加坡的NuScenes)上具有更好的泛化能力,在所有考虑的指标上都优于标准架构,而无需在ImageNet上进行大规模的监督预训练。

代码:

GitHub - TRI-ML/packnet-sfm: TRI-ML Monocular Depth Estimation Repository

参考链接:

https://blog.csdn.net/rocking_struggling/article/details/105470845 (PixelShuffle)

https://blog.csdn.net/qq_34745941/article/details/127748132(⊙)

https://zhuanlan.zhihu.com/p/29968267

猜你喜欢

转载自blog.csdn.net/sinat_41886501/article/details/130391209