为什么自动驾驶要做“预测”
[首发于智驾最前沿微信公众号]自动驾驶汽车要安全行驶,光知道眼前有什么还不够,更重要的是能预判接下来会发生什么。打个比方,开车的人不仅看前方的车位,还会判断那辆车是不是要并线、那个行人是不是准备过马路。自动驾驶也是这样,如果只是把物体的位置和速度报出来,规划器就只能被动反应,容易出现紧急制动、急拐或让乘客觉得不舒服等情况。预测的核心价值是把“可能发生的未来”提前告诉决策层,让车能提前准备,从而做出提前减速、放弃变道或慢慢避让等决策,从而把突发情况变成可控事件。

预测不仅仅是让自动驾驶系统可以思考,预测的时间尺度也很重要。像是未来1s~2s的短时间的预测,多半是根据当前速度和方向往前延伸就能大致估计,这是为了避免追尾等即时风险;而三到六秒、甚至十秒的预测,则需要理解对方的意图,比如前方车辆是不是要进出口匝道,对面的骑车人是不是要拐弯。这两类预测用到的技巧不一样,短期更多靠物理和滤波,长期则要靠对道路语义和人车互动的理解。预测不是可选项,而是把“看见”变成“懂得可能发生什么”的必要能力。
自动驾驶是怎么做预测的?
想要让自动驾驶汽车做好预测,首先得有靠谱的输入。摄像头、雷达、激光雷达会把周围的物体“看”出来,然后跟踪模块把同一个目标在时间上连成轨迹,告诉系统这个目标现在在哪儿、速度多快、朝哪个方向。高精度地图在这个环节中的作用也很关键,高精度地图能告诉系统车道在哪儿、路口怎么连、哪里有人行横道,这些信息可以把未来的可能性大幅缩小。没有稳定的跟踪和时间同步,预测的基础就不牢。

想实现预测,其实有几类比较直观的办法。最简单的是把车辆或者行人当作遵循物理规律在走的“物体”,用当前速度和加速度往前推几步,这种做法快、稳,短时间内的决策通常够用。还有一种叫概率/滤波的方法,会把不确定性考虑进去,用数学工具维护“可能状态”的分布,在遇到传感器噪声或遮挡时会更稳。第三种是靠数据学出来的方法,也就是现在比较火热的深度学习。它们把历史轨迹、地图信息、周围车辆的行为一股脑儿丢进模型,学习从复杂场景里直接输出“未来可能的几条轨迹”。这些学习方法能捕捉到礼让、并线、绕行等策略性行为,但需要大量数据来训练。
当然,在实际的交通环境中,交通参与者并不只会做一个的动作,比如在十字路口,一辆车可能直行也可能左转,这就是所谓的多模态。因此在预测技术中,通常不会只给一条“最可能”的路,而是给几条带概率的候选轨迹,或者直接给出一个轨迹的概率分布。这样做的好处是规划器可以基于概率来做风险权衡,某条轨迹虽然最可能,但另一条低概率但高风险的轨迹会导致碰撞,系统就会选择更保守的策略。与此同时,预测系统还要把模型没见过的情况区分出来,也就是模型不确定性。如果模型对当前场景信心不足,系统应该主动变得保守,比如执行减速或请求人工接管的动作。
自动驾驶系统在预测时还有一个很关键的问题就是互动,路上的参与者会互相影响。比如准备变道的车会观察旁边车的速度,旁边车的反应又会影响它的决策。把每个目标独立预测通常会出问题,尤其是在人多、车多的城市路段,每个目标独立预测通常没有什么意义。因此现在常用的方法会把周边对象的信息“聚合”起来,学习他们之间如何相互影响。有的用注意力机制把影响大的对象加权,有的把道路和车辆抽成图结构,用图神经网络来传播影响信息。总之,交互建模是让预测更贴近真实行为的关键一步。
想要让预测技术应用到实际,其实还有一个细节是如何表示这些信息。早期很多系统把场景渲染成鸟瞰的格子图像(BEV),再用卷积网络处理,这种方式直观,但对表达长距离道路拓扑不够高效。最近更流行把车道、路口这些用向量方式表示,结合图网络或基于矢量的Transformer,既节省计算又更符合道路的结构。在实际应用中多选择模块化方案,即感知先把结构化信息(物体、轨迹、地图语义)产出来,预测模块再用这些干净的输入做判断,这样利于验证和可解释。
把预测放到真实车上有何实际难题?
把一个预测模型从实验室放到真车上,将会有很多问题。第一个是延迟,模型越复杂推理越慢,延迟会侵蚀决策时间窗,影响能否及时应对突发情况。第二个是算力,车上的计算资源有限,必须在精度和速度间取舍。第三个是验证,光看预测模型训练时的误差指标完全不够,必须把预测器放到整个感知—预测—规划—控制的闭环里做仿真和路测,看看在预测出错时整车系统是否还能保证安全。这种闭环评估比单独看轨迹误差更能发现真实风险。
![]()
对于预测模型来说,数据很重要但也很难。大多数危险的场景一般不会出现,真实道路上很难收集到足够多的样本。为了解决这个问题,在很多技术实现中会通过仿真合成或放大这些长尾场景来训练和验证,或者是做场景挖掘,把真实数据里出现的复杂场景抽出来作为重点测试用例。当然那,在这一环节中,标注也不能马虎,轨迹标签要时间对齐、定位准确,否则模型会学到错的规律。
预测模型在运行时还需要有明确的守护策略。预测模块要跟规划模块约定好接口,比如候选轨迹的数量、置信度怎么表达、当置信度低时采取的默认动作等。自动驾驶系统还要能检测输入分布漂移,如果当前遇到的场景和模型训练时差别很大,系统应该自动触发更保守策略。很多事故并不是单一模块出错,而是模块之间对风险的理解不一致导致的连锁反应,所以接口和降级策略的设计要在系统层面就考虑清楚。
最后的话
预测前方交通环境既是科学问题也是系统工程问题。它结合了物理规律、概率理论与大规模数据驱动方法,同时必须通过严谨的工程验证与运行时守护来保证安全。一个既能输出多模态候选又能提供可信置信度、并和规划器协同做风险加权决策的预测—规划闭环,才是真正具备落地能力的解决方案。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.