深圳Yolo 视觉
深圳
立即加入
词汇表

卡尔曼滤波器 (KF)

探索卡尔曼滤波器如何在不确定条件下估计系统状态。学习将其Ultralytics 结合用于目标追踪,从而提升人工智能的精准度。

卡尔曼滤波器(KF)是一种递归数学算法,用于估计动态系统随时间变化的状态。该技术由鲁道夫·E·卡尔曼首创,对于处理不确定、不精确或含有随机波动(通常称为"噪声")的数据至关重要。 通过整合包含统计误差的时序观测测量序列,卡尔曼滤波器能生成比单次测量更精确的未知变量估计值。在机器学习(ML) 与人工智能(AI)领域,它作为预测建模的关键工具,能平滑锯齿状数据点以揭示真实的潜在趋势。

卡尔曼滤波器的工作原理

该算法采用两步循环运行:预测更新(亦称修正)。其假设基础系统为线性系统,且噪声遵循高斯分布(钟形曲线)。

  1. 预测:滤波器通过物理模型将当前状态向前推演。例如,若物体以恒定速度运动,滤波器将基于标准运动学方程预测其下一个位置。此步骤同时估算该预测所伴随的不确定性
  2. 更新:当传感器传回新测量值时,滤波器会将预测状态与观测数据进行比较。它通过卡尔曼增益计算加权平均值——该增益使系统更倾向于采信不确定性较低的值(预测值或测量值)。最终得出的精确状态估计值将成为下一个循环的基准。

计算机视觉与人工智能中的应用

卡尔曼滤波器最初源于控制理论和航空航天导航领域,如今在现代计算机视觉(CV)处理流程中已无处不在。

  • 目标追踪:这是最常见的应用场景。当YOLO26等检测模型在视频帧中识别出目标时,它仅提供静态快照。为理解运动轨迹,BoT-SORT等追踪器采用卡尔曼滤波器将帧间检测结果关联起来。若目标被暂时遮挡(视线受阻),滤波器会利用目标的先前速度预测其位置,从而避免系统丢失"追踪"或切换目标ID。 不同帧间的检测结果。若物体暂时被遮挡(无法被观察到),滤波器会利用物体 的先前速度来预测其位置,从而防止系统丢失"track"或切换ID。
  • 机器人中的传感器融合:机器人领域,机器必须依靠多个存在噪声的传感器进行导航。例如配送机器人可能同时使用GPS(可能产生漂移)、轮编码器(可能打滑)和惯性测量单元(存在噪声)。卡尔曼滤波器通过融合这些差异化的输入,为导航提供单一可靠的坐标,这对保障自动驾驶车辆的安全运行至关重要。

区分相关概念

区分标准卡尔曼滤波器与其在统计人工智能领域中的变体和替代方案是有益的:

  • 卡尔曼滤波器与 扩展卡尔曼滤波器(EKF) 标准卡尔曼滤波器假设系统遵循线性方程(直线运动)。然而现实世界中的运动——例如无人机转弯时的倾斜——往往具有非线性特征。扩展卡尔曼滤波器通过在每个步骤使用导数对系统动力学进行线性化处理来解决此问题,使其适用于复杂轨迹。
  • 卡尔曼滤波器与粒子滤波器:卡尔曼滤波器依赖高斯分布假设, 而粒子滤波器则使用一组随机样本(粒子) 来表示概率分布。粒子滤波器在处理非高斯噪声时更具灵活性, 但需要显著更高的计算能力,可能影响 实时推理速度

实施实例

Ultralytics ,卡尔曼滤波器已直接集成到追踪算法中。您无需手动编写方程,只需启用追踪模式即可调用这些功能。Ultralytics 支持您管理数据集并训练模型,这些具备追踪能力的模型可轻松部署。

以下是一个使用Python YOLO26跟踪Python 简明示例,其中底层跟踪器会自动应用卡尔曼滤波来平滑边界框的运动:

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()}")

数据质量的重要性

在实际部署中,数据很少是完美的。摄像头会产生运动模糊,传感器则会遭遇信号噪声。 卡尔曼滤波器在决策循环中充当精密的数据净化机制。通过持续优化估计值,它确保人工智能代理基于最可能的现实运行,而非对输入流中的每个瞬时故障作出反应。这种可靠性对安全关键型应用至关重要——从监控机场运营到精密工业自动化皆是如此。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入