Extended Kalman Filter (EKF)
非線形な状態推定に用いる拡張カルマンフィルター(EKF)をご確認ください。Ultralytics YOLO26や自律システムにおける物体トラッキングを強化する方法を学べます。
**拡張カルマンフィルター(EKF)**は、非線形に振る舞う動的システムの状態を推定するために設計された、堅牢な数学アルゴリズムです。標準のカルマンフィルター(KF)は、直線的に移動するシステムや単純な線形方程式に従うシステムに対して最適な解を提供しますが、現実世界の物理現象がそれほど予測可能であることはほとんどありません。風の抵抗に立ち向かうドローンや、複数の軸で回転するロボットアームなど、ほとんどの物体は曲線的または複雑な軌道をたどります。EKFは、特定の時点におけるシステムの線形近似を作成することでこの複雑さに対処し、基礎となる力学が複雑な場合でも、エンジニアやデータサイエンティストが予測モデリングのタスクに効率的なフィルタリング手法を適用できるようにします。
メカニズムと線形化#
複雑なダイナミクスに対応するため、EKFは線形化と呼ばれる数学的プロセスを使用します。これは基本的に、現在の動作点における関数の傾きを推定するものです。この処理では、短い時間間隔でシステムがどのように変化するかを近似するために、ヤコビ行列を計算することがよくあります。アルゴリズムは、予測と更新という2つの主要フェーズで構成される再帰ループとして動作します。予測フェーズでは、物理的な運動モデルを使用して現在の状態を未来へ投影します。更新フェーズでは、ジャイロスコープや加速度計などのセンサーから得られる、新しく、多くの場合ノイズを含むデータを使用して、この投影を補正します。予測と補正を継続的に繰り返すことで、データノイズを低減し、単一のセンサーだけを使用する場合よりも、真の状態を滑らかかつ正確に推定できます。
コンピュータビジョンにおける関連性#
コンピュータービジョン(CV)の分野では、拡張カルマンフィルターが移動する物体の識別を維持するうえで重要な役割を果たします。YOLO26のような高度なモデルは、単一フレーム内の物体検出に優れていますが、時間の経過に伴う動きの連続性を本質的に理解するわけではありません。EKFまたは類似のロジックを統合することで、物体追跡システムは、以前の速度と軌道に基づいて、次のビデオフレームにバウンディングボックスが表示されるべき位置を予測できます。これは、物体が一時的に視界から遮られるオクルージョンへの対応に特に有効です。フィルターは、物体が再び見えるようになるまでその位置を推定して「track」を維持します。これは、堅牢なマルチオブジェクト追跡(MOT)に不可欠な手法です。
実世界での利用例#
EKFは汎用性が高いため、機械学習(ML)と物理ハードウェアが交差するさまざまなハイテク産業で中核となる技術です。
- 自動運転車: 自動運転車は、安全に走行するためにセンサーフュージョンに依存しています。EKFは、全地球測位システム(GPS)、LiDAR、レーダーからの異なるデータストリームを統合し、信号の途切れや環境ノイズを補正しながら、道路上の車両の正確な位置と向きを算出します。
- ロボティクス: 非構造化環境で動作するロボットは、同時位置推定・地図作成(SLAM)アルゴリズムを使用します。EKFは、ロボットが部屋の地図を作成しながら、その地図上での自身の位置を同時に特定できるよう支援し、車輪のスリップやセンサードリフトを補正して正確な移動を実現します。
- 姿勢推定: バーチャルリアリティやスポーツ分析などのアプリケーションでは、人間の関節を追跡するために、揺れの大きいキーポイントを平滑化する必要があります。EKFアルゴリズムは、ディープラーニングモデルの出力を洗練し、行動認識システム向けに滑らかで自然な動きのアニメーションを生成します。
関連概念との比較#
EKFの具体的な有用性を理解するには、拡張カルマンフィルターと関連するフィルタリング手法を区別すると役立ちます。
- EKFとカルマンフィルター(KF)の比較: 標準のKFは数学的に最適で計算コストも低い一方、システムが強い非線形性を持つ場合には機能しません。EKFは、近似によって非線形システムでも動作するようKFを拡張したものです。
- EKFとパーティクルフィルターの比較: パーティクルフィルターは、確率を表すために多数のランダムサンプル(パーティクル)を使用することで、非線形性や非ガウスノイズを非常に適切に処理します。ただし、計算能力を大幅に多く必要とするため、リソースに制約のある組み込みシステムではEKFが好まれます。
- EKFと無香カルマンフィルター(UKF)の比較: 無香カルマンフィルターは、決定論的なサンプリングポイントを使用して、EKFで必要となる複雑な微積分を用いずに非線形性を処理する中間的な手法です。ただし、EKFは多くの制御システムで依然として業界標準です。
実装例#
ultralyticsパッケージでは、追跡アルゴリズムが内部でカルマンフィルタリングの概念を使用し、軌道を平滑化してフレーム間の検出結果を関連付けます。高レベルツールを使用する際にEKFの行列計算を手動でコーディングする必要はありませんが、トラッカーを動作させている仕組みを理解しておくと、Ultralytics Platformのパラメーター設定に役立ちます。
以下は、状態推定にこれらのフィルタリング手法を利用するYOLOモデルでトラッカーを開始する方法です。
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()}")








