ASP站长网今天,我们来了解一下谷歌的自动驾驶汽车Waymo是怎么做的。
Waymo在超过25个城市的公共道路上行驶了超过2000万英里。他们还在模拟环境中行驶了数百亿英里(文章后面会介绍)。此外,Waymo正在美国经营出租车服务,真正地在没有司机的情况下运送乘客。
由于Waymo的快速增长,下午将深入介绍Waymo的技术,以便您了解这个巨头背后的实际情况。
与其他自动驾驶汽车一样,Waymo通过4个主要步骤来实施:感知(perception)、定位(localization)、规划(planning)和控制(control)。
这篇文章中,不讨论控制相关的内容。对于Waymo来说,预测(这是规划的一部分)是另一个核心支柱,文中将单独介绍。
我们首先从感知开始
感知
大多数机器人系统的核心组件是感知任务。在Waymo的案例中,感知包括对障碍物的估计和自动驾驶汽车的定位。
传感器和任务
Waymo的感知系统使用了摄像头、激光雷达和雷达的组合。由于Waymo的大部分工作都是使用4个LiDAR完成的,可以将其视为与特斯拉完全相反的系统。
以下是Waymo自动驾驶复杂任务的视图——只是为了让您了解其计算机视觉系统需要感知的所有事物。
如您所见,对障碍物的信息水平要求非常高:
汽车被分类为常规汽车、警车、救护车、消防车和校车。
如果遇到特种车辆,系统可以观察警报器和灯光并根据此进行操作。
每个检测到的障碍物都有一个状态:移动、停车等
如您所见,感知系统会考虑“状态”并将其提供给预测系统。
然而,这种感知系统很快就会遇到一些特别棘手的情况。下面是一个例子:
反射问题
上面的反射问题远不是唯一的棘手问题。再如:人们可以伪装,躺在卡车车顶上,带着STOP标志走路等。我们可能会想象出更多的边缘情况,我们应该了解系统可能遇到的问题。
Waymo笔记:
但是,在过去几年中,上述许多问题都得到了解决。
由于激光雷达,反射问题可以得到解决。反射不会出现在激光雷达中;只有点云显示了真正障碍物的形状(这里是一辆公共汽车)。了解更多的激光雷达信息。
由于地图,“带有停车标志人”的问题已得到解决。第一步是检测STOP标志;第二步将这些信息与地图和先验知识相匹配。每当Waymo检测到一个标志时,将会查询“地图在这里是否包含STOP标志?如果没有,是否正在施工?如果没有,就没有理由停下来!”
架构
最近在讨论Tesla计算机视觉架构时,我探索了HydraNet 架构。它是一种旨在同时运行多个神经网络的架构。“Hydra”这个词意味着一个有多个头的系统。
Waymo没有谈论HydraNets,但有一些关于其视觉系统的事情。
第一件可能会让你感到惊讶的事是,Waymo的架构并不是固定的,而是估计的。
这是一个神经网络架构搜索(NAS)单元。
这是类似于ResNet的大型神经网络中的构建块。这种想法已经在AutoML中采用了。AutoML的思想是神经网络架构必须由算法估计。
这些架构是使用NAS单元构建的,最佳组合获胜。
测试10,000个架构,预选100个模型,然后选出1个最终获胜者。获胜的标准是准确性和推理成本。
数据集和模型
Google正在使用一种称为主动学习的过程。
主动学习的思想如下:
对于每条未标记的数据,将其发送给模型进行预测。
如果模型对其预测非常确定,我们得到一个自动标签。
如果不确定,则将数据发送给人工标注员。这样,人工标注员只标注难例数据,其余的都是自动标注。
有关主动学习的更多信息。
Waymo使用主动学习来训练模型,利用TPU(Tensor Processing Units)和谷歌的深度学习框架TensorFlow。
与特斯拉类似,这是一个闭环。