(57)【特許請求の範囲】
【請求項１】
第１画像と第２画像との間で対応点を探索する画像処理装置であって、
前記第１画像および前記第２画像に対して、それぞれウィンドウを設定するウィンドウ設定手段と、
設定されたそれぞれのウィンドウに含まれる画像に対して周波数分解を行なうことで位相情報を抽出する位相情報抽出手段と、
それぞれのウィンドウから抽出された位相情報を比較することで、前記第１画像と前記第２画像との間の対応点を決定する対応点決定手段と、
前記ウィンドウ設定手段に、周波数分解の計算に使用する周波数に応じて異なるサイズのウィンドウを設定させるウィンドウサイズ制御手段とを備え、
前記ウィンドウサイズ制御手段は、前記ウィンドウ設定手段に、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、前記第１の周波数より高い第２の周波数に対応して、前記第１のサイズよりも小さい第２のサイズのウィンドウを設定させ、
前記ウィンドウサイズ制御手段は、周波数分解の計算に使用する周波数に応じて、ウィンドウのサイズを２のべき乗に沿って変更させる、画像処理装置。
【請求項２】
第１画像と第２画像との間で対応点を探索する画像処理装置であって、
前記第１画像および前記第２画像に対して、それぞれウィンドウを設定するウィンドウ設定手段と、
設定されたそれぞれのウィンドウに含まれる画像に対して周波数分解を行なうことで位相情報を抽出する位相情報抽出手段と、
それぞれのウィンドウから抽出された位相情報を比較することで、前記第１画像と前記第２画像との間の対応点を決定する対応点決定手段と、
前記ウィンドウ設定手段に、周波数分解の計算に使用する周波数に応じて異なるサイズのウィンドウを設定させるウィンドウサイズ制御手段とを備え、
前記ウィンドウサイズ制御手段は、前記ウィンドウ設定手段に、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、前記第１の周波数より高い第２の周波数に対応して、前記第１のサイズよりも小さい第２のサイズのウィンドウを設定させ、
前記ウィンドウサイズ制御手段は、周波数分解の計算に使用する周波数を低周波側と高周波側とに分けたときに、低周波側では細かくウィンドウのサイズを変更させ、高周波側では粗くウィンドウのサイズを変更させる、画像処理装置。
【請求項３】
前記位相情報抽出手段は、ウィンドウに含まれる画像に対して窓関数による畳み込み演算を行なう手段を含み、
前記窓関数は、ウィンドウのサイズに応じて設定される、請求項１または２に記載の画像処理装置。
【請求項４】
前記第１画像および前記第２画像を複数の解像度を有する画像に変換する解像度変換手段をさらに備え、
前記対応点決定手段は、解像度の異なる画像についての対応点探索の結果を用いて、前記第１画像と前記第２画像との間の対応点を決定する、請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
第１画像と第２画像との間で対応点を探索する画像処理装置であって、
前記第１画像および前記第２画像に対して、それぞれウィンドウを設定するウィンドウ設定手段と、
設定されたそれぞれのウィンドウに含まれる画像に対して周波数分解を行なうことで位相情報を抽出する位相情報抽出手段と、
それぞれのウィンドウから抽出された位相情報を比較することで、前記第１画像と前記第２画像との間の対応点を決定する対応点決定手段と、
前記ウィンドウ設定手段に、周波数分解の計算に使用する周波数に応じて異なるサイズのウィンドウを設定させるウィンドウサイズ制御手段とを備え、
前記ウィンドウサイズ制御手段は、前記ウィンドウ設定手段に、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、前記第１の周波数より高い第２の周波数に対応して、前記第１のサイズよりも小さい第２のサイズのウィンドウを設定させ、
前記ウィンドウ設定手段は、前記ウィンドウ設定手段に、第１の周波数に対応して所定数の画素を含む第１のサイズのウィンドウを設定させるとともに、前記第１の周波数より高い第２の周波数に対応して、前記所定数より少ない画素を含む第２のサイズのウィンドウを設定させる、画像処理装置。
【請求項６】
第１画像と第２画像との間で対応点を探索する画像処理装置であって、
前記第１画像および前記第２画像に対して、それぞれウィンドウを設定するウィンドウ設定手段と、
設定されたそれぞれのウィンドウに含まれる画像に対して周波数分解を行なうことで位相情報を抽出する位相情報抽出手段と、
それぞれのウィンドウから抽出された位相情報を比較することで、前記第１画像と前記第２画像との間の対応点を決定する対応点決定手段と、
前記ウィンドウ設定手段に、周波数分解の計算に使用する周波数に応じて異なるサイズのウィンドウを設定させるウィンドウサイズ制御手段とを備え、
前記ウィンドウサイズ制御手段は、前記ウィンドウ設定手段に、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、前記第１の周波数より高い第２の周波数に対応して、前記第１のサイズよりも小さい第２のサイズのウィンドウを設定させ、
前記ウィンドウサイズ制御手段は、前記ウィンドウ設定手段に、前記周波数分解の計算に第１の周波数を用いるときには、前記第１の周波数に対応して定められるサイズである第１のサイズのウィンドウを設定させ、前記周波数分解の計算に前記第１の周波数より高い第２の周波数を用いるときには、当該第２の周波数に対応して定められた所定のサイズであって、前記第１のサイズよりも小さい第２のサイズのウィンドウ設定をさせる、画像処理装置。
【請求項７】
第１画像と第２画像との間で対応点を探索する画像処理装置であって、
前記第１画像および前記第２画像に対して、それぞれウィンドウを設定するウィンドウ設定手段と、
設定されたそれぞれのウィンドウに含まれる画像に対して周波数分解を行なうことで位相情報を抽出する位相情報抽出手段と、
それぞれのウィンドウから抽出された位相情報を比較することで、前記第１画像と前記第２画像との間の対応点を決定する対応点決定手段と、
前記ウィンドウ設定手段に、周波数分解の計算に使用する周波数に応じて異なるサイズのウィンドウを設定させるウィンドウサイズ制御手段とを備え、
前記ウィンドウサイズ制御手段は、前記ウィンドウ設定手段に、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、前記第１の周波数より高い第２の周波数に対応して、前記第１のサイズよりも小さい第２のサイズのウィンドウを設定させ、
前記ウィンドウサイズ制御手段は、前記ウィンドウ設定手段に、所定のサイズを有する第１の画像および第２の画像に対して、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、前記所定のサイズを有する前記第１の画像および前記第２の画像に対して、前記第１の周波数より高い第２の周波数に対応して、前記第１のサイズよりも小さい第２のサイズのウィンドウを設定させる、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像間の対応点を探索する画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
従来から、例えば、同一の被写体を複数の撮像装置を用いて撮像することで得られる複数の画像に対して、当該被写体のある部分がそれぞれの画像上でいずれの位置に存在するのかといった、画像間の対応点を探索する技術が各種提案されている。このような対応点探索に係る技術は、典型的には、ステレオ画像を用いた立体視表示などの実現に利用される。【０００３】
このような画像間の対応点を探索する処理では、各種の方法が採用される。一例として、位相限定相関法（Ｐｈａｓｅ−Ｏｎｌｙ  Ｃｏｒｒｅｌａｔｉｏｎ；以下、「ＰＯＣ法」とも称す。）がよく知られている。このＰＯＣ法は、画像に含まれる空間周波数の位相差情報を用いて、画像間の対応点を探索する。このような対応点探索に係る先行技術としては、以下のようなものが知られている。【０００４】
例えば、特開平１０−１３４１９６号公報（特許文献１）は、自動車や人間等を対象物（目標）とし、空間周波数特性に基づく画像データの照合を行ない、その照合結果から目標までの距離を測定する距離測定装置を開示する。より具体的には、特開平１０−１３４１９６号公報（特許文献１）では、第１のカメラで撮像した画像データを登録画像データとし、２次元離散的フーリエ変換（ＤＦＴ）を施して登録フーリエ画像データが取得され、第２のカメラで撮像した画像データを照合画像データとし、ＤＦＴを施して照合フーリエ画像データが取得される。登録フーリエ画像データと照合フーリエ画像データとを合成し、振幅抑制処理を行ったうえ、ＤＦＴを施す。このＤＦＴの施された合成フーリエ画像データにおいて、相関成分エリアの中心から相関ピークまでの距離に基づいて目標までの距離が測定される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１３４１９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
位相限定相関法（ＰＯＣ法）は、輝度の絶対差の総和（ＳＡＤ：Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）の情報を用いる手法に比較して、ロバスト性に優れ、高精度であるという利点がある。しかしながら、周波数分解などの演算負荷が高い処理が必要であるため、処理全体の演算時間が非常に大きくなるという課題もある。【０００７】
上述の特開平１０−１３４１９６号公報（特許文献１）に開示される方法においても、登録画像データおよび照合画像データの全体について２次元離散的フーリエ変換を行なうため、演算負荷が高いものであった。【０００８】
本発明は、かかる問題を解決するためになされたものであり、その目的は、画像間の対応点を探索する処理に係る処理全体の演算時間を少なくできる画像処理装置、画像処理方法および画像処理プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明のある局面に従えば、第１画像と第２画像との間で対応点を探索する画像処理装置が提供される。画像処理装置は、第１画像および第２画像に対して、それぞれウィンドウを設定するウィンドウ設定手段と、設定されたそれぞれのウィンドウに含まれる画像に対して周波数分解を行なうことで位相情報を抽出する位相情報抽出手段と、それぞれのウィンドウから抽出された位相情報を比較することで、第１画像と第２画像との間の対応点を決定する対応点決定手段と、ウィンドウ設定手段に、周波数分解の計算に使用する周波数に応じて異なるサイズのウィンドウを設定させるウィンドウサイズ制御手段とを含む。ウィンドウサイズ制御手段は、ウィンドウ設定手段に、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、第１の周波数より高い第２の周波数に対応して、第１のサイズよりも小さい第２のサイズのウィンドウを設定させ、ウィンドウサイズ制御手段は、周波数分解の計算に使用する周波数に応じて、ウィンドウのサイズを２のべき乗に沿って変更させる。
本発明の別の局面に従えば、第１画像と第２画像との間で対応点を探索する画像処理装置が提供される。画像処理装置は、第１画像および第２画像に対して、それぞれウィンドウを設定するウィンドウ設定手段と、設定されたそれぞれのウィンドウに含まれる画像に対して周波数分解を行なうことで位相情報を抽出する位相情報抽出手段と、それぞれのウィンドウから抽出された位相情報を比較することで、第１画像と第２画像との間の対応点を決定する対応点決定手段と、ウィンドウ設定手段に、周波数分解の計算に使用する周波数に応じて異なるサイズのウィンドウを設定させるウィンドウサイズ制御手段とを含む。ウィンドウサイズ制御手段は、ウィンドウ設定手段に、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、第１の周波数より高い第２の周波数に対応して、第１のサイズよりも小さい第２のサイズのウィンドウを設定させ、ウィンドウサイズ制御手段は、周波数分解の計算に使用する周波数を低周波側と高周波側とに分けたときに、低周波側では細かくウィンドウのサイズを変更させ、高周波側では粗くウィンドウのサイズを変更させる。
本発明の別の局面に従えば、第１画像と第２画像との間で対応点を探索する画像処理装置が提供される。画像処理装置は、第１画像および第２画像に対して、それぞれウィンドウを設定するウィンドウ設定手段と、設定されたそれぞれのウィンドウに含まれる画像に対して周波数分解を行なうことで位相情報を抽出する位相情報抽出手段と、それぞれのウィンドウから抽出された位相情報を比較することで、第１画像と第２画像との間の対応点を決定する対応点決定手段と、ウィンドウ設定手段に、周波数分解の計算に使用する周波数に応じて異なるサイズのウィンドウを設定させるウィンドウサイズ制御手段とを含む。ウィンドウサイズ制御手段は、ウィンドウ設定手段に、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、第１の周波数より高い第２の周波数に対応して、第１のサイズよりも小さい第２のサイズのウィンドウを設定させ、ウィンドウ設定手段は、ウィンドウ設定手段に、第１の周波数に対応して所定数の画素を含む第１のサイズのウィンドウを設定させるとともに、第１の周波数より高い第２の周波数に対応して、所定数より少ない画素を含む第２のサイズのウィンドウを設定させる。
本発明の別の局面に従えば、第１画像と第２画像との間で対応点を探索する画像処理装置が提供される。画像処理装置は、第１画像および第２画像に対して、それぞれウィンドウを設定するウィンドウ設定手段と、設定されたそれぞれのウィンドウに含まれる画像に対して周波数分解を行なうことで位相情報を抽出する位相情報抽出手段と、それぞれのウィンドウから抽出された位相情報を比較することで、第１画像と第２画像との間の対応点を決定する対応点決定手段と、ウィンドウ設定手段に、周波数分解の計算に使用する周波数に応じて異なるサイズのウィンドウを設定させるウィンドウサイズ制御手段とを含む。ウィンドウサイズ制御手段は、ウィンドウ設定手段に、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、第１の周波数より高い第２の周波数に対応して、第１のサイズよりも小さい第２のサイズのウィンドウを設定させ、ウィンドウサイズ制御手段は、ウィンドウ設定手段に、周波数分解の計算に第１の周波数を用いるときには、第１の周波数に対応して定められるサイズである第１のサイズのウィンドウを設定させ、周波数分解の計算に第１の周波数より高い第２の周波数を用いるときには、当該第２の周波数に対応して定められた所定のサイズであって、第１のサイズよりも小さい第２のサイズのウィンドウ設定をさせる。
本発明の別の局面に従えば、第１画像と第２画像との間で対応点を探索する画像処理装置が提供される。画像処理装置は、第１画像および第２画像に対して、それぞれウィンドウを設定するウィンドウ設定手段と、設定されたそれぞれのウィンドウに含まれる画像に対して周波数分解を行なうことで位相情報を抽出する位相情報抽出手段と、それぞれのウィンドウから抽出された位相情報を比較することで、第１画像と第２画像との間の対応点を決定する対応点決定手段と、ウィンドウ設定手段に、周波数分解の計算に使用する周波数に応じて異なるサイズのウィンドウを設定させるウィンドウサイズ制御手段とを含む。ウィンドウサイズ制御手段は、ウィンドウ設定手段に、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、第１の周波数より高い第２の周波数に対応して、第１のサイズよりも小さい第２のサイズのウィンドウを設定させ、ウィンドウサイズ制御手段は、ウィンドウ設定手段に、所定のサイズを有する第１の画像および第２の画像に対して、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、所定のサイズを有する第１の画像および第２の画像に対して、第１の周波数より高い第２の周波数に対応して、第１のサイズよりも小さい第２のサイズのウィンドウを設定させる。
【発明の効果】
【００１０】
本発明によれば、画像間の対応点を探索する処理に係る処理全体の演算時間を少なくできる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に従う対応点探索方法の概要を説明するための図である。
【図２】本発明の実施の形態に従う対応点探索方法の概要を説明するための図である。
【図３】本発明の実施の形態に従う対応点探索処理をパーソナルコンピューターにより実現した場合の構成を示すブロック図である。
【図４】本発明の実施の形態に従う対応点探索処理をデジタルカメラ類似の構成により実現した場合の構成を示すブロック図である。
【図５】本発明の実施の形態に従う画像処理装置の機能構成を示すブロック図である。
【図６】図５に示す対応点探索部のより詳細な機能構成を示すブロック図である。
【図７】本発明の実施の形態に従う対応点探索部により算出されるＰＯＣ値の一例を示す図である。
【図８】本発明の実施の形態に従う対応点探索方法の全体手順を示すフローチャートである。
【図９】本発明の実施の形態の変形例２に従う画像処理装置の機能構成を示すブロック図である。
【図１０】本発明の実施の形態の変形例２において生成される解像度の異なる画像群を示す模式図である。
【図１１】本発明の実施の形態の変形例２において生成される解像度の異なる画像群の一例を示す図である。
【図１２】本発明の実施の形態の変形例２に従う多重解像度を用いた粗密戦略の処理内用を説明するための図である。
【図１３】本発明の実施の形態の変形例２に従う多重解像度を用いた粗密戦略において初期位置を設定する処理を説明するための図である。
【図１４】本発明の実施の形態に従う画像処理装置の適用例１を説明するための図である。
【図１５】図１４に示すステレオ計測の原理を説明するための図である。
【図１６】本発明の実施の形態に従う画像処理装置の適用例２を説明するための図である。
【発明を実施するための形態】
【００１２】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００１３】
［Ａ．概要］
本発明の実施の形態は、少なくとも第１画像と第２画像との間で対応点を探索する対応点探索方法に向けられている。すなわち、対応点の探索対象となる複数の画像は、同一の被写体（の少なくとも一部）の画像を共通に含み得る画像を意味し、３つ以上の画像であってもよい。このような複数の画像は、典型的には、複数の撮像装置（カメラ）を用いて同一の被写体を異なる視点から撮像することで得られる。より具体的には、所定距離だけ離して配置された複数のカメラ（典型的には、ステレオカメラ）によって同一の被写体を撮像することでそれぞれの画像が得られる。
【００１４】
以下の説明においては、説明の便宜上、第１画像に注目画素（注目点）を設定し、当該設定した注目点に対する第２画像上の対応点を探索するものとする。このような対応点の探索処理において、第１画像を「基準画像」と称し、第２画像を「参照画像」と称する。また、３つ以上の画像間で対応点探索を行なう場合には、いずれか１つの画像を「基準画像」として設定するとともに、それを撮像する撮像装置（カメラ）を「基準画像」の撮像用のカメラとして設定する。一方、それ以外の画像についてはいずれも「参照画像」として設定するとともに、それらを撮像する撮像装置（カメラ）を「参照画像」の撮像用のカメラとして設定する。このような拡張方法によって、本実施の形態に従う対応点探索方法を３つ以上の画像間における対応点の探索にも適用できる。
【００１５】
また、本実施の形態に従う対応点探索方法は、典型的には、ステレオ撮像された画像間の対応点を探索して立体視画像を生成する処理に向けられるが、これに限られることなく、パノラマ画像の生成処理などにも適用できる。
【００１６】
本実施の形態に従う対応点探索方法によって得られる対応関係を、以下「対応点探索結果」と記す。この対応点探索結果は、典型的には、基準画像上のそれぞれの画素位置（各注目点の座標位置）と、当該それぞれの画素位置に対応する参照画像上の画素位置とを含む。
【００１７】
図１および図２は、本発明の実施の形態に従う対応点探索方法の概要を説明するための図である。
【００１８】
本実施の形態に従う対応点探索方法は、基準画像と参照画像との間の位相情報の差（以下「位相差情報」とも称す。）を用いて、画像間の対応点を探索する。位相情報および位相差情報は、基準画像および参照画像にそれぞれ設定されるウィンドウ単位で周波数（空間周波数）別に算出されることになる。すなわち、所定の周波数範囲にわたる位相情報が算出される。
【００１９】
このとき、空間周波数によってその波長の長さは異なるため、同一のサイズのウィンドウ（領域）を設定した場合、その中に含まれる波数は、空間周波数の大きさに依存して変化することになる。すなわち、図１に示すように、空間周波数が低い場合には、より大きなサイズを有するウィンドウを設定しなければ、一周期分の情報を取得することができず、一方、空間周波数が高い場合には、より小さなサイズを有するウィンドウであっても、十分な周期分の情報を取得することができる。
【００２０】
そこで、本実施の形態においては、基準画像および参照画像に対して、それぞれウィンドウを設定し、設定されたそれぞれのウィンドウに含まれる画像に対して周波数分解を行なうことで位相情報を抽出し、それぞれのウィンドウから抽出された位相情報を比較することで、基準画像と参照画像との間の対応点を決定する。このとき、対応する周波数分解の計算に使用する周波数に応じたサイズのウィンドウが設定される。
【００２１】
すなわち、図２に示すように、周波数分解に使用される周波数ｆ１，ｆ２，…，ｆｎ（ｆ１＜ｆ２＜…＜ｆｎ）について、それぞれ対応するサイズのウィンドウ１，２，…ｎが設定され、設定された一対のウィンドウの間で位相差情報が算出される。すなわち、周波数ｆ１，ｆ２，…，ｆｎの位相差情報１，２，…，ｎは、対応するサイズのウィンドウ内の画像情報が取得される。そして、これらの位相差情報１，２，…，ｎを総計して、周波数−位相差の情報を取得し、さらに、位相限定相関法（Ｐｈａｓｅ−Ｏｎｌｙ  Ｃｏｒｒｅｌａｔｉｏｎ；以下、「ＰＯＣ法」とも称す。）での評価値であるＰＯＣ値が算出される。最終的に、ＰＯＣ値が参照画像の各注目の別に算出され、ＰＯＣ値が最大となる注目点が探索される。
【００２２】
上述したように、空間周波数が高いほど、ウィンドウ内により多くの波数を抽出できるので、空間周波数が低い場合に比較して空間周波数が高い場合に設定されるウィンドウのサイズは、当該空間周波数が低い場合のサイズと同じか、より小さくなるように設定される。言い換えれば、第１の周波数に対応して第１のサイズのウィンドウを設定させるとともに、第１の周波数より高い第２の周波数に対応して、第１のサイズと同じまたはより小さい第２のサイズのウィンドウが設定される。
【００２３】
なお、ウィンドウを設定する計算コストも考慮すると、図２に示すように、空間周波数が異なればサイズが異なるように設定することもできるが、同一のサイズのウィンドウが複数の空間周波数に対応付けられてもよい。
【００２４】
このように、本実施の形態に従う対応点探索処理においては、周波数分解に用いるウィンドウのサイズを固定するのではなく、周波数分解に使用される周波数に応じた素のウィンドウをそれぞれ設定することで、演算時間を短縮化する。
【００２５】
以下、対応点探索処理のより詳細な内容について説明する。
［Ｂ．システム構成］
まず、本発明の実施の形態に従う対応点探索処理を実現する画像処理装置の実装例について説明する。
【００２６】
《ｂ１：パーソナルコンピューターによる実現例》
図３は、本発明の実施の形態に従う対応点探索処理をパーソナルコンピューターにより実現した場合の構成を示すブロック図である。
【００２７】
図３を参照して、パーソナルコンピューターにより実現される画像処理装置１００は、主として、汎用的なアーキテクチャーを有するコンピューター上に実装される。図３を参照して、画像処理装置１００は、主たるコンポーネントとして、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０４と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０６と、ネットワークインターフェイス（Ｉ／Ｆ）１０８と、補助記憶装置１１０と、表示部１２０と、入力部１２２と、メモリーカードインターフェイス（Ｉ／Ｆ）１２４とを含む。各コンポーネントは、バス１３０を介して、互いに通信可能に接続されている。
【００２８】
ＣＰＵ１０２は、ＲＯＭ１０６や補助記憶装置１１０などに格納された、オペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や画像処理プログラムなどの各種プログラムを実行することで、画像処理装置１００の全体を制御する。ＲＡＭ１０４は、ＣＰＵ１０２でプログラムを実行するためのワーキングメモリとして機能し、プログラムの実行に必要な各種データを一次的に格納する。ＲＯＭ１０６は、画像処理装置１００において起動時に実行される初期プログラム（ブートプログラム）などを格納する。
【００２９】
ネットワークインターフェイス１０８は、各種の通信媒体を介して、他の装置（サーバー装置など）とデータを遣り取りする。より具体的には、ネットワークインターフェイス１０８は、イーサネット（登録商標）などの有線回線（ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）など）、および／または、無線ＬＡＮなどの無線回線を介してデータ通信を行なう。
【００３０】
補助記憶装置１１０は、典型的には、ハードディスクなどの大容量磁気記憶媒体などからなり、本実施の形態に従う各種処理を実現するための画像処理プログラム（対応点探索処理プログラム１１２）および処理対象の処理対象画像１１４などを格納する。さらに、補助記憶装置１１０には、オペレーティングシステムなどのプログラムが格納されてもよい。
【００３１】
処理対象画像１１４は、処理対象の少なくとも２つの画像を含む。但し、画像処理装置１００本体が被写体を撮像する機能を有していなくともよい。この場合、後述するようなデジタルカメラに類似した機構を用いて、少なくとも２つの画像を取得し、それらの画像を任意の方法で画像処理装置１００へ入力するようにしてもよい。より具体的には、上述のネットワークインターフェイス１０８やメモリーカードインターフェイス１２４を介して、画像が画像処理装置１００へ入力される。
【００３２】
表示部１２０は、オペレーティングシステムが提供するＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）画面や対応点探索処理プログラム１１２の実行によって生成される画像などを表示する。好ましくは、表示部１２０は、対応点探索処理プログラム１１２の実行によって得られる対応点探索結果、などから生成される立体視画像を用いて、被写体を立体視表示する。この場合、表示部１２０としては、３次元表示方式に対応した任意の表示デバイスによって構成される。このような３次元表示方式としては、パララックスバリア方式などを採用することができる。このパララックスバリア方式では、液晶表示面にパララックスバリアを設けることで、ユーザーの右眼で右眼用画像を視認させ、ユーザーの左眼で左眼用画像を視認させることができる。あるいは、シャッタメガネ方式を採用してもよい。このシャッタメガネ方式では、左眼用画像および右眼用画像を交互に高速で切り替えて表示するとともに、この画像の切り替えに同期して開閉するシャッターが搭載された専用メガネをユーザーが装着することで、立体視表示を楽しむことができる。
【００３３】
入力部１２２は、典型的には、キーボード、マウス、タッチパネルなどからなり、ユーザーから受付けた指示の内容をＣＰＵ１０２などへ出力する。
【００３４】
メモリーカードインターフェイス１２４は、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カードやＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ（登録商標））カードなどの各種メモリーカード（不揮発性記憶媒体）１２６との間で、データの読み書きを行なう。典型的には、メモリーカードインターフェイス１２４には、何らかの装置で取得した処理対象画像を格納したメモリーカード１２６が装着され、そのメモリーカード１２６から読み出された処理対象画像が補助記憶装置１１０へ格納（コピー）される。
【００３５】
補助記憶装置１１０に格納される対応点探索処理プログラム１１２は、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの記憶媒体に格納されて流通し、あるいは、ネットワークを介してサーバー装置などから配信される。対応点探索処理プログラム１１２は、画像処理装置１００（パーソナルコンピューター）で実行されるオペレーティングシステムの一部として提供されるプログラムモジュールのうち必要なモジュールを、所定のタイミングおよび順序で呼出して処理を実現するようにしてもよい。この場合、対応点探索処理プログラム１１２自体には、オペレーティングシステムによって提供されるモジュールは含まれず、オペレーティングシステムと協働して画像処理が実現される。また、対応点探索処理プログラム１１２は、単体のプログラムではなく、何らかのプログラムの一部に組込まれて提供されてもよい。このような場合にも、対応点探索処理プログラム１１２自体には、当該何らかのプログラムにおいて共通に利用されるようなモジュールは含まれず、当該何らかのプログラムと協働して画像処理が実現される。このような一部のモジュールを含まない対応点探索処理プログラム１１２であっても、本実施の形態に従う画像処理装置１００の趣旨を逸脱するものではない。
【００３６】
さらに、対応点探索処理プログラム１１２によって提供される機能の一部または全部を専用のハードウェアによって実現してもよい。
【００３７】
《ｂ２：デジタルカメラ類似の構成による実現例》
図４は、本発明の実施の形態に従う対応点探索処理をデジタルカメラ類似の構成により実現した場合の構成を示すブロック図である。
【００３８】
図４を参照して、画像処理装置２００は、実際に被写体を撮像することで、少なくとも２つの処理対象画像を取得し、この取得した処理対象画像に対して、対応点探索処理を実行する。画像処理装置２００は、主たるコンポーネントとして、画像処理エンジン２０２と、入力部２０４と、表示部２０６と、一対のレンズ２１２，２２２と、一対のＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）イメージセンサー２１４，２２４とを含む。
【００３９】
画像処理エンジン２０２は、本実施の形態に従う対応点探索処理を含む各種のデジタル処理を実行する。画像処理エンジン２０２は、典型的には、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などからなる。
【００４０】
入力部２０４は、典型的には、各種キーボタン、タッチパネルなどからなり、ユーザーから受付けた指示の内容を画像処理エンジン２０２へ出力する。
【００４１】
表示部２０６は、被写体の撮像などに関するユーザーインターフェイス画面を表示する。好ましくは、表示部２０６は、画像処理エンジン２０２によって得られる対応点探索結果、などから生成される立体視画像を用いて、被写体を立体視表示する。この場合、表示部２０６としては、上述の表示部１２０（図３）と同様に、３次元表示方式に対応した任意の表示デバイスによって構成される。
【００４２】
一対のレンズ２１２，２２２は、画像処理装置２００の本体の異なる位置に設けられており、被写体を異なる視点でそれぞれ撮像することできる。すなわち、一対のレンズ２１２，２２２には、被写体からの互いに異なる反射光がそれぞれ入射する。一対のＣＣＤ２１４，２２４は、一対のレンズ２１２，２２２にそれぞれ対応付けられており、レンズ２１２，２２２によって集光された被写体からの光（像）を受光するとともに、その像を示す電気信号を画像処理エンジン２０２へ出力する。
【００４３】
《ｂ３：その他の構成による実現例》
上述したパーソナルコンピューターにより実現する例、および、デジタルカメラ類似の構成による実現する例に加えて、携帯電話上に実装してもよい。さらに、少なくとも１つのサーバー装置が本実施の形態に従う処理を実現する、いわゆるクラウドサービスのような形態であってもよい。この場合、ユーザーは、自身の端末（パーソナルコンピューターやスマートフォンなど）を用いて、少なくとも２つの処理対象画像をサーバー装置（クラウド側）へ送信し、当該送信された処理対象画像に対して、サーバー装置側が本実施の形態に従う画像処理を行なうような構成が想定される。さらに、サーバー装置側がすべての機能（処理）を行なう必要はなく、ユーザー側の端末とサーバー装置とが協働して、本実施の形態に従う画像処理を実現するようにしてもよい。
【００４４】
［Ｃ．機能構成］
次に、本実施の形態に従う画像処理装置および／または画像処理プログラムの機能構成について説明する。
【００４５】
図５は、本発明の実施の形態に従う画像処理装置の機能構成を示すブロック図である。図６は、図５に示す対応点探索部のより詳細な機能構成を示すブロック図である。
【００４６】
図５を参照して、本実施の形態に従う画像処理装置は、その主たる機能構成として、画像取得部１３と、対応点探索部１４と、周波数演算制御部１５とを含む。これらの機能構成は、図３に示す画像処理装置１００においては、ＣＰＵ１０２が対応点探索処理プログラムを実行することで実現され、図４に示す画像処理装置２００においては、画像処理エンジン２０２によって実現される。
【００４７】
《ｃ１：画像取得部１３》
画像取得部１３は、カメラ１１および１２（カメラＡおよびカメラＢ）がそれぞれ被写体を撮像することで生成される入力画像（ステレオ画像）を取得する。上述したように、一対の画像を取得した場合には、一方の画像を基準画像と称し、他方の画像を参照画像と称する。画像取得部１３は、少なくとも２つの画像を取得するための各種インターフェイスとして実現される。すなわち、カメラ１１および１２から直接的に入力画像を受付けてもよいし、各種の記録媒体やネットワークを介して、入力画像を受付けてもよい。画像取得部１３が取得した複数の入力画像は、対応点探索部１４へ出力される。
【００４８】
《ｃ２：対応点探索部１４》
対応点探索部１４は、入力された２つ以上の入力画像に対して、対応点探索処理を行ない、対応点探索結果を出力する。すなわち、対応点探索部１４は、基準画像上に設定される各注目点（注目画素）についての応点を参照画像上から探索する。
【００４９】
本実施の形態において、対応点探索部１４は、入力画像（基準画像および参照画像）にそれぞれ設定されるウィンドウ（探索ウィンドウ）のパターンに対して周波数分解を行なうことで抽出される位相情報（振幅成分を抑制した信号成分）の類似度に基づいて、画像間の対応関係を演算する。以下の実施の形態においては、このような代表的な手法として、位相限定相関法（Ｐｈａｓｅ−Ｏｎｌｙ  Ｃｏｒｒｅｌａｔｉｏｎ；ＰＯＣ法）を用いた構成について説明する。但し、本発明は、ＰＯＣ法を用いる場合に限られず、少なくとも位相情報を用いる方法であれば任意の方法に適用可能である。例えば、文献１（植村  淳志、伊藤  泉、貴家  仁志、「ＤＣＴ符号相関を用いたサブピクセル精度画像マッチング」、社団法人電子情報通信学会、電子情報通信学会技術研究報告．ＩＥ，画像工学１０７（４８９），７７−８２，２００８−０２−１２）などに記載の方法なども適用可能である。
【００５０】
図６には、位相限定相関法を用いて対応点探索処理を行なう場合の対応点探索部１４の実装例を示す。より具体的には、対応点探索部１４は、基準ウィンドウ設定部１４１と、参照ウィンドウ設定部１４２と、フーリエ変換部１４３，１４４と、位相取出部１４５，１４６と、位相差算出部１４７と、逆フーリエ変換部１４８と、最大値選択部１４９とを含む。
【００５１】
基準ウィンドウ設定部１４１および参照ウィンドウ設定部１４２は、基準画像および参照画像に対して、それぞれウィンドウを設定する。後述するように、基準ウィンドウ設定部１４１および参照ウィンドウ設定部１４２は、周波数演算制御部１５からのサイズ情報に基づいて、設定するウィンドウのサイズを決定する。
【００５２】
例えば、基準画像上のある点Ｋに対応する参照画像上の点Ｓを探索するような対応点探索処理を考える。この場合には、まず、基準ウィンドウ設定部１４１が点Ｋを含むように、基準画像上に基準ウィンドウを設定する。なお、基準ウィンドウ内における点Ｋの相対位置は、任意に決定できるが、ここでは、点Ｋがその重心位置になるように基準ウィンドウを設定するものとする。
【００５３】
参照画像上にも同様にウィンドウを設定するが、参照画像側では対応する点がわかっていないので、参照ウィンドウ設定部１４２は、予め決められた候補点Ｓ’がその重心位置になるように参照ウィンドウを設定する。候補点Ｓ’については、例えば、ステレオ画像間での視差が大きくないようなアプリケーションの場合には、点Ｋと同じ座標を用いればよい。また、ステレオ画像間での視差レンジが広い場合には、後述する多重解像度を用いた粗密戦略などを用いることで、最初の候補点を点Ｋと同じ座標値を用いることが可能になる。
【００５４】
フーリエ変換部１４３は、基準画像上に設定された基準ウィンドウに対して、フーリエ変換を行なうことで画像情報を周波数空間の情報へ変換する。同様に、フーリエ変換部１４３は、参照画像上に設定された参照ウィンドウに対して、フーリエ変換を行なうことで画像情報を周波数空間の情報へ変換する。この変換された周波数空間の情報は、周波数毎の振幅情報および位相情報を含む。すなわち、フーリエ変換部１４３および１４４は、それぞれのウィンドウに含まれる部分画像に対して周波数分解を行なう。
【００５５】
まず、本実施の形態におけるフーリエ変換部１４３および１４４の理解のために、一般的なフーリエ変換について説明する。
【００５６】
例えば、ウィンドウサイズがＮ×Ｍの場合、横方向の周波数の全域は、直流成分と周波数Ｆ１〜Ｆｘ＿ｍａｘ＝（Ｎ−１）／２（但し、Ｎは奇数サイズとする）の交流成分で表され、縦方向の周波数の全域は、直流成分と周波数Ｆ１〜Ｆｙ＿ｍａｘ＝（Ｍ−１）／２（但し、Ｍは奇数サイズとする）で表される。なお、実際には、交流成分は、Ｎ個またはＭ個存在するが、直流成分を中心とした対称的な情報を有するので、有意な情報としては、Ｆｘ＿ｍａｘ×Ｆｙ＿ｍａｘ個しか存在しない。
【００５７】
フーリエ変換の計算結果は、実部および虚部を含む複素数形式で出力される。典型的には、（１）式に従って、フーリエ変換が実行される。
【００５８】
【数１】
0006052186.tif 000002
【００５９】
すなわち、周波数情報は、実部Ｒｅ（ｕ，ｖ）および虚部Ｉｍ（ｕ，ｖ）を含む複素数形式で出力される。また、実部および虚部の値を用いて、振幅情報Ａ（ｕ，ｖ）および位相情報θ（ｕ，ｖ）に変換できる。
【００６０】
振幅情報および位相情報と、実部および虚部を含む複素数表現との関係式は、（２）式のようになる。
【００６１】
【数２】
0006052186.tif 000003
【００６２】
なお、フーリエ変換の結果は、振幅と位相とを組み合わせた形式で保存してもよいし、実部と虚部とを組み合わせた形式で保存してもよい。
【００６３】
以上に説明したフーリエ変換においては、１つのＮ×Ｍのウィンドウサイズのデータを用いて全ての周波数成分を算出することが可能である。しかしながら、本実施の形態においては、周波数に応じて異なるウィンドウサイズのデータを用い、各ウィンドウサイズで算出する周波数成分を限定してフーリエ変換を行う。この点に関しては、周波数演算制御部１５の説明で後述する。
【００６４】
位相取出部１４５および１４６は、それぞれフーリエ変換部１４３および１４４から出力されるフーリエ変換の結果（典型的には、複素数形式）を用いて、基準ウィンドウおよび参照ウィンドウについての位相情報を抽出する。
【００６５】
位相差算出部１４７は、位相取出部１４５および１４６により抽出されたそれぞれのウィンドウについての位相情報の差を算出する。すなわち、位相差算出部１４７は、位相差情報を生成する。
【００６６】
逆フーリエ変換部１４８は、位相差算出部１４７によって算出された位相差情報に対して逆フーリエ変換を行なうことで、それぞれ設定されているウィンドウに含まれる部分画像間の類似度を示すＰＯＣ値を算出する。このＰＯＣ値を算出する処理は、参照ウィンドウ設定部１４２が参照画像上に設定する参照ウィンドウの位置を更新する毎に繰り返し実行される。なお、ＰＯＣ値の算出に係る詳細な手順としては、文献２（“Ａ  Ｓｕｂ−Ｐｉｘｅｌ  Ｃｏｒｒｅｓｐｏｎｄｅｎｃｅ  Ｓｅａｒｃｈ  Ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  Ａｐｐｌｉｃａｔｉｏｎｓ”，  ＩＥＩＣＥ  Ｔｒａｎｓａｃｔｉｏｎｓ．  Ｆｕｎｄａｍｅｎｔａｌｓ，  Ｅ８７−Ａ，  Ｎｏ．  ８，  ｐｐ．  １９１３−−１９２３，  Ａｕｇ．  ２００４）などを参照されたい。
【００６７】
図７は、本発明の実施の形態に従う対応点探索部１４により算出されるＰＯＣ値の一例を示す図である。図７に示すように、参照ウィンドウの設定位置に関連付けられた複数のＰＯＣ値が算出される。
【００６８】
最大値選択部１４９は、図７に示すような参照ウィンドウの設定位置（候補点Ｓ’）に関連付けられたＰＯＣ値のマップから、最大値をとるＰＯＣを選択することで、参照画像上の対応点を決定する。
【００６９】
《ｃ３：周波数演算制御部１５》
本実施の形態においては、フーリエ変換などの周波数演算において、周波数成分毎に計算に使用する情報量を変更する。本実施の形態では、１次元のフーリエ変換を用いるが、２次元のフーリエ変換を用いてもよい。
【００７０】
１次元のフーリエ変換は、（３）式のように表わすことができる。
【００７１】
【数３】
0006052186.tif 000004
【００７２】
ウィンドウサイズがＮ×１の場合、フーリエ変換により周波数成分を算出可能な周波数は、１〜Ｆｍａｘ＝（Ｎ−１）／２となる。一般的なフーリエ変換では、いずれの周波数成分を算出する場合であっても、等しいＮ×１のウィンドウサイズを使用していたが、本実施の形態においては、演算対象の周波数が高くなるにつれて、周波数演算に使用するウィンドウサイズを小さくし、演算対象の周波数に限定してフーリエ変換を行う。
【００７３】
フーリエ変換は、ウィンドウサイズがＮ×１で全ての周波数の周波数成分を得る場合、Ｎ２の演算時間がかかるが、直流成分を中心に点対称な結果が得られるので、実際にはＮ２／２の演算時間となる。一方で、各周波数Ｆ（＝ｕ）について、演算に使用するウィンドウサイズを（Ｎ＋１）−Ｆ（この場合、Ｎはウィンドウサイズの最大値である）とし、演算対象の周波数を限定することで、トータルの演算量は、（４）式のようになる。
【００７４】
Ｆｍａｘ×（２×Ｎ＋１−Ｆｍａｘ）／２＝３（Ｎ２−１）／８    …（４）
つまり、Ｎがある程度大きいと、上述の式（４）の定数項は無視できるので、通常の演算時間Ｎ２／２に対して、全体の演算時間を約７５％に削減できる。
【００７５】
（ｃ３．１：設定例１）
上述の例では、各周波数Ｆについての演算に使用するウィンドウサイズが（Ｎ＋１）−Ｆの場合、すなわちウィンドウサイズが周波数Ｆ毎に異なる場合を説明したが、これ以外の設定方法を採用してもよい。例えば、Ｎ−Ｐ×［Ｆ／Ｐ］（但し、Ｎはウィンドウサイズの最大値、Ｐは２以上の整数であり、［・］はガウス記号を示す）のように周波数Ｆに応じて離散的にウィンドウサイズを設定してもよい。つまり、周波数演算制御部１５は、周波数分解の計算に使用する周波数に応じて、ウィンドウのサイズを離散的に変更させる。
【００７６】
具体的には、例えば、Ｎ＝３３、Ｐ＝２のときの周波数Ｆおよびウィンドウサイズの関係は、以下のようになる。なお、この場合、同じウィンドウサイズの複数の周波数Ｆについては一度のフーリエ変換により周波数成分を演算すればよい。つまり、周波数演算制御部１５は、周波数分解の計算に使用する周波数ごとにウィンドウのサイズを変更させる。
【００７７】
周波数Ｆ＝  １→ウィンドウサイズ３３
周波数Ｆ＝  ２→ウィンドウサイズ３１
周波数Ｆ＝  ３→ウィンドウサイズ３１
周波数Ｆ＝  ４→ウィンドウサイズ２９
周波数Ｆ＝  ５→ウィンドウサイズ２９
周波数Ｆ＝  ６→ウィンドウサイズ２７
周波数Ｆ＝  ７→ウィンドウサイズ２７
周波数Ｆ＝  ８→ウィンドウサイズ２５
周波数Ｆ＝  ９→ウィンドウサイズ２５
周波数Ｆ＝１０→ウィンドウサイズ２３
周波数Ｆ＝１１→ウィンドウサイズ２３
周波数Ｆ＝１２→ウィンドウサイズ２１
周波数Ｆ＝１３→ウィンドウサイズ２１
周波数Ｆ＝１４→ウィンドウサイズ１９
周波数Ｆ＝１５→ウィンドウサイズ１９
周波数Ｆ＝１６→ウィンドウサイズ１７
（ｃ３．２：設定例２）
上述したウィンドウサイズの設定方法は、等間隔にウィンドウサイズを設定する方法であるが、低周波側と高周波側とでウィンドウサイズの設定方法を変更するようにしてもよい。例えば、１≦Ｆ＜Ｑ（Ｑ＜Ｎ／２）の周波数Ｆに対しては、Ｎ−Ｐ１×［Ｆ／Ｐ１］でウィンドウサイズを決定し、Ｑ≦Ｆの周波数Ｆに対しては、Ｎ−Ｐ２×［Ｆ／Ｐ２］（Ｐ１≠Ｐ２）でウィンドウサイズを決定してもよい。具体的には、例えば、Ｎ＝３３、Ｐ１＝２、Ｐ２＝４、Ｑ＝８のときの周波数Ｆおよびウィンドウサイズの関係は、以下のようになる。
【００７８】
周波数Ｆ＝  １→ウィンドウサイズ３３
周波数Ｆ＝  ２→ウィンドウサイズ３１
周波数Ｆ＝  ３→ウィンドウサイズ３１
周波数Ｆ＝  ４→ウィンドウサイズ２９
周波数Ｆ＝  ５→ウィンドウサイズ２９
周波数Ｆ＝  ６→ウィンドウサイズ２７
周波数Ｆ＝  ７→ウィンドウサイズ２７
周波数Ｆ＝  ８→ウィンドウサイズ２５
周波数Ｆ＝  ９→ウィンドウサイズ２５
周波数Ｆ＝１０→ウィンドウサイズ２５
周波数Ｆ＝１１→ウィンドウサイズ２５
周波数Ｆ＝１２→ウィンドウサイズ２１
周波数Ｆ＝１３→ウィンドウサイズ２１
周波数Ｆ＝１４→ウィンドウサイズ２１
周波数Ｆ＝１５→ウィンドウサイズ２１
周波数Ｆ＝１６→ウィンドウサイズ１７
なお、上述の例では、周波数ＦをＱ以上とＱ未満との２つに分割した設定例を示したが、３つ以上に分割してもよい。
【００７９】
［Ｄ．処理手順］
次に、本実施の形態に従う対応点探索方法の全体手順について説明する。
【００８０】
図８は、本発明の実施の形態に従う対応点探索方法の全体手順を示すフローチャートである。図８に示す各ステップは、典型的には、ＣＰＵ１０２（図３）が対応点探索処理プログラム１１２を実行するなどして実現される。
【００８１】
図８を参照して、まず、ＣＰＵ１０２は、ステレオ画像（基準画像および参照画像）を取得する（ステップＳ２）。続いて、ＣＰＵ１０２は、基準画像上に処理対象となる画素（注目画素）を設定する（ステップＳ４）とともに、基準画像上に設定された処理対象となる画素に対応する、参照画像上の画素を探索するための初期位置を設定する（ステップＳ６）。そして、以下に示すような探索処理が実行される。
【００８２】
すなわち、ＣＰＵ１０２は、周波数分解の計算に使用する周波数に応じたウィンドウサイズを決定する（ステップＳ８）。そして、ＣＰＵ１０２は、基準画像上の処理対象の画素がその重心位置になるように、決定したウィンドウサイズをもつ基準ウィンドウを設定するとともに、参照画像上の探索候補の画素がその重心位置になるように、決定したウィンドウサイズをもつ参照ウィンドウを設定する（ステップＳ１０）。
【００８３】
続いて、ＣＰＵ１０２は、ステップＳ１０において設定された、基準画像上の基準ウィンドウおよび参照画像上の参照ウィンドウに含まれる部分画像に対してフーリエ変換を実行する（ステップＳ１２）。このフーリエ変換によって算出される周波数情報は、処理対象の周波数と関連付けて格納される。そして、ＣＰＵ１０２は、周波数分解の計算に使用するすべての周波数についてフーリエ変換が完了したか否かを判断する（ステップＳ１４）。
【００８４】
周波数分解の計算に使用するすべての周波数についてフーリエ変換が完了していない場合（ステップＳ１４においてＮＯの場合）には、ＣＰＵ１０２は、周波数分解の計算に使用する次の周波数を選択し、ステップＳ８以下の処理を繰返し実行する。
【００８５】
これに対して、周波数分解の計算に使用するすべての周波数についてフーリエ変換が完了している場合（ステップＳ１４においてＹＥＳの場合）には、ＣＰＵ１０２は、基準ウィンドウおよび参照ウィンドウから算出されるそれぞれの周波数情報から位相情報のみを抽出し（ステップＳ１６）、両者の位相差を算出する（ステップＳ１８）。すなわち、ステップＳ１６においては、必要なすべての周波数についてのフーリエ変換が完了しているので、周波数毎の振幅および位相が算出されている。ＣＰＵ１０２は、これらの情報を用いて、周波数−位相差の情報を算出する。さらに、ＣＰＵ１０２は、算出した位相差情報を逆フーリエ変換することで、ＰＯＣ値を算出する（ステップＳ２０）。このＰＯＣ値は、参照画像に設定されている探索候補の画素の位置に関連付けて格納される。
【００８６】
続いて、ＣＰＵ１０２は、参照画像に設定可能なすべての探索候補についてＰＯＣ値が算出されたか否かを判断する（ステップＳ２２）。参照画像に設定可能なすべての探索候補のうちＰＯＣ値が算出されていない探索候補がある場合（ステップＳ２２においてＮＯの場合）には、ＣＰＵ１０２は、参照画像上の探索候補となる画素の位置を設定し（ステップＳ２４）、ステップＳ８以下の処理を繰返し実行する。
【００８７】
参照画像に設定可能なすべての探索候補についてＰＯＣ値が算出された場合（ステップＳ２２においてＹＥＳの場合）には、ＣＰＵ１０２は、ＰＯＣ値の分布からピークに対応する位置を決定する（ステップＳ２６）。すなわち、ＣＰＵ１０２は、参照画像に含まれる探索候補のうち、最も高いＰＯＣ値を示す位置を抽出し、当該抽出した位置を基準画像上に設定されている画素（注目画素）の対応点であると決定する。
【００８８】
その後、ＣＰＵ１０２は、基準画像上で対応点探索の対象となるすべての画素について処理が完了しているか否かを判断する（ステップＳ２８）。基準画像上で対応点探索の対象となる画素のうち処理が完了していないものがある場合（ステップＳ２８においてＮＯの場合）には、ＣＰＵ１０２は、基準画像上に処理対象となる別の画素（注目画素）を設定する（ステップＳ３０）とともに、ステップＳ６以下の処理を繰返し実行する。
【００８９】
基準画像上で対応点探索の対象となるすべての画素について処理が完了している場合（ステップＳ２８においてＹＥＳの場合）には、処理は終了する。
【００９０】
［Ｅ．変形例１：２のべき乗に沿ったウィンドウサイズの変更］
コンピューターを用いてフーリエ変換を実行する場合、バタフライ演算を特徴とする高速フーリエ変換（ＦＦＴ：Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ）を用いることで、演算時間をより短縮化できる。
【００９１】
この場合、設定されるウィンドウのサイズは、２のべき乗の条件を満足する必要がある。すなわち、演算速度の観点からは、ウィンドウのサイズは、２のべき乗とすることが好ましい。本変形例では、周波数分解の計算に使用する周波数に応じて、ウィンドウのサイズを２のべき乗に沿って変更させる例について説明する。
【００９２】
例えば、最大のウィンドウのサイズを３２×１６とした場合、横方向の周波数は、直流成分と周波数１〜１５の交流成分とで表され、縦方向の周波数は、直流成分と周波数１〜７の交流成分とで表される。
【００９３】
一般的に、通常のフーリエ変換の演算量がＮ２である場合、高速フーリエ変換（ＦＦＴ）を用いると、演算量がＮ×ｌｏｇ２Ｎとなることが知られている。例えば、ウィンドウのサイズが３２×３２の場合、通常のフーリエ変換では演算量が１０２４になるのに対して、高速フーリエ変換（ＦＦＴ）では演算量が１６０となり、８０％以上の高速化が実現できる。
【００９４】
上記の点を考慮して、上述の実施の形態において、高速フーリエ変換（ＦＦＴ）を用いる場合に、ウィンドウのサイズを無秩序に変更した場合、演算量が増加する可能性がある。
【００９５】
そのため、高速フーリエ変換（ＦＦＴ）を用いる場合には、演算対象の情報（ウィンドウサイズ）を２のべき乗サイズになるようにすることで、演算量を低減することが可能になる。例えば、ウィンドウサイズ８のＦＦＴ演算量は、８×ｌｏｇ２８＝２４である。仮に、周波数１〜４だけを計算する場合には、演算量は半分の１２となる。そして、周波数５〜８については、ウィンドウサイズ４の情報について計算した場合には、演算量は４×ｌｏｇ２４＝８となり、全体としての演算量は１２＋８＝２０となる。すなわち、このケースでは約１７％の演算量の低減効果が得られる。
【００９６】
このような演算量の低減効果を得るための、ウィンドウのサイズの設定例としては、以下のようになる。
【００９７】
周波数Ｆ＝１，２，３，４→ウィンドウサイズ８（２３）
周波数Ｆ＝５，６，７，８→ウィンドウサイズ４（２２）
［Ｆ．変形例２：窓関数の適用］
フーリエ変換は、ウィンドウに含まれる画像の両端における連続性を前提として行なわれるが、現実には、連続性は保たれていない。そのため、フーリエ変換を行なう前の前処理として、窓関数を適用して、画像の連続性を担保するという信号処理を採用することが一般的である。このような窓関数としては、ハミング窓、カイザー窓、ハニング窓といった各種のものが定義されており、任意の窓関数を採用することができる。
【００９８】
例えば、１次元のハニング窓は、（５）式のように定義できる。
【００９９】
【数４】
0006052186.tif 000005
【０１００】
上述の実施の形態においては、低い空間周波数の位相情報の計算に使用するウィンドウのサイズに比較して、高い空間周波数の位相情報の計算に使用するウィンドウはより狭い範囲に設定される。ここで、より狭い範囲の両端における連続性は担保されないので、精度が劣化する可能性がある。
【０１０１】
そこで、空間周波数の別に設定されるウィンドウのサイズに応じた窓関数を都度適用することで、周波数演算の精度を安定化することができる。すなわち、本変形例において、対応点探索部１４は、ウィンドウに含まれる画像に対して窓関数による畳み込み演算を行なう。このとき、窓関数は、対象のウィンドウのサイズに応じて設定される。言い換えれば、周波数演算の前に行なわれる窓関数の畳み込み演算は、設定されたウィンドウのサイズに合わせてそれぞれ実施される。
【０１０２】
なお、ウィンドウのサイズの別に窓関数の畳み込み演算を行なうことで、演算量が増加する可能性があるが、サイズの設定を適切に行なうことで、精度を保ちつつ、演算量を低減できる。例えば、上述の変形例１に記載した例の場合、周波数５〜８についての周波数情報を演算するために用いる情報（ウィンドウサイズ４）に対して、窓関数を新たに適用する必要がある。このときの窓関数の適用に係る演算量は、４／２＝２となる。なお、フーリエ変換は、実部および虚部の両方を演算する必要があるのに対して、窓関数は、実部のみを演算すればよいので、比率的にはサイズの約半分の演算量に相当することになる。このように、窓関数をウィンドウサイズの別に適用した場合であっても、演算量の低減効果を発揮することができる。
【０１０３】
なお、上述の説明では、１次元のフーリエ変換について説明したが、２次元のフーリエ変換に拡張することもできる。例えば、２次元のハニング窓は、（６）式のように定義できる。
【０１０４】
【数５】
0006052186.tif 000006
【０１０５】
窓関数を適用する場合には、（５）式をまとめて１回だけ適用すればよいので、１次元のフーリエ変換の場合よりも、演算量の低減効果を高めることができる。
【０１０６】
［Ｇ．変形例３：多重解像度を用いた粗密戦略］
本発明の実施の形態の変形例３として、多重解像度を用いた粗密戦略を組み合わせて、対応点を探索する処理について説明する。
【０１０７】
上述したように、本実施の形態においては、周波数分解を行なう際、周波数毎に計算に使用するウィンドウサイズを制限することで、演算時間を短縮化する。しかしながら、このように周波数分解に使用するウィンドウのサイズを小さくすることによって、探索できる範囲を狭めてしまう可能性がある。例えば、全ての周波数で計算に使用するウィンドウサイズを制限するということは、ウィンドウを小さくすることと同じであり、対応点の探索可能範囲が制限される可能性がある。
【０１０８】
この探索可能範囲が制限されることは、基準画像上に設定される基準ウィンドウでは生じず、参照画像上に設定される参照ウィンドウでのみ生じる。基準画像側では、求めたい注目点がその重心位置になるように基準ウィンドウが設定されるので、計算で使用するウィンドウサイズを小さくしても求めたい点が必ず内包される。一方で、参照画像側に設定される参照ウィンドウの場合は、求めたい点が参照ウィンドウの重心位置になるとは限らないため、計算に使用するウィンドウサイズを小さくすると求めたい点が内包されない（あるいは、ウィンドウサイズの端の方にかろうじて含まれる状態である）可能性があり、その結果、探索できる範囲を狭めるという結果になる。
【０１０９】
以上のように、本実施の形態においては、探索範囲をカバーするために、低い周波数ではウィンドウのサイズをそのまま用いて（すなわち、全ての情報を用いて）周波数分解を行なう一方で、高い周波数についてのみ計算に使用するウィンドウサイズを制限しているが、高周波がカバーできる探索範囲が実質的に狭くなるため、広い探索範囲が必要である場合には、精度に影響を与える可能性がある。
【０１１０】
そこで、本変形例においては、多重解像度を用いた粗密戦略（多重解像度戦略）と組み合わせることで、対応点探索の精度を維持しつつ、演算時間を短縮化するという高い効果を発揮できる。言い換えれば、多重解像度戦略を利用することで、探索範囲をある程度限定できるため、高い周波数について、計算に使用するウィンドウサイズを制限しても、精度への影響を抑制できる。すなわち、周波数演算制御部１５は、周波数分解の計算に使用する周波数を低周波側と高周波側とに分けたときに、低周波側では細かくウィンドウサイズを変更させ、高周波側では粗くウィンドウサイズを変更させる。
【０１１１】
多重解像度を用いた粗密戦略（多重解像度戦略）は、入力画像（基準画像および参照画像）を複数の解像度を有する画像群に変換し、解像度の異なる画像についての対応点探索の結果を用いて、入力画像（基準画像および参照画像）の間の対応点を決定する。より具体的には、まず、解像度の低い画像間で対応点を探索する。解像度が低いことで、対応点探索処理の演算時間は短くて済むが、探索された位置の精度は相対的に低い（対応する解像度の精度が限界となる）。続いて、より解像度の高い画像間で対応点が探索される。このとき、先に実行された対応点探索処理の結果を利用して、限定された範囲内で探索が行なわれる。そのため、解像度が高くとも、演算時間を短縮できる。以下同様の処理を行なうことで、最も解像度の高い画像において探索された対応点が対応点探索結果として出力される。
【０１１２】
図９は、本発明の実施の形態の変形例２に従う画像処理装置の機能構成を示すブロック図である。図９に示すブロック図の構成要素のうち、図５に示すブロック図と同一の構成要素には同一の符号を付している。すなわち、本変形例に従う画像処理装置は、図５に示す本実施の形態に従う画像処理装置に比較して、多重解像度画像生成部１６と、対応点探索制御部１７と、初期位置設定部１８とをさらに加えたものである。その他の構成要素については、上述したので、詳細な説明は繰り返さない。
【０１１３】
《ｇ１：多重解像度画像生成部１６》
図１０は、本発明の実施の形態の変形例２において生成される解像度の異なる画像群を示す模式図である。図１１は、本発明の実施の形態の変形例２において生成される解像度の異なる画像群の一例を示す図である。
【０１１４】
多重解像度画像生成部１６は、入力されたステレオ画像（基準画像および参照画像）のそれぞれから、図１０および図１１に示すような解像度の異なる複数の画像を生成する。
【０１１５】
入力画像の解像度がＶＧＡ（６４０×４８０）であり、変換倍率を１／２、レイヤー数を４とした場合、多重解像度画像生成部１６は、例えば、基準画像および参照画像のそれぞれについて、「ＶＧＡ（６４０×４８０）」、「ＱＶＧＡ（３２０×２４０）」、「１６０×１２０」、「８０×６０」の画像群を生成される。なお、入力層のＶＧＡをレイヤー０、ＱＶＧＡをレイヤー１、１６０×１２０をレイヤー２、８０×６０をレイヤー３とも記載する。
【０１１６】
このような解像度の異なる画像群の間では、変換倍率に応じて、以下のような関係が正立する。すなわち、レイヤー３における座標（ｘ，ｙ）の画素値は、レイヤー２における座標（２ｘ，２ｙ）、座標（２ｘ＋１，２ｙ）、座標（２ｘ，２ｙ＋１）、座標（２ｘ＋１，２ｙ＋１）からなる２×２の画素の平均値として算出される。
【０１１７】
なお、変換倍率は１／２に限らず、１／３といったより小さい値を採用してもよい。この場合には、必要なレイヤー数が少なくできるので、より高速な処理が必要なときに利用できる。あるいは、変換倍率として、１／１．５といったより大きな値を採用してもよい。こうすることで必要なレイヤー数が増加して、演算負荷は相対的に高くなるが、より細かく探索していくので、ロバスト性を高めることができる。
【０１１８】
また、レイヤー間で変換倍率を同一にする必要はなく、例えば、入力画像に近いところでは、より小さな変換倍率を採用して、低解像度になるにつれて変換倍率を大きくしてよい。このような変換倍率を変化させることで、距離混合が激しい低解像度ではより細かく探索してロバスト性を担保することができ、一方、高解像度ではロバスト性よりも高速化に重きを置くことで、トータルバランスのとれた対応点探索処理が可能になる。
【０１１９】
《ｇ２：対応点探索制御部１７》
対応点探索制御部１７は、次に説明するような手順に従って、入力画像（基準画像および参照画像）の間の対応点探索処理を実行する。ここでは、上述のように、入力画像の解像度がＶＧＡ（６４０×４８０）であり、変換倍率を１／２、レイヤー数を４とした場合について説明する。
【０１２０】
図１２は、本発明の実施の形態の変形例２に従う多重解像度を用いた粗密戦略の処理内用を説明するための図である。
【０１２１】
図１２を参照して、例えば、レイヤー３において、基準画像上の座標（ｘ３，ｙ３）の画素に対応する参照画像上の座標（ｐ３，ｑ３）の画素が対応点探索によって算出されたとする。次に、レイヤー２において、の基準画像上の座標（ｘ２，ｙ２）の画素に対応する参照画像上の画素を求めるとき、レイヤー３における対応点探索の結果が利用される。具体的には、レイヤー３において求めた参照画像上の座標（ｐ，ｑ）の近傍に正解位置があるので、レイヤー２においては、レイヤー３での参照画像上の座標（ｐ，ｑ）をおよそ２倍にした座標の近傍にあると考えられる。そのため、レイヤー２における対応点探索の結果を利用して、次は、レイヤー１における参照画像上での正解位置のおよその位置を求める。このように、低解像度の結果を高解像度の初期位置になるように徐々に正解に近付けていく。このような探索方式は、一般に、多重解像度戦略、あるいは粗密戦略と称される。
【０１２２】
《ｇ３：初期位置設定部１８》
初期位置設定部１８は、上述した多重解像度戦略（粗密戦略）におけるレイヤー変更時の初期位置を設定する。
【０１２３】
図１３は、本発明の実施の形態の変形例２に従う多重解像度を用いた粗密戦略において初期位置を設定する処理を説明するための図である。より具体的には、図１３には、基準画像および参照画像のレイヤー２およびレイヤー３の一部を抜き出した図である。
【０１２４】
例えば、レイヤー３における基準画像上の座標（ｂｘ，ｂｙ）の画素は、レイヤー２におけるにおける基準画像上の座標（ＢＸ，ＢＹ）、座標（ＢＸ＋１，ＢＹ）、座標（ＢＸ，ＢＹ＋１）、座標（ＢＸ＋１，ＢＹ＋１）の２×２の平均値として算出される。レイヤー３において、参照画像上の座標（ｂｘ，ｂｙ）の画素は、参照画像上の座標（ｒｘ，ｒｙ）の画素に対応付けられたとする。初期位置設定部１８は、レイヤー３における対応点探索の結果から、レイヤー２における対応点探索のための初期位置を参照画像側に設定する。この設定方法は、以下のように行なわれる。
【０１２５】
（ＲＸ，ＲＹ）＝（２×ｒｘ，２×ｒｙ）
（ＲＸ＋１，ＲＹ）＝（２×ｒｘ＋１，２×ｒｙ）
（ＲＸ，ＲＹ＋１）＝（２×ｒｘ，２×ｒｙ＋１）
（ＲＸ＋１，ＲＹ＋１）＝（２×ｒｘ＋１，２×ｒｙ＋１）
このように初期位置を設定することで、その設定精度をより正確にできる。なお、演算をより簡略化するために、（ＲＸ，ＲＹ）、（ＲＸ＋１，ＲＹ）、（ＲＸ，ＲＹ＋１）、（ＲＸ＋１，ＲＹ＋１）に対して、一律同じ初期位置（２×ｒｘ，２×ｒｙ）を与えるようにしてもよい。
【０１２６】
《ｇ４：小括》
本変形例によれば、対応点探索における探索範囲が制限されることなく、演算時間を短縮化できる。
【０１２７】
［Ｈ．適用例１］
上述した本実施の形態およびその変形例に従う画像処理装置は、例えば、ステレオ計測に適用できる。より具体的には、ステレオカメラで対象物を撮像し、その撮像によって得られた画像間の対応付けの結果から、対象物の距離などを計測する。
【０１２８】
図１４は、本発明の実施の形態に従う画像処理装置の適用例１を説明するための図である。図１５は、図１４に示すステレオ計測の原理を説明するための図である。
【０１２９】
図１４を参照して、ステレオ計測においては、２台のカメラ（ステレオカメラ）で同時に対象物を撮像する。画像処理装置は、撮像によって得られた２枚の入力画像（基準画像および参照画像）に対して対応点探索処理を行なって、画像間の対応付けを行なう。さらに、画像処理装置は、三角測量の原理に基づいて、対応付け結果から対象物までの距離情報を取得する。
【０１３０】
図１５に示すように、基準画像を生成する基準カメラと参照画像を生成する参照カメラとの対応点位置の差（視差）がΔｄである場合には、対象物までの距離Ｄは、次式で算出される。
【０１３１】
Ｄ＝ｆＢ／Δｄ
但し、Ｂはカメラの基線長であり、ｆはカメラレンズの焦点距離である。
【０１３２】
さらに、対象物の３次元位置（Ｘ，Ｙ，Ｚ）は、次式で算出される。
Ｘ＝ｘ×Ｄ／ｆ
Ｙ＝ｙ×Ｄ／ｆ
Ｚ＝Ｄ
但し、ｘ，ｙは、基準画像上の注目画素の座標である。
【０１３３】
［Ｉ．適用例２］
上述の適用例１においては、時間的に同時に撮像した画像間の対応付けを行なう例を説明したが、異なる時間で撮像された画像間の対応付けを行なってもよい。
【０１３４】
図１６は、本発明の実施の形態に従う画像処理装置の適用例２を説明するための図である。図１６に示すように、１台のカメラが時系列に画像を撮像するとともに、画像処理装置は、時間的に異なる２枚の画像の間で対応点探索処理を実行する。この対応付けの結果を用いて、対象物の時間的な移動の情報（動き情報）を算出し、それを表示する。例えば、図１６に示すように、被写体がどの方向にどのような速度で移動しているかを視覚的に表現する。
【０１３５】
［Ｊ．利点］
本実施の形態によれば、周波数分解を行なう際、周波数毎に計算に使用するウィンドウサイズを制限することで、演算時間の短縮化することができる。すなわち、より高い周波数については、周波数分解に用いる情報を低減することで、全体的な処理量を低減できる。特に、対応点探索処理に用いられる周波数分解は、演算負荷が高いので、本実施の形態に従う方法を採用することで、より効率的に演算負荷を低減できる。
【０１３６】
［Ｋ．別形態］
本発明の実施の形態としては、以下のような態様を含む。
【０１３７】
本発明のある局面に従う対応点探索方法は、概略同等の２以上の画像を取得する画像取得ステップと、画像取得ステップにおいて取得された２以上の画像に対して、それぞれウィンドウを設定するステップと、設定した各ウィンドウに対して周波数分解を行なうことで位相情報を取出すステップと、取出した各位相情報の差を計算することで、画像取得ステップにおいて取得された２以上の画像の第１画像における点に対応する点を第２画像上から決定するステップと、周波数分解を行なう際、周波数毎に計算に使用する予め定められたウィンドウサイズに設定して、各周波数を算出するステップとを含む。
【０１３８】
好ましくは、少なくとも低い周波数に比べて高い周波数で使用するウィンドウサイズが同じか小さくなるように設定される。
【０１３９】
好ましくは、周波数毎に計算に使用するウィンドウサイズは、２のべき乗になるように小さくされる。
【０１４０】
好ましくは、周波数演算の前に行なう窓関数の畳み込み演算は、設定されたウィンドウサイズに合わせてそれぞれ実施される。
【０１４１】
好ましくは、取得したステレオ画像を複数の解像度に変換するステップと、粗密戦略に基づいて、各解像度で位相限定相関法による対応点探索を実行するステップとをさらに含む。
【０１４２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４３】
１１，１２  カメラ、１３  画像取得部、１４  対応点探索部、１５  周波数演算制御部、１６  多重解像度画像生成部、１７  対応点探索制御部、１８  初期位置設定部、１００，２００  画像処理装置、１０２  ＣＰＵ、１０４  ＲＡＭ、１０６  ＲＯＭ、１０８  ネットワークインターフェイス、１１０  補助記憶装置、１１２  対応点探索処理プログラム、１１４  処理対象画像、１２０，２０６  表示部、１２２，２０４  入力部、１２４  メモリーカードインターフェイス、１２６  メモリーカード、１３０  バス、１４１  基準ウィンドウ設定部、１４２  参照ウィンドウ設定部、１４３，１４４  フーリエ変換部、１４５，１４６  位相取出部、１４７  位相差算出部、１４８  逆フーリエ変換部、１４９  最大値選択部、２０２  画像処理エンジン、２１２，２２２  レンズ、２１４，２２４  イメージセンサー。
【図１】
0006052186.tif 000007
【図２】
0006052186.tif 000008
【図３】
0006052186.tif 000009
【図４】
0006052186.tif 000010
【図５】
0006052186.tif 000011
【図６】
0006052186.tif 000012
【図７】
0006052186.tif 000013
【図８】
0006052186.tif 000014
【図９】
0006052186.tif 000015
【図１０】
0006052186.tif 000016
【図１２】
0006052186.tif 000017
【図１３】
0006052186.tif 000018
【図１４】
0006052186.tif 000019
【図１５】
0006052186.tif 000020
【図１６】
0006052186.tif 000021
【図１１】
0006052186.tif 000022