自动驾驶软件开发岗位 (智能汽车自动驾驶算法)

上篇文章讲述了软件之于未来汽车市场带来的价值。总结一下主要是相互关联的三点:首先是智能车机可以将人从驾驶负担中解放出来,做到极致就是全自动驾驶;其次是汽车可以被当做智能终端连接入云,既可配合自动驾驶还可以远程调配,也可以在车内收发和处理线上数据,也就是实现了车联网;在实现前两者的基础上,汽车就不再是是一个代步工具了,而是一个软硬件协同的“智能移动空间”,可以定制化满足消费者的工作、娱乐、生活等多样化需求,形成一个广阔的衍生市场。

在对“软件定义汽车”做到如此理解后,我们就不难发现,它的逻辑起点就是要实现车辆的自动驾驶。只有自动驾驶的水平不断提高,这个想象中的市场空间才会一点点变为现实。

自动驾驶的评级自L1至L5分为五种,从消费者的角度来说可以做如下理解:

L1:我自己开,车听我的

L2:特定条件下车会帮我控制速度、打方向盘和踩油门,但是我得全程盯着。

L3:车自己开,我不用盯。如果遇到紧急情况,车会提前提醒,我再接手开。

L4:车自己开,我不用盯。但是方向盘、油门、刹车灯驾驶硬件还在,我随时可以接手来开。

L5:车自己开,而且车里面没有驾驶硬件,有的只是我定制的一些符合我其他需求的软硬件设备(比如睡觉用的床,或是用于办公的桌椅,亦或是高级卡拉OK设备),我已经失去了开车的权利。如果想体验驾驶的感觉,请移步专门的赛车场进行娱乐性消费。

从以上对自动驾驶分级的理解来看,L3是一道分水岭。在这之前是我自己开,但在这之后才是车自己开,才会实现对人的解放。只有将人的驾驶责任解放了,车作为“智能空间”的市场才会被逐步开发出来。所以,自动驾驶是挖掘“软件定义汽车”背后价值的第一道门槛。

对于如何实现自动驾驶,无论是汽车制造商还是互联网企业都已经有了公认的技术框架(如下图所示)。

软件定义汽车架构,汽车自动驾驶软件架构

这个技术框架分为车内车外两部分。车外部分是“云”,也就是车联网数据。云主要为汽车提供本地设备看不见的东西,比如交通实况、路线规划等信息等。而车内部分则是感知系统(传感器)、分析系统(计算机)和执行系统(操控件),分别是车子的眼睛、大脑和双腿。车的眼睛感知周围环境交给大脑,大脑将本地信息与云信息进行综合分析处理,再发出指令让双腿去正确地行进。这一套集自动控制、复杂系统、人工智能、机器视觉、云计算等不同领域技术的框架就是自动驾驶的全套解决方案。

那么如何实现这套方案呢?目前来看有两种做法,一是从上往下(Top-Down),先造出能够自动驾驶的电脑,再造车;二是从下往上(Bottom-Up),电脑和车一起造,通过对软硬件的不断改进让汽车逐步实现全自动驾驶。

从上往下走的是互联网公司,如Waymo、Google和和百度,它们希望在开发出安全的自动驾驶程序后再安装到车上。十几年过去了,我们依然还在等。

而从下往上走的车企就比较靠谱,它们认为自动驾驶技术必然要经历L1和L2的阶段,一是为了降成本,二是为了实现L3积累足够的数据。在这种路线下,车企可以不断研发可量产的辅助自动驾驶汽车(也就是ADAS产品)让消费者购买,实现投入与回报的平衡,另一方面还可以让用户尝试ADAS产品新体验的同时,为车企不断积累测试数据,反映新的市场需求,反过来再让车企通过升级硬件或软件的方法改进自己的方案,一步步向无人驾驶迈进。这种稳扎稳打的方法相比第一条路更加现实,所以目前以特斯拉为首的大部分车企走的都是这个路径。

虽然车企们选择的研发路线是一样的,但是对于软硬件的理解,好像大家还是各有不同。说“各有不同”好像不太准确,主要就是马斯克和别人不同。

说到电脑和车一起造,也就是软件和硬件一起造。我们回到自动驾驶的技术框架再来理解一下,也就是“眼睛——大脑——腿”三个一起造。由于腿属于传统领域,那么也就是在“眼睛——大脑”身上下功夫。

马斯克选择的是“人眼——人脑”模式,而其他车企选择的是“千里眼——弱智”模式。

软件定义汽车架构,汽车自动驾驶软件架构

“人眼——人脑”模式

根据马斯克的想法,人为什么可以开车?因为人看得见,而且可以依据看到的图像做出判断。所以特斯拉只需要图像和大脑,也就只需要“摄像头+深度学习技术”,而不依赖于激光雷达。

摄像头技术相对简单,但要实现人脑程度的识别就很复杂了。特斯拉的 Autopilot 系统中内置了一个深度神经网络,它会学习海量在驾驶过程中产生的图像,不断从图像的比对中分析和学习人们进行驾驶行为的主要依据(例如根据车道标志转向等),和阿尔法狗用的是相似的学习逻辑,可谓是非常先进了。

但是这种“先进”在人脑的检验面前还是不免被屡次打脸。近日一群美国黑客盯上了特斯拉的自动驾驶系统,他们将路边35km/h限速牌的数字“3”横线稍加延长,让其变成不标准的数字“3”,在司机主动驾驶时,只会觉得这是个被涂改的“35km/h”。但这却成功地欺骗过了特斯拉一代自动驾驶系统,其将35Km/h的限速标识误认为85km/h,从而在自动驾驶模式下超速约140%。

软件定义汽车架构,汽车自动驾驶软件架构

简单的识别能力尚且如此,那么后面的行为预测和逻辑推理就更是无源之水,无本之木了。所以,在人脑的评判体系下,目前特斯拉所谓的高科技“最强大脑”可能连隔壁村的“二傻”都不如。

最牛逼的特斯拉都这样了,其他智能车企怎么办?必然不能再集中于大脑了。既然脑子比不上人类,眼睛总可以吧,所以都采取了“千里眼——弱智”模式。

所谓千里眼,就是摄像头、雷达和高精地图的组合。如果摄像头是人眼,那么高精地图就是上帝视角,可以为汽车全程领航,提前预判可能遇到的各种路况,为大脑的判断提供更多的信息和时间。而雷达就更厉害了,它的工作原理不是视觉的,而是物理的。超声波雷达、毫米波雷达和激光雷达可以通过声波的往返实测周围所有存在的物体,不会因为图像的误判让汽车产生撞上实体的风险。当前面有白色货车的时候,车的大脑从摄像头的图像上来看可能会觉得这是白云,但雷达会告诉它前面100m确实有个实体。如此一综合,车也绝不会撞上去。

只要组合运用这些高性能传感器,理论上周围有啥汽车自己都能知道(如下图全面的覆盖范围),所以算法不需要太厉害就可以勾勒出障碍物的范围,知道车往哪里开了。相对来说,这个“大脑”比特斯拉的就要弱很多。

软件定义汽车架构,汽车自动驾驶软件架构

虽然马斯克还是坚持自己的想法,但商业化量产必须保证安全性,所以特斯拉的车上还是装备有先进的毫米波雷达作为辅助,以免发生意外。不过在自动驾驶的改进路线上,特斯拉和其他车企仍然有明显的区别,尤其是对于高成本的激光雷达和高精地图的升级上,两种模式会存有不同侧重。

无论是作为硬件的“眼睛”还是作为软件的“大脑”,我们目前都还看不出哪种侧重会率先实现L3级别的突破。但在对自动驾驶基本发展路线做出了解后,我们便可以沿着车企研发的思路寻找这背后现存或潜在的供应商进行标的分析,以便提前找出合理的购买逻辑。