查看原文
其他

小马智行看自动驾驶:从0到1,自动驾驶如何变成今天的模样?【星特写】

联想之星 2021-08-11

The following article is from DataFunTalk Author 李衡宇


作为自动驾驶明星公司,小马智行的使命是通过构建最安全及最可靠的自动驾驶技术,实现未来交通方式的彻底变革,为人们带来更加美好的生活并创造出更智能的行业。


因其技术实力,小马智行在技术领域的观点与实际进展,一直受到行业特别关注。近日,小马智行北京研发中心负责人李衡宇就自动驾驶行业发展及小马智行的技术动态做了分享。李衡宇目前负责小马智行自动驾驶整体技术研发。


本文重点:

  • 由0说起:从科研到工业界

  • 原型车标志着从0到1吗?

  • 自动驾驶的通关升级

  • 走进千家万户的进阶之路


enjoy~


由0说起:从科研到工业界



汽车是1886年诞生的,卡尔本茨先生建造了人类历史上的第一辆汽车,到现在只有短短130多年的历史。


人类首次尝试自动驾驶的时间为1925年,当然这不是为了展示人工智能,而是用来展示无线电技术,它是用后面一辆车的无线电来控制前面一辆车的行为。之后的很多年,技术还是达不到让车辆自主行驶的水平。


往往很多新事物的产生,都发端于科幻。比如,小说《海底两万里》中描绘了一艘神奇的潜水艇,其实成书的时候还没有潜水艇,但是在短短的一段时间之后潜水艇就真的出现了,所以科幻和科学是有密切关系的。自动驾驶也一样,在现实中还没有出现自动驾驶车辆的时候,科幻先描绘了自动驾驶的未来。


1982年的美剧《霹雳游侠》,90年代引入中国,当时也是比较火热的一部剧,里面就有描绘自动驾驶的片段。


《霹雳游侠》片段


科研与DARPA挑战赛


20年以后,在科研上,就出现了这样的汽车,最著名的就是DARPA Challenge。DARPA 是美国国防部下属的研究机构,很多对世界产生巨大的影响的技术,比如GPS 系统,UNIX,甚至互联网本身都可以追溯到DARPA的资助项目。



DARPA 在2004年第一次举办了无人车挑战赛,在一个沙漠路段,让自动驾驶汽车完成行驶,当时没有车辆完成挑战。


但是到了2005年,有5个团队达成了目标。到2007年,开始挑战模拟的城市道路,并且需要在限定时间内完成,这个挑战赛的难度越来越大,并且开始有科研机构参与进来,其中最著名的就是斯坦福大学和卡耐基梅隆大学的研究团队。现在很多自动驾驶领域的大咖,都是当时研究团队里的研究生和教授。这里列举几位:Thrun被誉为谷歌无人车之父;Urmson曾任Waymo的CTO,后来创建Aurora;David Hall看到挑战赛上摄像头表现不佳,于是发明了Velodyne激光雷达;Levinson当时还是Thrun的研究生,后来创建了Zoox。他们也贡献了自动驾驶领域早期最有参考价值的文献,列举一些:


  • “Towards 3D Object Recognition via Classification of Arbitrary Object Tracks”

  • “Tracking-based semi-supervised learning”

  • “Towards fully autonomous driving: Systems and algorithms”


在科研之后,工业界就开始关注这件事情。当然最近十几年还有其他因素让自动驾驶成为可能。



 车辆技术:汽车的电子化和电动化。因为自动驾驶很多程序是需要电控系统的,如果是传统的液压或者机械控制方式,在反应速度和控制难度都会大很多。


 算力&芯片:算力的提升和芯片技术的进步,最有代表性的就是GPU。


◆ 传感器:比如激光雷达,让自动驾驶能够达到更好的感知效果。


 大数据:互联网高速发展带来的大数据技术。


所有的这些再结合机器学习算法的进步,让自动驾驶成为可能,于是工业界开始进入这一领域。


工业界



第一个是 Google,它在2009年进入这一领域,并且收购了上述两个最优秀的大学科研团队。Google 的自动驾驶技术领先于世界直到今天,和此不无关系。随后,其他的公司也陆续进入了这一领域。


主要分为三类公司:高科技公司、汽车的一级供应商和主机厂。由于最优秀的团队被谷歌收了,很多公司只能通过参考刚才提到的早期文献,打造了自己的原型车。



原型车标志着从0到1吗?


当原型车出来之后,是否就是实现了自动驾驶的从0到1呢?


不是的,现实非常骨感。即使根据前面的论文做出了原型车,在路上可能会遇到逆行的电动车。而这在DARPA挑战赛里是不存在的。


逆行的电动摩托车


还有下面这个场景,晚上行驶时遇到一辆三轮车,车上装满了庞大的货物,这对人工智能也会是一个挑战——如何判断这到底是个什么物体,并作出正确的反应。


载满货物的三轮车


还有红绿灯,我们会发现每个城市,甚至不同的区域,红绿灯都有不同的模式,有各种的形状,以及逆光等等,都需要算法来解决。



举个我们在实际路测中碰到的丧心病狂的例子,上图中最右边的红绿灯,大家可以看到好像是个绿灯,但真实的情况这个红绿灯坏了是不亮的,但是反绿。如果自动驾驶汽车要安全行驶就必须要解决这些问题,而这些都是前面那些论文里不曾提及的。



工业界打造自动驾驶汽车,最终的目标一定是商业化,并且创造市场价值。这不同于一个研究,为了实现商用,需要不断扩大测试车队规模,扩大路测范围,增加行驶里程,覆盖更多运营时段,这带来很多工程上的挑战。这里只是列举了其中一些:稳定性、可靠性、可扩展性、自动化、复杂场景处理、Corner case、大规模地图生成、地图增量快速更新、大数据存储和计算、BI、HMI、Control Center,所有的这些都需要我们去面对。


自动驾驶的通关升级


迭代


从第一辆的奔驰车到五六十年代的奔驰车,再到现在的奔驰车,需要一次次的迭代。



类比一下汽车换代,小马智行第一辆自动驾驶原型车就是上图中左边这辆车,但是我们最终的目标,是达到最右边或者中间的状态,虽然都是自动驾驶汽车,但是有非常大的不同。比汽车换代更难的是,我们的系统在升级换代时,是需要保持同步的测试的,就像给一辆在高速行驶中的汽车换轮子。


快速迭代的流程


小马智行会有一个非常快的迭代和流程,一个工程师如果要开发一个功能,或者修复一个 bug,会先在代码上做更新,然后在模拟仿真的环境下测试,测试的环境或者场景来自我们从各个地方采集的数据,如果都完成了之后,我们会进行场地测试或者路测,来验证是否达到预期,中间任何步骤如果不符合预期,会重新回到第一步骤,然后再次验证。


实际这个流程是非常快的,一般当天就会有结果。如果测试结果通过,每周都会同步到我们所有的测试车辆上。并且每个工程师都可以独立、并行地来做这件事情,这保证了一个非常快的迭代节奏,让我们的技术快速进步,日新月异。


这是软件的迭代节奏,硬件上虽然不如软件这么快,但是我们也在保持一个非常快的节奏,两年的时间,已经迭代到第三代。 


车载系统



在技术上,我们也做了很多的创新,比如车载操作系统,我们放弃了 ROS(机器人操作系统),打造了自己的 PonyBrain 操作系统,目的是让系统更好地适应自动驾驶的场景。


ROS 是一个分布式系统,时序无法保证,这跟自动驾驶集中式的处理相悖,另外,我们自己打造的系统会有更高的效率。从我们实测来看,在同样的场景,我们系统的性能要高一个数量级,这使得我们有更多的空间留给算法使用并且更加安全,因为车载计算的实时性对于高速行驶的汽车至关重要,0.1秒的时间就会产生几米的误差。 


数据基础架构



在数据上,我们也面临非常大的挑战,首先它跟互联网数据一样都很大,单辆车就会产生 PB 级的数据,远远多于一个互联网用户产生的数据,其来源也和互联网数据不同,它的数据来自于客户端、大量的传感器数据以及模块运行日志。所以我们会自己打造一套数据系统,当然也会利用之前已经有的技术以及互联网的经验积累。


仿真系统


仿真系统,这个对自动驾驶研发也非常重要,如果要保证算法的快速迭代,就必须有强大的仿真系统。否则验证过程就会很慢,比如很多极端场景验证的代价很高,做大量实测的时间周期很长。



上图左边显示的是我们路测时候的场景,所有我们在路测过中认为是很重要的场景或者 case,都会收集到仿真系统中,所有代码的改动,都会触发重新测试这些 case,它可以保证我们的系统是进化的,而不是解决了一个问题,又冒出另外一个问题。仿真系统还有另外一个功能就是可以创造一些场景,因为某些场景在现实中是很难收集得到的。


高精度地图



高精地图也是一个绕不开的话题,与传统导航地图相比,自动驾驶所需的地图数据量非常大,并且要求厘米级的精度,而导航地图到米就足够了。


最后就是更新的频率,导航地图可能一个月更新一次,对于自动驾驶,我们最早是天级别的,后来发现不够,又采用增量和全量更新的方式做到了小时级别。后来发现小时级还是不够,因为经常会有人把路封住,比如修路,这时单纯靠感知的能力不是特别理想,如果我们的第一辆车感知到这个场景,我们就会上报到控制中心,再下发到其他所有车辆,告诉他们这个地方是不通的,需要避开,从而达到分钟级别的响应。


传感器融合



传感器融合,最核心的传感器有毫米波雷达,摄像头,激光雷达等,这几个传感器都有各自的优缺点,目前还无法互相取代。那么如何去使用这些传感器,达到安全驾驶,我们的思路是把传感器的数据融合起来。


这里展示的是,把激光雷达的数据和摄像头的数据进行了融合。激光雷达的一个特性是有非常准确的距离数据,摄像头的优点是分辨率非常高,并且有色彩和纹理。如果能把更多类的传感器数据融合在一起,那么后面无论是传统方法还是深度学习方法,都能取得一个更好的效果,从源头上解决感知效果的问题。


当然这里有很多很难的技术,比如传感器的标定,我们需要把所有的传感器结果投影到一起,确定它们之间的 3D 关系,是一个很难的问题。还有就是时间的同步,每种传感器触发的时间都是不一致的,如果误差在零点零几秒,我们就无法做到图中显示的精确融合。


走进千家万户的进阶之路



上图数据来源是加州车辆管理局(DMV)年初公布的《2018年自动驾驶接管报告》,里面包含了2018年在加州获得牌照进行测试的自动驾驶公司的行驶数据(不包括中国路测的数据),其中最重要的两个数据是里程和 MPI ( 平均多少公里以后需要人工接管,这个数据越高越好,表示车辆智能化程度越高 ) 。通过一系列创新和迭代,小马智行自动驾驶技术水平日益精进,位列第五。


Pony.ai 在探索一个未来自动驾驶的可能落地模式:自动驾驶出行(Robotaxi)。这里的技术挑战是什么呢?在很多公司的展示中,我们看到的是从 A 点到 B 点的展示,它只有一条固定路线,甚至是固定车道,并且容易过度拟合。而小马智行现在已经能实现区域内多点动态寻路,面临的场景是该地区内的任何路线或车道,复杂性呈指数级增长。


2018年12月,小马智行发布了 PonyPilot 项目的同名内测版小程序。通过小程序,试乘者在覆盖区域内可以自由选择想去的目的地。目前除了内部员工外,该小程序的权限为邀请制,未来考虑开放为可自由下载。


PonyPilot 内测版小程序


自动驾驶的发展可能会有这样的几个阶段:最早的就是原型车或者普通的展示;然后有些公司会往前走,做一个优秀的展示;第三个阶段就是我们现在在努力实现的,打造自动驾驶车队的运行,只有通过这个阶段来验证系统的可靠性,去不断的收集数据,不断的算法迭代,才有可能达到商业化。自动驾驶无法从一个优秀的展示,直接跨越到商业化产品,所以中间的阶段是目前头部公司一直在努力达到的一个阶段。


这个阶段做好之后就会尝试在某个城市或区域进行商业化运营,这时自动驾驶就会真正进入到人们的生活,并形成闭环。


最终自动驾驶会无处不在,智慧交通、智慧城市也会真正的实现,也许到那时,在公共道路上手动驾驶汽车将是非法的,就像现在在马路上骑马一样。


我们期待着这一天的到来,谢谢大家。





相关阅读:



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存