目录
Sparsity Invariant CNNs
Abstract
1、介绍
2、相关工作
3、方法
3.1 简单的方法
3.2 稀疏卷积
3.2.1 skip connections
4、大规模数据集
4.1 数据集的评测
5、实验
5.1. 深度上采样
5.1.1 Synthetic-to-Real Domain Adaptation
5.2. Comparison to Guided Upsampling
5.2.1 Sparsity Evaluation on KITTI
5.3. Semantic Labeling from Sparse Depth
6、总结
Author(s): | Jonas Uhrig and Nick Schneider and Lukas Schneider and Uwe Franke and Thomas Brox and Andreas Geiger |
Book Title: | International Conference on 3D Vision (3DV) 2017 |
Year: | 2017 |
本文考虑了基于稀疏输入的卷积神经网络,并将其应用于稀疏激光扫描数据的深度上采样。首先,传统的卷积网络在应用于稀疏数据时表现较差,即使在向网络提供缺失数据的位置时也是如此。为了克服这个问题,本文提出了一个简单而有效的稀疏卷积层,它明确地考虑了卷积运算中缺失数据的位置。而且在与各种基准方法相关的综合和实际实验中测试了所提出的网络体系结构的优点。与稠密基线相比,本文提出的稀疏卷积网络可以很好地推广到新的数据集中,并且能够保持数据的稀疏程度的不变。为了进行评估,该文从KITTI基准测试中获得一个新的数据集,包含93k经过深度标注的RGB图像。本文的数据集允许在具有挑战性的实际环境中进行深度上采样和深度预测方法的训练和评估,并将在出版后提供。
在过去的几年里,卷积神经网络(CNNs)几乎影响了计算机视觉的所有领域。在大多数情况下,CNN的输入是一个图像或视频,由密集的矩阵或张量表示。通过将非线性的卷积层和池化层相结合,CNNs能够学习分布式表示,在第一层提取底层特征,在随后的层中依次提取高层特征。然而,当网络的输入是稀疏且不规则的(例如,当只有10%的像素携带信息时),如何定义卷积运算就变得模糊了,因为每个过滤器位置,输入的数量和位置是不同的。
解决这个问题的方法是为所有非信息性站点分配一个默认值[3,39]。不幸的是,这种方法会导致次优结果,因为学习过滤器必须对所有可能的激活模式不变,其激活数量随着过滤器大小呈指数增长。在本文中,我们研究了一个简单而有效的解决方案,该解决方案优于上述的方法和其他几个基准。其中,我们引入了一种新颖的稀疏卷积层,它根据输入像素的有效性对卷积核的元素进行加权。此外,第二个流将像素的有效性信息传递到网络的后续层。这使我们的方法能够处理大量稀疏度而不会显着降低准确性。
重要的是,我们的表示对输入中的稀疏程度是不变的。正如我们的实验所证明的那样,在稀疏水平上训练我们的网络不同于测试时的稀疏度水平不会显着恶化结果。这具有重要的应用,例如,在机器人技术的背景下,其中算法必须对传感器配置的变化具有鲁棒性。
所提出的技术的一个重要应用领域是3D激光扫描数据的增强,参见图1以进行说明。虽然激光扫描仪提供有关深度和反射率的有价值信息,但由此产生的点云通常非常稀疏,特别是在考虑用于自动驾驶的Velodyne HDL-64e1等移动扫描仪时[13]。【扫描仪的数据没有那么准确】
因此非常需要能够增加这种扫描密度的学习模型。不幸的是,在不影响精度的情况下[44],直接在3D中处理高分辨率数据具有挑战性。
我们在本文中遵循的另一种方法是将激光扫描投影到虚拟或真实的2D图像平面上,从而产生2.5D表示。除了可以将深度预测建模作为2D回归问题之外,这种表示还有一个优势,那就是可以很容易地集成额外的密集信息(例如,来自彩色相机的RGB值)。然而,投影的激光扫描通常非常稀疏并且不能保证与常规像素网格对准,因此当使用标准CNN处理时,会导致差的结果。相比之下,即使输入稀疏且不规则地分布,所提出的方法也产生令人信服的结果。
我们在消融研究和几个最先进的基准上评估我们的方法。为了进行评估,我们利用合成的Synthia数据集[45]以及新提出的真实世界数据集,这个数据集包含了来自KITTI原始数据集[12]93k的深度注释图像。我们的数据集是第一个为此场景提供大量高质量深度注释的数据集。除了在深度和语义方面获得更高的准确性之外,我们还证明了我们的方法在不同数据集和稀疏程度之间的泛化能力。我们的代码和数据集将在出版后发布。
在本节中,我们讨论了对稀疏输入进行操作的方法,然后是考虑CNN内部稀疏性的技术。我们简要讨论了不变表示学习的最新技术,并总结了相关深度补全技术。
具有稀疏输入的CNNs:
处理稀疏输入的简单方法是将无效值归零或为网络创建额外的输入通道,以编码每个像素的有效性。为了检测激光扫描中的物体,陈等人。 [3]和李等人。 [32]将来自激光扫描仪的3D点云投影到低分辨率图像上,将缺失值归零并在此输入上运行标准CNN。对于光流插补和修复,Zweig等。 [59]和Koehler等人。 [28]将额外的二进制有效性掩码传递给网络。正如我们的实验所证明的,与明确考虑卷积层内的稀疏性相比,这两种策略都是次优的。
Jampani等人。 [25]使用双边滤波器作为CNN内的层,并学习相应的自组织卷积核的参数。虽然它们的图层处理稀疏的不规则输入,但它需要指导信息来构建有效的全面体表示,并且对于大网格而言计算成本很高。与他们的方法相比,我们的稀疏卷积网络在与普通CNNs一样高效的同时,在深度补全方面产生了明显更好的结果。
Graham [15,16]和Riegler等人。 [44]考虑稀疏的3D输入。与我们的工作相反,他们的重点是通过根据输入划分空间来提高计算效率和内存需求。然而,采用常规卷积层,其具有与上述初始方法相同的缺点。
Sparsity in CNNs:
许多研究[17,23,41,54,10]也考虑了卷积神经网络中的稀疏性。刘等人。 [33]展示了如何使用稀疏分解来减少参数中的冗余。他们的方法消除了超过90%的参数,ILSVRC2012的精度下降不到1%。温等人。 [54]建议规范深度神经网络的结构(即滤波器,信道和层深度)以获得硬件友好的表示。他们报告了常规CNN的加速因子3到5。虽然这些工作侧重于通过利用网络内的稀疏性来提高神经网络的效率,但我们考虑的是稀疏输入问题而不是解决效率问题。这两项工作的结合将是未来研究的一个有趣方向。
不变的表示:
对输入变化具有鲁棒性的学习模型是计算机视觉的长期目标。确保稳健性的最常用解决方案是数据增加[50,30,31]。最近,几何不变性(例如,旋转,透视变换)已直接并入CNN的滤波器[4,55,58,24,20]。在本文中,我们考虑学习表示的问题与输入中的稀疏程度不变。正如我们的实验所证明的那样,即使稀疏度水平在训练和测试集之间显着不同,我们的模型也能很好地运行。这具有重要意义,因为它允许在不重新训练网络的情况下更换传感器(例如,激光扫描仪)。
深度补全:
我们评估了我们的方法对深度完成任务的有效性,深度补全是一个活跃的研究领域,应用于例如立体视觉,光流和激光扫描数据的3D重建。虽然一些方法直接在深度输入上操作,而另一些方法则需要指导,例如,利用高分辨率的图像。
非导向深度上采样的方法与单图像超分辨率的方法密切相关。早期方法利用重复结构来识别2D [14,36]和3D [22]中不同尺度的相似斑块。最近,基于深度学习的深度[43]和图像超分辨[56,7,8,27]方法在准确性和效率方面超越了传统的上采样技术。然而,所有上述方法都假定数据位于规则网格上,因此不能用于完成本文所考虑的稀疏和不规则分布的3D激光扫描数据。
另一方面,图像引导深度补全采用了一个基本假设,即目标域与高分辨率引导图像共享共性,例如,图像边缘与深度不连续性对齐。引导深度完成的流行选择是双边滤波[2,6,29,57,34]。更先进的方法基于全局能量最小化[5,40,9,1,42],压缩感知[18],或者结合语义以提高性能[49]。虽然上述一些技术能够处理稀疏输入,但它们严重依赖于引导信号。相反,在这里,我们提出了一个基于学习的问题解决方案,即使没有图像指导也能产生令人信服的结果。有几种方法也利用端到端模型对常规数据进行引导深度上采样[23,51]。与现有的基于CNN的方法不同,所提出的卷积层处理例如在3D激光扫描数据中出现的稀疏不规则输入。
设f表示通过卷积神经网络实现的从输入域X(例如,强度,深度)到输出域Y(例如,深度,语义)的映射。
核大小为2k + 1,权值w,偏置b,如果输入包含多个特征,则xu, v, wi, j表示长度取决于输入通道数量的向量。
有两种简单的方法来处理未观察到的输入。首先,可以使用默认值(例如,零)对无效输入xu; v进行编码。这种方法的问题在于网络必须学会区分观察到的输入和无效的输入。这是一项艰巨的任务,因为可能的二进制模式的数量随着内核大小呈指数增长。或者,o可以用作网络的附加输入,希望网络能够学习观察掩码和输入之间的对应关系。不幸的是,这两种变体都难以从稀疏输入中学习健壮的表示(参见第5节)。
为了解决这个问题,我们提出了一种卷积运算,它通过仅评估观察到的像素并适当地标准化输出来明确地考虑稀疏性:
注意,当输入稠密时,方程2的值为标准卷积。
所提出的稀疏卷积运算背后的主要动机是使滤波器输出不随实际观测输入的数量变化,而由于稀疏输入和不规则输入在不同的滤波器位置上有显著的变化。注意,与人工上采样输入的其他技术[43,4]相比(例如,通过内插),我们的方法直接对输入进行操作,并且不会引入额外的干扰物。
在将信息传播到后续层时,重要的是跟踪可见性状态并使其可用于网络的下一层。特别是,当没有观察到任何滤波器输入时,我们希望将输出位置标记为未观察到。因此,我们通过最大池化操作确定网络 中的后续观察掩模;
如果过滤器可以看到至少一个观察变量,则评估为1,否则为0。结合卷积的输出,它用作下一个稀疏卷积层的输入。我们网络的完整架构如图2所示。
到目前为止,我们只考虑了卷积运算。然而,最先进的CNNS由许多不同类型的层实现不同的数学运算。其中许多可以很容易地推广到考虑观察层面。在许多不同的网络体系结构中,例如在初始模块[52]中进行求和,或者在ResNets[19]中跳过连接,以及在完全卷积网络[35]中跳过连接,都经常使用将前面多个层的输出合并为一个输出的层。利用附加的观测指标,可以将每个信道c和位置(u, v)的输入层的总和重新定义为观测输入x的归一化和。
训练和评估建议的深度补全方法需要访问大型带注释的数据集。虽然对合成数据集[45,11,39]的评估是可能的,但这些数据集所达到的真实性水平是否足以得出算法在具有挑战性的现实情况下的性能的结论,仍然是一个悬而未决的问题。
不幸的是,所有现有的具有经过清理的标定过的真实深度数据的现实世界数据集在规模上都很小。米德尔伯里基准[48,47]仅对十几个图像提供深度估计,并且仅在受控实验室条件下提供。虽然Make3D数据集[46]考虑了更真实的场景,但只提供了500张小分辨率的图像。此外,KITTI [13,37]提供了400张具有相关深度地面真实性的街景图像。但是,这些数据集都不足以进行大容量深度神经网络的端到端训练。
鉴于我们的评估,我们因此创建了一个新的大规模数据集,它是基于KITTI原始数据集[12](包含了超过94k帧,具有半密度的深度标定信息。)
虽然KITTI原始数据集以原始Velodyne扫描的形式提供深度信息,但通常需要大量的手动工作来消除激光扫描中的噪声,由于遮挡造成的伪影(例如,由于不同的中心投影的激光扫描仪和照相机)或场景中的反射/透明表面[13]。因此非常希望自动执行该任务。
在本文中,我们建议通过将扫描深度与使用半全局匹配(SGM)[21]的立体重建方法的结果进行比较来去除激光扫描中的异常值。虽然立体重建通常会导致物体边界处的深度出现伪影,但激光雷达传感器会沿其运动方向产生条纹伪影。为了消除这两种类型的异常值,我们强制激光扫描和立体声重建之间的一致性,并删除所有表现出较大相对误差的激光雷达点。为了比较两个测量,我们使用KITTI提供的校准文件将SGM视差图变换为深度值。我们进一步遵循[13]并累积11次激光扫描以增加生成的深度图的密度。虽然环境基本上是静态的,但是一些KITTI序列包括动态对象,其中激光扫描累积在动态对象上引起许多异常值。因此,我们仅使用一次SGM深度图清洁累积的激光扫描投影(而不是单独清洁每个激光扫描),以便在一个步骤中移除所有异常值:遮挡,动态运动和测量伪像。我们还观察到,由于SGM和激光雷达在这些区域很少达成一致,因此可以使用这种简单的技术去除由于反射和透明表面引起的大多数误差。
在使用第5节中的数据集进行评估之前,我们验证了它的质量。为实现这一目标,我们利用KITTI 2015立体基准的人工清理训练集作为参考数据。我们使用提供的真实深度信息为我们生成的深度图计算了几个误差测量值,并将自己与原始和累积的激光雷达扫描以及表1中的SGM深度图进行比较。SGM重建非常密集,但与原始激光扫描相比也相当不准确。在平均绝对误差(MAE)方面,我们的数据集几乎达到了与原始激光雷达扫描相同的精度水平。然而,对于度量标准,均方根误差(RMSE),“KITTI outliers” (disparity error ≥ 3px and ≥
5%),以及对 (最大平均相对误差 ),我们的数据集优于所有的基准结果。与此同时,我们实现了比原始激光雷达扫描更密集的深度图的四倍。图3给出了定性比较。
在基准深度图上手动分离前景和背景区域后,我们评估表2中动态对象和背景上出现的错误。结果表明我们建议的累积和清理管道能够去除原始激光雷达扫描中的异常值,同时显着增加了数据的密度。定性地说,我们在数据集中只发现很少的错误。大多数剩余的错误位于动态对象或远距离,参见图3(底部)。相比之下,SGM结果在远距离处是不准确的,并且激光雷达扫描导致由于激光雷达传感器和用于投影的虚拟相机的不同放置而导致的遮挡误差(我们在所有实验中使用KITTI参考相机的图像平面)。注意,动态对象(例如,左侧的汽车)导致累积的激光雷达扫描中的重大误差,这些误差在我们的技术中大大减少。
对于这项工作中的实验评估,我们将数据集分为86k图像用于训练,3k图像用于测试,4k图像用于验证。对于所有拆分,我们确保在KITTI场景类别(城市,道路,住宅和校园)上进行类似的分配,同时保持每个拆分的序列ID唯一,以避免过度拟合到附近的帧。为了提出学习深度完成和单图像深度预测的任务,我们将基于我们的数据和另外一组1.5k保持的测试图像创建基准。与在线评估服务器配对的基准测试将在KITTI Vision主页上发布。
我们研究了深度图补全的任务,以评估稀疏输入数据对稀疏卷积模块的影响。对于此任务,从投影的激光扫描得到的稀疏,不规则填充的深度图补全到完整的图像分辨率,而没有任何RGB引导。
首先,我们用不同程度的稀疏性来评估我们的方法在输入中的性能。为了达到这个目标,我们利用Ros等人的Synthia数据集。 [45]这使我们完全控制稀疏程度。为了人为地调整输入的稀疏性,我们在训练期间将随机丢失应用于提供的密集深度图。将像素丢弃的概率设置为0%至95%的不同水平。
我们训练完全卷积网络(FCN)的三种不同变体,其中包含5个内核大小为11,7,5,3和3的卷积层。每个卷积都有一个16个输出通道的步幅,然后是ReLU非线性激活函数。
我们使用Adam求解器,动量项为0.9和0.999,固定学习率为1·10^-3,重量衰减为5·10^-4。我们考虑的三个变体是:
图4显示了我们的结果。我们观察到,由于在卷积中考虑了所有像素(有效和无效),因此普通卷积对于非常稀疏的输入表现不佳。这在训练和测试期间引入了很大程度的随机性,并导致性能的强烈变化。具有级联有效掩码的稀疏深度图上的卷积比仅使用深度输入稍微好一些。然而,与我们的稀疏卷积相比,它们表现不佳,特别是在非常稀疏的输入上。
对于深度补全方法来说,不变性是一个重要的性质,因为它增强了对数据中随机扰动的鲁棒性。此外,该特性还可以推广到不同的深度传感器,如结构光传感器、PMD摄像机或激光雷达扫描仪。如图4所示,所有方法在他们已经训练的性能水平(对角线条目)上表现得相当好,稀疏卷积变换的性能最好。然而,这两个基线在预测更稀疏的深度估计时完全失败,并且令人惊讶的是,也更难以预测更密集的输入。相比之下,无论在训练期间观察到哪种稀疏程度,我们提出的稀疏卷积网络在所有稀疏水平上表现都相同。这突出了我们方法的泛化能力。图5显示了两个基准的生成密集深度图和我们在训练和测试期间使用5%稀疏度的方法的定性比较。注意,使用扩张在视觉上增强了图5(a)中的输入以提高可读性。因此,它看起来比网络的实际输入更密集。对于相同的例子,图6显示了当训练标准CNN为5%并且评估为20%时性能的急剧下降,而我们的方法同样表现良好。虽然带有输入掩码的ConvNets会导致噪声结果,但标准的ConvNets甚至会导致系统偏差,因为他们不知道输入中的稀疏程度。
为了评估我们方法的域自适应能力,我们进行了一个实验,我们在Synthia数据集上进行训练并评估我们提出的KITTI验证集。表3显示了我们的网络(SparseConv)以及使用相同数量参数的两个常规CNN基线的性能。我们的实验证明,稀疏卷积在KITTI上的表现与在Synthia上的表现相同,而密集基线不能适应新的输入模态而完全失败。我们在图7中显示了该实验的定性结果。
如相关工作部分中所讨论的,文献中的若干方法利用高分辨率图像来指导深度图完成任务,这极大地促进了该问题。密集颜色信息对于控制稀疏深度点的内插非常有用,例如,以区分对象边界和平滑表面。然而,依赖于多模传感器设置中的相机信息,例如在例如自动驾驶汽车并不总是值得推荐。恶劣的天气和夜景会降低图像数据的好处,甚至会使结果恶化。因此,我们的目标是利用深度作为本文的唯一输入的方法。
在本节中,我们展示了尽管不依赖于指导信息,但我们的方法与导向深度补全中的最新技术相当,甚至优于使用图像引导的几种方法。表4(上)显示了几种用于引导过滤的现有技术方法的比较。特别是,我们评估了Barron等人的方法。 [1],Schneider等。 [49],Ferstl等。 [9],和Jampani等人。 [25]这些都需要非稀疏的RGB图像作为指导。为了公平比较,我们在Jampani等人的稀疏卷积网络中使用了相同数量的卷积层。 [26]。对于其他基线方法,我们通过验证拆分上的网格搜索优化超参数。
此外,我们将我们的方法与表4中的几个深度算法进行比较(下图)。我们首先评估一种简单的汇集方法,该方法采用最接近(距传感器的距离)的有效点来填充给定窗口内看不见的区域。其次,我们在稀疏深度输入上使用高斯核应用Nadaraya-Watson回归量[38,53]。我们在训练数据上优化了两种方法的超参数。我们还将我们的方法与高容量基线进行比较。特别地,我们考虑一个标准的ConvNet,带可见掩码和不带可见掩码作为附加特性通道。
值得注意的是,尽管没有使用任何RGB信息,我们的方法与最先进的引导深度完成技术相当。特别是,它在验证和测试分割方面的RMSE方面排名第二,我们将其归因于用于训练的欧几里德损失。
在KITTI数据集中,使用了一台旋转频率为10hz的64层激光扫描仪来获得真实深度,以完成立体视觉和流量估计等各种任务。如果投影到图像,深度测量覆盖约5%的图像。对于诸如自动驾驶的工业应用,通常使用仅具有32或16层和更高频率的扫描仪。这导致非常稀疏的深度投影。为了分析极稀疏信息的影响,我们评估了稀疏卷积网络以及关于我们新注释的KITTI子集的不同稀疏度的几个基准。特别是,我们使用所有激光测量训练所有网络,并在使用随机丢失改变输入密度时评估性能。我们在图8中的结果证明了我们的网络对不同稀疏度的泛化能力。在存在稀疏输入的情况下,常规卷积以及几种最先进的方法表现不佳。请注意,Barron等人。 [1]和Ferstl等人。 [9]在非常稀疏的数据上表现略好于我们的方法,但需要密集的高分辨率RGB图像作为指导。
为了演示不同于深度的输出模态,我们还训练了众所周知的VGG16架构[35],用于从稀疏深度输入进行语义标记的任务。我们通过使用稀疏卷积模块替换常规卷积来修改VGG16。此外,我们应用第3.2.1节中介绍的加权跳跃连接,从小的,空间下采样的FC7层生成高分辨率预测,同时合并各个网络阶段的可见性掩模。
表5显示了训练所有Synthia 序列帧(左侧摄像机到所有方向,仅限夏季)和评估Synthia Cityscapes子集后的平均性能。同样,我们观察到所提出的稀疏卷积模块优于两个基线。相对较小的数字可以通过验证集的不同性质来解释,验证集包含更多人以及非常不同的观点(鸟瞰与街道级别)。
我们提出了一种新颖的稀疏卷积模块,用于处理稀疏输入,可以取代常规卷积模块,从而提高性能,同时很好地推广到新的域或稀疏度级别。此外,我们提供了一个带有93k深度注释图像的新注释数据集,用于训练和评估深度预测和深度补全技术。
在未来的工作中,我们计划将提出的稀疏卷积网络与网络压缩技术相结合,以处理稀疏输入,同时提高效率。我们进一步计划研究稀疏不规则输入对3D CNN的影响[44]。