不確実性下におけるカルマンフィルタのシステム状態推定手法を探求する。Ultralytics YOLO26を用いた物体追跡への応用を学び、AIの精度向上を図る。
カルマンフィルタ(KF)は、動的システムの状態を時間経過とともに推定するために用いられる再帰的な数学的アルゴリズムである。ルドルフ・E・カルマンによって最初に導入されたこの技術は、不確実、不正確、あるいは「ノイズ」と呼ばれるランダムな変動を含むデータの処理に不可欠である。 統計的な不正確さを含む時間経過に伴う一連の測定値を組み合わせることで、カルマンフィルタは単一の測定値のみに基づく推定値よりも精密な未知変数の推定値を生成する。機械学習(ML) や人工知能(AI)の分野では、予測モデリングの重要なツールとして機能し、ギザギザしたデータポイントを平滑化して真の潜在的な傾向を明らかにする。
このアルゴリズムは予測と更新(補正とも呼ばれる)という二段階のサイクルで動作する。基盤となるシステムが線形であり、ノイズがガウス分布(ベル曲線)に従うことを前提としている。
カルマンフィルタは、もともと制御理論と航空宇宙ナビゲーションに起源を持つが、現代のコンピュータビジョン(CV)パイプラインでは広く普及している。
統計的AIに見られる標準カルマンフィルタとその変種・代替手法を区別することは有益である:
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()}")
実環境での運用では、データが完璧であることは稀である。カメラはモーションブラーの影響を受け、センサーは信号ノイズを経験する。 カルマンフィルタは意思決定ループ内で高度なデータクリーニング機構として機能する。推定値を継続的に洗練させることで、AIエージェントが入力ストリームの一時的な不具合に反応するのではなく、最も確率の高い現実に基づいて動作することを保証する。この信頼性は、空港運営の監視から精密な産業オートメーションに至るまで、安全性が極めて重要なアプリケーションにおいて最優先事項である。