自动驾驶行业,因为一个人的离职,要被改变了。
他是Andrej Karpathy,作为特斯拉AI大主管,在7月13日宣布自己从特斯拉离职。
作为AI的负责人,他五年前加入特斯拉,担任神经网络和计算机视觉专家。五年时间内迅速晋升,成为特斯拉Autopilot团队的重要一员,在特斯拉开发FSD的过程中也发挥了非常重要的作用。
有多重要?我可以说,Andrej从特斯拉离职的真正原因,会决定自动驾驶行业技术接下来的发展方向。
为什么一个人仅仅离职就能对行业有影响?
因为Andrej在特斯拉工作期间,并没有让特斯拉跟随着行业内卷起的激光雷达上车热潮,而是为自动驾驶行业踏出了一个全新,纯视觉实现自动驾驶的方向。
实现纯视觉自动驾驶不难,难的是让这项技术真正可以在城市开放街道上实现。
马斯克一直以来都坚信纯视觉自动驾驶,因为在这位硅谷钢铁侠看来既然人可以通过两只眼睛来驾驶车辆,那么机器一定也可以。他还曾经表示马就是自动驾驶,而人和马的眼睛里,并不会射出激光。
Andrej在特斯拉成功证明纯视觉自动驾驶这条技术路线是可行的,意义并不是帮特斯拉的量产车省下了两颗或几颗激光雷达的成本,而是在众多自动驾驶发展路线中,成功证明了从L2发展到L5的可能性。
和以往通过摄像头抓取的2D图像进行识别交通参与对象不同——在Andrej为特斯拉开发的新版FSD中,特斯拉通过布置在车周身的8个摄像头,将获取到的8个方向的二维平面图像数据通过算法即时生成了车身周边“4D向量空间”。
“4D向量空间”是什么?
本质上讲是在生成的虚拟三维空间基础上再增加一个时间轴,这样就可以根据其他车辆的过去行为来预测标记物体在未来时间的运动。
通过Andrej的这套处理方案,让机器帮人类驾驶汽车这件任务,从一个识别平面图并做预测图片中物体会怎么变化的工作,变成了一个怎么在三维空间中规划行驶路线的“游戏”。
更厉害的是,从特斯拉官方释放的信息来看,这个为FSD设计的“游戏”内,事物、场景的精度会精确到像素级,也就意味着理论上它的精度甚至可以追赶上高精地图——足够精细的3D空间,也意味着对于特斯拉来说确实不需要激光雷达了。
行业里所追求的激光雷达,到了特斯拉手上,作用就只是装在部分测试车上去做3D生成场景的“校准”——通过激光雷达的数据和车自己生成3D场景数据的对比,来加强这一套从二维平面换算到三维空间的算法的精准度。
在自动驾驶最重要的两个核心技术:感知和决策上,Andrej仅仅依靠纯视觉的方式,就让特斯拉的自动驾驶在感知方面的精度提高了几十倍甚至上百倍。
感知精度上的提升,反过来也会帮助车进行更快、更准确的决策。
比如搭载了两颗前向激光雷达的小鹏P5,对前方的物体的感知能力,就比没有搭载激光雷达的P7车型要强很多,这让P5在涉及到前方的交通场景中可以比P7更快速、果断做出决策,但对于激光雷达检测不到的侧后方,P5的感知能力就和P7保持在同一水平,决策方面也就和P7一致,无法做到比P7更准确、果断。
Andrej赋予了特斯拉用视觉比拼激光雷达的能力后,也就意味着感知不再是短板的特斯拉,理论上可以逐渐追上Waymo、Cruise、Argo AI、百度Apollo这些用了激光雷达的厂商所达到的无人驾驶水平。
感知的能力获得巨大提升后,在决策方面特斯拉同样有所创新。
这个创新要从自动驾驶行业存在的一个大问题讲起:在AI决策方面,随着训练里程数的增加,遇到问题场景的数量也在大幅度降低。
表面上看这似乎意味着自动驾驶AI能够迅速进步,但随着简单高频的场景逐个被解决,待解决的低频场景成为了抵达终点前的绊脚石——从几百公里遇到一个问题变成几千甚至几万公里才遇到一个问题时,意味着训练AI到我们所需要水平的难度呈指数级增长的时间、里程会以指数级增长,而这一过程没有尽头。
这就是为什么行业里每年都在说距离全自动驾驶的美好场景还有五年,但我们一直无法实现的原因。
要解决这个问题,就必须有更多的“问题场景”来提供给自动驾驶AI训练。
对于这个问题,特斯拉以训练自动驾驶AI的需求为基础,开发了名为Dojo的超级计算机,在Dojo中,一方面会用autopilot现实中遇到的困难场景的4D向量空间数据生成虚拟的世界,让Autopilot在这里面反反复复训练,另一方面特斯拉也会自己制造更多的复杂、罕见场景用于自动驾驶AI训练。
特斯拉的AI训练模式,从发现问题——解决问题,就变成了自己制造问题——解决问题,毫无疑问,这样对于Autopilot而言不必等现实世界中低频次问题的发生,而是只需要让特斯拉的工程师不断在虚拟世界中创建问题就可以了。
“问题场景”出现频次会随着训练而降低,从而导致AI训练效率断崖式下跌的问题被解决后,特斯拉打造的感知+决策+练系统已经实现了完整的闭环,目前使用完全自动驾驶(FSD)Beta的客户车队已经行驶了超3500万英里的里程,并且这个速度正在加快。
接下来Andrej Karpathy要面对的问题就简单了:由AI生成的场景能否把特斯拉的自动驾驶训练到L5级别?
如果能,那么一切交给AI自主训练就好,Andrej不需要做什么了。
如果不能,以马斯克的性格来看, Andrej需要把AI开发工作交给下一个有能力的人。
——从这个角度来看,无论结果如何,Andrej都似乎没有必要留在特斯拉了。
虽然对于Andrej来说他成功把自动驾驶推向了新的高度,但对于整个自动驾驶行业而言,Andrej的离职无异于一个威力巨大的深水炸弹,如今整个自动驾驶行业都陷入到巨大的不确定性中:
如果特斯拉的纯视觉方案可行,那么国内外其他公司就没有必要在纯视觉的技术路线上追赶特斯拉了——用户量、数据量差的太远,它们只能寻找其他可行的方案追赶特斯拉。
如果特斯拉的纯视觉方案由于不知名的问题受阻,那么意味着整个自动驾驶行业会面临一个巨大的困境——自动驾驶的落地将会遥遥无期,资本的耐心也会一点一点损失殆尽。
不管特斯拉能否成功,自动驾驶行业都需要寻找新的出路。
自动驾驶的出路可能在哪里?
马斯克已经给我们做了极好的示范:当一个行业/领域遇到困难时,可以尝试从第一性原理出发思考可能的解决方法,比如方才提到的FSD新方案,就是马斯克基于第一性原理得出的答案:全世界的道路,是为人类驾驶设计的,开车的是人而不是机器。
很显然马斯克对自动驾驶一贯坚持的观点是人可以通过两只眼睛来驾驶车辆,那么机器一定也可以,这才有了依靠纯视觉方案依然能吊打用了一堆用雷达方案友商的特斯拉。
目前自动驾驶似乎花样繁多,但本质上需要解决前面提到过的两件事:感知和决策。
对于感知而言,机器遇到的最大困难并不是对周围环境识别的精准程度,而是如何才能让机器理解它感知到的画面。
目前主流的方案是简单粗暴给不同物体打上标签,让后在让AI去训练。
这种方式很明显只是表层模仿了人类的学习方式,这就导致了AI只能依据图形的相似情况来判断物体的种类,然而同一种物体的模样有千千万万,再结合场景的变化,AI即便训练很长时间,也很难做到100%完全识别。
从更深一层去感知物体的,是用语义地图的方式。
从人类角度而言,我们通常会对整个图像进行理解,也就是利用上下文信息(context)对整个场景进行建模,构成了一个场景模型后再进行相应的处理(碰撞预警、自动巡航等):
语义识别是通过一个整体去理解局部,在以前传统的识别车辆,车位线框这些元素的基础上,再增加诸如墙壁接地线、柱子、行人、悬空物的识别就要比用传统的算法容易得多。
例如小鹏的VPA停车场记忆泊车功能就采用了这个方案。原因是地下停车场中各种设施和管路会严重干扰毫米波雷达的运行,所以在地下停车场中小鹏就不得不采取了近乎纯视觉方案的自动驾驶。
但语义地图仍然是局限在了画面分割后再识别的模式上,AI并不具备“联想”能力。
——同样一个锥桶,仅仅是转换一个拍摄角度,或微调一些肉眼无法观察的像素点,人工智能很有可能就识别失败,但人类的儿童,却只需要一张看图识字的卡片,便能轻易分辨出在路边的锥桶和人类手拿的锥桶都是同一个东西,但它们代表了不同的含义。
从最本质出发,自动驾驶要想达到L5级别,得先具备和儿童识别物体一样的能力。也就是说,人工智能模型应该可以从 M 个样本中学习到 N 个类别,其中 N 可以远远大于 M。
人类儿童具备这项能力,本质上是从出生一刻开始就在不断的训练、学习,学习的过程中,不仅仅包括了对各种事物的辨认,还包括了语言的学习——事实上,全世界各地不同人类的思考方式会根据他(她)所掌握的语言而不同而有不同的思考模式。
那么对于自动驾驶的AI而言,我们可能还需要赋予AI一种“语言”来替代现有的标签去让AI在进行深度学习的同时,还兼顾学习了这门“用于描述交通的语言”,一旦AI可以用这门语言将物体一一对应起来,并自己总结出交通规则时,AI或许也能具备融会贯通分辨物体的能力。
事实上在AI领域经常提到的“神经网络”,本质上就是模仿了人类大脑中的神经元和突触的作用,因此按照第一性原理来看,让AI真正掌握人类的某个语言还很困难,但让AI去真正学会一套“专门用于交通的语言”是可行的。
感知部分讲明白后,决策部分同时也可以直接得到答案。
对于决策而言,机器遇到的最大困难是如何合理、相对准确预测参与交通所有对象想做什么,并让自己参与到其中——特斯拉的做法是不但车有自己的行驶规划(plan),也会给路面上每一个参与交通的物体赋予一个行驶规划,然后结合计算后,会让车选择风险最低的规划结果。
这跟人类的思维模式很像了,但不同之处在于,目前主流的解决方案更多的是按照物体的属性结合行动规律做出的预测,而如果我们可以让AI真正学会一门“交通语言”,那么理论上就可以让AI同时学会道路交通中其他参与者的“思考模式”,例如两轮电瓶车往往会更灵活且遇到障碍物时大多不会看后方是否有来车,反而选择直接绕行。这时候一个“通晓多种交通工具”的AI,就可以更快地做出更正确的驾驶决策。
但这么做的困难在于其他交通工具,甚至人类本身目前并没有相同级别的“自动驾驶”方案。
目前从整个行业来看,看上去指望一家企业去为每一个交通参与对象都创建一套自动驾驶AI并把它们融合起来非常不现实,但其实还是有可能做到的:如果能用数字孪生(digital twin)技术创建一个更加真实的虚拟世界,让多种交通工具,包括行人本身一起在这个世界中进行训练,最终一定可以得到一个在决策方面更强的自动驾驶AI。
虽然前面我们一直在说因为Andrej Karpathy从特斯拉的离职造成的蝴蝶效应,可能会导致自动驾驶行业需要寻找新的出路,也分析了未来技术可能的发展方向。
但对于整个行业而言,就像人类出生后要先学会爬,然后才是走,最后才是奔跑一样,现在要想直接在社会道路上实现自动驾驶对AI来说仍然过于复杂了。所以一部分车企选择了在商业园区、矿山这样环境相对简单的地区尝试落地自动驾驶。
但尝试一段时间后,无论是园区还是矿山,都出现了意想不到的问题。
园区面临的问题是“走不出去”:如今在园区自动行驶的车大都是低速自动驾驶,对于快递车而言还需要为其规划专门的停车位,以目前的自动驾驶水平来说,它们很难直接投放到社会上去。
经常被大众认为是最容易规模商业化的自动驾驶场景之一的矿山场景,虽然不受道路法规限制,也不存在“走出去”的问题,但存在很多普通大众完全想不到的现实问题:
保证5G信号覆盖带来的网络成本、露天矿的生产方式要不停的移动设备位置、工程车的智能化、多种机械设备的混编问题、环境粉尘会影响自动驾驶感知的问题……多如牛毛的问题导致自动驾驶并未能在这个领域落地开花。
虽然这些尝试让自动驾驶落地的尝试都没有真正成功,但这些落地方式都有一个值得称赞的共同点,那就是“从场景出发”。
“场景”是一个使用频率很高,但在汽车行业内却是刚刚开始应用起来的词。
传统汽车确定产品配置的时候,一般是从每一个配置对应一个特定功能,再到对应用户的某一个需求出发来定制产品配置的方式。这种方式在汽车市场上体现的是以部分配置和竞品形成差异化的打法,这种打法过去很好用,但在“自动驾驶”这项功能上就失效了。
一方面是要实现自动驾驶所需的配置方案多种多样,另一方面是除了硬件到位,软件上的开发也必不可少,这就导致了在配置表“Feature list”上“智能辅助驾驶”虽然只有寥寥几项,但它涉及的人力物力并不比造一台新车少。
——“自动驾驶”可以包含很多的功能应用,而要实现这些功能的应用,主要取决于用户使用的场景。如果我们能把用户的场景尽可能的拆解、细分之后,就可以先针对某一些场景去开发对用户 “真正有用”的自动驾驶功能,比如可以在用户不舒服的时候让AI接管,在川流不息的道路上找到合适的机会停车靠边打双闪这样的功能就很实用。
这样做不但可以在相对短的时间内先把自动驾驶这个产品真正落地,从整个市场竞争的角度来看,有了好用的功能,产品的定位也会更清晰。
目前市面上已经有不少车企正在做基于细分场景的自动驾驶开发了,但都主要集中在了跑高速、自动泊车这两个场景上(也还不够好),整体上用户仍然有很多的真实需求并没有满足:
先做地库全自动行车、泊车场景(有-小鹏汽车、威马汽车)
先做停车场召唤场景(有-特斯拉)
先做应急停车场景(无)
先做高速场景(有-小鹏汽车、蔚来汽车、理想汽车、特斯拉)
先做拥堵跟车场景(无)
先做用户需要临时分神的辅助场景(无)
所以从比矿山、物流更细分、更细微的场景出发,是自动驾驶落地的一个方向。
虽然我们还不知道Andrej Karpathy接下来会去哪里,但毫无疑问的是,除了特斯拉之外的其他厂商,需要努力为它们的技术路线寻找到新的落地方向。
在这众多的方向选择中,为自动驾驶AI开发一套专用的语言帮助它们理解世界,并用数字孪生(digital twin)的方式去让他们学习到所有交通工具甚至人类的行动逻辑,这或许是自动驾驶能真正开始落地的道路。
精彩评论