私が学生の頃にLucas-Kanade法に関して頭の整理のためにまとめた資料です.実装して確認したわけではないので理解が間違っているかも... お気づきの方がおられたらコメントお願い致します.
3つの仮定
Lucas-Kanade (LK) 法は,Bruce D. LucasとTakeo Kanade(金出武雄)によって提案された,オプティカルフローを計算するアルゴリズムである[1].LK法は,以下の3つを仮定している.
- 明るさの不変性 フレームが変化しても,ある点の色は変化しない
- 時間的な連続性 ある点の動きは微小である
- 空間的な一様性 ある点の周辺は同じ面に属している
導出
まずは1次元で考える
まずは1次元の場合を考える.1列に並んだ連続の画像が存在し,その内の画像Iのある点xでの強度値を
とする.

続いて,ある時間においての画像
中のある点
での
の強度値を
とする.
は「時間が異なれば,画像
中のある点の位置も画像自体も変化する」という意味に解釈できる.ここで,時間
だけ経過したとすると,
が得られる.

以上より,まず,明るさの普遍性は,次式で表せる.
つまり,を時間方向に微分しても変化しないので
となる.
ここで,は空間方向の偏微分,
は求めたい移動量,
は時間方向の偏微分である.尚,2つめの式への変換には合成関数の偏微分法([4] 参照)を用いる.
,
,
としたとき,求めたい値
は,
となる.ただし,1度の計算では求めたい位置の手前までしか到達できない.よって,及び
の値を更新し,式3を用いて
を繰り返し求めていく必要がある.この処理はNewton法であり,5回程度繰り返せば収束することが知られている[2].
2次元で考える
式1にy(t)も含めると,式(2)は以下のようになる.
この時,未知数はと
の2つ,式は1つしかないため解けない.よって,
(
) コの画素
(
) について考え,連立方程式を立てる必要がある.これは,
画素を含む窓を設けることに相当する.ここに空間的な一様性が想定されている.
これを行列で表すと,
となる.これはの正規表現となっている.つまり「線形最小二乗」によって
と
を計算できる.これに関しては以下のように計算することが一般的であるようだ.
このとき,
ただし,式(9)の様に解けるのは,に逆行列が存在するときであるから,そのランク(階数)が最大の2(フルランク)を持つときである.これは,Harrisオペレータ[3]との説明にもつながる.
アパーチャ問題
窓を設けるにおいて
を想定することで,この問題が発生する.[2]の図解が分かりやすい.
参考文献
[1] Bruce D. Lucas and Takeo Kanade. An Iterative Image Registration Technique with an Application to Stereo Vision. International Joint Conference on Artificial Intelligence, pp. 674-679, 1981.
[2] Gary Bradski and Adrian Kaebler 著, Learning OpenCV, Shroff Publishers & Distributors Pvt Ltd, 2008.
[3] C. Harris and M. Stephens: “A Combined Corner and Edge Detector,” Proc. Alvey Vision Conf., pp. 147-151, 1988.
[4] http://next1.msi.sk.shibaura-it.ac.jp/SHIBAURA/2012-1/calc2/lecture4.pdf(最終更新確認日:2015年7月14日)