自动驾驶的四个演进阶段

想象一下开车学员的成长路线:

第一阶段(规则驱动),教练拿小本本死记交通规则,「前方 50 米必打左灯」。

第二阶段(端到端),学员开始模仿老司机,看别人怎么变道、怎么并线。

第三阶段(世界模型),他在「赛车游戏」里狂刷经验,在虚拟世界里撞车一万次也没关系。

第四阶段(VLA),他不仅会开、会预判,还能一边开一边跟你解释:「我刚才是因为右后方这辆摩托车,所以选择晚 0.5 秒变道。」

------今天的辅助驾驶,大概就走在这四个阶段之间。


一、第一阶段:「规则驱动」------车上的 if-else 决策树

早年的辅助驾驶决策,本质上就是在车上堆一大串规则。(注意,感知还是需要用模型来进行目标检测、语义分割。规则是基本没办法搞定感知的。)

工程师会写出类似这样的东西:

  • 当前车速多少、前车距离多少、感知模型反馈前方的目标情况、导航路线是不是提示需要变道、避障距离是否小于某个阈值。

在这些条件之上,写成一条条逻辑:

  • 如果前车减速 → 我减速
  • 如果左车道空、有变道需求 → 我变过去
  • 夜间、雨天、坡道......再各加一些权重和安全余量

你可以把它想象成: 「一群工程师在给车写一本巨厚的『开车说明书』, 每一种情况都要提前想好:如果 A 就 B,如果 C 就 D。」

这个阶段的特点

  • 车上跑的是「白盒代码」:每一行逻辑都能解释,查日志就能找到「为啥当时这么决策」
  • 通常配合 「高精地图 + 高速场景」 使用: 车道线清晰,参与者相对简单
  • 没有云端大规模训练:主要靠工程师脑子里的经验 + 数学模型

优点与天花板

优点很干脆:

  • 安全、可溯源、可解释: 决策怎么来的,一行一行查就行
  • 工程上可控性强: 想改一个策略,改参数或规则即可

但现实世界太坏:

一个路口,行人突然回头、外卖车逆行、前车临时停车、绿灯快变红...... 任何规则写得再细,都难免遇到「规则互相打架」或者「根本没写过这类情况」。

于是问题暴露出来:

  • 规则不可能覆盖所有长尾场景
  • 规则组合多了之后,容易互相矛盾
  • 车的「开车风格」和人类差别很大,看着笨拙、不自然

这就把行业推向了下一阶段:「既然规则写不完,那不如让模型直接学人怎么开。」


二、第二阶段:「端到端模仿学习」------让车学会「像人那样开」

随着 「GPT」 这类大语言模型爆火,一个想法自然而然地出现了:

「既然模型能靠大规模语料学会说人话,那我是不是也能靠大规模驾驶数据,让它学会'人类怎么开车'?」

于是进入 「广义端到端模仿学习」 时代。

核心思路

  • 大量采集:摄像头画面、导航信息、车速、转向、油门、刹车
  • 把「人类优秀驾驶员在各种场景下是怎么操作的」喂给模型
  • 然后训练一个大网络,让它学会映射:视觉 + 导航 → 轨迹/ 方向盘 / 加减速 / 变道决策

不用再细细写规则了,模型自己从数据里摸索出「在 A 场景下人通常怎么做」。

有点像老司机带徒弟:「你先别问为什么,就坐旁边看我怎么开,看一万小时,差不多你也会照着开了。」

能力提升与新问题

提升非常明显:

  • 开车动作更像人,不再那么「机械」
  • 能覆盖更多复杂路况:加塞、非机动车混行、一些刁钻的城市道路情况

但几个硬伤马上出现:

  1. 高度依赖「数据分布」
    1. 训练里见过很多次的场景 → 表现非常好
    2. 很少见甚至没见过的「长尾场景」 → 明显发懵,没有明确后备方案机制
  2. 模型像黑盒
    1. 很难解释「为什么刚才它选择这么变道」,出了事,难以从逻辑层复盘
  3. 数据继续堆,边际效益递减
    1. 再往模型里丢真实道路数据,提升越来越有限

于是行业开始思考:

「与其一直往大脑里塞回放视频,不如给它一个『可以在里面练车、试错』的虚拟世界?」


三、第三阶段:「世界模型」------在「梦境赛道」里练出来的司机

本文里讲的更多是自动驾驶里的 「视频世界模型」 ,但更广义的 「世界模型」 远不止「生成画面那么简单」。

视频世界模型:给定过去几帧和控制输入,预测未来几帧画面或多模态状态。

广义世界模型:能在内部「模拟环境如何随时间变化」的模型,输出未必是可看见的视频,也可以是隐藏的 「tensor 状态」

你可以把它理解为:

「模型脑子里藏了一套对这个世界的近似物理规律, 即便你看不见画面,它也能在内部仿真模拟: '如果我现在这样打方向,接下来 2 秒会发生什么。'」

世界模型用来干嘛?------造一条「梦境赛道」

车厂目前的典型做法是:

  1. 用大量真实行驶数据训练一个 「世界模型」
    1. 输入过去一段时间的环境状态(视觉、雷达、轨迹等)和自车控制信号
    2. 输出未来一段时间环境如何变化:
  • 前车是否减速、行人是否横穿、自车是否会撞到东西
  • 在这个世界模型里,用 「强化学习(RL)」 训练决策策略
  • 定义一个「奖励函数」,规定什么行为好、什么行为坏
  • 比如:
  • 绕来绕去不前进 → 扣分、加速度太大 → 扣分、发生碰撞 → 大扣分
  • 然后让策略在这个「梦境世界」里,日以继夜地刷经验

这相当于给 AI 司机开了一条「无限命的虚拟赛道」: 它可以在里面撞一百万次车,却不会伤到现实中的任何人, 同时还能在各种极端场景下被刻意「折磨训练」。


四、第四阶段:「VLA 」------车不止会开,还会「说清楚为啥这样开」

这一步,一个新的矛盾冒出来了:

  • 端到端的策略越来越强
  • 世界模型 + 强化学习的性能越来越好
  • 但「黑盒感」也越来越重:
    • 车为什么刚才紧急减速?
    • 为什么在这里选择插入内侧车道?
    • 它是怕人、怕车,还是怕一个虚构的风险?

于是又衍生出一个方向:「VLA 和可解释决策」

什么是 「VLA」

你可以简单理解为:

  • 「V」:Vision,视觉
  • 「L」:Language,语言
  • 「A」:Action,动作/控制/轨迹

「VLA 模型」 想做的事情是:

不仅从视觉 + 状态里决策行动,还要能用语言解释「自己为什么这么做」。

比如:

  • 输入:前方摄像头画面、自车历史轨迹、导航信息
  • 输出:
    • 轨迹或控制信号(方向、油门、刹车)
    • 一段语言解释:「由于右侧盲区中存在速度较快的电动车,我推迟了变道。」

这有点像给车加了一个「会说话的副驾驶大脑」:既出手,也能「出嘴」。

硬伤:算力差距

现实问题也非常直接:算力跟不上

  • 模型蒸馏:用大模型教小模型,让小模型学到关键能力
  • 降低输入分辨率:牺牲一些视觉细节换算力
  • 降低推理帧率:从 10Hz → 5Hz,或者更低
  • 剪枝 / 量化:把模型压小,精度从 FP16 降到 INT8/INT4

结果就是:

  • 同一套结构,云上很好用,上车就「缩水」。
  • 如何在不牺牲安全和体验的前提下,把 VLA + 世界模型真正在端侧跑起来,现在是各家「内功」之战的关键。

五、几个阶段放在一张「进化轴」里看

如果把几种技术路线放在一条时间轴上,大概是这样:

  1. 「规则驱动」
    1. 靠感知获得目标障碍物,然后工程师写 if-else规则
    2. 优点是可解释、安全边界清晰
    3. 缺点是长尾场景完全跟不上真实世界复杂度
  2. 「端到端模仿学习」
    1. 大规模学习人类驾驶行为
    2. 开车更像人,覆盖更多城市复杂工况
    3. 但高度依赖训练数据分布,黑盒感严重
  3. 「世界模型」
    1. 在「梦境赛道」里反复练习,补足端到端对极端场景、稀有情况的掌控力
    2. 帮助策略在低风险环境中练出真正遇事不慌的本事
  4. 「VLA 」
    1. 让车不仅会开,还能说清楚为什么这么开
    2. 受限于算力,需要各种蒸馏、裁剪、分辨率妥协

未来很可能不是「某一条路线取代另一条」,

而是:
规则 + 端到端 + 世界模型 + VLA 混合协作

  • 规则负责「硬约束」和安全红线
  • 端到端负责「像人一样的直觉决策」
  • 世界模型负责「在心里排练几秒后会怎样」
  • VLA 负责「把自己的行为解释出来」

真正成熟的辅助驾驶,会更像一个有经验又肯负责的司机:

「该按规则的时候绝不乱来, 该借助直觉的时候很像老司机, 遇到没见过的怪场景,会先在脑子里演练一遍, 实在不确定,就老老实实告诉你: 『这段路有点复杂,你来接管一下更稳妥。』

相关推荐
前端小张同学15 分钟前
有了AI大家的日常是轻松了还是更焦虑了呢?
人工智能·程序员·ai编程
快手技术18 分钟前
KAT-Coder-Pro V2:玩转龙虾,吃透美学
人工智能
小碗羊肉22 分钟前
【从零开始学Java | 第十八篇】BigInteger
java·开发语言·新手入门
宵时待雨25 分钟前
C++笔记归纳14:AVL树
开发语言·数据结构·c++·笔记·算法
sky wide32 分钟前
[特殊字符] Docker Swarm 集群搭建指南
java·docker·容器
执笔画流年呀39 分钟前
PriorityQueue(堆)续集
java·开发语言
新缸中之脑41 分钟前
AI工程师成长路线图 (2026)
人工智能
商业数据派41 分钟前
快手估值重构的“隐藏彩蛋”
大数据·人工智能·重构
山川行42 分钟前
关于《项目C语言》专栏的总结
c语言·开发语言·数据结构·vscode·python·算法·visual studio code
呜喵王阿尔萨斯44 分钟前
C and C++ code
c语言·开发语言·c++