在辅助驾驶和自动驾驶等应用中,全面详细的道路场景鸟瞰图能帮助系统做出更合理的判断。为此,意大利摩德纳·雷焦·艾米利亚大学的研究者提出了一种使用深度网络实现从正面视图到鸟瞰图映射的方法,并且还为测试该架构构建了一个合成数据集。机器之心技术分析师对该论文进行了解读。
论文地址:https://arxiv.org/pdf/1706.08442.pdf
项目地址:http://imagelab.ing.unimore.it/scene-awareness
1.引言
了解道路场景对自动驾驶而言至关重要,并且也是高级驾驶辅助系统(ADAS)的一个重要组件。很多 ADAS 都已经集成了基于视觉的算法。这方面有三大主要范式:中介感知方法(mediated perception approaches,基于对车辆周围环境的理解)、行为反射方法(behavior reflex methods,驾驶动作直接由传感输入控制)、直接感知技术(direct perception techniques,根据输入图像生成映射等各种形式的驾驶情形的归纳总结,比如道路的鸟瞰图)。
这篇论文的灵感来自用于 ADAS 的直接感知技术,并且提出了一种可将正面视图(即来自仪表盘摄像头视角)的车辆检测映射在道路场景的鸟瞰图上的深度学习架构,同时还能保留运动车辆的尺寸和方向信息,如图 1 所示。
图 1:该任务的简单概述。正面视图的车辆检测(左图)被映射成鸟瞰图(右图),同时保留位置和尺寸信息。
2. 数据集
因为获取既包含正面视图又包含道路场景鸟瞰图的真实世界数据集很困难,所以该论文的作者们编制了一个有标注的合成数据集:GTAV 数据集。其中包含超过 100 万对正面视图-鸟瞰图,其使用了 Script Hook V Library(http://www.dev-c.com/gtav/scripthookv/),这个库允许人们访问视频游戏《侠盗猎车手5》(GTAV,https://github.com/ai-tor/DeepGTAV)的函数。道路情形的正面视图和鸟瞰图是以一种交替式的方式获取的,即在每个游戏时间步骤,让游戏相机视角在正面视图和鸟瞰图之间切换。图 2 展示了一些来自该 GTAV 数据集的样本。
图 2:(a)从我们的 GTAV 数据集中随机取样的图像对,其展现了道路景观、交通状况、车辆型号等方面的多样性。每个检测结果都被看作是一个单独的训练样本。(b)在后处理阶段被拒绝的随机样本。
这篇论文的作者已经公开了 GTAV 数据集、代码和预训练后的模型:http://imagelab.ing.unimore.it/scene-awareness
GTAV 数据集中每一项都构成了一个具有以下属性的元组:
- 正面视图和鸟瞰图视角所得到的帧,分辨率为 1920x1080。
- 各帧中车辆的识别标识和对应的车辆型号(比如:卡车)。
- 正面视图和鸟瞰图帧中边界框的坐标。这些边界框圈出了各帧中检测到的车辆。
- 对应所获取的正面视图和鸟瞰图中车辆的距离和方向。
3. 模型
该论文指出将道路状况的正面视图映射成鸟瞰图的问题可能会被误认为是“不同视角的几何视图变换。”但是,鸟瞰图中存在的很多目标是无法在正面视图中看见的,这使得当只有视图之间的直接变换时,这个问题将难以得到解决。此外,在测试阶段不会给出任何鸟瞰图,因此这个问题也不能被当作是视图之间的对应问题进行处理。
而该论文则试图从深度学习的角度来解决这一问题:给定仪表盘摄像头获取的道路正面视图,学习从车辆上方的道路占用图(鸟瞰图)。
他们提出的深度架构名为形义感知型密集投射网络(SDPN:Semantic-aware Dense Projection Network)。该架构分成两个主要分支,如图 4 所示。
图 4:该论文提出的 SDPN 的图表示。所有层都包含 ReLU 单元,只有顶层的解码器层除外——其使用了 tanh 激活。坐标编码器和解码器全连接单元的数量分别是 (256, 256, 256) 和 (1024, 1024, 512, 256, 128, 4)。
分支 1 的输入为仪表盘摄像头检测到的车辆的裁切图像。输入图像的形义特征是使用 ResNet50 深度网络 [1] 提取的,该网络在 ImageNet [2] 上进行过预训练,但去除了其中原本用于图像分类任务的全连接密集层。分支 1 的目标是确定应该出现在输出视图中的车辆以及这些车辆的形义类型(比如,是卡车还是轿车?)。
分支 2 的目标是将输入边界框的坐标(每个边界框 4 个坐标)编码到一个 256 维的特征空间。
然后,正面相机获取的输入图像的形义特征(通过分支 1)以及正面视图中看见的边界框的编码后的坐标(通过分支 2)会通过连接(concatenation)方法融合到一起。一个坐标解码器负责预测正面视图中边界框限定的车辆在所得到的输出鸟瞰图中的坐标。
训练详情可在下面两张代码截图的相应代码行找到,研究者也将这些代码公布在了 GitHub 上:https://github.com/ndrplz/surround_vehicles_awareness
- 从输入裁切图像(在训练之前尺寸已调整为 224x224)中减去 ImageNet [2] 的平均像素值。
- ResNet50 深度网络 [1] 的参数在训练过程中是固定的。
- 输出鸟瞰图中的基本真值坐标被归一化到 [-1,1] 范围内。
- 每个全连接层之后都使用了 dropout(如所提出的 SDPN 架构的分支 2 所描述的那样),丢弃的概率为 0.25。
- 该模型是端到端训练的,损失函数为均方误差(MSE),并且使用了 Adam 优化器 [5],参数设置为:lr = 0.001、beta_1 = 0.9、beta_2= 0.999。
来自:https://github.com/ndrplz/surround_vehicles_awareness/blob/master/model.py
来自:https://github.com/ndrplz/surround_vehicles_awareness/blob/master/main.py
4. 实验结果
该论文所提出的 SDPN 架构在以下三个基准模型上进行了评估:
基准 1:单应性(Homography)
其目标是评估深度学习角度的选择,而不是将该问题看作是一个不同视图之间的几何变换任务。
单应性方法是根据从训练集中“源”和“目标”边界框的底角收集的点,采用一种投射式变换来计算两个视图中对应点之间的映射。它们可被用于以最小二乘的方式估计一个“单应性”矩阵,以最小化投射误差。但是,这种基准方法无法恢复目标边界框的高度,因此训练样本的平均高度会被传播给目标框。
基准 2:网格
网格基准方法是以一种概率方式,使用一个规则的网格量化输入和输出视图中的空间位置(网格分辨率固定为 108x192)。
对于输入网格(正面视图)中的每一格 ,任务目标是估计其在鸟瞰图中所有网格单元上的概率,然后找到输入网格中每个像素所对应的位置。
基准 3:多层感知器(MLP)
作者将自己提出的 SDPN 架构与基准 3 方法比较的目的是确定 SDPN 中所使用的形义特征的重要性,因为当有足够多输入框的训练坐标以及一个强大的模型时,就有可能预测出边界框的输出坐标。
因此,该论文的作者使用 SDPN 架构中采用的几乎同等数量的参数训练了另一个模型(基准 3),并且在输入到输出坐标之间使用了全连接。我们也许可以将基准 3 看作是 SDPN 架构的约简版,只是没有负责提取边界框限定的车辆的特征的分支 1。
为了评估所提出的 SDPN 架构相比于上述 3 种基准方法的表现,该论文使用了以下 4 个指标:
- 交并比(IoU):预测得到的边界框 BBp 相比于目标边界框 BBt 的质量的度量(其中 A(R) 是指矩形 R 的面积):
- 质心距离(CD):框中心之间的像素距离,这能说明定位的质量;
- 高度误差(hE)和宽度误差(wE):分别在边界框的高和宽上的误差,以相对于基本真值 BBt 尺寸的偏差百分数表示;
- 宽高比平均误差(arE):BBp 和 BBt 之间宽高比的差的绝对值:
图 5(a) 给出了SDPN 架构相比于 3 个基准的结果。正如研究者指出的那样,单应性和网格在将正面视图映射成鸟瞰图方面“过于简单直接”。尽管 MLP 能合理估计边界框的坐标,但却无法在鸟瞰图中恢复边界框的形状,因为其没有考虑边界框中的视觉特征,从而导致在质心距离(CD)方面表现不令人满意。
该论文提出的 SDPN 架构能够获取目标的形义,可用作线索来估计目标视图中边界框限定的目标(车辆)的位置和形状。
第二个实验是评估离被检测车辆的距离对映射准确度的影响。如图 5(b) 所示,所有模型的表现都会随距离的增大而下降,这说明当被检测车辆距离更近时,建模会更容易,因为更近的样本有更低的方差(比如,它们基本上都是前面的车辆或对向来车)。另一个现象是随着距离增大,MLP 和 SDPN 之间的准确度差异也会增大,这说明视觉特征确实对SDPN 架构的映射准确度和稳健性有贡献。
图 5:(a)该论文提出的 SDPN 模型与基准方法的结果对比;(b)随着与被检测车辆的距离增大,IoU 表现的下降情况。
图 6 提供了 SDPN 架构与三个基准模型的定性比较。如图 6 所示,这些基准方法无法得到边界框位置的合理估计,而 SDPN 架构不仅擅长预测边界框的位置,而且还能在鸟瞰图中恢复车辆的方向和形状。
图 6:不同模型之间的定性比较。SDPN 既能预测边界框的合理位置,还能学习车辆的方向和类型(比如卡车通常比轿车大)
他们还在一个真实世界的驾驶视频数据集 [3] 上测试了该论文提出的 SDPN 架构,这些数据来自一个屋顶安装的摄像头。正面视图中的边界框是使用 [4] 中提出的当前最佳检测器生成的。
该论文仅给出了定性结果,如图 7 所示,因为这些视频并没有基本真值可用。尽管这个深度网络只是在合成数据上训练的,但对边界框的预测看起来是合理的,这说明 SDPN 架构能够被扩展用于真实世界数据。
图 7:在真实世界样本上的定性结果。预测结果看起来是合理的,尽管整个训练都是在合成数据上进行的。
5. 简评
该论文研究了一个有趣的问题:如何将仪表盘摄像头检测到的所有车辆从正面视图映射到道路鸟瞰图上?
研究者贡献了一个合成数据集(GTAV 数据集),其中包含超过 100 万对正面视图-鸟瞰图;并进一步提出了一种深度网络架构(SDPN),结果表明该架构能有效地将道路场景的正面视图映射成鸟瞰图,同时还能保留正面相机检测到的车辆的尺寸和形状信息。
参考文献
[1] He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. pp. 770-778 (2016)
[2]Deng, J., Dong, W., Socher, R., Li, L.J., Li, K., Fei-Fei, L.: Imagenet: A large-scale hierarchical image database. In: Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on. pp. 248{255. IEEE (2009)
[3]Alletto, S., Palazzi, A., Solera, F., Calderara, S., Cucchiara, R.: Dr (eye) ve: A dataset for attention-based tasks with applications to autonomous and assisted driving. In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops. pp. 54-60 (2016)
[4] Liu, W., Anguelov, D., Erhan, D., Szegedy, C., Reed, S., Fu, C.Y., Berg, A.C.: Ssd: Single shot multibox detector. In: European Conference on Computer Vision. pp. 21-37. Springer (2016)
[5]Kingma, D.P., Ba, J.: Adam: A method for stochastic optimization. CoRR abs/1412.6980 (2014), http://arxiv.org/abs/1412.6980