Olli Huang作者Haojin Yang编辑

学习将车辆映射到鸟瞰图中:帮助驾驶系统全面理解道路场景

在辅助驾驶和自动驾驶等应用中,全面详细的道路场景鸟瞰图能帮助系统做出更合理的判断。为此,意大利摩德纳·雷焦·艾米利亚大学的研究者提出了一种使用深度网络实现从正面视图到鸟瞰图映射的方法,并且还为测试该架构构建了一个合成数据集。机器之心技术分析师对该论文进行了解读。

论文地址: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 数据集中每一项都构成了一个具有以下属性的元组:

  1. 正面视图和鸟瞰图视角所得到的帧,分辨率为 1920x1080。
  2. 各帧中车辆的识别标识和对应的车辆型号(比如:卡车)。
  3. 正面视图和鸟瞰图帧中边界框的坐标。这些边界框圈出了各帧中检测到的车辆。
  4. 对应所获取的正面视图和鸟瞰图中车辆的距离和方向。

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

  1. 从输入裁切图像(在训练之前尺寸已调整为 224x224)中减去 ImageNet [2] 的平均像素值。
  2. ResNet50 深度网络 [1] 的参数在训练过程中是固定的。
  3. 输出鸟瞰图中的基本真值坐标被归一化到 [-1,1] 范围内。
  4. 每个全连接层之后都使用了 dropout(如所提出的 SDPN 架构的分支 2 所描述的那样),丢弃的概率为 0.25。
  5. 该模型是端到端训练的,损失函数为均方误差(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

理论
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

多层感知机技术

感知机(Perceptron)一般只有一个输入层与一个输出层,导致了学习能力有限而只能解决线性可分问题。多层感知机(Multilayer Perceptron)是一类前馈(人工)神经网络及感知机的延伸,它至少由三层功能神经元(functional neuron)组成(输入层,隐层,输出层),每层神经元与下一层神经元全互连,神经元之间不存在同层连接或跨层连接,其中隐层或隐含层(hidden layer)介于输入层与输出层之间的,主要通过非线性的函数复合对信号进行逐步加工,特征提取以及表示学习。多层感知机的强大学习能力在于,虽然训练数据没有指明每层的功能,但网络的层数、每层的神经元的个数、神经元的激活函数均为可调且由模型选择预先决定,学习算法只需通过模型训练决定网络参数(连接权重与阈值),即可最好地实现对于目标函数的近似,故也被称为函数的泛逼近器(universal function approximator)。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

模式识别技术

模式识别(英语:Pattern recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。 我们把环境与客体统称为“模式”。 随着计算机技术的发展,人类有可能研究复杂的信息处理过程。 信息处理过程的一个重要形式是生命体对环境及客体的识别。其概念与数据挖掘、机器学习类似。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

暂无评论
暂无评论~