探索用于非线性状态估计的扩展卡尔曼滤波器 (EKF)。了解它如何增强Ultralytics YOLO26和自主系统中的目标track。
扩展卡尔曼滤波器 (EKF)是一种强大的数学算法,旨在估计非线性动态系统的状态。尽管标准卡尔曼滤波器 (KF)为沿直线移动或遵循简单线性方程的系统提供了最优解,但现实世界的物理现象很少如此可预测。大多数物理对象,例如抵抗风阻的无人机或在多个轴上旋转的机械臂,都遵循弯曲或复杂的路径。EKF 通过在特定时间点创建系统的线性近似来解决这种复杂性,允许工程师和数据科学家将高效的滤波技术应用于预测建模任务,即使底层机制很复杂。
为了处理复杂的动态,EKF 采用一种称为线性化的数学过程,它本质上是估计函数在当前工作点的斜率。这通常涉及计算雅可比矩阵,以近似系统在短时间间隔内的变化。该算法在一个递归循环中运行,包括两个主要阶段:预测和更新。在预测阶段,滤波器使用物理运动模型向前预测当前状态。在更新阶段,它使用来自传感器(如陀螺仪或加速度计)的新数据(通常是带噪声的数据)来校正此预测。这种持续的预测和校正循环有助于减少data noise,并提供对真实状态更平滑、更准确的估计,比任何单个传感器单独提供的数据都要好。
在计算机视觉(CV)领域, 扩展卡尔曼滤波器(EKF)在保持移动物体身份识别方面发挥着关键作用。诸如YOLO26等先进模型虽擅长单帧物体检测, 却无法天然理解时间维度的运动连续性。通过集成EKF或类似逻辑, 物体追踪系统可基于物体先前速度与轨迹, 预测其边界框在下一视频帧的出现位置。 该技术在处理遮挡场景时尤为有效——当目标物体暂时被遮挡时,滤波器通过持续估算目标位置维持"track",直至目标重新显现。这种技术对实现稳健的多目标跟踪(MOT)至关重要。
EKF的通用性使其成为各种高科技产业中的基石技术,尤其是在机器学习 (ML)与物理硬件结合的领域:
区分扩展卡尔曼滤波器与相关滤波方法有助于理解其特定用途:
在 ultralytics 包中,track算法内部利用卡尔曼滤波概念来平滑轨迹并关联跨帧的detect。虽然在使用高级工具时,您无需手动编写EKF矩阵运算代码,但了解它是track器的核心有助于配置相关参数。
Ultralytics 平台.
以下是如何使用YOLO模型初始化一个track器,该模型利用这些滤波技术进行状态估计:
from ultralytics import YOLO
# Load the latest YOLO26 model (nano version for speed)
model = YOLO("yolo26n.pt")
# Track objects in a video source
# Trackers like BoT-SORT or ByteTrack use Kalman filtering logic internally
results = model.track(source="https://ultralytics.com/images/bus.jpg", tracker="botsort.yaml")
# Print the ID of the tracked objects
for r in results:
if r.boxes.id is not None:
print(f"Track IDs: {r.boxes.id.numpy()}")

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