高阶驾驶员辅助系统依靠各种传感器(雷达、激光雷达、超声波和摄像头)进行场景理解和预测。这些传感器通常用于检测交通参与者和导航所需的场景元素。
视觉环境感知在自动驾驶汽车的发展中起着关键作用,提供有关驾驶场景的基本信息,包括自由空间区域和周围障碍物。这些感知任务可以从各种传感器(激光雷达、相机、雷达或它们的融合)收集信息。高密度激光扫描仪能够创建环境的动态三维地图,最适合这项任务。然而,将它们集成到价格合理的车辆中的成本仍然很高。在计算机视觉领域最新进展的推动下,我们建议仅使用基于相机的系统,它有可能以更低的成本达到密集的激光扫描性能。特别是,深度学习以更快的速度推动了经典对象检测和分割的准确性的提高。
然而,仅靠物体检测系统通常不足以实现自主紧急制动和前向碰撞系统,因为各种可能的道路障碍物(例如树枝、小动物)和道路结构(例如乡村道路、不同的纹理)使得在场景理解过程中,只训练典型目标检测网络和道路分割网络不切实际。
智能泊车依靠主要是基于环视摄像头和超声波感知的系统,特别是环视监控 (AVM) 系统,可以在泊车和驾驶模式下以更低的成本实现对泊车环境的精确感知。鱼眼图像作为一种广角且失真的图像,在自动驾驶领域使用鱼眼摄像头的优势是显而易见的,因为它们提供了比传统摄像头更广阔的视野(190°),从而捕捉到更多与汽车周围环境(行人、障碍物等)相关的信息。四个摄像头分别位于车辆的前、后、左、右侧,为驾驶员提供 360°的周围环境视图,以检查车辆周围是否有障碍物。如下图表示了典型的智能泊车鱼眼图检测网络图。
对于行泊车系统控制而言,不同的传感器具有不同的识别性能,原则上将如果能够利用所有传感器在其不同阶段的识别效能进行分阶段网络处理,那么将在不同阶段产生最优的处理效果。
智能泊车感知网络的基本处理流程
本系列文章将分上下两篇分别对泊车感知处理网络原理进行阐述侧重于检测安全驾驶的基本场景信息:物体检测、路缘检测、自由驾驶区域分割、物体与相机的距离和物体方向。
首先,从基础泊车可通行区域检测网络出发,介绍一种新的解决方案,将障碍物检测网络集成到一个统一的端到端解决方案中,能够通过障碍物底点估计、路缘检测和二维多尺度目标检测联合划定自由驾驶区域,以获得低复杂度的解决方案。这种通过底点估计和路缘检测的方式可以精确的划定驾驶车辆所有方向上最近的障碍物,也可以有效的确定每个方向上最近障碍物的准确距离。
其次,场景理解系统需要高度精确的感知输入。然而,在诸如智能驾驶汽车这类嵌入式平台上的模型部署需要实时推理速度以实现快速控制,并需要较小的模型尺寸以提高能效。当然,通过开发一种低复杂度的解决方案来满足这些要求,对应的解决方案是使用光编码器网络,受益于提出的感知任务来共享计算编码器以实现环境目标检测。
智能泊车感知网络的处理流程主要包括对象检测、分类、自由空间分割和 3D方向重建。
1)自由空间检测:
这类检测过程又常常被称之为可行驶区域检测。顾名思义,就是通过一定的道路分割手段来检测可行驶区域表面的最先进方法。比如,使用全卷积网络 (FCN) 用于执行空间密集预测任务,例如使用转置卷积对上采样层进行建模下的语义分割。后来,还引入了扩张卷积来扩大网络的感受野。现有研究通常解决像素分割网络或使用立体相机的深度图推导,使用这些方法,未分类的像素需要复杂的后处理来处理它们。建议使用一种更简单的架构来检测障碍物和自由空间,方法是识别驾驶车辆各个方向上每个障碍物的底部点。
2)目标检测:
用于目标检测的先进的神经网络方法可分为两类>
其一,是基于感兴趣区域建议网络的检测方法前一类包括像Faster R-CNN的方法,它有一个两步过程,首先使用 RPN(区域建议网络)生成区域建议,然后使用辅助模块对它们进行分类评分。
其二,是单发网络检测方法。在单发网络方法中,区域提议和分类阶段被集成到一个阶段,通过使用预定义的先验知识(又叫锚框),通过滑动窗口在特征图上的移动为每个空间位置来预测边界框和班级置信度分数。
与两阶段方法相比,同时执行感兴趣区域检测和分类网络可以大大增强网络检测速度。
3)3D 对象检测:
最近,由于 3D 对象检测需要与现实世界场景中的对象进行有效交互而受到广泛关注。这个问题通过从纯粹的几何角度(例如,从单个图像估计具有 6DoF 的物体的姿态)以及使用 DCNN(深度卷积神经网络)重建 3D 模型来解决相应2D对象检测中无法体现深度信息的缺陷。这类3D检测方法主要是使用局部仿射不变图像描述符来构建 2D 图像中对象实例的 3D 模型,然后将它们与图像中的 3D 姿势进行匹配。实践证明 DCNN 在估计对象从0°到 360°方向方面具备高有效性。此外,使用 DCNN 回归稳定的 3D 对象特征,利用立体图像的深度信息,或使用运动算法的结构组合时间信息,可以使得用 3D 信息检测效果大大增强。
场景理解网络
本节详细描述了 AVM 场景理解提出的网络架构,包括目标检测、自由/可行驶区域分割、物体距离和物体方向。通过研究标准的2D 对象检测网络,例如 Faster R-CNN 和 SSD 。同时,在 AVM 数据集上试验不同的编码器,例如 MobileNet和 Inception-ResNet-V2,将它们插入标准目标检测网络以评估准确性和运行时性能。自由空间检测是通过找到图像中每个像素列的底部点来实现的,图像中所有底部点的并集表示场景中所有障碍物的底部边界,其边界外部的所有像素都被视为自由空间。到最近障碍物的距离是通过将相机几何学应用于物体的底部点通过数学公式计算得到。
结合多任务网络架构(包括底网、目标检测OD网络、融合网络)可以有效的完成目标检测和低复杂度解决方案的底点定位,使用 3D 物体检测网络来检测每辆车的物体方向。
1)底点检测网Bottom-Net
我们检测路沿和自由行驶区域的方法网络是将图像的每个垂直列作为输入。如下图表示,该多任务网络使用的输入列宽度为 24,重叠超过 23 个像素,对用相邻 24 像素区域增强相应像素的列方向进行预测。
然后每一列将通过一个卷积网络输出一个 k 标签,其中 k 是高度,将学习对应于该列的障碍物底部像素的位置进行分类,将所有列进行结合就能构建场景的路沿或自由行驶区域。
在如上这个架构中,由于列之间的重叠,超过 95% 的计算是冗余的。受此观察的启发,这里可以采用整个图像作为输入的端到端架构替换阵列式网络的实现方式。该网络使用多个卷积层将图像编码为深度特征图,然后使用多个上采样层生成与输入图像具有相同分辨率的特征图。受目标检测系统的感兴趣区域 (ROI) 方法的启发,我们裁剪了图像的硬编码区域,该区域对应于用 23 个像素的相邻区域增强的像素列。
因此,用于裁剪上采样特征图的感兴趣区域为 23 像素宽和 720(高度)像素高。在图像的每个 x 坐标处水平滑动此窗口,然后将生成结果在 ROI 池化层中调整为固定长度(例如 7x7),然后分类为 k 类之一(在高精度情况下 k 为 720,即图像的高度),形成了最终图像预测的底部点。如下图显示了该体系结构的图示。
然而,由于感兴趣区域的重叠,使用具有固定位置的 ROI 进行最终分类会导致重复计算。这种认识自然而然地把我们带到了对底部预测网络任务的最终分类层需要使用的单发网络分析处理方法。此外,为了使网络更高效,我们还将对应于多个上采样层的网络解码器部分替换为单个密集水平上采样层。
如下图描绘了底部像素预测任务的最终架构。
在应用步长 > 1 的多个卷积后,编码器生成的结果特征图的分辨率为 [width/16, height/16],缩小了原始图像大小的 16 倍。与之前版本的底部预测网络在水平和垂直方向使用标准上采样层相比,最终的上采样方法现在生成大小为 [width, height/16] 的输出特征图,其宽度乘以16,高度不变。
最后,在水平上采样层之上添加另一个全连接层,以对每一列的输入进行线性组合。使用 softmax 将每个结果列分类为 k 个类别之一,其中 k 是被预测图像的高度(在高精度情况下 720)。每个列分类子任务自动考虑显示在被分类中心列附近的像素,并表示为最终环境目标的底点预测。
2)目标检测OD网
本文研究的初始架构是基于 Faster R-CNN 并预测场景中对象的边界框和类别。作为高精度解决方案,这种架构与深度强大的编码器(如 Inception-ResNet-V2)相结合,往往会提供环境静态模型的准确信息。但在智能汽车环境动态目标这类实时性要求较高的检测场合表现却不佳。
为了确保智能车载系统的低复杂度解决方案的响应能力,我们需要一个有效的目标检测系统,它可以直接输出目标类概率和边界框坐标。此时,可以将单发网络检测与像 MobileNet 这样的光编码器结合起来进行快速推理。
3)融合网络
顾名思义,融合网络就是将如上提到的动静检测网络在一定规则的情况下进行有效的环境建模。
如下图所示表示典型的融合网络图。结合底部预测和目标检测网络的统一架构通常利用网络编码器的共享计算来实现更好的训练优化和运行时性能。因此,我们考虑在不同层分支可以共享编码器,以便找到运行时性能和准确性之间的最佳权衡。我们提出的统一架构使用卷积网络对图像进行编码,并为每个任务使用多个解码器。
输入层的分支意味着两个网络不共享任何计算,我们将此架构的结果报告为准确性的上限。在网络中,分支更高可以让我们在两个任务之间共享计算并优化实现更好的推理时间。但由于两个头必须共享编码器中的特征表示,则会降低输出结果精度。卷积编码器的高层特征对于底部预测和目标检测略有不同。因此,在编码器的较低层分支可以提高准确性,并分别制定编码头部信息表示各自的特征。
4)3D网
这里,我们介绍方向和尺寸问题的高精度解决方案。我们使用 ResNet-101(前 22 个残差块)作为底层 DCNN 架构,在具有 1000 个类的 ImageNet 子集上进行预训练。最终架构由两个分支组成,分别用于基于角度离散化和对象尺寸回归。对应的网络架构如下图 所示。3D 网络将对象的裁剪作为输入,并估计每个对象的真实世界尺寸和方向。使用 OD-net 提取 2D 作物,并将其从鱼眼投影重新投影到 Lambert圆柱等积投影中。
其中Lambert 投影函数可以描述为>
其中,λl和φl是给定射线~R的纬度和经度;Ry 是R 在 XoZ平面上的三维投影;给定一条射线的鱼眼投影~p,我们可以计算~R如下>
为了调整相机俯仰,我们沿着 oX 旋转 -α;最后,重新投影的向量 ~q 计算如下>
我们通过将方向值离散化为 N 个唯一方向,将方向预测转换为分类问题。我们随后通过使用均值漂移算法恢复连续方向,从而获得网络预测对象尺寸和对象方向。
详细多任务处理网络的实施细节
在本节中,我们将描述我们在统一架构中使用的各种训练细节。
1)预处理阶段:
作为数据集增强,我们使用随机颜色失真(亮度、饱和度、对比度、色调)和 [0, 1] 之间的归一化。我们还通过使用水平翻转来扩展训练集,低复杂度解决方案还执行随机裁剪。
2)目标函数生成:
底网Bottom-Net 使用 softmax 交叉熵损失对驾驶车辆各个方向上每个障碍物的每个底部点进行分类>
其中 w 和 h 是每个帧的宽度和高度。融合网总共总结了三个目标函数:一个用于底部像素预测的分类损失和两个用于检测任务、分类和边界框回归的损失。
对于对象检测任务而言,我们使用经典的平均精度 (mAP) 指标,在 0.5 交并比 (IoU) 重叠处。对于底部像素预测任务,我们引入了平均绝对误差(MAE),它表示地面实况和底部像素预测之间的平均像素位移。我们将 MAE 度量重新用于 3D-OD 任务以计算对象方向和所有 3 个轴上的对象尺寸。
3)低复杂性解决方案详细信息:
运行时性能和内存占用对于实时应用程序(如自动驾驶或驾驶员辅助系统所需的应用程序)至关重要。针对这个需求需要以嵌入式解决方案使用了MobileNet编码器,解决物体检测和底部像素检测这两个相关的任务。
对于用于快速车辆控制的实时嵌入式系统,计算效率则更为重要,因此统一网是在编码器更高卷积层的分支。对于目标检测任务而言,可以选择使用多尺度单发网络,因为它具有快速的运行时性能。对于编码器,我们使用 MobileNet 的修剪版本。我们发现,消除 MobileNet 编码器中的最后 2 个卷积层可提供更好的准确性。我们检测 6 个尺度的对象,使用最后一个编码器层(“conv11”)作为第一个特征图,并创建剩余的 5 个作为编码器的扩展。每个特征图负责检测不同尺度的对象。统一网的训练过程使用 640x360 像素分辨率的图像,每批训练 8 个。我们使用 7e−4 的初始学习率,并从 40000 次迭代总数中每 10000 次迭代衰减一次。
4)高精度解决方案细节:
为了尽可能获得最佳精度,这里推荐使用 Inception-ResNet V2 架构的顶部作为编码器,并在 ImageNet 上预训练权重,用于底网预测和对象检测。对于目标检测任务,可以选择了 Faster R-CNN 架构,它提供了最好的定位和分类精度。训练以全尺寸分辨率进行:1280x720,批量大小为 1,同时保持与原始实现相同的训练过程。
总结
本文介绍了一种新的端到端解决方案,通过识别驾驶车辆在每个方向上最近的障碍物来为每一帧划定安全可行驶区域,采用这种方法来计算得到最近障碍物的距离,通过将其整合到一个统一的端到端架构中,该架构能够进行联合对象检测、路缘检测和安全可行驶区域检测。
此外,本文还描述了高精度解决方案和低复杂度解决方案的网络系列。由于 2D 对象检测有时无法为场景理解提供足够的信息,因此本文如果能够通过一定的方法找到环境目标的3D 信息,同时如果增加高精度地图信息找到 3D 世界中对象的确切姿势,作为解决方案可以很好的检测每个对象的方向和尺寸,同时有效增强智能泊车过程中2D对象检测的能力。因此,本文的基础架构通过 3D 对象检测可以进一步增强泊车感知性能。