(57)【特許請求の範囲】
【請求項１】
撮影対象を異なる方向から撮影して得られた複数の画像について、前記複数の画像間における画素の対応付けを行なうことにより視差を算出するためのステレオマッチング部と、
前記ステレオマッチング部によって算出された前記視差に基づいて、前記画像における各画素の位置を３次元座標系における３次元座標に変換するための３次元座標計算部と、
前記３次元座標計算部によって変換された前記各画素の前記３次元座標に基づいて、前記ステレオマッチング部によって行われた前記対応付けの誤りを検出するための誤対応検出部とを備え、
前記誤対応検出部は、前記画像における前記各画素の並び順、および前記各画素の前記３次元座標の並び順に基づいて前記対応付けの誤りを検出し、
前記誤対応検出部は、前記画像における基準位置からの同一直線上の複数の画素について、前記基準位置から前記複数の画素までの距離と、前記３次元座標系において前記基準位置に対応する３次元基準位置から、前記３次元座標系において前記複数の画素に対応する複数の３次元画素までの距離とに基づいて、前記対応付けの誤りを検出する、画像処理装置。
【請求項２】
前記誤対応検出部は、前記画像における基準位置からの同一直線上の複数の画素について、前記基準位置から前記複数の画素までの距離の大小関係と、前記３次元基準位置から前記複数の３次元画素までの距離の大小関係とが異なる場合に、前記画像における前記複数の画素の対応付けが誤りであると判定する、請求項１に記載の画像処理装置。
【請求項３】
前記誤対応検出部は、前記対応付けの誤りを検出した回数を画素ごとに記憶し、前記回数が所定値未満である画素は、前記ステレオマッチング部によって誤って対応付けられた画素であると判断せず、前記回数が前記所定値以上となる画素を、前記ステレオマッチング部によって誤って対応付けられた画素であると判断する、請求項１または２に記載の画像処理装置。
【請求項４】
前記誤対応検出部は、前記複数の画像のうち、少なくともいずれか１つの画像において前記ステレオマッチング部によって行われた前記対応付けの誤りを検出した場合には、前記対応付けの誤りが検出された画素、および他の前記画像における対応の画素を、前記ステレオマッチング部によって誤って対応付けられた画素であると判断する、請求項１から３のいずれかに記載の画像処理装置。
【請求項５】
撮影対象を異なる方向から撮影して得られた複数の画像について、前記複数の画像間における画素の対応付けを行なうことにより視差を算出するステップと、
算出した前記視差に基づいて、前記画像における各画素の位置を３次元座標系における３次元座標に変換するステップと、
変換した前記各画素の前記３次元座標に基づいて、前記対応付けの誤りを検出するステップとを含み、
前記対応付けの誤りを検出するステップにおいては、前記画像における前記各画素の並び順、および前記各画素の前記３次元座標の並び順に基づいて前記対応付けの誤りを検出し、
前記対応付けの誤りを検出するステップにおいては、前記画像における基準位置からの同一直線上の複数の画素について、前記基準位置から前記複数の画素までの距離と、前記３次元座標系において前記基準位置に対応する３次元基準位置から、前記３次元座標系において前記複数の画素に対応する複数の３次元画素までの距離とに基づいて、前記対応付けの誤りを検出する、画像処理方法。
【請求項６】
コンピュータに、
撮影対象を異なる方向から撮影して得られた複数の画像について、前記複数の画像間における画素の対応付けを行なうことにより視差を算出するステップと、
算出した前記視差に基づいて、前記画像における各画素の位置を３次元座標系における３次元座標に変換するステップと、
変換した前記各画素の前記３次元座標に基づいて、前記対応付けの誤りを検出するステップとを実行させるためのプログラムであり、
前記対応付けの誤りを検出するステップにおいては、前記画像における前記各画素の並び順、および前記各画素の前記３次元座標の並び順に基づいて前記対応付けの誤りを検出し、
前記対応付けの誤りを検出するステップにおいては、前記画像における基準位置からの同一直線上の複数の画素について、前記基準位置から前記複数の画素までの距離と、前記３次元座標系において前記基準位置に対応する３次元基準位置から、前記３次元座標系において前記複数の画素に対応する複数の３次元画素までの距離とに基づいて、前記対応付けの誤りを検出する、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関し、特に、ステレオマッチングを行なう画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
従来、人工衛星および航空機等から撮影された複数の画像を基に、ステレオマッチングによって３次元モデルを自動生成する方法が広く行われている。
【０００３】
ここで、ステレオマッチング処理とは、異なる視点から撮影した２枚の画像、いわゆるステレオ画像について、同一の点を撮像している各画像中の対応点を検出し、各画像間の視差を求め、三角測量の原理によって対象までの奥行きおよび対象の形状を求める処理である。
【０００４】
ステレオマッチングについては、既に様々な手法が提案されているが、ステレオマッチングにおいて誤って対応付けがなされた場合には、奥行きおよび形状に誤差が生じ、精度の高い３次元モデルが得られない、という課題がある。
【０００５】
このような課題を解決するために、ステレオマッチングにおいて誤って対応付けされた箇所を検出する方法が提案されている。たとえば、特表第２００４−０３８６６１号公報（特許文献１）には、以下のような画像処理方法が開示されている。すなわち、基準画像と参照画像とを用いたステレオマッチングによって対象物の形状を復元するにあたり、基準画像および参照画像に対して、それぞれ所定の相関関係に基づいて対応付けされた複数のウィンドウを設定する。このとき、参照画像に設定されたウィンドウの並び順を基準画像における複数のウィンドウの並び順と一致させるように、参照画像における複数のウィンドウの並び順を修正する。
【０００６】
すなわち、ステレオマッチングによって対応付けされて設定されたウィンドウに対して、参照画像に設定されたウィンドウの並び順と基準画像における複数のウィンドウの並び順とが一致していないウィンドウを、誤対応の箇所として検出する。そして、並び順が一致するように、参照画像における複数のウィンドウの並び順を修正する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表第２００４−０３８６６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の技術等、従来の画像処理装置では、たとえば航空写真で撮影された高い建物を撮影した際に見られるように、基準画像および参照画像において見え方に大きな違いがある場合には、誤り箇所を正しく検出することができない。以下、この理由について図面を用いて説明する。
【０００９】
図８は、航空写真で撮影された高い建物の、撮影位置による見え方の違いを示す図である。
【００１０】
図８を参照して、たとえば航空写真で撮影された高い建物では、左右画像すなわち基準画像および参照画像において当該建物の倒れこみ方が大きく異なる。このため、背景である地面と前景である建物との画像上の並び順が左右画像で入れ替わってしまう。
【００１１】
図９は、航空写真で撮影された高い建物の左右画像を、従来の画像処理装置で処理した場合の結果の一例を示す図である。
【００１２】
図９を参照して、左右画像の対応付けが正しく行われた場合、基準画像の各ウィンドウの並び順と参照画像の各ウィンドウの並び順とが異なる結果となる。このため、従来の画像処理装置では、誤り箇所を正しく検出することができない。
【００１３】
この発明は、上述の課題を解決するためになされたもので、その目的は、種々の撮影対象について、ステレオマッチングにおける誤対応をより正確に検出することが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することである。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、この発明のある局面に係わる画像処理装置は、撮影対象を異なる方向から撮影して得られた複数の画像について、上記複数の画像間における画素の対応付けを行なうことにより視差を算出するためのステレオマッチング部と、上記ステレオマッチング部によって算出された上記視差に基づいて、上記画像における各画素の位置を３次元座標系における３次元座標に変換するための３次元座標計算部と、上記３次元座標計算部によって変換された上記各画素の上記３次元座標に基づいて、上記ステレオマッチング部によって行われた上記対応付けの誤りを検出するための誤対応検出部とを備え、上記誤対応検出部は、上記画像における上記各画素の並び順、および上記各画素の上記３次元座標の並び順に基づいて上記対応付けの誤りを検出し、上記誤対応検出部は、上記画像における基準位置からの同一直線上の複数の画素について、上記基準位置から上記複数の画素までの距離と、上記３次元座標系において上記基準位置に対応する３次元基準位置から、上記３次元座標系において上記複数の画素に対応する複数の３次元画素までの距離とに基づいて、上記対応付けの誤りを検出する。
【００１５】
上記課題を解決するために、この発明のある局面に係わる画像処理方法は、撮影対象を異なる方向から撮影して得られた複数の画像について、上記複数の画像間における画素の対応付けを行なうことにより視差を算出するステップと、算出した上記視差に基づいて、上記画像における各画素の位置を３次元座標系における３次元座標に変換するステップと、変換した上記各画素の上記３次元座標に基づいて、上記対応付けの誤りを検出するステップとを含み、上記対応付けの誤りを検出するステップにおいては、上記画像における上記各画素の並び順、および上記各画素の上記３次元座標の並び順に基づいて上記対応付けの誤りを検出し、上記対応付けの誤りを検出するステップにおいては、上記画像における基準位置からの同一直線上の複数の画素について、上記基準位置から上記複数の画素までの距離と、上記３次元座標系において上記基準位置に対応する３次元基準位置から、上記３次元座標系において上記複数の画素に対応する複数の３次元画素までの距離とに基づいて、上記対応付けの誤りを検出する。
【００１６】
上記課題を解決するために、この発明のある局面に係わる画像処理プログラムは、コンピュータに、撮影対象を異なる方向から撮影して得られた複数の画像について、上記複数の画像間における画素の対応付けを行なうことにより視差を算出するステップと、算出した上記視差に基づいて、上記画像における各画素の位置を３次元座標系における３次元座標に変換するステップと、変換した上記各画素の上記３次元座標に基づいて、上記対応付けの誤りを検出するステップとを実行させるためのプログラムであり、上記対応付けの誤りを検出するステップにおいては、上記画像における上記各画素の並び順、および上記各画素の上記３次元座標の並び順に基づいて上記対応付けの誤りを検出し、上記対応付けの誤りを検出するステップにおいては、上記画像における基準位置からの同一直線上の複数の画素について、上記基準位置から上記複数の画素までの距離と、上記３次元座標系において上記基準位置に対応する３次元基準位置から、上記３次元座標系において上記複数の画素に対応する複数の３次元画素までの距離とに基づいて、上記対応付けの誤りを検出する。
【発明の効果】
【００１７】
本発明によれば、種々の撮影対象について、ステレオマッチングにおける誤対応をより正確に検出することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態に係る画像処理装置の概略構成図である。
【図２】本発明の実施の形態に係る画像処理装置が提供する制御構造を示すブロック図である。
【図３】画像座標と３次元座標との関係を示す図である。
【図４】空中に浮いている物体についての画像座標と３次元座標との関係を示す図である。
【図５】誤対応検出処理において誤対応と判定される場合の一例を示す図である。
【図６】本発明の実施の形態に係る画像処理装置が誤対応箇所の検出処理を行なう際の動作手順を定めたフローチャートである。
【図７】本発明の実施の形態に係る画像処理装置における誤対応検出部が誤対応検出処理を行なう際の動作手順を定めたフローチャートである。
【図８】航空写真で撮影された高い建物の、撮影位置による見え方の違いを示す図である。
【図９】航空写真で撮影された高い建物の左右画像を、従来の画像処理装置で処理した場合の結果の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００２０】
本発明の実施の形態に係る画像処理装置は、典型的には、汎用的なアーキテクチャを有するコンピュータを基本構造としており、予めインストールされたプログラムを実行することで、後述するような各種機能を提供する。一般的に、このようなプログラムは、フレキシブルディスク（Flexible Disk）およびＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの記録媒体に格納されて、あるいはネットワークなどを介して流通する。
【００２１】
本発明の実施の形態に係るプログラムは、ＯＳ等の他のプログラムの一部に組み込まれて提供されるものであってもよい。この場合でも、本発明の実施の形態に係るプログラム自体は、上記のような組み込み先の他のプログラムが有するモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本発明の実施の形態に係るプログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。
【００２２】
なお、代替的に、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【００２３】
［装置構成］
図１は、本発明の実施の形態に係る画像処理装置の概略構成図である。
【００２４】
図１を参照して、画像処理装置２０１は、演算処理部であるＣＰＵ（Central Processing Unit）１０１と、メインメモリ１０２と、ハードディスク１０３と、入力インタフェース１０４と、表示コントローラ１０５と、データリーダ／ライタ１０６と、通信インタフェース１０７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００２５】
ＣＰＵ１０１は、ハードディスク１０３に格納されたプログラム（コード）をメインメモリ１０２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１０２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置であり、ハードディスク１０３から読み出されたプログラムに加えて、各種の演算処理結果を示すデータなどを保持する。また、ハードディスク１０３は不揮発性の磁気記憶装置であり、ＣＰＵ１０１で実行されるプログラムに加えて、各種設定値などが格納される。このハードディスク１０３にインストールされるプログラムは、後述するように、記録媒体１１１に格納された状態で流通する。なお、ハードディスク１０３に加えて、あるいはハードディスク１０３に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【００２６】
入力インタフェース１０４は、ＣＰＵ１０１とキーボード１０８、マウス１０９および図示しないタッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インタフェース１０４は、ユーザが入力部を操作することで与えられる操作指令などの外部からの入力を受付ける。
【００２７】
表示コントローラ１０５は、表示部の典型例であるディスプレイ１１０と接続され、ディスプレイ１１０での表示を制御する。すなわち、表示コントローラ１０５は、ＣＰＵ１０１による画像処理の結果などをユーザに対して表示する。ディスプレイ１１０は、たとえばＬＣＤ（Liquid Crystal Display）またはＣＲＴ（Cathode Ray Tube）である。
【００２８】
データリーダ／ライタ１０６は、ＣＰＵ１０１と記録媒体１１１の間のデータ伝送を仲介する。すなわち、記録媒体１１１は、画像処理装置２０１で実行されるプログラムなどが格納された状態で流通し、データリーダ／ライタ１０６は、この記録媒体１１１からプログラムを読み出す。また、データリーダ／ライタ１０６は、ＣＰＵ１０１の内部指令に応答して、画像処理装置２０１における処理結果などを記録媒体１１１へ書き込む。なお、記録媒体１１１は、たとえば、ＣＦ（Compact Flash）およびＳＤ（Secure Digital）などの汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）などの磁気記憶媒体、またはＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体である。
【００２９】
通信インタフェース１０７は、ＣＰＵ１０１と他のパーソナルコンピュータおよびサーバ装置などの間のデータ伝送を仲介する。通信インタフェース１０７は、典型的には、イーサネット（登録商標）またはＵＳＢ（Universal Serial Bus）の通信機能を有する。なお、記録媒体１１１に格納されたプログラムを画像処理装置２０１にインストールする形態に代えて、通信インタフェース１０７を介して配信サーバなどからダウンロードしたプログラムを画像処理装置２０１にインストールしてもよい。
【００３０】
また、画像処理装置２０１には、必要に応じてプリンタなどの他の出力装置が接続されてもよい。
【００３１】
［制御構造］
次に、画像処理装置２０１における検索機能を提供するための制御構造について説明する。
【００３２】
図２は、本発明の実施の形態に係る画像処理装置が提供する制御構造を示すブロック図である。図２に示す画像処理装置２０１における各ブロックは、ハードディスク１０３に格納されたプログラム（コード）などをメインメモリ１０２に展開して、ＣＰＵ１０１に実行させることで提供される。なお、図２に示す画像処理装置２０１の制御構造の一部もしくは全部を専用ハードウェアおよび／または配線回路によって実現してもよい。
【００３３】
図２を参照して、画像処理装置２０１は、その制御構造として、ステレオマッチング部１０と、３次元座標計算部２０と、誤対応検出部３０とを備える。画像処理装置２０１は、ステレオマッチングで誤って対応付けされた箇所を検出する。
【００３４】
画像処理装置２０１において、ステレオマッチング部１０は、撮影対象を異なる方向から撮影して得られた複数の画像について、これら複数の画像間における画素の対応付けを行なうことにより視差を算出する。
【００３５】
３次元座標計算部２０は、ステレオマッチング部１０によって算出された視差に基づいて、画像における各画素の位置を３次元座標系における３次元座標に変換する。
【００３６】
誤対応検出部３０は、３次元座標計算部２０によって変換された各画素の３次元座標に基づいて、ステレオマッチング部１０によって行われた対応付けの誤りを検出する。
【００３７】
たとえば、誤対応検出部３０は、画像における各画素の並び順、および３次元座標系における各画素の３次元座標の並び順に基づいてステレオマッチングの対応付けの誤りを検出する。
【００３８】
具体的には、誤対応検出部３０は、画像における基準位置からの同一直線上の複数の画素について、基準位置からこれら複数の画素までの距離と、３次元座標系において基準位置に対応する３次元基準位置から、３次元座標系において上記複数の画素に対応する複数の３次元画素までの距離とに基づいて、ステレオマッチングの対応付けの誤りを検出する。
【００３９】
より具体的には、誤対応検出部３０は、画像における基準位置からの同一直線上の複数の画素について、基準位置からこれら複数の画素までの距離の大小関係と、３次元基準位置から上記複数の３次元画素までの距離の大小関係とが異なる場合に、画像における上記複数の画素の対応付けが誤りであると判定する。
【００４０】
たとえば、誤対応検出部３０は、基準位置を端点とする半直線上の複数の画素において、画像座標上での基準位置からの距離と３次元座標上での基準位置からの距離との大小関係が入れ替わる場合にステレオマッチングの誤対応ありと判定する。そして、誤対応検出部３０は、これら複数の画素を誤対応箇所として検出する。ここで、基準位置は、たとえばカメラ光軸と画像面の交点であり、画像の中心位置となる場合が多い。
【００４１】
より詳細には、ステレオマッチング部１０は、撮影部２によって撮影された左画像および右画像に対してステレオマッチング処理を施すことにより、左画像および右画像間の視差を計測し、計測した視差を示す視差データを生成する。
【００４２】
３次元座標計算部２０は、ステレオマッチング部１０によって生成された視差データを３次元座標に変換し、３次元データを生成する。
【００４３】
具体的には、３次元座標計算部２０は、生成された視差データと、カメラの位置、姿勢、焦点距離および画素サイズ等を含むカメラパラメータとを組み合わせることにより、三角測量の原理を利用して、左右画像における各画素に対応する３次元座標系での位置を示す３次元座標を計算する。
【００４４】
誤対応検出部３０は、３次元座標計算部２０によって生成された３次元データに基づいて、ステレオマッチング部１０が行ったステレオマッチングにおける誤対応の箇所を検出し、検出した箇所を示す誤対応箇所データを生成する。
【００４５】
ここで、誤対応検出部３０は、以下のような条件で誤対応を検出する。すなわち、誤対応検出部３０は、一方の画像、たとえば左画像について、基準位置からの画像座標の距離の並び順と、３次元座標系における基準位置からの３次元座標の距離の並び順とが入れ替わる画素が誤対応の箇所であると判断する。
【００４６】
この条件は、エリアセンサカメラでは、画像中心より遠くに写っている物体は、実際の３次元空間においても撮影位置から遠い位置にある、という特徴を利用している。
【００４７】
図３は、画像座標と３次元座標との関係を示す図である。
【００４８】
図３を参照して、たとえば、航空写真または衛星写真を撮影する場合には、画像座標において、建物の屋上Ａは、建物壁面Ｂ，Ｃより画像中心から遠い位置に写っており、また、３次元座標においても、屋上Ａは、壁面Ｂ，Ｃより撮影位置から遠い位置にあることが分かる。
【００４９】
ただし、飛行船などの空中に浮いている物体、および下方階層より上方階層が広がっている物体は、この特徴から外れてしまう。
【００５０】
図４は、空中に浮いている物体についての画像座標と３次元座標との関係を示す図である。
【００５１】
図４を参照して、たとえば、３次元座標において、屋上Ａより撮影位置の近くに浮遊物体Ｄがある場合には、画像座標では、屋上Ａより遠くに浮遊物体Ｄが写ることになる。
【００５２】
しかしながら、このようなケースは、画像処理装置２０１の用途として想定している航空写真および衛星写真等の撮影では稀なケースある。このため、物体は空中に浮いていない、かつ、物体は上方階層に広がっていない、という制約条件は、自然な条件であり、このような制約条件を設定して上記特徴を利用することが可能である。
【００５３】
図５は、誤対応検出処理において誤対応と判定される場合の一例を示す図である。
【００５４】
図５を参照して、誤対応検出処理を具体的に説明すると、対象画素Ｅと基準位置たとえば画像中心とを端点とする線分を考えて、当該線分上の画素Ｆと画素Ｅとの位置関係を求める。
【００５５】
ここで、画素Ｅが正しく対応付けされている場合には、画素Ｅの３次元座標は画素Ｅ１の位置となり、画像座標上でも３次元座標上でも画素Ｅより画素Ｆの方が基準位置に近くなる。
【００５６】
しかしながら、画素Ｅが正しく対応付けされずに、３次元座標系において画素Ｅが異常に高い位置にあると算出された場合には、画像座標上では画素Ｅより画素Ｆの方が基準位置に近いが、３次元座標上では画素Ｆより画素Ｅの方が基準位置に近くなってしまう。すなわち、画素Ｅまたは画素Ｆのいずれかについて誤対応がなされていることが分かる。
【００５７】
画像処理装置２０１では、このような方法により、ステレオマッチングにおける誤対応を検出することができる。
【００５８】
また、ここでは、画素Ｅが３次元座標系において異常に高い位置にあると算出された場合の具体例を説明したが、画素Ｆが３次元座標系において異常に低い位置にあると算出された場合でも同様に考えることができる。すなわち、このような場合でも、画素Ｅまたは画素Ｆのいずれかについて誤対応がなされていることが分かる。
【００５９】
［動作］
次に、本発明の実施の形態に係る画像処理装置の動作について図面を用いて説明する。本発明の実施の形態では、画像処理装置２０１を動作させることによって、本発明の実施の形態に係る画像処理方法が実施される。よって、本発明の実施の形態に係る画像処理方法の説明は、以下の画像処理装置２０１の動作説明に代える。なお、以下の説明においては、適宜図２を参照する。
【００６０】
図６は、本発明の実施の形態に係る画像処理装置が誤対応箇所の検出処理を行なう際の動作手順を定めたフローチャートである。
【００６１】
図６を参照して、まず、ステレオマッチング部１０は、標定処理を実行して、撮影時のカメラパラメータを標定する（ステップＳ１１）。
【００６２】
次に、ステレオマッチング部１０は、平行化処理を実行して、エピポーラ線が複数の走査線の一つに一致するように左画像と右画像とを共通平行面に再投影する（ステップＳ１２）。
【００６３】
次に、ステレオマッチング部１０は、ステレオマッチング処理を実行して、左画像と右画像との相関をとっていき、相関係数が最大となる画素を対応付けて視差を算出する（ステップＳ１３）。なお、ステレオマッチングは、テンプレートマッチング等の一般的な手法で良く、特定の手法に限定されるものではない。
【００６４】
次に、３次元座標計算部２０は、３次元座標計算処理を実行して、視差に基づき３次元座標への変換を行なう（ステップＳ１４）。
【００６５】
ここで、視差から３次元座標への変換は、たとえば以下の式（１）に示すような計算式を用いて行なう。
（Ｘ，Ｙ，Ｚ）＝−（Ｂ／ｄ）（ｘ，ｙ，ｆ）  ・・・（１）
【００６６】
式（１）において、（Ｘ，Ｙ，Ｚ）は３次元座標であり、（ｘ，ｙ）は画像座標であり、Ｂはカメラ間距離であり、ｄは（ｘ，ｙ）における視差であり、ｆは焦点距離である。なお、３次元座標の原点はカメラ位置としている。
【００６７】
次に、誤対応検出部３０は、誤対応検出処理を実行して、ステレオマッチングにおける誤対応の箇所を検出する（ステップＳ１５）。
【００６８】
図７は、本発明の実施の形態に係る画像処理装置における誤対応検出部が誤対応検出処理を行なう際の動作手順を定めたフローチャートである。
【００６９】
図７を参照して、まず、誤対応検出部３０は、カメラパラメータに基づいて、カメラ光軸と画像面との交点である基準位置（ｘ０，ｙ０）を算出する（ステップＳ２１）。
【００７０】
次に、誤対応検出部３０は、対象画素ｉと基準位置とを端点とする線分上の画素ｊを求める（ステップＳ２２）。
【００７１】
次に、誤対応検出部３０は、求めた線分上の画素ｊについて、基準位置からの画像座標距離ｌおよび３次元座標距離Ｌを、式（２）および式（３）に示すような計算式を用いてそれぞれ求める（ステップＳ２３）。
ｌ＝√（（ｘ−ｘ０）2＋（ｙ−ｙ０）2）  ・・・（２）
Ｌ＝√（Ｘ−Ｘ０）2＋（Ｙ−Ｙ０）2  ・・・（３）
【００７２】
式（２）および式（３）において、（ｘ，ｙ）は画像座標であり、（Ｘ，Ｙ）は３次元座標であり、（Ｘ０，Ｙ０）は３次元座標系における基準位置である。
【００７３】
ここで、線分上の画素を求める方法として、具体的には、たとえばＢｒｅｓｅｎｈａｍのアルゴリズムを使用することにより、直線上に対応する画素を求めることができる。
【００７４】
次に、誤対応検出部３０は、線分上の各画素ｊについて、２つの画素ｉ，ｊの画像座標の位置関係と３次元座標の位置関係とを比較する（ステップＳ２４）。具体的には、誤対応検出部３０は、以下の式（４）に示すような条件を使用して、両者の位置関係が異なっている場合には誤対応と判定し、両方の画素ｉ，ｊを誤対応の箇所として検出する（ステップＳ２５）。
ｌｉ＞ｌｊかつＬｉ＜Ｌｊ、またはｌｉ＜ｌｊかつＬｉ＞Ｌｊ  ・・・（４）
【００７５】
式（４）において、ｌｉ，ｌｊは、それぞれ基準位置からの点ｉ，ｊにおける画像座標距離であり、Ｌｉ，Ｌｊは、それぞれ基準位置からの点ｉ，ｊにおける３次元座標距離である。
【００７６】
次に、誤対応検出部３０は、線分上のすべての画素ｊについて誤対応の判定が終了したか否かを判断する（ステップＳ２６）。
【００７７】
誤対応検出部３０は、まだ線分上の判定していない画素ｊが残っている場合には（ステップＳ２６でＮＯ）、ステップＳ２３〜ステップＳ２５の処理を繰り返す。
【００７８】
一方、誤対応検出部３０は、線分上のすべての画素ｊについて誤対応の判定が終了した場合には（ステップＳ２６でＹＥＳ）、画像中のすべての画素ｉについて判定処理が終了したか否かを判断する（ステップＳ２７）。
【００７９】
誤対応検出部３０は、まだ判定していない画素ｉがある場合には（ステップＳ２７でＮＯ）、ステップＳ２２〜ステップＳ２６の処理を繰り返す。すべての画素ｉについて判定処理が終了した場合には（ステップＳ２７でＹＥＳ）、誤対応検出処理は終了となる。
【００８０】
ところで、特許文献１に記載の技術等、従来の画像処理装置では、たとえば航空写真で撮影された高い建物を撮影した際に見られるように、基準画像および参照画像において見え方に大きな違いがある場合には、誤り箇所を正しく検出することができない。
【００８１】
これに対して、本発明の実施の形態に係る画像処理装置では、ステレオマッチング部１０は、撮影対象を異なる方向から撮影して得られた複数の画像について、これら複数の画像間における画素の対応付けを行なうことにより視差を算出する。３次元座標計算部２０は、ステレオマッチング部１０によって算出された視差に基づいて、画像における各画素の位置を３次元座標系における３次元座標に変換する。そして、誤対応検出部３０は、３次元座標計算部２０によって変換された各画素の３次元座標に基づいて、ステレオマッチング部１０によって行われた対応付けの誤りを検出する。
【００８２】
このように、ステレオマッチングで対応付けされた結果を用いて算出した３次元座標に基づいて誤対応の箇所を検出する構成により、高い建物のように左右画像で見え方に大きな違いがある場合であっても、ステレオマッチングにおける誤対応の箇所を正しく検出することができる。
【００８３】
すなわち、本発明の実施の形態に係る画像処理装置における各構成要素のうち、ステレオマッチング部１０、３次元座標計算部２０および誤対応検出部３０からなる最小構成により、種々の撮影対象について、ステレオマッチングにおける誤対応をより正確に検出する、という本発明の目的を達成することが可能となる。
【００８４】
また、本発明の実施の形態に係る画像処理装置では、誤対応検出部３０は、画像における各画素の並び順、および３次元座標系における各画素の３次元座標の並び順に基づいてステレオマッチングの対応付けの誤りを検出する。
【００８５】
このように、ステレオマッチングで対応付けされた結果を用いて、基準位置に対する画像座標の並び順および３次元座標の並び順に基づいて誤対応の箇所を検出する構成により、ステレオマッチングにおける誤対応の箇所を正しく検出することができる。
【００８６】
また、本発明の実施の形態に係る画像処理装置では、誤対応検出部３０は、画像における基準位置からの同一直線上の複数の画素について、基準位置からこれら複数の画素までの距離と、３次元座標系において基準位置に対応する３次元基準位置から、３次元座標系において上記複数の画素に対応する複数の３次元画素までの距離とに基づいて、ステレオマッチングの対応付けの誤りを検出する。
【００８７】
このように、基準位置からの画像座標の距離および３次元座標の距離を用いる構成により、基準位置に対する画像座標の並び順および３次元座標の並び順を適切に求めることができる。
【００８８】
また、本発明の実施の形態に係る画像処理装置では、誤対応検出部３０は、画像における基準位置からの同一直線上の複数の画素について、基準位置からこれら複数の画素までの距離の大小関係と、３次元基準位置から上記複数の３次元画素までの距離の大小関係とが異なる場合に、画像における上記複数の画素の対応付けが誤りであると判定する。
【００８９】
このように、基準位置からの画像座標の距離および３次元座標の距離の大小関係を比較する構成により、ステレオマッチングにおける誤対応の箇所をより正しく検出することができる。
【００９０】
なお、本発明は、上記実施形態に限定されず、種々の変形、および応用が可能である。以下、本発明に適用可能な上記実施形態の変形態様について、説明する。
【００９１】
上記実施の形態では、一例として左画像上での誤対応を検出したが、右画像上で誤対応を検出してもよいし、左右画像の両方で誤対応を検出してもよい。
【００９２】
さらに、左右画像の検出結果を統合して、左右画像のいずれかで誤対応が検出された画素を誤対応の箇所として検出してもよい。このような構成により、誤対応箇所の検出処理の簡易化を図ることができる。
【００９３】
すなわち、誤対応検出部３０は、左画像および右画像それぞれに対してステレオマッチングの誤対応の箇所を検出する。そして、誤対応検出部３０は、左画像から検出された誤対応の箇所と右画像から検出された誤対応箇所を統合する。
【００９４】
より詳細には、誤対応検出部３０は、複数の画像のうち、少なくともいずれか１つの画像においてステレオマッチング部１０によって行われた対応付けの誤りを検出した場合には、対応付けの誤りが検出された画素、および他の画像における対応の画素を、ステレオマッチング部１０によって誤って対応付けられた画素であると判断する。
【００９５】
左右画像の検出結果を統合する具体的な方法として、たとえば、右画像上の画素（ｘＲ，ｘＲ）で誤対応が検出された場合には、ステレオマッチングで対応付けされた左画像上の画素（ｘＬ，ｘＬ）を誤対応箇所としてもよい。また、逆に、たとえば左画像上の画素（ｘＬ，ｘＬ）で誤対応が検出された場合には、ステレオマッチングで対応付けされた右画像上の画素（ｘＲ，ｘＲ）を誤対応箇所としてもよい。
【００９６】
また、上記実施の形態では、一例として誤対応と判定されたすべての画素を誤対応箇所として検出したが、これに限定するものではない。誤対応と判定された回数を画素ごとに記憶しておき、誤対応と判定された回数がある一定回数以上である画素のみを実際の誤対応箇所として検出してもよい。
【００９７】
すなわち、誤対応検出部３０は、対応付けの誤りを検出した回数を画素ごとに記憶し、回数が所定値未満である画素は、ステレオマッチング部１０によって誤って対応付けられた画素であると判断せず、回数が所定値以上となる画素を、ステレオマッチング部１０によって誤って対応付けられた画素であると判断する。
【００９８】
たとえば、誤対応と判定された回数が２回以上の画素のみを誤対応箇所として検出する。具体的には、画素Ａと画素Ｂが誤対応、画素Ａと画素Ｃが誤対応、画素Ｂと画素Ｃが正しい対応であるとそれぞれ判定された場合には、画素Ａのみが２回以上の誤対応であると判定されているので、画素Ａのみを実際の誤対応箇所として検出する。
【００９９】
このような構成により、誤対応箇所の検出処理において、安定した検出結果を得ることができる。
【０１００】
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１０１】
上記実施の形態の一部または全部は以下の付記のようにも記載されうるが、本発明の範囲は、以下の付記に限定されるものではない。
【０１０２】
［付記１］
撮影対象を異なる方向から撮影して得られた複数の画像について、前記複数の画像間における画素の対応付けを行なうことにより視差を算出するためのステレオマッチング部と、
前記ステレオマッチング部によって算出された前記視差に基づいて、前記画像における各画素の位置を３次元座標系における３次元座標に変換するための３次元座標計算部と、
前記３次元座標計算部によって変換された前記各画素の前記３次元座標に基づいて、前記ステレオマッチング部によって行われた前記対応付けの誤りを検出するための誤対応検出部とを備える、画像処理装置。
【０１０３】
［付記２］
前記誤対応検出部は、前記画像における前記各画素の並び順、および前記各画素の前記３次元座標の並び順に基づいて前記対応付けの誤りを検出する、付記１に記載の画像処理装置。
【０１０４】
［付記３］
前記誤対応検出部は、前記画像における基準位置からの同一直線上の複数の画素について、前記基準位置から前記複数の画素までの距離と、前記３次元座標系において前記基準位置に対応する３次元基準位置から、前記３次元座標系において前記複数の画素に対応する複数の３次元画素までの距離とに基づいて、前記対応付けの誤りを検出する、付記２に記載の画像処理装置。
【０１０５】
［付記４］
前記誤対応検出部は、前記画像における基準位置からの同一直線上の複数の画素について、前記基準位置から前記複数の画素までの距離の大小関係と、前記３次元基準位置から前記複数の３次元画素までの距離の大小関係とが異なる場合に、前記画像における前記複数の画素の対応付けが誤りであると判定する、付記３に記載の画像処理装置。
【０１０６】
［付記５］
前記誤対応検出部は、前記対応付けの誤りを検出した回数を画素ごとに記憶し、前記回数が所定値未満である画素は、前記ステレオマッチング部によって誤って対応付けられた画素であると判断せず、前記回数が前記所定値以上となる画素を、前記ステレオマッチング部によって誤って対応付けられた画素であると判断する、付記１から４のいずれかに記載の画像処理装置。
【０１０７】
［付記６］
前記誤対応検出部は、前記複数の画像のうち、少なくともいずれか１つの画像において前記ステレオマッチング部によって行われた前記対応付けの誤りを検出した場合には、前記対応付けの誤りが検出された画素、および他の前記画像における対応の画素を、前記ステレオマッチング部によって誤って対応付けられた画素であると判断する、付記１から５のいずれかに記載の画像処理装置。
【０１０８】
［付記７］
撮影対象を異なる方向から撮影して得られた複数の画像について、前記複数の画像間における画素の対応付けを行なうことにより視差を算出するステップと、
算出した前記視差に基づいて、前記画像における各画素の位置を３次元座標系における３次元座標に変換するステップと、
変換した前記各画素の前記３次元座標に基づいて、前記対応付けの誤りを検出するステップとを含む、画像処理方法。
【０１０９】
［付記８］
前記対応付けの誤りを検出するステップにおいては、前記画像における前記各画素の並び順、および前記各画素の前記３次元座標の並び順に基づいて前記対応付けの誤りを検出する、付記７に記載の画像処理方法。
【０１１０】
［付記９］
前記対応付けの誤りを検出するステップにおいては、前記画像における基準位置からの同一直線上の複数の画素について、前記基準位置から前記複数の画素までの距離と、前記３次元座標系において前記基準位置に対応する３次元基準位置から、前記３次元座標系において前記複数の画素に対応する複数の３次元画素までの距離とに基づいて、前記対応付けの誤りを検出する、付記８に記載の画像処理方法。
【０１１１】
［付記１０］
前記対応付けの誤りを検出するステップにおいては、前記画像における基準位置からの同一直線上の複数の画素について、前記基準位置から前記複数の画素までの距離の大小関係と、前記３次元基準位置から前記複数の３次元画素までの距離の大小関係とが異なる場合に、前記画像における前記複数の画素の対応付けが誤りであると判定する、付記９に記載の画像処理方法。
【０１１２】
［付記１１］
前記対応付けの誤りを検出するステップにおいては、前記対応付けの誤りを検出した回数を画素ごとに記憶し、前記回数が所定値未満である画素は、誤って対応付けられた画素であると判断せず、前記回数が前記所定値以上となる画素を、誤って対応付けられた画素であると判断する、付記７から１０のいずれかに記載の画像処理方法。
【０１１３】
［付記１２］
前記対応付けの誤りを検出するステップにおいては、前記複数の画像のうち、少なくともいずれか１つの画像において前記対応付けの誤りを検出した場合には、前記対応付けの誤りが検出された画素、および他の前記画像における対応の画素を、誤って対応付けられた画素であると判断する、付記７から１１のいずれかに記載の画像処理方法。
【０１１４】
［付記１３］
コンピュータに、
撮影対象を異なる方向から撮影して得られた複数の画像について、前記複数の画像間における画素の対応付けを行なうことにより視差を算出するステップと、
算出した前記視差に基づいて、前記画像における各画素の位置を３次元座標系における３次元座標に変換するステップと、
変換した前記各画素の前記３次元座標に基づいて、前記対応付けの誤りを検出するステップとを実行させるための、画像処理プログラム。
【０１１５】
［付記１４］
前記対応付けの誤りを検出するステップにおいては、前記画像における前記各画素の並び順、および前記各画素の前記３次元座標の並び順に基づいて前記対応付けの誤りを検出する、付記１３に記載の画像処理プログラム。
【０１１６】
［付記１５］
前記対応付けの誤りを検出するステップにおいては、前記画像における基準位置からの同一直線上の複数の画素について、前記基準位置から前記複数の画素までの距離と、前記３次元座標系において前記基準位置に対応する３次元基準位置から、前記３次元座標系において前記複数の画素に対応する複数の３次元画素までの距離とに基づいて、前記対応付けの誤りを検出する、付記１４に記載の画像処理プログラム。
【０１１７】
［付記１６］
前記対応付けの誤りを検出するステップにおいては、前記画像における基準位置からの同一直線上の複数の画素について、前記基準位置から前記複数の画素までの距離の大小関係と、前記３次元基準位置から前記複数の３次元画素までの距離の大小関係とが異なる場合に、前記画像における前記複数の画素の対応付けが誤りであると判定する、付記１５に記載の画像処理プログラム。
【０１１８】
［付記１７］
前記対応付けの誤りを検出するステップにおいては、前記対応付けの誤りを検出した回数を画素ごとに記憶し、前記回数が所定値未満である画素は、誤って対応付けられた画素であると判断せず、前記回数が前記所定値以上となる画素を、誤って対応付けられた画素であると判断する、付記１３から１６のいずれかに記載の画像処理プログラム。
【０１１９】
［付記１８］
前記対応付けの誤りを検出するステップにおいては、前記複数の画像のうち、少なくともいずれか１つの画像において前記対応付けの誤りを検出した場合には、前記対応付けの誤りが検出された画素、および他の前記画像における対応の画素を、誤って対応付けられた画素であると判断する、付記１３から１７のいずれかに記載の画像処理プログラム。
【産業上の利用可能性】
【０１２０】
本発明は、ステレオマッチングを用いた画像処理に適用可能である。したがって、本発明は、産業上の利用可能性を有している。
【符号の説明】
【０１２１】
１０  ステレオマッチング部
２０  ３次元座標計算部
３０  誤対応検出部
１０１  ＣＰＵ
１０２  メインメモリ
１０３  ハードディスク
１０４  入力インタフェース
１０５  表示コントローラ
１０６  データリーダ／ライタ
１０７  通信インタフェース
１０８  キーボード
１０９  マウス
１１０  ディスプレイ
１１１  記録媒体
１２１  バス
２０１  画像処理装置
【図１】
0005464671.tif 000002
【図２】
0005464671.tif 000003
【図３】
0005464671.tif 000004
【図４】
0005464671.tif 000005
【図５】
0005464671.tif 000006
【図６】
0005464671.tif 000007
【図７】
0005464671.tif 000008
【図８】
0005464671.tif 000009
【図９】
0005464671.tif 000010