我是靠谱客的博主 昏睡泥猴桃,最近开发中收集的这篇文章主要介绍SoildNet: Soiling Degradation Detection inAutonomous Driving 论文精读,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SolidNet:自动驾驶中的污物退化检测

摘要

在自动驾驶领域,摄像头传感器极易被污染,因为它们位于车外,并与雨滴、雪、灰尘、沙子、泥浆等环境污染源相互作用。 这可能导致部分或完全视力退化。 因此,检测这种视觉衰减对于安全和整体保持自动驾驶中“自主”组件的功能非常重要。 这项工作的贡献包括:1)设计一个基于深度卷积神经网络(DCNN)的基线网络,2)利用多种网络重构技术,如采用静态和动态组卷积、信道重排序,压缩baseline架构,使其适用于低功耗嵌入式系统,3)在输入分辨率为1280×768的情况下,比较当前所有网络对于脏污大小在64×64级别尺寸的脏污退化检测的各种指标结果。压缩网络称为 SoildNet(Sand, snOw, raIn/dIrt, oiL, Dust/muD),它仅使用基础网络的 9.72%训练参数,并将模型大小减少了超过7倍,准确度没有损失。

一、介绍

基于视觉的算法特别依赖于从具有几乎 360° 环绕视图的相机传感器传递的图像数据,如图 1 所示。输入视觉的质量需要一定程度的验证,然后才能馈送到其他下游算法,因为如果视力严重衰退,相关过程的性能会严重下降。 因此,在实现 4 级自动驾驶时,检测输入视觉的退化并向系统报告是非常关键的。这将确保乘客和其他人的安全,避免发生任何前所未有的事件。

图1: 环视摄像机的不同视野:(a)前,(b)后,(c)左和(d)右

文献中关于报告的问题陈述的工作很少,这些方法可以分为两类,1)图像恢复和 2)污染检测。 在第一类中,已经尝试通过移除雨滴来恢复输入图像 [1]。

另一项成功的努力是去雾 [2] 高分辨率超声图像。 对于这两种方法,网络都使用一对缺陷和干净图像进行训练。 然而,这些技术在低功耗汽车 SoC 上的实时部署能力值得怀疑。 在第二类中,在 [3] 中,GAN(生成对抗网络)用于增加脏污样本。[4]中也采用了相同的方法。

图 2:不同类型的污渍:(a) 草,(b) 雾,(c) 雨滴,(d) 泥土,(e) 泥浆飞溅,(f) 夜间泥浆飞溅

二、 贡献

关键但较少探索的问题

脏污的视觉可能会阻碍其他基于视觉的应用,如果不引起注意,则会导致若干安全问题。 因此,这一重要问题需要一种快速且资源少的环境友好型解决方案。然而,文献中很少有作品的可用性表明,这项任务还没有得到充分探索。据作者所知,这是第一项关于基于tile脏污退化检测的研究,其中网络推荐已经从嵌入式平台的角度进行了细致的研究。

网络优化与分析

在这项研究中,已经证明了现有网络重构方法 [5] [6] 的主要内容如何帮助将基础网络优化 7 倍的模型大小,并且仅使用 9.72% 的可训练参数基本网络没有准确性损失的迹象。最终,在污染检测任务中,最佳优化网络优于基础网络的所有其他增量优化变体。 然而,需要注意的是,在任何早期的作品中,由于特征混合不足的问题,组卷积从未在所有卷积层上应用。本研究克服了这一瓶颈,并在第 5 节中进行了讨论。

tile脏污检测

大多数情况下,脏污效果会在图像上不连续地出现。 因此,在局部比在图像级别检测污染更有意义。更局部地检测污染并不会完全取消用于其他算法的输入图像的资格,例如 VSLAM(视觉同时定位和映射)[7]、运动立体 [8]、环境感知 [9]、3D 对象检测 [10],语义分割[11]。相反,所有下游算法仍然可以在预测为无污染的瓷砖上运行。需要注意的是,本文中tile的定义并不局限于定义的维度,而是可以扩展到整个图像,并且可以缩小到像素级。

三、 脏污退化检测

参考前面部分的详细说明,很明显没有办法保护相机传感器免受各种退化源的影响。当在输入图像的大部分上检测到退化时,恢复视野是很重要的,原因很明显。它是自动调用的清洁系统,通过喷洒温水去除脏污的物体。该系统包括一个单独的水箱,用于为此目的储备水,并且需要像加油一样加油。清洁系统的系统级详细信息显示在[4] 中。下面讨论本实验中考虑的各种类型的脏污及其类别。

3.1 脏污类型

视力下降可能是由于恶劣的天气条件造成的,这包括污垢类型,例如雪、雨滴、雾等,或其他无论恶劣天气都会出现的类型,例如泥、草、油、灰尘、沙子等。图 2 显示了本实验中考虑的不同污染类型的几个示例。

3.2 脏污等级

上一节讨论的不同类型的污渍分为三类:干净的、不透明的和透明的。这种分类是根据每个图块的感兴趣tile内的可见性来完成的。

干净:当图块具有完全自由视图时,它被归类为干净。

不透明:当视觉完全被遮挡时,瓷砖被标记为不透明。由于上一节讨论的任何类型的污渍,都可能导致视力完全衰退

透明的:有时,由于相机镜头上脏污物体的不均匀分布,输入图像中的大部分tile不会失去完全的可见性。相反,我们可以看到一些部分受影响的tile。在本研究中,具有此类质量的tile被认为是透明的。

有可能在一个tile内观察到多个类的存在,然而,tile是基于每个瓦片的主导类的存在来注释的。在本研究中,分辨率为1280×768的输入图像被标注为每个尺寸为64×64的tile,每个瓦片代表一个污染等级,因此可以看到包含tile上所有污染类别的输入图像。

四、数据集

由于任何公共数据集的不可用性,已使用多个驾驶场景或视频来提取帧,但并非所有连续帧都被提取。这是因为高度相关的样本在训练期间贡献不大。

对于报告的问题,正确预测干净tile更为关键。这是因为,大量误报将导致更频繁地清洁已经清洁的摄像机。因此,水箱需要反复加油。因此,使模型适度偏向干净类是有意义的。在本实验中,总共使用了144053个样本图像,其中70000个样本是纯清洁图像,这意味着所有tile都没有脏污。更高数量的干净样本将有助于学习干净类的更好区分特征,因此模型倾向于倾向于干净。摄像机之间的样本分布如下,FV:36259;RV:36160,MVR:35435;MVL:36199。在输入分辨率为1280×768的情况下,尺寸为64×64的瓦片沿宽度方向形成20个tile,沿高度方向形成12个瓦片。因此,单个样本总共包含20×12个tile,基于tile的类分布为干净:25459238;不透明:6341435;透明:2772047。摄像机视图的更改会显著影响对象的外观,因此有必要检查这些类在不同摄像机视图之间的平铺层上的分布情况。表1显示了这些类在所有四个摄像机视图中充分分布。

数据集被细分为训练集、验证集和测试集,划分率分别为60%、20%和20%。在图2中,数据集中显示了一些示例。需要注意的是,所有样本都是鱼眼,并且是由ISP(图像信号处理器)摄像机产生的YUV420[12]平面图像格式。对于污渍检测任务,鱼眼图像未被校正,因为需要单独的预处理模块,这将增加获得端到端结果的总推断时间。

五、 提议的方法

为了完成低功耗汽车 SoC 的污染退化检测任务,首先设计了一个基础网络(Net-1)以 YUV420 平面格式输入,其中 Y、U 和 V 通道的尺寸分别为 1280×768、640×384 和 640 ×384。 由于 Y 和 UV 之间的维度不匹配,因此该网络设计为采用两个输入,一个用于 Y,另一个用于 UV。 稍后通过卷积操作,将两组特征图(Y 和 UV)降低到相似的维度并连接起来,使网络成为单一流。 这种方法可以在[13]中详细检查。 如图 3 所示,Net-1 被进一步重构为 4 个其他网络(Net-2、Net-3、Net-4 和 SoildNet),以获得轻量级和更高效的 Net-1 的最佳变体。 网络重构是使用下一节中讨论的组卷积和通道重新排序来完成的。

图3 提出的具有不同污染检测方案的网络。 转化率 :卷积,G:组大小,S:步幅大小

5.1 组卷积

在 AlexNet [14] 中首次引入了明智地执行卷积操作组的想法。 然而,主要目的是在两个 GPU 中分配操作数量。 后来在 ResNeXt [5] 中,该提议被用于提高准确性,同时降低对象识别任务的网络复杂度。[5]中的早期工作考虑了网络中的静态组数。目前的工作通过在所有卷积层(Net-2、Net-3、Net-4、SoildNet)中添加组卷积来扩展这一概念,我们还尝试使用动态组大小(Net-4、SoildNet)来降低网络复杂度 可训练参数的两倍以上(Net-3 vs. Net-4)。网络方案不包含残差连接,因为发现组卷积对于 [15] 中提出的低深度网络不是很有效。此外,关于轻量级网络 [16] 的残差连接的类似研究是不在任何提案中使用它们的原因。而在网络的所有层都添加组卷积带来了特征混合不足的另一个挑战。这可以通过下一节中讨论的通道重新排序来克服。

5.2 通道重组

通道重新排序的概念深受 ShuffleNet [6] 的启发。 在进行组卷积时,特征信息被限制在组内。 为了使特征跨组混合,特征图以有序的方式打乱,以确保在下一层中每个组至少包含来自前一层的每个组的候选特征图。

在本实验中,在 ShuffleNet 中发现了两个约束,并在本研究中解决了它们。首先,现在众所周知,组卷积可以有效降低网络复杂度,但有时这种方法不能应用于所有卷积层。 这是因为特征信息不会分布在所有特征图上,这一步对于学习更好的描述符是必要的。 特征混合不足的主要原因是所有的特征图永远不会一起进行卷积操作,因为它们是按组分隔的。 在执行一层或两层连续的组卷积后,通常会添加一个内核大小为 1×1 的卷积层来混合跨通道的特征。 因此,所有特征图上的卷积操作再次使可训练参数的数量显着增加。 为了在整个网络的所有卷积层执行组卷积,添加了通道重新排序,这有助于确保跨组的特征混合。 当然,按照这种方式,特征混合不会像所有特征图上的普通卷积一样有效,但混合肯定会与网络训练的更多时期基本相同。 并且在所有层都具有组卷积和通道重新排序的网络的后期收敛仅对训练时间有影响。 由于使用了残差连接,ShuffleNet 的所有层都没有应用通道重新排序的另一个原因。

ShuffleNet 使用通道洗牌,同时保持网络中组的数量不变。这显着限制了 GMACS(在下一节中讨论)的进一步减少,考虑到组卷积不是在所有层都执行的参数数量和模型大小。在本实验中,我们设计了两个网络(Net-4 和 SolidNet),Net-4 在每一层包含不同数量的组,SoildNet 包含与 Net-4 相同数量的组,但它包括通道重新排序方法。这里,组大小是基于以下想法确定的:一个具有更多组数的卷积层会大大减少可训练参数的数量,但由于特征图被更多组分隔,因此会限制特征混合,然后下一个卷积层应该使用 较少的组数可以很好地融合特征。 因此,在减少可训练参数的数量和特征混合之间保持了良好的平衡。在 SolidNet 中,除了具有动态组大小的组卷积之外,通道重新排序通过在组之间打乱特征图来确保即使在组大小较小的情况下也能混合特征。 该方法的有效性见表 3。

六、 SoildNet分析

CNN 在执行卷积任务时主要遵循两个主要操作——乘法和加法。 网络中涉及的操作总数由 GMACS(每秒千兆乘法累加操作)单位表示。 表 2 提供了所有五种网络方案(Net-1、Net-2、Net-3、Net-4、SoildNet)中使用的可训练参数的数量及其 GMACS 和模型大小的详细信息。 由于在 SolidNet 的两个变体(有和没有通道重新排序)中来自基线网络的组卷积,网络参数减少了 90% 以上,模型大小减少了 7 倍以上。 在低功耗 SoC 上部署模型时,这是一个非常重要且令人鼓舞的数字。 还可以清楚地看到,SoildNet(和 Net-4)的 GMACS 远低于基线或其他网络方案。 因此,这个因素有助于 SolidNet 在推理过程中更快。

需要注意的是,通道重排序技术对网络参数的大小没有任何影响,因为它只是改变了特征图的位置,因此网络中的参数数量保持不变。 出于同样的原因,无论有无通道重新排序,对模型大小也没有影响。

由于本研究的重点是设计用于污染退化检测任务的高效轻量级网络,因此从诸如 ResNet-10 [17](ResNet 系列的最轻版本)等标准网络的计算复杂度的角度进行分析似乎很有趣 ) 用于具有 ~ 1 TOPS(每秒 Tera 操作)的嵌入式平台。 表 2 显示了 ResNet-10 的 GMACS、可训练参数的数量和模型大小与本工作中使用的输入分辨率相关。 然而,由于下面所述的原因,ResNet-10 在这项工作中没有被进一步考虑。

操作次数:

报告的 ResNet-10 的 GMACS 太高了,无法考虑用于嵌入式平台

型号尺寸:

汽车 SoC 通常只提供几兆字节的内存,需要适应 ADAS 系统的所有自主算法。 因此,在这样的预算约束下,接受大小超过 5 MB 的模型是有问题的,尤其是当我们以更高的 FPS(每秒帧数)为目标时。

残差链接:

内存预算随着包含残差连接的网络而大幅增加,因为需要将特征图保存在内存中,以便稍后在残差连接结束时执行加法。 在特征图检索期间,DMA(直接内存访问)将数据从存储传输到非常有限的高速缓存以进行特征图求和。 如果高速缓存无法保存全部数据,则 DMA 会继续部分复制和处理数据。 最终,随着特征图数量的增加,这种滚动缓冲方法会执行很多次,它会导致嵌入式平台上的网络推理时间更长。

图4 与GT(Ground Truth)相比,提议的网络推荐输出的基于64×64 tile的污染退化检测示例。从左到右:输入图像,来自 Net-1、Net-2、Net-3、Net-4、SoildNet、GT的输出。颜色代码:绿色 - 干净,青色 - 不透明,蓝色 - 透明。最好以彩色观看。

个人总结

这篇论文的思想还是挺有意思的,在这篇论文中,图像输入尺寸为1280*768,作者按每个小块为64*64像素大小将一整张图划分为20*12个小块,然后对每一个小块进行分类,总共三个类别,分别是:清晰、透明、不透明。还有一个很有意思的一点是,输入图像的格式是YUV,本文将Y通道单独拿出来做了一次卷积和下采样,然后将UV合并成一张图直接resize到640*384,做了一个卷积,没有下采样,然后两个特征图合并到一起。网络架构见图3,输出结果见图4。

下载地址

https://arxiv.org/abs/1911.01054

最后

以上就是昏睡泥猴桃为你收集整理的SoildNet: Soiling Degradation Detection inAutonomous Driving 论文精读的全部内容,希望文章能够帮你解决SoildNet: Soiling Degradation Detection inAutonomous Driving 论文精读所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部