Tesla自动驾驶的前世今生

Tesla自动驾驶的前世今生

【本文近一万字,预计阅读时间30分钟,图片50张,请尽量连接WIFI,欢迎阅读,提前感谢,本文已授权部分转载自ifanr】


前言——自动驾驶还是自动辅助驾驶?

在说自动驾驶前,我们不妨先回到课堂,来说一点这方面的背景知识,在很多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. [1]
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.[2]
自动驾驶车(无人驾驶车,自驾驶车,机器人车)是能自动感应周围环境并且无需人干预而自动导航的载具

所以前者Autopilot在业界(航空,火车,轮船等)早有习惯对其定义是一种辅助驾驶系统,主要目的是节省驾驶员精力,在无须驾驶员连续干预的情况下,自主完成既定的部分航线。

而后者则是指载具能自主完成航线规划以及行进。两者很主要的区别是人的参与度,前者需要人参与,而后者完全不需要人参与。

现在的问题是这两个完全不同意义和背景的单词,被翻译成中文都成了“自动驾驶”。所以人们的误解先从这里开始,在英语国家看来Autopilot指的就是飞机上那种辅助系统,但是到了中国,就变成了无需人而自动上路的车。也无外乎在一个月前,Tesla 官方把翻译从自动驾驶换成了自动辅助驾驶:

虽然两者在中文环境都能翻译成自动驾驶,显然自动辅助驾驶比自动驾驶更能表明Autopilot这个系统的实际用途,否则也不会有这次中文改名了:

所以现在我们统一了对自动驾驶的定义,我们来看看Tesla的这个自动辅助驾驶系统Autopilot背后究竟是什么技术,为了不引起困扰,我会在后文中分别用对应的自动辅助驾驶来指代Tesla的Autopilot,用自动驾驶来指代业界对无人驾驶的定义。


Autopilot 1.0 —— 借水行舟的Tesla

说到Tesla这个自动辅助驾驶,就必须先说目前第一代Autopilot背后的功臣:Mobileye

Mobileye是一家创立于以色列的公司,专注于ADAS(高级辅助驾驶系统)的软硬件开发[3],其特有的EyeQ视觉识别芯片以及ADAS软件被应用于多家汽车厂商,其中最近的EyeQ3芯片几乎卖给了所有的汽车厂商:[4]

例如被应用在Audi zAFS系统中便有Mobileye 的EyeQ3芯片:[5]

在Mobileye的演示视频中可以看到他们通过对摄像头采集的数据进行分析和处理可以识别道路:[5]

这个演示中,Mobileye识别出不同车的位置以及形状,前后(绿线)或者侧面(黄线):[6]

这里是标记出行进中障碍物的位置以及可用空间:[5]

所以把上述技术综合到一起就是下图这样:

包括车的形状,位置,前后都能一一识别

以及行人,障碍物,还有路牌,红绿灯都能辨别出来

道路的方向,可用的空间都被一一记录下来

所以综合上面几种技术,Mobileye独到之处在于:

  • 自由空间标记
  • 启发式路径寻找
  • 道路避障
  • 路牌识别

所以由于Mobileye的技术在其领域内非常独到,也无怪乎上面一众车上都找上门来使用其技术和芯片。在这个视频中,他们甚至还调侃NVIDIA去年发布的Drive PX车用电脑使用了Mobileye eyeQ3芯片但是没有说明出处:[5]

NVIDIA官方的Drive PX官方宣传图:[7]

当然现在已经更新到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的计算能力:[6]


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例子来说明为什么有区别:[5]

漏报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自动驾驶1.0——是游刃有余还是如履薄冰?

说完了Tesla自动辅助驾驶技术的来源,我们现在来看看Tesla的自动辅助驾驶是怎样一种技术,又是如何炼成的:

首先,我们不妨回顾一下目前业界对车自动驾驶等级的定义:

参照美国的标准,其中NHTSA是美国国家公路交通安全管理局,SAE是美国汽车工程师协会

图片来源:cheyun.com/content/1042

目前Tesla的自动辅助驾驶Autopilot达到了第二级,部分实现了第三级功能,在向完整实现第三级乃至第四级迈进。

同时目前业界和学术界对自动驾驶的实现方法来说主流是摄像头和Lidar,雷达都是作为辅助信号。

Lidar,摄像头,雷达之间有什么区别呢?对此非专业研究自动驾驶的笔者只能简单介绍一下:

Lidar,俗称的激光雷达:

摄像头,以Mobileye举例就是特殊定制的单色摄像头,位于车顶玻璃上方:

而雷达,则是分布于车四周以及前方的雷达探测点:

在很多自动驾驶开发平台上,往往是综合运用这三者,然后通过相应的软件算法去处理这些设备收集而来的数据

雷达穿透力很强,不受雨雾等环境影响,也不受限于光线,但是生成的3D环境图在Tesla 8.0自动辅助驾驶公布之前并没有多少实际应用范例


Lidar穿透力其次,可以生成3D影像图,但是成本巨大,甚至达到整车的成本,同时体积也是个需要解决的问题,多为学术界和研究时的标配,在量产路上还需要很长的时间,此外Lidar由于是可见光域,所以也受到雨,尘埃,雾的影响,同时反射效果并不强。

摄像头没有穿透力,需要光线,只能获取2D图像,3D环境建模只能靠算法理解,一旦获取的图形有误差,会极大的影响最终分析结果,好处当然是成本非常低,而且技术普遍被工业界研究,例如Mobileye,NVIDIA等图像识别巨擎。


简单分析完三种技术的优劣,我们来看Tesla的自动驾驶方案,下面的截图来自于Tesla 自动驾驶部门负责人Sterling Anderson在2016年5月于MIT的演讲:[8]

Sterling一上台就开门见山的说Tesla为什么要搞自动驾驶:

为了“更快的推进世界向可持续能源前进”,这个愿景被转化成两个目标:

  • 让我们的交通资源更高效
  • 让我们更高效的使用目前的交通资源

所以第一条便是指Tesla的电动车,电能存储等。

第二条便是对应的自动驾驶系统,正是目前低效的驾驶系统和各种人为失误导致每年单在美国就有3万3千人丧生,55亿个小时被堵车浪费掉,同时还需要2740平方公里用来作停车场。

Tesla 目前在Model S和Model X上面采用的自动辅助驾驶系统集成了12个超声波传感器,用来识别周围环境:

一个前置摄像头,用来辨识前方物体:

一个前置雷达,用来辨识前方物体:

以及卫星高精度地图:

接下来的部分便十分有趣,Tesla虽然在所有车上面内置了自动辅助驾驶的硬件,但是真正把完整的自动辅助驾驶交给用户其实是一个不短的过程,而这其中促成这一切的关键是OTA空中更新——最初的Tesla只是拥有道路辅助警告,依靠每一辆Tesla都拥有免费的无线3G/4G LTE网络,通过OTA来获取最新的软件和功能进一步扩展辅助驾驶的潜力:

  • 2014年10月在所有Tesla车型上面安装自动辅助驾驶硬件(6.0系统)
  • 2014年11月开启道路偏离警告和速度提示(通过摄像头读取路边车速牌)
  • 2014年12月开启自适应定速巡航系统以及前方碰撞预警
  • 2015年3月开启自动紧急刹车和盲点预警
  • 2015年10月开启自动方向盘接管,侧方位碰撞躲避和一字位自动停车,真正意义上实现了自动辅助驾驶功能(正式启用7.0系统)
  • 2016年1月开启十字位停车,弯道车速适应以及召唤进出车库(7.1系统)

所以我们口中的Tesla 自动辅助驾驶其实是一整套套件的合集,Tesla每次开放一点,最后完整成一体才有了我们现在看到的自动辅助驾驶Autopilot。这其中每一次更新都经过了内部测试,封测,路测,验证以及更新到实际Tesla车队,再通过车队反馈数据进一步加强自动辅助驾驶。所以不同于Google,Apple目前闭门造车搞无人驾驶,Tesla 是采用了一种迭代和渐进式的方式来逐步实现真正意义上的无人驾驶,两种方式各有优劣,后面会进一步分析。

接下来的内容更加有趣,这张关于车队学习幻灯片介绍了几个重要数据:

从自动辅助驾驶硬件开始收集道路数据开始到2016年5月,Tesla收集了12亿五千万公里的数据

从自动辅助驾驶激活到2016年5月,Tesla收集了1亿6千万公里的自动驾驶数据

车队每天会记录420万公里里程数据(现在这个数据已经扩大到500万公里),只需要大约6小时便可以收集100万公里数据

Tesla非常聪明的一点是在2014年10月之后的车身上全面安装了自动辅助驾驶硬件,即便是你没有花钱激活自动辅助驾驶功能,你的车一样会在路上搜集数据。

这是个什么概念?

Google的自动驾驶汽车,从立项到现在4年一共也就积累了不到250万公里的数据。[9] Tesla只需要15个小时便达到了...... 这指数级的差别注定了对后面Tesla 8.0更新的大换血埋下了伏笔。

Sterling专门举例说Tesla的自动辅助驾驶性能从最初不如人工驾驶到目前远超人工驾驶全靠一步一步的通过真实数据去对比和学习。下面是Tesla 自动辅助驾驶一个月中的数据对比:自动辅助驾驶时,Tesla可以更长时间保持在道路中心,对比人工驾驶只有不到1/3的时间能做到完全居中,差别非常显著。

说完了理论依据,我们再看看实际上路的表现,这里附上外媒对Tesla 自动辅助驾驶和其他车商类似自动辅助驾驶的对比和评测:

1. The War For Autonomous Driving: 2017 Mercedes-Benz E-Class VS. 2017 Tesla Model S

2. Semi-Autonomous Cars Compared! Tesla vs. BMW, Mercedes, and Infiniti

3. Hands off

4. Testing (Semi) Autonomous Cars With Tesla, Cadillac, Hyundai, and Mercedes


上述测试中翔实的测试数据和结论足够我再写一篇长文分析了,由于时间原因,只作部分摘录和翻译:

在上面autofil的测试中,测试者发现奔驰E200的自动辅助驾驶有非常严重的漂移现象:

在过一个大弯的途中:

奔驰在自动辅助驾驶中越过了道路中央的黄线,并且跑到了逆行车道,我们不得不人工把车调回来,因为车完全没意识到自己已经逆向行驶。

Tesla始终保持在黄线内测,无需人工干预。

小弯道:

奔驰在行驶中滑出了道路白线,并且完全没有修正企图。

Tesla很轻松就保持在道路中心。

下一个弯道中,奔驰继续滑出了黄线,而Tesla继续保持领先

最后我们高速通过弯道:

我们放开让汽车自己控制,不出意外,奔驰继续滑出了黄线,奔向了逆行车道。

Tesla虽然有点擦线,但是它依然保持在道内并且减速后顺利通过了弯道,我们没有人工干预。

对比全程的结论:

Steering Wheel warning:车辆发出的掌握方向盘预警

Driver input:手工干预次数

thedrive的结论:

Benz Drive Pilot: The only good thing about Drive Pilot is that your Mercedes will protect you from it. Did I trust it? Only at a crawl. Did I understand it? I don’t understand how Mercedes-Benz could release this to the public. I hated literally everything about it. It drove like a drunk ten year old, fighting for the wheel with a drunk fourteen year old. It was, in most conditions, dangerous.

奔驰Drive Pilot:唯一值得一提的是这系统会想方设法保护你不要用它... 我能否信任它?一丢丢而已。我能否理解它?我完全无法理解奔驰怎么能把这样一个系统发布给公众。基本从头到尾都让人厌恶,它开起来就像一个喝醉酒的10岁小屁孩,跟一个10岁的醉酒小青年抢方向盘。在大多数情况中,它开得太危险。
Autopilot: I loved it. A few hours in and one begins to learn a dance between looking out the window, looking at the display and using the stalk to manage speed. Once mastered, the pedals become largely unnecessary. It drives like a very good second year teenage license holder who really wants impress, and is getting better all the time.

It's definitely safer than a human driver alone, assuming you use it as intended. Without a doubt, it is the best ADAS system on the market. It’s incredible Level 2, but also a facsimile of Level 3 without sufficient advance warnings, which is where problems have risen. Ignore the warnings like a child and you will be disappointed, or worse. Heed the warnings like an adult, and it’s the best thing on the market.

Tesla的Autopilot: 我喜欢它,尝试几个小时后就能享受它带来的便捷:看着窗外的风景,调节调节驾驶参数。一旦掌握了要点,油门变得不再那么重要。它开起来就像是一个有着良好驾驶培训的少年非常想让你感到印象深刻,也确实开得越来越好。
如果在正确环境下使用,它确实比单纯人工开车感到安全。在目前ADAS市场上,是无需质疑的最佳系统。它达到了无人驾驶第二级水准,拥有部分第三级的潜力。但是由于预警信息还不完全到位,最好别期望能完全达到第三级。作为一个成年人去合理甄别这些提示信息,你会发现这是市场上最好的系统,

在此就用一张图来总结,请自行脑补:


8.0时代的Autopilot ——通向未来之路

今天上午,Elon Musk发布了关于Tesla 8.0升级中的Autopilot 的情况,第一次看到这个消息,我很震惊,但是细细一想又觉得合情合理,这里不妨一步一步分析:[11]

Autopilot自动辅助驾驶再升级:通过雷达看世界

那次Josh Brown的车祸确实是8.0系统中更新Autopilot的催化剂,但是真正让8.0的Autopilot大换血的其实是前面提到的车队学习而带来的,其实在上一个月的财报上,Elon Musk 说了这么一句话:[12]

“It blows me away the progress we are making. And if it blows me away, it’s really going to blow away other people too when they see it for the first time.”

(Tesla)目前自动驾驶技术的进展简直让我目瞪口呆。如果这能让我目瞪口呆,绝壁让其他人呆若木鸡。

很多人以为Elon谈的是未来完全自动驾驶的汽车,其实Elon指的就是 8.0里面的Autopilot:

在我们即将向特斯拉车主推送的8.0版本软件中,最显著的就是Autopilot自动辅助驾驶升级。我们通过使用车辆搭载的雷达,采用更先进的信号处理,生成一幅世界的影像。该雷达是Autopilot自动辅助驾驶配套硬件的组成部分,全部2014年10月之后出厂的特斯拉车型都搭载了这一雷达。一直以来,该雷达一直是主摄像头以及图像处理系统的辅助传感器。

所以如果我们把7.0时代的Autopilot称之为Autopilot 1.0,那么8.0里面的Autopilot 称之为2.0毫不为过,它根本不是对于之前1.0的修补,而是彻底重写了整个自动辅助驾驶:

  • Autopilot 1.0 基于Mobileye的图像识别技术,主要数据来自于车顶的Mobileye摄像头,车首的雷达和周边雷达只是提供辅助信息。
  • 而Autopilot 2.0则是基于雷达识别环境,主要数据来源于车身上的雷达,而辅助数据则来源于车队学习的高精度地图和白名单。

所以我们之前的分析就派上用场了,通过雷达来成像主要难点就是如何解决误报False Positive,正是因为雷达成像的特殊性,一个很小的金属物体可能会被识别成一堵墙,所以人们才不费周折的去用高成本Lidar,但是Tesla确通过自己的技术巧妙解决了。

Tesla专门用三段来描述这个例子:

特定波长的光子可以轻易地穿越雾、粉尘、雨、雪,然而金属物品看起来如同镜子。雷达可以看见人体,但是他们被显示为部分透明。木制品和涂色塑料制品这些对人类而言显而易见的物品,对雷达而言,几乎都像玻璃一样透明。

另一方面,任何凹型的金属表面不仅仅会反光,更会将反射信号放大数倍。比如,一个丢弃在公路上的易拉罐,如果凹状瓶底朝向车头,就会被显示成为一个大型的危险障碍物,但这时候,你一定不想猛踩刹车而避过这个易拉罐。

因此,如何避免由于错误报警而导致车辆停止行进,是使用雷达带来的一个大问题。在车辆即将撞上大型物体时,刹车是必要的 ---- 但不应该是为了避开一个易拉罐。这些不必要的刹车行为,轻则令人不快,重则导致驾驶员受伤。

所以Tesla想说的就是:

我们解决雷达的误报问题了!看到这里的读者是否会会心一笑呢?Amnon博士口中自动驾驶最难攻克的难关就这样被技术驯服了。



接下来就是讲为什么他们会采用雷达替换掉图像识别技术:

为了解决误识别障碍物从而导致频繁刹车制动问题的第一部分,是拥有更为详细的点云数据。空中升级8.0系统对现有硬件进一步挖掘,让雷达可以探测到的周边的物体(数量)达到以前的六倍,并且有能力在每一个物体上获得更多细节信息。

减少误识别的第二部分包括整合每隔0.1秒获取的雷达快照,汇编成为现实场景的"3D"影像。(通常)通过单一影像帧,很难知道物体是移动的,静止的,或者只是反光造成的虚像。通过比较包含车辆速度、预期轨迹信息的连续影像帧,车辆可以分辨前方物体是否是真实的,同时预估发生碰撞的概率。

一句话来说就是:

我们的工程师解决了雷达的成像问题!不再需要摄像头主唱了

那么雷达下的世界会是什么样呢?目前我们只能瞎想了,借用Google 自动驾驶时的Lidar数据图,在Tesla的雷达眼里会不太一样:

最后一个重点,通过车队学习的高精度数据去对比雷达探测的实景来白名单过滤:

第三部分就更加复杂。当行驶中的车辆正在接近一个高速公路上坡时视线上方的路标,或当车辆在通过带有交通标志的桥下,这种视觉上的落差,经常看起来像是将要发生碰撞。而导航和高精准GPS都不足以判定车辆是否能从此物体下方安全通过或发生碰撞。到车辆接近,道路坡度改变时,再刹车为时已晚。

这种情况下,车队学习功能便派上用场。一开始,车队不会采取任何行动,而只是识别出路标、桥梁和其他静止的物体,并通过雷达绘制地图。车载计算机系统在后台将预计是否应该刹车,并与驾驶员的实际行为进行比较,并将这些数据上传至特斯拉数据库。如果一些车辆安全通过被雷达标定的物体,无论Autopilot自动辅助驾驶是否开启,这个物体将被加入地理编码的白名单(被标注安全)。

如果雷达探测到前方障碍物,而且特斯拉数据库显示该地点因误判而导致刹车行为的几率很小,即使在光学摄像头没有探测到前方障碍物的情况下,车辆仍然会采取轻度制动。随着系统置信度不断提升,当雷达确定99.99%发生碰撞的可能性时,刹车强度将会逐步提升至全力制动。或许这不能彻底地避免碰撞的发生,但明显的减速,会使车上乘客受到严重伤害的机率大大降低。

这不正是直面Josh Brown那次车祸吗?就差没说名字了

还记得上面我们提到的车队学习:

雷达本身还不够,车队学习的大数据来辅助判断你探测到的一草一木是真的“草”还是“木”。

所以大量跑在路上的Tesla就是一双双“眼睛”和“手”在你驾驶的同时,它们就在默默的更新数据库,为了下一个通过此地的人的安全。

如果我们再次回顾Josh Brown事件,新的自动辅助驾驶系统会有非常不一样的处理流程,下面的话摘自Tesla发布8.0系统后答记者问部分,来源于electrek.co 整理录音:[13]

Elon Musk – Tesla CEO

These things cannot be said with absolute certainty, but we believe it is very likely that yes, it would have. The reason is that it would see a large metal object across the road and knowing that there’s no road sign, there’s no overhead road sign, in that position, therefore it would not be a whitelisted situation and probability would be assessed as high and so it would brake.

(Josh Brown事件)没有百分百的确定,当时我们相信在类似的情况下,紧急刹车会正确启用。因为在新的系统看来(卡车)是一个巨大的金属物体横在道路中间,同时从车队数据中得知该路段并没有这样的图牌,因此它不会认为这是一个安全的物体,从而会因为高碰撞可能性而紧急制动。

如此浩大的一个工程,Tesla竟然用一年的时间完成了(上一次发布Autopilot是2015年10月),不得不说正是大量路上的 Tesla 产生的数据给他们以激励,才让雷达为主的自动辅助驾驶时代到来,而那次车祸不过是让它早早提上日程的催化剂。

对此Elon Musk解释道:[13]


It’s both the data and the way that data is use by the car. What algorithms we use with the data? Those things are both improving rapidly over time.They have a multiplying effect. It’s sort of like the data multiply by the quality of the algorithms and the data is increasing rapidly and the quality of algorithms increase rapidly so it ends up the area under the curve of those two things. It’s really quite dramatic over time.
在数据和算法上面的显著进步促成了这次8.0以雷达为主的自动辅助驾驶,这是一个乘法效应,数据x算法最后得到自动驾驶的质量。通过车队学习我们获得了大量的驾驶数据,再辅以快速进步的算法使得驾驶质量进一步提升

在未来是否使用Lidar上,Musk坚决的回答No:[15]

...we do not anticipate using lidar. Just to make it clear, lidar essentially is active photon generator in the visible spectrum – radar is active photon generation in essentially the radio spectrum. But lidar doesn’t penetrate intrusions so it does not penetrate rain, fog, dust and snow, whereas a radar does. Radar also bounces and lidar doesn’t bounce very well.
我们不会使用Lidar,Lidar工作在可见光频率,雷达工作在不可见光频率。Lidar穿透性不强,无法穿透雨雾,尘埃和雪等雷达擅长的环境,雷达的反射效果也好于Lidar。

不过这次8.0的发布也意味着Tesla与Mobileye正式分道扬镳:

Elon Musk – Tesla CEO

This is all developed in-house. I prefer not to comment specifically on the Mobileye relationship, but this was all done in-house. This is all Tesla software.
所有的开发都是Tesla自己完成的。我不想评价我们和Mobileye的合作关系,但是这次8.0系统的自动辅助驾驶是完全由Tesla自己开发的软件。

另外在此笔者不妨大胆假设一下Tesla之所以可以在两年前的Tesla上面更新这套系统,估计与Model X发布时,内部CPU Tegra 3进行了一部分升级:[15]

Tesla的主CPU使用了NVIDIA的VCM接口,如下图右下方的模组:

单独拆下来便是2011-2013年的Model S在MCU部分所采用的Tegra 3主CPU VCM模组:

这是Tesla在仪表盘部分使用的Tegra 2 VCM模组:


基于NVIDIA的VCM模组是一个通用的可升级模块,只需要更换这部分即可获取最新的CPU/GPU而无需大改整个硬件系统。我们可以大胆假设这次更新所需的CPU资源便是来源于升级后的VCM模组,推测是使用了NVIDIA Tegra K1主芯片。当然这只是我的猜测,具体是否使用K1只能通过拆解才能发现,目前暂时没有拆解照片来验证。

在NVIDIA的官方网站我们可以找到这样一个有趣的页面:nvidia.com/object/visua

上面标注的部分就是K1的VCM模组以及Tesla的驾驶仪表盘。


Tesla的自动辅助驾驶模组摄像头部分:[17]

可以清晰看见拆解后的模组上面使用的Mobileye EyeQ3芯片:

车前端的雷达和超声波传感器:

驾驶中超声波传感器可以实时反馈信息,确定车与周边障碍物的距离:


Tesla采用雷达而放弃主流的摄像头以及Lidar(激光雷达)的做法看似非常激进。个人对其也是颇多怀疑和好奇,最终这样做的实际效果如何还得经过实践检验,好在两周后具备Autopilot的Tesla车队就能收到8.0的OTA更新。从个人Autopilot的驾驶体验来看,我对8.0是非常期待,在此引用一下我在另一篇关于自动辅助驾驶体验部分的结论:



自动辅助驾驶并非完美,目前的版本依然需要人为控制变道信号以及进出匝道等,对道路的需求也限制在高速和城市,而且一旦遇到稀有的特殊情况,加上人的疏忽大意,可能造成生命财产的损失。 所以作为驾驶者,在享受科技带来的便利性的同时一定要负责的合理使用,而不是滥用。
笔者以为无论什么技术,安全是首要目的,但是无论技术本身如何安全,用户都需要:
1. 相信这个技术
2. 懂得怎么去使用这个技术
3. 想要使用这个技术

而Tesla的自动辅助驾驶Autopilot 成功的在这三点上面说服了笔者,据Tesla官方的数据,开启了自动辅助驾驶的Tesla每天积累的里程是500万公里(特斯拉宏图之第二篇章),所以显然笔者的选择并不孤单,因为有千万的用户跟笔者一样天天在使用自动辅助驾驶。同时启动辅助驾驶就跟开启自动巡航一样简单:只需要向驾驶员方向快速拨动拨杆就能启用,往前拨动拨杆,转动方向盘或者刹车都会自动取消自动辅助驾驶。在使用之前,笔者详细的阅读了使用教程非常明确该系统的能力以及局限性,所以按照Tesla的要求,规范的去使用。最开始的几分钟是最惊恐的:看着车的方向盘自己转动,反射性的想去控制;看着前车减速,不自觉的把脚伸向刹车;看着车自己变道,超车,心里无不捏着一把汗...但是随着使用时间的增加,笔者慢慢的放松了紧张,更多的时候是在享受。随着车自己一次又一次在不同环境下证明自己,笔者越来越离不开自动辅助驾驶了,有时候哪怕是很短一段路,我都想依靠自动辅助驾驶。

这种感觉就像是第一次使用iPhone的指纹识别touch ID,在其以前我用过很多带指纹识别的设备,最后无比因为粗劣的用户体验而放弃。突然在iPhone上面手指往home键一放,直接进入桌面,那种识别率和识别方式的质变直接把用户体验上升到新的高度:聊天软件不再纪录冗长的密码,银行app不再需要短信验证码,ApplePay轻触一下扫描指纹就能完成支付... 而Tesla的自动辅助驾驶的体验就是这样:上手简单,功能易用,效果出色。而频繁的正向反馈又促使楼主进一步去探索和挖掘他的潜力,直到再也离不开自动辅助驾驶。

对很多公司来说,自动驾驶是个先有蛋,还是先有鸡的问题:“没有足够的数据,无法做到完美的自动驾驶”,但是,光靠实验室和研究人员有限的室外测试,数据来得又太慢,技术又无法进步。
这个问题上,Elon带领下的Tesla选择了先向公众开放,再逐步完善的办法,因为Elon相信目前的自动驾驶安全性已经超过人类,既然能救命何不开放给公众?

此外另一个有意思的数据是,Elon在昨天的问答环节提到了目前自动辅助驾驶可能导致的潜在事故中,绝大部分是老用户疏忽大意犯下的:[14]

Elon Musk:

One of the ironies that we’ve seen is counter intuitive and a lot of people on the consumer watchdog sites and in some cases on regulatory sites have assumed that Autopilot accidents are more likely for new users. In fact, it is the opposite. Autopilot accidents are far more likely for expert users. It is not the neophytes. It’s the experts.

我们觉得非常讽刺的事情是:很多消费者观察网站密切关注着Tesla自动辅助驾驶的一举一动,认为自动辅助驾驶中出现的问题更多是针对新手用户。但事实上正好相反,自动辅助驾驶中的事故绝大部分都是来自于专业用户。

They get very comfortable with it and repeatedly ignore the car’s warnings. It’s like a reflex. The car will beep at them, they tug the wheel, the car will beep at them, they tug the wheel, and it becomes an unconscious reflex action. So we will see half a dozen or more, sometimes as many as 10 warning in one hour continuously ignored by the driver. We really want to avoid that situation.

他们非常习惯于自动辅助驾驶带来的便利并且主动忽略掉车的警告和提示。就想产生了习惯反射,每次车产生报警要求他们手握方向盘,他们就摇动一下方向盘瞒过传感器,然后继续做其他事情,久而久之就变成了肌肉反射。所以我们观察到这些用户往往可以在一小时内激活6到10次的“请手握方向盘”警告。我们需要改变这种危险的行为。

下图中正是Tesla在自动驾驶中发出警告提示驾驶员手握方向盘:

所以笔者反对那些在自动辅助驾驶评测和体验中不负责任和不顾安全的行为。应该在充分知晓自动辅助驾驶性能和限制的前提下,合理使用自动辅助驾驶,同时希望Tesla继续改良自动辅助驾驶,使其更加完善,直到真正的自动驾驶实现。


所以回到最上面的问题,究竟是Google式的闭门造车一口气实现Level 4的自动驾驶好,还是Tesla式的从Level 2一路向Level 4自动驾驶循序渐进好?

如果用Elon Musk自己的话来说:

我们目前的自动辅助驾驶已经被证明能提供比手动驾驶安全性,在道路致死率上面是世界平均水平的1/3。即便是退一万步来讲,我们的系统只比人工好1%,那么一年车祸导致的120万人里面,我们也能拯救1万2千人。
所以我觉得如果你有这样一个提高安全的技术,仅仅因为怕舆论或者法律起诉就雪藏起来,这在道德上是错误的。

谢谢阅读!

后记:

一个多月前写下这个标题就有点后悔,毕竟距离上一次写严肃点的文章有段时间了,真不敢夸海口去谈一个不是自己专业的题目,但是今天看到Elon Musk公布Tesla 8.0 系统专门对自动辅助驾驶进行了大换血,又觉得自己这篇拖了很久的文章不完成确实对不住自己搜寻资料的日日夜夜,所以在此先感谢各位阅读本文的读者,希望这篇文章能给你们带来一点点关于Tesla自动驾驶项目的启示。

最后一点私货:身为特斯拉车主是怎样的体验? - Ryan Woo 的回答

以及:亲历Tesla Gigafactory超级工厂开幕典礼 - Ryan Woo的文章 - 知乎专栏

引用来源:

1.Wikipedia: Autopilot

2.Wikipedia: Autonomous car

3.ADAS: Advanced driver assistance systems

4. Mobileye: Mobileye - מובילאיי

5. The Future of Computer Vision and Automated Driving by Prof. Amnon Shashua: youtube.com/watch?

6. What goes into sensing for autonomous driving? youtube.com/watch?

7. NVIDIA Drive PX: nvidia.com/object/drive

8.Delivering on the Promise of Autonomous Vehicles (2016.5.24)Delivering on the Promise of Autonomous Vehicles

9. Google self-driving car :Google self-driving car

10. 无人驾驶第一起命案——特斯拉制造

11. Autopilot自动辅助驾驶再升级:通过雷达看世界

12. Elon Musk on Tesla fully autonomous car: ‘What we’ve got will blow people’s minds, it blows my mind… it’ll come sooner than people think’

13. Tesla发布8.0 答记者问4: Transcript: Elon Musk’s press conference about Tesla Autopilot under v8.0 update [Part 4]

14. Tesla发布8.0 答记者问2: Transcript: Elon Musk’s press conference about Tesla Autopilot under v8.0 update [Part 2]

15. Exclusive: The Tesla AutoPilot

16. Transcript: Elon Musk’s press conference about Tesla Autopilot under v8.0 update [Part 5]

17. Autopilot Module Tear Down