(57)【特許請求の範囲】
【請求項１】
所与の場面の一対の画像フレーム間での推定された動きの階層を決定する方法であって、前記画像フレームのうちの第１の画像フレームが基準フレーム（Ｒ）として指定され、前記画像フレームのうちの第２の画像フレームが対象フレーム（Ｔ）として指定され、
ａ）前記画像フレームの各々についてそれぞれのインテグラル画像を計算するステップと、
ｂ）各フレーム内で少なくとも１つの対応する対象領域を選択するステップ（３０）と、
ｃ）各対象領域について、
ｉ．各インテグラル画像からのインテグラル画像プロファイルを計算するステップ（３２）であって、各プロファイルは要素の配列を含み、各要素は前記フレームに関する前記対象領域のスワスからのピクセル輝度の合計を含むものであり、インテグラル画像プロファイルを計算する前記ステップが、前記階層の第１の選択されたレベルにおいて前記インテグラル画像を第１のサブサンプリング間隔でサブサンプリングするステップと、ステップｃ）の各繰り返しについて、前記インテグラル画像を引き続いてより小さなサブサンプリング間隔でサブサンプリングするステップと、を含む、ステップと、
ｉｉ．前記インテグラル画像プロファイルを相関付けて前記一対のフレーム間の前記対象領域の相対変位を判定する相関付けステップ（３２）と、
ｉｉｉ．前記階層の次のレベルへ移行するために各対象領域を複数の更なる対象領域に分割する分割ステップ（３４）と、
ｉｖ．前記階層内のより高位のレベルにおける前記分割された対象領域に対応する対象領域について判定された相対変位に従って、前記階層のあるレベルにおける前記対象フレーム（Ｔ）の前記分割された領域を変位させるステップ（３６）と、
前記更なる対象領域について、引き続いて分割される対象領域に関して要求される推定された動きの階層が提供されるまでステップｃ）を繰り返すステップと、
を含む、方法。
【請求項２】
ステップｂ）が、対象領域として完全な画像フレームを初期に選択するステップを含む、請求項１に記載の方法。
【請求項３】
前記分割ステップが、各領域を水平方向及び垂直方向に整数の個数の対象領域に分割するステップを含む、請求項１に記載の方法。
【請求項４】
前記階層内の最下位レベルにおいて前記インテグラル画像の各ピクセルをサンプリングするステップを含む、請求項１に記載の方法。
【請求項５】
前記階層内の最下位レベルにおける前記画像フレームの各々について前記インテグラル画像プロファイルを補間して、前記階層の前記最下位レベルにおける対象領域についてサブピクセル単位の変位の大きさを提供するステップ（４０）を更に含む、請求項４に記載の方法。
【請求項６】
前記変位させるステップは、前記相関付けステップが前記対象領域内の複数の変位を判定することに応じて、前記対象フレーム（Ｔ）内の前記分割された対象領域を前記複数の変位に従って異なるように変位させる、請求項１に記載の方法。
【請求項７】
前記分割ステップは、前記相関付けステップが前記対象領域内の複数の変位を判定することに応じて、前記対象領域の不均一分割（Ｈ１，Ｈ２，Ｖ１）を決定して、前記不均一分割に従って前記対象領域を異なるように分割する、請求項１に記載の方法。
【請求項８】
対象フレームについてフルサイズのインテグラル画像を計算するステップ、及び、基準フレームについて縮小サイズのインテグラル画像を計算するステップを含み、
前記縮小サイズのインテグラル画像は、前記階層内の対象領域の境界に対応する前記画像フレームのピクセルに関するインテグラル画像データのみを含む、請求項１に記載の方法。
【請求項９】
前記基準フレームが前記対象フレームに対して交互に先行し後続するように、一連の画像フレームから前記基準フレーム及び対象フレームを選択するステップを含む、請求項８に記載の方法。
【請求項１０】
カメラの動きセンサから前記一対の画像フレーム間でのカメラの動きの大きさを受信するステップを更に含み、
前記選択するステップは、前記画像フレーム内の複数の領域を選択するステップを含み、前記対象フレーム内の少なくとも１つの対象領域が前記カメラの動きの大きさに従って変位する、請求項１に記載の方法。
【請求項１１】
前記階層内の最下位レベルにおける対象領域について判定される動きベクトルの配列に基づいて前記一対のフレームの相対的な動きを示す幾何学的変換を生成するステップを含む、請求項１に記載の方法。
【請求項１２】
前記生成するステップの前に前記動きベクトルをフィルタリングして動きベクトルの異常値を除去するステップ（３８）を含む、請求項１１に記載の方法。
【請求項１３】
ステップｃ）の各繰り返しについて、前記サブサンプリングの間隔が半分にされる、請求項１に記載の方法。
【請求項１４】
ある場面の一連の画像フレームを取得し、請求項１〜１３のいずれかの方法に従って、前記場面の一対の画像フレーム間での動きを推定するように構成された画像処理装置（１０）。
【請求項１５】
画像処理装置に請求項１〜１３のいずれか一項のステップを実行させるように構成された、コンピュータ可読媒体上に記憶されたコンピュータ可読命令を備えたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き推定の方法及び装置に関する。
【背景技術】
【０００２】
ＷＯ２００８／１５１８０２号（参照：ＦＮ−１７４）及びＷＯ２０１１／０６９６９８号（参照：ＦＮ−３５２）には、映像シーケンス内のそれぞれの画像フレームに関するプロファイルを相関付けて画像フレーム間の相対的な動き、即ち、カメラの動き又は被写体の動きのいずれかを含む動きを判定する方法が開示されている。しかし、フレーム間での動きの全体的な大きさを提供する方法の用途は限定される。
【０００３】
したがって、画像シーケンスのブロック又は領域内の全体的な動き及び局部的な動きの両方を示す情報を提供することが有用となり得る。一連の映像フレーム内の局部ブロックの動きを求める階層的手法を使用する多くの動き推定の方法が存在する。
【０００４】
一般的には、次の２種類の手法がある。
・ピラミッドの各レベルがその前のレベルのダウンスケールバージョンである、所謂ガウス型ピラミッドに画像を分解する、例えば米国特許第６４５９８２２号に開示されているような画像ピラミッド。レベル間のスケーリング係数は、通常、２である。対応するブロック間の変位は、ブロック間のピクセル値を相関付けることにより求めることができる。画像ピラミッドを記憶するために必要なメモリ量を別にしても、この方式では、たとえ小さな探索半径を採用したとしても処理が計算集約的となる。
・画像の大きさはオリジナルのままでも探索の繰り返しの度に探索ブロックが小さくなり、また探索半径も縮小されることでより高精度の推定が可能となる、可変ブロックサイズ。この手法の問題は、画像ピクセルに複数回アクセスしなければならず、各繰り返しの数値的な複雑性が高いことである。
【０００５】
米国特許第８２０００２０Ｂ１号には、ソース画像からソースタイルを選択するコンピューティング装置が開示されている。コンピューティング装置は、ソースタイルから第１の矩形形状及び第２の矩形形状を選択することができる。コンピューティング装置は、第１及び第２の矩形形状に基づいてソース形状ベクトルを計算することができる。コンピューティング装置はまた、対象画像の探索エリア及び探索エリア内のターゲットタイルを選択することもできる。コンピューティング装置は、ターゲットタイルに基づいて、ターゲット形状ベクトルを計算することができる。コンピューティング装置は、ソース形状ベクトルとターゲット形状ベクトルとの差が誤差閾値未満であることを判定し、この判定に基づいて、ソース画像と対象画像との間のマッピングを更に判定することができる。次に、コンピューティング装置は、ソース画像にマッピングを適用して変換されたソース画像を生成することができる。
【０００６】
米国特許第６８０９７５８号には、隣接するフレーム間の動きベクトル場を計算するステップと、動きベクトル場の水平及び垂直成分から動きベクトルヒストグラムを形成するステップと、動きベクトルヒストグラムに閾値を適用して閾値処理された動きベクトルヒストグラムを作成するステップと、閾値処理された動きベクトルヒストグラムから平均水平動き成分及び平均垂直動き成分を生成するステップと、多数のフレームにわたって平均水平動き成分及び平均垂直動き成分をフィルタリングしてフレームの各々について不要な水平及び垂直動き成分を同定するステップと、対応する水平方向及び垂直方向の不要な動きに従って各フレームをシフトすることにより、画像シーケンスを安定化するステップとを含む、一連の連続フレームを使用して形成された動き画像を安定化する方法が開示されている。
【発明の概要】
【０００７】
本発明の第１の態様によれば、請求項１に記載の所与の場面の一対の画像フレーム間での動きを推定する方法が提供される。
【０００８】
本発明のこの態様は、各画像フレームから導出されるインテグラル画像を採用して画像領域の階層の多数のレベルにおける画像フレーム間での相対的な動きを判定する。対応する領域間での動きは、画像相関法を直接使用してではなく、インテグラル画像プロファイルによって求められる。インテグラル画像プロファイルは、画像内の対象領域からの列内又は行内の全ピクセルの輝度の合計を包含する線形配列である。対応する領域からのインテグラル画像プロファイルは、領域間の変位を求めるために相関付けられる。
【０００９】
既述のように、埋め込みアプリケーションでは、画像を数回ダウンスケーリングし、ピラミッド即ち階層内にダウンスケーリングされたすべてのレベルを保存することは実現困難である。更に、階層内のこれらダウンスケーリングされた画像レベルから構築されたプロファイルは、不要なメモリトラフィックを発生させるであろうと考えられる。この問題は、階層内の各レベルについて必要に応じてサンプリングされるフレーム毎の単一インテグラル画像を使用して階層変位マップを生成することにより効果的に解決される。
【００１０】
実施形態において、例えば、基底レベルでは画像は１６×１６の領域に分割されており、そのすぐ上位のレベルは８×８の領域を有し、その上は４×４を有するというように、階層のレベルが下がる毎に領域の数が増加するように、階層レベルの各々が１つ以上の領域に分割される。いくつかの実施形態において、各レベルがその上位のレベルの２倍の解像度でサンプリングされることで、引き続いてより局部化される画像領域について更により微細な動きの推定が提供されるように、インテグラル画像情報のサンプリングがスケーリングされる。
【００１１】
本発明の実施形態はピラミッド内の各ブロックに関するインテグラルプロファイルの構築を最適化するので、メモリ量及びメモリ帯域幅の要件を最小限に抑えると共に計算複雑性を低減する階層的動き推定を実行する効率的な方法を提供する。
【００１２】
第２の態様によれば、請求項１８及び１９の各々に記載の所与の場面の一対の画像フレーム間での動きを推定する方法が提供される。
【００１３】
これらの方法は、単一の対象領域のサブブロックへの細分化及びインテグラル画像プロファイルの再構築を必要とせずに、この単一の対象領域内の複数の動きを検出する。これらの方法は、２つの対応する対象領域間の誤差関数の極小値を利用し、更には対象領域内に包含される被写体間の近似境界を設定するように試みる。
【００１４】
第３の態様によれば、請求項２１に記載の所与の場面の一対の画像フレーム間での動きを推定する方法が提供される。
【００１５】
機器に内蔵の動きセンサに基づいた動きの初期推測を使用してピラミッドの最上部で動き推定を開始する代わりに、この方法を使用すれば、動き推定は、階層のルートレベルよりも１つ以上下位のレベルで開始される。
【００１６】
また、上記で言及した本発明の態様を実行するために構成された画像処理装置及びコンピュータプログラム製品も提供される。
【００１７】
ここで、例として、添付の図面を参照しながら本発明の実施形態について説明する。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に係る動き推定を実行するように構成された画像処理装置のブロック図である。
【図２】本発明の一実施形態に係る動き推定の方法を概略図示したフロー図である。
【図３】図２の方法の第１の繰り返しに関するインテグラル画像プロファイルを生成するために使用されるインテグラル画像ピクセルの図である。
【図４】基準画像（Ｒ）に対して変位した対象画像（Ｔ）の図である。
【図５】図４に示したような一対の変位した画像に関する例示的なインテグラル画像プロファイルの図である。
【図６】図２の方法の第２の繰り返しで変位した対象領域（ＲＯＩ）である。
【図７】図２の方法の第２の繰り返しにおける基準画像（Ｒ）の左上及び左下のＲＯＩに関するインテグラル画像プロファイルを構築するために必要なピクセルの図である。
【図８】図２の方法の第３の繰り返しで変位した対象領域（ＲＯＩ）の図である。
【図９】補間されたインテグラル画像プロファイルの図である。
【図１０】平均絶対誤差（ＭＡＥ）に基づくプロファイル間のサブピクセル単位の変位の計算の図である。
【図１１】平均絶対誤差（ＭＡＥ）に基づくプロファイル間のサブピクセル単位の変位の計算の図である。
【図１２】画像フレームのかなりの部分を占める被写体の図である。
【図１３】図１２の画像に関する極小値を含むＭＡＥを示すプロファイルの図である。
【図１４】図２の方法により生成された動きベクトルの変位マトリックスの図である。
【図１５】全体的な変換マトリックスの計算に使用するマトリックスからベクトルを選択する方法の図である。
【図１６】図１５の方法によって生成された図１４のマトリックスに関する選択マスクの図である。
【図１７】対象領域の階層のあるレベルから次のレベルへの不均一な細分化の図である。
【図１８】対象領域の階層のあるレベルから次のレベルへの不均一な細分化の図である。
【図１９】対象領域の階層のあるレベルから次のレベルへの不均一な細分化の図である。
【発明を実施するための形態】
【００１９】
ここで図１を参照すると、本発明の一実施形態に係る動き推定を実行するための画像処理装置１０が図式的に示されている。この装置はバス１２を含み、バスは機能処理モジュール１４〜２２（バスの下方に図示）がメモリ２４〜２８（バスの上方に図示）から情報を読み出し、これらに書き込むことを可能とする。モジュール１４〜２２は、内部処理を容易にするためのローカルメモリを組み込むことができることに注目すべきである。
【００２０】
画像フレームは、ダウンサンプラ（ＤＳ）１４を介して画像センサ（図示せず）から取得される。ダウンサンプラ１４は、例えば、Ｆｕｊｉｔｓｕが提供しているタイプのガウス型ダウンサンプラであってもよい。ダウンサンプリングされた画像がインテグラル画像（ＩＩ）生成器（ＧＥＮ）１４に供給され、この生成器がＩＩをメモリ２４に書き込む。インテグラル画像の計算については周知であるが、これは、Ｐ．Ｖｉｏｌａ及びＭ．Ｊｏｎｅｓによって「Ｒａｐｉｄ  Ｏｂｊｅｃｔ  Ｄｅｔｅｃｔｉｏｎ  ｕｓｉｎｇ  ａ  Ｂｏｏｓｔｅｄ  Ｃａｓｃａｄｅ  ｏｆ  Ｓｉｍｐｌｅ  Ｆｅａｔｕｒｅｓ」，Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ，２００１，Ｖｏｌｕｍｅ  １の中で最初に開示された。インテグラル画像は、一般的には、ＷＯ２００８／０１８８８７号（参照：ＦＮ−１４３）内で開示されているような、画像内の顔などの被写体の同定に使用される。理解されるであろうとおり、インテグラル画像を提供するためには、オリジナル画像の輝度バージョンのみが必要である。したがって、画像のグレースケールバージョンでもよく、又は、例えば、ＲＧＢ、ＬＡＢ、ＹＣＣなどの多平面画像フォーマットの任意の単一平面であってもよい。
【００２１】
下記により詳細に説明するように、階層登録エンジン（hierarchical registration engine）（ＨＲＥ）１８がメモリ２４から一対のフレームに関するインテグラル画像情報を読み出し、その画像の対について変位マップ２６を生成する。
【００２２】
次に、アプリケーションプログラムを実行中のＣＰＵモジュール２０が、連続した画像フレームの変位マップ２６を使用して、例えば、ＷＯ２０１４／００５７８３号（参照：ＦＮ−３８４）に記載されているタイプのグラフィックス歪みエンジン（ＤＧＥ）２２が映像シーケンス内の画像の安定化処理を提供するために必要とする、設定情報２８を提供することができる。
【００２３】
見て取ることができるであろうとおり、ＨＲＥモジュール１８は、映像フレームを直接使用するのではなく、画像フレームのダウンサンプリングされた表現から計算されたインテグラル画像情報を使用する。ＨＲＥモジュール１８は、メモリ２４内の２つのフレームに関するインテグラル画像情報をバッファリングし、１組の画像情報を基準フレームのために使用し、基準フレームに対する対象フレーム内の対象領域（ＲＯＩ）の変位を計算する必要がある。より詳細に後述するように、いくつかの実施形態において、基準フレームは、対象フレームに先行し、次に対象フレームに後続するように、対象フレームと時間的に交互になることができる。
【００２４】
図２を参照すると、ＨＲＥモジュール１８は、階層のレベル毎に対象領域の動きベクトルを求めるために階層的探索を実行する。これは粗密探索法であり、まず、最大のサブサンプリング間隔で完全な画像フレームのインテグラル画像情報について探索を実行する。次に、フレームを複数の領域に分割し、個々の領域内の局部的な動きの初期的な推測として完全なフレームの動き推定を使用し、これを全階層にわたって繰り返す。
【００２５】
このように、モジュール１８は、ステップ３０で完全な画像フレームで開始し、ステップ３２で、メモリ内に取り込んだインテグラル画像データ２４に基づいて基準フレーム（Ｒ）及び対象フレーム（Ｔ）の各々のインテグラル画像プロファイルを構築する。インテグラル画像プロファイルとは、画像内の対象領域の対応する（探索の方向により）列又は行のスワス内の全ピクセルの輝度の合計を各要素内に包含する配列のことである。インテグラル画像プロファイルは、必要であれば元の汎用メモリ内に再度書き込むこともできるが、一般的には、ＨＲＥモジュール１８内にローカルに記憶される。
【００２６】
図３を参照すると、通常、階層の所与の対象領域に関するインテグラル画像プロファイルを計算するステップは、ＲＯＩの第１の行に沿ってインテグラル画像をサブサンプリングするステップと、これらの値Ｒ1-xを、ＲＯＩの最後の行に沿ってサブサンプリングされたこれらの値Ｒ2-xから減算するステップとを含み、各スワスの左上の隅を示す最上行の値及び右下の隅を示す最下行の値が、インテグラル画像プロファイル内の値を提供する。図３に示す階層の最上レベルにおいて、Ｒ1-1＝０のとき、第１の列のプロファイルの値は単にＲ2-1であり、次の列のプロファイルの値は単にＲ2-2−Ｒ2-1であるというように、画像の幅全域にわたって同様に続く。よって、階層の最上レベルにおけるインテグラル画像プロファイルを生成するためには、このレベルのインテグラル画像情報の最下行のみをサンプリングすればよい。（垂直方向の変位の判定にも同様の手法が適用される。）
【００２７】
図４は水平方向及び垂直方向に変位した一対の画像Ｔ、Ｒを示しており、図５はこれらの画像に関する水平インテグラル画像プロファイルＴ、Ｒを示している。これらのインテグラル画像プロファイルは、基準フレームからの対象フレームの変位を判定するために容易に相関付けることができる。（ここでも、垂直変位を求めるために同様の動作が実行されるが、この場合、プロファイルは、画像の行を合計することによって構築される。）
【００２８】
図２の実施形態において、階層の各レベルは直下に位置するレベルの解像度の１／２でサンプリングされ、階層の最上レベルでは全体画像は最も粗いバージョンであり、最下レベルでは最も細密なバージョンとなる。このように、ステップ３８では、階層のあるレベルで求められた（インテグラル画像サンプル内の）動きが２倍され、その下のレベルにとっての初期推定として設定され、局部的な動きがない場合の公称誤差は各々の方向において±１サンプルである。
【００２９】
水平方向及び垂直方向の変位を示す１つの動きベクトルのみが生成されるかもしれない階層の開始レベルには適用されないものの、いくつかの実施形態において、動きベクトルのマトリックスが生成される（図１４）階層のより下位のレベルでは、異常値の影響を低減するために、ステップ３８でマトリックスにローパスフィルタを適用することができる。
【００３０】
一次元について見てみると、あるレベルからの変位値Ａ〜Ｄの行がアップスケーリングされて次のレベルの初期変位値ａ〜ｈの行を生成する。
Ａ      Ｂ      Ｃ      Ｄ
ａ  ｂ  ｃ  ｄ  ｅ  ｆ  ｇ  ｈ
【００３１】
フィルタリングを伴わない簡単なアップスケーリングについて、初期変位値は以下のパターンを用いて計算することができる。
ｂ＝（３*Ａ＋Ｂ）／４
ｃ＝（Ａ＋３*Ｂ）／４
ｄ＝（３*Ｂ＋Ｃ）／４
ｅ＝（Ｂ＋３*Ｃ）／４など。
【００３２】
フィルタリングするためには、出力値に簡易ガウス型カーネル［１  ２  １］を適用することができ、ａ、ｂ、ｃなどの計算の代替として、交互に繰り返す以下の２つのケースの最終カーネルがある。
ｃ’＝（５*Ａ＋１０*Ｂ＋Ｃ）／１６
ｄ’＝（Ａ＋１０*Ｂ＋５*Ｃ）／１６
【００３３】
但し、ｃ’及びｄ’はローパスフィルタ通過後の値である。上記の計算に用いられる乗算は、例えば、５*Ａ＝（Ａ＜＜２）＋Ａなどのようにビットシフト及び加算に容易に分解することができ、この種のフィルタは一切の乗算を用いずに実施できるので、ハードウェアの実施上非常に好都合である。（列方向の動きベクトルの処理にも同様の原理が適用される。）
【００３４】
この実施形態において、階層の次のレベルに移行するときに図２のステップ３４で各ＲＯＩが４つの新しいＲＯＩに分割される。ここでも、細分化の程度は様々であることができ、可変又は不均一な大きさのＲＯＩを伴って動的であることさえできる。
【００３５】
図６は、この方法の第１の繰り返し後のＲＯＩのレイアウトを示しており、基準フレーム（Ｒ）が右側に、対象フレーム（Ｔ）が左側に示されている。この段階では、階層の最上位レベルに関するインテグラル画像情報の解析に基づいて判定される単一のベクトルに基づいて動きが生成されるので、ステップ３６で４つすべてのＲＯＩが同じ動きでイニシャライズ又は初期設定される。このように、対象画像（Ｔ）の対象領域の画像情報は、階層内のより高位の前のレベルで判定された動きに従って基準画像（Ｒ）のサンプルに対してシフトしたサンプルから取り出される。
【００３６】
ここでも、基準画像に対する対象画像のプロファイル及び変位は、ステップ３２において、図６に示した４つの対象領域の各々について判定される。図７に図示されるように、インテグラル画像のプロファイルは、画像の４つの領域の各々の最上行及び最下行に沿ってインテグラル画像の点をサンプリングすることによって構築される。しかし、対象画像の変位した領域のインテグラル画像情報が、階層内のより高位レベルからの現在の領域と境界を接する対象領域について検出される変位に従ってシフトした位置からサンプリングされることが重要である。
【００３７】
対象画像及び基準画像の各領域に関するインテグラル画像のプロファイルが構築された後、ステップ３８、３４、及び３６で階層の次のレベルについて処理を繰り返す前に、ステップ３２において第２のレベルに関する動きを再度判定することができる。
【００３８】
図８に誇張して示したように、処理が階層を通じて進捗していくと、ＲＯＩの動き推定はもはや規則的ではなくなる。図示のように、対象画像内の１つのＲＯＩの動きは別のＲＯＩの動きとは無関係であるかもしれず、このことは、移動する被写体を含む場面について特に当てはまる。
【００３９】
このように、例示的な一実施において、インテグラル画像情報は、階層内の最上層についてサブサンプリングされ、このように、オリジナルのインテグラル画像の解像度と比較して４倍ダウンスケーリングされる。水平方向のインテグラル画像のプロファイルを計算するためには、インテグラル画像の最下ラインから４ピクセル毎にサンプリングされる。連続したサンプル間の差を計算することにより、インテグラル画像プロファイルの値が取得される。オリジナルの６４０×４８０のフレームサイズについて、ピラミッドの最上レベルは画像毎に１６０個の値を必要とするであろうと考えられる。
【００４０】
ピラミッドのすぐ下のレベルからのブロックは、必要なプロファイルを計算するために、インテグラル画像からピクセルの２ライン毎にサンプリングする必要がある。例えば、オリジナルの画像の解像度の５０％でインテグラル画像の左下の４分の１区画からのプロファイルを計算するためには、図７に示すように、Ｌ0及びＬ1の２つのラインから２つ毎のピクセルがインテグラル画像から読み出される。このように、６４０×４８０の画像について、ＲＯＩ当たり最大３２０ピクセルまでのインテグラル画像情報が必要であるが、これでも従来の方法が必要とする帯域幅の６０分の１で済む。
【００４１】
既述のように、垂直方向の変位の判定についても類似の方法ですべての計算が実行される。
【００４２】
プロファイルを構築するためのこの方法は、対象画像内の画像ブロックの任意の位置について可能であり、一切の追加的な処理を必要とせずにオリジナルの画像の任意の整数のダウンスケーリング係数に直接対応する。
【００４３】
図２を再度参照すると、この方法が階層の最下位レベルについて処理（この場合は、３度目の繰り返しにおいて対象フレーム及び基準フレームに関するインテグラル画像の各ピクセルがサンプリングされる）を完了した後に、ステップ４０でサブピクセル単位の変位を判定することもまた可能である。
【００４４】
サブピクセル単位の精度でプロファイルを位置合わせすることにより、例えば、低解像度の画像情報（例えば、ＶＧＡ）で高解像度（例えば、フルＨＤ）の画像内での精密な動きを判定することができる。
【００４５】
サブピクセル単位のシフトを求めるためには、オリジナルのサンプリング間隔間のピクセルの値を判定するために、対象領域のインテグラル画像のプロファイルのうちの１つが補間される。一実施において、三次スプライン補間法が採用される。図９は、実線プロファイルを提供するために補間された第１のプロファイルからのオリジナルのサンプル（円）を示している。０．５ピクセル分シフトした第２のプロファイルからのサンプルがＸ印として示されている。変位（誤差）が、Ｘ印によって表示された値とこれらに対応する位置で取られた青色線の値との間の平均絶対誤差（ＭＡＥ）として計算される。計算時間を節約するために、青色線からのすべての値が計算されるわけではない。２つのプロファイル間の誤差を評価しなければならない位置でのみ関数が評価される。
【００４６】
ＭＡＥが極小値を有するサブピクセル単位のシフトを求めるために、二等分探索が採用される。図１０は、プロファイル間の変位によって誤差がどのように変化するかを示している。０でマーキングされた点が、最大１ピクセルまでに位置合わせされたプロファイルの初期の位置である。探索範囲の±０．５である初期ステップで探索が開始される。これらの位置で評価された誤差の値が比較され、現在位置がより小さな誤差の位置に移動される。
【００４７】
必要な正確度を規定する一定の繰り返し回数、動作が繰り返される。ピクセルの正確度１／２５６を達成するためには、８回の繰り返しが使用される。図１１には探索の最後のステップが示されており、これによりプロファイル間の変位が０．７ピクセルと０．７１ピクセルとの間の大きさであると判定される。
【００４８】
上記に説明したように、画像階層の上位レベルについて判定された動きが下位レベルのＲＯＩに関する初期推測として使用される。しかし、このことは、誤った初期設定及び回復不能な推定誤差を招く可能性があり、小さな探索半径が採用される場合、即ち、設定された最大許容変位がこのような誤差を受容するには小さすぎる場合には殊更である。このような問題が発生する典型的なケースは、カメラの視野内に高速で動く大きな被写体が存在する場合である。被写体が映像フレームの半分未満を占める場合、プロファイルの相関の極小値が場面の背景の動きを示す。このような、撮像された場面内で被写体が背景とは異なる方向に移動している状況を図１２に示す。
【００４９】
この状況では、階層内の最上位レベルに関する動きの単一の変位の大きさは、背景の動きのみを反映するであろうと考えられる。この動きは、ＲＯＩ１〜４として示された領域を包含するピラミッドの次のレベルに関する初期推測として設定されるであろうと考えられる。これによりＲＯＩ１及び３について妥当な初期設定が提供されるであろうと考えられる一方で、背景の変位を使用することによりＲＯＩ２及び４については誤った初期設定がもたらされるであろうと考えられる。更には、この誤差は階層内のより下位のすべてのレベルの、ＲＯＩ２及び４から派生するすべての領域にもまた波及するであろうと考えられる。
【００５０】
図１３は、図１２の画像の階層の最上位レベルに関するインテグラル画像のプロファイルに関するＭＡＥ関数を図示している。上記のサブピクセル解像度の例に示すように、この関数は、プロファイルのうちの１つをその他のプロファイルに対してシフトさせ、プロファイルの変位した要素間の平均絶対誤差を計算することにより計算される。図１０及び１１の例とは異なり、この場合は、関数は極小値に加えて大域的最小値を包含している。大域的最小値は最も支配的な動きを反映するが、極小値は、この場合は被写体の動きを反映している。
【００５１】
極小値の位置の分だけシフトされたプロファイルの絶対差を計算することにより、移動する被写体の位置が示される。これにより、プロファイルのどの部分が場面のどの被写体に属するかが示される。これにより、図２のステップ３２のような単一のプロファイル相関から複数の動きの値を返すことが可能となり、その結果、階層内のより下位のレベルにあるブロックの初期設定をより正確にすることができる。
【００５２】
図１２の例について再度考察すると、今度は、ピラミッドの最上位レベルのプロファイルの右側部分内の動きが左側部分とは異なる動きを反映していることが分かる。このように、図６に図示した、４つのＲＯＩの各々に同一の初期変位値が提供されている例とは異なり、ＲＯＩ２及び４は今度はより適切な変位値で初期設定することができる。
【００５３】
この手法は非インテグラル画像に基づく用途にもまた適用可能であることが理解されるであろう。
【００５４】
同様に、移動する被写体の範囲を知ることにより、階層内のあるレベルからそのすぐ下のレベルへの対象領域の不均一な分割が可能となる。
【００５５】
図１７を参照すると、被写体（Ｏ）が領域の中心に向かって背景（Ｂ）に対して移動している対象領域（ＲＯＩ）が図示されている。図１８は、このような対象領域内の水平方向の変位を判定した典型的な２つのインテグラルプロファイルを示している。
【００５６】
図１９は、水平変位対プロファイルに沿った誤差値を図示した二次元マップである。水平次元がプロファイルの長さであり、垂直次元が変位量である。黒色の左上及び右下の隅はプロファイルの非重畳部に起因しており、考慮する必要はない。特定の変位に関して形成された最小誤差（Ｌ）の線があることが観察でき、この線は、形状制約を伴う線形若しくは二次計画法のような何らかの制約を受けた最適化手法か、又はスネーク法若しくはレベルセット法のような動的輪郭法によって求めることができる。
【００５７】
線Ｌの垂直位置が変位を示す。この線がほぼ水平である箇所は移動する被写体又は背景を表しており、線の傾斜している区画は不確定なエリアを表している。この例では、図１７中の対象領域の細分化点Ｈ１、Ｈ２を求めるためにこの２つの傾斜している区画が使用される。ここでも、図１７中の細分化点Ｖ１を提供するために、垂直方向の動き及び細分化が同様にして求められる。このように、この場合では、階層内のより下位のレベルの対象領域が３つの水平領域及び２つの垂直領域に分割される。
【００５８】
この手法は非インテグラル画像に基づく用途にもまた適用可能であることが理解されるであろう。
【００５９】
上述した実施形態の多くの変型が可能である。例えば、今日のモバイル機器のほとんどは、加速度計及び／又はジャイロスコープなどの動きセンサを備えており、これらを使用してフレーム間でのカメラの変位を検出することができる。これらの機器の正確度には限界があるので、一般的には、サブピクセル単位の精度での動きの測定はできない。
【００６０】
しかし、内蔵の動きセンサは、探索のための初期推測を提供することで階層内のすべてのレベルでの動きを計算する必要を回避することにより、図２の実施形態に採用されている画像階層に必要なレベルの数を減少させるための、又はまさに階層内の任意のレベルにおける背景のカメラモーションの初期推定を提供するための良い方法を提供することができる。
【００６１】
したがって、カメラの幾何学的配置を知り、かつカメラの動きセンサからの測定値を有していれば、所与の正確度までのセンサ平面内の動きを計算することが可能である。したがって、例えば、図２に図示した実施形態から最上位レベルの変位量の計算を省略することができ、かつ、センサの測定値から計算される動きを、例えば図６に示した、第２のレベル（及び場合によっては後続のレベル）の初期推測として使用することができる。このことは、移動する被写体であるにもかかわらず全体的な動きを保証するか、又は確認する上で役に立つ。このことは、実際のカメラモーションの大きさを提供することによりカメラフレーム内で動いている被写体の影響を除外する上で役立つので、映像の安定化のために特に有用である。
【００６２】
反対に、図２に図示した手法を動きセンサの情報と組み合わせるという考えは、動きセンサを単独で使用した場合にはできない、動きの大きさのサブピクセル単位の正確度を提供する。
【００６３】
動きセンサを補足するために必要な階層のレベルの数は、画像の大きさ及びセンサの正確度に依存する。例えば、センサが＋／−３ピクセルの正確度を提供できる場合、各レベルで＋／−２ピクセルの探索半径を有する少なくとも２つの階層レベルが必要となる。
【００６４】
この手法は非インテグラル画像に基づく用途にもまた適用可能であることが理解されるであろう。
【００６５】
図２のステップ４０では、ＨＲＥモジュール１８によって図１４に図示したような（各々が潜在的にサブピクセル単位の正確度で局部的な水平変位及び垂直変位を示す）局部的な動きベクトルを含む変位マトリックスが提供され、これらをメモリ２６に書き込むことができる。
【００６６】
しかし、２つの連続した映像フレーム間の変位を示す局部的な動きベクトルのマトリックスを有することは、信頼性の高い映像安定性を提供するために十分ではないかもしれない。ＧＤＥ２２のようなモジュールがこのような安定性を提供するためには、通常、任意の２つのフレーム間の幾何学的変換が判定されるであろうと考えられる。これは、例えば、マトリックス、四元数、又はＳＲＴ変換などの任意の形態で表すことができる。これも既述のように、このような変換の使用の詳細は、ＷＯ２０１４／００５７８３号（参照：ＦＮ−３８４）に見ることができる。
【００６７】
図１４に示すような動きベクトルのマトリックスから幾何学的変換を得るためには、最小二乗法又はそれと等価の手法を使用することができる。変位マトリックスがガウス分布に従う比較的小さな測定誤差を包含しているのであれば、この手法で十分であろう。ただ生憎、このような例はまずあり得ない。動きベクトルはいろいろな形で無効となり得る。例えば、これらは、カメラモーションではなく移動する被写体の局部的な動きを包含している場合もあり、又は撮像されている場面の詳細の不足、若しくは相関処理と干渉する反復パターンの故に誤りを含んでいる可能性がある。したがって、場面内のＲＯＩについて判定される生の変位マトリクス情報をそのまま使用して幾何学的変換を提供すると、好ましくない結果を招きやすいであろうと考えられる。
【００６８】
ベクトル集合から異常値を排除して最も蓋然性の高い一貫性のある動きを形成するベクトルのみを残す、Ｖｉｓｉｏｎ  Ｒｅｓｅａｒｃｈ  Ｌａｂ社のＲＡＮＳＡＣなどの方法を使用することが可能である。このようなベクトルが選択された後、最小二乗法又はその等価物を使用して残りのベクトルから最終的な幾何学的変換を推定することができる。しかし、ＲＡＮＳＡＣのような方法は計算集約的であり、モバイル機器のプロセッサにかなりの負荷をかける可能性がある。ＲＡＮＳＡＣのその他の欠点は以下のとおりである。
・不明数及び変動数の反復を繰り返すので、プロセッサの負荷が高く、かつ予測不能となる可能性がある。
・確率的なので、同一のベクトル集合について、連続して２回実行したときにわずかに異なる結果を出す可能性がある。
【００６９】
本発明の実施形態は、下記に説明するように、予測可能な実行時間で、かつ再現可能な結果を提供することにより、マトリックス推定の計算複雑性を数桁の単位で低減する。
【００７０】
図１５を参照すると、図１４からの動きベクトルの値は、ステップ１５０で、まず整数値に量子化される。量子化のレベルは、所望の正確度及びフレーム内での予期される動きの範囲に依存する。最も簡易な場合では、量子化は整数値に四捨五入することができるが、その他の量子化ビンを使用することもできる。
【００７１】
ステップ１５２で、コンパラグラム（comparagram）が構築される。これは、各次元がそれぞれ水平方向及び垂直方向の量子化された動きを表す二次元ヒストグラムであり、コンパラグラムビンの値は、水平及び垂直の両方向の量子化された動きの値が同じであるベクトルの度数を示す。
【００７２】
ステップ１５４で、コンパラグラム内の最大ビン値が求められる。ステップ１５６で、最大値の位置が、隣接したビンの値のシードの値に対する類似性に基づいてこれら隣接ビンを接続して領域を拡大させるためのシードとなる。
【００７３】
ステップ１５８で、変位マトリックス内のマーキングされたビンに分類されるすべての動きベクトルが、動き推定のために選択される。ステップ１６０で、標準最小二乗法を使用して最終的な動き推定を実行することができる。図１４のマトリックスに関して選択的に抽出されたベクトルをマスキングするステップを図１５に示す。これは、より合理化された決定論的な処理リソースを採用しているにもかかわらず、例えばＲＡＮＳＡＣが提供する結果よりも好ましい。
【００７４】
上記に開示した実施形態の更なる変型が可能であることが理解されるであろう。
【００７５】
例えば、図８を参照すると、基準画像について、インテグラル画像の値は、画像内の対象領域の境界からのみ必要であることが分かるであろう。したがって、本発明のいくつかの実施形態において、１つおきの取得画像について縮小インテグラル画像（ＲＩＩ）がメモリに記憶される。必要なインテグラル画像プロファイルは図８のＲＨＳに図示した境界と一致するサンプルから構築できることが分かっているので、このような画像の各々が基準画像として使用される。一方、対象領域に使用される境界は、図８のＬＨＳについて見て取ることができるように、階層内のより高位のレベルについて計算される変位に基づいて変化するので、１つおきの対象画像について完全なＩＩが記憶される。
【００７６】
勿論、顔検出装置（図示せず）などその他の処理モジュールによって完全なインテグラル画像を使用することもでき、ＷＯ２００８／０１８８８７号（参照：ＦＮ−１４３）に開示されているように、このような検出装置はすべてのフレームについてインテグラル画像を常に必要とするわけではない。したがって、ＲＩＩを採用している本発明の実施形態は、既に顔検出を実行しているかもしれない機器に必ずしもより大きな処理の負担を強いるわけではない。
【００７７】
いずれにせよ、ＲＩＩを使用しているとき、生成器１６はメモリ２４に、完全なインテグラル画像（フレームＮ）及び縮小ＩＩ（フレームＮ＋１）を、次にＩＩ（フレームＮ＋２）及びＲＩＩ（フレームＮ＋３）を交互に書き込む。
【００７８】
ＨＲＥモジュール１８はメモリ２４からのＩＩ（Ｎ）及びＲＩＩ（Ｎ＋１）を使用してフレームＮ＋１の変位マップを生成し、次にメモリ２４からのＲＩＩ（Ｎ＋１）及びＩＩ（Ｎ＋２）を使用してフレームＮ＋２の変位マップを生成する。
【００７９】
既述のように、図示した実施形態はレベルを経る毎に領域を２分割するものの、実施形態の変型では、２分割以外の細分化並びに不均一な細分化を使用することができることが理解されるであろう。
【００８０】
任意のスケーリング係数を可能とするためにはインテグラル画像からの補間値を読み出す必要があるであろうと考えられ、これにより複雑性が増し、帯域幅の利得が低下するであろうと考えられるが、にもかかわらず、このような実施は標準的な手法よりも良好に機能するであろうと考えられることが注目される。
【図１】
0006022734.tif 000002
【図３】
0006022734.tif 000003
【図４】
0006022734.tif 000004
【図５】
0006022734.tif 000005
【図６】
0006022734.tif 000006
【図７】
0006022734.tif 000007
【図８】
0006022734.tif 000008
【図９】
0006022734.tif 000009
【図１２】
0006022734.tif 000010
【図１３】
0006022734.tif 000011
【図１４】
0006022734.tif 000012
【図１５】
0006022734.tif 000013
【図１６】
0006022734.tif 000014
【図１７】
0006022734.tif 000015
【図１８】
0006022734.tif 000016
【図１９】
0006022734.tif 000017
【図２】
0006022734.tif 000018
【図１０】
0006022734.tif 000019
【図１１】
0006022734.tif 000020