用語集

オプティカル・フロー

コンピュータビジョンにおけるオプティカルフローの威力をご覧ください。オプティカルフローがどのように動きを推定し、ビデオ解析を強化し、AIのイノベーションを推進するのかをご覧ください。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

オプティカルフロー(Optical Flow)とは、(カメラのような)観察者とシーンとの間の相対的な動きによって引き起こされる、ビジュアルシーン内のオブジェクト、表面、エッジの見かけ上の動きのパターンを記述する。オプティカルフローはコンピュータビジョン(CV)の基本的な概念であり、ビデオシーケンスの連続するフレーム間の個々のピクセルや特徴の動きを推定するために使用される。この技術は、シーンのダイナミクスに関する貴重な情報を提供し、生物学的な視覚システムが動きを知覚するのと同様に、機械が動きを理解することを可能にする。ビデオデータを分析する様々な人工知能(AI)や機械学習(ML)アプリケーションにおいて、重要な要素となっている。

オプティカル・フローの仕組み

オプティカルフロー計算の核となる考え方は「明るさの不変性」の仮定であり、これは、物体上の特定の点に対応するピクセルの強度は、それが画像平面を横切って移動するにつれて、短い時間間隔にわたって一定に保たれる(または予測可能に変化する)という仮定である。アルゴリズムは、各ピクセルまたは特定の注目点の動きベクトルを計算するために、あるフレームから次のフレームへとこれらの強度パターンを追跡する。

オプティカルフローを計算する一般的な技術には、以下のようなものがある:

  • スパースオプティカルフロー: Lucas-Kanade法のようなアルゴリズムは、フレーム間で顕著な特徴(コーナーなど)のスパースセットの動きを追跡する。これは計算効率は良いが、選択された点のみの動き情報を提供する。
  • 高密度オプティカルフロー: Horn-Schunck法のようなアルゴリズムは、画像内の各ピクセルの動きベクトルを計算することを目的としている。これにより、より豊かな動きの表現が可能になるが、計算量が多くなる。
  • ディープラーニングアプローチ:最新の手法では、オプティカルフローを推定するために、大規模なデータセットで訓練された畳み込みニューラルネットワーク(CNN)を使用することが多い。FlowNetや RAFT(Recurrent All-Pairs Field Transforms)のようなモデルは、複雑な運動パターンを学習するためにディープラーニング(DL)の力を活用し、最先端の性能を示している。これらのモデルは PyTorchまたは TensorFlow.

オプティカル・フローと関連概念

オプティカルフローを関連するタスクと区別することは重要だ:

  • オブジェクト検出このタスクは、バウンディングボックスを使用して1つの画像フレーム内のオブジェクトを識別し、位置を特定します。 Ultralytics YOLO11.このタスクは、フレーム間の動きではなく、何が どこにあるかに焦点を当てます。異なるYOLO モデル間の検出タスクの比較を調べることができます。
  • オブジェクトトラッキングこれは、複数のフレームにわたって、検出された特定のオブジェクトを追跡し、時間経過とともにその同一性を維持することを含む。オプティカルフローは(DeepSORTのような)トラッキングアルゴリズムで使用されるコンポーネントですが、トラッキングはオブジェクトの軌跡と同一性の維持に焦点を当てます。Ultralytics モデルはオブジェクトトラッキングモードをサポートしています。
  • 動き推定:これは、動きを決定するための様々な技術を包含する、より広い用語である。オプティカルフローは、画像平面上のピクセルの見かけ上の2次元の動きに焦点を当てた特定のタイプの動き推定であり、多くの場合、世界のオブジェクトの真の3次元の動きの推定とは異なる。
  • 画像の分割これは画像を複数のセグメントまたは領域に分割することであり、多くの場合、物体や領域を分離する。オプティカルフローからの動きの手がかりはセグメンテーションの助けになるが(モーション・セグメンテーション)、主な目的は空間的な区切りであり、動きベクトルの計算ではない。インスタンス・セグメンテーションのようなタスクは、各オブジェクト・インスタンスのピクセル単位のマスクを提供する。

実世界での応用

オプティカルフローは、映像から動きを理解する必要がある多くのアプリケーションにとって極めて重要である:

  • ビデオ圧縮: MPEGのような規格では、オプティカルフローに似た動き推定技術を使い、前のフレームに基づいて次のフレームを予測する。動きベクトルと予測誤差(残差)のみを符号化することで、大幅なデータ圧縮を実現している。
  • 自律システム: 自律走行車や ロボットは、オプティカルフローを視覚的オドメトリー(自己運動の推定)、障害物検知、環境内の物体の相対的な動きの把握に利用している。例えば、オプティカル・フローは、自動運転車が道路との相対速度を推定したり、近くの車両を追跡したりするのに役立つ。ウェイモのような企業はモーションパーセプションに大きく依存している。自動運転車のAIについて詳しくは、こちらをご覧ください。
  • 行動認識:映像中の人間の行動を理解するためには、オプティカルフローから得られる動きのパターンを分析する必要があることが多い。
  • ビデオ手ぶれ補正:デジタル手ぶれ補正技術は、オプティカルフローを使って手ぶれを推定し、それを補正することで、より滑らかな動画を生成することができる。
  • 医療画像解析心エコー図における心筋の動きや手技中の臓器の変形など、組織の動きを追跡するために使用します。放射線学などのリソースを参照関連する進歩については人工知能を参照。
  • ロボット工学ロボットが周囲の動きに関する視覚的フィードバックに基づいて、ナビゲートし、オブジェクトと相互作用し、タスクを実行できるようにする。ROSのようなシステムとの統合には、しばしば動作解析が組み込まれる。

ツールと実装

OpenCVのようなライブラリは、古典的なオプティカル・フロー・アルゴリズムの実装を提供している(OpenCV Optical Flow Tutorials)。ディープラーニングのアプローチでは PyTorchTensorFlowのようなプラットフォームで利用可能な事前学習済みモデルを活用することが多い。 Hugging Face.これらのモデルのトレーニングには、FlyingThings3Dや Sintelデータセットのような、グランドトゥルースのフロー情報を持つ大規模なビデオデータセットが必要です。Ultralytics HUBのようなプラットフォームは、オプティカルフロー推定よりも検出やセグメンテーションのようなタスクに重点を置いていますが、データセットやモデルのトレーニングワークフローの管理に役立ちます。

すべて読む