DFuseNet论文阅读笔记

原文连接:https://arxiv.org/abs/1902.00761

DFuseNet:利用RGB和稀疏深度信息的深度融合,完成图像引导的稠密深度补全
Shreyas S. Shivakumar, Ty Nguyen, Ian D. Miller, Steven W. Chen, Vijay Kumar and Camillo J. Taylor


摘要:我们在文章中提出了一个卷积神经网络,该网络利用高分辨率强度图提取的上下文信息对稀疏分布的深度测量值进行上采样。从超分辨率和图像复原技术中得到灵感,提出一个新的架构:分别从强度图和深度特征中提取上下文信息,然后在网络中进行融合。我们认为这种架构可以有效的利用两种图像模式间的关系,并且在保护图像显著性结构的同时可以得到准确的结果。文中的实验证明了这种架构与当今最先进的方法效果相当,并且可以在不同数据集上进行很好的泛化推广。

I.引言
稠密深度补全是自动驾驶、机器导航和增强现实等领域的关键技术。该领域的主流传感器方案是同时架设一个高分辨率的摄像机和一个低分辨率的深度传感器,如激光雷达传感器或超声波传感器。通常,与摄像机捕获图像的分辨率相比,从深度传感器获取的点密度明显要低一个数量级。并且,高分辨率传感器十分昂贵,很难在一般应用中普及。然而,一些应用可以受益于更高分辨率范围的数据,如规划和避障等。这促使我们思考利用高分辨率图像来上采样稀疏深度测量值的方法。
传统上,稀疏的点通过插值和扩散的方法上采样成为平滑的稠密深度图,过程中通常使用对应的颜色图作为引导。近年来,卷积神经网络通过利用单目图像数据、立体图像数据和稀疏深度数据,在深度估计领域取得了巨大的发展。
一种可以同时处理单目深度预测和深度补全问题的方法是将该问题视作后验概率P(D|I),其中D是给定的深度图,I是输入的强度图。这种方法隐式的假设所得到的后验概率在低维度区域高度集中,这使得从仅含少量样本的深度图中推断出完整的深度图具有了可能性。
我们希望设计一个CNN架构,该架构可以从彩色图像中学到充足的全局和上下文信息,并且使用学到的信息和稀疏的深度输入准确的预测整个图像的深度,同时可以保护图像的边缘并保持平滑约束。设计好的网络可以对激光雷达系统、超声波系统等不同深度传感器获取的深度信息进行上采样。文中我们的贡献总结如下:
1)    使用一种双分支的CNN架构,空间金字塔池化层和一系列的多尺度反卷积被用于从输入的彩色图像和深度测量数据中提取有效的上下文信息。
2)    提出一种可以使用不同信息来源的训练机制,如立体图像,学习如何在没有有效深度测量结果时估计深度信息。
3)    在KITTI深度补全数据集、虚拟KITTI数据集、NYUDepth数据集和自己的数据集中进行评估。实验表明,我们的方法可以在这四个不同的数据集上很好的泛化推广。
4)    我们公开了自己的数据集,该数据集可以作为公开数据集之外的验证数据。

Ⅱ.相关工作
A.深度估计
单目深度估计是一个活跃的研究课题,目前最先进的技术是基于CNN的方法。文献[16,17,18,19,4,3]已经提出了多种基于监督策略、无监督策略和自监督策略的深度估计方法。截至目前,最先进的算法是由Fu等人在文献[7]中提出的,该方法在KITTI深度预测数据集中的RMSE分数高达到12.98。
CNN架构同样被成功应用于稠密深度估计任务中。Zbontar等人提出使用孪生神经网络架构学习两个输入的相似性度量,然后使用这个相似性度量作为传统立体匹配过程中的匹配成本。最近,研究人员在诸如[11,8,20,21]等文献中提出了许多端到端的方法,这些方法可以在保持图像边缘的同时生成准确的视差图像。Chang等人在文献[9]中的工作与我们所提出的网络较为相似,作者提出一种利用金字塔池化模块的端到端的网络,从而更好的学习图像的全局特征。
B.不完整的输入数据
从稀疏输入中学习稠密表达与超分辨率和图像复原的原理十分相似。超分辨率假设其输入是理想高分辨率图像的均匀下采样,其学习问题可以被视为是一种保边插值策略。Yang等人在文献[22]中对该问题做了详细的叙述。可以注意到,多跳接的多尺度架构在图像和深度上采样任务中十分有效。与从不完整的输入数据中学习完整的表达相同,带有内容感知的补全也有一样的目的。图像修复需要对输入图像的缺失部分进行语义级别的补全。如文献[25,26]中的技术,生成网络已被成功的应用于上下文感知的图像修复任务,由于超出本文的范围,这里不做赘述。
C.深度补全
深度补全是深度估计中的一个特殊子课题,其输入是不完整的稀疏深度信息。随着KITTI深度补全基准的发布,研究人员提出了很多新方法用于解决该问题。Uhrig等人提出一个具有稀疏不变性的CNN架构,该方法对输入的稀疏深度图像进行局部归一化卷积,该架构只接收RGB图像和稀疏深度作为多级架构的输入信息。Huang等人提出了HMS网络,该方法使用掩膜图像完成局部卷积、局部求和、上采样和连接操作等。
Ku等人在文献[14]中提出不使用学习的方法来解决深度补全问题,他们强调经典手工方法的高效性,该方法仅用传统的形态学操作生成稠密的深度信息。他们所提出的这种方法比KITTI深度补全中几个基于深度学习的方法效果还要好。Dimitrievski等人在文献[28]中提出使用Ku等人的方法对稀疏的深度输入进行预处理。我们在这里也选择相同的策略,对稀疏的深度输入进行填充,而不做稀疏卷积。文献[29]中使用传统形态学滤波器处理稀疏深度图,其中形态学滤波器是通过U-Net风格结构学习得到的,这种方法可以得到很好的量化结果,但是由于该方法很大程度上都依赖填充的深度图,所以不能保持图像的语义信息并且会出现深度中断。Eldesokey等人在文献[15]中提出一种使用归一化掩膜的卷积方法,该方法使用连续的置信度掩膜代替二值化掩膜来预测深度信息。Gansbeke等人在文献[30]中同样提出了一种相似的基于置信度掩膜的图像补全方法。Cheng等人在[31]中提出一个深度传播网络来精确的学习相似性方程并且将该方程应用于深度补全问题。
Wang等人在文献[32]中提出使用多尺度特征融合的方法来处理稀疏的激光雷达数据,从而实现深度补全。Ma等人提出了两种策略:文献[13]介于残差网络使用监督策略实现深度补全,文献[33]则是一种半监督方法,它使用稀疏雷达作为输入的同时,使用姿态估计作为基于深度和光损失训练的附加信息。

Ⅲ.本文方法
A.设计概述
我们提出如图1所示的CNN架构。该架构同时从彩色图像和稀疏深度数据中学习局部和全局上下文信息,并且通过融合处理学习到的信息来得到最终准确、连续的稠密深度图。我们提出一种与文献[10]中图像比较网络相似的双分支编码器设计。考虑到两个分支的输入模式并不相同,我们并未选择具有相关权重的孪生神经网络,而是采用独立的分支,每个分支有不同的设计决策。在我们的编码器结构中,我们使用空间金字塔池化模块(SPP)实现特征由粗粒度到细粒度的表达。空间金字塔池化模块可以有效的学习图像的局部和全局上下文信息,目前已经被成熟的应用于深度感知任务中。我们将从两个分支中学到的特征连接起来,并将连接后的信息送入后续的反卷积层进行处理。网络的最后一层对不同反卷积层输出的联合特征进行卷积操作,这些特征被统一上采样到最终输出分辨率。网络利用不同尺度和上下文的信息生成最终的深度图。
 
图1. 本文提出的网络结构,对RGB图和深度数据分别使用不同的分支进行处理。
网络的编码器使用SPP模块,稠密深度图由层次化表达的解码器特征预测得到。
B.特征提取
我们的彩色和深度分支由深度填充步骤开始,该过程与文献[14]中Ku等人提出的方法相似。我们使用一个简单的形态学操作序列和高斯模糊操作来填充稀疏深度图像的孔洞,孔洞处的深度值由附近有效点的深度值进行填充直至最终没有孔洞存在。填充后的图随即进入特征提取分支。填充后的深度图由最大值进行归一化处理,得到介于[0,1]中的深度值。对于深度图像分支,我们选择使用更大的卷积核和更少的卷积操作,从而减少层数。对于彩色图像分支,除了两个初始卷积层外,我们使用较小的卷积核和四个残差模块。这些初始特征提取层的输出特征将进入空间金字塔池化模块。我们使用与文献[9]中相似的SPP结构,不同的是我们对深度分支使用最大池化操作,而对颜色分支进行平均池化操作。两个分支的池化窗口是一致的,尺度分别为64、32、16和8。特征提取模块的输出是不同尺度特征信息的上采样堆叠。
 
图2. 双分支结构(从左到右,从上到下):输入彩色图像,填充后的输入深度图,当RGB分支的输入为0时网络的输出深度图,当稀疏深度分支的输入为0时网络的输出深度图,RGB分支和稀疏深度分支都输入有效信息时网络的输出深度图。
这表明了两个分支都对最终的预测有着很大的贡献,填充的深度图并不是仅仅通过网络单纯的传出。
C.合并模式
从特征提取模块提取的多个特征被合并成为一股。其中,第一层是颜色分支中残差模块的直接输出,我们假设该层可以表征从彩色图像学到的高级特征。剩下的特征层则是来自两个分支SPP模块提取的颜色和深度特征,我们认为这些特征可以帮助后续过程学习到两个输入模型的联合的特征表达。我们对合并后的特征进行三个顺序的卷积操作,降低特征的维度并扩大空间分辨率到原特征的两倍。通过强制性的降维,我们试图迫使网络学习到联合特征空间的低维度表达,结合来自于深度和彩色分支的重要信息。
D.深度预测
后续网络主要由带BN操作的卷积层和一些附加的反卷积层来恢复原始的分辨率。最后的阶段包括将不同反卷积层的输出进行整合,通过插值进行上采样从而达到原始图像的分辨率,然后在堆叠的多尺度特征上做最后的卷积操作得到单通道的输出。这个输出将通过sigmoid激活函数并重新缩放到原始深度范围。Odena等人在文献[36]中建议谨慎使用转置卷积来进行空间上采样,因此我们限制了转置卷积的使用,我们的最终输出是特征与1*1的卷积核的运算结果,其中,特征主要由低分辨率的特征经上采样得到,这样可以在最终的深度图像中降低棋盘效应。
E.训练
我们的损失函数Ltrain是多个损失项的加权平均值,其中一些损失项在图像整个分辨率上进行计算,另一些则只对存在基准深度值的点进行计算。权重α、β和γ基于每个信号的相关置信度进行选择,在训练阶段中,不同位置的权重值是随时间变化的。  

     
1)主要损失
我们同时使用L1正则化和L2正则化的方式计算主要损失函数Lprimary。对于这个损失项,我们仅在有基准深度值的像素位置进行计算,并且最终用所有基准点的个数进行平均处理。通过实验,我们发现基于L2正则化的Lprimary可以在评价基准中得到更好的RMSE值。
2)可选择的立体监督
由于Uhrig等人提供了一个由多个摄像机拍摄的大型数据集,我们基于此提出一种在训练时可有效利用该数据集的方法。KITTI深度补全数据集提供了大约42000组立体图像对,我们利用这些图像来提供基准雷达数据缺失位置处的深度信息。我们提出一个辅助损失项Lstereo,它通过输入立体图像对生成稠密深度估计,它可以指导没有基准雷达测量数据区域的学习过程。由于立体图的内参和外参已知,我们以半监督的方式计算这个损失项。稠密深度估计通过半全局匹配的策略生成。立体监督损失项是预测深度与立体估计深度之差的L2正则化结果,该损失项最多可以在输入图像的每一个像素上进行计算。由于我们使用左右一致性检查来丢弃噪声和局部冲突的深度估计值,所以可能有一些像素缺少深度估计值。
 
图3. 学会更好的利用有效信息进行推断:通过增加基于立体深度的损失项,我们可以在没有雷达数据的区域进行更好的推断。(自顶向下):输入图像,没有立体深度损失项的预测结果,有深度损失项的预测结果。
3)平滑性
我们加入了一个评估平滑性的损失项Lsmooth,它是稠密深度预测图二阶导数的L1正则化,与无监督单目深度估计和运动网络中使用的策略类似。

Ⅳ.实验
部署细节:我们所有的网络都是在PyTorch上实现的,网络都是从头开始训练的,任何层都没有使用预先训练好的参数。模型使用ADAM优化器训练,实验中批大小为20-25,整个训练过程大约进行了40次迭代。最初的学习率为10-4,每经过5次迭代学习率下降10%。权重衰减项为10-4。公式(1)中的权重为:α=1,β=0.01,γ=0.001。
A.KITTI深度补全
    KITTI深度补全数据集中的基准深度是通过数据集[12]中提供的位姿估计将给定帧前后帧的11个激光雷达扫描合并来创建的。利用立体深度估计算法来对这些三维点进行细化,从而丢弃离群点。在评估时,最终的分数仅基于这些细化后的基准雷达数据点。
    虽然这个数据集提供了大量的训练数据,但是有效的测量范围通常聚集在图像的底部,并且经常丢失图像重要区域的上下文信息,如目标边界处。由于可用的测量和评估工具并不会限制这样的方法,在这些数据上训练出的模型往往会产生模糊的边缘。
    此外,该数据集未提供如天空等遥远区域的深度信息,许多以前的方法将没有激光雷达数据的区域剪切掉。与之矛盾的是,我们试图保留尽可能多的上下文信息,并且使用所有可能的数据对尽可能多的图像进行深度预测。
 
图4. KITTI深度补全结果(从上到下):输入彩色图像,对应的雷达扫描掩膜(转化为可视化),Van Cansbeke等人方法处理结果,MorphNet处理结果,SparseConv处理结果,本文处理结果。
    1)定量比较
    我们的方法达到了平均1206.66mm的RMSE得分,目前公开的最佳方法得分为77.87mm。定量比较中,我们方法比Sparse-to-Dense、NConv-CNN、HMS-Net、CSPN和MorphNet的评估结果更好,但是我们认为我们的模型可以更好的结合RGB图像信息生成保边和语义平滑的深度图,其代价仅是小幅度的精度损失。从图4中可以明显的看出,与一些优秀方法一样,我们的方法通过使用上下文信息可以实现甚至可以更好的保持语义边界。
    2)学习用有限的基准数据进行推断
    我们通过比较有无立体损失项的模型来评估该损失项的有效性。从定量评估结果来看,带有立体损失项的模型训练的更快,并且有微小的精确度提升,优势并不明显。而从性能上来看,我们发现带有立体损失项的模型可以在没有雷达扫数据的区域进行有效的深度值推断。
B.虚拟KITTI
我们在虚拟KITTI数据集中评估我们的网络。该数据集有大约21000张在模拟光照和天气条件的虚拟世界中生成的图片和深度帧图。该数据集的最大深度范围达到655.2m(在天空处),但为了简化并贴近我们之前的数据集,我们将深度的感知极限设置为100m并由此训练我们的模型。我们使用60%的数据作为训练集,并用剩下的图像评估我们的模型。为了产生稀疏的深度输入,随机采样10%的基准深度数据。与前一个数据集相同,我们也进行填充预处理操作,参数和形态学窗口的大小与之前的操作完全相同。填充后的图像将与RGB输入图像一起传入我们的网络,并在0m-100m的范围内评估模型的准确性。
虽然虚拟KITTI数据集不是真实世界数据的准确表达,但我们通过实验证明,我们的算法可以在保持边缘和上下文信息的同时生成准确的稠密深度图。图5为我们在该数据集上的处理结果。我们的方法在验证集上达到了 3.458m的RMSE和1.355m的MAE。
 
图5. 虚拟KITTI结果(从左到右,从上到下):彩色图像,输入的预处理后填充的稀疏深度(从基准审图图像中10%随机采样),深度预测结果,基准图。
C.NYUDepthV2
在使用我们的方法对NYUDepthV2数据集进行处理评估时,我们一共使用了1449个RGB图像和稠密标注的深度图对,将其划分为70%训练集和30%验证集。我们将30%验证集中出现的所有错误都输出报道,同时将这些错误与其他作者提出方法所产生的错误进行比较。我们使用分辨率640*480的图像作为输入,并且使用与上一节相同的下采样方式从深度基准图中生成稀疏的深度测量输入。由于该数据集是由Kinect RGB传感器在如办公室和家庭等自然环境采集的数据,可以通过这个数据集来证明,我们的模型可以使用不同的输入源并在不同的环境中学习。
表1中的数据显示了与Ma等人的工作和Liao等人的工作相比,我们的模型在多个不同稀疏级别下对200个样本的处理性能。可以看出,我们的方法性能与Ma的方法相当,比Liao的方法好。我们使用与处理虚拟KITTI和KITTI数据集时相同的形态学窗口尺寸和操作,并且,即使在噪声输入填充时我们的方法也可以产生准确的结果。深度填充过程虽然帮助我们消除了深度图中的所有零值并且给它们了一个合理的初始化,但是最终的深度预测是基于网络RGB和深度分支的联合特征得到的。需要注意的是,这里报告的结果是使用不同的随机选择的样本集计算的,直接比较是不公平的。
表1.NYUDepthV2结果:比较了作者各自的错误报告。
注意:作者使用不同的训练和验证样本集,这里的错误不是在相同的数据上计算的。
 
D.深度采样的数量
在这个实验中,我们使用NYUDepthV2数据集,由于数据集已提供了稠密的基准深度信息,我们可以得到更一致的精度结果。我们针对不同大小的稀疏采样数量训练不同的模型,每个模型的训练迭代次数被限制为固定的数。为了降低训练时间,模型的参数被初始化为我们从KITTI深度补全数据集训练的结果。我们在验证集上评估各模型的RMSE值,结果如图7所示。正如Ma等人观察到的,在他们的网络中,随着更多的稀疏采样值的添加,性能逐渐趋于饱和。我们注意到,图中的RMSE大概在5000个深度样本时性能趋于饱和,此时深度样本大概占图像分辨率的1.7%。从图6我们可以看到,即使是输入极端稀疏的深度数据,网络的RGB分支也可以基于图像的上下文信息指导深度预测。
 
图6. 1000个深度采样(第一行)和500个深度采样(第二行)作为输入的NYUDepthV2结果。
我们使用与之前数据集相同的深度填充参数。(自左到右):输入图像,填充后的稀疏深度输入,深度预测结果,基准深度。
 
图7. 输入的深度采样个数占图像总分辨率的百分比VS NYUDepthV2数据集的RMSE值。
注意,X轴使用的是log处理后的数据。
E.Penn驾驶激光雷达RBG数据集
我们同样也在自己采集的校准的激光雷达以及RGB数据集上测试了模型。我们的传感器设备使用的是Ouster OS-1 64股激光雷达传感器和立体Zed Mini相机。为了校正激光雷达传感器和相机间的外参,我们利用Ouster的强度图像。我们检测强度图像中棋盘格的角点,并且将这些点投影到三维点云中从而在三维空间中找到他们的位置。然后,将这些三维空间的点反投影到一个位于激光雷达传感器前面虚拟的图像平面上,标准的立体校正工具被用于将虚拟激光雷达相机校正到RGB相机。我们最终将激光雷达扫描的点云投影到RGB图像上,从而验证校正的结果,如图8所示。
在校正后,我们将相机和激光雷达传感器安装到一辆车上,并且在费城市中心采集了15分钟行驶时间的数据。 我们人为地从点云中移除点,以模拟低分辨率传感器,并运行我们预先训练的模型。随机采样大致从40000个雷达点中采集了5000个。这些保留的点将被用于评估深度推理的精度。
 
图8.激光雷达数据和RBG图像校正。上图:从ZED Mini相机捕获的校正的RGB图像和校正后映射了雷达点的RGB图像;下图:Ouster OS-1激光雷达传感器不过的强度图像,我们从中检测棋盘格的角点。

Ⅴ.讨论和总结
在本章节中我们在KITTI和NYU深度数据集的背景下,讨论我们的发现和我们设计决策背后的动机。
 
图9. 模型跨多数据集的泛化能力:经过KITTI数据集训练后的我们的模型可以泛化的应用于虚拟KITTI数据集(左)和NYUDepthV2数据集(右),不进行重训练和微调。(从上到下):彩色图像,预测的深度图像和基准深度图。
A.结构
Jaritz等人在文献[43]中简要阐述了现在的融合机制相对于早期融合机制的优势。我们对他们的说法表示认同,并且重申以下观点:鉴于RGB图像和深度信息具有不同的表达模式,连接这些信息的正确方式是通过学习将他们转化到一个共同的特征空间。尽管之前的工作中也提出过单路结构,这种方法将RGB图像和稀疏深度信息聚合成为一个单独的四维数据,然后统一作为网络的输入。我们则建议对这两种不同的输入模式建立独立的不相关的卷积和金字塔池化操作,从而构成双分支的方法。为了进行验证,我们对双分支结构进行了修改,将特征在SPP模块前进行融合,可以注意到性能出现了下降,这意味着两个分支学习到的额外的独立信息对最终的融合和预测是有益的。图2显示了双分支架构的优势。
在稀疏性方面,我们在实验中利用稀疏卷积代替深度分支中的卷积操作,但是我们发现性能发生了显著下降。Huang等人提出:除了卷积操作外,附加的稀疏操作,如稀疏不变性上采样、加法和联合等可以获得更好的结果。然而,我们更倾向于相信,通过使用常规的卷积操作,并以简单孔洞填充预处理(如形态学滤波、填充映射和最近邻插值等)后的数据作为输入的多模态操作,可以实现理想的性能。这种方式可以为网络提供良好的初始化值,简单且高效。
然而,在实验过程中我们确实注意到,在使用带孔洞填充的预处理操作后,我们必须使用深度通道前倒数第二个层的输出进行特征连接。我们发现使用深度通道的第二层、第三层与倒数第二个残差块的连接导致了与IPBasic相似的精度,然而,网络并没有学会使用RGB分支的信息。也许这样的网络必须用慎重选择的超参数进行更细致的训练。实际上,在单路结构或早期的融合网络中,从输入层到最终层的残差连接是非常有效的。
 
图10. Penn驾驶雷达RGB数据集(自上到下):输入的RGB图像,预测的稠密深度图像,错误的图像,激光雷达点于RGB图的可视化叠加。预测的深度使用居于KITTI数据集训练的模型生成。深度和错误图像的Colormap图来自KITTI工具包。
B.泛化性
我们将经KITTI深度补全数据集训练后的模型应用于虚拟KITTI、我们自己的驾驶数据集和NYUDepthV2数据集的测试。图9展示了KITTI数据集训练的模型在虚拟KITTI和NYUDepthV2数据集上处理结果的一些例子。从图中可以看出,网络可有充分利用RGB数据来生成语义上有效的深度预测,然后从客观数据上来看,有一些错误的深度预测值。这是由于三个数据集深度范围不同(KITTI的最大深度达到85m,虚拟KITTI数据集的最大深度是655.3m,NYUDepth数据集的最大深度则接近10m),并且在使用KITTI模型作为初始值后只进行简单的训练进行校正。我们相信,独立的RGB图像分支和在该分支中学习到的独立稠密特征对该网络的泛化有很大的贡献。在KITTI数据集上训练的模型,在NYUDepthV2数据集上可以达到RMSE值0.607m和MAE值0.216m的性能,过程中使用测试集10%的基准深度图下采样作为输入的稀疏深度信息。在我们的驾驶数据集中,可以达到RMSE值6.690m和MAE值3.157m的性能。较高的误差主要出现在图10中所示的远距离区域。
C.结论
我们在文章中提出一种可以用于上采样稀疏深度分布数据的CNN架构,该架构使用高分辨率强度图像对深度补全过程进行引导。这种结构从图像中提取上下文信息,并用该信息指导深度上采样过程。网络架构分别对RGB图像和稀疏深度数据设计两个独立的分支。通过实验,我们证明了该方法在相关数据集上性能表现良好,同时,该方法可以从图像数据中捕获显著性线索,并且生成保边的、与基准深度密切相关的上采样深度结果。此外,我们还提出了我们自己的数据集进行额外的验证。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值