YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

カルマンフィルタ(KF)

カルマンフィルターが不確実な状況下でシステムの状態をどのように推定するかを探ります。AIの精度を向上させるために、Ultralytics YOLO26を用いたオブジェクトtrackにそれを使用する方法を学びましょう。

A カルマンフィルター (KF)は、動的システムの時間を追った状態を推定するために使用される再帰的な数学的アルゴリズムです。ルドルフ・E・カルマンによって最初に導入されたこの手法は、不確実、不正確、またはランダムな変動(しばしば「ノイズ」と呼ばれる)を含むデータを処理するために不可欠です。統計的な不正確さを含む一連の時系列観測値を組み合わせることで、カルマンフィルターは単一の測定値のみに基づく推定よりも正確な未知変数の推定値を生成します。機械学習 (ML)および人工知能 (AI)の分野では、予測モデリングのための重要なツールとして機能し、ギザギザのデータポイントを平滑化して真の根底にあるトレンドを明らかにします。

カルマンフィルターの仕組み

このアルゴリズムは、予測更新(修正とも呼ばれる)の2段階サイクルで動作します。基盤となるシステムが線形であり、ノイズがガウス分布(ベルカーブ)に従うと仮定しています。

  1. 予測: フィルターは物理モデルを使用して現在の状態を時間的に前方に投影します。例えば、物体が一定の速度で移動している場合、フィルターは標準的な運動方程式に基づいて次の位置を予測します。このステップでは、その予測に関連する不確実性も推定します。
  2. 更新: センサーから新しい測定値が到着すると、フィルターは予測された状態を観測データと比較します。カルマンゲインによって決定される加重平均を計算し、不確実性の低い値(予測または測定)により信頼を置きます。その結果、次のサイクルにおけるベースラインとなる洗練された状態推定が得られます。

コンピュータービジョンとAIにおけるアプリケーション

元々は制御理論と航空宇宙ナビゲーションに根ざしていましたが、カルマンフィルターは現在、現代のコンピュータービジョン (CV)パイプラインにおいてユビキタスな存在となっています。

  • オブジェクトトラッキング: これは最も一般的なユースケースです。 YOLO26のような検出モデルがビデオフレーム内のオブジェクトを識別すると、静的なスナップショットが提供されます。動きを理解するために、BoT-SORTのようなトラッカーはカルマンフィルターを利用してフレーム間の検出をリンクさせます。オブジェクトが一時的にオクルージョン(視界から遮断)された場合、フィルターはオブジェクトの以前の速度を使用してその位置を予測し、システムが「track」を見失ったり、IDを切り替えたりするのを防ぎます。
  • ロボティクスにおけるセンサーフュージョン:ロボティクスでは、機械は複数のノイズの多いセンサーを使用してナビゲートする必要があります。配送ロボットは、GPS(ドリフトする可能性あり)、ホイールエンコーダー(滑る可能性あり)、およびIMU(ノイズが多い)を使用する場合があります。カルマンフィルターは、これらの異なる入力を融合して、ナビゲーションのための単一の信頼性の高い座標を提供し、安全な自律走行車の運用に不可欠です。

関連概念の区別

標準カルマンフィルターを統計的AIに見られるそのバリエーションや代替手法と区別することは、その理解を深める上で役立ちます。

  • Kalman Filter vs. Extended Kalman Filter (EKF): 標準的なKFは、システムが線形方程式(直線)に従うと仮定します。しかし、ドローンが旋回するような現実世界の動きは、しばしば非線形です。EKFは、各ステップで導関数を使用してシステムダイナミクスを線形化することでこれを解決し、複雑な軌道に適しています。
  • Kalman Filter vs. Particle Filter: KFがガウス分布の仮定に依存するのに対し、パーティクルフィルターは確率分布を表すために一連のランダムサンプル(パーティクル)を使用します。パーティクルフィルターは非ガウスノイズに対してより柔軟ですが、はるかに多くの計算能力を必要とし、リアルタイム推論速度に影響を与える可能性があります。

実施例

Ultralyticsエコシステムでは、カルマンフィルターはトラッキングアルゴリズムに直接統合されています。方程式を手動で記述する必要はなく、トラッキングモードを有効にすることでそれらを活用できます。 Ultralytics Platformを使用すると、データセットを管理し、これらのトラッキング機能で簡単にデプロイできるモデルをトレーニングできます。

pythonを使用してYOLO26でtrackを実行する簡潔な例です。ここでは、基盤となるtrackerがカルマンフィルターを自動的に適用してバウンディングボックスの動きを平滑化します。

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エージェントが入力ストリームの一時的なすべてのグリッチに反応するのではなく、最も確度の高い現実にに基づいて動作することを保証します。この信頼性は、空港業務の監視から精密な産業オートメーションに至るまで、安全性が重要なアプリケーションにとって極めて重要です。

共にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。