Occupancy 的本质,是把世界表达为一个概率化的空间场。它不像检测框那样说“这里有一辆车”,而是说“这个空间单元在当前或未来被占据的概率是多少”。这看似粗糙,实际更接近规划系统真正关心的问题:车身经过某个空间时,风险是多少。
自动驾驶系统的演进,不是从“没有 Occupancy”到“有 Occupancy”这么简单。真正的分水岭在于:概率信息有没有活到规划决策那一刻。
图 1|Occupancy 与规划结合的工程演进

一、不要问 Occupancy 是否先进,要问它在哪里被截断
Occupancy 最大的价值是概率场,而最常见的浪费方式,是把它过早变成“能走 / 不能走”的二值边界。
这就像气象雷达能告诉我们一片云团的厚度、移动方向和降雨概率,但我们最后只把它画成一条红线:线内危险,线外安全。图变干净了,信息也没了。
结合层级 | Occupancy 的角色 | 信息保留程度 | 工程价值 | 主要代价 |
|---|---|---|---|---|
间接结合 | 安全兜底 / Free Space 边界来源 | 低 | 不推翻原规划栈,量产风险低 | 概率、3D结构、时序信息大量丢失 |
半直接结合 | 栅格代价地图 / 碰撞代价输入 | 中高 | 规划器能直接利用概率与几何 | 算力、访存、实时性压力上升 |
隐式端到端 | 训练监督 / BEV 特征约束 | 隐式保留 | 提高复杂交互能力 | 调试困难,安全验证弱 |
显式端到端 | 世界模型核心状态 | 高 | 可预测、可渲染、可回放 | 预测误差累积,车端部署成本高 |
Occupancy 真正改变规划系统的地方,不是让车“看见更多东西”,而是让规划器第一次有机会面对一个灰度世界。
传统规划器喜欢黑白世界:有障碍、无障碍;在车道内、在车道外;可通行、不可通行。但真实道路是灰度的。一个低矮纸箱、一个塑料袋、一片积水、一个悬空货车尾板,它们都不适合被简单塞进“障碍物”或“非障碍物”。Occupancy 把这种灰度显式表达出来,规划系统才有可能做出更像人类的风险管理。
二、阶段一:间接结合——给旧规划栈加一只“几何保险丝”
间接结合是最容易量产、也最容易被误解的方案。
它的核心做法是:Occupancy 网络输出 3D 或 BEV 占据结果,系统再通过高度切片、投影、阈值化、形态学处理、轮廓提取,把它变成 Free Space 边界或障碍物多边形,然后送入传统规划器。

这套方案像在老房子里加装烟雾报警器。它不改变房子的电路、水管和结构,但能在最危险的时候发出警报。对于已有成熟规划栈的车企,这是很现实的选择。安全验证资产可以复用,规划器接口变化小,算力压力可控,量产节奏不会被彻底打断。
但它的缺陷也很硬。Occupancy 本来是一张概率地图,进入后处理后被压缩成边界线。规划器看到的不是“这里有 0.35 的占据概率,那里有 0.82 的占据概率”,而是“这里不能走,那里能走”。这等于把灰度照片重新描成线稿。
更麻烦的是,后处理链路本身会放大误差。一个 0.3m 分辨率的 BEV 栅格,边界量化误差通常已经和栅格尺寸同量级相关。再经过膨胀、腐蚀、轮廓提取和凸包拟合,障碍物边界往往会被“吹胖”。在宽阔道路上,这种保守没什么问题;到了狭窄会车、施工绕行、地下车库、城中村道路,它就会变成通行能力问题。车不是不知道前面有路,而是它看到的“安全空间”被自己算法的安全边界吃掉了。
间接结合真正适合什么场景?
场景 | 是否适合 | 原因 |
|---|---|---|
中低速 L2+ 辅助驾驶 | 适合 | 可作为漏检兜底,接入成本低 |
泊车 / 低速避障 | 适合 | 对速度预测要求低,几何兜底收益明显 |
高速复杂交互 | 不充分 | 动态预测和时空一致性不足 |
无图城区 NOA | 勉强可用 | 需要大量规则补丁支撑 |
L4 Robotaxi | 不足 | 可验证性有,但表达能力不够完整 |
在公开技术展示中,Occupancy Network 已经被一些公司作为关键空间表征展示出来,Tesla 2022 AI Day 也专门展示过 Occupancy Network 与 Planning 相关内容;但公开展示不能直接推出内部量产系统的仲裁优先级,更不是“无条件相信某一路感知”。工程上没有“无条件相信”,只有置信度、时序稳定性、传感器一致性、场景上下文和安全策略共同决定的仲裁。
真正成熟的系统不会盲信 Occupancy,也不会盲信检测框。它会问几个更冷静的问题:
仲裁问题 | 工程含义 |
|---|---|
这个占据是否连续出现? | 排除单帧噪声与反光伪影 |
是否跨传感器一致? | Camera / LiDAR / Radar 是否相互支持 |
是否符合地面几何? | 防止把影子、积水、广告牌误判为障碍 |
是否与自车运动相关? | 判断障碍是否处于可碰撞路径内 |
错判代价与漏判代价哪个更高? | 高速场景偏保守,低速窄路不能过度保守 |
Occupancy 在这一阶段不是主厨,更像验毒针。它不能决定整桌菜怎么做,但它能在最危险的时候阻止系统把毒吃下去。
三、阶段二:半直接结合——让规划器直接阅读概率场
传统规划像拿尺子量边界,半直接结合像在一张热力图上找低温通道。前者问“碰没碰到”,后者问“这条路径的风险总量是多少”。
核心代价表达
可以把车辆轨迹上的碰撞风险简化理解为:
其中:
符号 | 工程含义 |
|---|---|
Occupancy(x, y, t) | 某个时空栅格被占据的概率 |
VehicleKernel | 车辆轮廓在该姿态下覆盖栅格的权重 |
θ | 自车航向角 |
v | 当前速度 |
RiskWeight | 根据车速、场景、道路类型调整的风险权重 |
这个变化看起来只是碰撞检测方式变了,实际是规划哲学变了。
传统二值碰撞检测像法官:只判有罪或无罪。栅格概率代价像风险经理:它不急着判死刑,而是计算每条路径的风险暴露。
图 2|半直接结合的 Layered Costmap 架构

半直接结合的创新点,不是“用了 Occupancy”,而是重构了三个接口。
规划输入接口:从对象列表变成空间场
Occupancy 不是“彻底解决异形障碍物”,它只是扩大了系统可表达的物理世界范围。遇到雨雾、反光、遮挡、传感器脏污,Occupancy 仍然会退化。
碰撞检测接口:从硬边界变成软势场
传统车辆模型通常用矩形框、多圆模型或多边形表达。硬边界的问题是代价不连续:差一点没撞,代价是 0;刚刚碰到,代价突然变成无穷大。这对优化器不友好。

这样障碍物附近形成连续风险场,轨迹优化器可以沿着梯度自然远离高风险区域。

这像把墙从“硬砖头”变成“越来越烫的空气”。车越靠近障碍物,代价越高;优化器不需要等到撞上才知道危险。
计算接口:从 CPU 几何运算转向 GPU 栅格并行
半直接结合听起来优雅,落到车端就是算力账。
表 2|半直接结合中的关键工程权衡
设计项 | 激进方案 | 保守方案 | 工程问题 |
|---|---|---|---|
栅格分辨率 | 近场 | 近场 0.25–0.4m | 精细避障与算力/显存带宽冲突 |
高度表达 | 完整 3D Voxel | 多高度层 BEV | 保留立体结构还是压缩输入 |
时间维度 | 多秒 Occupancy Flow | 短时预测 + 跟踪补偿 | 长时预测误差会快速累积 |
车辆模型 | 多高斯核 / 连续势场 | 矩形框 / 多圆模型 | 可微优化与计算成本冲突 |
安全边界 | 概率自适应 | 固定膨胀距离 | 灵活性与可验证性冲突 |
地图融合 | 地图栅格实时融合 | 地图只作为规则约束 | 地图过期与感知冲突如何仲裁 |
这里最容易出问题的是安全边界。
很多系统为了安全,会把 Occupancy 代价做得很厚。结果是车辆在开阔道路上很安全,在窄路里像一个怕脏鞋的人:明明能过,就是不敢过。高斯核尾部如果不截断,低概率风险会铺满整个狭窄通道;截断太狠,又会损失提前避障能力。
这类参数不是调得越保守越好。过度保守也是安全风险,因为后车追尾、路口僵持、无保护左转迟滞、施工区停车,都会把车辆暴露在新的风险里。自动驾驶的安全不是“不动”,而是在风险之间做最小化选择。
四、动态 Occupancy:真正困难的是未来,不是当前
当前帧 Occupancy 解决的是“现在空间里有什么”。规划真正需要的是“我到那里的时候,那里会有什么”。
这就是 Occupancy Flow 和 4D Occupancy 的价值。Waymo 提出的 Occupancy Flow Fields 把运动预测表达为时空栅格,每个格子不仅有占据概率,还包含表示运动方向和幅度的 flow vector,用来缓解单纯 occupancy grid 不表达运动的问题。
这一步非常关键。因为自动驾驶规划不是在静态地图上画线,而是在一群会移动、会犹豫、会抢行、会犯错的人之间下注。

这里的技术难点不是把未来栅格画出来,而是让它对规划有用。
一个预测模型如果只是生成“看起来合理”的未来场景,对车端没有太大意义。规划需要的是可比较、可回放、可归因的未来风险。也就是说,不同自车动作必须能导致不同未来占据结果,否则世界模型只是一个漂亮的动画播放器。
这也是动作条件世界模型的意义。它不只是问“世界会怎样”,而是问“如果我刹车、加速、变道、让行,世界分别会怎样”。
近年的研究已经在尝试把 4D Occupancy forecasting 与规划结合,例如 Drive-OccWorld 将视觉中心的 4D occupancy forecasting world model 用于端到端规划,并探索 action condition、future occupancy and flow forecasting 以及 occupancy-based cost function。
五、隐式端到端:性能像涡轮,验证像黑箱
隐式端到端的逻辑很诱人:不要再人为拆分感知、预测、规划,让网络从传感器输入直接学习到驾驶轨迹。Occupancy 在这里不一定作为显式规划输入,而更像训练时的几何老师。它通过辅助监督约束 BEV 特征,让网络内部学到空间结构、遮挡关系和运动规律。
这套范式的优点很明显。模块化系统每经过一个接口就会损失信息:检测框丢掉形状,轨迹预测丢掉联合不确定性,规则规划丢掉人类驾驶里的微妙博弈。隐式端到端试图让信息在同一个特征空间里流动,减少人为接口造成的损耗。
但它也带来一个硬伤:你很难知道系统为什么这样开。模块化系统像一台拆得开的机械表,每个齿轮都能检查。隐式端到端像一块封装芯片,性能可能更强,但出了问题只能通过输入输出倒推。对于量产自动驾驶,这不是小问题。事故复盘、责任界定、安全验证、法规沟通,都要求系统能解释“为什么在这个时刻选择这条轨迹”。
维度 | 模块化系统 | 隐式端到端 |
|---|---|---|
性能上限 | 受接口损失限制 | 更高 |
调试方式 | 可逐模块定位 | 依赖数据回放与归因分析 |
长尾泛化 | 依赖规则与数据覆盖 | 可能更强,但不可完全预测 |
安全验证 | 白盒程度较高 | 白盒验证困难 |
工程维护 | 模块多,接口复杂 | 架构简洁,但问题定位难 |
量产风险 | 可控但上限有限 | 上限高但安全论证更难 |
在真实量产中,端到端模型通常仍需要安全壳、规则约束、冗余监控和可回退策略。没有这些东西,端到端不是自动驾驶系统,只是一个会输出轨迹的大模型。
六、显式端到端:把世界模型做成规划器的沙盘
显式端到端试图解决隐式端到端的黑箱问题。它保留神经网络的强表征能力,但不让网络直接把一切吞掉。系统先预测未来多帧 4D Occupancy + Flow,再让规划器在这个可观测、可渲染、可回放的未来世界中选择轨迹。
这更像军队做沙盘推演:不是凭直觉下命令,而是先推演不同路径下敌我位置变化,再选风险最低的行动。

显式端到端的最大优点,是它保留了工程系统最需要的三样东西:
能力 | 工程价值 |
|---|---|
可解释 | 能看到未来哪个空间风险导致规划器避让 |
可回放 | 问题场景可以离线重演,方便定位 |
可验证 | 可以对未来占据结果、规划代价、安全边界分别测试 |
但它的代价也很沉重。4D Occupancy 的计算量不是普通 BEV 感知的线性升级,而是把空间、时间、语义、运动、自车动作条件全部揉在一起。当前帧看错一次,未来多帧连续滚动预测会把误差累积放大。世界模型如果过度自信,会让规划器相信一个不存在的未来;如果过度保守,车辆会像患有焦虑症一样开车。
显式端到端真正要解决的不是“预测未来”,而是“知道自己预测得有多不确定”。没有不确定性校准的世界模型,只是高级幻觉机。
图 3|Occupancy 规划系统的技术脑图

七、真正的创新不在模型名,而在四个工程缝隙
很多文章写 Occupancy,喜欢堆概念:BEV、Transformer、4D、World Model、End-to-End。问题是这些词本身不构成工程创新。真正决定系统水平的,是几个缝隙处理得怎么样。
缝隙一:感知概率如何变成规划代价
Occupancy 输出 0.7,并不自动意味着规划器应该避让多少。概率到代价之间需要映射函数,这个映射函数会决定车辆性格。
同样的 Occupancy,代价映射陡峭,车会保守;映射平缓,车会激进。高速场景需要高惩罚,泊车场景需要允许低速贴近。雨雾场景需要扩大不确定性边界,窄路会车又不能让边界过度膨胀。
真正的工程能力,不是有一个 Occupancy 网络,而是能根据速度、场景、道路拓扑、交通参与者类型和历史稳定性动态调整风险代价。
缝隙二:高度信息如何压缩
完整 3D Voxel 很贵,直接压成 2D 又容易丢失信息。路沿、低矮障碍、悬空货车尾板、限高杆,对自车风险完全不同。高度压缩不是简单投影,而是一次面向车辆几何的风险提取。
高度区域 | 风险类型 | 处理策略 |
|---|---|---|
近地面低矮区域 | 路沿、碎石、坑洼、井盖噪声 | 需要区分可碾压与不可碾压 |
车身碰撞区域 | 车辆、行人、锥桶、护栏 | 主碰撞检测区域 |
车顶 / 悬空区域 | 限高杆、货车尾部、树枝 | 需要结合车辆高度与路径姿态 |
高空区域 | 广告牌、树冠 | 多数情况下不应影响规划 |
高度切片阈值必须与车型底盘高度、传感器安装位置、场景类型和可碾压策略绑定,不存在一个放之四海皆准的固定区间。
缝隙三:地图和实时感知冲突时相信谁
地图是记忆,Occupancy 是现场。记忆有用,但会过期;现场真实,但会有噪声。
高精地图告诉你这里有车道线,Occupancy 告诉你这里有施工围挡。系统不能简单选一个相信。它需要判断地图元素的时效性、感知结果的稳定性、道路拓扑的可替代性,以及违反地图行驶的法规风险。这类冲突是城市 NOA 的日常,不是 corner case。
缝隙四:系统如何证明自己安全
Occupancy 让感知表达更连续,但也让验证更复杂。传统多边形障碍物可以做明确的碰撞检查,概率场则需要定义风险阈值、代价积分、时序一致性和不确定性边界。
这意味着安全验证必须从“是否撞上障碍物”扩展到:
验证对象 | 需要回答的问题 |
|---|---|
Occupancy 校准 | 预测概率是否和真实占据频率一致 |
时序稳定性 | 同一障碍是否闪烁、漂移、消失 |
规划代价映射 | 低概率风险是否被过度放大或忽略 |
轨迹安全边界 | 不同速度下是否满足制动与避让约束 |
回退策略 | Occupancy 退化时系统如何降级 |
八、四类架构的最终判断
架构 | 工程本质 | 最适合的落地位置 | 最大风险 |
|---|---|---|---|
间接结合 | 用 Occupancy 给传统规划补盲 | 已量产平台、低成本 L2+、泊车 | 信息损失严重,狭窄场景保守 |
半直接结合 | 让规划器直接读取概率场 | 城市 NOA、复杂泊车、无图泛化 | 算力与验证复杂度上升 |
隐式端到端 | 用 Occupancy 训练更强 BEV 特征 | 数据闭环强、追求交互性能的平台 | 黑箱决策与事故归因困难 |
显式端到端 | 用 4D 世界模型做可解释推演 | 高阶自动驾驶、Robotaxi、研究前沿 | 预测误差累积,车端成本高 |
如果要给出一个冷静判断:未来相当长一段时间,主流量产不会直接跳到完全显式世界模型,也不会彻底抛弃模块化安全壳。更现实的路线是半直接结合成为中枢,端到端模型提供候选轨迹或特征增强,规则系统和安全监控作为外层约束。
也就是说,量产自动驾驶不会是一场“神经网络消灭传统规划”的革命,更像一次缓慢的器官移植:先换感知表征,再换碰撞检测,再换预测接口,最后才可能换掉决策心脏。
九、核心结论
Occupancy 的价值不在于它比检测框“更高级”,而在于它把自动驾驶规划从对象中心推向空间中心。
对象中心的系统问:“我识别出了什么?”
但 Occupancy 不是银弹。它解决了传统感知对语义类别过度依赖的问题,却引入了新的系统成本:栅格分辨率、显存带宽、概率校准、时序一致性、地图冲突、代价映射、安全验证。真正成熟的自动驾驶公司不会把 Occupancy 当成一个炫技模块,而会把它当成贯穿感知、预测、规划、仿真和数据闭环的统一空间协议。
一句话概括:
Occupancy 不是让车“看见物体”的技术,而是让车“经营空间风险”的技术。它的终点不是更大的栅格,而是一个能被规划器理解、被安全系统约束、被工程团队验证的概率世界。
这才是它真正重构自动驾驶系统的地方。
原文链接:https://mp.weixin.qq.com/s/dsEzHYxKCLrVY-uQcI7oGw
