本期讲解自动驾驶技术,着重于原理层面而不是技术细节,把我理解的自动驾驶实现方法用比较直白的话语和例子告诉各位。帮助大家理解目前最前沿的自动驾驶到底是如何实现的,以及将来能做到什么样的水平。最后再大致评估一下特斯拉在自动驾驶方面的领先到底有多少。
每个人都接触过机器学习
1、2、3、x、y、z、7、8…,看到前面这一行数字,如果让你说一下x、y、z各是多少你知道吗?所有人肯定都能很快说出答案。
2、4、6、x、y、z、14、16…,同样的x、y、z各是多少你知道吗?这个也不难,我们只要观察一下,就会发现每一个位置的值等于它的序号乘以2,这也是最简单的找规律。
我们再把难度升级一点,2.5、5、7.5、x、y、z、17.5、20…,x、y、z各是多少你知道吗?这个可能没法很快看出来了,实际上是根据Y=2X+0.5X这个函数关系式得出来的。
如果我告诉你,把上面的数列放到电脑Excel里,让Excel自动求出x、y、z的过程,也是简单的机器学习你信吗?我这么说肯定是不严谨和不准确的,但这确实是机器学习的一个结果。在Excel里有一个线性拟合功能,就是根据现有数据列,可以自动找到一个匹配的关系式,让你能知道各个位置的值和他所在位置的关系,也就是所谓的函数关系。例如气温与一天时间的关系、例如GDP与月份的关系、例如平均身高与年龄的关系等。
我们所谓的机器学习,就是通过某种数学计算,让计算机自动找到输入与输出的对应关系。比如图像的机器学习,就是输入一系列含有猫的图片,让计算机自动找到含有猫的图片的特征。这时图片就是输入,输出就是判断含有猫或者不含有猫。这就好比前面的例子,计算机自己找到了一个类似Y=2X+0.5X的函数关系式,只要X包含猫,Y就等于一个特定值或范围,只要X不包含猫,Y又等于另一个特定值或范围。只是这里的X不仅仅是一个数,而是一组数,也就是图片每个像素包含的RGB颜色值。RGB颜色值就是构成图片的最基础信息,相当于函数关系里的X。
回到自动驾驶,实际上简略来说,就是需要找到一个函数关系,让机器在特定的道路情况、交通参与者情况、法规等输入下,找到一个最合适的输出值,这个输出值就是执行自动驾驶的指令,例如转向多少度、速度改变多少等。当然这里面有非常多需要处理的复杂问题,但是总体的思路就是这么一个思路。
人类是如何驾驶的
我们回想一下自己是如何学习开车的,大致有这么几个环节。学习交通法规和驾驶规范、学习车辆操作这是在驾校里完成的内容,然后在道路上学习预测其它交通参与者的行为以及应对方法。基础的能力是能识别道路,包括各种标识、灯光、线条,能看到各种车辆、人员、障碍物,能判断距离、速度,能预测其它参与者行为,然后相应的做出应对策略。这是人参与驾驶的基本能力构成,机器驾驶也是沿着这条路径实现的。
简单总结一下,人实现驾驶,需要几个能力:第一是识别环境;第二是识别和预测其他参与者行为;第三是了解交通法规和规范;第四是熟练操作与执行;第五是附加技能,了解怎么样驾驶更合理,比如省油、比如舒适等。
机器实现自动驾驶有哪些前提
前面我们提到人要学会驾驶需要的几个能力,机器要学会驾驶也必须具有同样的能力,或者说获得同样的信息。以前流行一种实现自动驾驶的思路,就是车路协同。车路协同的本质不改变前面提到的能力需求,只是把自己获取信息的能力变成直接的信息输入,这些信息是道路和别的车辆传递过来的。后来发现这个路径很难实现,又回到了重建车辆自身能力的道路上。
所以机器要学会驾驶,也必须具备人驾驶所需的那些能力。总结来说就是我们常说的感知、规划、控制,感知包含了前面提到的对人、车、物、道路的识别,状态、速度、行为的判断;规划就是在信息获取完毕后,做出驾驶行为最合理的选择的过程,这个过程要满足安全、舒适、高效等要求;最后是通过控制车辆执行机构,来完成前面的判断决策,这就是自动驾驶实现的步骤。
自动驾驶的难题在于,交通环境是一个非常复杂的现实世界。不像理解一张图片上的特定物体,或者理解某一段英文所对应的中文翻译这种相对单一的任务。自动驾驶的第一个核心难题,在于对现实世界的感知和理解。我拍脑袋一说,至少有80%的工作量都用在了感知层面。只要能让车子完整感知到交通环境的绝大部分信息,做出合理的规划和控制都是相对比较简单的事情。
我们研究传统自动驾驶思路和新的自动驾驶思路,有助于更好的理解目前技术路线的优越性与先进性,所以接下来我们探讨一下传统的自动驾驶实现思路是什么样的。
传统自动驾驶实现方式
感知层面,我们从传统的Mobileye说起,它是单目摄像头辅助驾驶起家。虽然他家产品是个黑盒,没人知道具体的运作细节,不过思路是清楚的。就是通过单目摄像头采集的内容,对每一帧画面进行识别分析,找到画面中的车、人及一些可识别物体,从而实现简单的辅助驾驶功能。一开始采用Mobileye的车厂多,甚至包括特斯拉,是因为它起步早,训练数据多,所以它的黑盒系统识别效果准确且稳定。
随着行业发展,玩家增多,车厂有更多的数据和用户,随着研发的投入,完全没有必要再去使用一个无法改进的黑盒系统,各家逐步用自己的系统取代。而且摄像头的数量逐步增多,对多角度摄像头内容进行同步输入,会获得更全面的路况数据,也就能做出更合理的应对策略。但这种简单的单帧图像检测的方法,很难应对复杂的事物和场景,对于不常见的事物和场景容易产生误判。所以这种方式获取的行车路况信息并不全面,这就对自动驾驶能力的提升产生了很大的约束。随着行业发展需要,于是出现了多摄像头、多传感器共同采集道路信息。引入的硬件包括摄像头、毫米波雷达、超声波雷达,后面甚至引入了激光雷达等。
规划和控制层面,都是采用的人工规则。没错,就是你理解的人工规则,也就是遇到什么情况,采取什么策略,这些都是写死的。所以近期理想汽车创始人为什么会说:传统的高级辅助驾驶,人工越多越越智能。当你写的规则越多,所能应付的情况就越多,但这并不是真正意义上的智能,就是一个执行人工代码的机器,最多在图像识别上,采取了一些机器学习的手段而已。
但目前这波全新思路的自动驾驶技术方向,已经完全颠覆了这种情况。
目前头部自动驾驶实现方式
现在说起自动驾驶,我们经常会听到各种专有名词,什么BEV、Transformer、Occupancy Network……他们都是自动驾驶技术路线上,各环节最受认可的方法。这些词到底说的是什么东西,这些东西起到什么作用呢?
前面我们说过,实现自动驾驶的大致步骤,就是让机器学会感知-规划-控制,核心的环节在于感知,因为感知环节信息量巨大,不确定性巨大,这是一个开放问题。不确定什么硬件能实现技术、成本、效率的平衡,不确定什么样的感知精度最有效而不浪费,甚至不确定目前选择的硬件或技术路线是否能满足最终的自动驾驶。
规划的核心是在感知形成的各种信息的前提下提出最优解,比如选择最优的行车路线、速度,处理各种复杂情况的最优应对方法,这是一个封闭问题,条件已知求解方向已知,不断改善就行了,相对比较容易。
控制就是在已知规划确定的前提下执行相关动作,是最简单的,关注更多的是精确性和安全性冗余问题。
我们日常说的计算机神经网络,其实就是让机器模拟人脑运行方式进行学习的方法。Transformer模型属于让机器进行更高效学习的一种方法。我们无需去明白它其中具体的实现细节,只需要知道这是机器学习的一种更高效的新思路。举个不恰当的例子,传统的机器学习模型类似于学英语先从单词书a开头的单词开始背诵,直到差不多了再开始学习语法等内容,最后学会英语。Transformer模型类似直接开始学简单句子,遇到单词背单词,遇到语法学语法。我不是要表达Transformer的具体学习方法,而是要展示不同学习思路之间的区别。大概就是Transformer模型和其他学习模型之间的区别。Transformer模型是目前机器学习实践中更高效、资源占用更少的一种学习思路。
所谓BEV,其实就是机器感知到的信息的汇总处理方式,这句话怎么理解呢。传统的辅助驾驶,是基于单个摄像头的画面,进行检测物体、区分道路、识别障碍等工作,是完全基于平面图像的处理方式。后来出现了各种雷达,机器感知到的信息越来越多,处理越来越麻烦。为了解决这种多种维度信息的汇总处理与后续使用问题,BEV应运而生。BEV全称是鸟瞰视角,说白了就是基于摄像头、雷达等各种感知设备获取的信息,创建一个模拟真实三维环境的信息存储器,这个存储器里有物体道路信息、有空间位置信息、速度信息等各种感知到的真实世界的信息。也就是我们在车企介绍自动驾驶时经常看到的一个比较粗糙的车辆在模拟的三维世界里行驶的画面。所有的感知信息在这里进行汇总,后续规划需要的信息全部从这里提取。BEV能最大程度模拟现实世界,拥有更丰富的细节,丢失更少的信息,从自动驾驶的实现来说,形成了更可靠的信息基础。
Occupancy Network就是BEV中用于模拟物体的方法。在真实世界里,空间中是有其他车辆和物体的,我们要在BEV世界里展现他们,需要创建一个真实的空间占用信息,Occupancy Network就是一种快速模拟现实世界物体空间占用信息的方法。再说通俗点,就是前面有一辆车,在BEV世界里表示这辆车的存在和空间大小Occupancy Network是一种高效的方法。
这些技术思路,都是各领域的计算机大神的研究成果,应用于自动驾驶领域,基本都是特斯拉领头。那特斯拉领先国内头部自动驾驶车企到底多久呢?从这些技术思路的应用时间可以有一个认识。2021年特斯拉AI Day特斯拉介绍了用BEV进行感知信息的融合,2023年上半年小鹏G9是号称国内第一个搭载BEV的自动驾驶产品。2023下半年,理想和蔚来才开始逐步切换基于BEV的感知融合方法。也就是说,从产品落地来看,特斯拉至少领先2年。但是考虑到特斯拉的科研能力、芯片开发能力等,目前自动驾驶的领先性来说,特斯拉领先中国车企至少2-3年,除了特斯拉和中国头部车企,后面的跟随者还暂时看不到。
不过前沿技术领先性,和消费者在自动驾驶产品上获得的价值,不一定完全成正比。也就是说虽然特斯拉绝对技术是领先的,但是从消费者能真正体验到的东西来说,不见得新势力就比特斯拉少。主要原因是特斯拉一直在追求迈过质变点后的通用高能力自动驾驶,而国内企业更追求阶段的可用性。
最后说一说大模型
大模型的应用,可能是自动驾驶真正得以实现的最后一块拼图。传统的感知与规划,用的是较多人工参与的办法,人或者帮助机器学习的程序会不断告诉机器,应该怎么做、怎么做是好的等等。比如传统的自动驾驶规划,人参与了很多规则的编写,比如遇到什么情况怎么处理这种很明确的指令。但是问题在于遇到的情况不总是一致,如果很死板的应对,往往无法得到最优结果。况且现实世界的情况千千万,靠人工怎么能覆盖呢。
这时候大模型思路就应运而生。所谓大模型,简单来说就是让机器自动在天量的数据里找规律,类似于我们视频一开始提到的数列找规律一样,只是面对问题更加复杂。最传统的辅助驾驶,只需要识别到交通信号灯的颜色,然后人会编写规则告诉他能走或者不能走。基于大模型的方法,机器可以自动总结出来什么颜色灯其它车辆会怎么走,然后总结规律形成规则。这个方法同样可以应用在处理各种交通情况方面,机器总结人类司机在面对不同情况、路况、环境时的反应,从而总结出规则、更有效的应对方法等。大模型的思路,也就是所谓的端到端,输入一个信息,机器自动生成最终需要的东西,而不用在中途人工干预。前段时间很火的chatgpt就是应用了大模型的方法,所以它对自然语言的理解大幅提升,远远优于传统基于语法规则或者微观统计的方法产生的结果。
基于大模型的思路,能让自动驾驶机器用远远优于人类方法的视野,去发现总结更高效的认识世界的方法,去找到人类无法看到或描述的那些规律,最后反哺于自动驾驶技术的应用。基于大模型的方法,需要大量的算了进行模型训练,需要天量的数据提供给模型来找规律。所以为什么网上说AI之战就是算力和数据之战,也是为什么自动驾驶企业只会从车企产生而不会从纯软件公司产生。因为算力和数据都是必然要求!
结尾
做个不恰当的类比,如果BEV、Occupancy Network这些东西像是物理学里的牛顿三大定律,帮助我们在理解世界和改造世界方面发挥了不可磨灭的作用,大模型就像是物理学里的相对论,从一个更根本更彻底更全面的角度,给世界一个统一的理论。这个理论会帮助AI在认识世界、改造世界、发展世界中发挥出前所未有的巨大的作用。这种作用,目前绝大部分人都没有认知,更没有感知。大模型的思路,会不会是一个奇点,带领人类走向第四次技术革命,带领人类生产力向上跃升一个维度,是值得期待和观察的。
10月11日,也就是明天,我和 @阿亮on the way ,咱们直播见:
精彩评论