Thursday, August 17, 2017

Drive.ai 的自动驾驶技术研发

雨中的传感器(本文接续前文介绍初创公司Drive.ai,从深度学习角度来研发自动驾驶。)

Drive所设计的四辆自动驾驶汽车,在硬件上对大多数车辆了作最小程度的改装。这些改装集中在:在车顶安装各种传感器,包括摄像机和激光雷达。他们研发的自驾系统利用了汽车本身已有的传感器,例如雷达(用于自动巡航定速),后方摄像头,还有一个显示屏幕,Drive打算用来与司机沟通、与行人沟通。

每一部Drive的车辆都有一套九部高清摄像头、两台雷达、六台Velodyne Puck激光雷达传感器,不断地捕捉数据,生成地图,为深度学习的算法输入,当然也是为了驾驶任务本身。目前这些传感器捕捉和输出大量数据,既复杂、又昂贵,但正如Drive的一个创始人Joel Pazhayampallil所解释的,大多的数据几乎肯定是多余的,当进入试点项目阶段时要削减:“我想我们只需要其中一部分、大概相当于现在一半的数据。我们的算法是不断改进的,我们从不同的传感器数据中提取和综合数据的能力越来越强。我们从激光雷达得到一些低分辨率的景深数据,再从摄像机得到相当高分辨率的路况信息。"

这种融合多模式的冗余的数据的方法,借着对传感器数据的深度学习来作决策,在自动驾驶的情况下具有特别的优势。因为深度学习的算法能够明确地用缺失了传感器模块的数据加以训练,这就为传感器故障提供了一些保护。在此,深度学习的方法比基于规则的方法强多了,因为传感器故障引起的规则执行失误是“灾难性的” ,按Pazhayampallil的说法。而传感器故障通常不是因为硬件或软件出问题,而是因为某些原因,像刺眼的强光反射、黑夜、或(更常见的)雨水等等,传感器没有得到好的数据。



对发展自动驾驶车辆,在雨中驾驶是个挑战,不光是因为水吸收了激光雷达的能量,也不光是路面有反射。从上面的视频你看不出来,但Drive给我们看从车顶摄像头进来的视频图像,因为镜头上的大水滴,变得几乎没有用了。Tandan说,“你如果在更困难、更复杂的路况驾驶,就需要能够处理摄像头的数据故障,处理激光雷达器和雷达的故障,以及应付现实世界中遇到的一切故障。”

路试

Drive的技术项目经理Tory Smith为我们作了自动驾驶的演示。可惜我们错过了一个月中加州所有的恶劣天气,实际出去的时候是比较干燥晴朗(有些多云)的,适合自动驾驶车辆。Drive的目标是制造4级全自动驾驶汽车,但按照目前加州法律,公司正在测试2级自动驾驶技术。尽管这辆车能够执行大部分的自驾任务(即使不是全部),2级驾驶要求有一位司机坐在司机座位上,随时准备接手驾驶。所以我们有Drive的一位自动驾驶车辆操作员Leilani Abenoja专注看路,而Smith则和我谈论车辆的运行。

20分钟乘车经过加州Mountain View市郊区域,路上经过16个十字路口,和一个四路停车的路口。总的来说,这辆车行驶平稳,成功胜任,只是比起一般司机,果断性稍微差了一点。Smith说这是有意的。 “我们必须设计比较宽的可接受性。你很难做到让一辆车既果断,又不至于让乘客感到紧张。我们总要让车辆的操作多一些谨慎,宁愿让乘客觉得无聊,而不是让他们感到紧张。

就我们的演示来说,这个目的是达到了。实际上,一个无聊的乘车体验正是你想要的安全可靠的自动驾驶汽车。我们只遇到一个例外,安全司机Abenoja必须断开自动驾驶系统,接手一下。虽然我们没有遇到什么车祸的危险,这个例外为Drive的自动驾驶研制提供了最佳的说明。

当时我们在一个红灯前停留,等候右转弯进入一条主要街道。在加州,红灯下右转弯是合法的,但Drive一般不把车设置为自动右转,因为传感器是有限制的。Smith解释说,“我们的激光雷达传感器只能可靠地看到大约50到75米远,这种道路的车流速度比较快,你没有充分的把握检测车流,并确定进入哪一条车道。” 所以当信号灯变绿时,我们的车子(按照交通规则)右转弯进入最右边的车道。但有一辆卡车刚好停靠到路边,挡住了我们转入的车道。我们的安全司机于是临时接管,绕过了那辆卡车,然后重新交给自动驾驶系统。

Smith告诉我说, “一般按规则,我们的车辆会等候这辆卡车离开。但在路径规划方面,让车辆对障碍物作这样的临时补偿决定,是我们现正致力于建造的能力。” 这个例子不只是让车子规划进入哪一条车道的问题。如果那辆卡车正在移动,选择最右边的车道并等候它就是正确的决定,否则你就需要绕过去。如果你是自动驾驶车,你怎么知道一辆停靠的卡车是否可能会再次移动?也许你会判断卡车的发动机是否关掉,或看它的指示灯是否发出信号,或辨别卡车周围的一些活动。这些都是人会本能去做的事,但一部自动驾驶车辆必须明确受训练,才能知道寻找什么迹象,以及作出什么行动反应。

Smith说,人在准确操作方面未必能够完美,但人非常善于随机应变,妥善处理各种可能的情况。像我们刚刚看到的不确定路况,正是一般的机器人方法失灵的地方。我们用深入学习的方法来开发,优点就是遇到了这种路况,只需要收集数据,作出注释,然后将这个模块建构到我们车辆深入学习的大脑中,以后再遇到这样的路况,系统就能够自动作出正确的补偿决定了。比起加添规则来处理路况,这是个比较直觉的方式来解决问题。加添规则要求你预料到一切可能的路况,总有不周全的时候。

这个例子中必须断开自动驾驶系统的时刻,对于Drive的深度学习来说是最宝贵的。公司目前正在积极在硅谷寻找具有挑战性的测试路线,进行大量的路试和深度学习系统的培训。硅谷地区的这些路试即使对于人员驾驶也可能有压力。Drive的策略是:一旦车辆可以安全可靠地在一条路线上行车·,而不必断开自驾系统,该测试团队就选择一条新的路线,得到不同的深度学习挑战。由于公司可以高效地对新数据进行注释和训练,预计新的地形路况能够更快地被征服。

像人一样驾驶

在演示结束时,Smith问我这车的自驾能力是否比起我体验过的其它的无人驾驶车辆更加“像人一样“。我可不敢胡乱比较,于是我问Smith从技术角度解释,什么是自动驾驶车辆表现得“像人一样”?是车辆行为呢,还是识别判断能力?

Smith给我举了一个例子,说明Drive如何检测到交通信号灯。目前检测信号灯的普遍方法是,从预先测绘好的详细地图上,标示出每个十字路口,准确地告诉摄像头在各处看什么。对于封闭的系统,你可以用这种强硬指令,但你若尝试扩展自动驾驶范围,比如整个城镇,就不行了。Drive的做法却是收集不同路口交通信号的通用数据,从不同的角度,白天黑夜、下雨下雪大雾天气,来注释交通信号路口,把注释的数据输入Drive的深度学习算法,让自动驾驶系统学习辨认路口的交通信号灯,就像人一样。Smith解释说:

“另一件很棒的事情是,我们能够利用整个交通路况图像,而不只是利用信号灯本身的资讯。比如,作为一个司机,有时你在绿灯亮起的时候开始走车,未必是因为你在看交通灯,而是你看到别的车辆开始移动。我们的注释工具和人工注释员会考虑这样的因素:也许他们看不见所有的信号灯,但是看到旁边的车辆都移动,所以判断很可能是绿灯亮了。于是,系统实际上积累了足够的人一样的智慧,甚至比人还准确,这就非常令人兴奋。而且,我们能够扩展这套人工智能,让深度学习的其它部分也照此办理。

去到真实的世界中

无论算好事还是坏事,在短期内,Drive公司向第4级的全自动驾驶(在特定区域和条件下没有安全司机)的快速进展,很可能要看政府对有关的交通安全法规的进展。但Sameep Tandon对自动驾驶技术的发展至少是非常乐观。今年我们正和一些客户搞试点。在接下来的六个月,我们希望能够部署--不是很大规模,但至少让多一些人能够使用自动驾驶车辆。我相信在一定区域内,我们可以在一两年内做到没有安全司机的营运。最终的问题是,我们能够多快地从硅谷扩展到另一个城市,之后再去到其它地方?

Drive的计划,是起初先把重点放在后勤运输上:找那些在小区域内做重复运输投递工作的企业,使他们不利用共享交通,而用Drive的自动驾驶车辆。这就给Drive很好地限定了难度,为日后的平稳扩展开辟道路,也避免和乘客打交道,至少起初如此。Tandon对未来感到兴奋: “我认为你如果有真正好的策略,配合真正好的技术,这很可能是在现实世界中首先使用的无人驾驶机器。这对我来说是超级兴奋的。我喜欢到处看见自动工作的机器人,但自动驾驶车辆可能会是普通人首先看到并与之打交道的。

(本文来源请看Spectrum.ieee.org2017年3月10日的报道。)

No comments:

Post a Comment