本文转载自知乎《Tesla 自动驾驶的前世今生》作者Ryan Woo。爱范儿(微信号:ifanr)已获作者授权编辑转发。在编辑这篇文章时,央视曝出了国内首起 Tesla 自动辅助驾驶的致死事故。爱范儿希望能通过这篇对特斯拉辅助驾驶技术的历史梳理,让更多读者对目前的“自动驾驶”以及“自动辅助驾驶”有更多认识,避免不必要的伤害。
本文共1万字左右,阅读大概需要20分钟。不过如果你想更深入了解特斯拉,全文内容值得一看。
前言:自动驾驶还是自动辅助驾驶?
在说自动驾驶前,我们不妨先回到课堂,来说一点这方面的背景知识,在很多 Tesla 的宣传材料中会有这么一句:
在比较新的 Tesla Model S 和 Model X 车上搭载了他们 Autopilot 自动辅助驾驶系统。
很多媒体喜欢把 Autopilot 翻译成自动驾驶,其实 Autopilot 这个词来源于飞机、列车、轮船领域的辅助驾驶系统,引用维基百科的定义:
An autopilot is a system used to control the trajectory of a vehicle without constant ‘hands-on’ control by a human operator being required.
自动驾驶是一个用来控制载具轨道而无须人工一直干预的系统。
而我们常说的自动驾驶汽车,无人驾驶,其实是另一个单词:Autonomous car,引用维基百科的定义:
An autonomous car (driverless car, self-driving car, robotic car) is a vehicle that is capable of sensing its environment and navigating without human input.
自动驾驶车(无人驾驶车,自驾驶车,机器人车)是能自动感应周围环境并且无需人干预而自动导航的载具。
所以前者Autopilot在业界(航空,火车,轮船等)早有习惯对其定义是一种辅助驾驶系统,主要目的是节省驾驶员精力,在无须驾驶员连续干预的情况下,自主完成既定的部分航线。
而后者则是指载具能自主完成航线规划以及行进。两者很主要的区别是人的参与度,前者需要人参与,而后者完全不需要人参与。
现在的问题是这两个完全不同意义和背景的单词,被翻译成中文都成了“自动驾驶”。所以人们的误解先从这里开始,在英语国家看来Autopilot指的就是飞机上那种辅助系统,但是到了中国,就变成了无需人而自动上路的车。也无外乎在一个月前,Tesla 官方把翻译从自动驾驶换成了自动辅助驾驶:
虽然两者在中文环境都能翻译成自动驾驶,显然自动辅助驾驶比自动驾驶更能表明Autopilot这个系统的实际用途,否则也不会有这次中文改名了:
所以现在我们统一了对自动驾驶的定义,我们来看看 Tesla 的这个自动辅助驾驶系统 Autopilot 背后究竟是什么技术,为了不引起困扰,我会在后文中分别用对应的自动辅助驾驶来指代 Tesla 的 Autopilot,用自动驾驶来指代业界对无人驾驶的定义。
Autopilot1.0—— 借水行舟的 Tesla,被炒得沸沸扬扬的致死车祸究竟错在哪儿?
说到 Tesla 这个自动辅助驾驶,就必须先说目前第一代 Autopilot 背后的功臣:Mobileye。
Mobileye 是一家创立于以色列的公司,专注于 ADAS(高级辅助驾驶系统)的软硬件开发,其特有的 EyeQ 视觉识别芯片以及 ADAS 软件被应用于多家汽车厂商,其中最近的 EyeQ3芯片几乎卖给了所有的知名汽车厂商。
Mobileye 技术的独到之处在于:自由空间标记、启发式路径寻找、道路避障和路牌识别。由于 Mobileye 的视觉识别芯片被广泛应用于汽车领域,所以 Tesla 找上 Mobileye 采购专用视觉识别芯片并不意外,但是有意思的是 Tesla 并没有完全采用 Mobileye 的软件,而是通过自己的软件结合 Mobileye 以及 NVIDIA 硬件来实现了自己的自动辅助驾驶 Autopilot。
在当时被炒得很热的那起 Tesla 撞上高速上转向的大卡车致死事故中,其实是 Tesla 自动辅助驾驶时,由于系统没能正确识别横向来的卡车,自动辅助驾驶中的紧急刹车功能没能正常启用导致的。而紧急刹车没有启用是因为自动驾驶系统没有发送开启指令,自动驾驶系统没有发送指令是因为给予当时摄像头采集的画面,误判横行而过的卡车是横在路上的路牌。
这里面暴露了 Mobileye 技术的几个不足:
Mobileye 的摄像头接受的是光的反射,如果摄像头效果受影响,例如在黑暗场景中没有了光线,那么识别能力大打折扣。
Mobileye 的摄像头获得的是2D 平面数据,需要图像识别的加工才能得到有价值的3D 场景。
Mobileye 的摄像头方案对道路场景的变化反应有限,全靠即时的系统自主判定。
Mobileye 的摄像头数据获取是一种被动的方式,它搜集的数据都是已经发生的事,并且还有延迟。
所以这起车祸时,摄像头刚好遇到太阳下山时强烈的背光导致识别能力不足,收集到的数据不完备,而这不完备的2D 数据又经过图像识别加工成错误的3D 场景,让车误判了前方的路况,从而酿成惨祸。
从根本上说,这次车祸是在一个非常极端的情况下,各种负面因素累加而成的结果。虽然技术上来说一次漏报并不足以对整个自动辅助驾驶系统判死刑,但是不能不说这次事故不够警醒,这里面的教训让 Tesla 延迟了计划中的8.0系统的发布,直接加速雷达主导的自动辅助驾驶时代的来临。
从这次严重的事故至今已经过去了有小半年,Tesla 在路上行驶的的车更多了,使用自动辅助驾驶的车也更多,但是并没有再发生类似的事故。这也一定程度上也佐证了那次事故的唯一性和漏报特征:因为如果这是一次误报的话,类似的事情应该随着用户的增加而层出不穷才对。就像现被报道的某厂热门手机,由于电池的故障导致充电可能爆炸,全球召回耗资10亿不说还得承担巨大的信誉损失。
Tesla 自动驾驶1.0——是游刃有余还是如履薄冰?
说完了 Tesla 自动辅助驾驶技术的来源,我们现在来看看 Tesla 的自动辅助驾驶是怎样一种技术,又是如何炼成的:
在看之前,我们不妨回顾一下目前业界对车自动驾驶等级的定义:参照美国的标准,其中 NHTSA 是美国国家公路交通安全管理局,SAE 是美国汽车工程师协会。
目前 Tesla 的自动辅助驾驶 Autopilot 达到了第二级,部分实现了第三级功能,在向完整实现第三级乃至第四级迈进。同时目前业界和学术界对自动驾驶的实现方法来说主流是摄像头和 Lidar,雷达都是作为辅助信号。
Lidar,摄像头,雷达之间有什么区别呢?
Lidar,俗称的激光雷达。
摄像头,以 Mobileye 举例就是特殊定制的单色摄像头,位于车顶玻璃上方。
而雷达,则是分布于车四周以及前方的雷达探测点。
在很多自动驾驶开发平台上,往往是综合运用这三者,然后通过相应的软件算法去处理这些设备收集而来的数据。雷达穿透力很强,不受雨雾等环境影响,也不受限于光线,但是生成的3D 环境图在 Tesla8.0自动辅助驾驶公布之前并没有多少实际应用范例。
Lidar 穿透力其次,但是可以生成3D 影像图,但是成本巨大,甚至达到整车的成本,同时体积也是个需要解决的问题,多为学术界和研究时的标配,在量产路上还需要很长的时间,此外 Lidar 由于是可见光域,所以也受到雨,尘埃,雾的影响,同时反射效果并不强。
摄像头没有穿透力,需要光线,只能获取2D 图像,3D 环境建模只能靠算法理解,一旦获取的图形有误差,会极大的影响最终分析结果,好处当然是成本非常低,而且技术普遍被工业界研究,例如 Mobileye,NVIDIA 等图像识别巨擎。
简单分析完三种技术的优劣,我们来看 Tesla 的自动驾驶方案,下面的截图来自于Tesla 自动驾驶部门负责人 Sterling Anderson 在2016年5月于 MIT 的演讲,Sterling 一上台就开门见山的说 Tesla 为什么要搞自动驾驶:
为了“更快的推进世界向可持续能源前进”,这个愿景被转化成两个目标:让我们的交通资源更高效和让我们更高效的使用目前的交通资源。
所以第一条便是指 Tesla 的电动车,电能存储等技术,第二条便是对应的自动驾驶系统,正是目前低效的驾驶系统和各种人为失误导致每年单在美国就有3万3千人丧生,55亿个小时被堵车浪费掉,同时还需要2740平方公里用来作停车场。
Tesla 目前在Model S和Model X上面采用的自动辅助驾驶系统集成了12个超声波雷达,用来识别周围环境,1个前置摄像头,用来辨识前方物体,1个前置雷达,用来辨识前方物体以及卫星高精度地图来进行辅助。
接下来的部分便十分有趣,Tesla 虽然在所有车上面内置了自动辅助驾驶的硬件,但是真正把完整的自动辅助驾驶交给用户其实是一个不短的过程,而这其中促成这一切的关键是 OTA 空中更新——最初的Tesla只是拥有道路辅助警告,依靠每一辆Tesla都拥有免费的无线3G/4G LTE 网络,通过 OTA 来获取最新的软件和功能进一步扩展辅助驾驶的潜力。
所以我们口中的 Tesla 自动辅助驾驶其实是一整套套件的合集,Tesla 每次开放一点,最后完整成一体才有了我们现在看到的自动辅助驾驶 Autopilot。这其中每一次更新都经过了内部测试,封测,路测,验证以及更新到实际 Tesla 车队,再通过车队反馈数据进一步加强自动辅助驾驶。所以不同于 Google,Apple 目前闭门造车搞无人驾驶,Tesla 是采用了一种迭代和渐进式的方式来逐步实现真正意义上的无人驾驶,两种方式各有优劣,后面会进一步分析。
有几个重要的数据:从自动辅助驾驶硬件开始收集道路数据开始到2016年5月,Tesla 收集了12。5亿公里的数据,从自动辅助驾驶激活到2016年5月,Tesla 收集了1.6亿公里的数据,每天会记录420万公里里程数据(现在这个数据已经扩大到500万公里),只需要大约6小时便可以收集100万公里数据。
这是个什么概念?
Google 的自动驾驶汽车,从立项到现在4年一共也就积累了不到250万公里的数据。Tesla 只需要15个小时便达到了…… 这指数级的差别注定了对后面 Tesla8.0更新的大换血埋下了伏笔。
Sterling 专门举例说 Tesla 的自动辅助驾驶性能从最初不如人工驾驶到目前远超人工驾驶全靠一步一步的通过真实数据去对比和学习。下面是 Tesla 自动辅助驾驶一个月中的数据对比:自动辅助驾驶时,Tesla 可以更长时间保持在道路中心,对比人工驾驶只有不到1/3的时间能做到完全居中,差别非常显著。
来自车主的感慨:我为什么还在使用自动辅助驾驶?
自动辅助驾驶并非完美,目前的版本依然需要人为控制变道信号以及进出匝道等,对道路的需求也限制在高速和城市,而且一旦遇到稀有的特殊情况,加上人的疏忽大意,可能造成生命财产的损失。 所以作为驾驶者,在享受科技带来的便利性的同时一定要负责的合理使用,而不是滥用。
笔者以为无论什么技术,安全是首要目的,但是无论技术本身如何安全,用户都需要:
1. 相信这个技术
2. 懂得怎么去使用这个技术
3. 想要使用这个技术
而 Tesla 的自动辅助驾驶 Autopilot 成功的在这三点上面说服了笔者,据 Tesla 官方的数据,开启了自动辅助驾驶的 Tesla 每天积累的里程是500万公里,所以显然笔者的选择并不孤单,因为有千万的用户跟笔者一样天天在使用自动辅助驾驶。同时启动辅助驾驶就跟开启自动巡航一样简单:只需要向驾驶员方向快速拨动拨杆就能启用,往前拨动拨杆,转动方向盘或者刹车都会自动取消自动辅助驾驶。
在使用之前,笔者详细的阅读了使用教程非常明确该系统的能力以及局限性,所以按照Tesla的要求,规范的去使用。最开始的几分钟是最惊恐的:看着车的方向盘自己转动,反射性的想去控制;看着前车减速,不自觉的把脚伸向刹车;看着车自己变道,超车,心里无不捏着一把汗…但是随着使用时间的增加,笔者慢慢的放松了紧张,更多的时候是在享受。随着车自己一次又一次在不同环境下证明自己,笔者越来越离不开自动辅助驾驶了,有时候哪怕是很短一段路,我都想依靠自动辅助驾驶。
这种感觉就像是第一次使用 iPhone 的指纹识别 Touch ID,在其以前我用过很多带指纹识别的设备,最后无比因为粗劣的用户体验而放弃。突然在 iPhone 上面手指往 Home 键一放,直接进入桌面,那种识别率和识别方式的质变直接把用户体验上升到新的高度。
聊天软件不再纪录冗长的密码,银行 app 不再需要短信验证码,ApplePay 轻触一下扫描指纹就能完成支付… 而 Tesla 的自动辅助驾驶的体验就是这样:上手简单,功能易用,效果出色。而频繁的正向反馈又促使楼主进一步去探索和挖掘他的潜力,直到再也离不开自动辅助驾驶。
对很多公司来说,自动驾驶是个先有蛋,还是先有鸡的问题:“没有足够的数据,无法做到完美的自动驾驶”,但是,光靠实验室和研究人员有限的室外测试,数据来得又太慢,技术又无法进步。
这个问题上,Elon 带领下的 Tesla 选择了先向公众开放,再逐步完善的办法,因为 Elon 相信目前的自动驾驶安全性已经超过人类,既然能救命何不开放给公众?
所以笔者反对那些在自动辅助驾驶评测和体验中不负责任和不顾安全的行为。应该在充分知晓自动辅助驾驶性能和限制的前提下,合理使用自动辅助驾驶,同时希望Tesla继续改良自动辅助驾驶,使其更加完善,直到真正的自动驾驶实现。
回到最上面的问题,究竟是 Google 式的闭门造车一口气实现 Level4的自动驾驶好,还是 Tesla 式的从 Level2一路向 Level4自动驾驶循序渐进好?
如果用 Elon Musk 自己的话来说:
我们目前的自动辅助驾驶已经被证明能提供比手动驾驶安全性,在道路致死率上面是世界平均水平的1/3。即便是退一万步来讲,我们的系统只比人工好1%,那么一年车祸导致的120万人里面,我们也能拯救1万2千人。
所以我觉得如果你有这样一个提高安全的技术,仅仅因为怕舆论或者法律起诉就雪藏起来,这在道德上是错误的。