雷锋网按:本文作者Ryan Woo,曾担任中科院计算技术研究所交互设计师,现在硅谷担任计算机软件工程师。原文载于知乎,雷锋网(公众号:雷锋网)已获授权。
| 8.0时代的Autopilot ——通向未来之路
今天上午,Elon Musk发布了关于Tesla 8.0升级中的Autopilot 的情况,第一次看到这个消息,我很震惊,但是细细一想又觉得合情合理,这里不妨一步一步分析:
Autopilot自动辅助驾驶再升级:通过雷达看世界
那次Josh Brown的车祸确实是8.0系统中更新Autopilot的催化剂,但是真正让8.0的Autopilot大换血的其实是前面提到的车队学习而带来的,其实在上一个月的财报上,Elon Musk 说了这么一句话:
“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系统后答记者问部分,来源于http://electrek.co 整理录音:
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解释道:
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:
…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进行了一部分升级:
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的官方网站我们可以找到这样一个有趣的页面:http://www.nvidia.com/object/visual-computing-module.html
上面标注的部分就是K1的VCM模组以及Tesla的驾驶仪表盘。
Tesla的自动辅助驾驶模组摄像头部分:
可以清晰看见拆解后的模组上面使用的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在昨天的问答环节提到了目前自动辅助驾驶可能导致的潜在事故中,绝大部分是老用户疏忽大意犯下的:
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千人。
所以我觉得如果你有这样一个提高安全的技术,仅仅因为怕舆论或者法律起诉就雪藏起来,这在道德上是错误的。
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/106355.html