(57)【要約】【課題】対象画像と参照画像の間の正しい動きベクトルを求める動き推定装置を提供する。【解決手段】動き推定装置１０は、フロー推定部１２、重み計算部１４、フローフィルタリング部１６とから構成され、フロー推定部１２に対象画像、参照画像から動きベクトルを推定し、前記重み計算部は、フレーム間残差から重みを求め、フローフィルタリング部１６はこの重みを用いて推定した動きベクトルを加重平均して最終的な動きベクトルを求める。【選択図】      図１
2008226187.tif 000002
【特許請求の範囲】
【請求項１】
対象画像を複数の領域に分割する分割部と、
前記分割された複数の領域の中の一つの領域である対象領域の画素値と相関が高い参照画像内の領域である第１の参照領域とから推定される動きベクトルである推定動きベクトルを求める推定部と、
（１）前記対象領域を始点として、前記対象領域の周囲の複数の領域の推定動きベクトルによってそれぞれ指し示される前記参照画像内の複数の第２の参照領域をそれぞれ求め、
（２）前記複数の第２の参照領域の画素値をそれぞれ求め、
（３）前記複数の第２の参照領域の画素値と前記対象領域の画素値との差であるフレーム間残差をそれぞれ求め、
（４）前記複数のフレーム間残差に基づいて、前記フレーム間残差が小さいほど大きくなり、前記フレーム間残差が大きいほど小さくなる第１の重みを計算する重み計算部と、
前記第１の重みを用いて前記推定動きベクトルを加重平均して動きベクトルを求めるフィルタリング部と、
を備えた動き推定装置。
【請求項２】
前記重み計算部は、
（１）前記第１の参照領域の位置が、前記対象領域から離れているほど小さくなる第２の重み、
（２）前記対象領域の画素値と、前記第１の参照領域の画素値との差が大きいほど小さくなる第３の重み、
（３）前記対象領域の前記推定動きベクトルと、前記第１の参照領域の前記推定動きベクトルとの差が大きいほど小さくなる第４の重み、
の中の少なくとも一つの重みと、前記第１の重みの積によって、前記加重平均の重みを計算する、
請求項１記載の動き推定装置。
【請求項３】
前記フィルタリング部は、前記加重平均を複数回繰り返して前記動きベクトルを求める、
請求項１記載の動き推定装置。
【請求項４】
前記推定部における前記推定動きベクトルの推定と、前記フィルタリング部における前記動きベクトルの計算を交互に複数回繰り返して前記動きベクトルを求める、
請求項１記載の動き推定装置。
【請求項５】
前記推定部は、前記推定動きベクトルの推定をブロックマッチング法で行う、
請求項１記載の動き推定装置。
【請求項６】
前記推定部は、前記対象領域の画素値と前記第１の参照領域の画素値との差によって定まるエネルギーが降下する方向に更新して最小化して前記推定動きベクトルを求める、
請求項１記載の動き推定装置。
【請求項７】
前記対象領域が一画素、または、複数の画素から構成されたブロックであり、前記第１の参照領域が一画素、または、複数の画素から構成されたブロックである、
請求項１記載の動き推定装置。
【請求項８】
対象画像を複数の領域に分割する分割ステップと、
前記分割された複数の領域の中の一つの領域である対象領域の画素値と相関が高い参照画像内の領域である第１の参照領域とから推定される動きベクトルである推定動きベクトルを求める推定ステップと、
（１）前記対象領域を始点として、前記対象領域の周囲の複数の領域の推定動きベクトルによってそれぞれ指し示される前記参照画像内の複数の第２の参照領域をそれぞれ求め、
（２）前記複数の第２の参照領域の画素値をそれぞれ求め、
（３）前記複数の第２の参照領域の画素値と前記対象領域の画素値との差であるフレーム間残差をそれぞれ求め、
（４）前記複数のフレーム間残差に基づいて、前記フレーム間残差が小さいほど大きくなり、前記フレーム間残差が大きいほど小さくなる第１の重みを計算する重み計算ステップと、
前記第１の重みを用いて前記推定動きベクトルを加重平均して動きベクトルを求めるフィルタリングステップと、
を備えた動き推定方法。
【請求項９】
対象画像を複数の領域に分割する分割機能と、
前記分割された複数の領域の中の一つの領域である対象領域の画素値と相関が高い参照画像内の領域である第１の参照領域とから推定される動きベクトルである推定動きベクトルを求める推定機能と、
（１）前記対象領域を始点として、前記対象領域の周囲の複数の領域の推定動きベクトルによってそれぞれ指し示される前記参照画像内の複数の第２の参照領域をそれぞれ求め、
（２）前記複数の第２の参照領域の画素値をそれぞれ求め、
（３）前記複数の第２の参照領域の画素値と前記対象領域の画素値との差であるフレーム間残差をそれぞれ求め、
（４）前記複数のフレーム間残差に基づいて、前記フレーム間残差が小さいほど大きくなり、前記フレーム間残差が大きいほど小さくなる第１の重みを計算する重み計算機能と、
前記第１の重みを用いて前記推定動きベクトルを加重平均して動きベクトルを求めるフィルタリング機能と、
をコンピュータによって実現する動き推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２枚の画像間の動きを推定する動き推定装置及びその方法に関する。
【背景技術】
【０００２】
従来、画像の動き推定を行うために様々な手法が開発されている。これら手法は、例えば、ブロックマッチング法、オプティカルフロー法、Pel-recursive法、ベイジアン法などに分けることができる。
【０００３】
近年では、上記のオプティカルフロー法を非等方拡散方程式（偏微分方程式で記述される数式）に帰着させて解く手法が盛んである。
【０００４】
Ｘｉａｏは、Bilateral Filteringを用いて、動きの境界を適切に扱う手法を提案した（非特許文献１参照）。
【非特許文献１】J. Xiao, H. Cheng, H. Sawhney, C. Rao, and M. Isnardi, "Bilateral Filtering-Based Optical Flow Estimation with Occlusion Detection", ECCV2006,2006
【発明の開示】
【発明が解決しようとする課題】
【０００５】
まず、Ｘｉａｏ以前の手法を図２に基づいて説明する。なお、この説明では、画像内の各点の動きを示す動きベクトルをフローと呼ぶことにする。
【０００６】
図２は１次元でフローを説明する図である。すなわち、図２は、左列の画像と右列の画像間のフローが推定されているとして、この揺らいでいるフローをフィルタリングによって綺麗に整えるフローフィルタリングを示している。
【０００７】
Ｘｉａｏは、上記従来手法をBilateral Filteringの概念により発展させた。この手法を図３に基づいて説明する。
【０００８】
図３に示すように、フィルタリングの重みを、位置の重み、画素差による重み、フローの差による重み、という三つの重みの結合重みとして計算することにより、フローのエッジが保存される。つまり、Ｘｉａｏは、動きの境界が保存されるフローフィルタリングを提案した。
【０００９】
しかし、図４に示すように対象画素のフローが大きく誤っている場合、フロー差による重みが悪影響を及ぼし正しい解に収束しないという問題点がある。
【００１０】
そこで本発明は、上記問題点に鑑み、対象画像と参照画像の間の正しい動きベクトルを求めることができる動き推定装置及びその方法を提供する。
【課題を解決するための手段】
【００１１】
本発明は、対象画像を複数の領域に分割する分割部と、前記分割された複数の領域の中の一つの領域である対象領域の画素値と相関が高い参照画像内の領域である第１の参照領域とから推定される動きベクトルである推定動きベクトルを求める推定部と、
（１）前記対象領域を始点として、前記対象領域の周囲の複数の領域の推定動きベクトルによってそれぞれ指し示される前記参照画像内の複数の第２の参照領域をそれぞれ求め、
（２）前記複数の第２の参照領域の画素値をそれぞれ求め、
（３）前記複数の第２の参照領域の画素値と前記対象領域の画素値との差であるフレーム間残差をそれぞれ求め、
（４）前記複数のフレーム間残差に基づいて、前記フレーム間残差が小さいほど大きくなり、前記フレーム間残差が大きいほど小さくなる第１の重みを計算する重み計算部と、
前記第１の重みを用いて前記推定動きベクトルを加重平均して動きベクトルを求めるフィルタリング部と、を備えた動き推定装置である。
【発明の効果】
【００１２】
本発明によれば、対象画像と参照画像の間の正しい動きベクトルを求めることができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施形態の動き推定装置１０について図面に基づいて説明する。
【００１４】
（実施形態１）
本発明の実施形態１の動き推定装置１０について図１、図５、図６に基づいて説明する。本実施形態の動き推定装置１０は、対象画像、参照画像が入力されたときに、対象画像から参照画像へのフロー（動きベクトル）を求めるものである。
【００１５】
（１）定義
以下の各実施形態では、動きベクトルをフローという。また、次の記述を用いることとする。
【数１】
2008226187.tif 000003
【００１６】
また、ｓは、ｘの局所近傍の局所領域Ｎ（ｘ）内の位置を表す。
【００１７】
（２）動き推定装置１０の構成
動き推定装置１０の構成について図１のブロック図に従って説明する。
【００１８】
動き推定装置１０は、フロー推定部１２、重み計算部１４、フローフィルタリング部１６とから構成され、フロー推定部１２に対象画像、参照画像が入力され、フローフィルタリング部１６から演算されたフローが出力される。
【００１９】
なお、各部１２，１４，１６の各機能は、コンピュータの記録媒体に格納されたプログラムによっても実現できる。
【００２０】
以下、各部１２，１４，１６を図１と図６のフローチャートを参照しながら説明する。
【００２１】
（３）フロー推定部１２
フロー推定部１２におけるフローｕ（ｘ）の推定方法について説明する。
【００２２】
フロー推定法としては一般に、ブロックマッチング法、オプティカルフロー法、Pel-recursive法、ベイジアン法などがあるが、ここではブロックマッチング法によって求める方法を示す。しかしそれに限ったものではなく、オプティカルフロー法、Pel-recursive法、ベイジアン法などを用いても良い。
【００２３】
対象画像を以下のような予め設定された矩形領域のブロックＢ（ｉ）に分割する。
【数２】
2008226187.tif 000004
【００２４】
すると、差分二乗和基準（SSD：Sum of Squared Difference）に従ったブロックマッチングアルゴリズムは以下のようになる。
【数３】
2008226187.tif 000005
【００２５】
ブロックマッチングではブロック内は同一のフローｕ（ｘ）を持つと仮定される。
【数４】
2008226187.tif 000006
【００２６】
（４）フローフィルタリング部１６
フローフィルタリング部１６の機能について説明する。
【００２７】
フローフィルタリング部１６では、フロー推定部１２によって求まったフローｕ（ｘ）をフィルタリング（加重平均、または、畳み込みともいう）することによりフローｕ’（ｘ）を求める。フィルタリング後のフローｕ’（ｘ）は
【数５】
2008226187.tif 000007
【００２８】
なお、このフィルタリングは一回の処理としても良いし、以下のようにイテレーション、すなわち、反復して繰り返し計算して求めても良い。
【数６】
2008226187.tif 000008
【００２９】
このようにイテレーションをすることにより、より精度の高いフィルタリングが可能となる。
【００３０】
（５）重み計算部１４
重み計算部１４の機能について説明する。
【００３１】
重み計算部１４では、フローフィルタリング部１６で用いる加重平均のための重みｗ（ｘ，ｓ）を計算する。
【００３２】
Ｘｉａｏは、図３に示すような以下のような重みｗ（ｘ，ｓ）を用いている。
【数７】
2008226187.tif 000009
【００３３】
Ｘｉａｏは、Bilaterel Filteringをフローに対して拡張して、図３のようにフローの境界を保存するフィルタリングを行うことを開示する。
【００３４】
数７の右辺第１項が位置の重みであり、第２項が画素値の差の重みであり、画素が近いものほど畳み込まれるという性質を示す。第３項はフローの差の重みであり、フローが近いほど重みが増すという性質がある。これにより画素値が離れているものは重みが小さくなり、フローが離れているものも重みが小さくなる。これによりフローの境界が保存される。
【００３５】
しかし図４に示すようにフローの境界が大きい場合に問題が生じる。フィルタリングの対象フローが誤っている場合を考える。対象フローは本来上向きのフローとなっているのが望ましいが、ここでは下向きのフローが出てしまっているとする。このとき位置の重みや画素値の差の重みは図３と同様であるが、フローの差の重みが変わってくる。理想的には黒画素のフローを畳み込みたいのであるが、フローの差が大きいためにそれらの重みは小さくなってしまう。また画素値の差による重みは黒画素と白画素の間で差が出るために、結局対象フローしか重みがないという状態になってしまい、畳み込みが効果的に行われなくなり、正しい解に収束しない。
【００３６】
そこで本実施形態ではフレーム間残差を用いて上記問題を改善する。フレーム間残差とは、対象画素ｘの周りの画素（ｘ＋ｓ）のフローｕ（ｘ＋ｓ）を対象画素ｘに割り当てたときの残差を求める。すなわち、次のようになる。
【００３７】
まず、周囲の画素（ｘ＋ｓ）のフローｕ（ｘ＋ｓ）を自己の領域である対象画素ｘに適用する。すなわち、対象画素ｘを始点として動きベクトルであるフローｕ（ｘ＋ｓ）によって参照画像内の領域（ｘ＋ｕ（ｘ＋ｓ））を指し示す。ここでｓは局所領域Ｎ（ｘ）内の画素を示すため、局所領域Ｎ（ｘ）に含まれる画素（ｘ＋ｓ）毎にフローｕ（ｘ＋ｓ）が存在する。このため、適用されたフローｕ（ｘ＋ｓ）に対応して複数の領域が参照画像においてそれぞれ指し示される。
【００３８】
次に、それぞれが指し示された参照画像内の各領域（ｘ＋ｕ（ｘ＋ｓ））における画素値Ｉ２（ｘ＋ｕ（ｘ＋ｓ））を求める。
【００３９】
最後に、この画素値Ｉ２（ｘ＋ｕ（ｘ＋ｓ））と対象画素の画素値Ｉ１（ｘ）の差をフレーム間残差とする。
【００４０】
上記のフレーム間残差を数式で表すと次のようになる。
【００４１】
Ｉ２（ｘ＋ｕ（ｘ＋ｓ））−Ｉ１（ｘ）
このフレーム間残差を重みの一つとして、数７の右辺の第３項の代わりに置き換えると、Ｘｉａｏとは異なる数８のような重みｗ（ｘ，ｓ）となる。
【数８】
2008226187.tif 000010
【００４２】
このフレーム間残差による改善効果は図５を用いて説明できる。数８の右辺第１項の位置による重みと右辺第２項の画素値の差による重みは、上記の数７と同様である。
【００４３】
数８の新しい第３項のフレーム間残差の重みは、フローを割り当てたときに残差が大きくなる場合には重みが小さくなり、残差が小さいときには重みが大きくなるように動作する。これは、Ｉ２（ｘ＋ｕ（ｘ＋ｓ））−Ｉ１（ｘ）の値にガウス関数（マイナスのｅｘｐ）を掛けるからである。そして、このようにするのはフレーム間残差が大きいほどそのフローの割り当てが信頼できないからである。なお、画像において、同じ物体は対象画像と参照画像で同じ画素値Ｉを持つという仮定を用いている。
【００４４】
図５の場合には、フレーム間残差の重みは、対象フローも含めて下側を向いているフローでは小さくなるように計算される。すなわち上を向いている正しいフローのみが畳み込まれるため正しい解に収束することになる。
【００４５】
このように求めた重みｗ（ｘ，ｓ）を用いて、上記したフローフィルタリング部１６における数５の加重平均を計算する。
【００４６】
（６）処理内容
図６に基づいて動き推定装置１０の処理内容を説明する。
【００４７】
まず、ステップ１において、点ｉ＝０を初期値とする。
【００４８】
次に、ステップ２〜６において、局所領域Ｎ（ｘ）内の全ての画素ｓに対して数８の計算をそれぞれ行って重みｗ（ｘ，ｓ）を個々に計算する。
【００４９】
次に、ステップ７〜１０において、局所領域ｓについてその計算した重みｗ（ｘ，ｓ）を用いてフローｕ（ｘ）を計算する。
【００５０】
次に、ステップ１１において、最終的に画面全体の処理が終わるまでステップ２〜１０までの処理を続ける。
【００５１】
次に、ステップ１３において、点ｉを増加させて終わるまでステップ２〜１１をイテレーションする。
【００５２】
（７）効果
本実施形態であれば、ブロックマッチング法でブロックフローを求めた後、フローフィルタリングによってパーピクセルのフローにリファインでき、高精度なフローが推定できる。
【００５３】
（８）変更例
本発明は上記実施形態に限らず、その主旨を逸脱しない限り種々に変更することができる。
【００５４】
（６−１）変更例１
数８によって重みｗ（ｘ，ｓ）を用いたが、計算の簡単化のために
【数９】
2008226187.tif 000011
【００５５】
という重みｗ（ｘ，ｓ）を用いても良い。
【００５６】
こちらの場合、ワーピングＩ２（ｘ＋ｓ＋ｕ（ｘ＋ｓ））がまとめて計算できるため高速である。
【００５７】
（６−２）変更例２
また、重みの組み合わせは数８のものに限らず、以下の数１０のように自由に構成しても構わない。
【００５８】
すなわち、数１０の第１式の重みｗ（ｘ，ｓ）は数８の右辺第１項と本実施形態の特徴とする右辺第３項の積であり、数１０の第２式の重みｗ（ｘ，ｓ）は数８の右辺第２項と本実施形態の特徴とする右辺第３項の積であり、数１０の第３式の重みｗ（ｘ，ｓ）は数８の右辺第１項と右辺第２項と数７の右辺第１項と本実施形態の特徴とする数８の右辺第３項の積である。
【数１０】
2008226187.tif 000012
【００５９】
このように少なくとも、数８の右辺第３項を用いて重みｗ（ｘ，ｓ）を計算すればよい。
【００６０】
（実施形態２）
本発明の実施形態２の動き推定装置１０について図７、図８に基づいて説明する。本実施形態の動き推定装置１０では、Ｘｉａｏが示したように、フロー推定とフローフィルタリングをイテレーションすることによってフローを高精度に求める。
【００６１】
（１）動き推定装置１０の構成
動き推定装置１０の構成について図７のブロック図に従って説明する。
【００６２】
動き推定装置１０は、フロー推定部１２、重み計算部１４、フローフィルタリング部１６とから構成され、フロー推定部１２に対象画像、参照画像が入力され、フローフィルタリング部１６から演算されたフローが出力される。
【００６３】
以下、各部１２，１４，１６を図７と図８のフローチャートを参照しながら説明する。
【００６４】
（２）フロー推定部１２
本実施形態では画素単位にフローを推定できるフロー推定を示す。これはフロー毎に画像のエネルギー、フローが画像に適合していれば低エネルギーとなる、と定義し、これを最小化させることにより画像に適したフローを得ることができる手法である。
【００６５】
画像のエネルギーを
【数１１】
2008226187.tif 000013
【００６６】
とする。このときＩ２（ｘ＋ｕ（ｘ））をテーラー展開して１次で近似すれば、
【数１２】
2008226187.tif 000014
【００６７】
これはオプティカルフロー拘束式に対応するものである。画面全体のエネルギーＵは、
【数１３】
2008226187.tif 000015
【００６８】
となる。
【００６９】
これがフローの推定をｕ（ｉ）（ｘ）からｕ’（ｉ）（ｘ）に進展させる更新式である。
【００７０】
（３）重み計算部１４
重み計算部１４は実施形態１と同様である。このフロー推定部１２とフローフィルタリング部１６を交互に実行しながら、全体としてイテレーションすることにより、高精度なフロー推定ができる。
【００７１】
（４）フローフィルタリング部１６
フローフィルタリング部１６では、重み計算部１４で計算された重みｗ（ｘ，ｓ）を使って、以下のようにフローをフィルタリングする。
【数１４】
2008226187.tif 000016
【００７２】
（実施形態３）
本発明の実施形態３の動き推定装置１０について基づいて説明する。なお、図１に示すブロック図に従って説明する。
【００７３】
実施形態１では画素毎にフローをフィルタリングする手法を示したが、本実施形態ではそれを画素毎ではなく、ある領域（ブロック）毎に行う手法を開示する。
【００７４】
（１）定義
以下の記述を用いることとする。
【数１５】
2008226187.tif 000017
【００７５】
（２）フロー推定部１２
フロー推定部１２は、実施形態１と同様である。
【００７６】
（３）フローフィルタリング部１６
フローフィルタリング部１６では、フロー推定部１２によって求まったフローをフィルタリングする。実施形態１とは異なり、画素単位ではなくフィルタリング単位で処理を行っている。フィルタリング後のフローｕ’（ｘ）は
【数１６】
2008226187.tif 000018
【００７７】
なお、このフィルタリングは一回の処理としても良いし、以下のようにイテレーションで求めても良い。
【数１７】
2008226187.tif 000019
【００７８】
このようにイテレーションをすることにより、より精度の高いフィルタリングが可能となる。
【００７９】
（４）重み計算部１４
重み計算ス部１４では、フローフィルタリング部１２で用いるフィルタリングの重みを計算する。
【００８０】
実施形態１とは異なり、画素単位ではなくフィルタリング単位で処理を行っている。
【００８１】
フレーム間残差としては、周りのフローを対象画素に割り当てたときのブロック内の平均残差とする。
【数１８】
2008226187.tif 000020
【００８２】
これを重みとして追加すると以下のような重みが考えられる。
【数１９】
2008226187.tif 000021
【００８３】
これは実施形態１の画素単位の重み計算をブロック単位に拡張したものである。実際、１ｘ１ブロック、つまり画素がブロックだと考えると、ｉ＝ｘ，Ｂ（ｉ）＝｛ｘ｝となり、上記の重みは実施形態１の重みと等価になる。よってフィルタリング単位は画素に限定されるものではなく任意のサイズに拡張しても良いということである。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施形態１の動き推定装置のブロック図である。
【図２】フローフィルタリングの従来手法の説明図である。
【図３】Ｘｉａｏの説明図である。
【図４】Ｘｉａｏの問題点を説明する図である。
【図５】実施形態１における残差を用いた場合の説明図である。
【図６】実施形態１の動き推定装置のフローチャートである。
【図７】本発明の実施形態２の動き推定装置のブロック図である。
【図８】実施形態２の動き推定装置のフローチャートである。
【符号の説明】
【００８５】
１０    動き推定装置
１２    フロー推定部
１４    重み計算部
１６    フローフィルタリング部
【図１】
2008226187.tif 000022
【図２】
2008226187.tif 000023
【図３】
2008226187.tif 000024
【図４】
2008226187.tif 000025
【図５】
2008226187.tif 000026
【図６】
2008226187.tif 000027
【図７】
2008226187.tif 000028
【図８】
2008226187.tif 000029