单V及多V感知在自动驾驶在恶劣环境条件下的感知提升方案
附赠自动驾驶学习资料和量产经验:链接
自动驾驶中的视觉感知是车辆在不同交通条件下安全、可持续地行驶的关键部分。然而,在大雨和雾霾等恶劣天气下,视觉感知性能受到多种降级效应的极大影响。最近,基于深度学习的感知方法已经解决了多种降级效应以反映真实世界的恶劣天气情况,但由于其在移动设备上部署的高计算成本,同时,图像增强与视觉感知之间的相关性差,仍然有许多边界效应无法解决。
为了解决在低内存和准确性方面提高恶劣天气下车道和 2D 目标检测以及深度估计的性能。我们提出了一个被恶劣天气损坏的图像作为输入,引入高级视觉任务驱动为助力的图像增强网络,也就是一种新颖的任务驱动图像增强框架,该框架通过探索视觉感知与增强之间的相互影响,从而在恶劣天气条件下实现安全可靠的自动驾驶。具体来说,首先,通过引入了一种新颖的低内存网络来减少密集块的大部分层连接,以减少内存和计算成本,同时保持高性能。其次,通过引入了一种新的任务驱动训练策略,以稳健地指导适用于高质量图像恢复和高精度感知的高级任务模型。基于端到端学习策略,这里的模型旨在在任何恶劣天气情况下具有感知和硬件友好的特性。
恶劣环境条件下的图像识别算法概述
当在自动驾驶中经常遇到的恶劣天气条件下进行高级视觉任务时,图像增强通常作为一个独立的预处理阶段工作,有可能与特定任务的目标相关性变差的情况。造成这类问题的原因主要是因为视觉增强工作主要关注人类感知质量,这一过程会因视觉伪影模式或噪声扰动而变得有害。
最近,已经研究了基于深度学习的高级视觉模型的局限性,这类算法是通过图像增强方法作为独立的预处理阶段来应对恶劣天气条件下其处理效率低下的问题。为了克服高级视觉模型的脆弱性,通过使用端到端学习方案或者分析自动驾驶场景中的语义分割网络来解决图像识别和分级的各种因素。
比如,有一些研究已被提议用于恢复降雨效应,包括雨痕或雪花,比如,设计一个多尺度堆叠密集连接的 CNN,用于检测和去除单个雪花图像中的雪花。此外,包括非局部先验或图像到图像转换网络提出了一些不依赖物理散射模型的去雾方法。实际上,现有的图像去雾方法并没有给基于评估指标分析的图像分类性能带来太多好处。也有学者研究了一种联合去雾和去雨的 CNN 网络,结合来自单个图像的全局上下文经典大气散射模型的方法。这种混合一体化模型可以在一定程度上解决了上述普遍恶劣天气增强的问题。此外,也有一些算法专注于生成对抗网络依赖于仅处理特定退化类型的任务特定编码器。然而,它们并非针对所有恶劣天气条件进行设计和训练,因此可能无法保证在恶劣天气下建立安全的自动驾驶。
尽管如上这些一体式方法在恶劣天气图像增强方面取得了令人印象深刻的性能,但它们中的大多数仅适用于一种特定类型的感知任务,例如目标检测或语义分割,而没有研究各种不同环境场景下的高级感知任务。此外,现有的一些方法都是针对在自动驾驶车辆中的嵌入设备而言,其计算效率太低,也不适合快速推理。
自动驾驶中的单感知源提升方案
1、高级视觉处理图像网络原理
在这里,我们在说明所提出的方法之前介绍问题的基础设置。如下图表示了特征身份提取网络 (FIE) 中的详细结构。其中,随机投影显示了从每个网络的最后一个展平表示到 128 维潜在特征空间的连接。
如上图所示,假设我们有原始图像 IGT 和相应的恶劣天气图像 IX。我们定义两个图像具有相同的高级任务标签 YGT 。恶劣天气输入图像IX 首先被送入图像增强网络 Een 并输出恢复图像 Ipred,而图像增强网络 Een 在最终输出之前的最后一层表示 为flasten。
随后,恢复图像Ipred通过高层感知网络Eht前馈,输出高层感知结果Ypred与最后一层卷积层flastht。每个网络的参数表示为 qen 和qht,为每个任务预先训练,其中 qht 在优化所提出的方法时被冻结。请注意,这里没有明确定义高级任务的详细网络,建议适用于任意高级任务基线。最后,上面提到的两个网络的最后一层表示为flasten 和 flastht,分别被送入具有可学习参数 f 的特征身份提取网络中。
如下将总体说明本文的增强网络的整体框架:
如上的感知处理框架包括一个低记忆增强网络、一个特定于任务的高级感知网络和一个特征身份提取网络。我们将所有网络连接到一个管道中,并以端到端的方式进行训练。
接下来将具体讲解如何利用本文的增强网络框架进行相应的的算法设计。
这里的增强网络架构受到稠密学习网络 DenseNet特征编码网络的启发。特征编码网络具有一种用于边缘高分辨率应用的有效结构,并且通过利用基于 HarDNet的轻量级块来降低级联成本,从而优于现有的图像增强方法。我们的增强网络可以分为两个部分:用于低内存计算成本的谐波密集块(HBlock)和具有特征融合高级感知任务的特征标识提取模块(FIE)。
1) 图像输入稠密网络
尽管标准的稠密网络DenseNet 可以从传播的所有层传递梯度,但它会导致大量内存使用和沉重的计算成本。
为了学习恢复信息,这里用深度 L 层对 HBlock 进行建模。为了解决这些问题,深度为 L 的 HBlock 的输出是通过与第 L 层和之前所有奇数层的连接获得的。一旦 HBlock 完成,算法就将从 2 到 L-2 的所有偶数层的输出删除。最后,为了调整维度,我们在每个块的最后一层设置了 32 个通道。每层L有一个输出通道宽度k,其通道数按k×1:6n计算,其中n为第l层除以整数商除以2m时的最大值。
此外,在每第 4 个卷积层之前使用一个瓶颈层以进一步加快参数效率,并将其输出通道设置为:
其中cin和cout分别是输入和输出通道。为此,我们提出了两个版本的网络,每个版本由 71 层(5 个 HBlock)和 33 层(3 个 HBlock)组成。除最后一层外,每个卷积层之后都使用批量归一化。之后,将 ReLU 用作激活函数。最后,为了实现更高质量的恢复,引入了递归增强结构,共3个阶段,在最后阶段逐步完善感知质量的优化。
2)特征身份提取模块
特征身份提取模块FIE通过在一个统一的框架中表示图像增强和视觉感知之间的相互影响来将它们联系起来。这种设计用于关联来自图像增强和高级视觉感知特征的信息。FIE 基于 3 层 CNN,它在使用随机投影而不是密集的特征身份提取模块FIE 的最后一层,这样整体展平输出后可以恰好分配出 128 维的潜在特征,如上图所示。随机投影可以进行无限制的特征身份比较FIE ,且最终层输出维度不同。
3)学习网络损失函数定义
为了学习所提出的网络,我们通过三阶段进一步整合了图像增强网络和高级网络。我们的培训策略分为三个部分:即图像增强网络学习、高级视觉损失计算、特征识别学习;
① 图像恢复损失Recovery Loss:
图像损失恢复实际上是需要对恶劣天气下的图像恢复到与原始图像尽量逼近的效果,其原理就是构建合理的损失逼近代价函数。当代价函数逐渐逼近0,且趋于稳定状态时,就认为此时恶劣天气图已经完成了对原始图像的恢复。
现有的最先进的方法采用基于MSE(均方误差)的像素损失来训练增强网络。然而,MSE 优化通常会产生模糊的视觉信息,从而导致内容过于平滑且图像识别结果也不会如预期那样好。为了防止这种情况,可以采用相对优质的惩罚函数(如Charbonnier,主要因为该函数对异常值更加稳健)来对恶劣天气分布的逐次逼近进行估计。
如下公式对恢复损失进行了相应的示意:
其中 e 是惩罚系数,根据经验设置为5×10−3,该值的设置主要是在增强网络和高级感知之间提供丰富的连接。
② 特征身份损失High Level Task Loss:
特征身份可以利用欧几里得距离计算图像对的身份信息比对来获取,这种距离计算方式比标准的每像素损失可以更好的生成高质量样本。这种样本的生成主要用于超分辨率、翻译和图像恢复。即使涉及图像生成以外的识别任务,身份信息对于稳定优化仍然是必不可少的。为了在训练过程中给出相关信息,我们建议使用特征身份损失与超球面空间中的身份直接相关,定义为:
其中
和
分别是从 (FIE) 中提取的输入图像
和恢复图像
的身份特征。FIE(·) V 是映射到超球面的身份表示。
③ 高层任务损失函数Feature Identity Loss:
我们使用来自预先训练的高级视觉任务网络所生成的高级任务损失 LHT 来为增强网络提供连接性,从而增强其感知效能。默认情况下,用于高级任务的感知网络在由原始无杂质图像组成的基准上进行预训练,在完成深度学习后冻结对应的感知框架。这个感知框架可以保证即使我们的增强网络被替换为另一个模型,也可以在不额外调整目标函数系数和重新训练感知网络的情况下替换它。这种方式可以在应对所有恶劣天气的同时运行各种高级别任务的研究,在普适性上也更进了一步。为了传达更强大的感知友好属性,可以在接下来的步骤中描述特征标识损失。
④ 目标函数Target Function:
基于上述介绍,结合上述三类过程函数损失可以定义对应的目标函数,并基于阶段方式优化总目标函数。优化的过程就是通过不断的训练逐步减小目标函数并取得最小值。当优化过程中逐渐发现一定时间内,目标函数区域稳定,且无法继续减小时,则认为此时损失图像已经恢复到和原始图像差不多的质量。停止训练,输出对应的图像。
以下函数进行模型训练:
其中 a 和 b 分别是
和
的权衡系数,qen 和 f 是从头开始使用 N 个样本学习的参数。
自动驾驶中的多感知源提升方案
以上介绍了利用提升识别单感知源图像本身处理能力的算法模型,然而应用于自动驾驶系统而言,同一场景下的图像感知往往不可能来自于同一个感知源。比如典型的配置就包括了5R5V、5R11V、5R12V1L等几种典型的传感配置。对于以数据驱动一体化为导向的视觉融合毫米波和激光雷达的鸟瞰图BEV而言,其3D场景重构在感知处理提升上也是行业内比较受到大家推崇的一种高阶感知算法。
如下图表示了一种典型的BEV处理简化图模型。
多V感知提升原理说明如下:
1)各自传感器经过各自识别再进行融合时,中间损失了很多有效信息,影响了感知精度,而多相机BEV能够有效避免类似的信息丢失;
2)传统的融合算法,仍然是一种基于规则的方法,要根据先验知识来设定传感器的置信度,局限性很明显,容易顾此失彼 ;而BEV融合能够解放大量手工逻辑(包括重叠区域),同时在资源使用率上也明显更加友好;
3)多相机BEV有利于各困难case的精度提升。车辆运动过程中,某个视角的有可能会存在遮挡、光照问题,但其实视角此时正好处于正常状态,多视觉融合雷达的 BEV感知可以很好的处理这种特殊case;
4)类似的,多视觉融合雷达的BEV感知也能够提升基础感知数据中的车道线属性精度。
总结
自动驾驶感知处理过程中,从感知本身而言,需要首先考虑对各独立传感器的感知图像处理。本文重点说明了多种恶劣天气和环境条件下自动驾驶的图像增强和高级视觉处理逻辑。主要可以从三方面入手解决问题:首先,利用一个通用的多重恶劣天气去除框架,促使高级视觉任务能够在不退化和重新训练的情况下提高现有模型的鲁棒性。其次,开发了一个任务驱动的增强网络,以减少内存和计算成本,这对于车载端自动驾驶的实时资源利用而言是一个很大的福音。此外,引入一种新颖的训练策略,可以最大限度地减少图像增强的不利影响,同时以端到端和任务驱动的方式提高感知处理任务的效能。
此外,考虑自动驾驶中传感器配置的多样性,当前比较典型的方法还是利用多V结合多雷达的方式实现各方BEV的融合策略。对于从单V模型中实在无法解决的极端场景可以进一步促进其识别处理性能的提升。