聊聊无人驾驶汽车的发展历史(五)——Tesla Autopilot进化史
随着Google无人驾驶项目的稳步推进,“自动驾驶”的潜力和机会正在被更多的人发现。高科技公司如Tesla、Uber、百度、NVIDIA等也纷纷加入自动驾驶研发的阵营;传统汽车厂商如通用、奔驰、宝马、丰田等也陆续调整自己的技术战略,跟上最新的无人驾驶风潮;初创公司如Mobileye、Nutonomy、Zoox、Drive.ai、Nuro.ai、驭势科技(UISEE)、初速度科技(Momenta)等则瞄准自动驾驶产业链中的特定应用场景或特定功能模块发挥初创公司灵活、高效的特点。接下来将对一些公司进行简单的梳理,以更全面的了解自动驾驶技术的发展。第一篇将对Tesla Autopilot无人驾驶技术的发展做一个简单的介绍。
作为电动汽车和自动驾驶的先驱者,Tesla一直备受关注。除了那个大屏代表的人机交互系统之外,最大的卖点恐怕就是Tesla Autopilot自动辅助驾驶功能了。Tesla内部最早提出发展自动驾驶是在 2013年5月,埃隆·马斯克(Elon Musk)在一个公开场合讨论自动驾驶时指出:“自动驾驶系统用在飞机上是好事,我们应该也把它放到车里。”说这句话时,Tesla量产的车型还只有一款豪华 Model S,但现实怎么可能阻止钢铁侠的雄心壮志呢。
在 Tesla Autopilot 项目规划初期,马斯克曾经与Google探讨过联合开发一套高速公路自动驾驶系统的可能性 。在前面介绍Google自动驾驶的文章里曾提到Google在2013年推出了一款半自动驾驶系统AutoPilot,但Google的技术最终没有在Tesla上实现量产,主要的原因是:2013 年 Google 很快叫停了 AutoPilot 的测试。当时Google公司邀请了一批每天需要通过高速公路长途通勤的员工来参与系统测试,几周后,一名员工在自动驾驶的车上睡着了。现任Google Waymo CEO John Krafcik 后来阐述过内部的想法:团队认为半自动驾驶系统是不可靠的,因为“当你把这个系统开发得越好,人们就越容易过度信赖它。”在叫停半自动驾驶项目之后,Google 与Tesla走上了完全不同的两条道路:Google转向全力研发 L4 - L5 级“完全不需要人类参与”的全自动驾驶汽车,而Tesla则继续致力于快速开发第一代 Autopilot。
1)Autopilot 1.0 : 借水行舟的Tesla
Tesla Autopilot 组建初期的成员主要来自包括加州伯克利、卡耐基梅隆、康奈尔、麻省理工在内的几所高校,以及大众汽车位于加州的 Electronic Research Lab,这些地方都有着很好的智能驾驶研发的传统和氛围。Tesla企业文化中有两条关键的准则叫做Stay Small(保持精锐)和Move Fast(快速行动),这在Tesla Autopilot团队体现得淋漓尽致。
Autopilot 早期的管理者是资深工程经理 Drew Gray,Gray与2013 年 10 月加盟Tesla,是 Autopilot 团队招聘的第一个员工。2014年5月,Darren Liccardo出任Autopilot工程总监 ,Liccardo 和 Gray 主要负责了 Autopilot 1.0(简称AP 1.0) 系统的集成。AP 1.0旨在加强行车安全性和便利性,为车主提供轻松的驾驶体验。
到 2014 年 10 月Autopilot Hardware 1.0(简称HW 1.0)发布,研发时间不到一年。HW 1.0套件组成如下:
- 1个前置单目摄像头(Mobileye)
- 1个77G Hz 毫米波雷达,最大探测距离160米(Bosch)
- 12个超声波传感器,最大探测距离5米
- Mobileye EyeQ3计算平台
- 高精度电子辅助制动和转向系统
搭载HW 1.0的Tesla汽车生产于2014年和2016年期间,HW 1.0作为“技术包”选项的一部分提供,首先在Model S上可用,后来又扩展到Model X上。下图为Model S上配置的 HW 1.0 传感器分布位置示意图:
HW 1.0传感器分布图
跟Google研发无人驾驶技术一步到位的思路不同,Tesla认为要加快无人驾驶技术的研发,就要走快速纠错快速迭代的渐进式打法。因此Autopilot 在设计之初就采用了硬件先行、软件更新的原则。硬件通常随着车辆的换代一两年更新一次,而软件更新的频率则要高得多(每一两个月更新一次),每次更新会包括整个车辆的新功能,而不仅仅是Autopilot功能。
也就是说Tesla车型虽然安装了具有自动驾驶功能的硬件,但是自动辅助驾驶功能并不是全部解锁的,这些功能是随着测试一步步逐渐推送给车主的。而促成这一切的关键是OTA(OVER THE AIR)在线升级——每一辆Tesla都拥有免费的无线3G/4G LTE网络,车辆通过OTA不断更新固件,获得更完善的驾驶辅助或自动驾驶功能。AP1完整的软件功能于2015年10月中旬发布,作为特斯拉软件7.0版的一部分。7.1版软件随后删除了一些功能,以阻止客户从事危险行为,并增加了召唤远程停车技术,可以在没有司机在车内的情况下,在远程人类控制下来回移动汽车。
从下面的功能迭代中,我们能看到Tesla 在AP 1.0的进化上做出的点滴努力。
- 2014年10月在所有Tesla车型上面安装自动辅助驾驶硬件AP 1.0(整车软件6.0版本)
- 2014年11月开启车道保持功能和速度提示功能(通过摄像头读取道路上速度限制的交通标志)
- 2014年12月开启自适应巡航和防碰撞预警功能
- 2015年3月开启紧急自动刹车和盲点监测功能
- 2015年10月开启自动转向和侧方位泊车功能(整车软件7.0版本)
- 2016年1月开启倒车入库、自动出库和弯道速度控制功能(整车软件7.1版本)
Tesla的AP1相当于L2级别的自动驾驶,而同期Google推出不带方向盘、刹车和油门踏板的纯电动全自动驾驶汽车“Firefly”已经达到了L4级别。比较Tesla的AP1和Google Firefly的传感器配置,我们会发现两者最大的区别就是Tesla没有使用激光雷达。这主要是因为激光雷达实在太贵了,Google使用的 Velodyne 64线的激光雷达,单个售价达7.5万美元,这样的成本很难通过用户消化。而Tesla毕竟是一家面向C端销售新能源汽车的企业,而不是一家出售自动驾驶技术和解决方案的公司,因此Tesla必须采用一种低成本的技术路线。
马斯克从第一性原理出发:既然人类能够利用眼睛和大脑驾驶汽车,那么只要给汽车配置视觉设备和运算系统,汽车应该也应该能够实现自动驾驶。马斯克的想法也并非天马行空。早在2007年,沃尔沃已经集成摄像头和雷达实现了防撞预警功能,2008年宝马利用单目摄像头实现了车道偏离预警、交通标志识别等功能。而实现上述功能所使用的视觉处理芯片却是同一家公司:Mobileye。
Mobileye是一家创立于以色列的公司,Mobil eye很形象的表明了公司的目标:为汽车装上眼睛。Mobileye是视觉识别的领导者,其特有的EyeQ视觉处理芯片以及ADAS软件被应用于多家汽车厂商,能够实现如车道 偏离警告(LDW)、基于雷达视觉融合的车辆探测、前部碰撞警告(FCW)、 车距监测(HMW)、行人探测、智能前灯控制(IHC)、交通标志识别(TSR)、 仅视觉自适应巡航控制(ACC)等辅助驾驶功能。Mobileye 的技术原理是通过前置摄像头对前方物体进行实时监测, 同时配以算法计算出物体与车辆的距离,从而实现车道偏离警告、前车防 撞、行人探测与防撞等 ADAS 功能。关于Mobileye公司更多的内容可以参考这两篇文章《Mobileye 成长史上的 5 个关键时刻》和《ADAS视觉方案盘点上篇:摄像头、芯片和算法》。
Mobileye EyeQ3 于 2014 年推出,我们不知道马斯克第一次看到EyeQ3视觉模块的性能表现时是什么心情。EyeQ3对于EyeQ2是一次质的飞越:同时可以识别4根以上车道线,包括车道线类型、颜色,对车辆识别率达到99%,这使得L2的自动驾驶成为可能,Mobileye EyeQ3芯片识别效果如下。这样看来Tesla和 Mobileye 的初始合作,应该是一拍即合的。
Mobileye EyeQ3芯片识别效果
AP 1.0是全球最早搭载 EyeQ3 的系统,有了Mobileye为Tesla提供了EyeQ3芯片并完成了视觉感知,Autopilot团队完成了传感器的融合、行为决策、车辆控制以及一些列辅助驾驶功能的开发。虽然当时Mobileye还是一个Tier2(二级供应商),但在和Tesla的合作中,Autopilot 的这支初期团队直接承担了 Tier 1 的角色,这样的做法可能和 Autopilot 激进的时间表有关。两家公司通力合作,一起将最尖端的图像识别技术带给了消费者。Autopilot 发布后,智能驾驶成为拉动特斯拉销量的重要卖点。Tesla Autopilot功能的到来让全世界都被自动驾驶所吸引,而Mobileye也因此从一个不为大众所知的Tier2(二级供应商)一跃成为众Tier1以及整车厂争相合作的伙伴。
Tesla与Mobileye 互相成就,简直天造地设的一对。
2)Joshua Brown 之死,Tesla与Mobileye分手
伴随着一辆辆新车下线,Tesla在官方文本中这样介绍 Autopilot:全新的硬件并不是为了无人驾驶设计的,真正的无人驾驶还要数年才能到来。而 Autopilot 希望把驾驶员们从最无聊和危险的路况中解放出来。最重要的是,Tesla的文本明确地告诉车主:(尽管有 Autopilot 存在)驾驶员依然是车辆行驶过程中最终的控制方和责任方。
尽管Tesla做了免责声明,但在营销的过程中,销售人员对Autopilot的能力可能有所夸大,造成一些司机对系统过高信任,当然AP 1.0系统也确实存在缺陷。在AP 1.0启用几个月后,就发生了多起致命事故。
2016年1月20日,京港澳高速河北邯郸段发生一起追尾事故,一辆Tesla Model S直接撞上一辆正在作业的道路清扫车,Model S当场损坏,司机高雅宁不幸身亡。经交警认定,在这起追尾事故中驾驶Model S的司机高雅宁负主要责任。然而时隔半年之后,高雅宁的家人却把Tesla的经销商告上了法庭,索赔1万元, 理由是营销过程中存在误导行为,将Autopilot翻译为“自动驾驶”造成车主放松警惕。事后Tesla在其中国官网上删除了“自动驾驶”、“无人驾驶”等字眼,改称“Autopilot 自动辅助驾驶”。并要求销售人员严格将这一系统表述为驾驶辅助系统。此外,Tesla也对这一系统进行了更新,试图使用户在使用这一系统时集中注意力。这是全世界第一起因Tesla Autopilot导致的死亡交通事故。
而接下来的另一起事故则直接暴露了AP 1.0确实存在一定的缺陷。
2016 年 5 月,在佛罗里达一段没有完全封闭的高速公路上,Joshua Brown 驾驶的一辆 Model S,撞上了一辆拐弯中的货车。当时的高速路段上是蓝天白云,Model S 上的 Autopilot 处于开启状态。货车正在拐弯,但 Autopilot 没有识别出货车白色的挂车车厢,因此挡风玻璃首先撞上了车厢底部。黑色的 Model S 从车厢底部穿出,最后在高速公路边的草地中停了下来。Joshua Brown 在这场车祸中丧生,事故示意图如下。
车祸事故示意图
作为事故中主要的关联方,Tesla和 Mobileye 先后发表了几份声明。
Tesla首先在事故声明中指出,Joshua Brown 遭遇的是非常罕见的驾驶场景:
当时天气晴朗,司机和 Autopilot 在蓝天的映衬下都没有注意到卡车白色的挂车车厢,因此司机和 Autopilot 系统都没有及时刹车。卡车横向穿过马路时,挂车车厢的高度以及从 Model S 上观察到的视角,构成了一种非常罕见的驾驶场景,最终导致 Model S 与卡车挂车车厢的碰撞。
Tesla的声明发出后,Mobileye 的发言人很快进行了补充,说自己的系统不能胜任这样的碰撞检测,澄清事故责任并不在 Mobileye:
当前的防碰撞技术或者自动紧急制动系统 (AEB) 的设计,是为了防止与前车车尾的碰撞。在这起事故中,涉及到对横向行驶车辆的处理,不属于这一代 AEB 的设计目标。Mobileye 的系统将在 2018 年开始支持对横穿车辆的检测识别。
Tesla 很快对Mobileye的评论进行了回应:
Tesla的自动辅助驾驶是我们自己开发的,综合使用了内外部各种设备和技术来处理这样的情况。从2016年1月开始,我们的紧急制动就会在这种类似的车辆横穿中生效。但是在这次事故中,高大,白色的卡车车厢,被摄像头捕捉后被误判成横跨马路的路牌,才是导致问题的原因。
就这样,在Brown的事故中Mobileye和Tesla你来我往,Mobileye急于撇清事故责任,Tesla需要对事故原因给出令人信服的解释。
Mobileye认为他们为 AP 1.0 中提供的AEB 功能还不支持识别横向行驶车辆的情况,但Tesla允许用户在这样的场景下开启了 Autopilot,因此责任不在 Mobileye。而Tesla则解释他们虽然使用了Mobileye的芯片,但是技术上已经涵盖了这种碰撞处理,只是由于当时环境条件导致失误,没能阻止惨剧发生。进一步分析原因是因为两车相撞时,Model S是逆光行驶,强烈的光线对其搭载的摄像头造成了干挠,而大货车的白色车身在遇到强光时也无法为摄像头所辨认,卡车白色的"车厢"就被当成了天上的"白云"。虽然毫米波雷达已经检测到前方卡车车厢存在,但由于它无法判断车厢的高度,参照主传感器摄像头的判断,最终系统倾向认为车厢是一块悬在道路上方的路牌,没有采取制动措施。在这种情况下,驾驶员没能及时接管汽车,最终酿成惨祸。
2016年7月,Mobileye宣布和Tesla终止合作,EyeQ3将会是Mobileye和Tesla的最后一次合作。Mobileye和Tesla这对好基友的分手,表面上看是因为Brown 的那场事故,但背后更深层次的原因在于:
- 风格策略不同。Mobileye相对保守,Tesla比较激进,在 AP 1.0 的合作中,Mobileye 认为Tesla开放给用户的功能太超前,马斯克 则认为 Mobileye 同时要支持大量的传统车企,一定程度上拖慢了技术推进的节奏;
- 数据归属有争议。Mobileye提出了一个名为Road Experience Management(REM)即路网采集管理的概念,采集的数据将由加入的成员共享,而作为积累里程以及数据最多的Tesla不愿意白白把数据共享给别的车厂;
告别Mobileye,对Tesla来说并没有太大损失。Mobileye提供的只是一个SoC解决方案,最核心的DNN是Tesla自己的。由EyeQ3的单目转为双目阵营后,Tesla将像奔驰一样,打造一套多摄像头的进阶版Auto-Pilot。
对于Mobileye,Tesla只是其众多整车客户之一,在终止与Tesla合作的同时,还宣布了与英特尔、宝马进行合作。2017 年 3 月,Mobileye 被芯片巨头英特尔以 153 亿美元的价格收购,与英特尔的强强联合,Mobileye将受益于英特尔从芯片端提供的资源帮助,构造基于视觉、实现传感器融合的强大算法,推动视觉算法持续向自动驾驶迈进。这家发端于大学实验室的创业公司终于修成正果。市值超过百亿美金的算法公司屈指可数,而连续十几年如一日坚持一件事,Mobileye 在整个行业属于凤毛麟角。
2016 年 9 月Tesla在 V8.0 的软件更新中,将 Autopilot 的主传感器从摄像头更换为毫米波雷达,并且官方推送了名为《通过雷达看世界》的技术解析文章。Autopilot的毫米波雷达供应商Bosch为此提供了新的驱动程序,帮助Tesla从前置雷达获取更多的原始数据,有效提高障碍物检测;另一方面采用一些技术手段,有效解决了因雷达误识别障碍物从而导致频繁刹车制动问题。尽管AP1的问题得到优化,但Tesla要实现更高级别的自动驾驶,仍需要使用由多种(个)传感器相互配合共同构成的感知系统。而不同传感器的原理、功能各不相同,在不同的使用场景里可以发挥各自优势,难以互相替代。自动驾驶领域昔日的明星创业公司 Roadstar.ai 曾经力主深度融合技术 Deep Fusion,就是通过多传感器数据的前融合来弥补单一传感器各自存在的缺陷。2019 年,Tesla收购了技术公司 DeepScale(见《特斯拉的第一笔自动驾驶投资 另辟蹊径的DeepScale》),一部分原因也是为多传感器融合补课。
Brown事故发生后,美国国家公路交通安全管理局(NHTSA)迅速启动了调查。调查报告显示,在事故发生前,Brown的驾车过程为37分钟。在这一段时间里,他所驾驶的Model S的自动驾驶系统大部分时间处于开启状态。该系统在这37分钟内曾发出7次视觉警告,称系统“没有(在方向盘上)检测到驾驶员的手”。在系统的7次视觉警告中,有6次是警告声发出后,便回到了“检测到了(驾驶员的)手”状态,但这6次中每一次布朗的手仅仅在方向盘上放了1-3秒。
报告还指出,在事故发生前,与Model S发生碰撞的白色卡车至少在Brown的视野范围内出现了7秒,但系统没有检测到Brown踩刹车,甚至连方向盘也没打,也没有采取其他任何措施来避免此次车祸的发生。在事故发生前的两分钟,Brown所做的最后一件事情是将定速巡航设置在74英里/小时(119公里/小时),超出了65英里/小时的上限。
对于Tesla的AP 1.0系统,NHTSA 的通讯总监 Bryan Thomas 表示:“我们的调查评估了特斯拉自动驾驶系统的每个方面,包括了自动紧急制动系统。 调查结果表明,没有证据显示,特斯拉自动巡航系统有安全缺陷,目前,没有必要做进一步的检测。”
在2017 年 1 月 20 日,美国 NHTSA 给出的事故最终结论是:没有足够有力的证据表明Tesla的自动驾驶系统直接导致了 Joshua Brown 的不幸,将不会对任何一辆Tesla进行召回。至此,为期 8 个月的事故调查告一段落。
Tesla Autopilot 的推出与Joshua Brown事故,在那个时间,在整个大的汽车行业产生了深远的影响。
- Autopilot 是行业里第一次,在短短 2 年之内,让全球数十万规模的先富起来的人群体验到了自动驾驶系统的可用性;Joshua Brown 的事故暴露出 Autopilot 还远非完美的自动驾驶系统;同时也将给消费者提醒,自动驾驶功能至少在目前这一阶段不能百分百的信任,过于信任机器会造成痛苦和悲剧;Tesla也加强了对自动驾驶技术的限制,如果司机没有对警告作出反应则暂时禁用自动驾驶;
- 美国 NHTSA对Tesla做出“无罪判决”,修正自动驾驶分类标准,采用更细致SAE的0到5级的分类,这对于汽车在目前高级辅助自动驾驶状态下,车企与驾驶者的责任可谓做了区分与明示;也对于自动驾驶伦理的确立将产生深远的影响,为车企在推动自动驾驶从低级别向高级别发展扫清了障碍;
- Autopilot 先期对市场的教育,以及监管部门的态度,鼓励了车企以及技术公司研发更好的自动驾驶技术。在世界范围内,大量的自动驾驶公司纷纷创立,在解决 Brown 事故中类似的感知问题上,以后的几年,激光雷达、高分辨率的毫米波雷达、高精度地图都得到了非常大的关注和资本投入。
3)Autopilot 2.0,全面替换Mobileye
Tesla作为挑战传统车企的先锋,整体发展过于激进,这与Mobileye相对老城的套路有些差异。在与 Mobileye 的合作中,Tesla意识到:前者依赖Tesla在内的各家车辆获取大数据改进自身算法。但其对 Autopilot 进行改进的积极性和进度都没有达到令Tesla满意的节奏。这让Tesla内部决定“自动驾驶这个核心要抓在自己手里”。
2015年3月,马斯克第一次公开谈论解决完全无人驾驶的问题。在当年的GTC (GPU TECHNOLOGY CONFERENCE)上,马斯克对NVIDIA创始人黄仁勋讲到:“在我看来,无人驾驶的问题已经解决了。我们知道准确的技术实现路径,未来几年就能把它做出来。我们不仅要做无人车开发的领头羊,而且要让你真能买得到。”马斯克立了个大大的Flag,可现实情况是:Tesla量产 的Autopilot,无论是软件层面的视觉感知技术,还是硬件层面的计算芯片都是依赖于Mobileye的技术。如果Tesla没有进一步实质性的研发动作,那么就当吹了个牛皮而已。
可是后来的事情表明,马斯克绝非虚言,心中早已有了周密的计划。
2015年4月,Tesla组建了基于视觉感知的软件算法小组Vision,准备自研软件逐步替代Mobileye。Vision小组最初由 Autopilot 1 号员工 Drew Gray 带领,一段时间后David Nistér 接替 Drew Gray,尽管 Vision 小组是属于 Auotopilot 软件团队下的一个分支,但其领导人 David Nistér 的职位是 Autopilot Vision 副总裁,足见Tesla对这个小组寄予厚望。Nistér 在 1998 年从爱立信开始投身图像压缩与 3D 重建领域,在来Tesla之前,他在微软待了 8 年,其开发的技术被用在 Bing Vision 和 HoloLens 上。Nistér 过去的研究偏传统视觉领域,因此 Tesla Vision 从一开始走的是传统视觉的路线。
2015 年 9 月,也就是特斯拉 V7.0 发布的前夕,Drew Gray去了当时还在做后装自动驾驶解决方案的 Cruise Automation,却又在 Cruise 被通用收购的前夕去了 Otto,最后所幸赶上了 Otto 被 Uber 收购。Gray 在 Uber 时期担任工程总监,后又加盟创业公司 Voyage 担任 CTO,Linkeldln上显示Gray 已与2020年2月离开Voyage,并创立了一家叫做OceanOS的科技公司,该公司旨在使用最先进的计算机视觉,深度学习和先进的机器人技术来构建自主的水下航行器,遥感器网络和水下照相机,以了解如何最大程度地保护海洋,在全球范围内构建海洋保护技术。而与 Gray 同时期,共同负责AP 1.0 系统的集成工程总监 Darren Liccardo也与2015年7月离职,并加盟大疆担任工程副总裁,后又创立一家风险投资公司,投资下一波人工智能,自动化,机器人技术和物联网。
2015 年 12 月,在 Gray 和 Liccardo 离开后,特斯拉把原来 Model X 的首席产品经理 Sterling Anderson 调入,担任 Autopilot 总监,Anderson 的角色更接近产品总监/项目总监。
2016 年初,Tesla在内部启动计算平台 FSD(Full Self-Driving Computer)的研发。计算平台是无人驾驶硬件系统的重要组成部分,当硬件传感器接收到环境信息后,数据会被导入计算平台,由不同的芯片进行运算。芯片是无人驾驶的核心,其职能相当于无人驾驶的大脑,它需要满足高算力、高稳定性、高安全性、低功耗等相互之间很难平衡的特性。在这个领域,当时业内知名的供应商就只有 Mobileye 和NVIDIA这两家。
Mobileye 提供的是“全方位”的前装 ADAS解决方案,他们的硬件产品是基于 ASIC 架构的 EyeQ 芯片,并配合有自己定制化的视觉感知算法。由于有长期的数据积累、功耗低、更符合车规级要求,大部分前装领域的高级驾驶辅助系统中使用的都是 Mobileye 的方案。这样就导致一种现象:面对 Mobileye 的封闭体系和称霸前装的地位,车厂实际上没有什么选择余地和议价权。
2015年1月在拉斯维加斯举行的消费电子展(CES)上NVIDIA发布了DRIVE计算平台,并推出了针对(半)自动驾驶汽车的初始开发平台Drive PX,比 Mobileye 晚了 11 年进入这个领域。2016年1月,NVIDIA在CES上推出了增强版Drive PX2,Drive PX 2平台上有三款产品,分别是配备单GPU和单摄像头及雷达输入端口的Drive PX2 Autocruise(自动巡航)芯片、配备双GPU及多个摄像头及雷达输入端口的Drive PX2 AutoChauffeur(自动私人司机)芯片、配备多个GPU及多个摄像头及雷达输入端口的Drive PX2 Fully Autonomous Driving(全自动驾驶)芯片,如下所示。NVIDIA的Drive PX2属于具备深度学习优势的高性能超级电脑平台,NVIDIA率先将卷积神经网络(CNN)应用于自动驾驶汽车领域,创建了一个基于监督学习的模型来模仿驾驶员在汽车中的行为,成功利用Drive PX计算平台训练CNN模型完成从单个前向摄像头的图像像素到车辆控制的映射,这就是端到端的无人驾驶模型,详细内容可以参考NVIDIA的论文《EndtoEndLearningforSelf-DrivingCars》。
NVIDIA Drive PX2计算平台
Tesla FSD芯片的设计和规划始于2016年,当时Tesla声称他们没有找到适合其解决自动驾驶问题的替代解决方案。他们认为Drive PX主要基于通用的 GPU 架构,并不是专门为无人驾驶系统打造,其性能并不是最为完美的,还存在很大的设计改进空间,来提升运算速度。而运算速度的大小是衡量芯片性能最为重要的指标之一,所以Tesla才决定自己开发芯片。
2016 年 1 月,Tesla从 AMD 挖来传奇芯片架构师 Jim Keller,任命他为 Autopilot 硬件工程副总裁。Jim是芯片界传奇人物,曾效力于 DEC、PA semi(Apple收购以后才得以由能力研发自家处理器 A 系列)、AMD 、Apple,曾参与设计速龙(Athlon)K7 处理器和苹果 A4/A5/A6 处理器,是速龙 K8 处理器的总架构师,还是制定X86-64指令集者之一。稍微了解一些电脑发展史的应该已经知道这些意味着什么,然而并没有讲完。AMD 公司的 K12 处理器以及现在 ZEN 架构处理器(Ryzen)的架构主导者也是他。关于Jim更详细的介绍参见《Jim Keller,一个决定intel、AMD生死、健康、快乐与否的男人》。
Jim Keller
2016年2月,Tesla又从Apple招到了研发总监 Pete Bannon,Pete 是 A5 芯片核心的设计工程师,在那之前他是 PA Semi 的架构与验证副总裁。PA Semi 也就是 Keller 创业被Apple收购的那家公司,Jim 和 Pete 是老同事。同时期,同样来自 AMD 的谷俊丽,在 Autopilot 硬件工程团队下开始组建机器学习小组,这个小组有两个任务:一个是搭建第二代自动驾驶硬件上的 AI 算法和机器学习软件,另一个是参与设计 FSD 芯片的架构和上面的软件。机器学习小组和Vision 小组在组织架构上是相对独立的,2 个小组分别汇报给 2 位不同的副总裁,Jim和Nistér。当月,Tesla FSD芯片 的研发正式启动,后续,Tesla在 2016 年的上半年密集地招募了一大批原本在 AMD 进行芯片设计和深度学习研究的人才。Pete Bannon 带领着来自 AMD 的大牛们开始了完全无人驾驶芯片 FSD 的研发。
Pete Bannon
Keller 的团队一面着手设计完全无人驾驶芯片 FSD,一面还需要负责开发第二代自动驾驶硬件系统。2015 年 - 2016 年,硬件工程副总裁 Jim Keller 与 Vision 副总裁 David Nister 以及 Autopilot 总监 Sterling Anderson 的搭班,是 Autopilot 第一版相对稳定的管理架构。在这个架构下,芯片、计算机视觉、AI 这几个日后关键的要素都已经萌芽。
2016 年 7 月,Mobileye 与Tesla合作关系最终破裂了,Joshua Brown 的事故成为“压死骆驼的最后一根稻草”。Mobileye CEO Amnon Shashua 在当月的财报会上公开表示,“与特斯拉的合作将止步(AP1上的)EyeQ3”。这个时间点其实对Tesla很尴尬,再过3个月,Tesla Autopilot 2.0(简称AP2)即将推出,而Tesla Vision的视觉感知技术还远不成熟。Tesla的原计划是与 Mobileye 协商一段过渡期:在过渡期内,Autopilot 可以同时运行 Tesla Vision 以及 Mobileye 两套软件,但 Mobileye 拒绝了这个提议。
2016 年 10 月,Tesla推出 Autopilot Hardware 2.0(简称HW 2.0),这也标志着Autopilot 2.0(简称AP 2.0)正式开始量产推广,详细的HW2套件组成如下:
-
1个前视三目摄像头(供货商:Aptina AR0132,RCCC滤镜,三个摄像头的感知范围由远及近:35°窄视场角摄像头,最远感知250米,高速行驶时聚焦远处特征;50°主视场角摄像头,最远感知150米,涵盖广泛的使用场景;120°宽视场角鱼眼摄像头,最远感知60米,城市低速行驶时捕获交通信号灯、切入行进路径的障碍物和近距离物体)
-
2个后视侧面摄像头(供货商:Aptina AR0132,RCCC滤镜,60°视场角,最远感知100米,监控汽车两侧的后方盲点,这对安全变道和融入车流非常重要)
-
2个前视侧面摄像头(供货商:Aptina AR0132;RCCC滤镜,90°视场角,最远感知80米,可以在高速公路上寻找意外进入车道的车辆,并在进入能见度有限的十字路口时提供额外的安全保障;其中,左右B柱的摄像头,此前马斯克曾透露,未来将用于人脸识别开门,但目前这个功能仍处于未激活状态)
-
1个后视摄像头(140度视场角,最远感知约50米,用于安全备份和执行复杂的停车动作)
-
1个77G Hz 毫米波雷达,最大探测距离160米(供货商:Bosch,雷达波长可以穿透雾、灰尘、雨、雪和车下,在探测和响应前方目标方面发挥着至关重要的作用)
- 12个增强超声波传感器,最大探测距离8米(检测附近的汽车以及停车辅助)
- NVIDIA DRIVE PX 2 AutoCruise 定制版计算平台(一颗 Parker CPU 和一颗 Pascal GPU)
- 高精度电子辅助制动和转向系统
下图为一辆配备HW 2.0的Model S的传感器布置情况。
HW 2.0传感器分布图
相对于 HW 1.0,HW 2.0进行了大幅升级。最直观的是HW1使用了更多摄像头和升级的传感器:HW 1.0仅使用了一个前置摄像头和一个后视摄像头(不参与自动驾驶),而HW 2.0则配备了8个摄像头,可以实现车辆周围360度全视野探测。当然,这有助于更好地了解车辆周围的环境和情况,例如,允许系统查看相邻车道上是否有汽车或骑自行车的人。此外,毫米波雷达和超声波传感器也进行了改进,以实现更远距离的检测;另一方面,HW 2.0的计算平台在算力上也有巨大提升:HW 1.0上的 Mobileye 的 EyeQ3 能提供的算力大约是 0.25 TOPS,它的下一代产品 EyeQ4 的算力是 2.5TOPS,而NVIDIA为Tesla定制的这块 DRIVE PX2 算力是 EyeQ3 的 40 倍以上,也就是超过 10 TOPS。由于HW 2.0算力的提升,AP 2.0在传感器的配置策略上,将摄像头改为了主传感器,毫米波雷达起辅助探测作用;同时,HW 2.0的计算平台也具备改造升级的灵活性,后续推出更高算力的主板,只要拆开车上的手套箱,就可以轻松替换。
HW 2.0 在系统感知能力与计算能力上的巨大提升,让马斯克 的确有理由相信,这代 Autopilot 会比上一代好得多。实际上,在HW 2.0 推出后,Tesla已经对外宣称这个版本的硬件足以支撑完全无人驾驶,这也清晰的表明了Tesla的自动驾驶路线图:计算机视觉感知派。尽管马斯克曾经在公开场合说过"傻子才用激光雷达,谁用激光雷达谁完蛋",但个人认为这主要还是激光雷达价格太贵,且不稳定。一件有意思的事情是,Tesla取消了车上为雨刮器提供信号的雨量传感器,而将采用摄像头+神经网络来感知降雨。2016年10月之后Tesla售出的所有汽车都配备了HW 2.0,这些车辆标配自动紧急制动、前撞预警、侧撞预警等自动辅助驾驶功能;针对HW 2.0则推出了两个选装包: “Enhanced Autopilot(增强版自动辅助驾驶)”和“Full Self-Driving(完全自动驾驶)”。
根据Tesla当时的配置页面资料显示:增强版自动辅助驾驶包可以实现车辆自动跟随车流,保持车道,自动变道而无需人工介入,从高速进出,自动泊车和召唤等功能,会在2016年12月前逐渐通过OTA更新激活;完全自动驾驶包会在2017年左右OTA激活,会激活全部8个摄像头(增强版自动辅助驾驶只激活4个),可以全自动驾驶,整个过程无需人工干预。而且途经超级充电站时会自动充电(有自动插接的充电桩),你只需要在地图上告诉车去哪,或者告诉车“回家”,它便会自动导航到目的地,无论什么路况,红绿灯或者紧急情况。当你到达目的地时,你只需要关上车门,你的车会自动寻找停车位,然后发送坐标到你手机上。你可以共享你的自动驾驶汽车给亲朋好友,或者通过Tesla的网络出租出去帮你赚钱。这些都是明明白白写在配置上面的,增强辅助驾驶版推出时随车购买 $5000,交车后激活$6000,完全自动驾驶版随车购买 $3000,交车后激活$4000。这些都是明明白白写在配置上面的,这对于崇尚科技、追求新奇的Tesla粉丝来说,绝对是一件值得激动的事情。
HW 2.0 已经成功上车了,但Autopilot 软件端的 Tesla Vision 还没有开发就绪。在2016 年 10 月以前,Tesla Vision 基于传统视觉的版本在性能和功能上还达不到与AP 1.0的 Mobileye 对标,而马斯克却立下了2016年底推送Autopilot 8.0跨版本更新的承诺,要求搭载HW 2.0的新车在2016年12月底前具备与AP 1.0同等的辅助驾驶功能,Autopilot团队只有短短两个月的时间,这简直是一个不可能完成的任务。为了加快Vision开发进度,Tesla借调了当时 SpaceX 的软件工程副总裁 Jinnah Hosein来兼任 Autopilot 临时的软件工程副总裁。2016年10 月以后,David Nistér下属的Vision 小组与Jim Keller下属的机器学习小组也在技术和产品上进行融合,在 2016 年年底那个时间,Tesla应该是全球第一家把 AI 算法集成到量产自动驾驶系统中的公司。
2016年12月,Tesla Autopilot总监 Sterling Anderson 离职,与前 Google 自动驾驶的 CTO Chris Urmson共同创办 Aurora.ai,而且带走了不少 Autopilot的工程师和高管。有一种声音认为,是这个”不可能完成的任务“,加上当时日趋疯狂的自动驾驶领域泡沫化导致Anderson出走成立新公司。Anderson之于AP 2.0最大的意义在于凭着打造AP 1.0的产品经验,帮助Tesla定义和推出了AP 2.0的硬件解决方案,包括选用英伟达Drive PX2芯片作为计算平台以及摄像头、毫米波雷达和超声波传感器规格的定义。Anderson因为违反竞业协议且带走了一批AP团队成员,Tesla曾对其发起诉讼,随后双方达成和解。
Sterling Anderson
Anderson离开后,Tesla并没有任命继任者,Autopilot团队改由直接向马斯克汇报。在马斯克的传记《硅谷钢铁侠 埃隆·马斯克的冒险人生》中有这样一段话:
如果你告诉马斯克,他的要求是无法实现的,比如预算实在降不下来或者在截止日期前无法造出某个部件,他就会说:"好吧,这个项目与你无关了,从现在开始我是这个项目的 CEO。在担任两家 CEO 的同时,你的工作也由我来做,但我可以完成。"
更可怕的是,他不仅仅是说说而已!每次他解雇了某个人,都会接替那个人的工作,而无论是什么项目,他都能完成。
这简直是真实写照对吗?不过作者没提,虽然马斯克最终都能完成,但这些项目大都会经历跳票、延期交付。以上面这个项目为例,Tesla在2016年12月31日那一年的尾巴上推送了8.0跨版本软件更新,但AP 2.0的可用性真正追上1.0车型,要在大半年以后了。你也许无法想象,从2016 年 9 月到 2017 年 1 月这段时间,Tesla配备HW 2.0的车辆,几乎处于裸机的状态。Autopilot 的一部分功能在这个阶段缺失,包括 AEB、防碰撞预警、车道保持、自适应巡航等。
那么Anderson离开后谁在短短半年内领导Tesla设计研发了复杂的Autopilot软件系统呢?Chris Lattner。Lattner职业生涯中比”Tesla Autopilot软件副总裁“更耀眼的,是开源项目LLVM编译器基础设施的主要作者以及苹果Swift语言之父,他在领导大型软件工程方面有丰富的经验。Lattner 是 Model S 和 Model 3 双料车主,他曾公开宣称自己是Tesla的铁杆粉丝,他表示加入Tesla是因为希望尝试AP 2.0这一“非常困难、世界级的技术挑战”。随着 Lattner 的到来,Jinnah Hosein重回 SpaceX,一个月之后,Hosein离职加盟了Anderson 创办的 Aurora.ai。原来 David Nistér 的 Vision 团队被Lattner 接管,机器学习小组与 Vision 小组随后合并为Autopilot AI 团队。2017年3月,David Nistér 离开Tesla加盟NVIDIA负责自动驾驶高精地图业务。
Chris Lattner
那么Chris为AP 2.0都做了些什么呢?Chris的Twitter信息记录了他在Tesla工作期间的几个重要节点:
2017年3月29日,Tesla推送了8.1版本软件更新。之前仓促推送的8.0版本做了很多功能阉割、体验也很差,Chris推文称8.1版本更新是AP 2.0硬件平台有史以来最大的更新。
2017年5月7日,Tesla又推送了一次更新,全面解除了8.1版本中各功能的速度限制,同时去掉了(Beta)标识。Chris转发推文称又是一次大更新,性能和感知都有了大幅改进。
2017年6月15日,有车主发现Tesla正在通过摄像头收集路况信息以改进Autopilot,Tesla更新后的数据共享政策中提到,“……我们需要通过布局在车身外部的摄像头来收集路况短视频,以便获取车道线、路牌及交通灯的位置等路况信息。Tesla对路况的覆盖越广,每一辆Tesla汽车的自动驾驶能力就越高。”Chris对此进行了回应。
Chris Lattner推文
2017年6 月,Chris离职,他在回忆Tesla的职业生涯时是这么说的:“(在Tesla)我努力工作,也有巨大的收获。我仍然坚信特斯拉的使命,看好走独特技术路线的 Autopilot 团队。但我跟Tesla似乎不太合拍。他的下一站选在了Apple之后硅谷另一家员工福利 & 满意度名列前茅的公司 Google,担任Tensorflow开发者体验高级总监。
尽管Chris在Tesla只待了短短5 个月,但还是扮演了非常关键的角色,那段时间正是AP 2.0软件技术路线转换和性能升级的关键时期,Chris和团队主要完成了以下工作:
-
将AP 2.0的使用体验从几乎不可用改进到与AP 1.0基本相当,在某些方面甚至更好,比如更平顺的控制车辆
-
添加完善了十多个主动安全类功能
-
从零搭建了底层技术架构和基础设施,将Tesla在全球各地跑着的数十万辆汽车利用起来,实现了收集而来的图像和视频数据处理,在云端搭建大数据基础设施处理和使用这些数据
-
定义并领导了(Autopilot)功能路线图,推出了未来功能的技术架构
-
主张并推动对Tesla Vision视觉处理工具中的深度神经网络进行重大改写,从而显著提高精度、召回率和推理性能
-
亲自面试了大部分新Autopilot团队员工,将Autopilot软件团队增加了50%以上
-
改进了一些不便详细描述的内部基础架构和流程
-
在更广泛的Autopilot项目中与他人密切合作,包括未来的硬件支持、法律、同行业、监管、市场营销等
这无疑是一份还不错的绩效数据,透过此也可以看到Tesla Autopilot的快速发展。从AP 1.0 依靠 Mobileye 提供芯片和算法,到AP 2.0对硬件大幅革新,全面转向自研软件系统。基于全新深度神经网络的视觉处理工具Tesla Vision是 Autopilot团队抛开 Mobileye、从零搭建的一套视觉处理工具,它的背后,是全新的底层软件技术架构和云端大数据基础设施。Tesla Vision能够对行车环境进行专业的解构分析,相比传统视觉处理技术可靠性更高;借助Tesla售出的车辆搜集的大量数据,反过来又可以对Tesla Vision的神经网络进行训练和改进,进一步优化Autopilot。
从 AP 1.0 到 2.0,Tesla在自动驾驶技术的发展上建立了自主可控、快速迭代的能力。尽管这个过程看起来极尽折腾,内部的团队常常濒临“无人驾驶”的状态,但 Autopilot 最终拿出了领先行业的量产功能。Autopilot 短周期高强度迭代开发的过程,也培养了一大批自动驾驶领域的实战人才。
除了先后创业和投奔各家的高管,在中国公司的自动驾驶业务一线,小鹏汽车自动驾驶副总裁谷俊丽就是前面提到的在 Autopilot 2.0 开发时期发挥关键作用的机器学习小组负责人。
谷俊丽
此外,蔚来汽车负责 NIOPilot 的副总裁 Jamie Carlson、纽劢科技 CEO 徐雷、原 Roadstar 联合创始人衡亮以及 AutoBrain 的联合创始人 Yolanda Du 也悉数出自 Autopilot 团队。
4)软硬结合,Tesla走向“汽车界的Apple”
在 2017 年 6 月,Chris Lattner 离开之后,Tesla进一步提拔了 Jim Keller 为总负责 Autopilot 硬件和软件工程的副总裁。马斯克从他支持的人工智能非盈利组织OpenAI挖来了深度学习和计算机视觉专家Andrej Karpathy来负责Autopilot软件开发,Karpathy的职位是Tesla AI和Autopilot Vision总监。关于Karpathy的业务专长,Tesla发布的任命声明中做了描述:
在计算机视觉和深度学习领域,Andrej Karpathy是世界上最顶尖的专家,他现在已经加入了Tesla担任AI和Autopilot Vision部门的主管,直接向埃隆·马斯克进行汇报。他曾经通过在ImageNet的工作赋予了计算机视觉,通过生成模型的开发赋予了计算机想象力。
Andrej已经获得了斯坦福大学计算机视觉博士学位,这完全体现了他通过深度神经网络从图片中寻找复杂物体的能力。他的技术不仅能识别“照片里有没有一只猫”,而是能理解“照片里有一只橘黄色的斑点猫,它站在一个滑板上,滑板的轮子是红色的,而这个滑板放在棕色的硬木地板上”。同时,他还在斯坦福设立并教授“视觉识别的卷积神经网络”课程,这是斯坦福最早的,也是最顶尖的深度学习课程。
Andrej Karpathy
Karpathy 领导着Autopilot内最小但最核心的一支团队,负责Tesla计算机视觉和人工智能技术边界的探索。这支大约 35 人的团队涉及的技术包括自我监督学习、模仿学习和强化学习,是硅谷乃至全球最顶级的人工智能应用研究团队之一。尽管Karpathy的团队人最少,但可能最受马斯克关注,他的堂兄詹姆斯.马斯克(James Musk)也是个团队的一名软件工程师,并参与了训练神经网络、处理传感器数据等工作。
如果说Lattner打好了AP 2.0的基础并基本追平AP 1.0,那么Karpathy则需要带领团队攀登更宏伟的目标,比如持续改进和完善AP 2.0,追赶自动驾驶行业老大Google Waymo。Karpathy擅长深度学习和图像识别与理解,而Tesla无人车队搜集了大量数据,这为Karpathy开展工作提供了良好的条件。外界对Karpathy的加入也非常期待,因为他的加入,有网友表示开始相信自动驾驶,还有网友则表示觉得Autopilot会更安全(难道是上次特斯拉车祸有了心理阴影?)。值得一提的是Karpathy不仅仅是只顾埋头做研究的技术人员,他还喜欢在网络分享他的经验和见解,吸引了一票粉丝。他录制的视频课程也非常通俗易懂,深受学生和技术爱好者的欢迎,再加上他本人也是帅哥一枚,简直是技术大牛界的网红了!详情可访问Karpathy斯坦福大学的主页。
这样,在 Jim Keller 治下,Pete Bannon 主要带领 FSD 的研发,Andrej Karpathy 主要负责Tesla AI和Autopilot Vision的开发。Autopilot 还包含了规划控制、地图、仿真和测试等模块。这个局面是 Autopilot 第二版相对稳定的治理架构。
2017年7月中旬,Tesla悄悄为HW 2.0进行了一次小幅更新,民间称这套升级版硬件为HW 2.5. Tesla表示,从这时开始后续预订的Tesla车辆均将免费搭载HW 2.5。相对于HW 2.0,HW 2.5主要做了以下调整:
- 前置/侧置摄像头从RCCC滤镜换成了RCCB滤镜。摄像头滤镜方面的详细介绍参考:Color Filter Array(色彩滤波阵列)介绍https://blog.csdn.net/qfjizhi/article/details/102952909。HW1.0上使用的RCCC滤镜的优点是光灵敏度高,适用于弱光环境,由于 RCCC 只有红色光滤波器,因此主要用在对于红色标识敏感的场合,比如交通灯检测。而RCCB 的弱光敏感性比 RCCC 稍差(Clear 部分少),但它分辨色彩的能力更好,采集的图像既可以用于机器分析,也可以用于人眼观察;
- 毫米波雷达由Bosch 77GHZ 中距离雷达MRR替换为Conti 长距离雷达ARS410,ARS410的特性为:通过两次独立扫描获得大范围视野,从而可以支持远距功能,如自适应巡航系统、紧急制动辅助和前向碰撞预警。ARS410无需摄像头的辅助就能够探测静止目标,尤其适用于固定目标的检测与分离。 Conti ASR410略优于Bosch MRR,详细参数对比如下:
-
- 速度测量精度:Conti +/- 0.1km/h vs Bosch +/- 0.4km/h
- 目标分离精确度:Conti 6.5±0.2° vs Bosch 7±0.3°
- 探测距离:Conti 170m vs Bosch 160m
- 重量:Conti 130g vs Bosch 190g
- 功耗:Conti 4W vs Bosch 4.5W
3. 计算平台增加了一个Parker处理芯片,提供了更强劲的计算性能;对PCB板做了优化,增加了面向驾驶员的摄像头(Selfie Cam)接口,如下图所示;
4. 对线控系统进行优化,在转向、刹车等各个重要的部件上采用了双线缆通信,以防一旦有一根线缆失效,可以启用备用线缆继续行驶;
Autopilot硬件团队在完成HW 2.0和HW 2.5开发的同时,还有一支50多人的团队正秘密的推进Tesla AI芯片的研发,这项任务从2016年初Jim Keller和Pete Bannon加盟Tesla后就开始了。一直以来,特斯拉自研 AI 芯片的传闻就时有传出,直到在2017年12月8日举行的神经信息处理系统大会 (NIPS 2017 )上,马斯克首度公开了Tesla正在研发定制的AI芯片,并表示“Jim团队开发的专用型AI芯片将会是世界上最棒的芯片。”据说,在Tesla能得到马斯克这样评价的没几个人,足见马斯克对Jim和他领导的芯片研发充满信心。
看点就在这里,关于这个问题,马斯克专门在特斯拉财报电话会议上给出了详细的解释:
我对特斯拉在神经网络方面取得的进展感到非常兴奋,我发现AI领域是这样的,它是一种指数增长,你一直觉得进展很缓慢、很无趣,然后突然就wow,就是这种感觉。
你看谷歌DeepMind做的AlphaGo,一开始(水平)还不如一个好点的人类棋手,突然就打败了欧洲冠军、然后是世界冠军,接下来可以同时开战打败任何人;很快他们研发了AlphaZero,轻松碾压AlphaGo,就是这样。
这有点像自动驾驶的进展,它(当下的AP 2.0)就像个差劲的司机,然后突然,跟技术精良的老司机无异,它会这样演进。
2018年4月,在Walter Huang的事故发生数周后,Jim Keller离开Tesla,转投“宿敌” Intel,担任高级副总裁,领导该公司的芯片工程,包括Soc的开发和集成。Jim离开的时候,Tesla自动驾驶芯片已经完成设计、测试和验证,即将投入量产,这仅用了两年多的时间,可谓高效。Jim离任后,马斯克表示并不准备找人接替他的职位,而是把他的工作分给其他人,Autopilot硬件业务交由曾与Jim长期共事的Pete Bannon负责,Karpathy职责不变,依然负责AI和Autopilot Vision。
2018年5月,Tesla聘请Snap的工程副总裁Stuart Bowers担任Autopilot 工程副总裁。Stuart拥有12年软件工作经验,是应用数学方面的专家,加入Snap之前,曾先后在微软和Facebook工作,当时他所做的工作与搜索数据基础设施、机器学习有关。Stuart 将接管Autopilot软件业务和一些其他项目。
Stuart Bowers
经过调整后,Autopilot 团队基本上稳定了下来,整个团队一共有 200 人左右。Autopilot 硬件副总裁 Pete Bannon 领导着大约 70 人的硬件团队,负责Tesla AI 芯片以及毫米波雷达的自主研发工作;Autopilot 工程副总裁 Stuart Bowers 领导着 Autopilot 最大的一支团队,人数达到 100 人左右,负责地图、质量控制、模拟和固件更新业务的推进;Autopilot Vision & Tesla AI 高级总监 Andrej Karpathy 领导着最小但最核心的一支团队,负责Tesla计算机视觉和人工智能技术边界的探索。这支大约 35 人的团队涉及的技术包括自我监督学习、模仿学习和强化学习,是硅谷乃至全球最顶级的人工智能应用研究团队之一。Pete、Stuart 和 Karpathy均向马斯克直接汇报,构成了稳定的铁三角关系,这是 Autopilot 第三版相对稳定的治理架构。
在Autopilot 的团队之外,还有一支关联团队很少被人提及,就是 Firmware 团队,有时也被称为嵌入式团队。这支团队有将近百人,负责包括车内大屏、数据采集、软件 Build&Release 以及 OTA 等工作的开发。这支团队由Tesla软件工程副总裁 David Lau 带领,Lau 是特斯拉元老级的成员。Firmware 团队深居幕后,却对 Autopilot 也至关重要。
2018年10月,Tesla开始陆续向全球用户推送9.0版本软件更新包,这是自2016年推出8.0版本系统后,两年来Tesla在软件方面最重大的更新。关于Autopilot,这次更新主要带来以下功能:
- Navigate on Autopilot
- DashCam
- 盲点警告
- 障碍物感应限速
Navigate on Autopilot,是增强版辅助驾驶的一项主动导航功能。它在司机的监督下,根据导航中设定的目的地,引导汽车驶入高速公路匝道,在高速公路上行驶,然后再驶出高速公路匝道。系统可以智能的给出换道建议,你可以选择进行换道或保持在当前车道上。它的设计目的是在高速公路场景上使用Autopilot时,让用户更方便地找到前往目的地的最高效的行驶路线,并导引用户到达目的地。不过,司机仍然需要监督汽车的行驶,比如需要在汽车变道的时候予以确认。Tesla在官网发布了一篇博文章《Introducing Navigate on Autopilot》 ,详细阐述Navigate on Autopilot功能、设置和使用方法。需要说明的是,Navigate on Autopilot功能目前只对北美地区开放(其他市场还未获得监管部门的批准),适用于装备Autopilot 2.0+硬件的车辆,而且用户需要购买增强版辅助驾驶或全自动驾驶功能技术包。
Dashcam,也被称为Tesla官方行车记录仪,适用于搭载Autopilot 2.5硬件的车型,用户只需要在USB闪存驱动器上添加一个名为TeslaCam的文件夹,就可以把汽车前视摄像头拍摄的视频记录并存储到闪存驱动器上。
这次更新还带来了全新的盲点警告,此功能适用于所有拥有Autopilot 2.0+硬件的车辆,在车辆的仪表盘中央,能够动态监测测量周围的其他车辆,如摩托车、小轿车、公交车等都会以相应的模型显示。当需要变道时,传感器如果监测到目标车道上有其他车辆或障碍物从而有可能发生碰撞时,车道线会变成红色来提醒驾驶员。此功能可以答复提高行车安全性。
障碍感应限速适用于搭载Autopilot 硬件的所有车型,如果车辆在低速行驶时发现前方有障碍物,该功能会自动限制车辆加速。这一点对于行车安全来说,提升尤为有效。
Autopilot 9.0 版本软件基本实现了在高速/城际公路这种简单场景下对路况信息感知和融合、路径规划与决策,最后完成控制与执行。换句话说,这就是很原始的 L4 级自动驾驶技术 Demo。区别在于,其他公司的 L4 Demo 都在宣传片里,而Tesla在量产车上实现了。当然,Navigate on Autopilot仍需要一定的人机交互及车辆控制权向驾驶员的移交。换言之,Autopilot进化到L4+高级别自动驾驶,仍有很长的路要走,这需要有更强大、冗余的系统,更多真实的驾驶数据作为支撑。
对很多公司来说,自动驾驶是个先有蛋,还是先有鸡的问题:“没有足够的数据,无法做到完美的自动驾驶”。那么如何累计历程数据呢?大多数公司(如Waymo、Cruise等)都是组建一个自动驾驶车队,并找来外包人员不停的进行道路测试;而Tesla却独辟蹊径,采用了一种众包形式进行道路数据收集。2016年10月后,Tesla为所有新出厂的车辆都标配了8颗摄像头、12各超声波雷达、1个毫米波雷达等传感器套件,当全世界的Tesla车主在使用Autopilot时,车辆行驶的道路环境数据、方向盘转角、油门和刹车踏板位移等信息以及驾驶员和车辆的交互等信息都被记录下来;即使Autopilot未开启时,Autopilot此时将处于“Shadow Mode(影子模式)”,在后台运行,车辆的传感器仍在追踪现实世界的数据,Tesla还充分利用了云技术,所有Tesla车型都是实时数据在线的,这样不包含隐私信息的数据会实时的上传到Tesla的中央服务器。Tesla的这种方式基本上没有额外的成本,且能快速的搜集到大量真实的道路驾驶数据(主要集中在北美、 西欧、北欧以及东亚地区)。2018年11月28日,Tesla发布消息称车主开启Autopilot功能行驶的里程已超过10亿英里(约合16亿公里),接下来,随着Model 3等车型的的热卖,数据累计必然更快、更多,下图为MIT研究人员Lex Fridman对Autopilot 累计里程数据的跟踪和预测。
2019年4月22日,Tesla举行了“自动驾驶投资者日”(Autonomy Investor Day)活动,这次活动透露了不少重磅信息,归纳起来主要有三方面的内容:
- 发布搭载Tesla自研全自动驾驶(Full Self-Driving,简称FSD)芯片的全自动驾驶计算平台(简称FSD Computer)
- 介绍Tesla在视觉神经网络和数据搜集体系上的建设成果
- 公布Robo taxi共享出租车计划
Autopilot硬件副总裁Pete Bannon主持了搭载Tesla FSD芯片的FSD Computer的发布。FSD Computer项目从2016年2月开始,到2019年3月量产,用了3年多一点时间,Pete表示这是他参与过的项目中时间最短的开发项目,这一方面是因为该项目“只有一个客户Tesla”,很大程度上降低了芯片需求的复杂性;另一方面在于Tesla很强的垂直整合和并行工作的能力,Tesla有很强的电源设计、信号完整性设计、包装设计、系统软件开发、电路板设计、固件、系统验证团队。
早在2018 年8月Tesla第二季度电话会议上,Tesla就公布了新一代Autopilot硬件 Hardware 3.0(简称HW3.0)的升级计划。2019 年 3 月,HW 3.0率先在Model S 和 Model X上实现量产;一个月后又在 Model 3 上量产,Autopilot 硬件正式进入3.0时代。HW 3.0在传感器和线控系统方面和HW2.5保持一致,区别之处在与使用自研的FSD Computer替代了定制版的NVIDIA PX2计算平台,FSD Computer在设计的时候考虑了替换性,这意味着在外形尺寸和I / O方面基本相同,技术人员可以将FSD Computer安装在与Autopilot HW2.5板相同的位置。这样HW2.0 或 HW2.5 的车型都可以升级到 HW 3.0 ,Tesla已承诺为选配了完全自动驾驶技术包且搭载HW 2.0或HW 2.5的车辆免费升级到HW 3.0。
对于FSD Computer的技术信息,Pete从芯片到系统都做了详细的介绍:
FSD芯片是一款专门为自动驾驶功能设计的产品,需要满足功耗、算力、Batch size(latency)和安全性等需求目标。FSD芯片采用Samsung 14nm FinFET CMOS工艺,在260mm2的硅片上集成了约60亿个晶体管,组成2.5亿个逻辑门电路,芯片封装尺寸37.5×37.5mm,底座采用FCBGA设计,整体设计符合AEC-Q100汽车质量标准。
FSD芯片在设计时需要兼顾对上一代车型的升级,因此继承了先前解决方案的大部分功率和散热需求-包括最大100 W的功耗。由于该芯片只针对Tesla旗下汽车设计,所以设计时将替代神经网络加速单元(Neural Network Accelerator,NNA)的许多通用功能从FSD芯片上剥离,只保留Tesla需要的硬件。FSD芯片主要由CPU、GPU和NNA(Neural Network Accelerator神经网络加速单元)三个计算模块,以及各种接口,片上网络等组成,下面是FSD芯片内部架构简图。
FSD芯片内部架构简图
CPU方面,由三组四核ARM Cortex-A72架构组成,主频2.2GHz,主要用于通用的计算和任务;GPU方面,未透露具体型号,主频1GHz,支持16位、32位浮点运算,算力为600 GFlops(Floating-point Operations Per Second),主要用于轻量级的后处理任务。
NNA是FSD芯片中自研的最重要的部分是,也是Pete重点介绍的内容,NNA包括 2 个NPU(Neural Network Processor Unit,神经网络处理器),每个NPU都封装了32 MB的SRAM,用于存储临时运算结果,从而减少数据向主存储器的移动,有助于降低功耗。计算过程也很简单,在每个计算周期,NPU都会从内置的32MB SRAM中读取256字节的激活数据和另外128字节的权重数据组合在一起进入乘法累加(Multiply Accumulate,MAC),每个NPU都有一个96x96MAC阵列,用于总共9,216个 MACs 和 18,432次运算(Operation per second,OPS)的能力。在2GHz下运行时,单个NPU的峰值计算能力为36.86(96x96x2x2)万亿次运算( Tera Operations Per Second,TOPS),每个芯片上具有两个NPU,总的计算能力为73.73 TOPS(超过设计目标50T OPS)。在完成了MAC的乘法累加运算后,数据将会被转移到激活(Activations)以及池化部分(Pooling),并等待写入缓冲区汇总结果。FSD芯片支持多种激活函数,包括修正线性单元(ReLU)、Sigmoid线性单元 (SiLU)和TanH。每个周期都将128字节的结果写回SRAM,所有的操作同时且连续地进行,直到整个计算完成。
NPU计算过程
在保障NPU具备强大运算能力的同时,对于它的功耗和成本优化Tesla也做了不少的努力。
比如 NNA 设计了32MB的片上SRAM缓存,相比其计算能力,这个容量可以说相当抢眼,如Google初代TPU,采用了256×256的MAC,也只是在片上设计了24MB的SRAM。从Tesla给出的芯片图样来看,SRAM占据了NNA面积的75%以上,耗费了大量的晶体管。对于这种特殊的设计,Tesla解释这样做是为了让数据尽可能地在片内周转,而不用频繁地与内存或者其他模块进行读写操作。这样做不但可以提高性能,还可以有效降低功耗。Tesla宣称整个NNA的片上操作大概需要1TB/s带宽,所有数据都在片上完成,这样SRAM就可以满足其需求。
另一方面,因为NNA处理的神经网络计算并不需要太高的精度,所以设计的芯片只支持8位乘以8位整数乘法和32位整数乘法,不支持任何浮点计算,也无需支持任何其他格式,比如16位或者4位计算等,这都大大降低了核心的设计难度,还可以在很大程度上降低功耗。举例来说,支持浮点运算的32位加法器功耗大约是支持整数计算的32位加法器的9倍。
除了上述计算过程外,Tesla在NNA的设计中还偏向于将硬件简化,并复杂化软件,这样做可以降低芯片成本。比如软件可以映射和分配单个SRAM库,在Tesla的神经网络编译器的帮助下,还可以执行层融合操作,通过耦合conv-scale-act-pooling操作允许数据重用。编译器还可以通过执行层平滑处理来确保数据一致的内存访问操作,还可以加入代码压缩、CRC校验等功能,保证数据的可靠性。在指令方面,Tesla认为之前一些NNA的设计方案在缓存、寄存器以及逻辑控制方面消耗了大量能量,于是简化逻辑控制,设计了一个简单的指令集:包括DMA Read、DMA Write、Convolution、Deconvolution、Inner-product、Scale、Eltwidth、Stop,流程控制更是只需要配置4个信息,简化了操作,可以将资源跟多集中在计算方面。
在三大计算性能模块之外,FSD芯片上 还集成了一个专用的、带有内部24字节流水线的图像信号处理器(Image signal processor,ISP)。这个ISP专门针对Tesla汽车上配备的八个HDR(High Dynamic Range高动态范围)传感器而设计,可以每秒钟处理十亿像素的图像信息。在处理中还加入了色调映射等功能,并且允许芯片自主处理阴影、亮点、暗点等细节,还加入了降噪设计。可以说,ISP是FSD芯片中除了计算核心外面积最大、功能最复杂的模块。
FSD芯片还具有一个摄像头串行接口(CSI),能够从各种视频输入设备进行每秒高达25亿像素的处理。对于视频的处理,FSD芯片集成了仅支持H.265(HEVC)的视频编码器,可以用于备用摄像机显示、行车记录仪和云剪辑视频等内容,其余诸如MPEG、H.264等一概不支持,精简了不少芯片规模。
此外,FSD 芯片还有一个安全模块和一个加密模块。安全模块中包含了一个双核同步CPU,用于对汽车执行器的最终仲裁。它可以判断FSD Computer上的两个FSD芯片发出的执行计划是否匹配、以及驱动执行器的过程是否安全。也就是说,FSD Computer上的两个 FSD芯片在处理过程中可能出现信息、执行不同步的情况,当这种情况出现时,判断就交由安全模块完成并给出最终的判定,以保证信息的同步和无冲突。而加密模块执行的功能是确保FSD Computer只执行经过Tesla签名授权的代码,保证系统的安全性。
除了FSD芯片外,Pete还给出了FSD Computer的相关消息。整个FSD Computer上布置了两个完全独立的FSD芯片,及各自电源系统、DRAM和闪存,以实现完全冗余。每个芯片都从自己的存储内存启动,并运行自己的独立操作系统。电路板的右侧(如下图所示)是八个摄像头的接口,左侧是电源和控制器的接口。该电路板有两个独立的电源,各用于一个FSD芯片。此外,一半的摄像头信号位于一个电源上,另一半则位于第二个电源上(需要说明的是,视频输入本身由两个芯片接收)。冗余的设计是为了确保在摄像头数据流或电源等组件或板上其他集成电路出现故障的情况下,整个系统可以继续正常运行。
HW 3.0计算平台-FSD Computer
在一般操作中,当整车感知输入信息通过雷达、摄像头等各种传感器发送至FSD Comouter时,两颗芯片独立处理并给出汽车下一步的执行计划。然后由之前提及的芯片上的安全模块对两个执行计划进行平衡、仲裁和验证,在确保驱动命令是所需的操作后,将执行计划发送给传动装置ECU以驱动汽车,整个循环过程以高帧速率连续运行。Tesla宣称,FSD Computer的故障率非常低,甚至比人失去意识的可能性还要低一个数量级。
FSD Computer工作流程简图
FSD Computer板载了8颗比较廉价的双通道LPDDR4-2133内存,位宽为128字节,带宽为63.58GB/s,每个芯片4颗。这应该是Tesla权衡过成本和性能后得出的最佳方案,毕竟内存控制器一向是芯片中的面积大户,并且事关性能又轻易削减不得,性能和规模的平衡处理非常重要。另外每个芯片各有一颗NAND闪存用于存储操作系统和数据。热管理方面,采用了和H 2.5一样的水冷方案,确保整个工作过程的安全和稳定。FSD芯片内存采用了比较廉价的双通道LPDDR4-2133的方案,
与 HW2.0 或 2.5 定制版的NVIDIA PX2相比,FSD Computer在性能和成本上都有了提升 ,Tesla给出的数据是:FSD 每秒可处理图片 2300 张,而 HW 2.5 的每秒处理能力仅为 110 张,算力提升了21倍;FSD的成本相对于HW 2.5下降了20%。不过FSD整体72 W的功耗,略高于HW 2.5解决方案的57 W,这主要是为NPU的消耗。不得不说,特斯拉走上自研芯片这条道路还是非常正确的,不但节省了大量的资金耗费,同时也带来了新的利润增长点。
Tesla FSD Computer和芯片已经正式运行了一段时间,总的来看,它带来了诸如交通信号灯识别、自动泊车、自动辅助变道、城市内自动辅助驾驶、自动辅助导航驾驶、停车召唤等功能,让汽车的自动驾驶能力提升了一个台阶。不仅如此,在这一代FSD芯片发布后,Tesla也没有停下脚步,而是加快进度,研发下一代FSD芯片。
现在Tesla已经具备了强大算力的FSD芯片,还有通过车队源源不断生成的道路数据,那么只需要通过OTA升级Tesla的软件,就可以推动Autopilot功能的不断优化升级。作为视觉感知派的践行者,Tesla 始终坚持发展以摄像头为主体的“机器视觉”技术—Tesla Vision,Tesla Vision的核心是视觉神经网络,而这正是Autopilot Vision & Tesla AI 高级总监 Andrej Karpathy在Tesla工作的重点。在Autonomy Investor Day上,Andrej系统性地阐述了Tesla在视觉神经网络和数据搜集体系上的建设成果。
那么神经网络在车上是如何运作的呢?简单来说流程如下:首先通过车上的8个摄像头获取道路的数据,然后将这些数据以视频流的形式输入Autopilot的计算平台,接着部署在计算平台上的预训练视觉神经网络对视频数据进行快速处理和解析,完成对车道线、交通标志、车辆障碍物等的识别,对周围车辆、行人等的动作和行为做出预判,识别出汽车可行使区域,并进行路径规划等其他任务。
理解了Tesla视觉神经网络的工作原理,要确保Autopilot辅助驾驶功能的稳定可靠,甚至实现完全自动驾驶,就需要视觉神经网络能够持续准确的解析车辆周围的环境。但是复杂的驾驶环境为神经网络的运作带来了挑战。那么如何确保神经网络的性能满足系统的需求呢?一般来说,可以通过增加训练数据或者优化神经网络结构和算法来实现。而增加训练数据在很大程度上来说效果更显著,这也是Tesla 车队的优势。
但是不是单纯的强调训练数据量的增加就可以了呢?Andrej举了一个车道线识别的例子。为了让汽车学会正确识别车道线,需要从车队获取数据,并由人工标记(Labeling)出车道线,然后完成神经网络的训练。通常情况下,为了降低人工标记的成本,会随机的从车队数据库里选择部分图片进行标注,这会造成训练数据单一问题,比如样本中包大量高速公路场景的数据,而缺少城市街道、隧道、阴天等复杂场景数据,带来的后果是:训练完成的神经网络能够正确识别高速公路工况下的车道线,但可能会对一些弯曲道路或复杂场景的车道线做出错误的识别。这是因为用于训练神经网络的数据中缺少对这些场景的覆盖,解决的方案就是增加这些场景的数据量。此外,关于利用模拟仿真数据实现数据多样性的问题,Andrej和马斯克认为利用模拟器仿真尽管很高效,但无法创造现实世界中驾驶场景可能出现的各种情况(现实世界中存在着难以计数的奇怪场景),因此不可行。由此, Andrej指出要成功训练神经网络,必须具备大规模、多样化、真实的道路数据集。
成功训练神经网络要点
通过Tesla车队获取神经网络需要的数据已经不是问题,但现实世界中仍存在各种“稀有场景”,这会给神经网络的识别任务制造麻烦,那么如何解决这些“稀有场景”的识别问题呢?Andrej举了一个这方面的例子,在无人驾驶中,物体识别是一个重要的问题,只有准确识别了汽车、自行车、行人等各种不同对象,才能对他们进行跟踪,了解他们如何运动,从而为无人驾驶汽车制定不同的应对策略。下图左半部分为人工标记的用于训练神经网络图片,图中标记了汽车、骑自行车的行人;右半部分为利用神经网络进行识别时现实世界的场景,出现了一辆自行车悬挂在一辆汽车的尾部,神经网络按照标准的视觉识别算法将其分类为机动车辆(红色框)和自行车(黄色框)两种,仅从对象识别的角度来说,这无疑是正确的,但是从下游的控制和规划任务的目标来说,自行车固定在汽车上,和汽车一起运动,并不需要作为一个独立的对象进行跟踪,因此这种场景就需要将其标记为一辆汽车。为了彻底解决这个识别问题,可以向车队搜集大量类似的图片,完成人工标记并合并到原来的数据集,并重新训练神经网络,结果是神经网络的识别性能得到改善,当再次遇到这种场景时,就只识别为一辆汽车,这就是“稀有场景”问题的解决方法。因为”稀有场景“会经常遇到,所以神经网络不断的被迭代更新,车辆也变得越来越智能。
总结一下,Autopilot 神经网络预测迭代的流程为:一开始从车队获得一个随机种子数据集,人工对这些数据集进行标记并用于神经网络的训练,然后将神经网络部署到车上,车辆具备判断神经网络发生误识别的机制,例如当检测到神经网络在后续识别中做出(Inaccuracy)错误的识别或者车辆在“影子模式”下检测到司机进行了某种干预操作时,就会触发反馈机制,车辆会向服务器回传这些发生异常的数据,工作人员对异常数据开展分析并重新标记,同时向车队请求跟多类似的数据,这些数据被正确标记后合并到原始数据集,重新训练神经网络并部署到车上,就这样不断的循环迭代,这个改进神经网络预测的迭代过程被称为“Data Engine”。
改进神经网络预测迭代流程—“Data Engine”
以上只是一个单任务神经网络预测的迭代过程,但实际的自动驾驶场景中往往需要对多个任务进行处理。下图为一个普通的社区道路中,自动驾驶车辆所必须准确和高可靠性识别的全部要素,包括:运动目标、静止目标、道路标识和交通信号灯标识等四大类目标。对于以上任何一种目标的识别错误,都会导致灾难性后果。而且从时效上讲,这些目标中我们并没有办法通过优先级判断来决定那个识别任务将得到优先照顾而率先完成,因为它们都重要,同等重要的多识别任务,必须以最高效的方式得到并行识别并送到后端处理。这就需要构建多任务神经网络来处理这样的问题,不过在这里,对于多任务神经网络构建、训练等相关内容不作介绍,如果感兴趣,可以参考Andrej关于多任务学习的演讲《Multi-Task Learning in the Wilderness @ ICML 2019》。
在这里想强调的重点是:Data Engine迭代过程同样适用于多任务神经网络的优化。在单任务学习的场景下,我们可以为每个子任务训练一个神经网络,比如一个单独的神经网络完成目标检测,另一个完成可驾驶区域识别,另一个完成轨迹生成,等等。在多任务神经网络的框架之下,我们可以同时训练这些任务。相关子任务可以共享参数,子任务之间互相平衡,这更容易达成整体的优化目标。MIT研究人员Lex Fridman对单任务和多任务神经网络的迭代训练做了一个很好的总结,如下图所示。
在解决“稀有场景”的过程中有一项很重要的工作— 对“稀有场景”数据进行人工标记。对于大量的上报数据,在Tesla的云平台必须要有足够的计算力/人力做标记处理,否则类似的训练,可能会因为上报数据的错误分类而导致已有的自动驾驶模型在局部恶化。这带来的问题是:要升级Autopilot的功能,就得准备负担昂贵的人工标记成本。而且这个问题会随着Tesla车队的进一步扩张而不断被放大,如果处理不好就无法发挥Autopilot算法自我演进的最大特色。如果希望大规模降低自动驾驶神经网络在后台的训练成本,同时还不影响模型的训练速度和准确性,实际上Tesla需要解决的首要问题就是对于高价值场景(所谓的Corner Cases)“自动标记”的问题。Tesla 采用了一种叫做自我监督学习的深度学习方法来实现数据“自动标记”,那么什么是自我监督学习呢?自我监督学习通过设计辅助任务来学习可区别性的视觉特征,这样一来,目标标签能够直接从训练数据或图像中获得,并为计算机视觉模型的训练提供监督信息。例如,在解决Cut in(变道)问题预测时,Tesla就采用了自我监督学习的方法。Andrej介绍了Tesla的Autopilot神经网络中的“Cut-ins”预测模型是如何搜集数据并完成自我训练的。在Autopilot神经网络中,负责处理相邻车道车辆“Cut-in”动作判断/识别的模型是独立运作的。如果希望这个模型能够非常好地模仿人类的预判和分析水准,就需要提供大规模的实际道路数据去对它进行训练。Tesla完成数据自动搜集的过程如下:
- 车辆的前置摄像头将会捕捉位于前方所有车道的车辆信息,包括本车道和相邻车道;
- 车辆的前置摄像头对于所有视线范围内的运动车辆进行测量,测量数据包含车辆位置(相对于本车)和车辆速度;
- 一旦发生相邻车道车辆的“Cut-in”动作时(相邻车道内前方车辆的轮胎压触车道线触发),则本次行为被判定为Cut-in动作,即下图左半部分中显示红色框的时刻,数据被记录并上报云端服务器;
- 上报的数据中包含本次Cut-in动作完整的模式数据,比如:本车速度、位置,相邻车道车辆的速度、位置,车道线的变化(是否有车道合并或者分叉),红绿灯状态、相邻车道车辆的前后车辆的速度、位置......等等。
利用Tesla庞大的车队获取大量Cut-in数据并进行神经网络训练,当把训练好的Cut-in模型下发到车队中的每一台车辆上时,Tesla采取了所谓的“影子模式”的方式,来“离线”地对Cut-in模型进行校准。“影子模式”意味着,Cut-in更新的模型即便被下载到车队,也不会实际指挥Tesla的车辆执行实际的“换道”类别操作,包括“自适应巡航”和“换道超车”等标准的ADAS功能。而是活跃在后台默默进行相关判断。比如下图右半部分中,Cut-in模型在“影子模式”下工作,监控到右侧前方车辆之后(下图中的那辆车),会使用当前的模型来判断/预测目标车辆的动作趋势,并在合适的时机(时间和位置点)上给出最终的判断。如果对于目标车辆的Cut-in切入换道操作判断正确了,则无需上报任何数据;如果对目标车辆的Cut-in切入换道操作判断失误了(Negative),即上图中的有前方车辆并没有在指定时间和预测位置上切入本车道,则此数据被自动标识为Negative Sample而被送到云端,继续对Cut-in模块进行修正性训练,直到达到下一个可以接受的阶段,再次将模型下发车队,继续“影子模式”测试。如此多次迭代之后,位于云端的Cut-in模型不断完善,当达到设定的安全标准后,才最终开放给Tesla车队。只要车辆行驶,不论Autopilot是否开启,“影子模式“都可以运行,参与对模型训练、数据搜集和模型优化。Autopilot的很多功能,如Auto Steer+、Navigate on Autopilot等辅助驾驶功能都是在“影子模式”下测试验证,并不断优化后推送给车队的。
我们看到在这个Cut-in的模型训练过程中,几乎无需人工干预,自动化的目标识别技术可以准确识别每一个Cut-in场景中的结构化数据,省掉了人工标注的繁琐。 而且总管整个模型训练—部署—影子模式激活—修正—矫正性训练—部署……这个闭环当中,可以看到人力资源基本是不消耗的,系统效率得到大幅度提升。
利用Fleet learning 和 Shadow mode训练“Cut-ins”模型
值得注意的是,如今在Tesla Autopilot 神经网络训练大闭环里,都实现了自动化。“Label”的过程是经由多种传感器联合完成的,这可以大幅度降低人工标注的成本并且提升效率;而“Deploy”过程则是通过标准的OTA流程完成,这可以不断的将功能优化升级的Autopilot特征部署到车上;更进一步,Tesla还在“Identify an inaccuracy”中采用独一无二的“影子模式”,这反过来又从车队中捕捉大量人类司机的正确驾驶判断。
拥有复杂交通灯的交叉路口对自动驾驶汽车来说是颇具挑战的一种场景。这个时候系统该怎么决策呢?Tesla使用的方法叫做行为克隆(Behaviour Cloning,模仿学习的一种)。行为克隆是什么意思呢?这个相对好理解得多,我们人类学习新技能就是通过观察别人怎么做从而完成学习。Andrej介绍了Tesla使用行为克隆方法让车辆模仿人类实现车辆十字路口路径规划的项目,简单的过程如下:
首先从Tesla 车队中获取信息,当每一辆Tesla汽车(无论 Auopilot 启用与否)经过十字路口时,8 颗摄像头都会生成一系列图像数据,同时人类驾驶员会采取相应的驾驶决策(包括车辆所在位置、车速、转向角度、刹车力度等等),图像数据和对应的驾驶员决策信息就是用来训练神经网络的数据集,当搜集的数据足够多的时候,就可以用来训练神经网络,然后部署到车上,以“影子模式”运行,不断的优化网络。最终可以实现:当另一辆Tesla在 Autopilot 启用状态下经过该路口时,Autopilot 就会模仿人类驾驶员的安全驾驶行为去进行决策。不仅如此,在同城的其他区、其他城市乃至其他国家,遇到类似情形的路口时,深度神经网络会调取驾驶员的安全驾驶行为去匹配遇到的情形,完成学习能力的迁移。
Path Prediction
在Autonomy day上,马斯克再次表达了对激光雷达的态度,公开diss了所有使用激光雷达的自动驾驶公司,说用激光雷达真是“荒唐”,他们“注定失败”,还抱着胳膊亮出邪魅狂狷的一抹微笑,点着头对在座的各位说:“You’ll see.” 激光雷达相对于摄像头最直观的优点就是能够快速构建三维场景,针对这一点,Andrej从专业的角度进行了论证,证明了基于视觉传感器+算法也可以构建深度感知。Andrej 首先介绍了人类和动物利用双眼构建立体视觉的过程,还举了一个利用单目视觉图像中的线索(图中两根铁轨的距离符合近大远小的透视现象)测距的例子,以此表明:双目或单目视觉都可以用来构建立体视觉,问题的本质不在视觉传感器,而在于背后的处理算法,即如何从单纯的视觉信息中,提取构建立体视觉的结构化数据。Andrej介绍了三种方法:
- 传统计算机视觉技术:利用Tesla车上配置的多摄像头获取环境图像数据,然后对这些多视角图像进行裁剪拼接,重构出场景的深度信息;
- 传感器融合技术:摄像头获得丰富的感知信息,毫米波雷达能够精确测距,将两种传感器融合,并基于神经网络对目标进行追踪,这样就获得了视觉深度信息;
- 自我监督学习方法:用视频连续帧的不同视角的几何信息作为监督信号训练了一种端到端的单目图像深度估计和车辆运动估计的框架,包括一个用于单一视角深度估计的Depth CNN,以及用于连续帧间运动估计的Pose CNN,通过将当前帧图像结合预测的深度图以及帧间转移投影到临近帧上,计算像素误差作为训练的loss,对两个网络进行联合训练。预测阶段,两个网络可以独立使用进行推理。
Andrej做了个总结:人类仅靠视觉而没有激光雷达就可以驾驶的很好,功能强大的视觉识别对于自动驾驶是绝对必要的,没有必要使用激光雷达。就像我们必须要有能够真正了解你周围环境的神经网络,激光雷达点云缺少丰富的环境信息,而视觉则能提供周边环境的详细细节信息。Andrej认为,激光雷达是一条捷径,但它回避了对自动驾驶至关重要的视觉识别的基本问题,它会给人一种技术进步的错觉,但没有解决本质问题。
最后,Andrej谈到了制约高等级自动驾驶的“长尾问题“,他表示解决这些问题将会非常棘手和困难。Tesla拥有非常强大的视觉系统,能够从庞大的车队获得各种“极端情况”,而且与所有竞争对手相比,Tesla遇到这些“极端情况”的频率将更高,这非常有利于向神经网络提供正确的数据进行迭代训练,以更快的速度解决这些“极端情况”,这正是Tesla实现全自动驾驶的优势所在。
自动驾驶“长尾问题”
在Pete 和 Andrej 的带领下,Tesla 掌握了无人驾驶的两大基础核心技术:芯片和算法,这也是Autonomy Day上最大的亮点。而要利用这些先进的技术打造Autopilot 辅助驾驶功能,并大规模的工程化,还需要更多人的努力,这正是Autopilot 工程副总裁Stuart Bowers所负责的工作。针对每一项Autopilot辅助驾驶功能,Bowers团队需要完成感知、路径规划、车端控制等任务模块的开发,系统仿真模拟、操作系统内核修复、车队“影子模式”下测试,达到一定标准后进入阶段部署,利用“早期用户参与计划”继续测试,直到满足质量标准后进行大规模的部署(Wide roll out),车端通过OTA获得Autopilot新功能,但是基于“影子模式”收集数据的工作并没有停,这可以确保Autopilot功能在用户使用过程中得到不断的优化。Stuart分享了“Navigate on autopilot”项目开发部署的经过,其中影响最深刻的是Autopilot 模式下在车队级别已经成功完成了900万次变道,而且每天都能累积10万次成功的车道变更案例。在Stuart看来,基于“Data Engine”、“影子模式”等工具构成的算法基础设施,再加上FSD Computer的强大功能,很快就可以实现城市街道上运行“Navigate on autopilot”功能,这样人类驾驶员就可以完全放手了。
在Autonomy Day上,马斯克发布了Tesla Robotaxi计划。Robotaxi即无人驾驶出租车,因为取消了司机,所以参与运营的车辆需要达到SAE level 4以上的自动驾驶级别,这就要求支撑自动驾驶的架构设计考虑足够的冗余。马斯克介绍说,从2016年10月起,Tesla 发布 HW 2.0时就已经在硬件层面上对整个车辆进行了冗余设计,主要包括电源、总线通信、执行机构。如确保每个关键的驱动系统都有两个独立的电源系统和总线通信线路,以防其中一个失效时,关键的驱动组件仍能正常运行;车辆的转向系统、制动系统也都做了备份设计,当其中一套系统发生故障时,另一套仍然可用。同时,基于Pete、Andrej和Stuart三人在Autopilot 硬件、视觉&AI算法以及软件方面取得的成就,Tesla制定了雄心勃勃的计划,马斯克表示,他“非常有信心”在2019年底前实现完全自动驾驶系统所需的全部功能,并与2020年推出 Robotaxi 网约车服务,Tesla Robotaxi 务将仅限于特定的管辖区,因为无法在所有地方都获得监管部门的批准,但马斯克相信在明年年底前至少在一个市场被许可。
马斯克详细的介绍了Tesla Robotaxi 运作模式。总的来说,Tesla Robotaxi 的商业模式更像是 Uber 和 Airbnb 的组合。Tesla 构建了一个名叫“Tesla Network”的网络平台,任何Tesla 车主都可以将自己的无人驾驶汽车加入到这个网络中,在特定的时间将车辆共享给朋友、同事或网友。Tesla将从每笔交易中收取20%至30%的收入,剩下的都将回馈给Tesla 车主。如果用户想使用 Tesla Robotaxi,只需要在手机上下载一个应用程序,然后从停车场召唤(Summon)一辆Tesla,Tesla 就会自动开到你的位置,方便用户乘车出行,当车辆租借时间结束后,车辆将自动返回。马斯克还表示,在没有足够车主共享Tesla汽车的地方,将由Tesla 公司自己运营的 Model 3自动驾驶车队来满足需求,并计划未来两年内以Model 3为基础尝试制造没有方向盘、没有踏板的Robo Taxi,将Model 3 Robo Taxi的整车成本从3.8万美元降至2.5万美元。这就是马斯克在完全自动驾驶之后的 Robotaxi 计划。马斯克表示到2020年年中,估计将有超过 100 万辆 Tesla 汽车在路上使用全自动驾驶硬件,这意味着届时将有 100 万台 Robotaxi 的潜力。只是实现这些远景的前提是Tesla 先落地完全自动驾驶能力,不跳票。
通过Autonomy Day,Tesla 高调的展示了自动驾驶领域的技术实力和野心,描绘了一副非常好的出行蓝图。也许,把Tesla 说成是汽车界的Apple总会引起很多人的反驳,也许Tesla如今在汽车行业还没有那么大的影响力。这里只说Tesla 的自动驾驶技术,如果说Apple最大的卖点是那个不卡顿的IOS系统,那么Tesla 也正在打造自己最大卖点: Autopilot。
5)软件更新,全力以赴完全自动驾驶功能
在2018年10月 Navigate on Autopilot功能推出后,Autopilot 软件团队的精锐力量全部聚焦到了增强召唤(Enhanced Summon)功能的研发上。所谓增强召唤,就是指你在停车场利用手机 App 召唤你的Tesla 汽车,车辆都能够应对复杂的环境和狭小的车位,及时避开障碍物,在停车场的任何位置找到你。这个功能是不是听来很熟悉,这正是Robotaxi中召唤车辆的场景。
增强召唤功能演示
2019 年4月6日,马斯克在 Twitter 预告“增强召唤”将于一周后大规模推送。但随后 Autopilot 的实际表现证明,那个版本的“增强召唤”完全没有马斯克说得那么效果拔群。
2019年4月22日的Tesla投资者日上,马斯克无意中透露最新版本的“增强召唤”仍在内测中,而它目前还不适合大规模推送给用户。在这个会议上,马斯克还做出承诺:Tesla将在年底之前让汽车在城市街道和高速公路上拥有“完全”自动驾驶能力。
然而,软件的开发并不顺利,马斯克对此表达了不满,于是对Autopilot 团队进行了重组,5月10日,tuart 治下的软件工程团队最先被动刀,先后有五位工程师离职:
-
"增强召唤"技术负责人 Nenad Uzunovic,加盟通用旗下自动驾驶公司Cruise
-
感知负责人 Zeljko Popovic,加入位于旧金山的自动货运初创企业Embark
-
首席感知工程师 Drew Steedly,加入Amazon Robotics AI担任高级首席科学家
-
控制和路径规划高级工程师 Frank Havlak,去向不明
-
模拟团队高级工程师 Ben Goldstein,加盟通用旗下自动驾驶公司Cruise,担任虚拟仿真工程经理
在 Autopilot 内部,一场更大的风暴正在来临。Stuart 被削去了几项职权,其手下的员工却得到提拔:Ashok Elluswamy 被提拔为感知 & 计算机视觉团队负责人、CJ Moore 出任 Autopilot 模拟、质量控制负责人,路径规划负责人变成了 Drew Baglino,上述三人改为直接向 Elon 汇报。也就是说,在核心五人组(CEO、CFO、CTO、首席设计师、汽车业务总裁)之外,向马斯克汇报的除了遍布全球的 22 位副总裁,新增 3 位 Autopilot 团队执行负责人。新的组织结构如下:
-
Autopilot 硬件 VP Pete Bannon
-
Autopilot 工程 VP Stuart Bowers
-
Autopilot Vision 高级总监 Andrej Karpathy
-
Autopilot 感知 & 计算机视觉 Ashok Elluswamy
-
Autopilot 路径规划负责人 Drew Baglino
-
Autopilot 模拟负责人 CJ Moore
到了2019年7月,Autopilot 团队还未搞定“增强召唤” 马斯克连续几天在Twitter做了说明,推文内容如下:
2019年7月8日:“拥有复杂交通灯的交叉路口和购物中心停车场的交叉口是两个最大的软件挑战。开发团队分支的大部分精力都投入在这些场景中,但要达到 99.9999% 的安全性还需要付出大量的努力。”
2019年7月13日:“停车场(增强召唤)是个非常棘手的问题。今天晚些时候会对“增强召唤”进行深入的工程审查。"
2019年7月16日:回答一位网友的问题时,马斯克透露“增强召唤”将于 8 月 16 日前后进行大规模推送。Autopilot 团队攻克了大量复杂的挑战。对于新版增强召唤,Elon 的评价是 Magical。
马斯克关于“增强召唤”的推文
2019年8月16日,马斯克承诺的“增强召唤”功能再次被推迟。Stuart Bowers离职,以常驻高管身份加盟风投公司Greylock。
2019年8 月 21 日,马斯克发 Twitter 表示,推迟 4-8 周推送 V10 系统更新。
2019年9月26日,Tesla在官网上发布了V10.0 软件的信息,并宣布V 10.0软件在美国率先上线。这一次,Tesla 车主们期待已久的“增强召唤”功能终于推出了。借助这一功能,车主只要点击手机 App,就能让停车场里的Tesla自动行驶到自己跟前,车主要做的就是盯着它行驶过来,别在路上出岔子就行。对爱尝鲜的Tesla用户来说,他们马上就在停车场“遛”起了自己的车,并将视频分享到社交网络。
10 月 3 日,马斯克发推文称,Tesla用户已经使用智能召唤功能超过 55 万次。从网上的反馈看,在智能召唤模式下的电动车也发生了一些小事故。为了保证安全,Tesla为智能召唤准备了各种安全措施:
- 首先,如果你的手机距离车辆超过 60 米,智能召唤就无法启用
- 其次,Tesla提醒用户,在使用智能召唤时应能全程看到车辆
- 最后,长按手机上的虚拟按钮车辆才会移动,一旦松开手指,车辆就会停下来
同时,Tesla还为智能召唤模式设定了 6 英里/小时(不到 10 公里/小时)的限速。在这样的速度下,车辆能及时停住,即使真的撞到了人,也不会造成大的伤害。除此之外,Tesla还将智能召唤调试得非常谨慎,从多数视频中可以看出,一旦路况变复杂或者前路变窄,车辆就会变得犹豫不决。显然,不出事故是Tesla第一目标。需要注意的是,智能召唤目前只限定在停车场使用,如果行驶路线上有公共街道,车辆就会停下来。有这么多限制条件的智能召唤,实际应用场景非常受限,它花的时间可能比车主自己走去停车场取车还要长,而且自己取车还不会耽误其他车辆出入。当然,V10.0 上的智能召唤只是第一个版本,未来智能召唤的距离将会不断增长,甚至不再需要车主站在那里监督车辆, 要知道,这项功能推出不到一个月时间,就有百万次使用量,这说明了大家对这个功能的认可,同时积累的数据也能够帮助Tesla快速的改进这项功能。
2019年已经过去了,Tesla未能如愿实现全自动驾驶的所有功能,在 Tesla 官网上“全自动驾驶能力”的订单页面上,还有两项功能有待实现:
识别并响应交通信号灯和停车标志
在城市街道上自动驾驶
无人驾驶技术的发展本来就困难重重,Tesla还选择了“视觉感知” 的Hard 模式。客观上讲,Tesla Autopilot的迭代速度在业界算是快的。马斯克在Autonomy Day曾今说过,他设定的目标都实现了,只是有时会晚一些。文章的最后放上一张马斯克的计划,希望Tesla在2020年能够实现这些还未实现的目标,带来更多的惊喜。
参考资料:
与时间赛跑,特斯拉Autopilot进化史 https://www.d1ev.com/news/qiye/106332
Tesla Autonomy Day https://www.iqiyi.com/v_19rsgd8fxc.html
Tesla中国网站 https://www.tesla.cn/autopilot
特斯拉 Autopilot:组织架构、软件、硬件全解码 http://www.cheyun.com/content/29081