コラム(2次元オプティカルフロー、1次元オプティカルフロー)


(内容が正確かどうかは保障しません。また、ベクトル等数学的な知識、画像処理に関する知識がある程度必要かもしれません。)

  1. オプティカルフローの背景
  2. 2次元オプティカルフロー、1次元オプティカルフロー(本ページ)
  3. 離散画像で1次元オプティカルフローを実現するために
  4. 実際に追跡してみる
  5. 最後に

本ページの各節へのリンク

2次元と1次元の違い

2次元オプティカルフローについては、あまり説明しません。
画像というのは2次元であり、2次元で方向を取る事により正確な方向が求まります。
1次元オプティカルフローというのは、方向が1次元方向に限定されています。
それだと一直線しか追跡できないので下図のように、物体の中心から放射状にのびる1次元方向の計算軸を8個用います。


青いのが物体で、右方向に移動することが分かると

移動方向と両隣の合わせて3つの計算軸を用います。

2次元と比べたら正確ではありませんがある程度方向について近似できます。


なぜ2次元ではなく1次元か

2次元の方が方向も正確でよさそうに思います。
しかし、2次元オプティカルフローには拘束方程式から解が一意に求まらないという不良設定問題があります。これについてはややこしい式がたくさん出てくるので詳しく書きません。2次元オプティカルフローを求める時に、連立方程式を何回も繰り返し解いて解を求める(解に近づける)ので、計算時間がかなりかかります。
リアルタイムで移動物体を追跡したい場合、これは大問題です。
そこで、精度は多少犠牲にしてでも拘束方程式から解が一意に求まる1次元オプティカルフローを用いようという事です。

ちなみに、処理時間についてですが、1次元で1秒かからない処理が2次元では数分かかってしまいます。

オプティカルフローの改善点としまして

  • 2次元の処理時間を短くする
  • 1次元の精度を上げる

の2点が大きな改善点だと言えます。

今回は1次元オプティカルフローについてもう少し述べます。


1次元オプティカルフロー

先ほど計算軸について少し触れました。
1次元で追跡するという事は、物体の予測位置は計算軸上にあると言うのが大前提です。

イメージとしては
計算軸付近を計算して、移動物体があればその計算軸が方向になり、計算軸上の近い点が予測位置となります。


下図を見てください。
薄い赤色の楕円があります。
これはウィンドウと呼ばれるものです。
計算軸ごとに設定され、各ウィンドウ内に移動物体が存在するかどうか判断します。
そして、方向と予測位置が決定します。
予測位置を中心として同じ処理を繰り返していくことで、予測位置が求まり移動物体を追跡できます。

今回の図では分かりやすくするために大げさな図を用いていますが、実際の物体の中心と予測位置として求まる点に誤差があります。

次は、
最終更新:2010年02月20日 22:13