(57)【特許請求の範囲】
【請求項１】
異なる視点からの撮影画像である第１画像と第２画像から選択された第１画像についてブロック分割処理を行うブロック分割部と、
前記ブロック分割部の設定した前記第１画像のブロックと、前記第２画像を構成する画像領域との類似度を計算する類似度計算部と、
前記第１画像の隣接ブロックを構成するブロック各々に対する前記第２画像の対応画像領域候補の尤度を前記対応画像領域候補の位置関係に基づいて算出する尤度算出部であり、
前記第１画像の隣接ブロックを構成するブロックＡＢ各々に対する前記第２画像の対応画像領域候補ａｂの尤度の算出処理に際して、
前記第２画像の対応画像領域候補ａｂが離間している場合には、離間距離が大きくなるに従って低下する尤度として設定し、
前記第２画像の対応画像領域候補ａｂが重なる場合には、重なり幅が大きくなるに従って低下する尤度として設定する尤度算出部と、
前記第１画像のブロックに対する前記第２画像の対応画像領域候補の評価値を前記類似度と前記尤度から算出し、算出した評価値の比較により、前記第１画像のブロックに対応する前記第２画像の画像領域を決定する対応位置決定部と、
を有する画像処理装置。
【請求項２】
前記画像処理装置は、さらに、
前記第１画像と第２画像を縮小して縮小第１画像と縮小第２画像を生成する画像縮小部を有し、
前記ブロック分割部と、前記類似度計算部と、前記尤度算出部と、前記対応位置決定部は、前記画像縮小部において生成した縮小画像に対する処理を実行して前記縮小第１画像のブロックに対する前記縮小第２画像の対応画像領域を決定し、
さらに、前記ブロック分割部と、前記類似度計算部と、前記尤度算出部と、前記対応位置決定部は、縮小前の前記第１画像と第２画像に対する処理を実行して前記第１画像のブロックに対する前記第２画像の対応画像領域の決定処理を実行する処理に際して、前記対応位置決定部は、前記縮小第２画像に対して求められた対応画像領域に対応する縮小前の第２画像対応画像領域のみを前記評価値の算出対象となる対応画像領域候補とする処理を実行する請求項１に記載の画像処理装置。
【請求項３】
前記画像縮小部は、異なる縮小率の縮小画像を生成し、
前記ブロック分割部と、前記類似度計算部と、前記尤度算出部と、前記対応位置決定部は、
先行画像処理として、縮小率の大きい縮小画像に対する処理を実行し、
後続画像処理として、縮小率の小さい縮小画像または縮小されていない画像に対する処理を実行し、
前記後続画像処理では、先行画像処理において求められた縮小率の大きい縮小第２画像の対応画像領域に基づいて、前記評価値の算出対象となる対応画像領域候補とする処理を実行する請求項２に記載の画像処理装置。
【請求項４】
前記縮小画像に対するブロック分割を実行するブロック分割部は、画像縮小率と同一の縮小率で縮小したブロックサイズで縮小画像の分割処理を実行する請求項２または３に記載の画像処理装置。
【請求項５】
前記対応位置決定部は、
前記類似度計算部の算出した類似度Ｆと、
前記尤度算出部の算出した尤度Ｈを適用し、
評価値Ｘを、
Ｘ＝Ｆ＋λＨ
ただしλは、予め設定した係数、
上記式によって算出する請求項１〜４いずれかに記載の画像処理装置。
【請求項６】
前記対応位置決定部は、
前記評価値を、前記第１画像に設定した複数のブロックの集合に対して算出し、算出した評価値を利用して前記第１画像に設定した複数のブロックに対する第２画像における対応画像領域を決定する請求項５に記載の画像処理装置。
【請求項７】
前記対応位置決定部は、
前記評価値の比較による第１画像のブロックに対する前記第２画像の対応画像領域の決定処理を動的計画法を適用して実行する請求項１〜６いずれかに記載の画像処理装置。
【請求項８】
前記請求項１〜７いずれかに記載の画像処理装置を有する撮像装置。
【請求項９】
画像処理装置において実行する画像処理方法であり、
ブロック分割部が、異なる視点からの撮影画像である第１画像と第２画像から選択された第１画像についてブロック分割処理を行うブロック分割ステップと、
類似度計算部が、前記ブロック分割ステップにおいて設定した前記第１画像のブロックと、前記第２画像を構成する画像領域との類似度を計算する類似度計算ステップと、
尤度算出部が、前記第１画像の隣接ブロックを構成するブロック各々に対する前記第２画像の対応画像領域候補の尤度を前記対応画像領域候補の位置関係に基づいて算出する尤度算出ステップであり、
前記第１画像の隣接ブロックを構成するブロックＡＢ各々に対する前記第２画像の対応画像領域候補ａｂの尤度の算出処理に際して、
前記第２画像の対応画像領域候補ａｂが離間している場合には、離間距離が大きくなるに従って低下する尤度を設定し、
前記第２画像の対応画像領域候補ａｂが重なる場合には、重なり幅が大きくなるに従って低下する尤度を設定する尤度算出ステップと、
対応位置決定部が、前記第１画像のブロックに対する前記第２画像の対応画像領域候補の評価値を前記類似度と前記尤度から算出し、算出した評価値の比較により、前記第１画像のブロックに対応する前記第２画像の画像領域を決定する対応位置決定ステップと、
を有する画像処理方法。
【請求項１０】
画像処理装置において画像処理を実行させるプログラムであり、
ブロック分割部に、異なる視点からの撮影画像である第１画像と第２画像から選択された第１画像についてブロック分割処理を行わせるブロック分割ステップと、
類似度計算部に、前記ブロック分割ステップにおいて設定した前記第１画像のブロックと、前記第２画像を構成する画像領域との類似度を計算させる類似度計算ステップと、
尤度算出部に、前記第１画像の隣接ブロックを構成するブロック各々に対する前記第２画像の対応画像領域候補の尤度を前記対応画像領域候補の位置関係に基づいて算出させる尤度算出ステップであり、
前記第１画像の隣接ブロックを構成するブロックＡＢ各々に対する前記第２画像の対応画像領域候補ａｂの尤度の算出処理に際して、
前記第２画像の対応画像領域候補ａｂが離間している場合には、離間距離が大きくなるに従って低下する尤度を設定し、
前記第２画像の対応画像領域候補ａｂが重なる場合には、重なり幅が大きくなるに従って低下する尤度を設定する尤度算出ステップと、
対応位置決定部に、前記第１画像のブロックに対する前記第２画像の対応画像領域候補の評価値を前記類似度と前記尤度から算出させ、算出した評価値の比較により、前記第１画像のブロックに対応する前記第２画像の画像領域を決定させる対応位置決定ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、および画像処理方法、並びにプログラムに関する。特に異なる視点から撮影された複数の画像間の対応点を求める画像処理装置、撮像装置、および画像処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
複数の異なる視点から撮影された画像間の対応点探索により画像中の被写体のカメラからの距離を算出することができる。画像の対応点探索処理を精度よく高速に行う手法について数多くの提案がある。
【０００３】
例えば、高精度に画像間の対応を求める手法を開示した従来技術として特許文献１（特開２００３−０８５５６６号公報）がある。この特許文献１は動的計画法の一種であるビタビアルゴリズムに基づき、水平走査線上の画素列に対して最適な対応を割り当てる手法を開示している。
【０００４】
また、高速に画像間の対応を求める手法を開示した従来技術として特許文献２（特開平０７−１０３７３４号公報）がある。この特許文献２は画像を縮小し階層構造を形成して、解像度の低い階層における対応検出の結果をより解像度の高い階層に伝播し、解像度の高い階層における対応探索処理の低減を図る手法を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−０８５５６６号公報
【特許文献２】特開平０７−１０３７３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のように、いくつかの従来技術において、複数の視点から撮影された画像間の対応点を高精度に、もしくは高速に算出する構成を開示している。しかしながら、例えば上述の特許文献１の処理は、画像を構成する各画素の対応を算出するため、計算処理量が多くなるという問題がある。また、上述の特許文献２の処理は各階層における対応探索に用いるブロックサイズが階層によらず固定されているため、低解像度の階層における対応探索に用いるブロックサイズが画像に対して相対的に大きくなるという問題がある。
【０００７】
本発明は、例えばこのような状況に鑑みてなされたものであり、精度や速度を向上させた対応点対策手法を提案するものである。
例えば、本発明の一実施例では、画像をブロック分割し水平方向のブロック列に関して対応位置から得られる評価値を最適化するとともに、画像を縮小して低解像度の画像における対応検出の結果を取得する。この処理に際してブロックサイズも画像縮小率に応じて縮小する。このような処理により画像間の対応を高速かつ高精度に検出可能とした画像処理装置、撮像装置、および画像処理方法、並びにプログラムを提供する。
【課題を解決するための手段】
【０００８】
本発明の第１の側面は、
異なる視点からの撮影画像である第１画像と第２画像から選択された第１画像についてブロック分割処理を行うブロック分割部と、
前記ブロック分割部の設定した前記第１画像のブロックと、前記第２画像を構成する画像領域との類似度を計算する類似度計算部と、
前記第１画像の隣接ブロックを構成するブロック各々に対する前記第２画像の対応画像領域候補の尤度を前記対応画像領域候補の位置関係に基づいて算出する尤度算出部と、
前記第１画像のブロックに対する前記第２画像の対応画像領域候補の評価値を前記類似度と前記尤度から算出し、算出した評価値の比較により、前記第１画像のブロックに対応する前記第２画像の画像領域を決定する対応位置決定部と、
を有する画像処理装置にある。
【０００９】
さらに、本発明の画像処理装置の一実施態様において、前記画像処理装置は、さらに、前記第１画像と第２画像を縮小して縮小第１画像と縮小第２画像を生成する画像縮小部を有し、前記ブロック分割部と、前記類似度計算部と、前記尤度算出部と、前記対応位置決定部は、前記画像縮小部において生成した縮小画像に対する処理を実行して前記縮小第１画像のブロックに対する前記縮小第２画像の対応画像領域を決定し、さらに、前記ブロック分割部と、前記類似度計算部と、前記尤度算出部と、前記対応位置決定部は、縮小前の前記第１画像と第２画像に対する処理を実行して前記第１画像のブロックに対する前記第２画像の対応画像領域の決定処理を実行する処理に際して、前記対応位置決定部は、前記縮小第２画像に対して求められた対応画像領域に対応する縮小前の第２画像対応画像領域のみを前記評価値の算出対象となる対応画像領域候補とする処理を実行する。
【００１０】
さらに、本発明の画像処理装置の一実施態様において、前記画像縮小部は、異なる縮小率の縮小画像を生成し、前記ブロック分割部と、前記類似度計算部と、前記尤度算出部と、前記対応位置決定部は、先行画像処理として、縮小率の大きい縮小画像に対する処理を実行し、後続画像処理として、縮小率の小さい縮小画像または縮小されていない画像に対する処理を実行し、前記後続画像処理では、先行画像処理において求められた縮小率の大きい縮小第２画像の対応画像領域に基づいて、前記評価値の算出対象となる対応画像領域候補とする処理を実行する。
【００１１】
さらに、本発明の画像処理装置の一実施態様において、前記縮小画像に対するブロック分割を実行するブロック分割部は、画像縮小率と同一の縮小率で縮小したブロックサイズで縮小画像の分割処理を実行する。
【００１２】
さらに、本発明の画像処理装置の一実施態様において、前記尤度算出部は、前記第１画像の隣接ブロックを構成するブロックＡＢ各々に対する前記第２画像の対応画像領域候補ａｂの尤度の算出処理を、前記第２画像の対応画像領域候補ａｂが離間している場合には、離間距離が大きくなるに従って低下する尤度を設定し、前記第２画像の対応画像領域候補ａｂが重なる場合には、重なり幅が大きくなるに従って低下する尤度を設定する。
【００１３】
さらに、本発明の画像処理装置の一実施態様において、前記対応位置決定部は、前記類似度計算部の算出した類似度Ｆと、前記尤度算出部の算出した尤度Ｈを適用し、評価値Ｘを、Ｘ＝Ｆ＋λＨ、ただしλは、予め設定した係数、上記式によって算出する。
【００１４】
さらに、本発明の画像処理装置の一実施態様において、前記対応位置決定部は、前記評価値を、前記第１画像に設定した複数のブロックの集合に対して算出し、算出した評価値を利用して前記第１画像に設定した複数のブロックに対する第２画像における対応画像領域を決定する。
【００１５】
さらに、本発明の画像処理装置の一実施態様において、前記対応位置決定部は、前記評価値の比較による第１画像のブロックに対する前記第２画像の対応画像領域の決定処理を動的計画法を適用して実行する。
【００１６】
さらに、本発明の第２の側面は、前記の画像処理装置を有する撮像装置にある。
【００１７】
さらに、本発明の第３の側面は、
画像処理装置において実行する画像処理方法であり、
ブロック分割部が、異なる視点からの撮影画像である第１画像と第２画像から選択された第１画像についてブロック分割処理を行うブロック分割ステップと、
類似度計算部が、前記ブロック分割ステップにおいて設定した前記第１画像のブロックと、前記第２画像を構成する画像領域との類似度を計算する類似度計算ステップと、
尤度算出部が、前記第１画像の隣接ブロックを構成するブロック各々に対する前記第２画像の対応画像領域候補の尤度を前記対応画像領域候補の位置関係に基づいて算出する尤度算出ステップと、
対応位置決定部が、前記第１画像のブロックに対する前記第２画像の対応画像領域候補の評価値を前記類似度と前記尤度から算出し、算出した評価値の比較により、前記第１画像のブロックに対応する前記第２画像の画像領域を決定する対応位置決定ステップと、
を有する画像処理方法にある
【００１８】
さらに、本発明の第４の側面は、
画像処理装置において画像処理を実行させるプログラムであり、
ブロック分割部に、異なる視点からの撮影画像である第１画像と第２画像から選択された第１画像についてブロック分割処理を行わせるブロック分割ステップと、
類似度計算部に、前記ブロック分割ステップにおいて設定した前記第１画像のブロックと、前記第２画像を構成する画像領域との類似度を計算させる類似度計算ステップと、
尤度算出部に、前記第１画像の隣接ブロックを構成するブロック各々に対する前記第２画像の対応画像領域候補の尤度を前記対応画像領域候補の位置関係に基づいて算出させる尤度算出ステップと、
対応位置決定部に、前記第１画像のブロックに対する前記第２画像の対応画像領域候補の評価値を前記類似度と前記尤度から算出させ、算出した評価値の比較により、前記第１画像のブロックに対応する前記第２画像の画像領域を決定させる対応位置決定ステップと、
を実行させるプログラムにある。
【００１９】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な画像処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、画像処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
【００２０】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００２１】
本発明の一実施例によれば、複数の異なる視点から撮影された複数の画像間の対応点検出を効率的に実行することが可能となる。すなわち、異なる視点からの撮影画像であるＬ画像とＲ画像中のＬ画像についてブロック分割を行い、Ｌ画像のブロックと、Ｒ画像を構成する画像領域との類似度を計算し、Ｌ画像の隣接ブロックを構成するブロック各々に対するＲ画像の対応画像領域候補の尤度を対応画像領域候補の位置関係に基づいて算出する。さらにＬ画像のブロックに対するＲ画像の対応画像領域候補の評価値を類似度と尤度から算出し、算出した評価値の比較により、Ｌ画像のブロックに対応するＲ画像の画像領域を決定する。さらに縮小画像を用いた処理や動的計画法を適用する処理によりさらなる高速化が実現される。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施例に係る画像処理装置の構成例について説明する図である。
【図２】同時に異なる視点からの画像を撮影するカメラの構成例について説明する図である。
【図３】本発明の一実施例に係る画像処理装置の実行するブロック分割処理例について説明する図である。
【図４】本発明の一実施例に係る画像処理装置の実行する対応点探索処理における探索範囲の設定例について説明する図である。
【図５】類似度計算部において実行する類似度算出処理の具体例について説明する図である。
【図６】尤度計算部の実行する尤度算出処理の具体例について説明する図である。
【図７】画像上で横一列に並んだブロックを対象として最適化を行う場合について説明する図である。
【図８】動的計画法を適用したステレオマッチングの処理例について説明する図である。
【図９】動的計画法を適用したステレオマッチングの処理例について説明する図である。
【図１０】動的計画法を適用したステレオマッチングの処理例について説明する図である。
【図１１】動的計画法を適用したステレオマッチングの処理例について説明する図である。
【図１２】動的計画法を適用したステレオマッチングの処理例について説明する図である。
【図１３】動的計画法を適用したステレオマッチングの処理例について説明する図である。
【図１４】動的計画法を適用したステレオマッチングの処理例について説明する図である。
【図１５】動的計画法を適用したステレオマッチングの処理例について説明する図である。
【図１６】動的計画法を適用したステレオマッチングの処理例について説明する図である。
【図１７】本発明の一実施例に係る画像処理装置の構成例について説明する図である。
【図１８】本発明の一実施例に係る画像処理装置の実行する画像縮小処理例について説明する図である。
【図１９】本発明の一実施例に係る撮像装置の構成例について説明する図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照しながら本発明の画像処理装置、撮像装置、および画像処理方法、並びにプログラムの詳細について説明する。説明は、以下の項目に従って行う。
１．画像処理装置の第１実施例について
２．高速処理を実現する画像処理装置の構成例について（第２実施例）
３．撮像装置の実施例について
【００２４】
［１．画像処理装置の第１実施例について］
以下、図面を参照しながら、本発明の画像処理装置の第１実施例について説明する。図１に本発明の第１実施例に係る画像処理装置の構成例を示す。図１に示す画像処理装置１００は、異なる視点から撮影された複数の画像を入力する。以下の実施例では、入力画像をＬ画像２００およびＲ画像３００として説明する。画像処理装置１００は、Ｌ画像２００を構成する画像領域を分割したブロックがＲ画像３００上のいずれの位置に対応するかを判別する。すなわち画像間の対応点を求める処理を行う。
【００２５】
Ｌ画像２００は、例えば平行に配置された２つのカメラの一方から得られる画像であり、Ｒ画像３００は他方のカメラから得られる画像である。図１下部の（カメラと入力画像との対応図）に示すようにＬ画像２００，Ｒ画像３００は、平行に配置された２つのカメラ２０，カメラ３０の撮影する異なる視点からの撮影画像である。
【００２６】
２つのカメラが完全に平行に配置されている場合、あるブロックの垂直方向の対応位置は他方の画像において必ず同一となるので、対応位置の探索は水平方向のみにおこなえばよい。カメラが平行に配置されていない場合には、Ｌ画像２００およびＲ画像３００は画像変形補正処理としてのレクティフィケーション（Ｒｅｃｔｉｆｉｃａｔｉｏｎ）が施された画像とする。レクティフィケーションは、２つの平行に配置されていないカメラから得られる画像を、カメラが平行に配置されている場合に取得されるような画像へと変形する画像補正処理である。レクティフィケーションを施すことで、対応位置の探索方向を水平に限定することが可能となる。
【００２７】
なお、Ｌ画像２００およびＲ画像３００は必ずしも複数のカメラを用いて撮像された画像である必要はなく、例えば、一方の画像を撮影後、カメラを移動させて視点を変更させた後に他方の画像を撮影し、これらの画像をＬ画像２００およびＲ画像３００として利用することも可能である。
【００２８】
また、鏡などを使用することにより、一つのカメラで同時に複数の視点からの画像を取得することも可能であり、このような画像を利用してもよい。一つのカメラで同時に複数の視点からの画像を取得する構成例について図２を参照して説明する。図２に示すカメラ５０は、２つの離間した撮像経路（実線と点線）と、１つの撮像素子５１を有する。
【００２９】
図２の右側の（カメラ内部構成）に示すように、光学系５２の前に鏡５３〜５６を配置することで、単一の撮像素子５１でも複数の視点からの画像を得ることができる。撮像素子５１、光学系５２の前方に鏡５３〜５６を配置することで、実線矢印と点線矢印によって示したような異なる視点からの光を単一の撮像素子５１で取得することが可能になる。
【００３０】
図１に示す構成におけるＬ画像２００およびＲ画像３００は、このように１つのカメラで撮影した画像であってもよく、複数のカメラで撮影した画像であってもよい。また、１つのカメラを移動させて撮影した画像であってもよい。
【００３１】
図１に示す画像処理装置１００の実行する処理の概要について説明する。
ブロック分割部１０１は、Ｌ画像２００をブロックに分割する。画像処理装置１００は、Ｌ画像２００に設定した各ブロックが、Ｒ画像３００のいずれの位置に対応するかを判定する。なお、Ｌ画像２００のある１つのブロックに対するＲ画像３００の対応位置を探索する領域（探索範囲）は、Ｒ画像の全画像範囲としてもよいが、各ブロックに対応した限定領域を予め設定することが可能である。具体的な探索範囲の決定例については後述する。
【００３２】
類似度計算部１０２は、ブロック分割部１０１の設定したＬ画像２００の各ブロックと、Ｒ画像３００に設定される探索範囲に設定可能な全ての対応位置候補（対応ブロック候補）との類似度を個別に全て計算する。
【００３３】
尤度計算部１０３は、Ｌ画像２００の隣接する複数ブロックからなる隣接ブロック集合を設定し、Ｌ画像２００に設定した各隣接ブロック集合を単位として、Ｒ画像３００に設定される対応ブロック集合の尤度を算出する。
例えばＬ画像２００に設定される左右に隣接する２つのブロック（ブロックＬａ／ブロックＬｂ）をブロック集合とし、Ｒ画像３００にはＬ画像のブロックＬａ、ブロックＬｂ各々の対応位置候補（ブロックＲａ／ブロックＲｂ）を設定する。
【００３４】
尤度計算部１０３は、Ｒ画像３００に設定した対応位置候補（ブロックＲａ／ブロックＲｂ）の確からしさとしての尤度を算出する。具体的には、Ｌ画像のブロックＬａ、ブロックＬｂが左右に隣接している場合、Ｒ画像３００の対応位置候補（ブロックＲａ／ブロックＲｂ）が左右に隣接した状態であれば尤度は高くなる。Ｒ画像３００の対応位置候補（ブロックＲａ／ブロックＲｂ）が左右に隣接せず離間している場合や、重なり合っていた場合などには尤度が低くなる。
【００３５】
尤度計算部１０３は、このようにブロック集合を単位とした尤度算出を行う。尤度計算部１０３は、Ｌ画像に設定されるブロック集合に対してＲ画像に設定する対応位置の尤度を、前述の探索領域内に設定可能な全ての対応位置候補の組み合わせについて算出する。
【００３６】
対応位置決定部１０４は尤度計算部１０３から得られる尤度と、類似度計算部１０２から得られる類似度に基づいて計算される評価値が最適値となるような対応位置を、対応位置の候補の中から決定し、各ブロックに割り当てる。
【００３７】
以下、各構成部の実行する処理の詳細について説明する。
画像処理装置１００は、まずブロック分割部１０１においてＬ画像２００をブロックに分割する。分割するブロックサイズは、例えば４画素×４画素または８画素×８画素などの大きさに設定する。
【００３８】
図３は、Ｌ画像２００を４画素×４画素のブロックに分割した処理例を示す図である。図３には、Ｌ画像２００の一部領域について拡大して縦１０個、横１０個の４画素×４画素の１００ブロックを示している。Ｒ画像３００についてもＬ画像２００と同一位置の領域を拡大して示している。
【００３９】
類似度計算部１０２は、ブロック分割部１０１の設定したＬ画像２００の各ブロックと、Ｒ画像３００に設定される探索範囲に設定可能な全ての対応位置候補（対応ブロック候補）との類似度を個別に全て計算する。
【００４０】
なお、前述したように、Ｌ画像のある１つのブロックに対するＲ画像３００の対応位置探索領域（探索範囲）は、Ｒ画像の全範囲としてもよいが、予め限定した領域に設定することが可能である。探索範囲の設定を行うことで、探索処理を短時間で行うことが可能となる。類似度計算部１０２、尤度計算部１０３は、この探索範囲内で処理を実行する。具体的な探索範囲の決定例について説明する。
【００４１】
探索範囲は、例えば想定される被写体の距離に応じて決定することができる。被写体が、Ｌ画像２００とＲ画像３００を撮影する２つのカメラから距離Ｄの位置にいる場合、その際の各カメラから得られる画像上における被写体の対応位置のずれ量ｄは以下の式によって得られる。
ｄ＝（ｆ×Ｂ）／（Ｄ×ｐ）
【００４２】
上記式において、
ｆは２つのカメラの焦点距離、
Ｂは２つのカメラ間の距離、
ｐはカメラに搭載されているＣＭＯＳセンサ等の固体撮像素子の画素ピッチ、
である。
仮にｆ＝１０ｍｍ、Ｂ＝１００ｍｍ、ｐ＝０．０１ｍｍとし、想定するカメラからの被写体の距離が、１ｍ〜無限遠であるとすれば、被写体の距離が１ｍのときのＬ画像２００とＲ画像３００の対応位置のずれ量は上記の式から１０ｍｍとなる。また、無限遠（Ｄ＝∞）の場合は同様に上記の式からずれ量は０となるから、対応位置のずれ量は、ｄ＝０〜１０ｍｍと推定することができる。この結果、例えば、Ｌ画像２００に設定した１つのブロックに対するＲ画像３００の探索領域は、Ｌ画像２００のブロック位置に対応するＲ画像のブロック位置から０〜１０ｍｍずれた領域を持つ範囲として設定することができる。
【００４３】
画像にはカメラからの距離が様々な被写体が写っていると想定され、また撮影画像に含まれる誤差なども考慮して探索範囲を設定する。例えば上記条件で算出したｄ＝０〜１０ｍｍの場合、１０ｍｍよりやや大きい範囲の探索範囲を設定すれば被写体の距離が１ｍ〜無限遠のすべての被写体の対応点を検索できる。このように、撮影条件に基づいて探索範囲を設定することが可能である。なお、探索範囲を設定することなく、Ｌ画像２００に設定した１つのブロックに対して、Ｒ画像３００の全画像を探索範囲として設定してもよい。
【００４４】
なお、前述したように、２つのカメラが完全に平行に配置されている場合、あるブロックの垂直方向の対応位置は他方の画像において必ず同一となるので、対応位置の探索領域をＲ画像３００において水平方向にのみ設定することができる。すなわち、図４に示すように、Ｌ画像２００のあるブロックＬａに対するＲ画像の対応領域の探索範囲は、画像の同一高さ（ＬＹ＝ＲＹ）の位置で水平方向に、上述した処理によって求めた最大ずれ量ｄを探索範囲として設定することができる。以下の実施例では、図４に示すような探索範囲を設定して処理を行なう例について説明する。
【００４５】
類似度計算部１０２は、ブロック分割部１０１の設定したＬ画像２００の各ブロックと、Ｒ画像３００に設定される探索範囲に設定可能な全ての対応位置候補（対応ブロック候補）との類似度を個別に全て計算する。
【００４６】
類似度としては、画素間の差分絶対値の和や画素間の差分の二乗和などを用いることが可能である。例えば、画素間の差分絶対値の和を類似度として用いるとすると、類似度計算部１０２は、以下の式１に示す類似度Ｆを計算する。
【００４７】
【数１】
0005428618.tif 000002
・・・（式１）
【００４８】
上記（式１）において、
Ｆ（ｉ，ｄ）はＬ画像２００を構成するブロックのうち、ｉ番目のブロックと、Ｒ画像３００上でベクトルｄ（図５参照）によって示される位置との類似度である。
Ｂｉはｉ番目のブロックを構成する画素の座標の集合である。
Ｉ（ｐ）はＬ画像２００の座標ｐの画素値を示し、
Ｊ（ｐ＋ｄ）はＲ画像３００における座標ｐ＋ｄの画素値を示す。
【００４９】
式１に示す類似度Ｆは、Ｌ画像２００のブロックとＲ画像３００の対応ブロックの類似度が高いほど小さい値となり、類似度が低いほど大きな値となる。式１に示す類似度Ｆの最小値は０であり、Ｌ画像２００のブロックとＲ画像３００の対応ブロックが一致すれば類似度Ｆは、Ｆ＝０となる。
【００５０】
類似度計算部１０２において実行する類似度算出処理の具体例について、図５を参照して説明する。
図５において、Ｌ画像２００を構成する１つのブロック２０１をｉ番目のブロックとすると、Ｂｉはブロック２０１に含まれる画素の集合であり、Ｉ（ｐ）はそれらブロック２０１に含まれる各画素の画素値である。また、図５のＲ画像３００において点線で示したブロック３０１の領域を、Ｌ画像２００のブロック２０１と同一の画像位置とすると、その位置から距離ｄだけずれたブロック領域３０２内の画素値がＪ（ｐ＋ｄ）によって表わされる。類似度計算部１０２は、各画素間の差分絶対値和を計算し、それをｉ番目のブロックと、距離ｄによって示されるＲ画像３００上の領域（ブロック領域３０２）との類似度とする。
【００５１】
尤度計算部１０３は、Ｌ画像２００において水平方向に隣接する２つのブロックに対するＲ画像３００における対応位置を割り当てた場合、その対応位置の尤もらしさ（確からしさ）を計算する。
具体的には、隣接ブロック間で対応位置が極端に変動することは少ないとの仮定に基づく処理である。
【００５２】
Ｌ画像２００の隣接ブロックのＲ画像３００における各ブロック対応位置が極端に異なる場合には低い尤度を設定する。これは、例えばＬ画像２００の隣接ブロックのＲ画像３００における各ブロック対応位置が隣接せず離間している場合や重なっている場合である。このような場合は低い尤度を設定する。
【００５３】
一方、Ｌ画像２００の隣接ブロックのＲ画像３００における各ブロック対応位置が近い場合には高い尤度を設定する。これは、例えばＬ画像２００の隣接ブロックのＲ画像３００における各ブロック対応位置が隣接している場合である。このような場合は高い尤度を設定する。
【００５４】
尤度計算部１０３の尤度算出処理の具体例について図６を参照して説明する。
例えば、図６に示すように、Ｌ画像２００の隣接する２つのブロック２１１およびブロック２１２に対するＲ画像３００の対応領域がそれぞれブロック３１１およびブロック３１２であったとする。図６に示すようにブロック３１１およびブロック３１２との間には間隔が存在する。このような場合ブロック間隔を［ｓ］とする。
【００５５】
また、図６において、Ｌ画像２００の別の隣接する２つのブロック２１３およびブロック２１４に対するＲ画像３００の対応領域がそれぞれブロック３１３およびブロック３１４であったとする。図６に示すように対応領域であるブロック３１３，３１４には重なりが存在する。このような場合、領域の重なりを［ｒ］とする。尤度計算部１０３は、ｒおよびｓを用いて、以下の計算式に基づいて、これらの対応位置の尤度Ｈ（ｓ，ｒ）を計算する。
【００５６】
Ｇｓｐａｃｅ（ｓ）＝Ｃ｜ｓ｜・・・（式２）
Ｇｏｖｅｒｌａｐ（ｒ）＝Ｄｒ・・・（式３）
Ｈ（ｓ，ｒ）＝Ｇｓｐａｃｅ（ｓ）＋Ｇｏｖｅｒｌａｐ（ｒ）・・・（式４）
【００５７】
式２において、Ｇｓｐａｃｅ（ｓ）は対応位置の間隔ｓに基づく尤度である。
式３においてＧｏｖｅｒｌａｐ（ｒ）は、対応領域の重なり量ｒに基づく尤度である。
最終的な対応位置の尤度は式４に示したＨ（ｓ、ｒ）となる。
【００５８】
式２においてＣは尤度の間隔ｓに基づく変化を制御するパラメータであり任意の値をあらかじめ設定する。また、Ｇｓｐａｃｅ（ｓ）は絶対値に基づく計算を行っているが、Ｇｓｐａｃｅ（ｓ）は、対応位置の間隔ｓの絶対値の増加に対して増加するような関数であればどのようなものであってもよい。例えばｓの二乗なども使用可能である。
【００５９】
式３において、Ｄは対応位置の重なりｒに基づく尤度の変化を制御するパラメータであり任意の値をあらかじめ設定する。また、Ｇｏｖｅｒｌａｐ（ｒ）に関しても、対応位置の重なりｒが大きくなると得られる値が大きくなるような関数であればよい。なお、尤度Ｈはその値が小さいほど尤度が高いとする。
【００６０】
対応位置決定部１０４は、類似度計算部１０２から得られる類似度と、尤度計算部１０３から得られる尤度に基づいて、評価値を計算し、その評価値を最適値とするような対応位置を、Ｌ画像２００を構成する各ブロックに対して割り当てる。
【００６１】
Ｌ画像２００のブロックとＲ画像３００の対応ブロックのずれ量を［ｄ］としたとき（図５参照）、そのずれ量（ｄ）を持つブロック間の評価値Ｘ（ｄ）は例えば以下の式５に従って算出される。
【００６２】
【数２】
0005428618.tif 000003
・・・（式５）
【００６３】
Ｉは最適化の対象となるブロックのインデックスの集合である。
例えば、画像を構成するすべてのブロックを対象として最適化を行うときはＩは画像を構成するすべてのブロックのインデックスの集合となる。
係数λによって、類似度と尤度の評価値に及ぼす影響を調整する。
Ｆは式１に示したｉ番目のブロックの対応位置をｄｉによって示される位置とした場合のブロックｉとＲ画像３００上の当該領域の類似度である。
Ｈは式４に示した尤度であり、ブロックｉおよび隣接するブロックｉ−１間の対応位置の隔たりｓｉ、およびブロックｉとブロックｉ−１の重なりｒｉに基づき算出される。
【００６４】
ｓｉおよびｒｉはブロックｉとブロックｉ−１の対応位置をｄｉ、ｄｉ−１とすると、下式によって算出される。
【数３】
0005428618.tif 000004
【００６５】
ｓｉおよびｒｉは上記式によって得られる。
式７において、Ｎはブロックサイズである。式５におけるｄは各ブロックの対応位置ｄｉからなるベクトルであり、対応位置決定部１０４は評価値Ｘを最小化するような各ブロックの対応位置の組み合わせｄを求め、それを各ブロックのＲ画像３００における対応位置として決定する。
【００６６】
ずれ量（ｄ）を持つブロック間の評価値Ｘ（ｄ）は、前述の式５によって示されるように、類似度Ｆと、尤度Ｈを用いて算出される。
先に式１を参照して説明したように、
類似度Ｆは、ＬＲ画像のブロック間類似度が大きい程、値が小さく（０に近づく）なる。
尤度ＨもＬＲ画像のブロック間の尤度が高いほど、値が小さくなる。
従って、上記式５に示す評価値Ｘ（ｄ）は、ＬＲ画像のブロック間類似度が大きく尤度が高いほど小さい値を持つ。
【００６７】
すなわち、対応位置決定部１０４は、類似度計算部１０２から得られる類似度Ｆと、尤度計算部１０３から得られる尤度Ｈに基づいて、評価値Ｘ（ｄ）を計算し、その評価値Ｘ（ｄ）が最小となる対応位置を、Ｌ画像２００を構成する各ブロックに対して割り当てる。
【００６８】
図７を参照して、画像上で横一列に並んだブロックを対象として最適化を行う場合について説明する。つまり、図７に示すＬ画像２００の横一列のブロック列２２１の各ブロックが、Ｒ画像３００の対応領域の探索範囲３２１の領域内のいずれの位置に対応するかを判定する。
【００６９】
対応位置決定部１０４は、この判定処理において、式５の評価値Ｘ（ｄ）が最小となる位置を対応位置として決定する。これを、Ｌ画像２００を構成する全てのブロック列に対して順次行う。すなわち、Ｌ画像２００を構成する全てのブロック列に対応する最適なＲ画像３００の対応領域（対応ブロック）の位置を決定する。前述の評価値Ｘ（ｄ）がより小さくなるように各ブロックの対応位置決定処理を行う。この処理を最適化処理と呼ぶ。
【００７０】
図７に示すＬ画像２００の横一列のブロック列２２１に関して最適化を行う場合について説明する。ブロック列２２１を構成する各ブロックを表すインデックスｉをｉ＝０，・・・，９とする。
前述した式５で示したＩ、すなわち、最適化の対象となるブロックのインデックスの集合Ｉで表現すると、
Ｉ＝｛０，１，・・・，９｝
となる。
【００７１】
図７下部の（探索範囲における対応ブロックを示すベクトルｄｉの例）に示すように、Ｌ画像２００のブロックｉに対応するＲ画像のブロック位置は、ベクトルｄｉによって示される。ベクトルｄｉは、Ｌ画像２００のブロックＩｉのＲ画像３００の同一位置を起点とし、対応ブロックの位置を終点とするベクトルである。
【００７２】
先に（式１）で示した類似度Ｆ（ｉ、ｄｉ）は、Ｌ画像２００におけるｉ番目のブロックＩｉのＲ画像における対応位置がｄｉというベクトルで定められるとした場合のＬ画像２００上のブロックＩｉとＲ画像３００上の対応領域（対応ブロック）との類似度である。
また、ベクトルｄｉに基づいて、Ｌ画像の隣接ブロックの集合に対応するＲ画像の対応ブロック間の尤度Ｈ（ｓｉ、ｒｉ）が式４および式６、式７によって得られる。
【００７３】
図７に示すＬ画像２００の画像上で横一列に並んだブロックＩ０〜Ｉ９の各々に対応するＲ画像の対応位置を示すベクトルｄ０〜ｄ９の組み合わせを以下の式８のように示す。
ｄ＝［ｄ０，ｄ１，ｄ２，ｄ３，ｄ４，ｄ５，ｄ６，ｄ７，ｄ８，ｄ９］・・・（式８）
【００７４】
このブロックＩ０〜Ｉ９の各々に対応するベクトルｄ０〜ｄ９を用いて、評価値Ｘ（ｄ）を前述の式５に基づいて計算することができる。
対応位置決定部１０４は、算出される評価値Ｘ（ｄ）が最小となるような対応位置の組み合わせｄ＝［ｄ０〜ｄ９］を算出し、得られるｄ０〜ｄ９を０番目のブロックから９番目のブロックのＲ画像３００における対応位置を示す距離情報とする。
【００７５】
すなわち、
Ｌ画像２００のブロックＩ０のＲ画像３００における対応位置は、Ｒ画像３００におけるブロックＩ０位置（Ｌ画像のブロックＩ０と同一の位置）からｄ０ずれた位置にある。
Ｌ画像２００のブロックＩ１のＲ画像３００における対応位置は、Ｒ画像３００におけるブロックＩ１位置（Ｌ画像のブロックＩ１と同一の位置）からｄ１ずれた位置にある。
このように、Ｌ画像２００のブロックＩ０〜Ｉ９のＲ画像３００における対応位置は、Ｒ画像３００におけるブロックＩ０〜Ｉ９位置（Ｌ画像のブロックＩ０〜Ｉ９と同一の位置）からｄ０〜ｄ９ずれた位置にある。
【００７６】
対応位置決定部１０４は、例えば、図７に示すＬ画像２００の画像上で横一列に並んだブロックＩ０〜Ｉ９の各々に対応するＲ画像の対応位置を示すベクトルｄ０〜ｄ９を前述の式５に示す評価値Ｘ（ｄ）がより小さくなるように各ブロックの対応位置決定処理を行う。この処理を最適化処理と呼ぶ。
【００７７】
なお、図７を参照して説明した処理は、Ｌ画像２００の１０個のブロックＩ０〜Ｉ９のＲ画像における対応位置を示すベクトルｄ０〜ｄ９を算出する処理例である。前述したように、画像を構成するすべてのブロックを対象として最適化を行うときはＩは画像を構成するすべてのブロックのインデックスの集合となる。
【００７８】
このように多数のブロックの処理を行う場合は、計算量が膨大となるため、前述した探索範囲を予め設定して、その探索範囲で評価値を算出して、比較して最小値を選択する処理を行うことが好ましい。
【００７９】
例えばブロックＩｉの対応位置を示すベクトルｄｉの候補を、予めｄｉ＝−５〜０と定める。なお、ｄｉ＝−５〜０とは、左に５画素ずれた位置からずれ量０までの範囲を探索範囲としていることに相当する。
【００８０】
図７に示すＬ画像２００のブロックＩ０〜Ｉ９の１０個のブロックについて、このように各ブロックＩｉのずれ量を規定し、ｄ０〜ｄ９に全ての対応位置の候補の組み合わせを割り当て、各々の対応位置の組み合わせに基づき評価値を計算することで、最小の評価値となるような対応位置の組み合わせを得ることができる。
【００８１】
図７に示す例であれば、Ｉ０〜Ｉ９の１０個のブロックの各々について、ブロックのずれ位置ｄｉ＝−５〜０の６つのブロック位置候補があり、対応位置の組み合わせは、
６１０通り存在することになる。
その全てについて、前述の式５に従って評価値Ｘ（ｄ）を計算する。
その結果を比較し、評価値Ｘ（ｄ）が最小となるｄ０〜ｄ９の組み合わせ、すなわち、
ｄ＝［ｄ０，ｄ１，ｄ２，ｄ３，ｄ４，ｄ５，ｄ６，ｄ７，ｄ８，ｄ９］
この組み合わせを、Ｌ画像２００のブロックＩ０〜Ｉ９に対するＲ画像における対応位置を示すベクトルｄ０〜ｄ９として決定する。
【００８２】
ただし、このように探索範囲を限定してｄｉの範囲を規定した場合でも、例えば、図７に示すＩ０〜Ｉ９の１０個のブロックの各々について、ブロックのずれ位置ｄｉ＝−５〜０の６つのブロック位置候補があり、対応位置の組み合わせは、６１０通り存在することになる。
これらを画像２００を構成する全てのブロックについて計算すると、計算量は大きくなる。
【００８３】
さらに計算量を削減するため、既存の最適化手法を適用してもよい。例えば、図７に示すように横一列に並んだブロックＩ０〜Ｉ９の列に対しての最適化を行う場合には、動的計画法を適用することが可能で、計算量を削減したと同時に、逐一評価値を計算した場合と同様に最適な（評価値が最小となる）対応位置の組み合わせを得ることができる。
【００８４】
動的計画法を適用したステレオマッチングの処理例について、図８以下を参照して説明する。
動的計画法は、ある問題を小問題へと分割し、小問題を先に解き、その結果を再利用することで効率的に問題を解く手法である。
動的計画法により最適な評価値を与える対応位置の組み合わせを求める例について、図８〜図１６を用いて説明する。
【００８５】
図８は動的計画法を適用するために用いるコスト行列と呼ばれる行列を示している。図８に示すコスト行列４００の各要素にはＬ画像の各ブロックとＲ画像との間の類似度を格納する。すなわち、コスト行列４００の各要素は類似度に対応する。
【００８６】
図８に示す１つの類似度格納領域４０４に対する類似度格納処理について説明するる。Ｌ画像ブロック列４０２は、例えば図７に示すＬ画像２００のブロック列２２１に対応する。本例ではブロックの大きさは４画素×４画素であるとする。
【００８７】
図８に示すＲ画像帯領域４０３は、図７のＲ画像３００の探索範囲３２１に対応する。図８では９０度回転して示している。コスト行列４００の各列には、Ｌ画像中のブロックとＲ画像中の特定の領域との類似度が格納される。
【００８８】
例えば、図８の類似度格納領域４０４にはＬ画像２００のブロック４２１と、Ｒ画像３００の探索範囲であるＲ画像帯領域４０３中の特定位置の画素領域４３１との類似度を格納する。画素領域４３１は、Ｌ画像のブロック４２１の位置に対応するＲ画像の位置から１画素分ずれた位置のブロック領域である。Ｒ画像帯領域４０３中の点線は１画素の幅を示している。
【００８９】
図９に示すコスト行列４００の類似度格納領域４０５にはＬ画像２００のブロック４２２と、Ｒ画像３００の探索範囲であるＲ画像帯領域４０３中の特定位置の画素領域４３２との類似度を格納する。画素領域４３２は、Ｌ画像のブロック４２２の位置に対応するＲ画像の位置から２画素分ずれた位置のブロック領域である。
【００９０】
コスト行列４００の各要素として設定する類似度は、例えばＬＲ画像の比較ブロックの画素間の差分絶対値和などを用いることができる。この場合、コスト行列４００中に格納される値が小さいほど類似度が高いと考えることができる。
【００９１】
コスト行列４００の各要素には、あらかじめ若しくは必要に応じて逐次計算された類似度が格納されるが、全ての要素を計算する必要はない。例えばブロックの対応位置のずれ量は、前述したように所定の探索範囲内に限定することができる。すなわち、探索範囲内のずれ量ｄのみを考慮すればよい。
【００９２】
探索範囲に相当するずれ量ｄが、０〜９画素であるとすれば、図１０に太線で示した類似度格納領域４４０の要素のみを計算すれば良い。すなわち、ＬＲ画像間において位置ずれとして発生しない領域の類似度は算出不要となる。
【００９３】
ここで、コスト行列４００中の各要素をノードと考える。すると、コスト行列４００中の最も左の列を構成する各ノードから開始して、各列のノードを一度ずつ通過して、最終的にコスト行列中の最も右の列を構成するノードのいずれかに到達する経路は、各ブロックに割り当てる対応位置のずれ量を表している。
【００９４】
例えば、図１１に示す矢印で示した経路４５０がそのような経路の一例である。図１１に示した経路４５０は、Ｌ画像２００を構成する各ブロックＬＡ，ＬＢ，ＬＣ，ＬＤ，ＬＥが、Ｒ画像３００では、左から順に、［１］，［１］，［３］，［５］，［３］画素ずれた位置でＲ画像３００上において対応する場合を示している（最適な対応ではなく、対応付けの一例に過ぎない）。Ｌ画像２００の各ブロックＬＡ〜ＬＥが、この経路に従ってＲ画像上で対応付けられた場合のＲ画像におけるブロック配置が、図１１のブロックＲＡ〜ＲＥである。
【００９５】
このとき、図１１に示した経路４５０に対して、通過したノードに応じたコスト、およびノードとノードをつなぐエッジに応じたコストを総和することによって、その経路に対してある評価値を得ることができる。通過したノードに応じたコストを類似度とし、ノードとノードとを結ぶエッジに応じたコストを尤度とすれば、ある経路に関して得られるコストの総和（総コスト）は、その経路が示す各ブロックに対する対応位置のずれ量に対する、式５に基づく評価値そのものであると考えることができる。
【００９６】
図１１の経路４５０の総コストを、図１２を用いて説明する。前述した尤度の計算式（式２）〜（式４）において、係数Ｃおよび係数Ｄはともに１とする。
すると、ブロックＡのずれ量は１、ブロックＢのずれ量は１であるから（式２）〜（式４）および（式６）、（式７）に基づいて、ブロックＡＢ間を結ぶ矢印（エッジ）によって示される経路４５１に対応する尤度は０となる。
【００９７】
同様に、各ブロック間を結ぶ矢印の経路４５１〜４５４の尤度を算出すると以下の通りとなる。
ブロックＡＢ間を結ぶ矢印の経路４５１に対応する尤度は０、
ブロックＢＣ間を結ぶ矢印の経路４５２に対応する尤度は２、
ブロックＣＤ間を結ぶ矢印の経路４５３に対応する尤度は２、
ブロックＤＥ間を結ぶ矢印の経路４５４に対応する尤度は２、
となる。図１２中の行列内の数値はＬ画像中の各ブロックのずれ量に応じたＲ画像との類似度である。
【００９８】
ブロックＡに対応する類似度は３、
ブロックＢに対応する類似度は５、
ブロックＣに対応する類似度は４、
ブロックＤに対応する類似度は６、
ブロックＥに対応する類似度は５、
となる。よって、図１２の経路に関する総コストは、上記の尤度および類似度を総和した値である２９となる。すなわち、
（０＋２＋２＋２）＋（３＋５＋４＋６＋５）＝２９
このように経路４５１〜４５４によって示される経路の総コストは２９となる。る
【００９９】
前述の（式５）に基づく評価値Ｘ（ｄ）を最適化するような対応位置の割り当てを探索する問題は、つまり、総コストが最小となるような経路の探索問題である考えることができる。考えられるすべての経路に関して、上述の総コストを計算し、総コストが最小となる経路を選択すれば問題を解くことは可能であるが、膨大な計算が必要となる。しかし、動的計画法を適用することで容易にそのような経路を発見することができる。以下、具体的に動的計画法に基づいて経路を探索する手順の一部を示す。
【０１００】
図１３に、必要な類似度を計算し終えた時点のコスト行列４００を示す。このコスト行列４００を用いて、ブロックＡに対応する列からブロックＥに対応する列までの最適経路を探索する。なお、以後、行列の各要素を列方向はブロックに付けられたＡ〜Ｅの文字を、行方向は行列の右側に記したインデックスを用いて表現する。例えばコスト行列４００の最も左下の要素はＡ０、最も右上の要素はＥ１９と称する。
【０１０１】
まず、ブロックＢの列に対応する各ノード（列Ｂのノード）と接続されるべき列Ａのノードの探索を行う。図１３に示すノードＢ４に接続するべき最適なノードは以下のように見つけることができる。
【０１０２】
まず、ノードＢ４とノードＡ０とを接続することを考える、この場合、ノードＡ０の類似度は２であり、ノードＢ４の類似度は６、ノードＡ０とノードＢ４に対応するずれ量はともに０であるから尤度は０となる。
よってノードＡ０からノードＢ４という経路を選択した場合の総コストは、
２＋６＋０＝８
すなわち、８となる。
【０１０３】
同様にノードＡ１からノードＢ４、ノードＡ２からノードＢ４、という経路に対応するコストを順次計算する。このようにしてノードＡ０〜Ａ７とノードＢ４を接続した場合のコストを計算すると、以下の結果が得られる。
ノードＡ０とノードＢ４を接続：コスト＝８
ノードＡ１とノードＢ４を接続：コスト＝１０
ノードＡ２とノードＢ４を接続：コスト＝９
ノードＡ３とノードＢ４を接続：コスト＝１４
ノードＡ４とノードＢ４を接続：コスト＝１４
ノードＡ５とノードＢ４を接続：コスト＝１６
ノードＡ６とノードＢ４を接続：コスト＝１４
ノードＡ７とノードＢ４を接続：コスト＝９
【０１０４】
これらの結果から、コストが８となるノードＡ０と接続するのがノードＢ４に関しては最適ということがわかる。最適な部分経路が分かった時点で、これに対応する総コストをコスト行列４００中に上書きする。
【０１０５】
つまり、図１４に示すようにノードＢ４の値を、前述したノードＡ０からノードＢ４という経路を選択した場合の総コスト、
２＋６＋０＝８
この総コストの値［８］に変更する。また、この際に、ノードＢ４に到達する最適なＡノードを示す０という数値も記憶しておく。これを図１４ではカッコ内に数値を記載することで表現した。まとめると、図１４のノードＢ４に示す８（０）という表記は、ノードＢ４に到達する最適なノードはＡ０であり、その際のＢ４までの総コストは８であることを示している。
【０１０６】
続いて、上記の処理をノードＢ５からノードＢ１１に関して順に繰り返していくと図１５に示すように、コスト行列の各要素が設定される。
【０１０７】
次に列Ｃと列Ｂの間の接続を考える。すでに列Ａから列Ｂ上の各ノードに到達するための最適経路と、その際の総コストは分かっているので、列Ｃの各ノードに関して、先ほど列Ｂの各ノードに対して行った処理と同様の処理を施せば列Ａの各ノードから列Ｃの各ノードに至る最適な経路が得られる。
【０１０８】
以上をすべての列に対して繰り返し実行していくと最終的に図１６に示すようなコスト行列４００が得られる。列Ｅの各ノードの値は、列Ａのいずれかのノードから開始して列Ｅの各ノードに到達する最適な経路をたどった場合の、当該経路の総コストを示している。よって総コストの最小値１３をもつノードＥ１６またはノードＥ１７を選択すればよい。なお、同一の最小値を持つノードが発生した場合の選択方法は任意だが、ここでは一番下のノードＥ１６を選択する。
【０１０９】
ノードＥ１６に繋がる最適な列Ｄ上のノードはノードＥ１６カッコ内に示されているようにノードＤ１２であるから、ノードＤ１２を参照する。ノードＤ１２に繋がる最適な列Ｃ上のノードはノードＤ１２カッコ内に示されているようにノードＣ８であるから、ノードＣ８を参照する。ノードＣ８に繋がる最適な列Ｂ上のノードはノードＣ８のカッコ内に示されているようにノードＢ６であるから、ノードＢ６を参照する。
【０１１０】
ノードＢ６に繋がる最適な列Ａ上のノードはノードＢ６のカッコ内に示されているようにノードＡ２であるから。結局、Ａ２→Ｂ６→Ｃ８→Ｄ１２→Ｅ１６という経路が最小コストを与えると判定できる。各ノードに対応するずれ量を各ブロックに割り当てれば、そのずれ量が評価値を最適化するＬ画像の各ブロックとＲ画像との対応関係となる。すなわち、ブロックＡは２、ブロックＢは２、ブロックＣは０、ブロックＤは０、ブロックＥは０のずれ量を割り当てると評価値が最小となることが分かる。
【０１１１】
図８〜図１６を参照して説明したような動的計画法により最適な評価値を与える対応位置の組み合わせを効率的に求めることが可能となる。すなわち、動的計画法の適用により計算量の削減と同時に、逐一評価値を計算した場合と同様に最適な（評価値が最小となる）対応位置の組み合わせを得ることができる。
【０１１２】
［２．高速処理を実現する画像処理装置の構成例について（第２実施例）］
続いて、本発明の第２実施例として、さらなる処理の高速化を図った画像処理装置構成と処理について説明する。
【０１１３】
図１７に、画像間の対応を高速に検出することを可能とした画像処理装置７００の一構成例を示す。画像処理装置７００は、対応点検出対象とするＬ画像２００とＲ画像３００を入力し、各画像間の対応点を検出する。これは、第１実施例において説明した図１の画像処理装置１００と同様の処理である。画像処理装置７００は、Ｌ画像２００を構成するブロックがＲ画像３００上のいずれの位置に対応するかを判別する。すなわち画像間の対応点を求める処理を行う。
【０１１４】
本実施例における画像処理装置７００は、入力された画像を縮小し、得られた縮小画像に対して前述の第１実施例の画像処理装置１００と同様の対応付けの処理を施す。得られた対応付けの結果に基づいて、縮小前の画像における対応付けを行うことで、対応付けの候補を限定し、処理量を低減することができる。縮小画像に対する対応付けの処理の際には、画像の縮小率と同様の縮小率に基づいて、対応付けに用いるブロックサイズをも縮小する。よって画像を構成するブロック数は変わらない。
【０１１５】
以下、具体的な処理例について図１８に示す例を参照しながら、図１７の画像処理装置７００の動作について説明する。
【０１１６】
図１８には、
（ａ）入力画像
（ｂ）第１縮小画像
（ｃ）第２縮小画像
これらの画像データを示している。
【０１１７】
図１８（ａ）に示す入力画像は、図１７に示す画像処理装置７００に入力されるＬ画像２００とＲ画像３００である。この入力画像は先に第１実施例において図１を参照して説明したと同様のＬ画像２００とＲ画像３００である。
【０１１８】
画像処理装置７００は、Ｌ画像２００を４画素×４画素のブロックに分割し画像間の対応を検出する。画像処理装置７００に入力されたＬ画像２００とＲ画像３００は、まず画像縮小部７０１および画像縮小部７０２に入力され、１／２に縮小される。この縮小処理によって、図１８（２）に示す第１縮小画像データが生成される。１／２縮小Ｌ画像８２１と１／２縮小Ｒ画像８２２である。
なお、ここでは、縮小率１／２として説明するが、縮小率は任意の値に設定してよい。
【０１１９】
画像縮小部７０１および画像縮小部７０２において縮小されたＬＲ画像は、さらに画像縮小部７０３および画像縮小部７０４によって、さらに１／２に縮小される。この縮小処理によって、図１８（３）に示す第２縮小画像データが生成される。１／４縮小Ｌ画像８５１と、１／４縮小Ｒ画像８５２である。
【０１２０】
図１８（３）に示す第２縮小画像データは、図１８（１）の入力画像データに対して１／４の大きさとなる。
【０１２１】
１／４縮小Ｌ画像８５１と、１／４縮小Ｒ画像８５２は、図１７の画像処理装置７０の画像処理部ｃ７３０に入力される。
【０１２２】
画像処理部ｃ７３０は既に説明した画像処理装置１００と同一の処理を行う。但し、ブロック分割部７３１は画像をブロックに分割する際に画像と同じ縮小率で縮小されたブロックサイズを使用してブロックに分割する。つまり、図１８（３）に示すように１／４縮小Ｌ画像８５１は１画素×１画素のブロックに分割する。
【０１２３】
類似度計算部７３２は、ブロック分割部７３１の設定した１／４縮小Ｌ画像８５１の１画素×１画素の各ブロックと、１／４縮小Ｒ画像８５２に設定される探索範囲に設定可能な全ての対応位置候補（対応ブロック候補）との類似度を個別に全て計算する。
【０１２４】
尤度計算部７３３は、１／４縮小Ｌ画像８５１の隣接する複数ブロックからなる隣接ブロック集合を設定し、１／４縮小Ｌ画像８５１に設定した各隣接ブロック集合を単位として、１／４縮小Ｒ画像８５２に設定される対応ブロック集合の尤度を算出する。
【０１２５】
対応位置決定部７３４は尤度計算部７３３から得られる尤度と、類似度計算部７３２から得られる類似度に基づいて計算される評価値が最適値となるような対応位置を、対応位置の候補の中から決定し、各ブロックに割り当てる。
【０１２６】
これら、類似度計算部７３２、尤度計算部７３３、対応位置決定部７３４の処理は、すべて第１実施例において説明した画像処理装置１００の類似度計算部１０２、尤度計算部１０３、対応位置決定部１０４の処理と同様の処理である。ただし、処理対象とするブロックサイズが異なっている。１画素×１画素のブロックを処理対象として処理を行う。
【０１２７】
次に、画像処理部ｂ７２０において、図１８（２）に示す１／２縮小Ｌ画像８２１と、１／２縮小Ｒ画像８２２に対する対応点探索処理が行われる。画像処理部ｂ７２０のブロック分割部７２１は画像をブロックに分割する際に画像と同じ縮小率で縮小されたブロックサイズを使用してブロックに分割する。つまり、図１８（２）に示すように１／２縮小Ｌ画像８２１は２画素×２画素のブロックに分割する。
【０１２８】
類似度計算部７２２、尤度計算部７３３の処理は、すべて第１実施例において説明した画像処理装置１００の類似度計算部１０２、尤度計算部１０３の処理と同様の処理である。ただし、処理対象とするブロックサイズが異なっている。２画素×２画素のブロックを処理対象として処理を行う。
【０１２９】
対応位置決定部７２４は、より縮小された画像、すなわち、図１８（３）に示す１／４縮小Ｌ画像８５１と、１／４縮小Ｒ画像８５２を適用して対応点探索処理を実行して得られた対応位置情報を画像処理部ｃ７３０から入力する。対応位置決定部７２４は、この入力情報を利用して対応位置候補を決定し、決定した対応位置候補のみに対して評価値を算出する処理を行う。
【０１３０】
対応位置決定部７２４の処理について説明する。対応位置決定部７２４は、画像処理部ｃ７３０の対応位置決定部７３４から１／４縮小画像の１画素×１画素のブロック単位の対応位置情報を入力可能な構成となっており、対応位置決定部７２４は、以下の式９により、対応位置候補を決定する。
【０１３１】
【数４】
0005428618.tif 000005
・・・（式９）
【０１３２】
上記の式９において、
Ｄｉ'は対応位置決定部７２４におけるｉ番目のブロックＩｉの対応位置を決定する際の対応位置の候補の集合である。
ｄｉ"は画像処理部ｃ７３０の対応位置決定部７３４によって定められたｉ番目のブロックＩｉの対応位置である。
【０１３３】
式９から明らかなように、画像処理部ｂ７２０の対応位置決定部７２４における対応位置の候補は３種類と非常に少なくなっている。すなわち、対応ブロックのずれ量ｄの候補は、２ｄｉ"を中心として１画素ずつ左右にずらした３つのずれ量、
２ｄｉ"
２ｄｉ"−１
２ｄｉ"＋１
これらの値となる。なお、このずれ量ｄは１／２縮小画像におけるずれ量である。
【０１３４】
対応位置決定部７２４は、各ブロックに対してこの３つのずれ量ｄを候補として、先に説明した評価値Ｘ（ｄ）の算出を実行する。この結果、計算量は大幅に削減される。なお、対応位置の候補については必ずしも式９に依らなくともよく、より縮小された画像に対して得られた結果に基づいたものであれば構わない。
【０１３５】
続いて図１７に示す画像処理部ａ７１０が処理を行う。画像処理部ａ７１０は、図１８（１）に示すＬ画像２００と、Ｒ画像３００に対する対応点探索処理を実行する。画像処理部ａ７１０のブロック分割部７１１は画像を４画素×４画素のブロックに分割する。
【０１３６】
類似度計算部７１２、尤度計算部７１３の処理は、すべて第１実施例において説明した画像処理装置１００の類似度計算部１０２、尤度計算部１０３の処理と同様の処理である。
【０１３７】
対応位置決定部７１４は、縮小画像を適用して対応点探索処理を実行して得られた対応位置情報を画像処理部ｂ７２０から入力する。対応位置決定部７１４は、この入力情報を利用して対応位置候補を決定し、決定した対応位置候補のみに対して評価値を算出する処理を行う。
【０１３８】
対応位置決定部７１４の処理について説明する。対応位置決定部７１４は、画像処理部ｂ７２０の対応位置決定部７２４から対応位置情報を入力可能な構成となっており、対応位置決定部７１４は、以下の式１０により、対応位置候補を決定する。
【０１３９】
【数５】
0005428618.tif 000006
・・・（式１０）
【０１４０】
上記の式１０において、
Ｄｉは対応位置決定部７１４におけるｉ番目のブロックの対応位置を決定する際の、対応位置の候補の集合である。
ｄｉ’は画像処理部ｂ７２０の対応位置決定部７２４によって定められたｉ番目のブロックの対応位置である。
【０１４１】
式１０から明らかなように、画像処理部ａ７１０の対応位置決定部７１４における対応位置の候補は３種類と非常に少なくなっている。対応ブロックのずれ量ｄの候補は、２ｄｉ'を中心として１画素ずつ左右にずらした３つのずれ量、
２ｄｉ'
２ｄｉ'−１
２ｄｉ'＋１
これらの値となる。なお、このずれ量ｄは縮小されていない画像におけるずれ量である。
【０１４２】
対応位置決定部７１４は、各ブロックに対してこの３つのずれ量ｄを候補として、先に説明した評価値Ｘ（ｄ）の算出を実行する。この結果、計算量は大幅に削減される。なお、対応位置の候補については必ずしも式１０に依らなくともよく、より縮小された画像に対して得られた結果に基づいたものであれば構わない。
【０１４３】
以上のようにして、図１７に示す画像処理装置７００は縮小画像を階層的に生成し、縮小画像に対して得られた対応位置情報を利用して、より大きな画像における対応位置候補を決定して、決定した対応位置候補のみを評価値算出対象として処理を行う。この処理により、計算量を大幅に削減して対応点を算出することが可能となり、高速な対応点探索を実現することができる。
【０１４４】
［３．撮像装置の実施例について］
これまで、画像処理装置の実施例について第１実施例（図１）、第２実施例（図１７）を説明してきたが、これら各実施例の画像処理装置に撮像部を備えた撮像装置を構成することが可能である。例えば、図１９に示すように、撮像装置８００は、撮像部ａ８０１、撮像部ｂ８０２、画像処理部８１０を有する。
【０１４５】
撮像部ａ８０１はＬ画像２００を撮影し、撮像部ｂ８０２はＲ画像３００を撮影する。これらの画像は画像処理部８１０に入力される。画像処理部８１０は、図１を参照して説明した画像処理装置１００と同様、ブロック分割部８１１、類似度計算部８１２、尤度計算部８１３、対応位置決定部８１４を有し、前述の第１実施例と同様の処理を行う。
【０１４６】
この図１９に示す撮像装置の撮像部は、例えば図２を参照して説明した構成とすることが可能であり、１つの撮像装置で、２つの異なる視点からのＬ画像２００、Ｒ画像３００を撮影する構成とすることが可能である。
【０１４７】
また、図１９に示す画像処理部８１０は図１７を参照して説明した画像処理装置７００に置き換えた構成としてもよい。すなわち縮小画像を生成して縮小画像に対する処理結果から対応位置候補を決定して階層的な処理を実行する構成としてもよい。
【０１４８】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０１４９】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１５０】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１５１】
以上、説明したように、本発明の一実施例の構成によれば、複数の異なる視点から撮影された複数の画像間の対応点検出を効率的に実行することが可能となる。すなわち、異なる視点からの撮影画像であるＬ画像とＲ画像中のＬ画像についてブロック分割を行い、Ｌ画像のブロックと、Ｒ画像を構成する画像領域との類似度を計算し、Ｌ画像の隣接ブロックを構成するブロック各々に対するＲ画像の対応画像領域候補の尤度を対応画像領域候補の位置関係に基づいて算出する。さらにＬ画像のブロックに対するＲ画像の対応画像領域候補の評価値を類似度と尤度から算出し、算出した評価値の比較により、Ｌ画像のブロックに対応するＲ画像の画像領域を決定する。さらに縮小画像を用いた処理や動的計画法を適用する処理によりさらなる高速化が実現される。
【符号の説明】
【０１５２】
２０，３０  カメラ
５１  撮像素子
５２  光学系
５３〜５６  鏡
１００  画像処理装置
１０１  ブロック分割部
１０２  類似度計算部
１０３  尤度計算部
１０４  対応位置決定部
２００  Ｌ画像
３００  Ｒ画像
４００  コスト行列
７００  画像処理装置
７０１〜７０４  画像縮小部
７１０，７２０，７３０  画像処理部
７１１，７２１，７３１  ブロック分割部
７１２，７２２，７３２  類似度計算部
７１３，７２３，７３３  尤度計算部
７１４，７２４，７３４  対応位置決定部
８００  撮像装置
８０１，８０２  撮像部
８１０  画像処理部
８１１  ブロック分割部
８１２  類似度計算部
８１３  尤度計算部
８１４  対応位置決定部
【図１】
0005428618.tif 000007
【図２】
0005428618.tif 000008
【図３】
0005428618.tif 000009
【図４】
0005428618.tif 000010
【図５】
0005428618.tif 000011
【図６】
0005428618.tif 000012
【図７】
0005428618.tif 000013
【図８】
0005428618.tif 000014
【図９】
0005428618.tif 000015
【図１０】
0005428618.tif 000016
【図１１】
0005428618.tif 000017
【図１２】
0005428618.tif 000018
【図１３】
0005428618.tif 000019
【図１４】
0005428618.tif 000020
【図１５】
0005428618.tif 000021
【図１６】
0005428618.tif 000022
【図１７】
0005428618.tif 000023
【図１８】
0005428618.tif 000024
【図１９】
0005428618.tif 000025