ホーム > PIV計測Q&A > オプティカルフロー法の概略を教えてください。
一覧に戻る
更新日:2018/1/29

オプティカルフロー法の概略を教えてください。

FtrPIVに実装されている移動先推定法の1つである『オプティカルフロー法』を紹介します。PIVは、そのもっとも基本的な移動先推定原理に、直接相互相関法(Direct Cross Correlation Method:DCC法)がありますが、計算量が膨大なため、古くから様々な代替方法が考えられてきました。『オプティカルフロー法』もその1つです。

導入

少し大きな視点に立ってみます。オプティカルフロー(Optical Flow)。視覚的な流れ、という意味です。その意味で、可視化された流れ場そのものが “オプティカルフロー” であり、広義にはDCC法などもその1つに分類されると言えます。画像の濃淡変化からその移動量を推測するこれらの手法を大別すると、濃淡の時間変化と空間的な濃度勾配を基礎に置く”勾配法”と、画像中のある大きさの領域をテンプレートとし、次のフレームの画像内をある評価関数に基づき探索する “ブロックマッチング法“ に分けられます。このように考えると、DCC法は ”ブロックマッチング法“ であるということができます。
ここでは、大別したもう1つの方法である ”勾配法“ に注目します。この ”勾配法“ がFtrPIVに実装されている『オプティカルフロー法』です。この手法は古くから研究されていて、パターン認識、コンピュータビジョンの世界ではとても有名です。中でも、1981年にLucas氏と金出氏によって発表された Lucas-Kanade法 の評価は高く、FtrPIVにも本格的に実装されています。FtrPIVでは ”勾配法“ とは記述していませんが、一般に『オプティカルフロー法』と言えば、特別に言及しない限り、この ”勾配法“ を意味することが多いようです。
それでは、その『Lucas-Kanade法』。じっくり見ていくことにします。

基本的なこと(勾配法の原理)

画像は2次元、流体は3次元です。撮像された物体の濃度が一定に保たれていたとしても、画像には、奥行き方向成分の情報が欠落しているため、そもそも、画像から物体の移動ベクトルを一意的に求めることはできません。そこで、いくつかの前提条件(仮定)を補うことで、一意的な解を「推定」することになります。
まず、下の図のように、速度ベクトルV(u, v) で移動する物体を考えます。つまり、時刻t で輝度E(x, y) の点が、dt 後に、E’(x+u, y+v) へ移動したとします。

前提条件@ 移動前後の明るさ(輝度分布)は不変。

さらに前提条件を加えると、テーラー展開できて次式を得ます。

前提条件A 画像はなめらかである(時間的・空間的に微分可能である)。

前提条件B 移動量はごくわずかである。

以上により、次の式が得られます。

E から E’ への輝度勾配を dE と書くと、『オプティカルフローの拘束方程式』が得られます。

この式は、ベクトルの内積を使って、次のようにも書けます。

式1つ、未知数2つ (u, v) なので、まだ解けません。

前提条件C 近傍画素も同じ動きをする。

これで、近傍画素からも、(u, v) に関する同様の式が得られます。
隣接する2点 P1P2 が同じ動きをするなら、その2点に対する拘束方程式は次のようになります。

この式中、u, v 以外は、すべて既知なので、解が確定します。

近傍点を増やして推定すれば精度が上がることが期待できます。参照する近傍点の数を増やすと、それだけたくさんの解が得られることになり、逆に一意性を欠きますが、得られた複数の解をもとに、最小二乗法によって一意の解を得ることができます。

Lucas-Kanade法によるオプティカルフロー推定

少し無理な前提条件がありました。前提条件BとCです。これは実際の画像では、必ずしも保証できないと思います。そこでLucas-Kanade法は、『画像ピラミッド』を使って、この点を克服します。『画像ピラミッド』は次の図を参照してください。

このように、画像自体を段階的に小さくして、小さいものから推定を始めます。画像が小さいので、前提条件BもCも満たします。次に大きな画像で移動量を推定する際に、直前の小さな画像での推定結果を加味します。このように「画像ピラミッドを下っていくことで、原画像の推定精度を高める」というのが、Lucas-Kanade法の肝です。

適性のよい画像

実際のPIV画像への適性を考えてみましょう。この手法の特徴は、前提条件が結構五月蝿いという点です。いろいろ工夫がなされて、改善・克服されている条件もあるようですが、前提条件@とAは無視されています。なかでも、輝度値不変の前提@は重要です。なぜなら、ダブルパルスレーザを使って撮影する場合、2台のレーザの明るさは異なるからです。また、画像の滑らかさを要求する前提Aは、あまりザラザラ感の強い画像には適さないことを意味するので、これもレーザを使ったコントラストの効いた画像には不向きと言えそうです。一方、一般のビデオカメラなどによる動画像への適用性は高いと言えそうです。ロボットビジョンなどでも多用されている理由はこのあたりにあるのかもしれません。

FtrPIVでのパラメータ設定

最後に、FtrPIVでの使用方法について触れておきたいと思います。

FtrPIVでは、ターゲット画像領域を意味する「検査窓」、最大移動量を規定する「探索範囲」のほか、「カーネルサイズ」「繰返回数」「階層数」を指定します。

カーネルサイズ

『画像ピラミッド』を作成する際、つまり、縮小画像を作成する際に、ガウシアン補間を使います。そのためのガウシアンカーネルの大きさを画素単位で指定します。デフォルト値=5 ですが、最小値=3 から始めて、結果が悪ければ少しずつ大きくしていけばよいと思います。

繰返回数

ピラミッド画像のそれぞれで、繰り返し計算をして精度を高めます。結果が収束した時点でその画像の計算は終了し、結果のベクトル情報が次の大きな画像へ引き継がれますが、収束性が悪い場合、最大何回繰り返すかを指定します。デフォルト値=5 ですが、最小値=2 から始めて、結果が悪ければ少しずつ大きくしていけばよいと思います。

階層数

作成する『画像ピラミッド』の画像数(階層数)を指定します。これも、デフォルト値=5 ですが、最小値=3 から始めて、結果が悪ければ少しずつ大きくしていけばよいと思います。

まとめ

今回は、画像処理の世界でたいへん有名な「オプティカルフロー(勾配法)」、特に、FtrPIVに実装されている『Lucas-Kanade法』について詳しく触れました。アルゴリズムの全体像は把握していただけたと思います。しかしアルゴリズムが複雑高度化されている分、縮小画像の作成法や、繰返計算の収束性向上など、細かな要素技術が結果の良し悪しに大きな影響を与えるだろう、ということも容易に想像できます。
『オプティカルフロー法』は、たいへん有用で、適用範囲の広い手法であることは間違いありませんが、計算速度は、FtrPIVにおいては『DCC法』に遠く及びません。また、原理的に多くの前提条件を付加しなければならないため、精度面でも『DCC法』には敵いません。したがって、適用優先順位は、『DCC法』>『オプティカルフロー法』と考えて間違いなさそうです。


[ タグ ]
オプティカルフロー法/勾配法/Lucus-Kanade法


一覧に戻る
↑ページ上部へ戻る