0
雷锋网按:本文作者Ryan Woo,曾担任中科院计算技术研究所交互设计师,现在硅谷担任计算机软件工程师。原文载于知乎,雷锋网已获授权。
这是Tesla自动辅助驾驶时,由于系统没能正确识别横向来的卡车,自动辅助驾驶中的紧急刹车功能没能正常启用导致的。
——文章分析了特斯拉的第一起事故
很多媒体喜欢把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.
Autopilot:一个用来控制载具轨道而无须人工一直干预的系统
而我们常说的自动驾驶汽车,无人驾驶,其实是另一个单词: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,用自动驾驶来指代业界对无人驾驶的定义。
说到Tesla这个自动辅助驾驶,就必须先说目前第一代Autopilot背后的功臣:Mobileye
Mobileye是一家创立于以色列的公司,专注于ADAS(高级辅助驾驶系统)的软硬件开发,其特有的EyeQ视觉识别芯片以及ADAS软件被应用于多家汽车厂商,其中最近的EyeQ3芯片几乎卖给了所有的汽车厂商:
例如被应用在Audi zAFS系统中便有Mobileye 的EyeQ3芯片:
在Mobileye的演示视频中可以看到他们通过对摄像头采集的数据进行分析和处理可以识别道路:
这个演示中,Mobileye识别出不同车的位置以及形状,前后(绿线)或者侧面(黄线)[6]:
这里是标记出行进中障碍物的位置以及可用空间:
所以把上述技术综合到一起就是下图这样:
包括车的形状,位置,前后都能一一识别
以及行人,障碍物,还有路牌,红绿灯都能辨别出来
道路的方向,可用的空间都被一一记录下来
所以综合上面几种技术,Mobileye独到之处在于:
自由空间标记
启发式路径寻找
道路避障
路牌识别
所以由于Mobileye的技术在其领域内非常独到,也无怪乎上面一众车上都找上门来使用其技术和芯片。在这个视频中,他们甚至还调侃NVIDIA去年发布的Drive PX车用电脑使用了Mobileye eyeQ3芯片但是没有说明出处:
NVIDIA官方的Drive PX官方宣传图:
当然现在已经更新到Drive PX2,使用Tegra Pascal芯片
由于Mobileye的视觉识别芯片被广泛应用于汽车领域,所以Tesla找上Mobileye采购专用视觉识别芯片并不意外。
但是有意思的是Tesla并没有完全采用Mobileye的软件,而是通过自己的软件结合Mobileye以及NVIDIA硬件来实现了自己的自动辅助驾驶Autopilot,为什么会这样?
在下面这些线索里面我们可能会找到答案:
1. 在 What goes into sensing for autonomous driving? 这个视频中,Mobileye的Amnon博士在32分钟的时候提到了Tesla的自动辅助驾驶,称其使用了一部分EyeQ3的计算能力:
Tesla的自动辅助驾驶使用了一部分(EyeQ3)的潜力...
他的话间接证实了Tesla的自动辅助驾驶只是使用了其硬件EyeQ3,但是搭配的是自己的软件。因为如果是使用的Mobileye的完整解决方案,是不可能只使用某个局部功能的,例如红绿灯识别,无中间黄线的双行道识别等并没有被Tesla用上。
2. 第二个证据,我们首先从一个悲剧开始:今年5月,Josh Brown驾驶的Tesla Model S在佛罗里达一条未封闭的高速上因为与横穿马路的大卡车相撞而丧命,这起看似普通的交通事故却引起了广泛关注,原因便是这是第一起在自动辅助驾驶中发生的车祸。
我们先来回顾一下Mobileye以及Tesla官方对这次事件的回复:
在Josh Brown车祸发生时,Mobileye的发言人首先出来澄清说自己的系统不能胜任这样的碰撞检测:
Dan Galves, Mobileye’s Chief Communications Officer:
“We have read the account of what happened in this case. Today’s collision avoidance technology, or Automatic Emergency Braking (AEB) is defined as rear-end collision avoidance, and is designed specifically for that. This incident involved a laterally crossing vehicle, which current-generation AEB systems are not designed to actuate upon. Mobileye systems will include Lateral Turn Across Path (LTAP) detection capabilities beginning in 2018, and the Euro NCAP safety ratings will include this beginning in 2020.”
“我们的紧急刹系统主要应对于追尾导致的碰撞,对于这次车祸中的横穿车辆,我们目前的系统没法准确处理。类似的情况会在2018年左右的新系统中解决。”
Tesla 很快对Mobileye的评论进行了回应,解释了Tesla虽然也是使用了Mobileye的芯片,但是技术上已经涵盖了这种碰撞处理,只是由于当时环境条件导致失误,没能阻止惨剧发生:
“Tesla’s autopilot system was designed in-house and uses a fusion of dozens of internally- and externally-developed component technologies to determine the proper course of action in a given scenario. Since January 2016, Autopilot activates automatic emergency braking in response to any interruption of the ground plane in the path of the vehicle that cross-checks against a consistent radar signature. In the case of this accident, the high, white side of the box truck, combined with a radar signature that would have looked very similar to an overhead sign, caused automatic braking not to fire.”
“Tesla的自动辅助驾驶是我们自己开发的,综合使用了内外部各种设备和技术来处理这样的情况。从2016年1月开始,我们的紧急制动就会在这种类似的车辆横穿中生效。但是在这次事故中,高大,白色的卡车车厢,被摄像头捕捉后被误判成横跨马路的路牌,才是导致问题的原因。”
知乎上关于这次车祸的问题提了很多,但是可惜的是很多媒体还是缺乏基本的常识,为了骗个眼球取了一个骇人听闻的标题《无人驾驶第一起命案——特斯拉制造》[10]
个人意见,这个标题犯了两个错误:
1. 自动辅助驾驶不是无人驾驶(Autopilot vs Autonomous)
2. 自动辅助驾驶没能避免的车祸 vs 自动辅助驾驶导致的车祸
你说,第一条我还能理解,前面已经详细说明和对比了自动辅助驾驶和无人驾驶的区别。
但是,第二条不是文字游戏吗?
还真不是。
在统计学中有两个重要概念:False Positive 和 False Negative,翻译过来就是“误报”和“漏报”。
误报就是指明明是正确的东西,被报告成错误;漏报则是明明是错误的东西,却漏过了。
打个比方,就好比你有一个杀毒软件,漏报就是有个病毒没发现,被漏过了,这在靠病毒关键词数据去寻找病毒的方式非常常见——一个新病毒很容易就感染成千上万台电脑。而误报则是把用户的正常文件当成病毒给删除了,这会导致严重的信任问题。因为误报行为相对漏报而言更加明显,容易被用户感知到,且一旦出现,可能会造成较大的影响,赛门铁克的误杀事件就是一个典型的例子。
同样在自动驾驶领域这是非常严肃的区别,继续借用Amnon Shashua 博士的Mobileye例子来说明为什么有区别:
漏报False Negative:系统失灵,系统延迟生效,不准确的测量等
误报False Positive:错误的紧急刹车,错误的转弯等
Amnon博士说自动驾驶的漏报就像杀毒软件漏报一样是不可能完全避免的,实现世界中总会有极端的边界状况出现,去挑战已有的技术,让技术失效,但是系统每次更新都会加强和完善,去修复错误,变得越来越好。
说完了漏报,他接着强调了误报对自动驾驶是个更加严重的问题:轻则召回,重则损失上亿还得背负骂名,甚至一蹶不起。想象一下你在正常自动驾驶行驶时汽车感应到前面一个小石头却被当成一面墙,然后紧急刹车会是什么状况。
再例如最近沸沸扬扬的高田安全气囊召回:丰田因安全气囊隐患在美新召回158万辆汽车,中华人民共和国商务部网站就是因为误报,导致本该救人的设备反而成了致命凶手。
如果举例来说,自动驾驶的漏报可能是车前面有1000种不同大小,材质,形状的路障。测试时发现999个都顺利刹车,有1种失败,这1种就是漏报;而误报可能是车侦测到前方有一个小易拉罐,确误认为是无法通过的路障,紧急刹车导致追尾乃至严重事故。
所以在自动驾驶领域,漏报是可以理解的,没有任何系统可议做到100%完美,但是误报往往就是人命关天的大事,说明系统本身有缺陷,轻则召回,重则厂商会承担严重的法律责任。
那么我们来看这次Josh Brown的事故是哪种呢?
正是漏报(False Negative),Tesla的自动辅助驾驶把横向而过的卡车当成了爬坡路上的路牌,以为车辆能顺利通过,结果车从卡车底部穿过,Josh Brown当场丧命,作为一次致死的事故,在高速上转头的卡车司机理所当然承担所有责任:
所以前面说媒体喜欢标题党,本来是一次自动辅助驾驶未能避免的车祸,被说成是自动辅助驾驶导致的车祸,一字之差,实际内容相差十万八千里。
在Tesla当时的自动辅助驾驶软件看来,卡车的车厢就像是这个下潜隧道的桥面,远看似乎能通过,实际是不行的:
所以我们对这起事故已经有了定性:
这是Tesla自动辅助驾驶时,由于系统没能正确识别横向来的卡车,自动辅助驾驶中的紧急刹车功能没能正常启用导致的。
而紧急刹车没有启用,是因为自动驾驶系统没有发送开启指令,自动驾驶系统没有发送指令是因为给予当时摄像头采集的画面,误判横行而过的卡车是横在路上的路牌。
这里面暴露了Mobileye技术的几个不足:
Mobileye的摄像头接受的是光的反射,如果摄像头效果受影响,例如在黑暗场景中没有了光线,那么识别能力大打折扣。
Mobileye的摄像头获得的是2D平面数据,需要图像识别的加工才能得到有价值的3D场景。
Mobileye的摄像头方案对道路场景的变化反应有限,全靠即时的系统自主判定。
Mobileye的摄像头数据获取是一种被动的方式,它搜集的数据都是已经发生的事,并且还有延迟
所以这起车祸时,摄像头刚好遇到太阳下山时强烈的背光导致识别能力不足,收集到的数据不完备,而这不完备的2D数据又经过图像识别加工成错误的3D场景,让车误判了前方的路况,从而酿成惨祸。
所以从根本上说,这次车祸是在一个非常极端的情况下,各种负面因素累加而成的结果。虽然技术上来说一次漏报并不足以对整个自动辅助驾驶系统判死刑,但是不能不说这次事故不够警醒,这里面的教训让Tesla 延迟了计划中的 8.0系统的发布,直接加速雷达主导的自动辅助驾驶时代的来临。
从这次严重的事故至今已经过去了有小半年,Tesla在路上行驶的的车更多了,使用自动辅助驾驶的车也更多,但是并没有再发生类似的事故,一定程度上也佐证了那次事故的唯一性和漏报特征——因为如果这是一次误报的话,类似的事情应该随着用户的增加而层出不穷才对。就像现被报道的某厂热门手机,由于电池的故障导致充电可能自燃,全球召回耗资10亿不说还得承担巨大的信誉损失。
预告:下一篇我们将来谈谈Tesla的自动辅助驾驶是怎样一种技术,又是如何炼成的,以及,Tesla与Google,Apple无人驾驶发展战略有什么区别?
雷峰网原创文章,未经授权禁止转载。详情见转载须知。