先说结论:过去两年还在用「BEV + 目标检测 + 规则规划」这套老口径聊智驾的同学,大概率已经发现跟不上行业语境的节奏了。OCC占用网络、世界模型、端到端这三个热词被反复推上风口,但很多人是割裂着理解的:一个聊感知,一个聊预测,一个聊规划。我自己的判断是,这三者根本不能分开看——它们是在同一个技术窗口中咬合在一起的三块拼图:OCC为感知提供三维稠密表征底座,世界模型给系统装上可学习、可演练的"脑内模拟器",端到端则把前者串成一条可整体训练的技术栈。这篇文章我按实战视角,把这套逻辑拆开讲讲,顺便把数据、算力、评测这几个最容易被低估的工程坑一并摆出来。
1. OCC占用网络:凭什么当感知表征的底座
1.1 从BEV到OCC,底层是信息维度的跃迁
先说个背景。BEV(鸟瞰视角)方案刚火的时候,业界的兴奋点在于把头视角的目标统一到一个俯视坐标系下,感知、预测、规划拿到了同一张"地图"。但用了两年后就发现一个根本问题:BEV本质上还是平面思维。
道路是三维的。立交桥下面的限高牌、装载超出车斗的卡车、横伸出来的树枝,这些东西在BEV上是投影成一片遮挡区域的,你得靠高度分支去硬猜,猜不准就出幺蛾子。更麻烦的是开放世界里的异形物体——挖掘机铲斗、事故车的碎片、掉落的轮胎,这些对象"不是任何一个检测类别",传统2D检测器天然无法框出来。
OCC占用网络的核心思路很狠:把三维空间切成一个个小体素(voxel),逐个判断"被占据还是空闲",再顺带叠语义标签。它不关心物体"是什么",只关心"这里有没有东西挡路"。这一下就把检测问题变成了稠密预测问题,从"枚举类别"变成"覆盖一切"。这也是它被当作感知底座的核心原因——表征口径足够通用,安全兜底逻辑才能成立。
1.2 核心原理与工程实现里的关键参数
OCC的主流实现路线,可以理解成"BEV再长出一条高度轴":多相机图像经过特征提取,用可变形注意力或正交注意力投影到BEV平面,再沿高度维度做上采样,生成一个三维体素栅格,最后每个体素做二分或语义分类。
这里有个参数必须先算清楚:体素分辨率。假设前向探测范围80米、横向40米、垂直6米,用0.2米体素,那就是400×200×30=240万个体素。要逐体素分类,输出头的压力非常大。行业里常见的做法是:
- 近处(0~30米)用0.1~0.25米细分辨率,远处和垂直上方放宽到0.3~0.5米;
- 稀疏卷积只处理有特征激活的体素,跳过大量空区域;
- 用层级解码,先粗再细,避免一次性生成全部体素。
训练损失也别想省。占据栅格天然存在极度不平衡——绝大多数体素是"空闲"。我见过不少团队第一次训OCC时踩坑,直接softmax交叉熵,模型学到把全场预测成空闲,IoU很好看但安全毫无意义。正确做法是用Focal Loss压制易分类的负样本,或者让损失对"空闲/占据"分开加权,语义分支再单独计交叉熵。
评测指标也要提一嘴:IoU是最基础的,但对自动驾驶来说,近处、可行驶区域内的占据精度比远处重要得多。我们当时在内部评测里主看按距离分层的IoU和辐射射线命中率,贴近真实碰撞风险去看模型质量,而不是看全域平均分。
2. 世界模型:给系统装上"脑内模拟器"
2.1 世界模型到底是什么
世界模型的提法是从强化学习和认知科学里长出来的。说人话就是:系统内部维持一个对环境的隐式模型,给它一段历史观测和动作,它能预测接下来会发生什么。
类比一下大语言模型:GPT通过学习海量文本去预测下一个token,掌握了语言的统计规律和部分世界常识;驾驶世界模型则通过学习海量驾驶数据去预测下一帧场景,掌握交通的动态规律——车会怎么动、遇到前车减速、超车汇入、路口博弈,这些"常识"不再靠人写规则,而是从数据里长出来。
在自动驾驶里,世界模型有两条命脉级用途。一条是下游任务预训练:如果模型能预测未来场景,它必然已经理解了场景结构和物理规律,这种表征拿来初始化感知或规划头,比随机初始化强得多。另一条是仿真与生成:传统仿真器靠手工搭建场景,永远覆盖不了真实世界的长尾;世界模型可以基于真实数据做条件生成,把罕见的危险场景"续写"出来,喂给规划器训练和验证。
2.2 世界模型与OCC的共生关系
这里我想澄清一个多数人没想透的点:世界模型不该在原始像素空间里做预测。
像素预测极其昂贵,而且大量算力浪费在纹理、亮度这些和安全无关的信息上。世界模型真正的价值在"结构化的时空动态",而这正是OCC的强项——OCC把海量像素压缩成有几何意义、带语义的三维占据帧。用更直白的类比:OCC是感知空间里的"分词器",世界模型是建立在分词之上的"语言模型"。世界模型完全可以在OCC表征空间里做未来预测:给定过去几帧占据栅格和自车动作,生成下一帧占据栅格。这样预测的目标从亿万像素降到了百万体素,计算量可接受,且预测结果直接可被下游规划消费。
这也是我判断"融合窗口已到"的核心原因之一:只有当感知表征稳定且紧凑(OCC),世界模型才找得到合适的落脚层。前几年大家都在讨论世界模型,但感知表征还是Box列表,世界模型被逼去像素空间硬啃,效果自然差强人意。一旦OCC普及,这条链路瞬间通顺了。
3. 端到端技术栈:融合窗口期的到来逻辑
3.1 模块化到端到端,技术栈为什么必须重写
老一代模块化技术栈的架构是感知、预测、规划各干各的:OCC,准确说是感知模块,输出目标框和车道线;预测模块拿到这些框,手工设计轨迹;规划模块再接手。每个模块单独训练、单独评测、单独标定。问题随之而来:误差在接口处层层放大,感知漏检一个特殊物体,后面的预测和规划再聪明也无济于事;而且中间表示全是人定义的,汇总不了真实环境下海量的"说不清但就是存在"的语义。
端到端技术栈的思路,是让从传感器原始输入到方向盘/油门/刹车信号的整条链路走一个可微的高效网络,梯度直接从最终驾驶行为传到感知特征层。这样做带来的转变是决定性的:感知特征不再服务于"做人能看的框",而是服务于"规划需要的信息"。很多传统方案里难以手动描述的决策依据——前车司机似乎要加塞、隔壁大车有压线趋势——在端到端的特征空间里被隐性编码了。
3.2 为什么说现在是窗口期
讲窗口期,不能光讲技术本身,得看外部条件是否成熟。我理解有几个条件,恰好在这一两年同时到位:
- 感知底座成熟:OCC在三维稠密表征上给出了行业基本盘,端到端不再缺几何表示;
- 数据引擎成熟:离线OCC自动标注已经能规模化生产高质量真值,喂得动大模型训练;
- 车端算力成熟:主流智驾芯片已经能在100毫秒级延迟内跑通OCC加轻量端到端模型;
- 评测需求倒逼:纯规则仿真器满足不了长尾验证,世界模型作为动态场景生成器恰好补位。
这四个条件齐了,技术栈的重构才有可能性。早两年,即便有人想做OCC+世界模型+端到端,物理条件也不允许;晚两年,标准一旦固化、芯片定制化定型,再进去的窗口就关了。现在正好是对技术路线有判断力、又有工程盘的团队抢跑的最好时机。
3.3 融合期技术栈全景与选型建议
我平时把现在的智驾技术栈切成五层,整理表格如下,方便对照选型:
| 层级 | 核心组件 | 关键选择 | 备注 |
|---|---|---|---|
| 数据层 | 数据引擎、自动标注 | 离线OCC模型负责真值生成;车队数据回流闭环 | 真值一致性是最大风险 |
| 表征层 | 多相机OCC | 稀疏卷积+类别平衡损失;语义标签可后期叠加 | 先保二值占据,再上语义 |
| 学习层 | 世界模型 | 在OCC空间做未来预测预训练;或做场景生成 | 不是上线必需,但决定上限 |
| 决策层 | 端到端规划器 | 基于OCC特征地图做局部博弈决策 | 建议保留安全冗余兜底 |
| 系统层 | 车端中间件、诊断与安全 | 多级报警、影子模式、远程接管 | 端到端不是冒进不背锅 |
给正在选型的团队一个实操建议:当前阶段最稳妥的起步方案是以OCC为公共中间表征,单一主干网络同时输出占据结果和隐式驾驶决策,保留一层浅层的可解释安全约束,不去追求一步到位的纯端到端。先跑通数据闭环,用影子模式验证模型在真实车上的行为分布,再逐步把安全约束交给模型自己学,这是落地风险最小的路径。
4. 落地实录:数据、算力、评测三大关
4.1 数据与真值:OCC标注不能指望纯人工
这是我最想跟新入行的朋友强调的事。OCC真值的标注成本,远比一般人想象得高。有经验的标注员标一个3D框大约要几十秒到一两分钟,但标注一个稠密体素栅格,如果纯靠人肉,一个人一天能做完整一帧就算神速——而且相邻两个人标同一帧,大概率各有各的"手抖",一致性根本无法保证。
真实行业方案是"离线自动标注+在线人工抽检":用离线高精度模型(多帧融合、激光雷达可选)自动生成占据与语义真值,人工只负责处理和抽检难例。这套流程有几个细节我踩过坑,分享出来:
- 动态物体的占据真值必须做时序对齐。一辆运动中的车,它前一刻占过的体素和当前占过的体素是两回事,很多自动标注靠逐帧独立预测,结果标出来一坨"拖影",直接污染训练;
- 遮挡区域的处理要明确口径。是被遮挡的区域保持未知,还是当作空闲?行业里默认对传感器不可见区域不强制赋予占据标签,否则模型会被"伪空闲"误导;
- 真值一致性问题要建版本管理。换了一版离线模型,真值分布就会变,训练评估结果完全不可比,不做版本锁定会白费几周实验。
4.2 算力与实时性:怎么把OCC和端到端塞进车端
车端部署的痛感,纸上谈兵是体会不到的。拿个具体数字说话:一个给定区域用0.3米分辨率切体素,前向80米、横向40米、垂直6米,就是267×133×20,约70万体素的分类输出。再叠加端到端规划头,一块主流智驾芯片的算力立刻见底。
几个工程技巧是经过验证的:
- 注意力聚焦:感知范围不是方盒子,可行驶区域正前方的分辨率高,两侧纵深的体素可以粗到0.5米甚至只保留占据概率不做语义分类;
- 蒸馏与剪枝:离线跑大模型做教师网络,生成高置信伪标签,把车端小模型往教师的行为上拟合,这是最实用的精度提升手段;
- 延迟预算拆分:OCC推理80毫秒、端到端规划40毫秒、叠加传感器采集与调度损耗,全链路最好压在150毫秒内,超过就会明显影响控制稳定性;
- 分层重算:高频轻量模型以20赫兹刷新近场,低频大模型以5赫兹刷新全域,既保证安全响应速度,又省算力。
4.3 评测与迭代:开放世界凭什么说"更安全"
最后这道关最要命:OCC和端到端模型到底怎么证明比老技术栈安全?
业内最基本的评测手段是开环指标,也就是对比模型输出的决策轨迹与人类司机真实轨迹的偏差,加碰撞率、偏航率统计。但开环指标存在一个致命缺陷:在真实数据上,模型哪怕已经偏出了路线,只要还没撞到物体,就不会得到即时负面反馈,误差会被惯性掩盖。
所以真正靠谱的验证闭环得靠"世界模型当裁判":让世界模型基于真实历史场景生成约2000种可能的未来——前车急刹、行人穿行、电瓶车鬼探头——然后在这个模拟未来集里跑规划器,统计闭环碰撞率和接管率。这种方式比规则仿真器强得多,因为场景分布是从真实数据学来的,长尾覆盖度远超人工搭建。
再有就是影子模式。新车系统在很长一段时间里只做"观察者",与旧系统并行输出,不实际控制车辆,持续记录"如果当时我在开,会怎么样"。这套体系和A/B实验平台一起,构成了今天端到端智驾的迭代基座。我个人的体会是,评测体系没跑通之前别急着放开控车范围,宁可让系统在冷板凳上多坐几个版本,也别在开放道路上赌概率。
5. 我个人的体会与建议
聊这么多,最后说几句掏心窝的话。
我在这个行业里见过太多"方案崇拜":前年追BEV,去年追Transformer,今年追端到端,每次都是追到一半发现背后的数据、算力、评测体系完全没跟上。OCC、世界模型、端到端这条线的理念确实是对的,但它的门槛恰恰不在模型结构,而在工程系统——数据真值的一致性、车端算力的分配、评测闭环的严谨,任何一环是短板,整套技术栈都给不了安全的结果。
对正在观望或者打算入局的团队,我建议现在的务实路线是:先把OCC做成感知输出的统一公共接口,把数据闭环跑通;再用世界模型作为验证和预训练工具,一点点提升规划上限;端到端决策则按影子模式逐步放开。技术栈融合的窗口期不是用来赌博的,是用来说服自己把地基做扎实的。谁先把这条链路的工程细节磨平,谁就能在下一轮量产大战里拿到真正的先手。