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