(57)【要約】【課題】画素単位で精度良く動きベクトルを検出する。【解決手段】動きベクトル検出装置は、探索部と、解像度変換部と、合成部と、修正部とを備える。探索部は、所定の解像度である注目解像度の第１入力画像におけるブロック毎に、注目解像度の第２入力画像と相関が高い領域を探索して、注目解像度の動きベクトルの集合である第１フローを生成する。解像度変換部は、注目解像度より低い解像度の動きベクトルの集合を高解像度化して、注目解像度の動きベクトルの集合である第２フローを生成する。合成部は、勾配法の評価関数を最適化するように第１フローに含まれる動きベクトルおよび第２フローに含まれる動きベクトルを組み合わせて、注目解像度の動きベクトルの集合である第３フローを生成する。修正部は、第３フローが初期値として設定された勾配法の評価関数を最適化して、注目解像度の動きベクトルの集合を生成する。【選択図】図１
2015210562.tif 000002
【特許請求の範囲】
【請求項１】
所定の解像度である注目解像度の第１入力画像におけるブロック毎に、前記注目解像度の第２入力画像と相関が高い領域を探索して、前記注目解像度の動きベクトルの集合である第１フローを生成する探索部と、
前記注目解像度より低い解像度の動きベクトルの集合を高解像度化して、前記注目解像度の動きベクトルの集合である第２フローを生成する解像度変換部と、
勾配法の評価関数を最適化するように前記第１フローに含まれる動きベクトルおよび前記第２フローに含まれる動きベクトルを組み合わせて、前記注目解像度の動きベクトルの集合である第３フローを生成する合成部と、
前記第３フローが初期値として設定された勾配法の評価関数を最適化して、前記注目解像度の動きベクトルの集合を生成する修正部と、
を備える動きベクトル検出装置。
【請求項２】
解像度が異なる複数の前記第１入力画像と、複数の前記第１入力画像と同一の解像度の複数の前記第２入力画像とを出力する階層化部をさらに備え、
前記探索部、前記解像度変換部、前記合成部および前記修正部は、複数の前記第１入力画像における最も低い解像度から最も高い解像度までを順次に前記注目解像度として選択して、解像度毎に処理を実行し、
前記解像度変換部は、前記注目解像度より１階層低い解像度の動きベクトルの集合を前記修正部から取得して、前記注目解像度の前記第２フローを生成する
請求項１に記載の動きベクトル検出装置。
【請求項３】
前記解像度変換部は、最も低い解像度において処理を実行せず、
前記合成部は、最も低い解像度において、前記第１フローを前記第３フローとして出力する
請求項２に記載の動きベクトル検出装置。
【請求項４】
前記探索部は、最も低い解像度において、動きベクトルが全て０の前記第１フローを出力し、
前記修正部は、動きベクトルが全て０の前記第３フローを初期値として設定された勾配法の評価関数を最適化する
請求項３に記載の動きベクトル検出装置。
【請求項５】
前記合成部は、算出すべき動きベクトルの集合により補正した後の前記第１入力画像から、前記第２入力画像を減じた画像に応じた第１評価値と、算出すべき動きベクトルの集合の勾配に応じた第２評価値とを加算する評価関数を最小化して、前記第３フローを生成する
請求項１から４の何れか１項に記載の動きベクトル検出装置。
【請求項６】
前記修正部は、算出すべき動きベクトルの集合により補正した後の前記第２入力画像から、前記第１入力画像を減じた画像に応じた第１評価値と、算出すべき動きベクトルの集合の勾配に応じた第２評価値とを加算する評価関数を最小化して、前記注目解像度の動きベクトルの集合を生成する
請求項１から５の何れか１項に記載の動きベクトル検出装置。
【請求項７】
前記修正部は、前記第１評価値および前記第２評価値の少なくとも一方の算出式にＬ１ノルムを含む前記評価関数を用いる
請求項６に記載の動きベクトル検出装置。
【請求項８】
前記探索部は、処理対象のブロックの周辺において検出済みの動きベクトル、前記第１入力画像および前記第２入力画像よりも時間的に過去または未来の画像において検出済みの動きベクトル、または、前記注目解像度より低い解像度の処理において検出済みの動きベクトルのうち何れか１つから計算される動きベクトルを、前記処理対象のブロックの動きベクトルとして検出する
請求項１から７の何れか１項に記載の動きベクトル検出装置。
【請求項９】
異なる位置から同一の被写体を撮像した２つの画像間の動きベクトルを検出する、請求項１に記載の動きベクトル検出装置と、
前記動きベクトル検出装置により検出された前記動きベクトルに基づき、前記被写体までの距離を算出する距離算出部と、
を備える距離検出装置。
【請求項１０】
所定の解像度である注目解像度の第１入力画像におけるブロック毎に、前記注目解像度の第２入力画像と相関が高い領域を探索して、前記注目解像度の動きベクトルの集合である第１フローを生成する探索ステップと、
前記注目解像度より低い解像度の動きベクトルの集合を高解像度化して、前記注目解像度の動きベクトルの集合である第２フローを生成する解像度変換ステップと、
勾配法の評価関数を最適化するように前記第１フローに含まれる動きベクトルおよび前記第２フローに含まれる動きベクトルを組み合わせて、前記注目解像度の動きベクトルの集合である第３フローを生成する合成ステップと、
前記第３フローが初期値として設定された勾配法の評価関数を最適化して、前記注目解像度の動きベクトルの集合を生成する修正ステップと、
を実行する動きベクトル検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、動きベクトル検出装置、距離検出装置および動きベクトル検出方法に関する。
【背景技術】
【０００２】
従来より、動きベクトルの検出方法として、ブロックマッチングベースの方法と、勾配法ベースの方法とが知られている。ブロックマッチングベースの方法では、例えば、基準画像内のブロック毎に対象画像における画素の最も相関の高い領域を探索して、ブロック毎の動きベクトルを検出する。ブロックマッチングベースの方法は、比較的に大きな動きを安定して検出することができるが、画素毎に動きベクトルを検出できなかった。
【０００３】
勾配法ベースの方法では、勾配法の評価関数を最小化するような動きベクトルを算出する。勾配法ベースの方法は、画素毎に動きベクトルを検出できるが、大きな動きを検出することができなかった。
【０００４】
また、勾配法ベースの方法の欠点を補う方法として、ブロックマッチングベースの方法で算出した動きベクトルが初期値として設定された評価関数を用いて、勾配法ベースの動きベクトルを算出する方法も知られている。しかしながら、勾配法ベースの方法では、一定以上の大きな動きを検出できない。従って、この方法では、ブロックマッチングベースの方法により検出した動きベクトルを微修正しかできない。このため、１つのブロック内に一定以上の大きな動きの変化が含まれていた場合、この方法では、ブロック内の動きの変化が潰れてしまい、精度良く動きベクトルが検出できなかった。
【０００５】
また、低解像度の画像から高解像度の画像へと段階的に動きベクトルを検出していく階層探索において、ブロックマッチングベースの方法で算出した動きベクトルが初期値として設定された評価関数を用いて、勾配法ベースの動きベクトルを算出する方法も知られている。この方法では、１つ低い解像度の階層での処理結果を、ブロックマッチングベースの方法での動きベクトルの探索の初期値として用いる。しかしながら、この方法では、１つ低い解像度の階層において誤検出をしていた場合、次の階層で誤りを修正することが困難であった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１１／０７４１２１号
【特許文献２】特開平８−２６５７７８号公報
【非特許文献】
【０００７】
【非特許文献１】B.Horn  and  B.Schunck,  “Determining  optical  flow”,  Artificial  Intelligence,  16:185-203,  Aug.1981
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明が解決しようとする課題は、画素単位で精度良く動きベクトルを検出し、さらに低い解像度の動きベクトルの誤りが発生しても正しい動きベクトルを検出することにある。
【課題を解決するための手段】
【０００９】
実施形態の動きベクトル検出装置は、探索部と、解像度変換部と、合成部と、修正部とを備える。前記探索部は、所定の解像度である注目解像度の第１入力画像におけるブロック毎に、前記注目解像度の第２入力画像と相関が高い領域を探索して、前記注目解像度の動きベクトルの集合である第１フローを生成する。前記解像度変換部は、前記注目解像度より低い解像度の動きベクトルの集合を高解像度化して、前記注目解像度の動きベクトルの集合である第２フローを生成する。前記合成部は、勾配法の評価関数を最適化するように前記第１フローに含まれる動きベクトルおよび前記第２フローに含まれる動きベクトルを組み合わせて、前記注目解像度の動きベクトルの集合である第３フローを生成する。前記修正部は、前記第３フローが初期値として設定された勾配法の評価関数を最適化して、前記注目解像度の動きベクトルの集合を生成する。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る動きベクトル検出装置を示す図。
【図２】実施形態に係る動きベクトル検出装置の処理の流れを示す図。
【図３】各ステップでの動きベクトルの集合を示す図。
【図４】画像補間装置を示す図。
【図５】距離検出装置を示す図。
【図６】実施形態に係る動きベクトル検出装置のハードウェア構成を示す図。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら実施形態に係る動きベクトル検出装置について詳細に説明する。本実施形態に係る動きベクトル検出装置は、画素単位で精度良く動きベクトルを検出し、さらに低い解像度の動きベクトルの誤りが発生しても正しい動きベクトルを検出することを目的としている。
【００１２】
図１は、実施形態に係る動きベクトル検出装置１０を示す図である。動きベクトル検出装置１０は、階層化部２１と、探索部２２と、解像度変換部２３と、合成部２４と、修正部２５とを備える。
【００１３】
階層化部２１は、第１被写体画像および第２被写体画像を取得する。第１被写体画像および第２被写体画像は、時間的に異なるタイミングで撮像された２つの画像、または、異なる位置から同一の被写体を撮像した２つの画像等であってよい。より具体的には、第１被写体画像および第２被写体画像は、動画像データの連続するフレーム等、または、ステレオカメラ等により撮像されたステレオ画像等であってよい。
【００１４】
階層化部２１は、第１被写体画像を、解像度が異なる複数の第１入力画像に変換する。階層化部２１は、第１被写体画像に対して、ガウシアンフィルタとサブサンプリングを繰り返して、解像度が異なる複数の第１入力画像を生成してよい。階層化部２１は、ガウシアンフィルタに代えて、平均値フィルタ等のぼかしフィルタを用いてもよい。また、階層化部２１は、サブサンプリングに代えて、線形補間またはバイキュービック補間等の補間処理をして画像を縮小してもよい。なお、階層化部２１は、最も解像度が高い第１入力画像を、第１被写体画像としてもよい。
【００１５】
また、階層化部２１は、第２被写体画像を、複数の第１入力画像と同一の解像度の複数の第２入力画像に変換する。階層化部２１は、複数の第１入力画像を生成する方法と同一の方法で、複数の第２入力画像を生成してよい。そして、階層化部２１は、複数の第１入力画像および複数の第２入力画像を、探索部２２、合成部２４および修正部２５へと出力する。
【００１６】
探索部２２、解像度変換部２３、合成部２４および修正部２５は、複数の第１入力画像（および複数の第２入力画像）における最も低い解像度から最も高い解像度までを順次に注目解像度として選択して、解像度毎に処理を実行する。
【００１７】
探索部２２は、階層化部２１から、注目解像度の第１入力画像および注目解像度の第２入力画像を入力する。探索部２２は、注目解像度の第１入力画像におけるブロック毎に、注目解像度の第２入力画像と相関が高い領域を探索して、注目解像度の動きベクトルの集合である第１フローを生成する。
【００１８】
探索部２２は、テンプレートマッチングにより第１フローを生成してよい。すなわち、探索部２２は、ブロックの画素値のパターンの相関、または、ブロック内の画素値に基づき算出される特徴量の相関を検出してよい。ブロックの画素値のパターンの相関を検出して、動きベクトルを検出する方法は、ブロックマッチングによる動きベクトルの探索方法に相当する。
【００１９】
ブロック内の画素値に基づき算出される特徴量は、一例として、ＳＩＦＴ（Scale-Invariant  Feature  Transform）特徴量またはＨＯＧ（Histograms  of  Oriented  Gradients）特徴量等である。このような特徴量に限らず、他の画像特徴量であってもよい。
【００２０】
また、ブロックは、どのような大きさおよび形状であってもよい。ブロックは、例えば画像全体であってもよい。ブロックが画像全体である場合、探索部２２は、画像全体の動き、すなわち、グローバルモーションを検出する。
【００２１】
また、探索部２２は、処理対象のブロックの周辺において検出済みの動きベクトル、第１入力画像および第２入力画像よりも時間的に過去または未来の画像において検出済みの動きベクトル、または、注目解像度より低い解像度の処理において検出済みの動きベクトルのうち何れか１つから計算される動きベクトルを、処理対象のブロックの動きベクトルとして検出してもよい。
【００２２】
探索部２２は、これらの検出済みの動きベクトルから何れか１つの動きベクトルを検出する場合には、例えば、過去に検出済みの動きベクトルをメモリ等に保存しておき、予め定められたアルゴリズムで最適な動きベクトルを選択し、選択した動きベクトルをその処理対象のブロックの動きベクトルとする。なお、検出済みの動きベクトルの中から最適な動きベクトルを選択する方法は、例えば、特許第３１４７８９３号公報および国際公開第２０１１／０７４１２１号に記載されている。なお、探索部２２は、最も低い解像度において、すなわち、注目解像度が最も低い解像度である場合、動きベクトルが全て０の第１フローを出力してもよい。
【００２３】
解像度変換部２３は、注目解像度より１階層低い解像度の動きベクトルの集合を修正部２５から取得する。そして、解像度変換部２３は、取得した注目解像度より１階層低い解像度の動きベクトルの集合を高解像度化して、注目解像度の動きベクトルの集合である第２フローを生成する。なお、解像度変換部２３は、最も低い解像度において、すなわち、注目解像度が最も低い解像度である場合、処理を実行しない。
【００２４】
より具体的には、まず、解像度変換部２３は、１階層低い解像度の動きベクトルの集合を、注目解像度と同一の解像度となるように補間する。解像度変換部２３は、線形補間またはバイキュービック補間等により動きベクトルを補間してよい。
【００２５】
続いて、解像度変換部２３は、それぞれの動きベクトルの大きさを、予め定められた拡大比率で拡大する。例えば、拡大率をｋとし、１階層低い解像度の動きベクトルの集合を補間した後の動きベクトルの集合をｗ＾ｈｅｘｐａｎｄとした場合、解像度変換部２３は、下記の式（１）を算出して、第２フロー（ｗｈｅｘｐａｎｄ）を生成する。
【数１】
2015210562.tif 000003
【００２６】
ここで、拡大率ｋは、変換前の動きベクトルの集合の解像度に対する、変換後の動きベクトルの集合の解像度（注目解像度）の比率である。例えば、変換前の動きベクトルの集合の解像度が１０×１０ｄｐｉであり、注目解像度が３０×３０ｄｐｉであれば、拡大率ｋは、３０／１０＝３となる。なお、解像度変換部２３は、拡大処理をした後に、補間処理を実行してもよい。
【００２７】
合成部２４は、探索部２２から注目解像度の第１フローを入力し、解像度変換部２３から注目解像度の第２フローを入力する。さらに、合成部２４は、階層化部２１から、注目解像度の第１入力画像および注目解像度の第２入力画像を入力する。そして、合成部２４は、勾配法の評価関数を最適化するように第１フローに含まれる動きベクトルおよび第２フローに含まれる動きベクトルを組み合わせて、注目解像度の動きベクトルの集合である第３フローを生成する。なお、合成部２４は、最も低い解像度において、すなわち、注目解像度が最も低い解像度である場合、第１フローを第３フローとして出力する。
【００２８】
合成部２４は、一例として、算出すべき動きベクトルの集合により補正した後の第１入力画像から、第２入力画像を減じた画像に応じた第１評価値と、算出すべき動きベクトルの集合の勾配に応じた第２評価値とを加算する評価関数を最小化して、第３フローを生成してよい。この場合、合成部２４は、第１評価値および第２評価値の少なくとも一方の算出式にＬ１ノルムを含む評価関数を用いてよい。なお、合成部２４において用いられる評価関数についての詳細は後述する。
【００２９】
修正部２５は、合成部２４から注目解像度の第３フローを入力する。さらに、修正部２５は、階層化部２１から、注目解像度の第１入力画像および注目解像度の第２入力画像を入力する。そして、修正部２５は、第３フローが初期値として設定された勾配法の評価関数を最適化して、注目解像度の動きベクトルの集合を生成する。
【００３０】
修正部２５は、一例として、算出すべき動きベクトルの集合により補正した後の第２入力画像から、第１入力画像を減じた画像に応じた第１評価値と、算出すべき動きベクトルの集合の勾配に応じた第２評価値とを加算する評価関数を最小化して、注目解像度の動きベクトルの集合を生成してよい。この場合、修正部２５は、第１評価値および第２評価値の少なくとも一方の算出式にＬ１ノルムを含む評価関数を用いてよい。なお、修正部２５において用いられる評価関数についての詳細は後述する。
【００３１】
修正部２５は、最も高い解像度の処理以外の処理において、すなわち、注目解像度が最も高い解像度ではない場合、生成した動きベクトルの集合を解像度変換部２３へと出力する。そして、修正部２５は、最も高い解像度の処理において、すなわち、注目解像度が最も高い解像度である場合、生成した動きベクトルの集合を外部へと出力する。
【００３２】
図２は、実施形態に係る動きベクトル検出装置１０の処理の流れを示す図である。図３は、各ステップでの動きベクトルの集合を示す図である。
【００３３】
まず、Ｓ１１において、階層化部２１は、第１被写体画像および第２被写体画像を取得する。続いて、Ｓ１２において、階層化部２１は、第１被写体画像から、解像度が異なる複数の第１入力画像を生成する。続いて、Ｓ１３において、階層化部２１は、第２被写体画像から、解像度が異なる複数の第２入力画像を生成する。
【００３４】
続いて、動きベクトル検出装置１０は、複数の第１入力画像（および複数の第２入力画像）における最も低い解像度から最も高い解像度までを順次に注目解像度として選択して、Ｓ１５からＳ１８までの処理を、解像度毎に繰り返して実行する（Ｓ１４とＳ１９との間のループ）。なお、Ｓ１４とＳ１９との間のループ内の各ステップについては、図３も参照しながら、所定の解像度（注目解像度）に対する処理を説明する。
【００３５】
Ｓ１５において、探索部２２は、注目解像度の第１入力画像（Ｉｈ１）におけるブロック毎に、注目解像度の第２入力画像（Ｉｈ２）と相関が高い領域を探索して、注目解像度の動きベクトルの集合である第１フロー（Ｗｈｓｅａｒｃｈ）を生成する。
【００３６】
続いて、Ｓ１６において、解像度変換部２３は、注目解像度より１階層低い解像度の動きベクトルの集合（Ｗｈ−１）を高解像度化して、注目解像度の動きベクトルの集合である第２フロー（Ｗｈｅｘｐａｎｄ）を生成する。ここで、注目解像度より１階層低い解像度の動きベクトルの集合（Ｗｈ−１）は、１ループ前のＳ１８において得られた動きベクトルの集合である。また、解像度変換部２３は、最も低い解像度において、すなわち、最初のループにおいて、Ｓ１６の処理を実行しない。
【００３７】
続いて、Ｓ１７において、合成部２４は、勾配法の評価関数を最適化するように第１フロー（Ｗｈｓｅａｒｃｈ）に含まれる動きベクトルおよび第２フロー（Ｗｈｅｘｐａｎｄ）に含まれる動きベクトルを組み合わせて、注目解像度の動きベクトルの集合である第３フロー（Ｗｈｏ）を生成する。合成部２４は、最も低い解像度において、すなわち、最初のループにおいて、注目解像度の第１フロー（Ｗｈｓｅａｒｃｈ）をそのまま、注目解像度の第３フロー（Ｗｈｏ）として出力する。
【００３８】
続いて、Ｓ１８において、修正部２５は、第３フロー（Ｗｈｏ）が初期値として設定された勾配法の評価関数を最適化して、注目解像度の動きベクトルの集合（Ｗｈ）を生成する。
【００３９】
続いて、Ｓ１９において、動きベクトル検出装置１０は、最も高い解像度の処理以外の処理において、処理をＳ１５に戻して、１つ高い解像度の階層について処理を実行させる。動きベクトル検出装置１０は、最も高い解像度までの処理が終了すると、処理をＳ２０に進める。
【００４０】
そして、Ｓ２０において、動きベクトル検出装置１０は、最も高い解像度の動きベクトルの集合（Ｗｈ）を外部へと出力する。
【００４１】
なお、探索部２２は、最も低い解像度において、すなわち、最初のループにおいて、動きベクトルが全て０の第１フローを出力してもよい。この場合、修正部２５は、動きベクトルが全て０の第３フローを初期値として設定された勾配法の評価関数を最適化する。これにより、動きベクトル検出装置１０は、第１入力画像および第２入力画像の解像度が低く十分に画像全体の動きを勾配法による動き検出でカバーできる場合には、探索部２２による動きベクトルの検出処理を省略して処理を簡単にすることができる。
【００４２】
つぎに、合成部２４（Ｓ１７）において用いられる評価関数、および、この評価関数を最適化する方法について説明する。合成部２４は、下記の式（２）に示される勾配法の評価関数Ｅ（ｗ）を最小化するように、第１フロー（Ｗｈｓｅａｒｃｈ）に含まれる動きベクトルおよび第２フロー（Ｗｈｅｘｐａｎｄ）に含まれる動きベクトルを画素単位で組み合わせて、注目解像度の動きベクトルの集合である第３フロー（Ｗｈｏ）を生成する。
【数２】
2015210562.tif 000004
【００４３】
なお、式（２）において、ｗは、下記の式（３）に示されるように、第１フロー（Ｗｈｓｅａｒｃｈ）または第２フロー（Ｗｈｅｘｐａｎｄ）の何れか一方の動きベクトルが、画素単位で選択された動きベクトルの集合（フロー）を表す。
【数３】
2015210562.tif 000005
【００４４】
また、式（２）において、Ωは、画像に含まれる各画素の位置ベクトルの集合を表す。
【００４５】
また、式（２）において、Ｉｈ１（ｐ＋ｗ）は、算出すべき動きベクトルの集合（ｗ）により補正した後の第１入力画像を表す。式（２）において、Ｉｈ２（ｐ）は、第２入力画像を表す。従って、式（２）において、（Ｉｈ１（ｐ＋ｗ）−Ｉｈ２（ｐ））は、算出すべき動きベクトルの集合（ｗ）で補正した後の第１入力画像から、第２入力画像を減じた差分画像を表す。
【００４６】
式（２）において、ΨＤ（）およびΨＳ（）は、差分値を、コストを表すスカラー値に変換するコスト関数である。ΨＤ（）およびΨＳ（）は、一例として、Ｌ１ノルムであってよい。また、ΨＤ（）およびΨＳ（）は、Ｌ２ノルムであってもよいし、Ｃｈａｒｂｏｎｎｉｅｒ関数等のロバスト関数であってもよい。なお、ΨＤ（）とΨＳ（）とは、互いに異なる関数であってよい。式（２）において、αは、設計者により任意に設定されるパラメータである。
【００４７】
従って、式（２）において、ΨＤ（Ｉｈ１（ｐ＋ｗ）−Ｉｈ２（ｐ））は、算出すべき動きベクトルの集合（ｗ）で補正した後の第１入力画像から、第２入力画像を減じた差分画像を、コスト関数ΨＤ（）によりスカラー化した値（第１評価値）を表す。また、式（２）において、αΨＳ（∇ｗ）は、算出すべき動きベクトルの集合の勾配を、コスト関数ΨＳ（）によりスカラー化した値（第２評価値）を表す。
【００４８】
従って、式（２）の評価関数Ｅ（ｗ）は、第１評価値と第２評価置とを加算した値を、全ての画素について加算した値を表している。
【００４９】
合成部２４は、このような評価関数Ｅ（ｗ）が最小となるように、第１フロー（Ｗｈｓｅａｒｃｈ）の動きベクトルおよび第２フロー（Ｗｈｅｘｐａｎｄ）の動きベクトルを組み合わせる。このような評価関数Ｅ（ｗ）を最小化する問題は、いわゆるラベル決定問題となる。従って、合成部２４は、例えばグラフカット法または確率伝搬法等を用いて、評価関数Ｅ（ｗ）を最小化するような動きベクトルの集合（フロー）を算出することができる。
【００５０】
つぎに、修正部２５（Ｓ１８）において用いられる評価関数、および、この評価関数を最適化する方法について説明する。修正部２５は、第３フロー（Ｗｈｏ）が初期値として設定された、下記の式（４）に示される勾配法の評価関数を最小化するように、注目解像度の動きベクトルの集合（Ｗｈ）を生成する。
【数４】
2015210562.tif 000006
【００５１】
式（４）において、ｗは、[ｕ，ｖ]Ｔで表される。ｕ，ｖは、ベクトルの要素を表す。
【００５２】
また、式（４）において、Ω、ΨＤ（）、ΨＳ（）およびαは、式（２）と同様である。ただし、ΨＤ（）、ΨＳ（）およびαは、式（２）と異なる関数または値であってもよい。
【００５３】
また、式（４）において、Ｉｈ２（ｐ＋ｗ）は、算出すべき動きベクトルの集合（ｗ）により補正した後の第２入力画像を表す。式（４）において、Ｉｈ１（ｐ）は、第１入力画像を表す。従って、式（４）において、｛Ｉｈ２（ｐ＋ｗ）−Ｉｈ１（ｐ）｝は、算出すべき動きベクトルの集合（ｗ）により補正した後の第２入力画像から、第１入力画像を減じた差分画像を表す。
【００５４】
すなわち、式（４）において、ΨＤ（Ｉｈ２（ｐ＋ｗ）−Ｉｈ１（ｐ））は、算出すべき動きベクトルの集合（ｗ）で補正した後の第２入力画像から、第１入力画像を減じた差分画像を、コスト関数ΨＤ（）によりスカラー化した値（第１評価値）を表す。また、式（４）において、αΨＳ（∇ｗ）は、算出すべき動きベクトルの集合の勾配を、コスト関数ΨＳ（）によりスカラー化した値（第２評価値）を表す。
【００５５】
ここで、式（４）は、非凸関数であり、簡単に最小値を得ることができない。そこで、動きベクトルを、固定値ｗと、微小増分ｄｗ（＝[ｄｕ，ｄｖ]Ｔ）との式に分解すると、式（４）は、下記の式（５）のように変形される。
【数５】
2015210562.tif 000007
【００５６】
式（５）の第１項は非線形関数である。従って、式（５）の第１項をテーラー展開して、２次項以降を削除した式に置き換えると、下記の式（６）となる。
【数６】
2015210562.tif 000008
【００５７】
式（６）のＩｘ（ｐ），Ｉｙ（ｐ），Ｉｚ（ｐ）は、下記の式（７−１）、式（７−２）および式（７−３）のように表される。
【数７】
2015210562.tif 000009
【００５８】
式（６）は、凸関数である。従って、修正部２５は、第３フロー（Ｗｈｏ）を初期値として式（６）に代入して、∂Ｅ／∂ｗ＝０を解けば、評価関数の最小値を得ることができる。より具体的には、式（６）は連立１次方程式となるので、修正部２５は、例えば、ＳＯＲ（Successive  Over  Relaxation）法または共役勾配法等を用いて、∂Ｅ／∂ｗ＝０を解き、評価関数の最小値を得ることができる。
【００５９】
以上のように、本実施形態に係る動きベクトル検出装置１０は、勾配法を用いて動きベクトルを検出する。従って、動きベクトル検出装置１０によれば、動きベクトルを画素毎に精度良く検出することができる。
【００６０】
さらに、動きベクトル検出装置１０は、テンプレートマッチングにより検出した動きベクトルの集合を勾配法の評価関数の初期値として用いる。従って、動きベクトル検出装置１０によれば、勾配法により検出可能な範囲より大きな動きベクトルを検出することができる。
【００６１】
また、さらに、動きベクトル検出装置１０は、テンプレートマッチングにより検出した動きベクトルの集合（第１フロー）と、１階層低い解像度において検出した動きベクトルの集合を高解像度化した動きベクトルの集合（第２フロー）とを、勾配法の評価関数が最適となるように合成する。そして、動きベクトル検出装置１０は、合成した動きベクトルの集合（第３フロー）を勾配法の評価関数の初期値として用いる。
【００６２】
これにより、動きベクトル検出装置１０は、１階層低い解像度の動きベクトルの集合に誤った動きベクトルが含まれている場合であっても、その誤った動きベクトルをテンプレートマッチングにより検出した動きベクトルにより置き換えることができる。従って、動きベクトル検出装置１０によれば、低い解像度の動きベクトルの誤りが発生しても正しい動きベクトルを検出することができる。
【００６３】
図４は、実施形態に係る動きベクトル検出装置１０が適用された画像補間装置４０を示す図である。動きベクトル検出装置１０は、例えば、テレビジョン映像等の動画像データのフレームを補間する画像補間装置４０に適用することができる。
【００６４】
画像補間装置４０は、動きベクトル検出装置１０と、補間部４１とを備える。本例において、動きベクトル検出装置１０は、動画像データを入力して、連続する２つの画像の間の動きベクトルを検出する。より具体的には、動きベクトル検出装置１０は、ある時刻ｔのフレーム（画像）Ｉｔと、次の時刻ｔ＋１のフレーム（画像）Ｉｔ＋１との間の動きベクトルの集合ｗを検出する。
【００６５】
補間部４１は、動きベクトル検出装置１０により検出された動きベクトルの集合を用いて２つの画像間を補間して、新たな画像を生成する。本例においては、補間部４１は、動画像データを入力して、動きベクトル検出装置１０により生成された動きベクトルの集合ｗを用いて連続する２つのフレームを補間して新たなフレームを生成する。そして、補間部４１は、生成した新たなフレームを、動画像データにおける連続する２つのフレームの間に挿入して、高レート化された動画像データを出力する。
【００６６】
より具体的には、補間部４１は、ある時刻ｔのフレームＩｔと、次の時刻ｔ＋１のフレームＩｔ＋１とのフレーム間に挿入すべき、時刻ｔ＋０．５のフレームＩｔ＋０．５を生成する。補間部４１は、フレームＩｔ＋０．５の各画素の値Ｉ´（ｐ）を下記の式（８）により生成する。
【数８】
2015210562.tif 000010
【００６７】
なお、式（８）において、Ｗ´（）の定義は下記の式（９）に示す通りである。
【数９】
2015210562.tif 000011
【００６８】
図５は、実施形態に係る動きベクトル検出装置１０が適用された距離検出装置５０を示す図である。動きベクトル検出装置１０は、例えば、物体までの距離を検出する距離検出装置５０に適用することができる。
【００６９】
距離検出装置５０は、右側カメラ５１と、左側カメラ５２と、動きベクトル検出装置１０と、距離算出部５３とを備える。
【００７０】
右側カメラ５１と左側カメラ５２とは、水平方向に予め定められた距離（基線長）離れた位置に配置される。右側カメラ５１および左側カメラ５２は、同一の被写体に対して焦点を合わせて被写体を撮像する。
【００７１】
動きベクトル検出装置１０は、右側カメラ５１により撮像された画像および左側カメラ５２により撮像された画像を、第１被写体画像および第２被写体画像として入力して、被写体の動きベクトルを検出する。
【００７２】
距離算出部５３は、動きベクトル検出装置１０により検出された動きベクトルの集合に基づき、被写体までの距離を算出する。より具体的には、距離算出部５３は、基線長および動きベクトルの長さ等に基づき、三角測量の原理を用いて、撮像位置から被写体までの距離を算出する。そして、距離算出部５３は、算出した距離を表す距離情報を出力する。
【００７３】
図６は、動きベクトル検出装置１０のハードウェア構成を示す図である。動きベクトル検出装置１０は、ＣＰＵ（Central  Processing  Unit）２０１と、操作部２０２と、表示部２０３と、ＲＯＭ（Read  Only  Memory）２０４と、ＲＡＭ（Random  Access  Memory）２０５と、記憶部２０６とを備える。これらの各部は、バス２１０により接続される。
【００７４】
ＣＰＵ２０１は、プログラムに従って演算処理および制御処理等を実行するプロセッサである。ＣＰＵ２０１は、ＲＡＭ２０５の所定領域を作業領域としてＲＯＭ２０４または記憶部２０６に予め記憶された各種プログラムとの協働により各種処理を実行し、動きベクトル検出装置１０を構成する階層化部２１、探索部２２、解像度変換部２３、合成部２４および修正部２５の機能を実装させる。
【００７５】
操作部２０２は、マウスやキーボード等の入力デバイスであって、ユーザから操作入力された情報を指示信号として受け付け、その指示信号をＣＰＵ２０１に出力する。
【００７６】
表示部２０３は、ＬＣＤ（Liquid  Crystal  Display）等の表示装置である。表示部２０３は、ＣＰＵ２０１からの表示信号に基づいて、各種情報を表示する。例えば、表示部２０３は、動きベクトル検出装置１０が出力する動きベクトルを表示してよい。
【００７７】
ＲＯＭ２０４は、動きベクトル検出装置１０の制御に用いられるプログラムおよび各種設定情報等を書き換え不可能に記憶する。ＲＡＭ２０５は、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等の揮発性の記憶媒体である。ＲＡＭ２０５は、ＣＰＵ２０１の作業領域として機能する。具体的には、動きベクトル検出装置１０が用いる各種変数およびパラメータ等を一時記憶するバッファ等として機能する。
【００７８】
記憶部２０６は、フラッシュメモリ等の半導体による記憶媒体、磁気的または光学的に記録可能な記憶媒体等の書き換え可能な記録装置である。記憶部２０６は、動きベクトル検出装置１０の制御に用いられるプログラムおよび各種設定情報等を記憶する。また、記憶部２０６は、例えば、操作部２０２および通信装置等を介して取得された画像信号等のデータを記憶する。
【００７９】
なお、動きベクトル検出装置１０は、このような構成に限らず、階層化部２１、探索部２２、解像度変換部２３、合成部２４および修正部２５の少なくとも一部をハードウェア回路（例えば半導体集積回路）により実装する構成であってもよい。
【００８０】
また、本実施形態の動きベクトル検出装置１０で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００８１】
また、本実施形態の動きベクトル検出装置１０で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の動きベクトル検出装置１０で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態の動きベクトル検出装置１０で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００８２】
本実施形態の動きベクトル検出装置１０で実行されるプログラムは、上述した動きベクトル検出装置１０の各部（階層化部２１、探索部２２、解像度変換部２３、合成部２４および修正部２５）を含むモジュール構成となっており、ＣＰＵ２０１（プロセッサ）が記憶媒体等からプログラムを読み出して実行することにより上記各部がＲＡＭ２０５上にロードされ、動きベクトル検出装置１０（階層化部２１、探索部２２、解像度変換部２３、合成部２４および修正部２５）がＲＡＭ２０５上に生成されるようになっている。
【００８３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８４】
１０  動きベクトル検出装置
２１  階層化部
２２  探索部
２３  解像度変換部
２４  合成部
２５  修正部
４０  画像補間装置
４１  補間部
５０  距離検出装置
５１  右側カメラ
５２  左側カメラ
５３  距離算出部
２０１  ＣＰＵ
２０２  操作部
２０３  表示部
２０４  ＲＯＭ
２０５  ＲＡＭ
２０６  記憶部
２１０  バス
【図１】
2015210562.tif 000012
【図２】
2015210562.tif 000013
【図３】
2015210562.tif 000014
【図４】
2015210562.tif 000015
【図５】
2015210562.tif 000016
【図６】
2015210562.tif 000017