Waymo首次公布技术细节

资讯 5年前
1.55K
Waymo首次公布技术细节

虽然Waymo已经在美国当地时间12月5日宣布正式商用,但是外界对Waymo的技术细节知之甚少。Waymo也很清楚这种信息差异会让外界对其技术信心不足。这是Waymo需要改变的地方——公布更多技术细节,提高公众信心。

在美国当地时间12月11日,Waymo在其官方博客上首次对外发布了部分技术细节——如何用名为“ChauffeurNet”的深度循环神经网络【recurrent neural network (RNN) 】来打造世界上最有经验的司机。

Waymo要打造的最有经验的机器人司机像任何一个优秀司机一样,需要通过识别周围的物体,从而感知和理解周围的世界,并预测它们下一步的行为,然后在遵守交通规则的前提下安全驾驶。

近年来,用大量标记数据对深层神经网络进行监督训练,在很多领域得到了应用,特别是在感知和预测领域,可以迅速提高技术水平,Waymo在这方面也有广泛的应用。

随着神经网络在感知领域的成功,接来下的想法就是,Waymo已经拥有了超过1000万英里的自动驾驶数据,是否可以使用纯粹的监督的深度学习方法来训练出最有经验的司机呢?

因此,数据专家创建了一个神经网络,不仅能模拟开车,在具有挑战性的情形下,还足以驱动一辆真正的车进行测试。但是,简单的模仿大量的“好司机”的驾驶习惯,并不能创造出一种功能强大、可靠的自动驾驶技术。

相反,Waymo发现从良好的感知和控制中引导简化学习任务是有价值的,同时,除了模仿“好司机”的驾驶习惯,还要模仿“坏司机”不良驾驶行为,用额外的不良驾驶行为来训练出更好的驾驶行为。

1、创建ChauffeurNet

为了通过模仿“好司机”来驾驶,Waymo创建了一个名为“ChauffeurNet”的深度循环神经网络(RNN),该网络通过观察场景的中层表示作为输入来发出驾驶轨迹。中间层的表示不直接使用原始的传感器数据,从而分解出感知任务,并允许结合真实和模拟数据,以便更容易地进行学习。

如下图所示,这个输入表示由一个自顶向下(鸟瞰)的环境视图组成,该视图包含诸如地图、周围对象、交通灯状态、汽车轨迹信息。该网络还提供了一条谷歌地图风格的路线,指引车辆到达目的地。

ChauffeurNet在每次迭代中输出未来驱动轨迹上的一个点,同时将预测的点写到内存中,该内存将在下一次迭代中使用。从这个意义上说,RNN不是传统的,因为内存模型是地精心设计的。ChauffeurNet的轨迹输出由10个未来点组成,然后被提供给一个低级控制器,该控制器将其转换为控制指令,如转向和加速,使其能够驾驶汽车。

此外,还使用了一个单独的“PerceptionRNN”头,它迭代地预测环境中其他移动对象的未来,并且这个网络与预测软件驾驶的RNN共享特性。未来的一种可能性是,在选择我们自己的驾驶轨迹的同时,预测其他因素的反应,这一过程会发生更深层次的交叉。

驱动模型的呈现输入和输出

从左到右:路标、红绿灯、限速和路线。从左到右的底部行:当前代理框、动态框、过去代理位姿和输出未来代理位姿。

ChauffeurNet有两个内部部分:FeatureNet和AgentRNN

AgentRNN消耗一个图像的呈现过去代理姿势,一组特性计算卷积网络“FeatureNet”呈现的输入,与最后一剂盒渲染图像,一个外显记忆呈现的预测未来的代理对预测未来代理构成和自顶向下的鸟瞰图图。这些预测用于更新AgentRNN的输入,以便预测下一个时间步骤。

2、模仿“好司机”

Waymo用相当于60天“好司机”驾驶数据的例子对模型进行了训练,同时加入了训练技术,以确保网络不会简单地继续从过去的运动中推断,而是对环境做出正确的反应。

正如许多人在我们之前发现的,包括上世纪80年代的阿尔文项目(ALVINN Project),纯粹模仿“好司机”给出的模型,只要情况不太偏离培训中看到的情况,模型就能平稳运行。

该模型学会了对诸如停车标志和交通灯等交通管制作出适当的反应。然而,会有偏差,例如对轨迹引入扰动或将其置于接近碰撞的情况下,会导致其表现不佳,因为即使在使用大量数据进行训练时,它也可能从未在训练过程中看到过这些确切的情况。

经过纯模仿学习训练的Agent被困在一辆停着的车辆后面

在沿着弯曲的道路行驶时无法从偏离的轨迹中恢复

上述两幅动图备注:蓝绿色的路径表示输入路径,黄色的框表示场景中的动态对象,绿色的框表示Agent,蓝色的点表示Agent的过去位置,绿色的点表示预测的未来位置。

3 、“合成坏司机”

从真实世界的驾驶中获得的“好司机”驾驶行为中,通常只包含在良好情况下驾驶的例子,因为出于明显的原因,我们不希望我们的“好司机”驾驶陷入近碰撞或爬坡限制,只是为了向神经网络展示如何在这些情况下恢复。

为了训练网络走出困境,模拟或综合合适的训练数据是有意义的。一种简单的方法是加入一些例子,在这些例子中,我们干扰了“好司机”实际的驾驶轨迹。这种扰动使得轨迹的起点和终点保持不变,偏离主要发生在中间。这教会神经网络如何从干扰中恢复。

不仅如此,这些扰动还会产生与其他物体或道路限制物发生合成碰撞的例子,我们通过增加阻止此类碰撞的显式损失来教会网络避免这些碰撞。这些损失使我们能够利用领域知识来指导学习在新的情况下更好地泛化。

通过将当前Agent位置(红点)从lane center拉出,然后拟合一个新的平滑轨迹,使agent沿lane center回到原来的目标位置,从而对轨迹进行扰动。这项工作演示了一种使用合成数据的方法。除了我们的方法之外,还可以对高度交互或罕见情况进行广泛的模拟,同时使用强化学习(RL)调整驱动策略。

然而,做RL需要我们精确地模拟环境中其他道路参与者的真实行为,包括其他车辆、行人和骑自行车的人。由于这个原因,我们在当前的工作中专注于一种纯粹的监督学习方法,记住我们的模型可以用来创建自然行为的“智能代理”来引导RL。

© 版权声明

相关文章