探索卡尔曼滤波器如何在不确定性下估计系统状态。学习如何将其与 Ultralytics YOLO26 结合用于目标 track,以提高 AI 精度。
A 卡尔曼滤波器(KF)是一种递归数学算法,用于估计动态系统随时间变化的状态。该技术最初由鲁道夫·E·卡尔曼提出,对于处理不确定、不准确或包含随机变化(通常称为“噪声”)的数据至关重要。通过结合一系列随时间观察到的、包含统计不准确性的测量值,卡尔曼滤波器能够生成对未知变量的估计,其精度高于仅基于单个测量值的估计。在机器学习(ML)和人工智能(AI)领域,它作为预测建模的关键工具,能够平滑锯齿状数据点,揭示真实的潜在趋势。
该算法以两步循环运行:预测和更新(也称为校正)。它假设底层系统是线性的,并且噪声服从高斯分布(钟形曲线)。
尽管最初植根于控制理论和航空航天导航,卡尔曼滤波器现已在现代计算机视觉(CV)管线中无处不在。
区分标准卡尔曼滤波器与其在统计AI中发现的变体和替代方案是有帮助的:
在Ultralytics生态系统中,卡尔曼滤波器直接集成到track算法中。您无需手动编写方程式;您可以通过启用track模式来利用它们。Ultralytics平台允许您管理数据集并训练可以轻松部署这些track功能的模型。
这是一个使用python对YOLO26进行track的简洁示例,其中底层tracker自动应用卡尔曼滤波来平滑边界框的移动:
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()}")
在实际部署中,数据很少是完美的。摄像头会受到运动模糊的影响,传感器会遇到信号噪声。卡尔曼滤波器在决策循环中充当复杂的数据清理机制。通过不断完善估计,它确保AI智能体基于最可能的事实运行,而不是对输入流中的每一个瞬时故障做出反应。这种可靠性对于安全关键型应用至关重要,从监控机场运营到精确的工业自动化。

开启您的机器学习未来之旅