(57)【要約】【課題】較正パラメータを補正することなく、高精度な対応探索を実現することができる。【解決手段】撮像手段によって得られる複数の画像のうち第１の画像の各画素に対応する対応画素を、第１の画像と視点が異なる第２の画像から探索する画像処理装置であって、撮像手段の較正パラメータを含む較正情報と、較正パラメータの推定精度を示す較正精度情報とを格納する格納手段と、較正情報と較正精度情報とに基づいて、第１の画像の各画素に対応する、第２の画像上における探索範囲を決定する決定手段と、第１の画像の各画素について、決定手段が決定した探索範囲を探索して対応画素を検出する検出手段と、を備える。【選択図】図２
2018055173.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段によって得られる複数の画像のうち第１の画像の各画素に対応する対応画素を、前記第１の画像と視点が異なる第２の画像から探索する画像処理装置であって、
前記撮像手段の較正パラメータを含む較正情報と、前記較正パラメータの推定精度を示す較正精度情報とを格納する格納手段と、
前記較正情報と前記較正精度情報とに基づいて、前記第１の画像の各画素に対応する、前記第２の画像上における探索範囲を決定する決定手段と、
前記第１の画像の各画素について、前記決定手段が決定した前記探索範囲を探索して対応画素を検出する検出手段と、を備える
ことを特徴とする画像処理装置。
【請求項２】
前記決定手段は、
前記較正情報と前記較正精度情報とに基づいて、前記第１の画像の各画素に対応する、前記第２の画像上における１または複数のエピポーラ線を導出し、
前記導出した１または複数のエピポーラ線上を前記探索範囲とする
請求項１に記載の画像処理装置。
【請求項３】
前記較正情報には、複数の較正パラメータが含まれ、
前記決定手段は、
前記較正精度情報から各較正パラメータの誤差の範囲を求めて、前記各較正パラメータが前記誤差の範囲内においてとりうる値をそれぞれ組み合わせて得られる、１または複数の新たな較正情報を生成する生成手段と、
前記生成手段によって生成された各較正情報に基づいて、前記第１の画像の各画素に対応する、前記第２の画像上における１または複数のエピポーラ線を導出する導出手段と、を有する
請求項２に記載の画像処理装置。
【請求項４】
前記生成手段は、
前記１または複数の新たな較正情報を、前記格納手段に格納された較正情報との差分が小さい順にテーブルに格納し、
前記導出手段は、
前記第１の画像の一の画素に対応するエピポーラ線を導出する際に、前記テーブルにおける各較正情報の格納順に従って、前記各較正情報に基づくエピポーラ線をそれぞれ導出し、
前記検出手段は、
前記第１の画像の一の画素について導出された各エピポーラ線の線上を、最初に導出されたエピポーラ線から順に探索して、当該一の画素に対応する対応画素を検出する
請求項３に記載の画像処理装置。
【請求項５】
前記検出手段は、
前記第１の画像の一の画素について導出された各エピポーラ線の線上を、最初に導出されたエピポーラ線から順に探索ブロックで走査し、当該一の画素を中心とする注目領域との差分が閾値以下であるブロックを検出した場合には、当該ブロックの中心画素を当該一の画素に対応する対応画素として検出する
請求項４に記載の画像処理装置。
【請求項６】
前記較正精度情報が、前記複数の較正パラメータそれぞれの最大推定誤差である
請求項１から請求項５のいずれか１項に記載の画像処理装置。
【請求項７】
前記較正情報には、較正パラメータとして少なくとも、前記撮像手段の位置、姿勢、焦点距離、及び主点位置が含まれる
請求項１から請求項６のいずれか１項に記載の画像処理装置。
【請求項８】
撮像手段によって得られる複数の画像のうち第１の画像の各画素に対応する対応画素を、前記第１の画像と視点が異なる第２の画像から探索する画像処理方法であって、
前記撮像手段の較正パラメータを含む較正情報と、前記較正パラメータの推定精度を示す較正精度情報とに基づいて、前記第１の画像の各画素に対応する、前記第２の画像上における探索範囲を決定する決定ステップと、
前記第１の画像の各画素について、前記決定ステップにおいて決定された前記探索範囲を探索して対応画素を検出する検出ステップと、を含む
ことを特徴とする画像処理方法。
【請求項９】
コンピュータを請求項１から請求項７のうちのいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる視点から撮影された複数の画像を用いた、画像処理技術に関する。
【背景技術】
【０００２】
被写体を複数の視点から撮影した画像間で、類似する領域を探索する対応探索技術が知られている。対応探索技術は、カメラから被写体までの距離推定や、画像中に含まれる対象物検出などに用いられる。対応探索技術の一つとして、複数視点で撮影したカメラの視点位置、光軸方向、焦点距離などの較正パラメータに基づいてエピポーラ線を算出し、算出したエピポーラ線上で類似する領域を探索する手法がある。この手法では、探索範囲をエピポーラ線上に限定することにより、高速かつ高精度な対応探索を実現している。しかし、較正パラメータを正確に求めることは困難である。そのため、所望のエピポーラ線が得られず、対応探索に失敗することがある。そのような課題に対し、例えば特許文献１では、較正パラメータに基づいて算出したエピポーラ線上のみでなく、エピポーラ線の近傍でも類似する領域を探索する手法が提案されている。特許文献１に記載された手法では、エピポーラ線上以外の位置で類似領域が検出された場合に、その領域をエピポーラ線が通るように較正パラメータを補正する。それにより、対応探索の精度を向上させている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３５４２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、被写体までの距離など、撮影シーンの特性によって、エピポーラ線の算出に最適な較正パラメータは異なる。そのため、特許文献１に記載された手法では、毎回の撮影において較正パラメータを補正する必要がある。さらに、較正パラメータの補正ではバンドル調整等の最適化処理が行われることが一般的である。そのため、特許文献１に記載された手法では、処理時間が多くかかってしまう可能性がある。そこで、本発明は、較正パラメータを補正することなく、高精度な対応探索を実現することが可能な画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明による画像処理装置は、撮像手段によって得られる複数の画像のうち第１の画像の各画素に対応する対応画素を、第１の画像と視点が異なる第２の画像から探索する画像処理装置であって、撮像手段の較正パラメータを含む較正情報と、較正パラメータの推定精度を示す較正精度情報とを格納する格納手段と、較正情報と較正精度情報とに基づいて、第１の画像の各画素に対応する、第２の画像上における探索範囲を決定する決定手段と、第１の画像の各画素について、決定手段が決定した探索範囲を探索して対応画素を検出する検出手段と、を備えることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、較正パラメータを補正することなく、高精度な対応探索を実現することができる。また、較正パラメータの補正を必要としないので、高速な対応探索を実現することができる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施例に係る画像処理装置の構成の一例を示す図である。
【図２】画像処理部の内部構成の一例を示すブロック図である。
【図３】較正情報取得部が取得する較正パラメータを説明するためのイメージ図である。
【図４】較正パラメータに含まれる誤差とエピポーラ線のずれとの関係を説明するための図である。
【図５】探索範囲決定部の内部構成の一例を示すブロック図である。
【図６】較正パラメータテーブルを説明するための図である。
【図７】探索範囲情報生成部の処理を模式的に示すイメージ図である。
【図８】画像処理部の第１の実施例における処理の流れを示すフローチャートである。
【図９】ステップＳ８０２における探索範囲決定部の処理の流れを示すフローチャートである。
【図１０】第１の実施例の効果を説明するための図である。
【図１１】第２の実施例における探索範囲決定部の内部構成の一例を示すブロック図である。
【図１２】第２の実施例における探索範囲決定部の各部において受け渡しされるデータを説明するための図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照して本発明を実施する形態について説明する。
【０００９】
［実施例１］
図１は、第１の実施例に係る画像処理装置１００（以下、処理装置１００とする）の構成の一例を示す図である。図１（a）には、処理装置１００の内部構成が示されている。処理装置１００は、ＣＰＵ１０３、ＲＡＭ１０４、ＲＯＭ１０５、操作部１０６、表示制御部１０７、表示部１０８、撮像部制御部１０９、デジタル信号処理部１１０、外部メモリ制御部１１１、画像処理部１１３、及びバス１１４を備える。さらに、処理装置１００は、撮像部１０１，１０２を備える。
【００１０】
撮像部１０１，１０２は、それぞれが独立した結像光学系と撮像センサとを有するカメラである。図１（ｂ）に示すように、撮像部１０１，撮像部１０２は、処理装置１００の筐体に配置されている。撮像部１０１，１０２は互いに焦点距離の等しいレンズを有していて、それぞれが有する撮像素子の画素数は互いに等しい。なお、本実施例では図１（ｂ）に示すようなステレオカメラを例としているが、撮像部の構成は上記に限定されるものではない。例えば、撮像部の数、撮像部の位置、撮像部の姿勢は変更されてもよいし、全てのレンズの焦点距離が同じであっても、異なっていてもよい。また、本実施例における処理装置は、１つの筐体に複数のカメラを備えた多眼カメラに限定されるものではなく、複数のカメラと接続されたコンピュータの形態をとることもできる。また、本実施例には、処理装置が撮像部を1つだけ備え、視点を変えながら複数回撮像して得られる画像データに対して画像処理を行う例も含まれる。
【００１１】
ＣＰＵ１０３は、以下に述べる各部を統括的に制御する。ＲＡＭ１０４は、ＣＰＵ１０３の主メモリとして機能する。また、ＲＡＭ１０４は、撮像データ等を一時的に格納する。ＲＯＭ１０５は、ＣＰＵ１０３で実行される制御プログラム等を格納する。操作部１０６は、ユーザが入力操作を受け付けるための、ボタンなどである。表示制御部１０７は、表示部１０８に表示される画像や文字の表示制御を行う。表示部１０８は、例えば液晶ディスプレイである。撮像部制御部１０９は、ＣＰＵ１０３や操作部１０６などからの指示に基づいて、撮像部１０１，１０２の制御を行う。デジタル信号処理部１１０は、バス１１４を介して受け取った撮像データ（デジタルデータ）に対し、ホワイトバランス処理、ガンマ処理、ノイズ低減処理などの各種処理を行う。外部メモリ制御部１１１は、メディア１１２とバス１１４とを繋ぐためのインターフェースである。メディア１１２は、例えば、ハードディスク、メモリーカード、ＣＦカード、ＳＤカード、ＵＳＢメモリである。また、外部メモリ制御部１１１には、メディア１１２の他にＰＣなどが接続されてもよい。画像処理部１１３は、撮像部１０１，１０２で取得された撮像データや、デジタル信号処理部１１０から出力されるデジタル画像データを利用して画像処理を行う。
【００１２】
〔画像処理部１１３における処理〕
図２は、画像処理部１１３の内部構成の一例を示すブロック図である。較正情報取得部２０１は、ＲＡＭ１０４から撮像部１０１，１０２の較正パラメータを含む較正情報を取得する。ここで較正パラメータとは、撮像部の位置（ｘ，ｙ，ｚ）と姿勢（α，β，γ）、撮像部が有するレンズの焦点距離（ｆｘ，ｆｙ）、主点位置（ｃｘ，ｃｙ）を示す。各撮像部の較正パラメータは、カメラ、レンズの設計値や実測値から取得可能である。また、事前にｚｈａｎｇの手法（参考文献１参照）などのカメラキャリブレーションを行うことにより取得可能である。較正情報取得部２０１は、取得した較正情報を探索範囲決定部２０４に出力する。
【００１３】
［参考文献１］
Z. Zhang, “A flexible new technique for camera calibration”,IEEE Transactions on Pattern Analysis and Machine Intelligence,22(11):1330-1334, 2000.
【００１４】
較正精度情報取得部２０２は、ＲＡＭ１０４から較正パラメータ算出時の較正パラメータの推定精度を示す較正精度情報を取得する。較正パラメータ推定精度は事前の精度評価により、上記の各構成パラメータについて算出されているとする。較正精度情報取得部２０２は、取得した較正精度情報を探索範囲決定部２０４に出力する。
【００１５】
ここで、較正パラメータと較正パラメータ推定精度について詳細に説明する。図３は、較正情報取得部２０１が取得する較正パラメータを説明するためのイメージ図である。矢印３０１は撮像部１０１の姿勢（光軸方向）を示し、矢印の原点３０２は撮像部１０１の位置を示している。本実施例では、撮像部１０１の位置を原点、光軸方向をｚ軸、画像の横軸をｘ軸、画像の縦軸をｙ軸とした座標系で較正パラメータを表す。したがって、撮像部１０１の位置と姿勢は式（１）によって表される。ここでベクトルＸ1が撮像部１０１の位置を表し、ベクトルＰ1が撮像部１０１の姿勢を表している。
【００１６】
【数１】
2018055173.tif 000003
【００１７】
矢印３０３は撮像部１０２の姿勢を示し、矢印原点３０４は撮像部１０２の位置を示している。撮像部１０２の位置Ｘ2と姿勢Ｐ2は式（２）によって表される。
【００１８】
【数２】
2018055173.tif 000004
【００１９】
本実施例では、説明を簡単にするため、焦点距離（ｆｘ，ｆｙ）及び主点位置（ｃｘ，ｃｙ）については、撮像部１０１と撮像部１０２とにおいて同じ値が設定されているものとする。
【００２０】
前述したカメラキャリブレーションにより上記較正パラメータ（ｘ，ｙ，ｚ，α，β，γ，ｆｘ，ｆｙ，ｃｘ，ｃｙ）を推定することが可能である。しかし、カメラキャリブレーションによって推定される較正パラメータには誤差が含まれる。この較正パラメータに含まれる誤差がどの程度であるかを示した値が、較正精度情報取得部２０２で取得される較正パラメータ推定精度である。本実施例における較正パラメータ推定精度は各較正パラメータの最大推定誤差であり、（ｘe，ｙe，ｚe，αe，βe，γe，ｆｘe，ｆｙe，ｃｘe，ｃｙe）で表される。各較正パラメータの最大推定誤差は、較正パラメータの真値データに基づいて描画した複数のＣＧ画像を入力画像としてカメラキャリブレーションを複数回行い、真値とキャリブレーションにより求めた推定値との差を評価することにより、取得可能である。本実施例では較正パラメータ推定精度を各較正パラメータの最大推定誤差としているが、較正パラメータ推定精度は、各較正パラメータの誤差平均、分散、標準偏差などであってもよい。
【００２１】
撮像データ取得部２０３は、撮像部１０１，１０２が撮像した撮像データを取得し、対応探索部２０５に出力する。
【００２２】
探索範囲決定部２０４は、較正情報取得部２０１から較正パラメータを取得し、較正精度情報取得部２０２から較正パラメータ推定精度を取得する。そして、探索範囲決定部２０４は、撮像部１０１と撮像部１０２の撮像画像間で対応探索する画素を決定する。なお、撮像部の較正パラメータと較正パラメータ推定精度とが既知であれば、撮像前に探索範囲を決定することが可能である。そのため、本実施例では、探索範囲決定部２０４は、撮像データ取得部２０３から撮像データを入力しない。また、撮像部の状態に変化がなければ、過去の撮影時に決定した探索範囲を用いることも可能である。
【００２３】
〔較正パラメータに含まれる誤差がエピポーラ線に与えるずれ〕
ここで、較正パラメータに含まれる誤差がエピポーラ線に与えるずれについて、図４を用いて説明する。図４には、誤差を含まない正確な較正パラメータに基づいて算出されたエピポーラ線と、誤差を含む較正パラメータに基づいて算出されたエピポーラ線とが示されている。較正パラメータに基づくエピポーラ線の算出方法については後述する。破線で囲われた領域４０１，４０４は、撮像部１０１の撮像画像（第１の画像）に含まれる画素（以下、注目画素と称する）を中心とした領域（以下、注目領域と称する）である。破線４０２，４０５は、較正パラメータに基づいて算出された、注目領域４０１，４０４（具体的には、注目領域４０１，４０４における注目画素）に対応するエピポーラ線である。破線で囲われた領域４０３,４０６は、対応探索においてエピポーラ線４０２，４０５上を走査する際に用いられる探索ブロックである。エピポーラ線上を探索ブロックで走査し、注目領域との画素値の差分が小さい領域を探索することにより、注目領域に対応する撮像部１０２の撮像画像上の領域（以下、対応領域と称する）を検出する。較正パラメータが正確であれば、図４の上段に示すように、注目領域４０１に対応する領域を通る、エピポーラ線４０２を算出することができる。そして、エピポーラ線４０２上を探索ブロック４０３で走査して探索することにより、正解となる対応領域を検出することが可能である。一方で、較正パラメータに誤差が含まれている場合に算出されるエピポーラ線４０５は、注目領域４０４に対応する領域から離れた位置に存在するため、正解となる対応領域を検出することができない。図４の下段には、本実施例における較正パラメータの１つであるα（ｘ軸周りの回転角度）にのみ誤差が含まれている場合に算出される、エピポーラ線が例として示されている。較正パラメータのどのパラメータに、どの程度の大きさの誤差が含まれているかによって、エピポーラ線のずれ方は異なる。前述したように、較正パラメータに誤差が含まれていると、エピポーラ線がずれてしまい、正確な対応探索が困難になる。本実施例では、較正パラメータと較正パラメータ推定精度とに基づいて、探索元の画像に含まれる画素に対応するエピポーラ線を複数算出することにより、上記課題を解決する。
【００２４】
探索範囲決定部２０４の処理の詳細について、図５を用いて説明する。図５は、探索範囲決定部２０４の内部構成の一例を示すブロック図である。探索範囲決定部２０４は、較正パラメータテーブル生成部５０１と、エピポーラ線算出部５０２と、探索範囲情報生成部５０３とを有する。較正パラメータテーブル生成部５０１は、較正パラメータ（ｘ，ｙ，ｚ，α，β，γ，ｆｘ，ｆｙ，ｃｘ，ｃｙ）と、各パラメータ推定精度（ｘe，ｙe，ｚe，αe，βe，γe，ｆｘe，ｆｙe，ｃｘe，ｃｙe）とを取得する。本実施例における較正パラメータ推定精度は各較正パラメータの最大推定誤差である。そのため、例えば、カメラ位置のｘ座標の正解値は必ず（ｘ−ｘe）≦（ｘ＋ｘe）の範囲内に含まれることがわかる。同様に他の較正パラメータについても、正解値が含まれる範囲を求めることができる。較正パラメータテーブル生成部５０１は、各較正パラメータが誤差の範囲内でとりうる全ての値を組み合わせて得られる、較正パラメータの組み合わせを格納したテーブル（以下、較正パラメータテーブルと称する）を生成する。図６は、較正パラメータテーブルを説明するための図である。図６（ａ）には、各較正パラメータがとりうる全ての値が組み合わされる様子が示されている。図６（ｂ）には、較正パラメータがとりうる全ての値を組み合わせて得られる、較正パラメータテーブルの例が示されている。図６（ａ）に示す例では、各較正パラメータがそれぞれｎ個の値をとりうるので、ｎ×ｎ×・・・×ｎ＝ｎ10個の組み合わせについてエピポーラ線がそれぞれ算出される。なお、図６（ａ）に示す例では、各較正パラメータがとりうる値の数がいずれもｎ個となっている。しかし、各較正パラメータがとりうる値の数は各較正パラメータの推定精度によるものであるため、各較正パラメータ間で異なっていても構わない。較正パラメータテーブル生成部５０１は生成した較正パラメータテーブルをエピポーラ線算出部５０２に出力する。
【００２５】
エピポーラ線算出部５０２は較正パラメータテーブルを取得し、較正パラメータテーブルに含まれる較正パラメータの組み合わせの全てについてエピポーラ線を導出する。例えば、撮像部１０１の撮像画像における、ある画素ｍ（ｕ，ｖ）に対応するエピポーラ線は、以下に示す式（３）〜式（５）により算出可能である。式（３）は撮像部１０２の撮像画像におけるエピポーラ線を表している。式（３）の変数（ａ，ｂ，ｃ）を算出することにより、エピポーラ線が求まる。ここで変数（ｕ´，ｖ´）は撮像部１０２の撮像画像の画像座標である。変数（ａ，ｂ，ｃ）は式（４）を用いて算出することができ、式（４）のＦ行列（基礎行列）は式（５）により求めることができる。
【００２６】
【数３】
2018055173.tif 000005
【００２７】
【数４】
2018055173.tif 000006
【００２８】
【数５】
2018055173.tif 000007
【００２９】
エピポーラ線算出部５０２は、較正パラメータテーブルに含まれる較正パラメータの組み合わせの全てについてエピポーラ線を表す変数（ａ，ｂ，ｃ）を算出し、算出した当該変数を探索範囲情報生成部５０３に出力する。
【００３０】
探索範囲情報生成部５０３は、エピポーラ線算出部５０２が算出した全てのエピポーラ線に基づいて、撮像部１０１の撮像画像上のある画素ｍ（ｕ，ｖ）に対応する、撮像部１０２の撮像画像上での探索範囲を決定する。図７は、探索範囲情報生成部５０３の処理を模式的に示すイメージ図である。破線で囲われた領域７１１は、撮像部１０１の撮像画像内における注目領域である。破線で囲われた領域７１２は、撮像部１０２の撮像画像内における、注目領域７１１に対応する領域である。探索範囲情報生成部５０３は、エピポーラ線算出部５０２が算出したエピポーラ線が通る座標（ｕ´，ｖ´）と、当該エピポーラ線の傾きθとを、探索範囲を示す情報（以下、探索範囲情報と称する）として記録する。例えば、エピポーラ線Ｅ１，Ｅ２，Ｅ３，・・・が算出された場合には、各エピポーラ線に対応する探索範囲情報として、（ｕ´１，ｖ´１，θ１），（ｕ´２，ｖ´２，θ２），（ｕ´３，ｖ´３，θ３），・・・が記録される。ここで、（ｕ´１，ｖ´１，θ１）におけるｕ´１，ｖ´１は、エピポーラ線Ｅ１が通る任意の座標を表し、θ１は、エピポーラ線Ｅ１の傾きを表す。（ｕ´２，ｖ´２，θ２），（ｕ´３，ｖ´３，θ３），・・・についても同様である。なお、本実施例では、エピポーラ線が通る座標としてエピポーラ線上の座標を１つ記録するようにしているが、エピポーラ線上の全ての座標を記録するようにしてもよい。
【００３１】
探索範囲情報生成部５０３は、エピポーラ線算出部５０２によって算出された全てのエピポーラ線について、エピポーラ線が通る座標（ｕ´，ｖ´）とエピポーラ線の傾きθとを記録する。その結果、図７に示すような探索範囲テーブル７０３が生成される。このようにして、撮像部１０１の撮像画像のある画素ｍ（ｕ，ｖ）に対応する、撮像部１０２の撮像画像上での探索範囲が決定される。探索範囲情報生成部５０３は、探索範囲テーブル７０３を対応探索部２０５に出力する。このようにして、各エピポーラ線に対応する探索範囲情報が対応探索部２０５に出力される。なお本実施例では、エピポーラ線算出部５０２が、エピポーラ線を表す変数（ａ，ｂ，ｃ）を算出し、探索範囲情報生成部５０３が、エピポーラ線が通る位置座標を、探索範囲情報として記録した。しかし、探索範囲の決定方法はその他の方法であってもよい。例えば、エピポーラ線算出部５０２がＦ行列（基礎行列）を算出し、探索範囲情報生成部５０３が当該Ｆ行列に基づいてエピポーラ線を算出し、算出したエピポーラ線が通る位置座標を、探索範囲情報として記録するようにしてもよい。
【００３２】
図２の説明に戻る。対応探索部２０５は、探索範囲決定部２０４から取得した探索範囲テーブル７０３に基づいて、撮像部１０１の撮像画像と撮像部１０２の撮像画像のブロックマッチングを行うことにより、対応画素を探索し、探索結果を出力する。具体的には、対応探索部２０５は、探索範囲テーブル７０３によって示される全ての探索範囲を探索ブロックで走査し、探索ブロックと注目領域との差分を算出し、その差分が最小となる探索ブロックを検出する。そして、検出された探索ブロックの中心画素が探索結果（対応画素）として出力される。本実施例ではブロックマッチングによって対応探索を行ったが、これに限らず、エピポーラ線を基準として探索する手法であれば、位相限定相関法など他の手法でも実施可能である。
【００３３】
〔画像処理部１１３の処理の流れ〕
画像処理部１１３の処理の流れについて説明する。図８は、画像処理部１１３の第１の実施例における処理の流れを示すフローチャートである。
【００３４】
図８（ａ）には、探索範囲を決定する際の処理の流れが示されている。上述したように、撮像部の較正パラメータと較正パラメータ推定精度とが既知であれば、撮像前に探索範囲を決定することが可能である。したがって、図８（ａ）に示す処理は、例えば、ＣＰＵ１０３の空き時間等に画像処理部１１３によって予め実行することが可能である。
【００３５】
まず、ステップＳ８０１において、較正情報取得部２０１はＲＡＭ１０４から較正情報を取得する。また、較正精度情報取得部２０２は、ＲＡＭ１０４から較正精度情報を取得する。
【００３６】
次いで、ステップＳ８０２において、探索範囲決定部２０４は、較正情報取得部２０１が取得した較正情報と、較正精度情報取得部２０２が取得した較正精度情報とに基づいて、注目画素に対応する探索範囲を決定する。ステップＳ８０２の処理の詳細については後述する。
【００３７】
次いで、ステップＳ８０３において、探索範囲決定部２０４は、撮像範囲内の全ての画素について、探索範囲を決定したか確認する。全ての画素について探索範囲が決定されていれば、処理は終了し、決定されていなければステップＳ８０２に処理は戻る。
【００３８】
図８（ｂ）には、対応探索が行われる際の処理の流れが示されている。まず、ステップＳ８１１において、撮像データ取得部２０３は、撮像部１０１と撮像部１０２とが撮像した撮像データを取得する。
【００３９】
次いで、ステップＳ８１２において、対応探索部２０５は、ステップＳ８０１〜Ｓ８０３の処理により決定された探索範囲と、ステップＳ８１１の処理により取得された撮像データとに基づいて、対応探索を行う。そして、対応探索部２０５は、対応探索の結果を出力する。
【００４０】
〔ステップＳ８０２における探索範囲決定部２０４の処理の流れ〕
ステップＳ８０２における探索範囲決定部２０４における処理の流れについて説明する。図９は、ステップＳ８０２における探索範囲決定部２０４の処理の流れを示すフローチャートである。
【００４１】
ステップＳ９０１において、較正パラメータテーブル生成部５０１は、較正情報取得部２０１が取得した較正情報と、較正精度情報取得部２０２が取得した較正精度情報とに基づいて、較正パラメータテーブルを生成する。そして、較正パラメータテーブル生成部５０１は、生成した較正パラメータテーブルをエピポーラ線算出部５０２に出力する。
【００４２】
ステップＳ９０２において、エピポーラ線算出部５０２は、入力した較正パラメータテーブルに含まれる較正パラメータの全ての組み合わせについて、エピポーラ線を算出する。
【００４３】
ステップＳ９０３において、探索範囲情報生成部５０３は、エピポーラ線算出部５０２が算出したエピポーラ線が通る位置座標と、当該エピポーラ線の傾きとを探索範囲情報として記録する。
【００４４】
ステップＳ９０４において、探索範囲情報生成部５０３は、較正パラメータテーブルに含まれる全ての較正パラメータについて、エピポーラ線を算出し、探索範囲を決定したか確認する。較正パラメータの全ての組み合わせについて探索範囲を決定できていなければ、処理はステップＳ９０２に移行する。全ての組み合わせについて探索範囲を決定できていれば、探索範囲決定部２０４は処理を終了し、探索範囲情報（探索範囲テーブル）を出力する。
【００４５】
〔第１の実施例の効果〕
図１０は、第１の実施例の効果を説明するための図である。ここでは、撮像部１０２の較正パラメータの１つであるα（ｘ軸周りの回転角度）にのみ誤差が含まれているときに、本実施例を適用した例を示す。図１０（ａ）には撮像部１０１の撮像画像が示されている。点１００１は注目画素を示し、破線で示される領域１００２はブロックマッチング時の注目領域を示す。図１０（ｂ）には、本実施例を適用しない場合に、ブロックマッチングにより検出される、撮像部１０２の撮像画像上の画素の一例が示されている。点１００３は点１００１に対応する画素（以下、正解対応画素と称する）を示し、破線で示される領域１００４は点１００３を中心とした探索ブロックを示す。破線１００５は、αに誤差を含んだ較正パラメータを用いて算出されたエピポーラ線を示す。エピポーラ線１００５上で注目領域１００２に類似したブロックを探索すると、領域１００７が検出され、注目画素１００１に対応する、撮像部１０２の撮像画像上の画素として点１００６の画素が出力される。領域１００７は、注目領域１００２との類似度は高いが、正解対応画素１００３からは離れた位置に検出されている。すなわち、対応探索が失敗している。図１０（ｃ）には、本実施例を適用した場合に、ブロックマッチングにより検出される撮像部１０２の撮像画像上の画素の一例が示されている。図１０（ｃ）には、図１０（ｂ）と同様に較正パラメータから算出されたエピポーラ線１００５が描かれているが、その他にエピポーラ線１００５を基準に較正パラメータ推定精度から算出したエピポーラ線も複数描かれている。本実施例では図１０（ｃ）に描かれている全てのエピポーラ線において注目画素１００１に対応する画素を探索する。そのため、正解対応画素１００３と等しい位置にある点１００８を対応画素として検出することが可能である。本実施例を適用することにより、本実施例を適用しない場合において失敗する可能性があった対応探索を、失敗することなく確実に、且つ高精度に行うことができる。また、本実施例では、エピポーラ線の算出において、処理時間がかかる較正パラメータの補正を行う必要がない。したがって、対応探索に要する処理時間をより短くすることが可能となる。
【００４６】
［実施例２］
第１の実施例では、較正パラメータと較正パラメータ推定精度とに基づいて、較正パラメータテーブルを生成し、生成した較正パラメータテーブルの較正パラメータの各組み合わせから算出したエピポーラ線上の全ての画素を対象として対応探索を行った。またこれにより、較正パラメータに含まれる誤差が原因で失敗していた対応探索の精度を向上させた。第２の実施例では、エピポーラ線の算出に用いた較正パラメータに基づいて、対応探索時の探索順序を決定し、その探索順序に基づいて対応探索を行うことにより、処理の高速化を実現する。以下では、本実施例について、第１の実施例との差異のみ説明する。
【００４７】
第２の実施例の処理装置の構成は、第１の実施例と同様である。ただし、第２の実施例における探索範囲決定部２０４の動作が、第１の実施例と異なる。第２の実施例では、エピポーラ線算出に用いた較正パラメータが、較正情報取得部２０１で取得された較正パラメータと、どの程度差があるかに基づいて探索順序を決定する。図１１は、第２の実施例における探索範囲決定部２０４の内部構成の一例を示すブロック図である。図１２は、第２の実施例における探索範囲決定部２０４の各部において受け渡しされるデータを説明するための図である。第２の実施例における探索範囲決定部２０４は、較正パラメータテーブル生成部１１０１と、エピポーラ線算出部１１０２と、探索範囲情報生成部１１０３とを有する。
【００４８】
較正パラメータテーブル生成部１１０１は、第１の実施例と同様に、較正パラメータ（ｘ，ｙ，ｚ，α，β，γ，ｆｘ，ｆｙ，ｃｘ，ｃｙ）と各パラメータ推定精度（ｘe，ｙe，ｚe，αe，βe，γe，ｆｘe，ｆｙe，ｃｘe，ｃｙe）とを取得する。そして、較正パラメータテーブル生成部１１０１は、較正パラメータテーブルを生成する。このとき、較正パラメータテーブル生成部１１０１は、所定の順序に従って、較正パラメータの各組み合わせを較正パラメータテーブルに格納する。具体的には、較正パラメータテーブル生成部１１０１は、較正パラメータの各組み合わせを、取得した較正パラメータ（ｘ，ｙ，ｚ，α，β，γ，ｆｘ，ｆｙ，ｃｘ，ｃｙ）との差が小さい順に、較正パラメータテーブルに格納する。具体的には、まず、較正パラメータテーブル生成部１１０１は、取得した較正パラメータ（ｘ，ｙ，ｚ，α，β，γ，ｆｘ，ｆｙ，ｃｘ，ｃｙ）を較正パラメータテーブル１２０１に格納する。次いで、較正パラメータテーブル生成部１１０１は、較正パラメータ（ｘ，ｙ，ｚ，α，β，γ，ｆｘ，ｆｙ，ｃｘ，ｃｙ）との差分が最も小さい、較正パラメータの組み合わせ（ｘ_１，ｙ_１，ｚ_１，α_１，β_１，γ_１，ｆｘ_１，ｆｙ_１，ｃｘ_１，ｃｙ_１）を格納する。ここで、差分とは、各較正パラメータの差分の合計（ｘ＿１−ｘ＋ｙ＿１−ｙ＋ｚ＿１−ｚ＋・・・＋ｃｘ＿１−ｃｘ＋ｃｙ＿１−ｃｙ）を示す。次いで、較正パラメータテーブル生成部１１０１は、較正パラメータ（ｘ，ｙ，ｚ，α，β，γ，ｆｘ，ｆｙ，ｃｘ，ｃｙ）との差分が２番目に小さい、較正パラメータの組み合わせ（ｘ_２，ｙ_２，ｚ_２，α_２，β_２，γ_２，ｆｘ_２，ｆｙ_２，ｃｘ_２，ｃｙ_２）を格納する。このようにして、図１２に示されるような、較正パラメータテーブル１２０１が生成される。較正パラメータテーブル生成部１１０１は、生成した較正パラメータテーブル１２０１をエピポーラ線算出部１１０２に出力する。
【００４９】
エピポーラ線算出部１１０２は、較正パラメータテーブル生成部１１０１から較正パラメータテーブル１２０１を入力する。そして、エピポーラ線算出部１１０２は、較正パラメータテーブル１２０１に格納されている較正パラメータの各組み合わせについて、格納されている順に従ってエピポーラ線を導出する。そして、エピポーラ線算出部１１０２は、導出したエピポーラ線を表す変数を格納したエピポーラ線テーブル１２０２を、探索範囲情報生成部１１０３に出力する。このとき、エピポーラ線算出部１１０２は、各エピポーラ線の導出順に従って、各エピポーラ線を表すパラメータをエピポーラ線テーブル１２０２に格納する。したがって、最初に、（ｘ，ｙ，ｚ，α，β，γ，ｆｘ，ｆｙ，ｃｘ，ｃｙ）から算出されたエピポーラ線を表す、パラメータ（ａ_１，ｂ_１，ｃ_１）がエピポーラ線テーブル１２０２に格納される。次いで、（ｘ_１，ｙ_１，ｚ_１，α_１，β_１，γ_１，ｆｘ_１，ｆｙ_１，ｃｘ_１，ｃｙ_１）から算出されたエピポーラ線を表す、パラメータ（ａ_２，ｂ_２，ｃ_２）が格納される。次いで、（ｘ_２，ｙ_２，ｚ_２，α_２，β_２，γ_２，ｆｘ_２，ｆｙ_２，ｃｘ_２，ｃｙ_２）から算出されたエピポーラ線を表す、パラメータ（ａ_３，ｂ_３，ｃ_３）が格納される。同様にして、較正パラメータの各組み合わせに対応するエピポーラ線を表すパラメータがそれぞれ、エピポーラ線テーブル１２０２に格納される。
【００５０】
探索範囲情報生成部１１０３は、入力したエピポーラ線テーブル１２０２に格納された各エピポーラ線を表す変数から、各エピポーラ線が通る座標（ｕ´，ｖ´）と各エピポーラ線の傾きθとを算出する。このとき、各エピポーラ線を表す変数が格納されている順に従って、各エピポーラ線に対応する座標と傾きとが算出される。そして、探索範囲情報生成部１１０３は、算出した座標と傾きとを探索範囲情報として、算出した順に探索範囲テーブル１２０３に格納する。このとき、最初に、（ａ_１，ｂ_１，ｃ_１）から算出された位置座標と傾き（ｕ´_１１，ｖ´_１１，θ_１），（ｕ´_１２，ｖ´_１２，θ_１）・・・・（ｕ´１ｍ，ｖ´１ｍ，θ_１）が、探索範囲テーブル１２０３に格納される。ここで、θ_１は、エピポーラ線の傾きを表し、ｕ´_１１，ｖ´_１１、ｕ´_１２，ｖ´_１２、・・・・ｕ´_１ｍ，ｖ´_１ｍは、当該エピポーラ線上の全座標を表す。次いで、（ａ_２，ｂ_２，ｃ_２）から算出された位置座標と傾き（ｕ´_２１，ｖ´_２１，θ_２），（ｕ´_２２，ｖ´２_２，θ_２）・・・・（ｕ´_２ｍ，ｖ´_２ｍ，θ_２）が探索範囲テーブル１２０３に格納される。次いで、（ａ_３，ｂ_３，ｃ_３）から算出された位置座標と傾き（ｕ´_３１，ｖ´_３１，θ_３），（ｕ´_３２，ｖ´_３２，θ_３）・・・・（ｕ´_３ｍ，ｖ´_３ｍ，θ_３）が探索範囲テーブル１２０３に格納される。同様にして、各エピポーラ線に対応する探索範囲情報がそれぞれ、探索範囲テーブル１２０３に格納される。なお、本実施例では、エピポーラ線が通る座標としてエピポーラ線上の全ての座標を記録するようにしているが、第１の実施例と同様に、エピポーラ線上の座標を１つ記録するようにしてもよい。探索範囲情報生成部１１０３は、探索範囲テーブル１２０３を対応探索部２０５に出力する。このようにして、各エピポーラ線に対応する探索範囲情報と各エピポーラ線の探索順とが対応探索部２０５に出力される。
【００５１】
対応探索部２０５は、探索範囲テーブル１２０３に格納された各探索範囲情報について、撮像部１０１の撮像画像と撮像部１０２の撮像画像のブロックマッチングを行うことにより、対応画素を探索し、探索結果を出力する。このとき、対応探索部２０５は、探索範囲テーブル１２０３の格納された各探索範囲情報について、格納順に従って対応探索を行う。なお、対応探索が行われる順序は、探索範囲テーブル１２０３における各探索範囲情報の格納順に限らない。例えば、二分探索等により探索範囲テーブル１２０３から探索範囲情報を抽出し、抽出順に従って対応探索を行うようにしてもよい。
【００５２】
第１の実施例では、探索範囲テーブル７０３によって示される全ての探索範囲を探索ブロックで走査して、注目領域との画素値の差分が最小となるブロックを検出し、当該ブロック内の中心画素を対応画素としていた。しかし、第２の実施例では、探索範囲テーブル１２０３に格納された各探索範囲情報によって示される探索範囲を、当該テーブルにおける各探索範囲情報の格納順に応じて走査する。そして、対応探索部２０５は、注目領域との差分が閾値以下であるブロックを検出した場合に、そのブロック内の中心画素を対応画素と決定し、探索を終了する。
【００５３】
〔第２の実施例の効果〕
上述したように、第１の実施例では、全ての探索範囲を探索ブロックで走査して、探索ブロックと注目領域との差分を算出し、その差分が最小となる探索ブロックの中心画素を対応画素として決定する。一方、第２の実施例では、各探索範囲について探索順を決定し、探索順に従って探索範囲を探索ブロックで走査し、対応画素が検出された時点で、探索を終了する。そのため、第１の実施例より処理量を軽減することができる。また、より高速に処理することが可能となる。
【００５４】
（その他の実施例）
本発明は、上述した実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５５】
１０４  ＲＡＭ
２０４  探索範囲決定部
２０５  対応探索部
【図１】
2018055173.tif 000008
【図２】
2018055173.tif 000009
【図３】
2018055173.tif 000010
【図４】
2018055173.tif 000011
【図５】
2018055173.tif 000012
【図６】
2018055173.tif 000013
【図７】
2018055173.tif 000014
【図８】
2018055173.tif 000015
【図９】
2018055173.tif 000016
【図１０】
2018055173.tif 000017
【図１１】
2018055173.tif 000018
【図１２】
2018055173.tif 000019