オプティカル・フロー
コンピュータビジョンにおけるオプティカルフローの威力をご覧ください。オプティカルフローがどのように動きを推定し、ビデオ解析を強化し、AIのイノベーションを推進するのかをご覧ください。
オプティカルフローは、コンピュータビジョン(CV)の中核概念であり、観察者(カメラのような)とシーン間の相対的な動きによって引き起こされる視覚シーン内のオブジェクト、表面、およびエッジの動きを推定することを含む。これは、2つの連続するビデオフレーム間のピクセルまたは特徴の動きの方向と速度を記述するベクトルのフィールドを計算します。これにより、物事が「どのように」動いているかの詳細で低レベルの理解が可能となり、多くの動的シーン解析タスクの基礎となる。
オプティカル・フローの仕組み
ほとんどのオプティカルフローアルゴリズムの中心的な仮定は「明るさの不変性」であり、これは物体上の特定の点に対応するピクセルの強度が短い時間間隔で一定であることを仮定している。この明るさを保つ変位を見つけることで、アルゴリズムは動きを推定することができる。オプティカルフローを計算するには、主に2つのアプローチがある:
- 高密度オプティカルフロー:この手法は、画像内の各ピクセルの動きベクトルを計算する。画像セグメンテーションや複雑なシーンダイナミクスの理解といったタスクに有用な、非常に詳細なモーションフィールドを提供する。Horn-Schunck法は古典的な例であり、RAFTのような最新のディープラーニングモデルは最先端の性能を提供する。
- スパースオプティカルフロー:すべてのピクセルを分析する代わりに、この方法はフレームをまたいで「興味深い」特徴(コーナーやキーポイントなど)のスパースセットを追跡する。Lucas-Kanade法は有名なスパースアルゴリズムである。このアプローチは計算効率が高く、オブジェクトトラッキングのように特定の点の動きだけが必要なアプリケーションに適しています。
オプティカルフローと物体追跡の比較
関連はあるが、オプティカルフローと物体追跡は異なる問題を解決する。
- オプティカルフローは、ピクセルの低レベルの動きを記述する。その出力は、2つのフレーム間の動きを表すベクトルの集合である。オプティカルフローは、本質的に「オブジェクト」の概念を理解したり、時間の経過とともにその同一性を維持したりはしない。
- オブジェクト追跡は、特定のオブジェクトの位置を特定し、複数のフレームにわたってその経路を追跡し、一貫したIDを割り当てることに焦点を当てた、より高度なタスクです。トラッキングアルゴリズムは、UltralyticsのYOLOモデルのようなオブジェクト検出モデルによって識別された後、次のフレームでのオブジェクトの位置を予測するための入力として、オプティカルフローのような技術を使用することがよくあります。これはUltralyticsのオブジェクトトラッキングモードで実際に見ることができます。
要するに、オプティカルフローは「ピクセルがどのように動いているか」に答え、オブジェクトトラッキングは「あの車はどこに行ったか」に答える。
実世界での応用
オプティカルフローは、映像から動きを理解する必要がある多くのアプリケーションにとって極めて重要である:
- 自律システム:自律走行車や ロボットは、視覚的オドメトリ(自己運動の推定)、障害物検出、環境内の物体の相対的な動きの把握にオプティカルフローを利用している。例えば、オプティカル・フローは、自動運転車が道路との相対速度を推定したり、近くの車両を追跡したりするのに役立つ。ウェイモのような企業はモーションパーセプションに大きく依存している。自動運転車のAIについて詳しくは、こちらをご覧ください。
- ビデオ圧縮:MPEGのような規格では、オプティカルフローに似た動き推定技術を使い、前のフレームに基づいて次のフレームを予測する。動きベクトルと予測誤差(残差)のみを符号化することで、大幅なデータ圧縮が達成される。
- アクション認識:ポーズ推定の重要な部分である映像中の人間の動作の理解には、多くの場合、オプティカルフローから得られる動作パターンの分析が含まれる。これは、スポーツ分析やスマートフィットネス技術への応用に不可欠である。
- ビデオ手ぶれ補正:デジタル手ブレ補正技術は、オプティカルフローを使用して手ブレを推定し、それを補正することで、より滑らかな動画を生成することができる。この技術は最近のスマートフォンやカメラでは一般的だ。
- 医用画像解析:心エコー図における心筋の動きや手技中の臓器の変形など、組織の動きを追跡するために使用される。雑誌 放射線学人工知能を参照のこと。
- ロボット工学:ロボットが周囲の動きに関する視覚的フィードバックに基づいて、ナビゲートしたり、オブジェクトと相互作用したり、タスクを実行したりできるようにする。ROSのようなシステムとの統合には、しばしば動作解析が組み込まれる。
ツールと実装
OpenCVのようなライブラリは、古典的なオプティカル・フロー・アルゴリズムの実装を提供し、そのドキュメントには詳細なOpenCVオプティカル・フロー・チュートリアルが含まれている。ディープラーニングのアプローチでは、PyTorch(PyTorchの公式サイトを参照)やTensorFlow(TensorFlowの公式サイトを参照)のようなフレームワークが一般的に使用され、多くの場合、Hugging Faceのようなプラットフォームを通じて利用可能な事前学習済みモデルを活用しています。これらのモデルのトレーニングには、FlyingThings3Dや Sintelデータセットのような、グランドトゥルースのフロー情報を持つ大規模なビデオデータセットが必要です。Ultralytics HUBのようなプラットフォームは、関連するコンピュータビジョンタスクのデータセットとモデルトレーニングワークフローの管理に役立ちます。