3. 异常检测概述

在自动驾驶系统中,“异常”并不是一个模糊的“感觉不对”,而是一个可被定义、可被观测、可被判定并需要触发响应的工程对象。异常检测的目标,是在系统仍处于可纠正阶段时,尽早识别出偏离预期行为、预期状态或预期环境模型的事件,为降级、告警、靠边停车或紧急接管争取时间。若把自动驾驶比作一名持续工作的驾驶员,异常检测就是它的“警觉系统”:既要发现传感器看不清、算法算不准,也要发现环境突变和系统自身失效。

核心定义:异常是指系统在运行过程中,某一观测、状态、输出或环境条件显著偏离正常分布、设计假设或安全边界,并可能导致功能性能下降、安全风险上升或任务失败的事件或模式。

3.1 异常的定义与判定边界

异常检测不是单纯追求“发现所有不同”,而是要在误报与漏报之间取得平衡。工程上通常从三个维度定义异常:

  • 统计维度:观测值偏离历史分布或预测分布,例如激光雷达点云密度骤降、摄像头图像亮度突变。
  • 逻辑维度:违反系统设计约束或物理规律,例如车速与轮速长期不一致、障碍物轨迹穿越不可行驶区域。
  • 安全维度:虽未立即失效,但已进入风险边界,例如制动距离余量不足、接管时间窗口小于阈值。

因此,异常判定通常需要“阈值 + 上下文 + 持续时间”共同作用。单帧跳变可能是噪声,连续多帧偏离才可能是故障;单传感器异常可能由遮挡引起,多传感器一致性破坏则更可能是系统级问题。

3.2 异常分类:四类典型异常

结合自动驾驶感知—决策—控制链路,可将异常分为传感器异常、算法异常、环境异常和系统异常。四类异常并非孤立,常会级联传播。

异常类别典型表现常见根因检测信号示例
传感器异常图像模糊、点云缺失、雷达回波异常、IMU漂移遮挡、污损、雨雪、标定失效、硬件老化信噪比、点云密度、时间戳偏差、标定残差
算法异常漏检、误检、轨迹预测跳变、分类置信度异常分布外样本、模型过拟合、后处理逻辑缺陷置信度分布、检测框抖动、预测轨迹曲率
环境异常施工区、事故现场、极端天气、突然闯入目标场景超出训练分布、动态目标不可预测场景复杂度、未知障碍物比例、能见度估计
系统异常通信延迟、算力过载、执行器响应迟滞、电源波动资源竞争、网络抖动、硬件故障、软件死锁端到端延迟、CPU/GPU占用、CAN报文周期

3.3 检测难点与挑战

异常检测的困难,首先来自“正常”的边界本身就不固定。城市道路、高速公路、园区道路的正常模式差异巨大,同一场景在白天与夜间、晴天与雨天的统计特性也完全不同。其次,异常样本稀少且长尾,真实道路中严重故障和极端场景占比极低,导致监督学习难以覆盖。第三,多传感器和多模块之间存在耦合,一个传感器异常可能被融合算法“平滑”掉,也可能被误判为算法异常。第四,检测实时性要求高,必须在毫秒到百毫秒级完成判断,否则接管窗口会被压缩。最后,误报会降低用户信任,漏报则直接威胁安全,二者需要根据风险等级动态权衡。

工程提示:异常检测不应只依赖单一阈值。建议采用“多信号交叉验证 + 时间一致性 + 风险分级”的策略,把异常分为提示、降级、接管三级响应。

3.4 方法流程:从观测到接管

一个可落地的异常检测流程通常包含以下步骤:

  1. 数据采集与同步:对齐摄像头、激光雷达、毫米波雷达、IMU、GNSS和底盘信号的时间戳。
  2. 特征提取:计算点云密度、图像清晰度、检测置信度、轨迹残差、通信延迟等指标。
  3. 异常评分:用统计阈值、重构误差、分类器或规则引擎给出异常分数。
  4. 融合判定:结合多传感器一致性和时序持续性,输出异常类别与风险等级。
  5. 响应决策:触发告警、功能降级、靠边停车或紧急接管请求。
异常检测伪代码示例:
for frame in stream:
    features = extract(camera, lidar, radar, imu, can)
    score_sensor = sensor_consistency(features)
    score_algo   = model_uncertainty(features)
    score_env    = scene_complexity(features)
    score_sys    = latency_and_resource(features)
    risk = fuse(score_sensor, score_algo, score_env, score_sys)
    if risk >= TAKEOVER_TH:
        request_emergency_takeover()
    elif risk >= DEGRADE_TH:
        degrade_function()
    else:
        continue_driving()

3.5 案例与场景:施工区锥桶引发的连锁异常

车辆在城市快速路行驶,前方出现临时施工区。摄像头因逆光导致锥桶检测置信度下降,激光雷达点云被锥桶稀疏反射削弱,算法模块将部分锥桶误判为可行驶区域边缘。此时,环境异常(施工区)先出现,随后引发传感器异常(视觉退化)和算法异常(漏检)。若系统仅依赖单帧视觉结果,可能继续行驶;若引入多传感器一致性检测和时序跟踪,则能发现“视觉消失但雷达仍有回波”的矛盾,提前触发降级并提示接管。这个案例说明:异常检测必须跨模块、跨时间、跨传感器联合判断。

常见误区:把异常检测等同于故障诊断。故障诊断关注“部件是否坏了”,异常检测关注“当前行为是否偏离安全预期”。前者是后者的子集,后者还必须覆盖环境突变和算法不确定性。

3.6 复盘:检测能力评估清单

  • 是否覆盖四类异常:传感器、算法、环境、系统?
  • 是否定义清晰的正常基线与风险阈值?
  • 是否具备时间一致性和多传感器交叉验证?
  • 是否区分误报、漏报和延迟三类指标?
  • 是否与接管策略、降级策略形成闭环?
  • 是否在极端天气、施工区、通信抖动等场景中验证?
自动驾驶异常检测:分类、传播与响应 传感器异常 遮挡 / 污损 / 漂移 算法异常 漏检 / 误检 / 跳变 环境异常 施工 / 事故 / 天气 系统异常 延迟 / 过载 / 故障 多源特征融合与异常评分 一致性 · 时序 · 置信度 · 延迟 风险分级判定 提示 / 降级 / 紧急接管 提示与监控 记录异常,持续观察 功能降级 限速 / 靠边 / 请求接管 紧急接管 最小风险策略 异常检测的核心:早发现、准分类、快响应、可闭环

综上,异常检测概述的关键在于建立统一的异常定义、覆盖四类异常的检测视野,并正视长尾、耦合、实时和误报漏报等挑战。只有把异常检测嵌入感知、决策、控制与接管的全链路,才能让自动驾驶系统在不确定环境中保持可解释、可降级、可接管的安全能力。