CVPR论文 | 电游这样玩,还能发明自动驾驶AI新范式

视觉一直是人类最主要的信息来源,研究表明,人类获取外界信息75%依靠视觉系统,而在驾驶汽车时,这一比例甚至高达90%。对于想要代替人类司机的自动驾驶技术来说,也是同样。视觉对人类来说是天生的,可是要达到人类等级的视觉能力,计算机智能必须克服许多重大挑战,其中之一便是对图像的深入理解,包括在障碍监测和道路监测等任务中。

现在,自动驾驶技术已成为最火热的领域之一,竞争者包括谷歌等AI技术巨头、汽车制造商以及硬件技术领军人物。今年6月,芯片巨头英特尔收购了机器视觉公司 Itseez,并由此进军自动驾驶市场。昨天,在年度机器视觉大会(CVPR)上,来自普林斯顿大学的学者进行了一项尖端技术演示。目前自动驾驶的视觉系统主要使用两种范式,在演示中普林学者们提出了一种新范式,建立了一种简洁而完整的环境表征,并在电子游戏 TORCS 和真实世界视频中,都证明了新范式的优越性。在此,我们为大家分享名为《深度驾驶:自动驾驶中的学习可供性》的论文全文。

概况

如今,基于视觉的自动驾驶系统有两个主要范式:间接知觉方法,解析整个画面来进行驾驶决策;以及行为反射方法,通过一个回归量,直接将输入画面与驾驶行为匹配。这篇论文中,我们提出第三种范式:一种直接的知觉方法,来评估驾驶的可供性。我们提出将一个输入图像与少量关键知觉指标匹配起来,这些指标直接指向驾驶中道路/交通状况的可供性。我们的表征为环境提供了一种简洁而完整的描述,让单一控制器可以进行自动驾驶。我们在间接知觉表征和直接的行为反射这两个极端之间找到第三种方法,我们的直接知觉表征提供了正确的抽象度。为证明这一点,我们利用了人类在电子游戏中长达12小时的驾驶记录,训练了一个深度卷积神经网络(ConvNet),并证明我们的模型在非常多样化的虚拟环境中可以良好驾驶车辆。我们还训练了一个在 KITTI 数据库上进行车辆距离估测的模型。结果显示,我们的直接知觉方法可以在真实的驾驶图像中良好地普遍应用。源代码和数据在我们的项目网站上可以供查阅。

1、简介

过去的十年中,在自动驾驶领域取得了重大进展。如今,大部分系统可以分为两个主要范式:间接的知觉方法和行为反射方法。

间接知觉方法:

这个方法包括多个子部件,识别驾驶相关的各种物体,包括车道、交通标识、红绿灯、汽车、行人等等。然后,识别结果整合入一个一致的汽车周边环境的世界表征。要控制车辆,基于 AI 的引擎在每一次决策前,会考虑进所有这些信息。由于只有一小部分监测到的信息会与驾驶相关,这种等级的全图像理解可能会给已属于“高难度动作”的自动驾驶带来不必要的额外复杂度。与其他机器人任务不同,驾驶汽车只需要操纵方向和速度,而间接知觉计算了高维度的世界表征,可能包括多余的信息。与其检测汽车的边界盒并以此估计车辆距离,为什么不简单直接地预测车辆距离?毕竟,间接知觉方法中涉及的个体子任务本身,都算是计算机视觉中的开放研究问题。虽然间接知觉是目前自动驾驶的尖端方法,大部分这些系统必须依赖于激光距离探测器、GPS、雷达和非常精确的环境地图,才能可靠地解析视野中的物体。对于一个笼统的图像理解任务,在一个相对简单的汽车控制问题中涉及太多的开放挑战,会不必要地增加系统的复杂度和成本。

行为反射方法:

这种方法直接将感官输入匹配到驾驶行为。这个概念追溯到20世纪80年代后期,Pomerleau 使用了一个神经网络,直接将图像和方向盘角度匹配起来。为了学会这种模型,一个人类在路上驾驶车辆,而系统记录图像和方向盘角度作为训练数据。虽然这个概念非常优雅,出于以下几个原因,它要解决交通和复杂的驾驶操作还是有困难的:第一,对于其他路上的车辆,即便是输入图像非常相似,不同的人类驾驶员可能做出完全不同的驾驶决定,这导致了在训练回归量时得使用一个错误建构的问题。举个例子,当前面有车辆时,驾驶员可以选择跟着车辆、从左边超过车辆或者从右边超过车辆。当训练数据中存在几乎一样的图像,却出现这些不同的情况时,机器学习模型会很难决定到底该怎么做。第二,行为反射的决策级别太低。直接的配对看不到大局环境。举个例子,从模型的角度来看,要超过前面的汽车然后回到自己的车道中,只是在某一个时间段进行一系列非常低等级的决策:将方向盘稍稍偏向某个方向,然后,再转回另一个方向。这种抽象度不能体现真正发生了什么,没必要地增加了任务的难度。最后,因为模型输入的是整个图像,学习算法必须决定图像的哪些部分是相关的。但是,训练行为反射模型的监督等级,即方向盘角度,可能太弱了,没法强制算法学会这种关键信息。

我们渴望有一种表征可以直接预测驾驶行为的可供性,而不是视觉上解析整个图像,或者盲目地将图像与方向盘角度匹配起来。这篇论文中,我们提出一种自动驾驶的直接知觉方法——在间接知觉与行为反射之间的第三类范式。我们提出学习将图像与多个有意义的路况可供性指标匹配起来,包括车辆相对于道路的角度、与车道标记线之间的距离以及与目前车道和隔壁车道中车辆的距离。用这种简约但是有意义的可供性表征作为感知输出,我们证明了一个非常简单的控制器可以进行高等级的驾驶决策,并顺利驾驶车辆。

我们的模型是基于尖端的深度卷积神经网络(ConvNet)框架,自动化学习图像特征,从而估计与自动驾驶有关的可供性。为了打造我们的训练库,我们请一个人类驾驶员玩了12个小时的赛车电子游戏 TORCS,同时记录屏幕画面和相应的标签。我们的模型与我们设计的简单控制器一起,可以为可供性指标进行有意义的预测,并在游戏中不同的车道内、在不同的交通情况和车道配置中自动驾驶车辆。同时,它比典型的间接感知方法享有更简单的结构。我们还在车辆众多的智能手机视频和 KITTI 数据库上测试了我们的系统,并证明了良好的真实世界感知。我们直接的感知方法为自动驾驶中的环境理解,提供了一个简约的、针对具体任务的可供性描述。

图2:留个驾驶员角度的驾车情景。浅灰色标记的车道为监测用作驾驶决策的车道。

1.1. 相关研究

行业中大部分自动驾驶系统是基于间接感知方法。在计算机视觉中,研究人员分别研究了每一个任务。车辆检测和车道监测是自动驾驶系统中的两个关键元素。典型的算法在监测到车辆的时候输出边界盒,监测车道标记的时候输出样条曲线。但是,这些边界盒和样条曲线不是我们用来驾驶的直接可供性信息。因此,必须有一个转化,这可能带来额外的噪音。典型的车道监测算法会受到错误监测的困扰,例如 Aly 提出的算法。带有严格边界的结构——例如高速公路护栏或者沥青表面裂痕——有可能被误认为是车道标记。即便是好的车道监测结果也可能缺少车辆定位信息。举个例子,由于通常只能可靠监测到两个车道标记,在两车道道路上可能很难确定车辆到底在左边、还是右边的车道上驾驶。

要将不同的来源整合到一个统一的世界表征中,Geiger 等人和 Zhang 等人的研究提出了一种概率生成模型,将各种检测结果作为输入,并输出十字路口的布局和路况细节。

对于行为反射方法,Pomerleau 的两项研究意义巨大,其中使用了一个神经网络将图像和方向盘角度直接匹配起来。较新的研究中,Koutnik 等人使用增强学习方法训练了一个大的循环神经网络。网络的功能与 Pomerleau 相同,将图像和方向盘角度直接匹配,目标是让车辆保持在路线上。与我们的研究相同,他们也使用视频游戏 TORCS 用于训练和测试。

图3:我们可供性表征的绘图。改变车道的操作需要穿过“车道内系统”和“标记上系统”。(f) 展现了标记处的重叠区域,让顺畅转换成为可能。

就自动驾驶的深度学习来说,Muller 等人的研究是一个基于 ConvNet 的行为反射方法的成功案例。他们提出一个越野驾驶机器人 DAVE,学会将图像和人类司机的方向盘角度匹配起来。训练后,机器人显示了避免障碍的能力。Hadsell 提出了一个越野驾驶机器人,针对长距离视野具有自我监督学习能力。在他们的系统中,一个多层卷积网络用来将图像部分分类,判断是否是可以穿过的区域。对于深度匹配估测,DeepFlow 使用 ConvNet 来在 KITTI 数据库上的驾驶环境图像里实现非常好的结果。对于图像特征,深度学习相比于手动功能还显示出了显著的提升,例如 GIST。在我们的实验中,我们会用驾驶情景中的直接知觉,比较习得的 ConvNet 特征和 GIST。

2、学习驾驶知觉的可供性

为了有效实施和测试我们的方法,我们使用开源驾驶游戏 TORCS (开放赛车模拟器),这在 AI 研究中有广泛使用。对于游戏引擎,我们可以收集驾驶的关键指标,例如主车辆的速度、与道路中线的相对位置、与前方车辆的距离。在训练阶段,我们在游戏中手动驾驶一个“收集标签的车辆”来收集屏幕截图(第一人称驾驶画面)以及选中可供性指标的相应地面实况值。这个数据存储起来,用来训练模型,以监督学习的方式估测可供性。在测试阶段的每一个时间步,训练模型从游戏中获取一个驾驶画面,估测驾驶的可供性指标。一个驾驶控制器处理指标并计算方向和加速/刹车指令。驾驶指令然后发送回游戏中,来驾驶主车辆。地面实况标签也在测试阶段收集起来,评估系统的性能。在训练和测试阶段中,一系列预先编程的 AI 车辆放上路面,由此进行交通流量布局。

2.1. 匹配图像和可供性

我们使用尖端的深度学习 ConvNet 作为我们直接知觉模型,来将图像匹配到可供性指标。在这篇论文中,我们专注于多车道高速驾驶。从驾车的第一人称视角来看,主车辆在决策时只需要留意目前车道的路况和邻近两条(左/右)车道的路况。因此,我们只需要将这三条车道建模。我们训练一个单一的 ConvNet 一次性处理三条车道的配置:一条有一个、二个或三个车道的道路。图2中展示了我们通常应对的情况。偶尔有时,车子必须得在车道标记线上行驶,这种情况中只有标记线两侧的车道需要注意,正如在图2e 和图2f 中显示。

高速驾驶行为可以分为两种主要类型:1)遵循车道中心线;2)改变车道,或者减速,从而避免与前车碰撞。为了实现这些行动,我们定义我们的系统在两个坐标系下有两套表征:“车道内系统“和“在标记线上系统”。为实现两个主要功能——车道感知和车辆感知——我们提出三种指标来表征驾驶情况:驾驶方向、与附近车道标记线距离和与前方车辆距离。我们一共提出了13个可供性指标作为我们的驾驶情景表征,在图表3中显示。图表4中列举了我们可供性指标的完整列表。它们是 ConvNet 作为我们可供性估测的输出,同时作为驾驶控制器的输入。

“车道内系统”和“在标记线上系统”在不同的情况下处于活跃状态。为了实现顺畅的转换,我们定义了一个重叠区域,其中两个系统都是活跃的。具体布置显示在图表3(f) 中。

除了驾驶方向,所有指标可能输出不活跃的状态。有两种情况下指标会不活跃:1)当车辆在“车道内系统”和“在标记线上系统”其中之一行驶,且另一个系统被关闭,那么所有属于那个系统的指标都是不活跃的;2)当车辆在边界车道行驶(最左或者最右的车道),这时没有左侧或者右侧车道,那么对应那个不存在的的邻近车道的指标是不活跃的。根据指标的值和是否活跃的状态,主车辆可以在道路上精确定位。

图4:我们直接感知表征中的可供性指标完整列表。

2.2. 匹配可供性和行为

方向盘控制是使用汽车的位置和姿势计算的,目标是最小化车辆目前位置和车道中心线之间的间隙。定义 dist_center 为到车道中心线的距离,我们有

steerCmd = C * ( angle - dist_center / road_width ) (1)

其中 C 是在不同驾驶情况下变化的系数,angle ∈ [ -π,π ]。当车辆改变车道,中心线就从目前车道改为目标车道的中心线。描述驾驶控制器逻辑的虚拟程序代码在图5中。

图5:控制器逻辑。

在每一个时间步,系统计算 desired_speed。控制器通过控制加速或刹车,让实际速度符合 desired_speed。基准 desired_speed 是72 km/h。如果车辆转弯,desired_speed 的减速根据过去几个方向盘的角度来计算。如果前方近距离有车辆,减速的决策发出,desired_speed 也根据与前方车辆的距离而决定。为实现这种情况下的跟车行为,我们通过以下模型实现最优跟车速率:

其中 dist(t) 是与前方车辆的距离,vmax 是可允许的最高速度,c 和 d 是要校准的系数。有了这项实施方式,主车辆可以在许多速度中实现稳定和顺畅的跟车,有需要时甚至可以完全停止。

3. 实施

我们的直接感知 ConvNet 是基于 Caffe 建造的,我们使用标准 AlexNet 架构。其中有5个卷基层,之后有4个完全联接层,其输出维度分别是4096、4096、256和13。欧氏距离损失函数用来作为损失函数。由于13个可供性指标有不同的范围,我们将其归一化至 [ 0.1, 0.9 ] 这个范围。

我们在 TORCS 中选择了7个跑道和22辆交通车辆来生成训练库,分别在图6和图7中显示。我们将 TORCS 中原本的道路表面纹理替换为定制化沥青纹理,具有超过30个不同车道配置和沥青深度等级。我们还将不同的交通车辆驾驶行为编程,创造出不同的交通流量模式。我们在每个车道上多次手动驾驶车辆,来收集训练数据。驾驶时,截屏同时缩减取样至 280 x 210,并与路面实况标签一起储存在数据库。这个数据收集过程可以通过使用一辆 AI 车来简单地进行自动化。不过,在手动驾驶时,我们可以故意创造极端的驾驶条件(e.g. 不在路面上、与其他车辆碰撞)来收集更有效的训练样本,这让 ConvNet 更加强大,并有效减少训练时间。

图6:训练使用的7个跑道例子。每一个跑道定制化为一车道、二车道或三车道的配置,并具有不同的沥青深度。其余跑道使用在测试阶段。

图7:训练使用的22架车辆例子。其余车辆使用在测试阶段。

我们一共收集了484,815个图像用来训练。训练过程与在 ImageNet 数据上训练一个 AlexNet 相似。不同之处是输入图像的像素是 280 x 120,而非正方形图像。我们不使用任何裁剪或者模拟版本。我们从零开始训练我们的模型。我们选择了初始学习率为 0.01,每一个迷你批次由64个从训练样本中随机选择的图像构成。在140,000次迭代后,我们停止了训练过程。

在测试阶段,当系统在 TORCS 中驾驶车辆时,其获取的唯一信息是前方的图像以及车辆的速度。当主车辆赶上一辆在其左侧或右侧车道的车辆时,仅仅因为系统没法看到后面的东西,它没法判断移动到这条车道是否安全。为解决这个问题,我们假设了主车辆比交通车辆更快。因此,如果超过车辆后有足够的时间(由一个计时器显示),要改道到那个车道就是安全的。我们系统中针对 TORCS 的控制频率是 10Hz,这对 80 km/h 以下的速度驾驶来说足够了。系统图解显示在图8中。

图8:系统架构。ConvNet 处理 TORCS 图像,并估测13个驾驶指标。基于指标和目前车速,一个控制器计算出驾驶指令,将发送回 TORCS 来驾驶其中的主车辆。

4、TORCS 评估

我们首先在 TORCS 驾驶游戏中评估我们的直接感知模型。游戏中,ConvNet 输出可以视觉化,并可以让控制器用来驾驶主车辆。为了测量可供性指标的估测精度,我们打造了一个测试组,由训练组中未使用的跑道和车辆组成。

在 TORCS 空中视觉化图像中(图 10a 右侧),我们将主车辆作为参照目标。由于其垂直位置是固定的,它在水平方向移动,驾驶方向由 angle 计算出。交通车辆只垂直移动。我们不将道路曲率视觉化,因此前方道路永远表征为一条直线。估测(空盒)和路面实况(实盒)都显示出来。

4.1. 定性评估

我们的系统可以在 TORCS 中良好驾驶,没有任何碰撞。在一些车道变换场景中,控制器可能轻微过冲,但是会快速恢复目标车道中间的理想位置。正如在 TORCS 视觉化图像中所示,车道感知模块非常精确,车辆感知模块可靠度高达30米远处。在30米到60米的范围内,ConvNet 输出变得噪音更多。在 280 x 210 的图像中,当交通车辆超过30米远,它其实看起来是一个非常小的点,这让网络估测距离非常困难。然而,因为主车辆的速度在我们的测试中不超过 72 km/h,30米之内的车辆感知可以保证游戏中让人满意的控制质量。

要维持顺畅驾驶,我们的系统可以容忍指标估测中少量的错误。汽车是一个连续系统,控制器持续改正自己的位置。即便是出现一些非常错误的估测,汽车仍然能够顺畅驾驶,不发生碰撞。

4.2. 与基准比较

为了定量评估基于 TORCS 的直接感知 ConvNet 的表现,我们将其与三个基准方法进行比较。在以下比较中,我们将我们的模型称为“满ConvNet”。

1)行为反射 ConvNet:

这项方法使用一个 ConvNet 直接将图像与方向盘匹配。我们在驾驶游戏 TORCS 上使用两组数据来训练这个模型:(1)训练组(超过60,000个图像)都在空白跑道驾驶中收集起来,任务是遵循跑道行驶;(2)训练组(超过80,000个图像)是在有交通车辆的情况下收集起来,任务是遵循跑道行驶、在转换车道时避免碰撞、并超过前方的慢速车。我们项目网站上的视频显示了典型的表现。对于(1),行为反射系统只要简单遵循空跑道驾驶。对于(2),在与收集训练数据的同一个跑道测试时,训练系统显示出了通过向左或向右转避免碰撞的一些能力。但是,驾驶路线是错误的。驾驶行为与正常人类司机的驾驶行为非常不同,而且无法预测——主车辆与前方车辆经常碰撞。

2)间接感知(车道监测):

我们在 TORCS 画面上运行 Caltech 车道监测器。因为只能可靠监测到两个车道,我们将前两个监测到的车道标记线的样条曲线锚定点坐标匹配到基于车道的可供性指标。我们训练一个由8个支持向量机(SVR)和6个支持向量分类(SVC)模型组成(使用 libsvm)的系统,来完成匹配(对于间接感知方法是必须的一步)。系统布局与图9所示的基于 GIST 的系统(下一个部分)相似,但是没有车辆感知。

图9:GIST 基准。使用 SVR 和 SVC 将 GIST 描述符号与13个驾驶可供性指标的匹配过程。

因为 Caltech 车道监测器是一个相对较弱的基准,为了让任务更简单,我们创造了一个特别训练组和测试组。训练组(2430个样本)和测试组(2533个样本)都从同一个跑道收集(不在 ConvNet 的7个训练跑道之中),没有交通车流,用更好的图像像素 630 x 480。我们发现,即便当用同一个跑道训练和测试的时候,基于 Caltech 的跑道监测器的系统仍比我们的模型表现更差。我们将我们的错误度量定义为可供性估测和路面实况距离之间的绝对平均误差(MAE)。两个系统错误之间的比较显示在表格1中。

表格1:针对 Caltech 车道监测器基准的测试组的绝对平均误差(角度单位为度,其余单位都为米)。

3)用 GIST 直接感知

我们将手动打造的 GIST 描述符号与在我们模型中 ConvNet 卷积层习得的深度特征进行比较。一组13个 SVR 和6个 SVC 模型经过训练,将 GIST 特征转化为我们系统中定义的13个可供性指标。过程如图9中所示。GIST 描述符号将图片分割为 4 x 4 的部分。因为由更低的 2 x 4 部分表征的地面可能与驾驶更相关,我们在实验中尝试了两种设置:(1)转化整个 GIST 描述符号,(2)转化 GIST 描述符号中较低的 2 x 4 部分。我们将这两种基准分别称为“全GIST”和“半GIST”。

由于 libsvm 的限制,如果使用包含484,815个样本的完整数据库就太过昂贵了。我们使用一个训练库的子集,包含86,564个样本用于训练。训练子集中的样本在两个双车道配置的训练跑道上收集。为了进行公平的比较,我们用同一个训练子集库训练了另一个 ConvNet,进行了80,000次迭代(被称为“ConvNet子集”)。测试库是在三个双车道配置、带有车流的测试跑道上手动驾驶车辆收集的,包含8,639个样本。

表格2:针对 GIST 基准的测试组的绝对平均误差(角度单位为度,其余单位都为米)。

结果如表格2所示。其中 dist (车距)错误是当地面实况车辆在前方 [2, 50] 米时计算的。在两米以内,邻近车道的车辆在图像中不能视觉化呈现。

表格2所示的结构显示,基于 ConvNet 的系统比基于 GIST 的系统表现好得更多。通过比较“ConvNet子集”和“满ConvNet”,很明显,更多的训练数据能有效增强基于 ConvNet 的直接感知系统的精度。

5、用真实世界数据测试

5.1. 智能手机视频

我们在用智能手机摄像头拍摄的真实驾驶视频,测试了我们基于 TORCS 的直接感知 ConvNet。虽然在两个不同的领域训练和测试,我们的系统仍显示出了较好的性能表现。尤其是车道感知模块的表现特别好。算法能够决定正确的车道配置、在正确的车道定位车辆、并识别车道转变。车辆感知模块的噪音更多一些,可能是因为 TORCS 中的车辆计算机图形模型看起来与真实车辆还是挺不同的。测试结果请参照我们项目网站上的视频。系统在真实视频上运行的截图展示在图 10b 中。因为我们没有路面实况测量,只有估测进行了视觉化。

图10:测试基于 TORCS 的系统。估测作为空盒显示,而路面实况以实盒指明。在真实视频测试时,没有地面实况,我们只能显示估测。

5.2. 在KITTI 数据库进行车距估测

为了定量分析直接感知方法在真实图像上运行如何,我们在 KITTI 数据库上训练了一个不同的 ConvNet。任务是估测前方其他车辆的距离。

KITTI 数据库包含超过40,000个立体图像对,由一辆驾驶穿越欧洲城区的车辆拍摄。每一个立体对都伴有一个 Velodyne LiDAR 3D 点云文件。大约12,000个立体对带有附近车辆位置的正式 3D 标签,因此我们可以很容易抽取图像中与其他车辆的位置。基于 KITTI 的 ConvNet 设置是从先前基于 TORCS 的 ConvNet 转变而来。在大部分 KITTI 图像上根本没有任何车道标记,因此我们不能定位车辆在哪一条车道行驶。对于每个图像,我们在零高度平面上定义一个2D 坐标系统:原点是主车辆的中心,y 轴是沿着主车辆的驾驶方向,x 轴是指向主车辆的右方(图11a)。我们让 ConvNet 估测系统中主车辆“前方”车辆的坐标。

在一个典型的 KITTI 图像中可以有很多车辆,但是只有那些与主车辆最近的才对驾驶决策有重要意义。因此,没必要监测所有的车辆。我们将主车辆前方的空间根据 x 轴分为3个区域:1)中央区域,x ∈ [ -1.6, 1.6 ] 米,其中车辆在主车辆的直接正前方。2)左侧区域,x ∈ [ -12, 1.6 ) 米,其中车辆在主车辆的左方。3)右侧区域,x ∈ (1.6, 12 ] 米,其中车辆在主车辆的右方。我们不关心这些范围以外的车辆。我们训练 ConvNet 来估测每一个区域(图11a)中最近的车辆的坐标 ( x, y )。这样,这个 ConvNet 有6个输出。

因为输入图像的低像素,远处的车辆很难被 ConvNet 所发现。我们采用了一个双 ConvNet 结构。近距离 ConvNet 覆盖前方2-25米(在y轴),其输入是大小调整为 497 x 150 像素的整个 KITTI 图像。远距离 ConvNet 覆盖前方15-55米,其输入是一个裁剪过的 KITTI 图像,覆盖中央 497 x 150的区域。最终距离估测是这两个 ConvNet 输出的结合。我们在打造训练样本时,大部分是从有正式标签的 KITTI 图像中来,有一些额外的样本是我们自己标签。最终数量是大约14,000个立体对。这还是不足以成功训练 ConvNet。我们通过使用左侧摄像头和右侧摄像头的图像,来增强数据库,并增加不包含任何车辆的反面样本。我们最终的训练组包含61,894个图像。两个 ConvNet 都用这组数据训练,进行了50,000次迭代。我们另外给2,200个图像做了标签,作为测试组,我们会用来计算数字估算错误。

5.3. 与基于 DPM 的基准比较

我们将我们基于 KITTI 的 ConvNet 与顶尖的 DPM 车辆检测器(一种间接感知方法)进行比较。DPM 汽车监测器是由 Geiger 等人的研究提供,并为 KITTI 数据库最优化。我们将监测器在全像素图像上运行,并通过使用校准的摄像模型,将下方边界的中点投射到地平面(零高度),从而将边界盒转化为距离测量。由于地平面是平的,投射非常精确,对于大部分 KITTI 图像都是这样。DPM 可以监测到图像中的多个车辆,我们可以选择最近的车辆(主车辆的左侧一辆、右侧一辆、直接正前方一辆)来计算估测错误。由于图像是在主车辆驾驶中拍摄的,许多图像中最近的车辆只在左下角或右下角部分出现。DPM 不能监测到这些部分车辆,而 ConvNet 可以更好地处理这些情况。为了让比较更加公平,我们只计算最近的车辆完全显示在图像中的错误。当交通流量车辆在前方50米以内(在 y 坐标上)出现时我们计算错误。当没有车辆的时候,地面实况设置为50米。这样,如果任何一个模型出现误报都会被惩罚。表格3显示 x 轴和 y 轴的 MAE、以及汽车位置的估测和路面实况之间的欧式距离 d。图11b 显示了一个系统截图。

图11:KITTI 数据库上的车辆距离估测。(a)坐标系统根据主车辆定义。我们将空间分割为3个区域,目标是估测每一区域中最近车辆的坐标。(b)我们将我们的直接感知方法与基于 DPM 的间接感知相比较。KITTI 图像的中央裁剪部分(左上图像中的黄色盒子所示,显示在坐下图像)发送至远距离 ConvNet。DPM 的边界盒输出,以及其在 LiDAR 视觉化(右侧)距离投射,显示在红色部分。ConvNet 输出和路面实况分别由绿色和黑色盒子表征。

表格3:KITTI 测试组上的MAE(单位为米)。错误计算是通过惩罚(1-3栏)及不惩罚误报(4-6栏)。

从表格3中我们看到,我们的直接感知 ConvNet 与顶尖的间接感知基准有类似的性能体现。由于 KITTI 数据库上密集杂乱的车流以及有限的训练样本,我们的 ConvNet 在一些测试样本中有稍稍较多的误报。如果我们不惩罚误报,ConvNet 比 DPM 基准的错误更少,这意味着其对于真实车辆的直接距离估测比基于 DPM 的方法更加精准。从我们的经验中来看,简单地加入更多训练样本就能减少误报问题。注意,DPM 基准需要一个平整的地平线用于投射。如果主车辆在不平整的道理驾驶(例如小山),投射会引入非常大量的错误。我们还尝试打造 SVR 回归模型,将 DPM 边界盒输出与距离测量匹配。但是最后,回归量远没有投射精准。

6、视觉化

要理解 ConvNet 神经元如何对输入图像进行回应,我们可以将激活模式视觉化。在一个由21,100个样本的图像数据库上,针对第一个完全联接层中的4,096个神经元中的每一个,我们从数据库中选出100个最能激活神经元的图像,并将其平均,获得这个神经元的激活模式。这样,我们了解了这个神经元从训练中学到了什么。图12显示了一些随机选择的平均图像。我们观察到,神经元的激活模式与主车辆的驾驶方向、车道标记的位置以及交通流量车辆有很强关联性。因此,我们相信 ConvNet 已经发展出了针对具体任务的特征。

图12:神经元的激活模式。激活模式显示出与主车辆的驾驶方向、车道标记的位置和交通流量车辆有很强关联性。

对于 ConvNet 中的某一卷积层,可以通过以像素单位展示所有过滤回应中的最高值,来生成一个回应地图。因为初始输入图像中的物品位置信息保存在回应地图中的,我们可以知道对 ConvNet 来说,在进行可供性指标估测时图像的异常区域在哪里。我们在图13中显示在 KITTI 测试图像的样本上,近距离 ConvNet 的第4个卷积层的回应地图。我们观察到,ConvNet 对附近车辆的位置有很强反应,这意味着它学会了在估测距离时“看”这些车子。我们在同一个图表中还显示了我们基于 TORCS 的 ConvNet 的一些回应地图。这个 ConvNet 对车道标记有很强的反应。

图13:我们基于 KITTI(1-3行)和 TORCS(4-5行)的 ConvNet 的回应地图。ConvNet 对附近车辆和撤掉标记有很强的反应。

7、结论

这篇论文中,我们基于直接感知,提出了一种新的自动驾驶范式。我们的表征利用一个深度 ConvNet 架构来估测驾驶行为的可供性,而非解析整个图像(间接感知方法),或者盲目地将一个图像与驾驶指令直接匹配起来(行为反射方法)。实验显示,我们方法的性能表现在虚拟和真实环境中都更加出色。

via CVPR & 普林斯顿大学

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2016-06-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏州的先生

想买低价股?看看利用Python对A股低价股的一些数据分析!

1093
来自专栏机器之心

纵览轻量化卷积神经网络:SqueezeNet、MobileNet、ShuffleNet、Xception

4174
来自专栏计算机视觉life

【深度相机系列二】深度相机原理揭秘--飞行时间(TOF)

深度相机按照深度测量原理不同,一般分为:飞行时间法、结构光法、双目立体视觉法。本文就来说一说飞行时间法。 飞行时间是从Time of Flight直译过来...

33110
来自专栏龙行天下CSIEM

科学瞎想系列之六十一 说说噪声

上节课老师说了振动,振动和噪声是不可分割的孪生兄弟,振动在介质中传播就形成声波,声波传到宝宝们的耳朵里就形成了噪声(也有说噪音的)。今天老师就给宝宝们说说噪...

2824
来自专栏思影科技

失匹配负波可以预测临床精神病高风险人群的预后改善

研究表明,失匹配负波(MMN)幅度或可作为生物标记,用于预测临床精神病高风险人群的预后状况。其中,高风险--症状未缓解的被试MMN幅度显著偏低。该文由韩国首尔国...

3335
来自专栏华章科技

干货丨从诸葛亮“草船借箭”看大数据“数据建模”

建模里的“模”是指模型。使材料成为一定形状的工具,就属于“模型”,这些模型看得见摸得着,叫做“具象模型”。但是也有些模型看不见摸不着,属于“抽象模型”,数据模型...

793
来自专栏CreateAMind

【前沿跟进】Google, OpenAI提出层次强化学习新思路

331
来自专栏CDA数据分析师

详细解读如何构建专家诊病模型

文章来自思迈特,CDA获授权转载 ? 专家系统是典型的大数据和人工智能结合的计算机程序系统,其内部含有大量的某个领域专家水平的知识与经验,能够利用人类专家的知识...

1947
来自专栏新智元

重磅 | 经典教材 R. Sutton《增强学习导论》最新版(548PDF)

2372
来自专栏机器学习算法与理论

智慧医疗终端应用模型与仿真系统设计

摘要:为进一步整合开放医疗数据和社会其他资源,本文提出了一套数据利用方案。以无锡市局部路网为原型,构建了一基于互联网+医疗的用户终端应用模型。该模型包括路径寻优...

36810

扫描关注云+社区