オプティカルフロー
読み: おぷてぃかるふろー
連続するフレーム間で各ピクセルの見かけの動きをベクトル場として表現する手法。動画解析、動体検出、映像安定化などの基盤技術である。
オプティカルフロー (Optical Flow) は、時間的に連続する 2 枚以上の画像間で、各ピクセルがどの方向にどれだけ移動したかを 2D ベクトルとして推定する技術である。物体の動きやカメラの動きを画像レベルで捉えるための基本的な手法であり、動画解析の中核をなす。
オプティカルフローの計算は「輝度恒常性の仮定」に基づく。すなわち、ある画素の輝度値は短い時間間隔では変化しないと仮定し、フレーム間の輝度変化から動きベクトルを導出する。この仮定から導かれる光流束拘束方程式 Ix*u + Iy*v + It = 0 が基本式となる。
| 手法 | 仕組み | 得られるフローと実装 |
|---|---|---|
| Lucas-Kanade 法 | 局所的な小領域内でフローが一定と仮定し、最小二乗法で解く | 特徴点上の疎なフロー。cv2.calcOpticalFlowPyrLK() |
| Farneback 法 | 各ピクセルの近傍を 2 次多項式で近似する | 全画素の密なフロー場。cv2.calcOpticalFlowFarneback() |
| 深層学習ベース | FlowNet や RAFT などの CNN / Transformer ベースの手法。RAFT は反復的な更新でフローを絞り込む | 精度で古典手法を大幅に上回る |
疎なフロー
密なフロー
応用範囲は広く、動体検出 (背景差分との組み合わせ)、映像安定化 (カメラの動きを補正)、フレーム補間 (中間フレームの生成)、自動運転 (周囲の動き推定) などに利用される。リアルタイム処理では GPU 実装や軽量モデルが活用される。