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