Kalman Filter (KF)
探索卡尔曼滤波如何在不确定性下估计系统状态。学习使用它进行 Ultralytics YOLO26 对象跟踪,以提高 AI 精度。
卡尔曼滤波 (KF) 是一种递归数学算法,用于估计动态系统随时间变化的状态。该技术最初由 Rudolf E. Kálmán 提出,对于处理不确定、不准确或包含随机变化(通常称为“噪声”)的数据至关重要。通过结合一系列包含统计误差的时间观测测量值,卡尔曼滤波生成的未知变量估计值比仅基于单一测量得出的结果更精确。在 机器学习 (ML) 和 人工智能 (AI) 领域,它是 预测建模 的关键工具,能平滑锯齿状数据点以揭示真实的潜在趋势。
Link to this section卡尔曼滤波的工作原理#
该算法在两个步骤的循环中运行:预测和更新(也称为校正)。它假设底层系统是线性的,并且噪声遵循 高斯分布(钟形曲线)。
-
预测: 滤波器使用物理模型将当前状态向前推演。例如,如果一个物体以恒定速度移动,滤波器会根据标准的 运动学方程 预测其下一个位置。此步骤还会估计与该预测相关的 不确定性。
-
更新: 当传感器传来新的测量值时,滤波器会将预测状态与观测数据进行比较。它计算加权平均值(由 卡尔曼增益 决定),该权重会更倾向于不确定性较小的值(预测值或测量值)。结果是一个精炼的 状态估计,作为下一个循环的基准。
Link to this section在计算机视觉和 AI 中的应用#
虽然卡尔曼滤波最初植根于控制理论和航空航天导航,但它现在已广泛应用于现代 计算机视觉 (CV) 流水线中。
- 目标追踪: 这是最常见的用例。当像 YOLO26 这样的检测模型在视频帧中识别出目标时,它提供的是静态快照。为了理解运动,像 BoT-SORT 这样的追踪器利用卡尔曼滤波来连接各帧之间的检测结果。如果目标暂时被遮挡(从视野中消失),滤波器会使用该目标之前的速度来预测其位置,从而防止系统丢失“追踪”或发生 ID 切换。
- 机器人传感器融合: 在 机器人技术 中,机器必须使用多个有噪声的传感器进行导航。配送机器人可能会使用 GPS(可能会漂移)、轮式编码器(可能会打滑)和 IMU(本身有噪声)。卡尔曼滤波融合了这些不同的输入,为导航提供单一、可靠的坐标,这对于安全的 自动驾驶车辆 运行至关重要。
Link to this section区分相关概念#
区分标准卡尔曼滤波与其在 统计 AI 中发现的变体和替代方案是很有帮助的:
- 卡尔曼滤波 vs 扩展卡尔曼滤波 (EKF): 标准 KF 假设系统遵循线性方程(直线)。然而,现实世界的运动——例如无人机转弯——通常是非线性的。EKF 通过在每个步骤中使用导数对系统动态进行线性化处理来解决这个问题,使其适用于复杂的轨迹。
- 卡尔曼滤波 vs 粒子滤波: 虽然 KF 依赖于高斯假设,但 粒子滤波 使用一组随机样本(粒子)来表示概率分布。粒子滤波对于非高斯噪声更灵活,但需要显著更多的计算能力,这可能会影响 实时推理 的速度。
Link to this section实现示例#
在 Ultralytics 生态系统中,卡尔曼滤波直接集成到了追踪算法中。你无需手动编写方程;只需启用追踪模式即可利用它们。Ultralytics 平台 允许你管理数据集并训练模型,这些模型可以轻松部署这些追踪功能。
以下是一个使用 Python 执行 YOLO26 追踪的简洁示例,其中底层的追踪器会自动应用卡尔曼滤波来平滑 边界框 的移动:
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Run tracking on a video source
# The 'botsort' tracker uses Kalman Filters internally for state estimation
results = model.track(source="traffic_video.mp4", tracker="botsort.yaml")
# Process results
for result in results:
# Access the tracked IDs (assigned and maintained via KF logic)
if result.boxes.id is not None:
print(f"Tracked IDs in frame: {result.boxes.id.cpu().numpy()}")Link to this section对数据质量的重要性#
在现实世界的部署中,数据很少是完美的。摄像头会受到运动模糊的影响,传感器也会经历信号噪声。卡尔曼滤波在决策循环中充当了一种复杂的 数据清洗 机制。通过不断细化估计,它确保 AI 代理 基于最可能的现实进行操作,而不是对输入流中的每一个瞬间故障做出反应。这种可靠性对于从监控 机场运营 到精密工业自动化的安全关键型应用至关重要。






