説明

画像処理装置および方法、並びにプログラム

【課題】ディスパリティ画像を生成するためのステレオ画像を撮像するカメラの光軸のずれを補正する。
【解決手段】カメラ21−1,21−2は、異なる視点から、同一の被写体を撮像する。画像ずれ補正部22は、撮像された複数の画像を、ずれ調整部24の調整パラメータ保存部82に保存されている調整パラメータに基づいて変形し、それぞれ補正画像を生成する。マッチング部23は、ステレオマッチング処理によりディスパリティ画像を生成すると共に、複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値をマッチング評価値として算出する。ずれ調整部24は、調整パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、マッチング評価値が最小となるように調整パラメータを更新して、調整パラメータ保存部82に保存する。本発明は、ディスパリティ画像生成装置に適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、ディスパリティ画像(奥行画像)の生成に際し、カメラの撮像方向のずれによるエラーを容易にキャリブレーションできるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
同一の被写体を複数のカメラにより異なる角度から撮像し、それぞれの画像の視差方向の対応点探索によりディスパリティ画像(奥行画像)を生成する技術が一般に普及しつつある。
【0003】
ディスパリティ画像を生成するに当たり、複数のカメラの撮像方向のずれが生じるとエラーが発生し、正確なディスパリティ画像が求められないことが知られている。このため、ディスパリティ画像を生成するに当たっては、カメラの撮像方向のずれにより生じるエラーを最小にするためのキャリブレーションが必要とされている。
【0004】
キャリブレーションにあたっては、例えば、位置関係が既知である複数の特徴点を有する平面チャートからなるキャリブレーションパタンと呼ばれる画像を撮像し、キャリブレーションパタンの撮像結果に基づいて、キャリブレーションする技術が提案されている(非特許文献1参照)。
【0005】
また、ディスパリティ画像を求めるために用いられる画像より特徴点を検出し、カメラのキャリブレーションをするための、撮像方向を指定するキャリブレーションパラメータを求め、求められたキャリブレーションパラメータによりキャリブレーションする技術が提案されている(非特許文献2参照)。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】A Flexible New Technicque for Camera Calibration,Microsoft Research,http://research.microsoft.com/~zhang
【非特許文献2】ステレオカメラのセルフキャリブレーション,富田文明ほか,情報処理,May 1990
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、非特許文献1の技術においては、ユーザ環境において、手間のかかるキャリブレーションパタンを撮像する必要があり、必要とされる作業内容を鑑みても現実的ではない。また、仮に、製造時にこの処理を行うようにする場合、製造コストの増大を招くこととなる。さらに、経年劣化による機械精度の保証も必要となり、機械部分の材料コスト、組み立てコストに関しても増大することとなる。
【0008】
さらに、非特許文献2の技術においては、画像より取得される特徴点の検出精度に大きく依存するため、キャリブレーションのロバスト性が低い。また、特徴点検出を行うためのハードウェアもしくはソフトウェアの専用処理が別途必要となり、ユーザ環境で行う構成としても、また、製造時に行う構成としても、コストの増大を招く。
【0009】
本発明はこのような状況に鑑みてなされたものであり、特に、ディスパリティ画像の生成に際して、複数のカメラの撮像方向のずれを調整するパラメータを変化させながら、エラー量が最小となるようにすることで容易にキャリブレーションできるようにするものである。
【課題を解決するための手段】
【0010】
本発明の一側面の画像処理装置は、異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得手段と、前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正手段と、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出手段と、前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新手段とを含む。
【0011】
前記更新手段には、前記パラメータのうち、前記画像の全範囲において、2次元方向に荒い画素間隔でシフト量を変化させ、前記評価値が最小となるシフト量に更新させ、さらに、前記荒い画素間隔でシフト量を変化させることにより探索されたシフト量近傍の範囲において、2次元方向に詳細な画素間隔でシフト量を変化させて評価値が最小となるシフト量に更新させるようにすることができる。
【0012】
前記更新手段には、前記パラメータのうち、前記複数の画像間の対応付けの方向である、視差の探索方向に対し直交する傾き成分を変化させて評価値が最小となる傾き成分に更新させるようにすることができる。
【0013】
前記更新手段には、前記パラメータのうち、前記複数の画像間の対応付けの方向である、視差の探索方向に対し直交する方向に、前記傾き成分を分割し、それぞれ個別に変化させて評価値が最小となる傾き成分に更新させるようにすることができる。
【0014】
前記評価値算出手段には、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、前記画像の周辺部の寄与が小さくなるように評価値として算出させるようにすることができる。
【0015】
前記評価値算出手段には、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、ブロックマッチングの差分絶対値和の全画面総和として算出し、算出結果を評価値とするようにさせることができる。
【0016】
前記評価値算出手段には、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、動的計画法を用いて算出し、算出結果を評価値とするようにさせることができる。
【0017】
前記評価値算出手段には、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、前記複数の補正画像間のずれ量毎にブロックマッチングの差分絶対値和の全画面総和として算出させ、算出結果のうち、ずれ量が0に最も近い極小値を評価値とするようにさせることができる。
【0018】
前記評価値算出手段には、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、前記複数の補正画像間のずれ量の粗い間隔毎にブロックマッチングの差分絶対値和の全画面総和として算出し、算出結果から、ずれ量が0に最も近い範囲で、かつ、極小値を含む範囲を探索した後、探索された範囲で詳細に求められる前記全画像総和の極小値を評価値とするようにさせることができる。
【0019】
前記評価値算出手段には、前記画像ずれ補正手段により生成された複数の補正画像のうち、基準画像と、それ以外の参照画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値の総和を評価値として算出させるようにすることができる。
【0020】
異なる視点から、同一の被写体を撮像する撮像手段をさらに含み、
前記画像取得手段は、前記撮像手段により異なる視点から、同一の被写体を撮像する複数の画像を取得し、
前記画像ずれ補正手段は、前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて、前記撮像手段における撮像方向となる光軸を動作させるようにすることで、変形し、それぞれ補正画像を生成する。
【0021】
本発明の一側面の画像処理方法は、異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得手段と、前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正手段と、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出手段と、前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新手段とを含む画像処理装置の画像処理方法であって、前記画像取得手段における、異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得ステップと、前記画像ずれ補正手段における、前記画像取得ステップの処理により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正ステップと、前記評価値算出手段における、前記画像ずれ補正ステップの処理により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出ステップと、前記更新手段における、前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新ステップとを含む。
【0022】
本発明の一側面のプログラムは、異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得手段と、前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正手段と、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出手段と、前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新手段とを含む画像処理装置を制御するコンピュータに、前記画像取得手段における、異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得ステップと、前記画像ずれ補正手段における、前記画像取得ステップの処理により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正ステップと、前記評価値算出手段における、前記画像ずれ補正ステップの処理により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出ステップと、前記更新手段における、前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新ステップとを含む処理を実行させる。
【0023】
本発明の一側面においては、異なる視点から、同一の被写体を撮像する複数の画像が取得され、取得された複数の画像が、画像ずれを補正するためのパラメータに基づいて変形され、それぞれ補正画像が生成され、生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値が評価値として算出され、前記パラメータのうち、視差方向の対応付けに必要とされるパラメータが変化されて、前記評価値が最小となるようにパラメータが更新される。
【0024】
本発明の画像処理装置は、独立した装置であっても良いし、画像処理を行うブロックであっても良い。
【発明の効果】
【0025】
本発明の一側面によれば、ディスパリティ画像(奥行画像)の生成に際し、カメラの撮像方向のずれによるエラーを容易にキャリブレーションすることが可能となる。
【図面の簡単な説明】
【0026】
【図1】本発明を適用した画像処理装置の第1の実施の形態の構成例を示すブロック図である。
【図2】入力画像および奥行画像を説明する図である。
【図3】カメラの構成を説明する図である。
【図4】入力画像と補正画像との座標の関係を説明する図である。
【図5】入力画像を補正する際のパラメータを説明する図である。
【図6】図1の画像処理装置によるキャリブレーション処理を説明するフローチャートである。
【図7】図1の画像処理装置による簡易位置調整処理を説明するフローチャートである。
【図8】図1の画像処理装置によるスレテオマッチング処理を説明するフローチャートである。
【図9】簡易位置調整処理を説明する図である。
【図10】図1の画像処理装置による詳細位置調整処理を説明するフローチャートである。
【図11】詳細位置調整処理を説明する図である。
【図12】図1の画像処理装置による傾き調整処理を説明するフローチャートである。
【図13】傾き調整処理を説明する図である。
【図14】本発明を適用した画像処理装置の第2の実施の形態の構成例を示すブロック図である。
【図15】光軸調整量を説明する図である。
【図16】図14の画像処理装置による簡易位置調整処理を説明するフローチャートである。
【図17】本発明を適用した画像処理装置の第3の実施の形態の構成例を示すブロック図である。
【図18】図17の画像処理装置によるステレオマッチング処理を説明する図である。
【図19】図17の画像処理装置によるステレオマッチング処理を説明する図である。
【図20】図17の画像処理装置によるステレオマッチング処理を説明する図である。
【図21】図17の画像処理装置によるステレオマッチング処理を説明するフローチャートである。
【図22】図17の画像処理装置によるステレオマッチング処理を説明する図である。
【図23】図17の画像処理装置によるステレオマッチング処理を説明する図である。
【図24】汎用のパーソナルコンピュータの構成例を説明する図である。
【発明を実施するための最良の形態】
【0027】
以下、発明を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
1. 第1の実施の形態(ソフトウェアプログラムでキャリブレーションする場合の一例)
2. 第2の実施の形態(ハードウェアを動作させてキャリブレーションする場合の一例)
3. 第3の実施の形態(その他のステレオマッチング処理を実施する一例)
【0028】
<1.第1の実施の形態>
[画像処理装置の構成例]
図1は、本発明を適用した画像処理装置のハードウェアの一実施の形態の構成例を示している。図1の画像処理装置11は、カメラ21−1,21−2のそれぞれにより撮像された画像より、各画素の画素値を撮像位置から被写体までの距離に反比例した値としたディスパリティ画像(奥行画像)を生成する。すなわち、カメラ21−1,21−2により撮像された画像が図2の上部で示されるような画像P1である場合、画像処理装置11は、図2の下部で示されるようなディスパリティ画像P2を生成する。図2の画像P1においては、画像内に人物、雲、および太陽が含まれている。これに対して、ディスパリティ画像P2は、画像P1における被写体となる人物について、身体本体より前面で、撮像位置に近い左右の手の先が明るく表示されており、手先より撮像位置より遠い身体本体はやや暗い色とされている。そして、被写体となる人物の身体より遠い雲や太陽については、十分に撮像位置から遠いため、暗い色にされている。また、画像処理装置11は、ディスパリティ画像を生成するにあたり、カメラ21−1,21−2の撮像方向のずれにより生じるディスパリティ画像のエラーを最小にするようにキャリブレーションを掛ける。
【0029】
より具体的には、画像処理装置11は、カメラ21−1,21−2、画像ずれ補正部22、マッチング部23、およびずれ調整部24を備えている。カメラ21−1,21−2は、例えば、図3で示されるように、それぞれ同一の被写体を左右の異なる視点から撮像するように設定されており、それぞれ撮像した画像を画像ずれ補正部22に供給する。尚、カメラ21−1,21−2については、異なる視点から撮像できる構成であればよいので、図3で示されるように左右の異なる視点からではなく、例えば、上下に異なる視点からであってもよい。また、複数の異なる視点から撮像できる構成であればよいので、2個のカメラにより2点の異なる視点からの画像でなくてもよく、それ以上の複数の視点から撮像される複数の画像を用いるようにしてもよい。ただし、以降においては、説明の便宜上、左右の異なる視点から撮像される2個のカメラ21−1,21−2であるものとして説明を進めるものとする。
【0030】
画像ずれ補正部22は、カメラ21−1,21−2より供給されてくる画像を、ずれ調整部24により調整されたパラメータに基づいて、画像を補正し、補正画像をそれぞれマッチング部23に供給する。より詳細には、画像ずれ補正部22は、射影変換部41−1,41−2、および射影変換パラメータ算出部42を備えている。射影変換パラメータ算出部42は、ずれ調整部24の調整パラメータ保存部82に保存されている調整パラメータに基づいて、射影変換パラメータを算出し、射影変換部41−1,41−2に供給する。射影変換部41−1,41−2は、射影変換パラメータに基づいて、それぞれカメラ21−1,21−2より供給されてくる画像の各画素の画素位置を変換した補正画像を生成して、マッチング部23に供給する。
【0031】
射影変換部41−1,41−2は、具体的には、例えば、図4の画像PL1,PR1を、射影変換パラメータにより、図4の画像PL2,PR2のように変換する。図4の画像PL1は、カメラ21−1により撮像された画像であり、画像PL2は、射影変換部41−1により射影変換され、補正された補正画像を示している。また、同様に、図4の画像PR2は、カメラ21−2により撮像された画像であり、画像PR2は、射影変換部41−2により射影変換され、補正された補正画像を示している。すなわち、射影変換元の4頂点の各座標(x_left[n],y_left[n])に対応する、射影変換先の座標は(X_left[n],Y_left[n])と表されるものとする。なお、nは頂点4点を識別する識別子とされており0≦n<3である。
【0032】
射影変換先の長方形は、カメラ画像の水平ピクセルサイズをW、垂直ピクセルサイズをHとし、以下の式(1)乃至(4)のように表され、例えば、W=320,H=240である。
【0033】
【数1】

【数2】

【数3】

【数4】

【0034】
ここで、BW,BHは、水平・垂直の画面端から、長方形までのピクセル数を表し、例えば、BW=64,BH=64である。尚、式(1)乃至式(4)においては、画像PL1を画像PL2に変換する場合の例についての変換式であるが、基本的に、画像PR1を画像PR2に変換する変換式についても同様であるので、その説明は省略する。
【0035】
また、調整パラメータは、(ΔX,ΔY,ΔS0,ΔY0,ΔS1,ΔY1)で表され、上記の長方形状の画像における各頂点を射影変換するためのパラメータである。
【0036】
調整パラメータのうち、ΔX,ΔYは、それぞれ、水平方向、および垂直方向の全画面でのカメラ画像のずれを補正するパラメータである。例えば、ΔYは、正の方向に大きいとき、図5の画像PL11で示されるように、射影変換元の基準長方形をΔYだけ下側へ移動させたり、または、図5の画像PR11で示されるように、ΔYだけ上部へ移動することに対応する。このパラメータは、例えば、入力された左右カメラ画像の左側が右側に対し理想的な状態から画像全体でnピクセル下へずれている場合は、ΔY=nとすることで、左右画像間の上下ずれを補正することができる。同様に、ΔXに関しては、図5の画像PL12,PR12で示されるように、左右のずれを補正するパラメタとなる。
【0037】
調整パラメータΔS0、ΔY0、ΔS1、ΔY1は、上部の傾きおよび上部の垂直方向のオフセット、並びに、下部の傾きおよび下部の垂直方向のオフセットを合わせるパラメタである。後述する、2枚の補正画像のステレオマッチングにおいては、垂直方向のわずか(サブピクセル精度)でもズレがあると、マッチングがうまくいかずエラーとして現れることが知られている。そこで、画像中の上部と下部について別々に調整する。すなわち、調整パラメータΔS0により、図5の画像PL13,PR13で示されるように、上部の傾きを調整し、調整パラメータΔS1により、図5の画像PL14,PR14で示されるように、下部の傾きを調整する。また、画像中の上部と下部について別々に、調整パラメータΔY0により、図5の画像PL15,PR15で示されるように、上部のオフセットを調整し、調整パラメータΔY1により、図5の画像PL16,PR16で示されるように、下部のオフセットを調整する。
【0038】
そして、調整パラメータ(ΔX,ΔY,ΔS0,ΔS1,ΔY0,ΔY1)は、ずれ調整部24において、マッチング部23におけるディスパリティ画像におけるエラーが最小となるように調整されている。射影変換元の4頂点の各座標(x_left[n],y_left[n])は、これらの調整パラメータ(ΔX,ΔY,ΔS0,ΔS1,ΔY0,ΔY1)と、射影変換先の座標(X_left[n],Y_left[n])とにより以下の式(5)乃至式(12)のように表されることになる。
【0039】
【数5】

【数6】

【数7】

【数8】

【数9】

【数10】

【数11】

【数12】

【0040】
上のようにして求めた、左右の射影変換元と射影先の座標をそれぞれ(x,y)、(X,Y)に置き換えると、次のように、射影変換パラメタa,b,c,d,e,f,g,hを用いて、以下の式(13),式(14)で表すことができる。
【0041】
【数13】

【数14】

【0042】
上記の式は、射影変換前の座標(x,y)と射影変換後の座標 (X,Y)をそれぞれ(xn,yn),(Xn,Yn)(nは0,1,2,3)とし、射影変換パラメータをP=(a,b,c,d,e,f,g,h)とおくと、以下の式(15)のように変形することができる。
【0043】
【数15】

【0044】
上述した式(15)の(xn,yn)へ、x_left[n],y_left[n]の座標を代入し、(Xn,Yn)へX_left[n],Y_left[n]を代入することによって、射影変換パラメータPを、それぞれ連立方程式の解として求めることができる。
【0045】
以下、上記で求めた左画像用、右画像用の射影変換パラメータPは、それぞれ、Pleft,Prightとする。
【0046】
すなわち、射影変換部41−1,41−2は、上述したように求めた、射影変換パラメータPleft,Prightに基づいて、カメラ21−1,21−2のそれぞれで撮像された画像に対して、式(13),式(14)による射影変換処理を行い、補正画像を生成する。尚、射影変換での画素値の対応付けについては、エイリアシングの発生を抑えるため、バイリニア法、バイキュービック法等による、周辺画素を用いた画素補間を行うことが望ましい。
【0047】
マッチング部23は、画像ずれ補正部22より供給されてくる視点の異なるカメラ21−1,21−2により撮像された画像が調整パラメータに基づいて補正された画像を用いて、ディスパリティ画像を生成する。また、マッチング部23は、ディスパリティ画像のエラーを評価するマッチング評価値を計算して、ずれ調整部24に供給する。
【0048】
より詳細には、マッチング部23は、垂直エッジ検出部61−1,61−2、およびステレオマッチング部62を備えている。垂直エッジ検出部61−1,61−2は、それぞれカメラ21−1,21−2により撮像された画像に対応する補正画像に対して、エッジ検出フィルタ処理をすることによりエッジ検出画像を生成してステレオマッチング部62に供給する。ステレオマッチング部62は、カメラ21−1,21−2により撮像された画像に対応するエッジ検出画像を用いてステレオマッチング処理を実行し、ディスパリティ画像を生成すると共に、ディスパリティ画像のエラーを評価するマッチング評価値を算出する。
【0049】
より詳細には、ステレオマッチング部62は、類似度計算部101、ペナルティ計算部102、コスト計算部103、マッチング評価値計算部104、およびディスパリティ計算部105を備えている。類似度計算部101は、2枚のエッジ検出画像の類似度similarityを計算する。ペナルティ計算部102は、隣接する画素間のディスパリティの変化に対するペナルティpenaltyを計算により求める。コスト計算部103は、2枚のエッジ検出画像の水平方向のライン毎の類似度similarityとペナルティpenaltyとを加算することによりコストcostを計算する。マッチング評価値計算部104は、全てのライン毎のコストcostの総和をマッチング評価値errorとして計算する。ディスパリティ計算部105は、コストcostを最小にするときの各画素のディスパリティdispalityを求め、ディスパリティ画像として出力する。
【0050】
ずれ調整部24は、マッチング評価値errorが最小となるように、調整パラメータ(ΔX,ΔY,ΔS0,ΔS1,ΔY0,ΔY1)を更新する。より詳細には、ずれ調整部24は、調整パラメータ更新部81、および調整パラメータ保存部82を備えている。調整パラメータ更新部81は、調整パラメータ(ΔX,ΔY,ΔS0,ΔY0,ΔS1,ΔY1)を変化させながら、マッチング評価値errorを求め、マッチング評価値errorが最小となるように更新して、調整パラメータ保存部82に保存させる。
【0051】
より詳細には、調整パラメータ更新部81は、簡易位置調整部121、詳細位置調整部122、および傾き調整部123を備えている。簡易位置調整部121は、調整パラメータのうち、視差の探索方向のパラメータである調整パラメータ(ΔX,ΔY)を画像の全範囲について、比較的荒い画素の間隔で、変化させて、最もマッチング評価値errorが小さくなるように、調整パラメータ(ΔX,ΔY)を調整する。詳細位置調整部122は、簡易位置調整部121により求められた調整パラメータ(ΔX,ΔY)の近傍において、画素間の間隔を徐々に小さくしながら変化させて、マッチング評価値errorが最小となるように、調整パラメータ(ΔX,ΔY)を詳細に調整する。傾き調整部123は、調整パラメータのうち、視差の探索方向に対して直交する方向のパラメータである調整パラメータ(ΔS0,ΔY0,ΔS1,ΔY1)を、調整パラメータΔS0→ΔY0→ΔS1→ΔY1→・・の順序で徐々に変化の間隔を小さくしながら繰り返して、マッチング評価値errorが最小となるように、調整パラメータ(ΔS0,ΔY0,Δ
S1,ΔY1)を調整する。
【0052】
すなわち、画像処理装置11においては、ずれ調整部24により調整された調整パラメータにより、画像ずれ補正部22が、カメラ21−1,21−2により撮像される画像を補正して、補正画像としてマッチング部23に供給する。そして、マッチング部23が、2枚の補正画像に基づいてステレオマッチング処理によりディスパリティ画像を生成すると共に、マッチング評価値errorを算出する。ずれ調整部24が、このマッチング評価値errorを最小にするように、調整パラメータを更新する。この一連の処理が繰り返されることにより、マッチング評価値errorが最小となるところで、調整パラメータが収束し、キャリブレーションが完了し、以降においては、高い精度でディスパリティ画像を生成することが可能となる。
【0053】
[キャリブレーション処理]
次に、図6のフローチャートを参照して、キャリブレーション処理について説明する。
【0054】
ステップS1において、ずれ調整部24の調整パラメータ更新部81は、調整パラメータ(ΔX,ΔY,ΔS0,ΔY0,ΔS1,ΔY1)の基準となるベース調整量(ΔXbase,ΔYbase,ΔS0base,ΔY0base,ΔS1base,ΔY1base)を、調整パラメータとして取り得る値のいずれかに初期化する。初期化する値としては、例えば、調整パラメータとして取り得る値の範囲の最小値、または最大値などである。
【0055】
ステップS2において、調整パラメータ更新部81は、簡易位置調整部121を制御して、簡易位置調整処理を実行させて、簡易的にマッチング評価値errorが小さくなる概略の調整パラメータ(ΔX,ΔY)を求める。
【0056】
[簡易位置調整処理]
ここで、図7のフローチャートを参照して、簡易位置調整処理について説明する。
【0057】
ステップS21において、簡易位置調整部121は、エラー最小値error_minを定義して、初期化すると共に、調整パラメータであるΔX,ΔY,ΔS0,ΔY0,ΔS1,ΔY1の調整変数ΔX’,ΔY’,ΔS0’,ΔY0’,ΔS1’,ΔY1’を初期化する。より具体的には、簡易位置調整部121は、エラー最小値error_minとして考えられる最大値を代入すればよく、例えば、エラー最小値error_min=0xffffffffとするようにしてもよい。尚、簡易位置調整処理においては、調整パラメータのうちΔX,ΔYのみしか扱わないため、この調整パラメータのみが初期化されれば、その他の値は、所定の値に設定されているのみでもよい。
【0058】
ステップS22において、簡易位置調整部121は、調整パラメータ(ΔX,ΔY,ΔS0,ΔY0,ΔS1,ΔY1)を、調整変数(ΔX’,ΔY’,ΔS0’,ΔY0’,ΔS1’,ΔY1’)を用いて計算し更新し、調整パラメータ保存部82に保存する。すなわち、簡易位置調整部121は、調整パラメータのそれぞれについて、ベース調整量に調整変数の値を加算することにより(ΔX=ΔXbase+ΔX’,ΔY=ΔYbase+ΔY’,ΔS0=ΔS0base+ΔS0’,ΔY0=ΔY0base+ΔY0’,ΔS1=ΔS1base+ΔS1’,ΔY1=ΔY1base+ΔY1’)計算し、更新する。ここで、(ΔXbase,ΔYbase,ΔS0base,ΔY0base,ΔS1base,ΔY1base)は、それぞれ調整パラメータ(ΔX,ΔY,ΔS0,ΔY0,ΔS1,ΔY1)のベース調整量である。
【0059】
ステップS23において、画像ずれ補正部22の射影変換パラメータ算出部42は、調整パラメータ保存部82に保存されている調整パラメータ(ΔX,ΔY,ΔS0,ΔY0,ΔS1,ΔY1)を読み出して、上述した式(13),式(14)により射影変換パラメータPを算出し、射影変換部41−1,41−2に供給する。
【0060】
ステップS24において、射影変換部41−1,41−2は、射影変換パラメータPに基づいて、カメラ21−1,21−2より供給されてくる画像を射影変換することで、補正画像を生成し、マッチング部23に供給する。
【0061】
ステップS25において、マッチング部23の垂直エッジ検出部61−1,61−2は、画像ずれ補正部22の射影変換部41−1,41−2のそれぞれから供給されてくる補正画像に垂直エッジ検出フィルタにより処理を施して、垂直エッジを検出する。そして、垂直エッジ検出部61−1,61−2は、それぞれ検出した垂直エッジからなるエッジ検出画像をステレオマッチング部62に供給する。
【0062】
より詳細には、垂直エッジ検出部61−1,61−2は、入力されたカメラ21−1,21−2により撮像された画像が画像ずれ補正部22により補正された補正画像のDC(Direct Current)のオフセット成分による左右間の差異の影響をなくすために、ステレオマッチングにおいて必要な水平方向のエッジ情報の抽出をおこなった、エッジ画像を生成する。垂直エッジ検出部61−1,61−2は、入力された補正画像の各画素を注目画素とするとき、例えば、その注目画素を中心として、3画素×3画素の方形のSobelフィルタによる処理を施す。より具体的には、垂直エッジ検出部61−1,61−2は、以下の式(16)で示される演算により、入力画像の注目画素の輝度値をg(x,y)、出力画像の輝度値をf(x,y)として演算する。
【0063】
【数16】

【0064】
ここで、hは、例えば、以下の式(17)で示されるSobelフィルタを示す行列式である。
【0065】
【数17】

【0066】
ステップS26において、ステレオマッチング部62は、供給されてきたカメラ21−1,21−2によりそれぞれ撮像された画像に対応するエッジ検出画像を用いてステレオマッチング処理を実行することにより、マッチング評価値errorを算出すると共に、ディスパリティ画像を生成する。
【0067】
[ステレオマッチング処理]
ここで、図8のフローチャートを参照して、ステレオマッチング処理について説明する。
【0068】
尚、ここでは、カメラ21−1,21−2により撮像された画像のうち、左画像を基準としたときの、右画像の対応点までのディスパリティを求める例を示すものとする。また、左画像をp(x,y),右画像をq(x,y)とし、求めるディスパリティは、disparity(x,y)(0≦disparity(x,y)≦d_max)とする。d_maxは、求めるディスパリティの最大値であり、例えば、d_max=63である。
【0069】
ステップS51において、類似度計算部101は、左右画像間の類似度を表すsimilarity(x,y,d)を以下の式(18)を計算する。
【0070】
【数18】

【0071】
尚、類似度similarity(x,y,d)を求める式(18)においては、3画素×3画素のブロック領域の輝度差の差分絶対値和(SAD)を用いる例が示されているが、このブロックサイズには限定されるものではない。また、類似度similarity(x,y,d)を求めるにあたっては、差分絶対値和(SAD)ではなく、差分二乗和(SSD)等が用いられる計算であってもよい。また、ここで、dは、水平方向のずれ量である。
【0072】
ステップS52において、ペナルティ計算部102は、ディスパリティdisparity(x,y)は滑らかに変化するという制約を加えるペナルティを計算する。より詳細には、ペナルティ計算部102は、水平方向に隣合う画素のディスパリティ値をd0,d1とするとき、以下の式(19)のように定義する。
【0073】
【数19】

【0074】
ここで、λは、ディスパリティの変化量の絶対値に比例してペナルティを変化させる重みであり、例えば、λ=5などである。尚、式(19)は、必ずしも比例式でなくてもよく、ディスパリティdisparity(x,y)の変化量に応じて増加する関数であればよい。
【0075】
ステップS53において、コスト計算部103は、各ライン(y=0)毎に、x=0からx=W−1の間において、左右画像間の類似度similarity(x,y,d)とディスパリティ値の連続性に関するペナルティpenalty(d0,d1)を加算していったときのコスト関数を以下の式(20)のように計算する。
【0076】
【数20】

【0077】
ステップS54において、ディスパリティ計算部105は、式(20)を計算することにより、ディスパリティを計算する。より詳細には、ディスパリティ計算部105は、例えば、x=0から、x=W-1までのディスパリティを求める場合、cost_min(W−1,y)を最小化することによって、各ピクセルのディスパリティdisparity(x,y)を求める。この最小化計算に関しては、動的計画法(Dynamic Programming)を用いることによって比較的少ない演算量で実現することが可能である。このような、ステレオマッチングのディスパリティ算出のために、上記と同様に動的計画法を使用する例は、現在は、広く知られている。動的計画法を用いたステレオマッチングについては、例えば、Yuichi Ohta, Takeo Kanade Stereo by Intra- and Inter-Scanline Search Using Dynamic Programming IEEE Transactions on Pattern Analysis and Machine Intelligence,1985を参照されたい。
【0078】
尚、コスト関数の定義も様々な手法があるが、上記に限定されず、ステレオマッチング処理によるエラー量に対応してコストが増加するような関数であれば、他の手法を用いてもよい。
【0079】
ステップS55において、マッチング評価値計算部104は、以下の式(21)で示されるように、上記の式(20)で示されるcost_min(x,y)の全ラインでの総和をマッチング処理における評価値errorとして計算し、ずれ調整部24に供給する。
【0080】
【数21】

【0081】
ただし、画像端部分は、対応点の欠落等で統計的に正しい情報が少ないので、ピクセル単位での類似度とペナルティ量の和を求め、全画面で重み付けを行いながらその総和を求めて、これを評価値としてもよい。
【0082】
すなわち、画素単位でのコストcost(x,y)は、以下の式(22)のように表される。
【0083】
【数22】

【0084】
そこで、マッチング評価値計算部104は、式(22)で表されるコストcost(x,y)に対して、画面端部の寄与が下がるように重み付けし、さらに、積分することにより、以下の式(23)で示されるように計算するようにしてもよい。このようにすることで、マッチング評価値計算部104は、重み付けにより画像端部分の寄与を小さくしたマッチング評価値を計算することが可能となる。
【0085】
【数23】

【0086】
ここで、weight(a)は、重み付け関数であり、例えば、以下の式(24)で示すような関数としてもよい。
【0087】
【数24】

【0088】
ここで、引数のaは、有効画素の位置(x,y)を、水平もしくは垂直軸上で0から1.0で表している。なお、重み付けの方法としては、端部の寄与が下がるようなものであれば、その他の関数であってもよいものである。
【0089】
なお、上記においては、左画像を基準として右画像の対応を求めるステレオマッチングの結果を求める例について説明してきたが、同様に右画像を基準として左画像の対応を求めることができる。そこで、マッチング評価値計算部104は、これらを用いて、左右それぞれを基準としたマッチング評価値を、error_left_base,error_right_baseとし、それらの和を以下の式(25)で示すように定義して求め、これをマッチング評価値してもよい。このように左右それぞれを基準としたステレオマッチングを行うことにより、互いに死角となり参照できない領域(オクリュージョン)部分の評価値を上乗せできるため、評価値としての特性をより向上させることが可能となる。
【0090】
【数25】

【0091】
ここで、図7のフローチャートの説明に戻る。
【0092】
ステップS27において、ずれ調整部24における調整パラメータ更新部81の簡易位置調整部121は、求められたマッチング評価値errorが、今現在のエラー最小値error_minよりも小さいか否かを判定する。ステップS27において、マッチング評価値errorが、エラー最小値error_minよりも小さい場合、最小値が更新されたものとみなし、処理は、ステップS28に進む。
【0093】
ステップS28において、簡易位置調整部121は、このときの調整パラメータ(ΔX,ΔY,ΔS0,ΔY0,ΔS1,ΔY1)を調整パラメータの最小値(ΔXmin,ΔYmin,ΔS0min,ΔY0min,ΔS1min,ΔY1min)として記憶する。このとき、簡易位置調整部121は、エラー最小値error_minを、今現在のマッチング評価値errorに更新する。
【0094】
一方、ステップS27において、マッチング評価値errorがエラー最小値error_minよりも小さくない場合、ステップS28の処理はスキップされる。
【0095】
ステップS29において、簡易位置調整部121は、調整変数のうち、ΔX’,ΔY’で定義される、マッチング評価値errorの最小値の探索範囲のうち、未処理の探索範囲が残っているか否かを判定する。調整変数ΔX’,ΔY’,ΔS0’,ΔY0’,ΔS1’,ΔY1’の探索範囲は、それぞれ、ΔX’min乃至ΔX’max,ΔY’min乃至ΔY’max,ΔS0’min乃至ΔS0’max,ΔY0’min乃至ΔY0’max,ΔS1’min乃至ΔS1’max,ΔY1’min乃至ΔY1’maxで表現されることになる。そこで、調整変数ΔX’,ΔY’,ΔS0’,ΔY0’,ΔS1’,ΔY1’の探索範囲は、それぞれΔX’min≦ΔX’≦ΔX’max,ΔY’min≦ΔY’≦ΔY’max,ΔS0’min≦ΔS0’≦ΔX’max,ΔY0’min≦ΔY0’≦Y0’max,ΔS1’min≦ΔS1’≦ΔX’max,ΔY1’min≦ΔY1’≦Y1’maxのように定義される。
【0096】
ステップS29において、探索範囲が残されていると判定された場合、ステップS30において、簡易位置調整部121は、調整変数(ΔX’,ΔY’)を未処理の探索範囲のものに更新し、処理は、ステップS22に戻る。
【0097】
すなわち、例えば、探索範囲における探索対象となる画素が、図9で示されるように定義される場合、図中の左上の丸印で示される画素SL1から矢印の順序でSLmまで順次設定される。このとき、探索変数ΔX’,ΔY’の探索間隔をΔX’step,ΔY’stepとすれば、ΔX’min乃至ΔX’maxにおいては、ΔX’=ΔX’+ΔX’stepにより順次更新され、X’maxになると、ΔY’=ΔY’+ΔY'stepにより更新されて、ΔX’=ΔX’minとされ、ΔY’min乃至ΔY’maxの範囲で同様の処理が繰り返されて、X’=X’maxで、かつ、Y’=Y’maxのとき処理が終了することになる。
【0098】
そして、ステップS29において、探索範囲が残されていないと判定された場合、処理は、ステップS31に進む。
【0099】
ステップS31において、簡易位置調整部121は、エラー最小値error_minにおける調整パラメータの最小値(ΔXmin,ΔYmin,ΔS0min,ΔY0min,ΔS1min,ΔY1min)に基づいて、ベース調整量(ΔXbase,ΔYbase,ΔS0base,ΔY0base,ΔS1base,ΔY1base)を更新する。すなわち、簡易位置調整部121は、ベース調整量(ΔXbase,ΔYbase)を、エラー最小値error_minにおける調整パラメータの最小値(ΔXmin,ΔYmin)に設定し、処理を終了する。
【0100】
すなわち、以上の処理により、画像の全範囲において、マッチング評価値errorが最小となる調整パラメータ(ΔX,ΔY)となる、概ねの位置をベース調整量(ΔXbase,ΔYbase)として求めることが可能となる。
【0101】
ここで、図6のフローチャートの説明に戻る。
【0102】
ステップS3において、調整パラメータ更新部81の詳細位置調整部122は、簡易位置調整処理により簡易的に求められた概略の調整パラメータ(ΔX,ΔY)に基づいて、詳細位置調整処理を実行し、より詳細にマッチング評価値errorが最小となる概略の調整パラメータ(ΔX,ΔY)を求める。
【0103】
[詳細位置調整処理]
ここで、図10のフローチャートを参照して、詳細位置調整処理について説明する。
【0104】
ステップS81において、詳細位置調整部122は、後述する繰り返し回数をカウントするカウンタrを初期化する。
【0105】
ステップS82において、詳細位置調整部122は、直前の処理でエラー最小値error_minとなる調整パラメータ(ΔX,ΔY)の近傍に縮小した探索範囲を設定する。
【0106】
ステップS83において、詳細位置調整部122は、探索変数ΔX’,ΔY’の探索間隔を、探索範囲に対応付けて縮小する。
【0107】
すなわち、図11の上段の丸印で示される各画素の探索範囲内において、色付きの丸印で示される画素が、1回目の処理でエラー最小値error_minとなる調整パラメータΔXまたはΔYを示す場合、詳細位置調整部122は、2回目の処理では、図11の中段の丸印が示されるように、探索画素の間隔(ΔX’stepまたはΔY’step)を小さくし、さらに、探索された1回目の処理で求められた画素の近傍の範囲を探索範囲に設定する。同様に、図11の中段の丸印で示される各画素の探索範囲内において、色付きの丸印の画素が、2回目の処理でエラー最小値error_minとなる調整パラメータΔXまたはΔYを示す場合、詳細位置調整部122は、3回目の処理では、図11の下段の丸印で示されるように、探索画素の間隔(ΔX’stepまたはΔY’step)をさらに小さくし、2回目に探索された画素の近傍の範囲を探索範囲に設定する。
【0108】
尚、ステップS84乃至S92の処理については、図7のステップS22乃至S30の処理と同様であるので、その説明は省略するものとする。
【0109】
すなわち、ステップS84乃至S92の処理により、探索範囲、および、探索変数の変化が縮小されて、マッチング評価値errorがエラー最小値error_minとなる調整パラメータ(ΔX,ΔY)が求められると、処理は、ステップS93に進む。
【0110】
ステップS93において、詳細位置調整部122は、繰り返し回数のカウンタrが所定回数となり、所定回数だけ探索範囲、および、探索変数の変化を縮小して、マッチング評価値errorがエラー最小値error_minとなる調整パラメータ(ΔX,ΔY)が求められたか否かを判定する。ステップS93において、例えば、繰り返し回数が所定回数ではないと判定された場合、ステップS94において、詳細位置調整部122は、カウンタrを1インクリメントして、処理は、ステップS82に戻る。すなわち、ステップS82乃至S94の処理が、所定回数だけ繰り返される。そして、ステップS93において、所定回数だけ繰り返されたと判定された場合、処理は、ステップS95に進む。
【0111】
ステップS95において、詳細位置調整部122は、エラー最小値error_minにおける調整パラメータの最小値(ΔXmin,ΔYmin,ΔS0min,ΔY0min,ΔS1min,ΔY1min)に基づいて、ベース調整量(ΔXbase,ΔYbase,ΔS0base,ΔY0base,ΔS1base,ΔY1base)を更新する。すなわち、詳細位置調整部122は、ベース調整量(ΔXbase,ΔYbase)を、エラー最小値error_minにおける調整パラメータの最小値(ΔXmin,ΔYmin)に設定し、処理を終了する。
【0112】
すなわち、以上の処理により、概ねの位置として求められたベース調整量(ΔXbase,ΔYbase)が求められた近傍の範囲において、所定回数だけ探索範囲、および、探索変数の変化を縮小して、マッチング評価値errorがエラー最小値error_minとなる調整パラメータ(ΔX,ΔY)が求められる処理が繰り返される。結果として、マッチング評価値errorがエラー最小値error_minとなる調整パラメータ(ΔX,ΔY)が詳細に求められ、ベース調整量(ΔXbase,ΔYbase)として格納することが可能となる。
【0113】
ここで、図6のフローチャートの説明に戻る。
【0114】
ステップS3の詳細位置調整処理により調整パラメータ(ΔX,ΔY)が詳細に求められると、処理は、ステップS4に進む。
【0115】
ステップS4において、傾き調整部123は、傾き調整処理を実行することにより、マッチング評価値errorがエラー最小値error_minとなる調整パラメータ(ΔS0,ΔY0,ΔS1,ΔY1)を求める。
【0116】
[傾き調整処理]
ここで、図12のフローチャートを参照して、傾き調整処理について説明する。
【0117】
ステップS101において、傾き調整部123は、繰り返し回数をカウントするカウンタr、および後述する調整パラメータを識別するカウンタkを0に初期化する。
【0118】
ステップS102において、傾き調整部123は、直前の処理でエラー最小値error_minとなる調整パラメータZ(k)(k=0乃至3)(=(ΔS0,ΔY0,ΔS1,ΔY1))の近傍に縮小した探索範囲を設定する。ここでは、調整パラメータ(ΔS0,ΔY0,ΔS1,ΔY1)を、カウンタkにより調整パラメータZ(k)(k=0乃至3)で表現するものとする。すなわち、調整パラメータZ(0)は、調整パラメータΔS0であり、調整パラメータZ(1)は、調整パラメータΔY0であり、調整パラメータZ(2)は、調整パラメータΔS1であり、調整パラメータZ(3)は、調整パラメータΔY1である。また、調整パラメータのそれぞれについて探索範囲が設定され、最初の処理においては、取り得る値の全範囲であってもよいものである。
【0119】
ステップS103において、傾き調整部123は、探索変数ΔS0’,ΔY0’,ΔS1’,ΔY1’の探索間隔を、探索範囲に対応付けて設定する。すなわち、上述した探索範囲ΔX’,ΔY’の探索間隔を設定した場合と同様に、探索範囲、および繰り返し回数に対応付けて縮小されて設定される。
【0120】
尚、ステップS104乃至S112の処理については、図7のステップS22乃至S30の処理と同様であるので、その説明は省略するものとする。
【0121】
すなわち、ステップS104乃至S112の処理により、探索範囲、および、探索変数の変化が縮小されて、マッチング評価値errorがエラー最小値error_minとなる調整パラメータZ(k)が求められると、処理は、ステップS113に進む。
【0122】
ステップS113において、傾き調整部123は、カウンタkがk=3であるか否かを判定する。ステップS113において、カウンタkがk=3ではない場合、ステップS114において、カウンタkが1インクリメントされて、処理は、ステップS104に戻る。
【0123】
すなわち、ステップS104乃至S114の処理が繰り返されることにより、カウンタkが1インクリメントされる度に、マッチング評価値errorがエラー最小値error_minとなる調整パラメータが、ΔS0→ΔY0→ΔS1→ΔY1の順序で切り替えられて求められる。そして、ステップS113において、カウンタkがk=3、すなわち、調整パラメータΔS0,ΔY0,ΔS1,ΔY1の4種類が全て求められた場合、処理は、ステップS115に進む。
【0124】
ステップS115において、傾き調整部123は、繰り返し回数のカウンタrが所定回数となり、所定回数だけ探索範囲、および、探索変数の変化を縮小して、マッチング評価値errorがエラー最小値error_minとなる調整パラメータΔS0,ΔY0,ΔS1,ΔY1の4種類の全てが求められたか否かを判定する。ステップS115において、例えば、繰り返し回数が所定回数ではないと判定された場合、ステップS116において、傾き調整部123は、繰り返し回数をカウントするカウンタrを1インクリメントする。そして、ステップS117において、傾き調整部123は、調整パラメータZ(k)を識別するカウンタkを1インクリメントして、処理は、ステップS102に戻る。すなわち、ステップS102乃至S117の処理が、所定回数だけ繰り返されることにより、調整パラメータΔS0,ΔY0,ΔS1,ΔY1が、ΔS0→ΔY0→ΔS1→ΔY1の順序で切り替えられながら、探索範囲、および、探索変数の変化が縮小されて、マッチング評価値errorがエラー最小値error_minとなる調整パラメータZ(k)が求められる処理が繰り返される。そして、ステップS115において、所定回数だけ繰り返されたと判定された場合、処理は、ステップS116に進む。
【0125】
ステップS116において、傾き調整部123は、エラー最小値error_minにおける調整パラメータの最小値(ΔXmin,ΔYmin,ΔS0min,ΔY0min,ΔS1min,ΔY1min)に基づいて、ベース調整量(ΔXbase,ΔYbase,ΔS0base,ΔY0base,ΔS1base,ΔY1base)を更新する。すなわち、傾き調整部123は、ベース調整量(ΔS0base,ΔY0base,ΔS1base,ΔY1base)を、エラー最小値error_minにおける調整パラメータの最小値(ΔS0min,ΔY0min,ΔS1min,ΔY1min)に設定し、処理を終了する。
【0126】
すなわち、傾き調整部123は、図13の上部の1段目乃至4段目に対応する調整パラメータΔS0,ΔY0,ΔS1,ΔY1のそれぞれについて、ライン上に丸印で示される各画素の探索範囲内において、それぞれ色付きの丸印で示される画素が、1回目の処理でエラー最小値error_minとなる調整パラメータΔS0,ΔY0,ΔS1,ΔY1として求められた場合、2回目の処理では、図13の下部の1段目乃至4段目に対応する調整パラメータΔS0,ΔY0,ΔS1,ΔY1のそれぞれについて、ライン上に丸印で示されるように、探索画素の間隔(ΔS0’step,ΔY0’step,ΔS1’step,ΔY1’step)を小さくし、さらに、探索された画素の近傍の範囲を探索範囲に設定する。
【0127】
すなわち、以上の処理により、ベース調整量(ΔS0base,ΔY0base,ΔS1base,ΔY1base)が求められた近傍の範囲において、所定回数だけ探索範囲、および、探索変数の変化を縮小して、マッチング評価値errorがエラー最小値error_minとなる調整パラメータ(ΔS0,ΔY0,ΔS1,ΔY1)が繰り返し求めることが可能となる。結果として、マッチング評価値errorがエラー最小値error_minとなる調整パラメータ(ΔS0,ΔY0,ΔS1,ΔY1)を詳細に求めることが可能となる。
【0128】
ここで、図6のフローチャートの説明に戻る。
【0129】
ステップS4の処理により、マッチング評価値errorがエラー最小値error_minとなる調整パラメータ(ΔS0,ΔY0,ΔS1,ΔY1)として、ベース調整量(ΔS0base,ΔY0base,ΔS1base,ΔY1base)が求められると、処理は、ステップS5に進む。
【0130】
ステップS5において、調整パラメータ更新部81は、上述したステップS3,S4の処理により求められたベース調整量(ΔXbase,ΔYbase,ΔS0base,ΔY0base,ΔS1base,ΔY1base)を、調整パラメータ(ΔX,ΔY,ΔS0,ΔY0,ΔS1,ΔY1)として調整パラメータ保存部82に保存し、処理を終了する。
【0131】
例えば、上述したステップS3,S4の処理における繰り返し回数を3回であるものとした場合、調整パラメータの水平方向の範囲としては、ΔX'min=−4.0/N,ΔX'max=+4.0/Nとし、垂直方向の範囲としてはΔY'min=−2.0/N,ΔY'max=+2.0/Nとする。また、水平方向の間隔としては、ΔX'step=−1.0/Nとし、垂直方向の間隔としてはΔY'step=−0.5/N,ΔY'max=+0.5/Nのようにしてもよい。さらに、この場合、上部傾きの範囲としてはΔS0'min=−2.0/N,ΔS0'max=+2.0/Nとし、上部垂直方向の範囲としてはΔY0'min=−1.0/N,ΔY0'max=+1.0/Nとしてもよい。また、同様の場合、下部傾きの範囲としては、ΔS1'min=−2.0/N,ΔS1'max=+2.0/Nとし、下部垂直方向の範囲としてはΔY1'min=−1.0/N,ΔY1'max=+1.0/Nとするようにしてもよい。さらにこの場合、上部傾きの間隔としてはΔS0'step=0.5/N、上部垂直方向の間隔としてはΔY0'step=0.25/N、下部傾きの間隔としてはΔS1'step=0.5/N、下部垂直方向の間隔としてはΔY1'step=0.25/Nとするようにしてもよい。
【0132】
以上の処理により、ステレオ画像を撮像する画像に基づいたステレオマッチングの処理によるディスパリティ画像におけるエラーの量を評価するマッチング評価値errorが最小となるように調整パラメータを設定することが可能となるので、ステレオ画像を撮像する複数のカメラの撮像方向のずれを、調整パラメータにより調整することが可能となる。また、上述したキャリブレーション処理が実行される間も、ステレオマッチング処理が繰り返されるので、ディスパリティ画像は生成され続けるため、ディスパリティ画像を生成し続けている状態のまま、キャリブレーション処理を継続することができ、製品として製造する間に別途キャリブレーションをするための工程を設ける必要がないため、製造コストをかけることなく、ユーザが使用するだけでキャリブレーションを実現することが可能となる。また、ディスパリティ画像を生成し続けながらキャリブレーションを繰り返すことができるので、経年劣化によりカメラ21−1,21−2の光軸が変化しても、その変化に追従してキャリブレーションを掛ける事が可能となる。また、撮像された画像の全範囲を用いて得られるマッチング評価値に基づいてキャリブレーションを掛ける事ができるので、よりロバスト性の高いキャリブレーションを掛ける事が可能となる。
【0133】
<2.第2の実施の形態>
[画像処理装置のその他の構成例]
以上においては、キャリブレーション処理をソフトウェアプログラムにより実現する場合について説明してきたが、カメラ21−1,21−2の撮像方向などを制御するハードウェアの動作を制御することにより実現できるようにしてもよい。図14は、ハードウェアの動作を制御してキャリブレーションできるようにした本発明を適用した画像処理装置のハードウェアのその他の形態の構成例を示している。尚、図14において、図1と同一の構成については、同一の名称、および同一の符号を付しており、その説明は適宜省略するものとする。
【0134】
図14の画像処理装置11において、図1の画像処理装置11と異なる点は、画像ずれ補正部22に代えて、画像ずれ補正部151を備えた点である。
【0135】
画像ずれ補正部22においてカメラ21−1,21−2のそれぞれの撮像画像をソフトウェアプログラムにより撮像された画像を補正して補正画像を生成していた。これに対して、画像ずれ補正部151は、カメラ21−1,21−2の撮像方向を制御して補正画像を生成する。
【0136】
具体的には、画像ずれ補正部151は、図15の左部の矢印t1,t2で示されるように、カメラ21−1,21−2のチルト方向を制御する。また、画像ずれ補正部151は、図15の中央部の矢印p1,p2で示されるように、カメラ21−1,21−2のパン方向を制御する。さらに、画像ずれ補正部151は、図15の右部の矢印r1,r2で示されるように、カメラ21−1,21−2の回転方向を制御する。
【0137】
より詳細には、画像ずれ補正部151は、光軸調整量変換部171、および光軸調整部172−1,172−2を備えている。光軸調整量変換部171は、調整パラメータ保存部82に保存されている調整パラメータ(ΔX,ΔY,ΔS0,ΔY0,ΔS1,ΔY1)に基づいて、カメラ21−1,21−2のそれぞれをチルト、パン、回転のそれぞれを制御する光軸調整量を生成する。
【0138】
光軸調整部172−1,172−2は、それぞれカメラ21−1,21−2のチルト、パン、回転を物理的に制御して、カメラ21−1,21−2のそれぞれにより撮像される画像のずれを補正することで、結果として、補正画像を生成して、マッチング部23に供給する。
【0139】
尚、図14の画像処理装置11におけるキャリブレーション処理については、図6のステップS2乃至S4の一部が異なるのみであるので、異なる処理についてのみ説明する。
【0140】
[簡易位置調整処理]
図16のフローチャートを参照して、異なる処理である簡易位置調整処理について説明する。尚、図16のフローチャートにおいては、ステップS123,S124の処理を除いては、図7のフローチャートにおけるステップS21,S22,S25乃至S31の処理と同様であるので、その説明は省略するものとする。
【0141】
すなわち、ステップS123において、光軸調整量変換部171は、調整パラメータ保存部82に保存されている調整パラメータ(ΔY,ΔY0,ΔY1)に基づいてチルトの調整量を求め、調整パラメータΔXに基づいて、パンの調整量を求め、調整パラメータ(ΔS0,ΔS1)に基づいて、回転の調整量を求める。そして、光軸調整量変換部171は、求めた調整量の情報を光軸調整部172−1,172−2に供給する。
【0142】
ステップS124において、光軸調整部172−1,172−2は、光軸調整量変換部171からの調整量に基づいて、カメラ21−1,21−2のパン、チルト、および回転を制御することで、補正画像を生成し、マッチング部23に供給する。
【0143】
尚、ステップS3,S4の処理に対応する詳細位置調整処理、および傾き調整処理についても、それぞれ対応するステップS85,S86の処理、およびステップS105,S106の処理をステップS123,S124と同様の処理とすることで同様の処理を実現することが可能となる。このため、その説明は省略するものとする。
【0144】
以上の処理により、図14の画像処理装置11においても、図1の画像処理装置11における場合のキャリブレーション処理と同様の効果を得ることが可能となる。
【0145】
<3.第3の実施の形態>
[画像処理装置のその他の構成例]
以上においては、ステレオマッチング処理において、動的計画法などを用いてディスパリティを求めた後、マッチング評価値を計算する例について説明してきたが、動的計画法を用いたディスパリティの算出は、処理負荷が高く、これに伴って、処理時間も必要とされる。そこで、より簡易な方法でマッチング評価値errorを定義することにより、動的計画法などによるディスパリティの計算をすることなく、ステレオマッチング処理を実現するようにしてもよい。
【0146】
図17は、ステレオマッチング処理において、簡易なマッチング評価値errorを計算するようにした画像処理装置11の構成例を示している。尚、図17の画像処理装置11において、図1の画像処理装置11と同一の機能を備えた構成については、同一の名称、および同一の符号を付すものとし、その説明については適宜省略するものとする。すなわち、図17の画像処理装置11において、図1の画像処理装置11と異なるのは、マッチング部23において、垂直エッジ検出部61−1,61−2が削除されていること、および、ステレオマッチング部62において、類似度計算部101乃至ディスパリティ計算部105に代えて、コスト計算部201、マッチング評価値計算部202、およびディスパリティ計算部203が設けられた点である。
【0147】
コスト計算部201は、図18で示されるように、画像ずれ補正部22より供給されてくる左右画像間におけるブロック間のマッチングエラー量の評価値を表すコストcostの最小値を、左右の画像を垂直方向にずらしながら、そのずれ量に対応付けて計算する。すなわち、図18の上段で示されるように、例えば、基準となる左画像P11が所定のサイズに分割されてブロックが設定される。そして、コスト計算部201は、例えば、図18の上段のブロックBに対応する右画像P12上の領域Z1内で、画素単位で順次水平方向にずらしながら求められるブロック間の画素間差分和をコストcostとして計算する。尚、領域Z1は、例えば、右画像P2が左画像P1に対して、垂直方向にずれ量Δyだけずらされた状態において、ブロックBと同じ高さで、かつ、左画像P11上のブロックBの水平位置に対応する右画像P12上の範囲を含み、水平方向にブロックBよりも長い範囲として設定されるものである。さらに、コスト計算部201は、図18の下段で示されるように、左画像P11に対して垂直方向に対するずれ量Δy1から、例えば、ずれ量Δy2まで、画素単位で変化させ、ずれ量Δyに応じて領域Z2を設定することで順次コストcostを計算し、ずれ量Δyに対応付けて記憶する。
【0148】
マッチング評価値計算部202は、まず、垂直方向のずれ量Δy毎に、基準となる左画像に設定されたブロック単位で、対応する右画像に設定された領域の中で求められた最小となるコストcostをそれぞれに求める。そして、マッチング評価値計算部202は、その全ブロックに対して求められた最小となるコストcostの、全画像分の総和を、ずれ量Δy毎のマッチング評価値errorとして計算する。マッチング評価値計算部202は、このような処理により、例えば、図19で示されるように、ずれ量Δyに対するマッチング評価値errorの変化を示す波形Wを求める。さらに、図19で示されるように、マッチング評価値計算部202は、ずれ量Δy毎のマッチング評価値errorが最小となるずれ量Δyminのマッチング評価値errorを、左画像P11を基準としたときの右画像P12に対するマッチング評価値errorとして出力する。
【0149】
尚、ビルディングを所定の距離だけ離れた位置で撮像することにより、ビルディングの側壁に設けられた格子状の窓ガラスが映し出されるような2枚のステレオ画像の場合、ずれ量Δy毎のマッチング評価値errorとずれ量Δyとの関係は、例えば、図20で示されるような波形W1となることがある。このような場合、極小点が複数に存在することとなるため、例えば、最小値となる極小点を、基準となる左画像に対する右画像のマッチング評価値としたとき、図20においては、ずれ量Δymin1が正しいマッチング評価値errorであったとしても、より小さいずれ量Δymin2が左画像に対する右画像のマッチング評価値errorとして設定されることで、エラーが生じることがある。
【0150】
しかしながら、一般に、3Dカメラや、3Dビデオカメラ等の1の筐体に2のカメラが備えられるような機器の場合、2枚の画像のずれ量Δyは小さいと予想される。すなわち、1の筐体に2のカメラを備えた撮像機器であるような場合、カメラ間のおおよその位置は固定されているので、振動、経年劣化、または衝撃等で若干、位置関係が変化する程度であるものと予想される。そこで、1の筐体に2のカメラが備えられる場合、2枚の画像のずれ量Δyは、垂直ずれがない状態付近、すなわち、垂直ずれ量Δy=0付近に正解が存在するものとする。したがって、図20のような場合、ずれ量Δy=0に近い、ずれ量Δymin1におけるマッチング評価値errorが採用されるものとする。
【0151】
ディスパリティ計算部203は、マッチング評価値計算部202により求められたマッチング評価値errorが最小となる左画像の各ブロックと、対応する右画像のブロックとの関係からなる画素間の関係から画素単位のディスパリティdispalityを求める。そして、ディスパリティ計算部203は、求められたディスパリティdispalityに基づいて、ディスパリティ画像を生成して出力する。
【0152】
[ステレオマッチング処理]
次に、図21のフローチャートを参照して、図17の画像処理装置11によるステレオマッチング処理について説明する。
【0153】
尚、図17の画像処理装置11のキャリブレーション処理と、図6を参照して説明した図1の画像処理装置11によるキャリブレーション処理とは、ステレオマッチング処理を除き略同様の処理であるので、ここでは、ステレオマッチング処理のみを説明するものとする。ただし、図17の画像処理装置11においては、垂直エッジ検出部61−1,61−2が省略されているため、いずれも左右の補正画像よりエッジ検出画像を生成する処理が省略される。すなわち、図7の簡易位置調整処理におけるステップS25、図10の詳細位置調整処理におけるステップS87、および図12の傾き調整処理におけるステップS107のそれぞれの処理が省略されることになる。
【0154】
また、ここでは、カメラ21−1,21−2により撮像された画像のうち、左画像を基準としたときの、マッチング評価値、および右画像の対応点までのディスパリティを求める例を示すものとする。さらに、左画像をp(x,y),右画像をq(x,y)とし、求めるディスパリティは、disparity(x,y)(d_min≦disparity(x,y)≦d_max)とする。d_minは、求めるディスパリティの最小値であり、例えば、d_min=−63である。d_maxは、求めるディスパリティの最大値であり、例えば、d_max=63である。
【0155】
ステップS201において、コスト計算部201は、ずれ量を示すカウンタΔycをΔyc=0に初期化する。
【0156】
ステップS202において、コスト計算部201は、ずれ量Δycのマッチングエラー量の評価値であるマッチング評価値を算出するに当たり、基準となる左画像の各ブロック毎に、対応する右画像の参照領域に対して、水平方向にずらしながら以下の式(26)を計算してコストcost(x,y,d)を計算する。
【0157】
【数26】

【0158】
尚、コストcost(x,y,d)を求める式(26)においては、3画素×3画素のブロック領域の輝度差の差分絶対値和(SAD)を用いる例が示されているが、このブロックサイズに限定されるものではない。また、コストcost(x,y,d)を求めるにあたっては、差分絶対値和(SAD)ではなく、差分二乗和(SSD)等が用いられる計算であってもよい。また、ここで、dは、水平方向のずれ量である。
【0159】
さらに、マッチング評価値計算部202は、各ブロックについて、水平方向のずれ量dのうち、コストcost(x,y,d)が最小となるものmin(cost(x,y,d))を選び出して、全ブロックにおける総和を以下の式(27)で示されるように算出して、ずれ量Δycのマッチング評価値errorとして計算する。
【0160】
【数27】

【0161】
ステップS203において、コスト計算部201は、ずれ量Δycに対して、所定の距離(step:定数)だけ離れた近傍に存在するずれ量ΔyL(=c−step),ΔyR(=c+step)を設定する。尚、ずれ量Δyに対するマッチング評価値errorの関係については、例えば、図22で示されるように、横軸を垂直方向のずれ量とし、縦軸をずれ量毎のマッチング評価値errorとした波形を生成する必要があるため、図22で示されるような波形上におけるずれ量Δycに対して左側に設定されるずれ量がずれ量ΔyL(=c−step)として設定され、同様に、ずれ量Δycに対して右側に設定されるずれ量がΔyR(=c+step)として設定される。
【0162】
ステップS204において、コスト計算部201およびマッチング評価値計算部202は、それぞれ上述した式(26),式(27)を計算することにより、それぞれのずれ量ΔyL,ΔyRにおけるコストcostおよびマッチング評価値errorを算出する。
【0163】
ステップS205において、マッチング評価値計算部202は、以下の式(28)の関係を満たすか否かに基づいて、ずれ量ΔyL乃至ΔyRの範囲において、マッチング評価値errorの極小値を含むか否かを判定する。
【0164】
【数28】

【0165】
ここで、Δynは、所定の垂直方向のずれ量であり、ずれ量Δyn+i,Δyn−iは、それぞれずれ量Δynから正負の方向にそれぞれi画素だけ離れたずれ量であり、Th0は、所定の閾値である。また、ここでは、ずれ量Δyn−i,Δyn,Δyn+iは、ずれ量ΔyL,Δyc,ΔyRに対応し、iはstepに対応する(i=step)。すなわち、ずれ量を横軸として、縦軸にマッチング評価値とする波形が構成される場合、ずれ量ΔyL,Δyc,ΔyRの順にマッチング評価値errorが求められるとき、ずれ量Δycを頂点とする下に凸の波形が形成されるとき、true(極小値を含む)となり、それ以外のときfalse(極小値を含まない)とされる。したがって、例えば、図22の上段で示されるような場合、ずれ量ΔyL,Δyc,ΔyRの順に単調増加しているため、上述した式(28)の関係が満たされないので、処理は、ステップS206に進む。
【0166】
ステップS206において、マッチング評価値計算部202は、ずれ量ΔyL,ΔyRのそれぞれに対応するマッチング評価値errorのうち、小さい方をずれ量ΔycとなるようにカウンタΔycを設定し、処理は、ステップS203に戻る。
【0167】
すなわち、例えば、図22の上段で示されるように、ずれ量Δyc=0の状態でずれ量Δycが設定されて、その左右にずれ量ΔyL,ΔyRが設定される場合、ずれ量ΔyL,Δyc,ΔyRの順に単調増加するとき、ずれ量ΔyL乃至ΔyRに極小値が存在しない。そこで、図22の下段で示されるように新たにずれ量ΔyL乃至ΔyRが設定される。すなわち、図22の上段においては、ずれ量ΔyL,ΔyRのうち、ずれ量ΔyLのマッチング評価値errorの方が小さいので、ずれ量ΔyLが、次のずれ量Δycに設定され、新たに設定されたずれ量Δycの前後に、新たなずれ量ΔyL,ΔyRが設定されることになる。これは、上述したようにずれ量Δycがゼロに近い極小値を、基準となる左画像に対する右画像のマッチング評価値error(基準画像に対する参照画像のマッチング評価値error)であるものとみなすようにした拘束条件に基づくものであり、順次、ずれ量Δy=0に近い位置で上述したような極小値を含む範囲が探索されるまで、ステップS203乃至S206の処理が繰り返される。
【0168】
ステップS206において、例えば、図22の下段で示されるように、ずれ量Δycに対応して設定されたずれ量ΔyL乃至ΔyRの範囲に極小値を含むような関係となり、すなわち、ずれ量Δycのマッチング評価値を極小値とした下に凸の波形が形成されるとき、式(28)の条件が満たされるので、処理は、ステップS207に進む。
【0169】
ステップS207において、コスト計算部201、およびマッチング評価値計算部202は、ずれ量ΔyL,ΔyRに対応するずれ量Δyc−step乃至Δyc+step間に存在する全てのマッチング評価値を計算する。すなわち、図23の上段の白丸で示されるように、ずれ量Δycに対応して設定されたずれ量ΔyL,ΔyRが極小値を含むような関係となった場合、図23の下段の黒丸で示される、全てのマッチング評価値が求められる。
【0170】
ステップS208において、マッチング評価値計算部202は、ずれ量Δyc−step乃至Δyc+step間に存在する全てのずれ量に対するマッチング評価値のうち、最小値となるものを左画像(基準画像)に対する右画像(参照画像)のマッチング評価値errorとして採用する。すなわち、このように求められた基準画像である左画像に対する参照画像である右画像のマッチング評価値errorは、ずれ量Δy=0に最も近いずれ量であって、かつ、マッチング評価値errorの極小値が採用されることになる。したがって、例えば、図23の下段で示されるような場合、求められた全てのマッチング評価値errorのうち、ずれ量Δyminで示される位置のマッチング評価値errorが、基準画像である左画像に対する右画像のマッチング評価値errorとして採用される。
【0171】
ステップS209において、ディスパリティ計算部203は、マッチング評価値errorに採用されたずれ量Δyに対応する左右画像のブロック間の関係に基づいて、ディスパリティを計算し、計算結果に基づいて、ディスパリティ画像を生成して出力する。
【0172】
以上の処理により、i=stepを垂直方向のずれの最小単位に対してある程度大きく設定することで、粗めにマッチング評価値の極小値が存在する範囲を、ずれ量Δy=0に近い範囲から検索した後、検索された範囲内についてのみ、詳細に全てのずれ量Δyについてマッチング評価値errorを計算するようにすることで、高速に基準画像に対する参照画像のマッチング評価値errorを特定することが可能となる。また、以上のステレオマッチング処理においては、動的計画法などの処理負荷の大きな処理を含まないので、処理負荷を軽減することが可能となり、処理を高速化することが可能となる。尚、stepとして設定されたずれ量Δycからの距離に対して十分に小さい間隔でマッチング評価値が求められるのであれば、極小値を含む範囲が求められた後には、その範囲内において、必ずしも全てのずれ量に対するマッチング評価値を求めなくてもよい。すなわち、どのずれ量に対するマッチング評価値が、ずれ量Δy=0より最も近く、かつ、極小値であるという拘束条件を満たすものであるかが判断できればよいので、ずれ量に対するマッチング評価値を全て求める必要はなく、必要に応じて、その間隔は間引くようにしてもよい。このように、ずれ量に対するマッチング評価値を間引いて求めることで、ステレオマッチング処理の負荷をより軽減させることができ、処理速度を、より高速化することが可能となる。
【0173】
尚、以上においては、極小値を含むか否かの判定において、上述した式(28)の関係が満たされるか否かにより判定されていたが、極小値を含むか否かの判定が可能である限り、その他の方法で判定するようにしても良く、例えば、以下の式(29)で示されるような傾きの関係に基づいて、極小値を含むか否かを判定するようにしてもよい。
【0174】
【数29】

【0175】
ここで、Th1は所定の閾値を示している。すなわち、式(29)においては、ずれ量Δynからずれ量Δyn+iに対しては、ずれ量に対するマッチング評価値の傾きが、所定の閾値Th1よりも大きな正の傾きであって、かつ、ずれ量Δyn−iからずれ量Δynに対しては、ずれ量に対するマッチング評価値の傾きが、所定の閾値−Th1よりも小さな負の傾きであるとき、true(極小値を含む)となり、それ以外のときfalse(極小値を含まない)とされる。
【0176】
以上によれば、動的計画法のような負荷の大きな計算を用いることなくステレオマッチング処理を実現することができるので、処理速度を向上させることが可能となる。また、粗い精度でずれ量Δy=0を含む近傍からマッチング評価値の極小値を含む範囲をずれ量Δy=0から離れるように順次探索した後、探索された範囲内のみのマッチング評価値を詳細に求めて極小値を探索するようにしたので、ずれ量Δy=0から最も近くで、かつ、極小値となるずれ量Δyに対するマッチング評価値を、基準画像に対する参照画像とのマッチング評価値として高速で探索することが可能となる。尚、画像処理装置11の処理速度が、例えば、十分に速く、処理に余裕があるような場合、全てのずれ量Δyに対するマッチング評価値を求めた後、求められたずれ量Δyに対するマッチング評価値から、ずれ量Δy=0に最も近く、かつ、極小となるマッチング評価値を、基準画像に対する参照画像とのマッチング評価値として探索するようにしてもよい。さらに、以上においては、垂直方向のずれ量Δyについて、マッチング評価値を求める例について説明してきたが、同様に水平方向のずれ量に対してマッチング評価値を求めて、その最小値を基準画像に対する参照画像のマッチング評価値とするようにしてもよい。
【0177】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0178】
図24は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタ-フェイス1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
【0179】
入出力インタ-フェイス1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブルメディア1011に対してデータを読み書きするドライブ1010が接続されている。
【0180】
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア1011から読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0181】
以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを、入出力インタフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
【0182】
コンピュータ(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0183】
コンピュータでは、プログラムは、リムーバブルメディア1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、あらかじめインストールしておくことができる。
【0184】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0185】
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0186】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0187】
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0188】
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0189】
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0190】
尚、本技術は、以下のような構成も取ることができる。
(1) 異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得手段と、
前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正手段と、
前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出手段と、
前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新手段と
を含む画像処理装置。
(2) 前記更新手段は、前記パラメータのうち、前記画像の全範囲において、2次元方向に荒い画素間隔でシフト量を変化させ、前記評価値が最小となるシフト量に更新し、さらに、前記荒い画素間隔でシフト量を変化させることにより探索されたシフト量近傍の範囲において、2次元方向に詳細な画素間隔でシフト量を変化させて評価値が最小となるシフト量に更新する
(1)に記載の画像処理装置。
(3)
前記更新手段は、前記パラメータのうち、前記複数の画像間の対応付けの方向である、視差の探索方向に対し直交する傾き成分を変化させて評価値が最小となる傾き成分に更新する
(1)または(2)に記載の画像処理装置。
(4) 前記更新手段は、前記パラメータのうち、前記複数の画像間の対応付けの方向である、視差の探索方向に対し直交する方向に、前記傾き成分を分割し、それぞれ個別に変化させて評価値が最小となる傾き成分に更新する
(3)に記載の画像処理装置。
(5) 前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、前記画像の周辺部の寄与が小さくなるように評価値として算出する
(1)乃至(3)のいずれかに記載の画像処理装置。
(6) 前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、ブロックマッチングの差分絶対値和の全画面総和として算出し、算出結果を評価値とする
(1)乃至(5)のいずれかに記載の画像処理装置。
(7) 前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、動的計画法を用いて算出し、算出結果を評価値とする
(6)に記載の画像処理装置。
(8) 前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、前記複数の補正画像間のずれ量毎にブロックマッチングの差分絶対値和の全画面総和として算出し、算出結果のうち、ずれ量が0に最も近い極小値を評価値とする
(6)に記載の画像処理装置。
(9) 前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、前記複数の補正画像間のずれ量の粗い間隔毎にブロックマッチングの差分絶対値和の全画面総和として算出し、算出結果から、ずれ量が0に最も近い範囲で、かつ、極小値を含む範囲を探索した後、探索された範囲で詳細に求められる前記全画像総和の極小値を評価値とする
(8)に記載の画像処理装置。
(10) 前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像のうち、基準画像と、それ以外の参照画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値の総和を評価値として算出する
(1)乃至(9)のいずれかに記載の画像処理装置。
(11) 異なる視点から、同一の被写体を撮像する撮像手段をさらに含み、
前記画像取得手段は、前記撮像手段により異なる視点から、同一の被写体を撮像する複数の画像を取得し、
前記画像ずれ補正手段は、前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて、前記撮像手段における撮像方向となる光軸を動作させるようにすることで、変形し、それぞれ補正画像を生成する
(1)乃至(10)に記載の画像処理装置。
(12) 異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得手段と、
前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正手段と、
前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出手段と、
前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新手段と
を含む画像処理装置の画像処理方法であって、
前記画像取得手段における、異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得ステップと、
前記画像ずれ補正手段における、前記画像取得ステップの処理により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正ステップと、
前記評価値算出手段における、前記画像ずれ補正ステップの処理により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出ステップと、
前記更新手段における、前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新ステップと
を含む画像処理方法。
(13) 異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得手段と、
前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正手段と、
前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出手段と、
前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新手段と
を含む画像処理装置を制御するコンピュータに、
前記画像取得手段における、異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得ステップと、
前記画像ずれ補正手段における、前記画像取得ステップの処理により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正ステップと、
前記評価値算出手段における、前記画像ずれ補正ステップの処理により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出ステップと、
前記更新手段における、前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新ステップと
を含む処理を実行させるプログラム。
【符号の説明】
【0191】
11 画像処理装置, 21−1,21−2 カメラ, 22 画像ずれ補正部, 23 マッチング部, 24 ずれ補正部, 41−1,41−2 射影変換部, 42 射影変換パラメータ算出部, 61−1,61−2 垂直エッジ検出部, 62 ステレオマッチング部, 81 調整パラメータ更新部, 82 調整パラメータ保存部, 101 類似度計算部, 102 ペナルティ計算部, 103 コスト計算部, 104 マッチング評価値計算部, 105 ディスパリティ計算部, 121 簡易位置調整部, 122 詳細位置調整部, 123 傾き調整部, 151 画像ずれ補正部, 171 光軸調整量変換部, 172−1,172−2 光軸調整部, 201 コスト計算部, 202 マッチング評価値計算部, 203 ディスパリティ計算部

【特許請求の範囲】
【請求項1】
異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得手段と、
前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正手段と、
前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出手段と、
前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新手段と
を含む画像処理装置。
【請求項2】
前記更新手段は、前記パラメータのうち、前記画像の全範囲において、2次元方向に荒い画素間隔でシフト量を変化させ、前記評価値が最小となるシフト量に更新し、さらに、前記荒い画素間隔でシフト量を変化させることにより探索されたシフト量近傍の範囲において、2次元方向に詳細な画素間隔でシフト量を変化させて評価値が最小となるシフト量に更新する
請求項1に記載の画像処理装置。
【請求項3】
前記更新手段は、前記パラメータのうち、前記複数の画像間の対応付けの方向である、視差の探索方向に対し直交する傾き成分を変化させて評価値が最小となる傾き成分に更新する
請求項1に記載の画像処理装置。
【請求項4】
前記更新手段は、前記パラメータのうち、前記複数の画像間の対応付けの方向である、視差の探索方向に対し直交する方向に、前記傾き成分を分割し、それぞれ個別に変化させて評価値が最小となる傾き成分に更新する
請求項3に記載の画像処理装置。
【請求項5】
前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、前記画像の周辺部の寄与が小さくなるように評価値として算出する
請求項1に記載の画像処理装置。
【請求項6】
前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、ブロックマッチングの差分絶対値和の全画面総和として算出し、算出結果を評価値とする
請求項1に記載の画像処理装置。
【請求項7】
前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、動的計画法を用いて算出し、算出結果を評価値とする
請求項6に記載の画像処理装置。
【請求項8】
前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、前記複数の補正画像間のずれ量毎にブロックマッチングの差分絶対値和の全画面総和として算出し、算出結果のうち、ずれ量が0に最も近い極小値を評価値とする
請求項6に記載の画像処理装置。
【請求項9】
前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を、前記複数の補正画像間のずれ量の粗い間隔毎にブロックマッチングの差分絶対値和の全画面総和として算出し、算出結果から、ずれ量が0に最も近い範囲で、かつ、極小値を含む範囲を探索した後、探索された範囲で詳細に求められる前記全画像総和の極小値を評価値とする
請求項8に記載の画像処理装置。
【請求項10】
前記評価値算出手段は、前記画像ずれ補正手段により生成された複数の補正画像のうち、基準画像と、それ以外の参照画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値の総和を評価値として算出する
請求項1に記載の画像処理装置。
【請求項11】
異なる視点から、同一の被写体を撮像する撮像手段をさらに含み、
前記画像取得手段は、前記撮像手段により異なる視点から、同一の被写体を撮像する複数の画像を取得し、
前記画像ずれ補正手段は、前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて、前記撮像手段における撮像方向となる光軸を動作させるようにすることで、変形し、それぞれ補正画像を生成する
請求項1に記載の画像処理装置。
【請求項12】
異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得手段と、
前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正手段と、
前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出手段と、
前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新手段と
を含む画像処理装置の画像処理方法であって、
前記画像取得手段における、異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得ステップと、
前記画像ずれ補正手段における、前記画像取得ステップの処理により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正ステップと、
前記評価値算出手段における、前記画像ずれ補正ステップの処理により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出ステップと、
前記更新手段における、前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新ステップと
を含む画像処理方法。
【請求項13】
異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得手段と、
前記画像取得手段により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正手段と、
前記画像ずれ補正手段により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出手段と、
前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新手段と
を含む画像処理装置を制御するコンピュータに、
前記画像取得手段における、異なる視点から、同一の被写体を撮像する複数の画像を取得する画像取得ステップと、
前記画像ずれ補正手段における、前記画像取得ステップの処理により取得された複数の画像を、画像ずれを補正するためのパラメータに基づいて変形し、それぞれ補正画像を生成する画像ずれ補正ステップと、
前記評価値算出手段における、前記画像ずれ補正ステップの処理により生成された複数の補正画像間の視差方向の対応付けが不能な程度を示すエラー量の全画面の積分値を評価値として算出する評価値算出ステップと、
前記更新手段における、前記パラメータのうち、視差方向の対応付けに必要とされるパラメータを変化させて、前記評価値が最小となるようにパラメータを更新する更新ステップと
を含む処理を実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2012−177676(P2012−177676A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2011−266044(P2011−266044)
【出願日】平成23年12月5日(2011.12.5)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】