オプティカルフローとは?移動量の推定方法、原理、計算式についてまとめました。
オプティカルフローとは
オプティカルフローとは、デジタル画像中の物体の動きを「ベクトル」で表したものです。
主に移動物体の検出や、その動作の解析などによく用いられています。
しかしオプティカルフロー(=物体の移動ベクトル)を一意的に求めることは困難です。
一般的には推定によって動き(ベクトル)を求めます。
オプティカルフローを推定する手法は代表的なモノに「LucasKanade法」や「Horn-Schunk法」があります。
この記事では、まずオプティカルフローの基本的な考え方について紹介します。
【仮定】オプティカルフローの拘束方程式
上図のような連続する2枚の画像を撮影したとします。
このとき、画像中にある移動物体の動きを調べたいとすると、画像上の移動物体の画素が、画像I上でどこまで移動したかを求める必要があります。
ここで, 画像に対して以下の仮定を置きます。
仮定
②画像は滑らか(微分可能)
③画素の移動量は小さい(1画素以下)
画像における座標の画素値を、画像における座標の画素値をとします。
このとき、仮定①より「画素が移動しても画素値は変わらない」ことから以下の等式が成立します。
(1)
仮定②③よりを一次項までテイラー展開すると以下の式が得られます。
(2)
(2)式を(1)式に代入すると以下の式が得られます。
拘束方程式
(3)
(3)式は「オプティカルフローの拘束方程式」と呼ばれる重要な式です。
仮定①が成り立つ、画像中のすべての画素がこの拘束式を満たします。
【推定問題】Aperture problem
オプティカルフローの拘束方程式は以下のように表せます。
(4)
(4)式は|エッジの勾配|と|エッジに対する移動ベクトルの垂直運動成分|の内積が画像の差分に等しいことを表しています。
この数式の意味を整理すると以下のようになります。
②エッジと平行な移動ベクトルは求めることができない
これを窓問題(Aperture problem)といいます。
オプティカルフローの拘束方程式は1画素辺り1つだけ得られます。
しかし、拘束方程式1つには未知数が2つ(画素の移動ベクトル)あります。
よって、最初に述べたとおり、連立方程式を解いてもuとvの解が複数になるため、一意に求めることが出来ません。
なので、複数出てくる解の候補達から最も正解に近い解を推定してやる必要があります。
これがオプティカルフローの推定問題です。
推定方法については古くからたくさん研究されており、その中でも有名なのが「LucasKanade法」や「Horn-Schunk法」です。
「LucasKanade法」については以下ページで解説しています。
コメント