オプティカルフローの計算方法:2種類の主な計算手法
ビデオ安定化の説明に入る前に、2種類あるオプティカルフロー手法の概要だけを紹介しておきます。今回はオプティカルフローがメインのテーマではないので、ここで書く内容以上の詳しいオプティカルフロー計算の仕組みの詳細は割愛します。
(1)特徴点ベースの手法
まず、小領域N(15×15ピクセル程度)ごとに独立したパラメトリックモーション(アフィン変換もしくは並進)で移動していると仮定します。そして、移動先の小領域としてふさわしい場所を探索することにより、小領域ごとのオプティカルフローをそれぞれ独立に推定するといった、Lucas-Kanade法に代表される手法です。つまり、小領域ごとの対応探索を行うので、あたかも特徴点を追跡しているかのようなイメージになります。ここではLucas-Kanade法を例に、概要を説明します。
Lucas-Kanade法をはじめとした特徴点ベースのオプティカルフロー推定では、画素ごとに周辺領域N全体のグレー値の対応スコアを計算し、その対応度がもっとも高い画素を移動先として推定するというのが基本的な仕組みです。ただ、単純に少領域Nごとの類似度だけを用いて移動先を探索するだけだと、窓サイズの大小や探索順番次第で、類似度が高い領域が多くなるような画像では、各候補が本当に正しい移動先なのかの曖昧性も高くなります。
そこで、Lucas-Kanade法では、画像1の各画素が個別の「移動ベクトル(フローベクトル)」により独立に移動し、移動後の画像2での各画素値が移動前の画像1での輝度値と(ほぼ)同じ値のままになっていると仮定します。この「移動前後の画素値が一定」という拘束条件式をテイラー展開で近似しておくとできあがる、微分画像上の画素値の関係式を「Luca-Kanade方程式」と呼びます。
画素ごとに用意するLucas-Kanade方程式は、小領域N(例えば5×5ピクセル)の移動前後においては、合計5×5=25個の式が拘束式として用意できます。そして、これら25画素での誤差の和が最小になる時のパラメータを最小二乗法で求めることで、領域N全体のオプティカルフローが最終的に推定されます。テイラー展開で近似しているので、ここで算出できる解は小領域での移動度に限られてしまうので、ピラミッド画像を用いた疎密探索を行う事でより大きな運動も推定します。
以上が基本的なLukas-Kanade方の仕組みでしたが、領域N同士のテクスチャの対応度合いがが曖昧になる画像領域(例えば真っ白なテクスチャ)では、移動先がどこになるかは難しくなり、そういう画素について誤差関数を最小二乗法しても、良いオプティカルフローは推定できません。そこで「KLTトラッカー」と俗に呼ばれる特徴点追跡の仕組みにより、曖昧性の少ない特徴点のみを検出して、それらの点でのみフローベクトルを計算するという仕組みが提供されています。
以下の車載前方カメラ映像から推定した例をご覧になっていただくとLucas-Kanade法(KLTトラッカー)で推定されたオプティカルフローのイメージがつかみやすいとおもいます(これ以上のLucas-Kanade法の詳細は専門書などを調べてもらえればと思います)。
KLTトラッカー提案当時(1990年代前半)は、まだコーナー点検出などしか特徴点追跡の仕組みがかったのですが、以後登場したSIFTなどの局所特徴量を、代わりに採用しても、この特徴点ベースのオプティカルフロー計算が可能になります。実際、「SIFTフロー」というSIFTベースのオプティカルフローのような移動ベクトルフィールド計算の手法も現在では存在しています(ただし、SIFTを用いるので計算量は高めです)。
(2)変分法ベースの手法
隣接するフローベクトル間に平滑さを考慮しながら、画像全体の誤差関数最小化により、全画素のオプティカルフローを一度に推定するという、Horn-Schunk法に代表される「変分法」を用いた手法です。
変分法とは、パラメータを沢山持った誤差関数を反復計算により最小化することで、最適なパラメータ値を求める汎用的なフレームワークです。以前「超解像」でも取り上げた「正則化」という変分法などが、コンピュータビジョンでもよく用いられます。(1)の手法は各画素で独立に最適な移動先を探索する事でフローベクトルの値を推定しましたが、(2)ではこの変分法により、隣り合うフローベクトル間に値の平滑性(なめらかさ)を導入できるところが違います。これにより、隣同士のフローベクトルの値の平滑性が加味され、またテクスチャが平坦だったり曖昧だったりして2画像間での対応がつきにくい領域も、周辺のフローベクトルの値からの伝わってくる平滑性に助けてもらうことで、「周辺の値がこれくらいの値なのだから、ここのフローベクトルもこれくらいの値であろう」という予測ができるわけです。
加えて、Lukas-Kanade法のように小領域毎にパラメトリックモーションを仮定しなくとも、オプティカルフローを求めるできることも(2)のポイントです。パラメトリックモーションでは表現しきれない各フローベクトルの値も変分法による誤差最小化で求めることができることになります(注:ただし、Lukas-Kanade法のアフィン変換による小領域ごとの変形モデルでも、2フレーム間の画像の動きを大まかに表現できている場合が多い点には注意です)。
変分法自体も、他のコンピュータサイエンスの課題でも応用例が多く研究されてして、ここ20年ほど継続的に発展しています。それに伴ってオプティカルフローの分野でも(2)の変分法による計算手法が現在でも活発に進んでいます。
以上、オプティカルフローの原理についての説明はこれくらいにさせて頂くことにして、次回からは本題であるデジタルビデオ安定化の技術の紹介に突入しましょう。