カルマンフィルター(KF)
AI、トラッキング、センサー・フュージョン、ロボット工学などにおいて、ノイズの多いデータでもカルマンフィルターが状態推定を最適化する方法をご覧ください。
カルマンフィルター(KF)は、一連の不完全でノイズの多い測定値から動的システムの状態を推定するために用いられる強力なアルゴリズムである。Rudolf E. Kálmánによって開発され、当初の目的は航空宇宙におけるナビゲーションであったが、それ以来ロボット工学、経済学、特にコンピュータビジョン(CV)を含む多くの分野で基本的なものとなっている。フィルタは2段階のサイクルで動作する。まずシステムの将来の状態とその予測の不確実性を予測し、次に新しい計測値を取り込んで推定値を更新する。このプロセスにより、センサーデータが不正確な場合でも、位置や速度といった物体の状態をスムーズかつ正確に推定することができる。
AIとコンピュータ・ビジョンにおけるカルマンフィルターの仕組み
AIの文脈では、カルマンフィルターは物体追跡に最もよく使われる。Ultralytics YOLOのような物体検出モデルがフレーム内の物体を特定した後、次のフレームでの位置を予測するためにカルマンフィルターが使用される。この予測は運動モデルに基づいており、通常、一定速度または一定加速度を仮定している。
次のフレームが到着すると、検出モデルは新しい測定値(つまり新しいバウンディングボックス座標)を提供する。カルマンフィルターは次に「更新」ステップを実行し、この新しいデータに基づいて初期予測を修正する。このプロセスは、いくつかの理由から非常に効果的である:
- ノイズリダクション:ジッタのある検出を平滑化し、より安定したトラッキングパスを実現します。
- オクルージョン処理:検出器が数フレームにわたって物体を確認できなかった場合(例えば、車が木の陰に隠れた場合)、フィルターはその位置を予測し続け、物体が再び現れたときにトラッカーが再識別できるようにすることができます。
- 状態推定:現在の位置だけでなく、速度も含めた物体の状態をより包括的に理解することができます。カルマンフィルターの詳細なビジュアル入門で、コアコンセプトについてさらに詳しく学ぶことができます。
カルマンフィルタは測定値を再帰的に処理できるため、計算効率が高く、リアルタイムの推論に最適です。SORT (Simple Online and Realtime Tracking)やByteTrackのような多くの一般的なトラッキングアルゴリズムは、コアとなる動き予測コンポーネントとしてカルマンフィルターを使用しています。YOLO11のようなUltralyticsモデルは、トラックモードでそのようなトラッカーを活用しています。
実世界での応用
カルマンフィルターは、数え切れないほどの現代システムに不可欠なものである。以下にいくつかの例を挙げる:
- 自律走行車 自律走行車では、カルマンフィルターはセンサーフュージョンに不可欠です。カメラ、GPS、LiDAR、IMUなど様々なセンサーからのデータはすべてノイズが多く、更新レートも異なります。カルマンフィルターは、これらのデータを統合して、車両の位置、速度、道路上の他の物体の軌跡について、単一の、高精度で信頼性の高い推定値を生成します。これは、当社の車載AIソリューションにおける安全なナビゲーションと意思決定に不可欠です。
- スマートな監視のための歩行者追跡:セキュリティシステムは、公共スペースを監視するために、しばしばオブジェクト・トラッキングを使用する。YOLOモデルが歩行者を検出した後、カルマンフィルターベースのトラッカーが各人に一意のIDを割り当て、カメラの視界全体で彼らを追跡します。これにより、自動物体計数、異常検知、待ち行列管理などのアプリケーションが可能になる。フィルタの予測機能により、他の人や物体に一時的に遮られたとしても、人物の追跡が失われることはありません。
関連概念と区別
カルマンフィルターを関連用語と区別することは重要である:
- 拡張カルマンフィルタ(EKF):標準的なカルマンフィルターは、システムのダイナミクスが線形であることを前提としている。しかし、実世界の多くのシステム(旋回する自動車など)は非線形です。EKFは、各時間ステップでモデルを線形化することにより、カルマンフィルターを非線形システムを扱えるように拡張します。
- アンセンテッド・カルマン・フィルタ(UKF):UKFは、EKFの線形化が不十分な高度に非線形なシステムに対して、ヤコビアンを計算する必要なく、より正確な代替手段を提供します。
- パーティクル・フィルター:非線形の非ガウス系に対応するもう一つの選択肢であり、ロボット工学でローカライゼーションやマッピングによく使われる。カルマンフィルターとは異なり、ランダムなサンプル(粒子)の集合を用いて確率分布を表現する。
Ultralyticsフレームワークでは、トラッキングアルゴリズムのユーティリティとしてカルマンフィルターが実装されています。OpenCVのようなライブラリも独自のカルマンフィルター実装を提供しており、コンピュータビジョンプロジェクトで広く使われています。