説明

画像処理装置及びそれを用いた撮像装置

【課題】特別な設備を必要とせず、簡易且つ精度良くキャリブレーションができる画像処理装置及びそれを用いた撮像装置を提供する。
【解決手段】少なくとも2台のカメラ4a,4bを具備し、各カメラから得られる画像の領域の対応関係を求める対応領域算出部23と、各カメラから得られる画像の対応領域から得られる情報の一致度を求める一致度算出部24と、一致度算出部が算出した一致度をもとにカメラパラメータを求めるカメラパメータ算出部25を具備する。

【発明の詳細な説明】
【技術分野】
【0001】
撮像装置のキャリブレーションを実行する画像処理装置及びそれを用いた撮像装置に関する。
【背景技術】
【0002】
近年、ステレオカメラなど複数のカメラを用いて歩行者や車両などの障害物を検出する障害物検出装置が実用化されている。ステレオカメラとは、同時刻に撮像された複数の画像上における同一対象物の位置ずれ(視差)を、テンプレートマッチングにより算出し、算出した視差をもとに対象物の実空間上の位置を、周知の変換式により算出する装置である。
【0003】
このステレオカメラは、2台の撮像装置で撮像した1対の画像を用いて、対象物の距離を算出し、対象物の認識を行うステレオカメラ装置が、不審者の侵入や異常を検知する監視システムや車の安全走行を支援する車載システムなどに適用することができる。
【0004】
上述の監視システムや車載システムで利用されるステレオカメラは、位置間隔をあけて撮像された一対の撮像画像に対して三角測量技術を適用して距離を求めるというものであり、このステレオカメラは、すくなくとも2つの撮像装置と、これらの撮像装置が出力する少なくとも2つの撮像画像に対して三角測量処理を適用するステレオ画像処理LSI(Large Scale Integration)と、を備えているのが一般的である。このステレオ画像処理LSIは、一対の画像に含まれる画素情報を重ね合わせて2つの画像の一致した位置のずれ量(視差)を求めるという処理を行うことによって、三角測量処理を実現する。そのため、一対の画像間には視差以外のずれが存在しないことが理想的であり、各々の撮像装置ごとに、光学特性や信号特性のずれがないよう調整するか、カメラ間の位置関係などを求めておく必要がある。
【0005】
図2はステレオカメラ装置の一般的な原理を示す図である。図2において、δは視差、Zは計測距離、fは焦点距離、bは基線長をそれぞれ表し、これらの間には式(1)で示すような関係が成り立つ。
【0006】
【数1】

【0007】
式(1)により距離をもとめるとき、遠ければ遠いほど視差δは小さくなる。この視差δの算出性能が低下すると距離精度が低下する。そのため、視差δを正確に求めるために、各カメラのパラメータや、各カメラ間の位置関係を表すパラメータを求めるキャリブレーションが重要となる。
【0008】
撮像装置のキャリブレーションを行う方法として、例えば、非特許文献1に記載された方法が提案されている。これは、平面上に格子模様などの予め定義したパターンを描画し、その平面パターンを異なった角度からカメラで複数回撮像して、撮像した画像中の平面パターンから予め定義した格子模様の格子点等を特徴点として検出し、その既知の特徴点を用いてキャリブレーションを行うものである。この非特許文献1に記載された方法は、撮像素子の画素サイズや画像中心,焦点距離といったカメラの内部パラメータを求めることができる。
【0009】
また、外部パラメータと呼ばれるカメラ間の位置関係などを表すパラメータを求める方法としては、特許文献1に記載された方法が提案されている。これは、信号機などを画像処理により検出しその瞬間の視差を求め、さらにしばらく走行した後に先ほど検出した信号機を再度検出して視差を求め、これら2つの視差と走行距離を用いてカメラの角度ずれを求めるものである。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開平10−341458号公報
【非特許文献】
【0011】
【非特許文献1】Z. Zhang, et al., “A Flexible New Technique for Camera Calibration”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.22, No.11, pp. 1330-1334, Nov 2000.
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかし、非特許文献1の手法では、予め定義したパターンが描画されている平面パターンを異なった角度から複数回撮像する必要があるため、平面パターンを動かす設備や、複数の平面を配置した設備など特別な設備が必要である。
【0013】
また、特許文献1の方法では、求めることができる外部パラメータは、カメラの基線長と平行な方向の角度ずれのみである。さらに、異なった瞬間で求めた同一物体の視差に加え走行距離が必要であるが、走行距離の誤差などが原因で精度良く角度ずれを求めることが難しいといった課題があった。
【0014】
本発明の目的は、簡易な設備を必要とせず、あるいは特別な設備を必要とせず、簡易且つ精度良くキャリブレーションができる画像処理装置及びそれを用いた撮像装置を提供することである。
【課題を解決するための手段】
【0015】
前記課題を解決するために、本発明の画像処理装置及び撮像装置は主として、視野が重複し、位置,角度,ズーム率のいずれか少なくとも1つが異なるように撮像された2つの画像を補正する予め記憶された、あるいは演算により算出された補正データを読み込む補正データ読み込み部と、補正データ読み込み部で読み込まれた補正データを用いて撮像された画像を補正する画像補正部と、画像補正部で補正された2つの画像中から対応する対応領域を算出する対応領域算出部と、対応領域から抽出された画像パターンの一致度、対応領域間の座標の一致度、対応領域間の間隔の一致度、の少なくとも1つを算出する一致度算出部と、一致度算出部で算出された一致度に基づいてカメラパラメータを算出するカメラパラメータ算出部と、カメラパラメータ算出部で算出されたカメラパラメータ、又はカメラパラメータに基づく補正データ、を格納する補正データ格納部と、を有する構成とする。
【発明の効果】
【0016】
簡易な設備を必要とせず、あるいは特別な設備を必要とせず、簡易且つ精度良くキャリブレーションができる画像処理装置及びそれを用いた撮像装置を提供できる。
【図面の簡単な説明】
【0017】
【図1】本発明に係る撮像装置のキャリブレーション方法の第1の実施の形態を示すブロック図である。
【図2】ステレオカメラの原理を示す図である。
【図3】ステレオカメラのレクティフィケーション処理の概要を示す図である。
【図4】本発明のキャリブレーション方法を適用したカメラユニットの一構成例を示す図である。
【図5】本発明のキャリブレーション方法を適用した車載システムの一構成例を示す図である。
【図6】本発明の対応領域算出部により画像間の対応領域を求めた結果の一例を示す図である。
【図7】本発明の一致度算出部により画像間の対応領域の位置を調整した結果の一例を示す図である。
【図8】本発明のカメラパラメータ算出部がカメラパラメータを求めることで撮像画像が平行化されていく過程の一例を示す図である。
【図9】本発明に係る撮像装置のキャリブレーション方法の第1の実施の形態の処理フローを示す図である。
【図10】本発明に係る撮像装置のキャリブレーション方法の第2の実施の形態を示すブロック図である。
【図11】本発明の対応領域算出部の結果と一致度算出部の結果を説明する図である。
【図12】本発明の一致度算出部により1対の対応領域から求めた幅とパラメータがずれていない場合の幅とを用いて一致度を算出する過程を示す図である。
【図13】本発明に係る撮像装置のキャリブレーション方法の第2の実施の形態の処理フローを示す図である。
【図14】本発明のキャリブレーション方法において、異なったタイミングで撮像した複数の画像を用いる一例を示す図である。
【図15】本発明のキャリブレーション方法において、異なったタイミングで撮像した複数の画像を用いる他の例を示す図である。
【図16】本発明のキャリブレーション方法において、キャリブレーション処理を分割して実行する例を示す図である。
【図17】本発明に係る撮像装置のキャリブレーション方法の第2の実施の形態のキャリブレーション処理を優先する処理フロー示す図である。
【図18】本発明に係る撮像装置のキャリブレーション方法の第2の実施の形態において、特徴点を用いて対応領域を算出例を示す図である。
【発明を実施するための形態】
【0018】
以下、図面を参照して、本発明の実施の形態について説明する。
【0019】
(第1の実施の形態)
図1は、本発明の第1の実施の形態における撮像装置であるカメラのキャリブレーション方法を備えた画像処理装置の基本構成の例を示したブロック図である。詳細は後述する。
【0020】
第1の実施の形態では、カメラの外部パラメータ,内部パラメータ,歪みパラメータを推定する手法である。
【0021】
ただし、本実施例では、内部パラメータのうち横方向の拡大率と縦方向の拡大率は、右カメラを基準に左カメラを合わせるか、左カメラを基準に右カメラを合わせるか、右カメラと左カメラとも調整し左右で等しくなるように合わせるが、既知の大きさの対象や距離が既知の対象を撮像することができれば、撮像対象の実空間での大きさ、距離と撮像された画像上での大きさから横方向の拡大率と縦方向の拡大率を求めることができる。
【0022】
つまり、図2のように右カメラのレンズ中心を車両に搭載した例では、光軸方向をZ軸、水平方向をX軸、垂直方向をY軸とすると、外部パラメータと、内部パラメータ、歪みパラメータを求め、内部パラメータの縦横の拡大率は左右の画像の拡大率が一致するように求めることに相当する。これらのパラメータが求められれば、後述のレクティフィケーション処理により、画像平面はエピポーラ線が同一直線上になるように変換することができる。
【0023】
本発明に係る撮像装置のキャリブレーション方法は、図4に示すような撮像装置であるカメラユニット1に適用されて、このカメラユニット1が備えるカメラ4a,4b(撮像装置)により周囲の環境を認識する機能を実現する。このとき、カメラは3つ以上備えていても良い。あるいは、カメラを移動,パン,チルト,ズームで撮影条件の異なる画像を、1台のカメラで異なったタイミングで撮像した複数の画像を用いても良い。また、カメラとは別に図示しないコンピュータなどの処理ユニットにカメラ4a,4bから得られる画像を取り込んで処理する構成でも良い。
【0024】
このカメラユニット1は、視野が重複するように設置された撮像素子であるカメラ4aおよび4bと、これらのカメラ4a,4bにて撮像した画像を処理するための処理手段である処理手段であるCPU6、CPU用の記録手段であるRAM9、プログラム記録手段であるプログラムROM10と、記録手段であるデータROM7から構成されている。ただし、この構成は必須な要件ではなく、CPU6に加え、さらに画像処理LSIを搭載して処理の一部を専用のLSIで処理する構成や、1つのRAMのみでなくを画像処理LSI用のRAMなど複数のRAMを用いる構成でも良い。そして、カメラ4aと4bとから得られた画像を用いて距離を計測することができるステレオカメラとして機能する構成となっている。
【0025】
本カメラユニット1は、例えば車両車室内のルームミラーの左右にカメラが配置されるように取り付ける。以降では、右側のカメラを右カメラ、左側のカメラを左カメラと表記する。ただし、カメラは2台である必要はなく、左右に並んでいる必要もなく、視野が重複していれば本発明によりキャリブレーションすることができる。また、カメラの位置も左右方向に配置する代わりに、上下に配置するなど他の構成であっても良い。あるいは、車両が移動した際に、1台のカメラで異なったタイミングで撮像した複数の画像を用いても良い。
【0026】
ここで、第1の実施の形態を具体的に説明する前に、キャリブレーションで求める各種パラメータについて概要を説明する。
【0027】
一般的に撮像画像とレンズは、レンズ歪みを含まないと仮定するとピンホールカメラモデルで扱うことができる。以降では、まずレンズ歪みを含まない場合について説明し、その後、レンズ歪みを含む場合について説明する。また、近年の製造技術の進歩により撮像素子の両座標軸の成す角度は直角とみなせるようになってきているため、画像の両座標軸の成す角度が直角として説明するが、画像の両座標軸の成す角度を含む形で扱うこともできる。
【0028】
カメラ座標系の点を(X,Y,Z)とし、それぞれの点の画像座標系の点を(u,v)とすると、ピンホールカメラモデルは式(2)で表される。
【0029】
【数2】

【0030】
ここで、αuはカメラの横方向の拡大率、αvはカメラの縦方向の拡大率、u0,v0はカメラの画像中心である。ただし、αu,αvは焦点距離と画素サイズから成る。また、式(2)を同次座標を用いて行列表記すると式(3)が得られる。
【0031】
【数3】

【0032】
ただし、sはスカラーである。また、撮像素子の両座標軸の成す角度θを考慮に入れて、内部パラメータを行列表記すると下記式(4)の通り表すことができる。
【0033】
【数4】

【0034】
以降、前記拡大率や画像中心などを総称して内部パラメータと呼ぶ。
【0035】
また、レンズを通して入射光を撮像素子で露光した際に、撮像される画像に歪みが生じる。歪みを大別すると3つに分けることができる。1つ目は、画像中心から離れるほど入射光がピンホールカメラモデルよりも内側に撮像されるレンズ歪み、2つ目は、複数枚から成るレンズの場合に各レンズ中心のずれにより発生する歪み、3つ目は、光軸と撮像面が直行せず角度ずれが発生することによる歪みである。このように歪みの原因としては、複数考えられる。
【0036】
例えば、レンズ歪み等を考慮した歪みモデルを用いることとすると、歪みモデルは、下記の式(5),式(6)で表される。ただし、この歪みモデルは必須の要件ではなく、異なったモデルを用いても良い。
【0037】
【数5】

【0038】
【数6】

【0039】
ここで、x′,y′は、式(7),式(8)で表される焦点距離fを1とした場合の正規化座標系における歪み補正後の座標位置であり、x″,y″は、正規化座標系における歪み補正前の座標位置である。
【0040】
【数7】

【0041】
【数8】

【0042】
よって、最終的に得られる画像座標系における歪み補正前の画素位置(u′,v′)は、画像の拡大率と画像中心から次式(9)(10)で求めることができる。
【0043】
【数9】

【0044】
【数10】

【0045】
つまり、キャリブレーションにより、k1,k2,p1,p2を求めることで歪みを補正することができる。以降では、これらのパラメータを歪みパラメータと呼ぶ。
【0046】
次に外部パラメータについて説明する。外部パラメータとは、2つの3次元座標系の対応関係を表すパラメータであり、回転成分を表す3自由度の回転行列と、3自由度の平行移動ベクトルから成る。ステレオカメラのキャリブレーションでは、右カメラと左カメラの各カメラ座標系の対応関係を表す外部パラメータを求めることになる。右カメラ座標系の点を(XR,YR,ZR)、左カメラ座標系の点を(XL,YL,ZL)、回転行列をR、平行移動ベクトルをtとすると、式(11)の関係が得られる。
【0047】
【数11】

【0048】
ここで、任意の回転は、例えばZ軸まわりの回転φZ、次に新しいY軸まわりの回転φY、最後に新しいX軸まわりの回転φXの3段階によって表し、回転行列Rは次式(12)で表される。また、回転の表記は、オイラー角や、回転ベクトルにより回転軸と回転量を表すものであっても良い。
【0049】
【数12】

【0050】
また、平行移動ベクトルは次式(13)の通りである。
【0051】
【数13】

【0052】
キャリブレーションでは、以上で述べた内部パラメータ,歪みパラメータ,外部パラメータの全て、あるいは一部を求める。
【0053】
次に、上記の外部パラメータを用いて視差を求めるための方法について説明する。
【0054】
ステレオ画像を用いて3次元計測を行う際には、左右の画像間での対応点探索が重要になる。この対応点探索の際に重要な概念が、エピポーラ幾何である。2つのカメラの幾何関係が既知の場合、一方の画像で1点が与えられると、エピポーラ平面と各画像上のエピポーラ線が決まる。3次元空間のもとの座標が未知でも他方の画像では、対応点がエピポーラ線上に限定される。従って、対応点探索は、2次元の探索ではなく、エピポーラ線に沿った1次元の探索で良い。
【0055】
回転行列をRの各要素r11からr33と、平行移動ベクトルの各要素を用いると、下記の関係式(14)〜(17)を得る。
【0056】
【数14】

【0057】
【数15】

【0058】
【数16】

【0059】
【数17】

【0060】
ここで、式(13),式(14)を式(15)および式(16)に代入して、Zを消去すると下記の方程式(18)が成立する。
【0061】
【数18】

【0062】
エピポーラ線の方程式の係数a,b,cは式(19)となり、エピポーラ線を求めることができる。また、歪み補正後の左画像上の点に対する右画像上のエピポーラ線に関しても同様に求めることができる。
【0063】
【数19】

【0064】
上記では、エピポーラ線を算出し、そのエピポーラ線上を対応点探索する場合について述べてきたが、エピポーラ線を求める方法以外に左右の画像を平行化する方法(レクティフィケーション)が用いられる。レクティフィケーション後の画像座標系では、左右の画像内の対応点が同一水平線上に存在することになるため、対応点探索を画像の水平ライン軸に沿って行えば良い。組込みシステムでは、特に計算コストの問題からレクティフィケーションを用いることが多い。
【0065】
図3にレクティフィケーション処理の概要を示す。このレクティフィケーション処理では、右カメラ座標系の原点CRと左カメラ座標系の原点CLは移動せずに、カメラ座標系を回転させることにより新しい平行な画像面を生成する。CRからCLへの平行移動ベクトルtの大きさは、以下式(20)の通りである。
【0066】
【数20】

【0067】
このとき、以下式(21)(22)(23)の3つの方向ベクトルe1,e2,e3を定義し、それぞれの方向ベクトルをレクティフィケーション後のXYZ軸の方向ベクトルとすることで画像の平行化を行うことができ、新しい左右の画像平面上ではエピポーラ線が同一直線上となる。つまり、レクティフィケーション後のXYZ軸が方向ベクトルe1,e2,e3と一致するように右画像を回転させる回転行列、左画像を回転させる回転行列で変換すれば良い。
【0068】
【数21】

【0069】
【数22】

【0070】
【数23】

【0071】
組込みシステムでは、リアルタイムで処理するためにレクティフィケーションのアプローチを採用するのが一般的である。以降では、レクティフィケーションにより画像を平行化する画像補正を用いた場合を例に説明する。
【0072】
次に、前述の内部パラメータ,外部パラメータ,歪みパラメータを求める方法について説明する。以下、これらのパラメータを総称してカメラパラメータと呼ぶことにする。また、内部パラメータ,外部パラメータ,歪みパラメータはすべて求める必要がなく、いずれかを固定して求めても良い。あるいは、これらのパラメータの代わりに、これらのパラメータに変換可能なパラメータ、前述のカメラパラメータを用いたカメラモデルを近似した数式のパラメータなどを推定する構成としても良い。
【0073】
なお、カメラパラメータをまとめると、以下のように定義される。
・内部パラメータ:撮像素子の焦点距離,画素の縦方向の大きさ,画素の横方向の大きさ、縦方向の拡大率,横方向の拡大率,撮像素子の縦軸と横軸の成す角度,光軸中心の座標など。
・外部パラメータ:撮像素子間の回転角度、撮像素子間の平行移動量など。
・歪みパラメータ:画像の歪みを補正するパラメータなど。
【0074】
撮像装置であるカメラユニット1では、プログラムROM10に本実施の形態に関するキャリブレーションプログラムが格納されており、電源をONにするとCPU6がこれらのプログラムを実行することで、キャリブレーション機能が実現され、図1の画像処理装置の機能ブロック図のように補正データ読み込み部21,画像補正部22,対応領域算出部23,一致度算出部24,カメラパラメータ算出部25,補正データ格納部26として機能するようになっている。
【0075】
補正データ読み込み部21は、2つの撮像素子であるカメラ4a,4bで撮像された画像に補正する為に、記録手段であるデータROM7,RAM9等からカメラパラメータやカメラパラメータから求めた変換前後の画素位置の対応関係をテーブル化した変換テーブルなどの補正データを読み込む機能を有するものである。あるいは、CPU6がプログラム内の変数,定数,乱数等を用いて算出したパラメータ、パラメータから求めた画像を補正する変換テーブルを用いても良い。
【0076】
画像補正部22は、読み込んだ補正データを用いて、撮像された画像に対して、歪みの補正、レクティフィケーション処理などの画像補正を行う機能を有するものである。なお、画像補正部22は、2つのカメラの一方のカメラ4aのカメラパラメータを補正データとして他方のカメラ4bで撮像された画像を補正しても良い。
【0077】
対応領域算出部23は、画像補正部22で補正されたカメラ4aと4bの画像間で対応する対応領域を求める機能を有するものである。なお、対応領域は、複数設けても良い。また、既知パターンを撮像してキャリブレーションを行う場合は、予めどの領域が対応する領域かを定義することができるため、予めプログラム内等に定義しておいても良い。または、既知パターンの特徴点をそれぞれの画像から検出し、その特徴点を照合することで対応領域を求めても良い。あるいは、図示しないPC等の外部機器と接続し、外部機器から対応領域を入力できる構成としても良いことは明らかである。
【0078】
一致度算出部24は、カメラ4aと4bにより撮像し補正された画像間の対応領域内の画像がどの程度一致しているかを表す一致度を求める機能を有するものである。具体的には、一致度算出部24は、対応領域から抽出された画像パターンの一致度、対応領域間の座標の一致度、対応領域間の間隔の一致度、の少なくとも1つの一致度を算出する。なお、画像パターンの一致度では、対応領域内の画素の輝度値,輝度変化量,輝度変化の方向,カラー情報,カラーの変化量,カラーの変化の方向,輝度のヒストグラム,輝度変化量のヒストグラム,カラーの変化量のヒストグラム,輝度変化の方向のヒストグラム,カラー変化の方向のヒストグラム等の画像パターンを変えられる特徴量を用いることができる。対応領域間の間隔の一致度を算出する場合、対応領域間の間隔の平均値,対応領域間の間隔の最小値,対応領域間の間隔の最大値等の複数の対応領域の間隔から算出することができる値をうち少なくとも1つから算出した値、予め記憶又は定義された平行なパターンの幅の値、地図データベースや外部機器から受信された平行なパターンの幅の値、の少なくとも1つを比較して一致度を算出する。
【0079】
カメラパラメータ算出部25は、一致度算出部24により求めた一致度に基づいてカメラパラメータを算出する。具体的には、算出された一致度がより高い値(あるいは低い値)になるようにカメラパメータを求める。一致度がより高い値になるようにカメラパラメータを求めるか、低い値になるようにカメラパラメータを求めるかは、一致度に用いる評価関数などの指標によって異なる。
【0080】
補正データ格納部26は、カメラパラメータ算出部25で求めたカメラパラメータ(外部パラメータ,内部パラメータ,歪みパラメータ等)、又は、カメラパラメータに基づいて算出された補正前後の対応関係を示す変換テーブルを記録手段であるRAM9やデータROM7等に一時的に保持、あるいは格納する機能を有する。または、カメラパラメータ(外部パラメータ,内部パラメータ,歪みパラメータ等)に基づいた補正データ、具体的には、カメラパラメータを用いた補正後の画素の座標と補正前の画素の座標を計算し、ルックアップテーブル等の形式で各画素を補正するための補正データを記録手段であるRAM9やデータROM7等に格納する。
【0081】
以上のように構成されるカメラユニット1は、上述したように、CPU6がキャリブレーションプログラムを実行することで、カメラパラメータを求めて補正データを格納するまでのキャリブレーション処理を実行できる。ただし、キャリブレーション処理とは別にカメラユニット1で画像処理による立体物検知などの機能をカメラユニット1内で行っても良い。
【0082】
ここで、以上のようなカメラユニット1において、キャリブレーションの一連の処理の流れをフローチャートを参照しながら説明する。
【0083】
この図9に示す一連の処理は、電源がオンとなったときにスタートし、電源がオフとなるまで繰り返し行われる。あるいは、キャリブレーション処理を所定回数実行し、キャリブレーション処理を終了する構成としても良い。また、図4のカメラユニット1の構成の場合は、画像の補正処理は、画像処理LSIで行うと高速に処理することができる。もちろん、すべてをCPUで処理しても同一の処理を実行できる。
【0084】
まず、電源がオンとなると、カメラユニット1によりキャリブレーション処理が実行され、RAM9の初期化処理などを実行する(ステップ101)。次に、キャリブレーションを実行するタイミングか否かを判定し(ステップ102)、ステップ103でキャリブレーションを実行するタイミングであればステップ104に移行し、キャリブレーションを実行するタイミングでなければステップ102に戻る。
【0085】
このキャリブレーションのタイミング判定は、例えば図示しない外部機器によりキャリブレーションの実行の指令信号を送信し、それをカメラユニット1で受信することで判定することでカメラユニット1のメンテナンス時にキャリブレーションを実行する。または、車両に搭載して車両が走行中にキャリブレーションを行う場合は、自車両が停車中や後退中など、他の画像処理プログラムが動作する必要のないタイミング、遠方から近距離までが視野内に含まれているタイミング、昼など照明条件の良い環境や、晴天,曇り,室内など外乱の少ない環境などを、キャリブレーションタイミングとして判定する。
【0086】
そして、キャリブレーションタイミングと判定された場合は、補正データ読み込み部21が、補正後と補正前の画像の対応関係を保持するルックアップテーブル形式の補正テーブルや、内部パラメータ,外部パラメータ,歪みパラメータ等からなる補正データを記録手段であるデータROM7、プログラム記録手段であるプログラムROM10のいずれかから読み込む(ステップ104)。あるいは初期化処理(ステップ101)で、データROM7あるいはプログラムROM10に保存されている補正データを、RAM9に保存しておき、RAMから読み込む構成等であっても良い。または、CPU6等がプログラム内の変数,定数,乱数等を用いて算出したパラメータや、パラメータから求めた画像を補正する変換テーブルを用いても良い。
【0087】
その後、画像補正部22にて補正データを用いて画像を補正する(ステップ105)。
具体的には、ルックアップテーブル形式の補正テーブルを用いて、補正後の各画素の輝度値、カラー情報を求めるか、前述の式(2)から式(23)で説明したカメラパラメータを用いて画像の平行化を行う。
【0088】
そして、対応領域算出部23が、各カメラで撮像し、画像補正部22で補正した画像間で対応する領域を求める(ステップ106)。その例を、図6に示す。図6は、上段が補正後の右画像、下段が補正後の左画像であり、車両部分を第1の対応領域、歩行者部分を第2の対応領域として求めた例である。図6の例では、簡単のためレンズ歪み等を含まないが、レンズ歪みが生じている画像であっても良い。対応領域は、2つである必要はなく、3つ以上でもあるいは1つでも良い。また、図6では、対応領域は、歩行者部分と車両部分だが、これに限るものではなく、例えば、白線等のレーンマーカ,路面,速度制限標示などの路面標示,家,工場,病院などの建造物,電柱,ガードレールなどの構造物,室内に存在する床と壁面の境界線,天井と壁面の境界線,窓枠の部分を含むように対応領域としても良い。このときの補正画像は、カメラパラメータが正しく求まっていない、経年変化によりずれが発生している、キャリブレーションが未実施のため初期値を使用しているなどの理由からエピポーララインが平行になっていないものとし、説明する。
【0089】
さらに、対応領域算出部23では、図7に示すように対応領域の画像の垂直方向の座標が等しくなるように、片方の対応領域の位置を調整する。図7は、左画像の対応領域を調整した例であり、図7(a)が位置の調整前、図7(b)が位置の調整後である。ただし、本実施例では左右エピポーラ線が平行かつ、画像の垂直方向の座標が等しい場合について説明しているが、エピポーラ線が平行でない場合等でも、対応領域を理想的なエピポーラ線上なるように調整する等により同様の処理が可能である。または、求めたパラメータを用いて、同一の視点からの画像にそれぞれの画像を変換しても良く、その場合は同一視点の画像であることから例えば対応領域の座標が一致するように調整する。
【0090】
対応領域算出部23が、対応領域を求める際に用いる領域は、例えば公知のテンプレートマッチングやサポートベクターマシンやニューラルネットワークを用いた歩行者検知、車両検知を用いて歩行者,車両等を検知して、その領域を用いて左右のカメラから得られる画像の対応領域を求める。
【0091】
または、視差データを用いて、同じ視差を多く含む領域を求め、その領域を対応領域算出に用いても良い。このとき、対応領域算出に用いるそれぞれの領域は、距離が近い画素を多く含む領域を選択することで精度良くキャリブレーションを行うことができる。これは、距離が異なるとそれぞれの視差が異なるため原理的に対応領域間が一致しないためである。または、平面等を対応領域として用いる場合は、平面の角度や平面までの距離から各画素の視差を求めて一致度を算出することで、1つの領域内で距離が異なる場合でも本発明によりカメラパラメータを求めることができる。
【0092】
これは、距離が異なる画素では、左右の視差が異なるため、左右の対応領域間の一致度を求める際に誤差が大きくなるためである。また、複数の対応領域を用いる場合、画像の一カ所に集中させず、画像の全体に配置することで、より精度の良いキャリブレーションを行うことができる。
【0093】
これは、例えば画像右端のみに対応領域を配置した場合、求めたカメラパラメータでレクティフィケーションを行うと画像右側ではエピポーラ線が平行かつ同一直線上に近くなるものの画像左側では誤差が発生する可能性があるためである。
【0094】
その後、一致度算出部24が、対応領域間の一致度を算出する(ステップ108)。一致度は、例えば輝度値の差分の総和(SAD:Sum of Absolute Difference),輝度値の差分の二乗和(SSD:Sum of Squared Difference)、正規化相互相関(NCC:Normalized Cross Correlation)などで求めることができる。SADやSSDなどを一致度として利用した場合は、一致度が小さいほど対応領域内の画像が一致していることになり、正規化相互相関などを利用した場合は、一致度が大きいほど対応領域内の画像が一致していることになる。
【0095】
本実施の形態では、SSDを用いた場合を例に説明する。SSDを用いた一致度eは、例えば式(24)により求めることができる。ただし、右画像と左画像の対応領域のサイズは同じとし、対応領域はM個の対が存在し、各対応領域内にはNj個の画素が存在することとする。ただし、対応領域内の画素Nj個すべてを用いる必要はなく、その一部を用いて計算しても良い。また、Ijは右画像のj番目の対応領域内の画素のうち座標iの画素をパラメータpを用いてWRの座標変換を行って得られる輝度値であり、Tjは左画像のj番目の対応領域内の画素のうち座標iの画素をパラメータqを用いてWLの座標変換を行って得られる輝度値を表す。ただし、前述の通り、輝度値以外に輝度の変化量などを用いても良い。WRは前述のレクティフィケーション処理時にレクティフィケーション後の座標iから、レクティフィケーション前の座標を求める変換式であり、WLは座標iを対応領域の視差mj分だけシフトした座標に対する、レクティフィケーション前の座標を求める変換式である。
【0096】
【数24】

【0097】
なお、歪みのモデルや、回転の表現形式などは異なったものを用いても良い。ただし、対応領域内に例えば平面等が撮像されている場合は、対応領域に対して1つのmjではなく、平面までの距離、平面の角度や法線ベクトルの方向等から対応領域内の各画素の視差を求めても良い。この場合は、mjではなく、平面までの距離,平面の角度や法線ベクトルの方向等を最適化する。平行な複数の平面や、距離が既知でかつ平行な複数な平面,垂直に交わる平面等が存在する場合は、平面の平行であることや垂直であること、平面間の距離が既知であることを利用して各対応領域間の視差mjを求める構成としても良い。複数の平面が、平行,垂直でなくてもその平面間の成す角度が既知であれば同様である。通常の二乗誤差を最小とする問題では、片側(例えばT)を固定し、もう一方(例えばI)が固定したTに一致するパラメータを求めるの。一方、本発明で用いる式(24)はTだけでなく、Iも変換し、それぞれを変換した際に誤差が最小となるパラメータp,qを求めるため、通常の最小二乗問題とは異なる。
【0098】
次に、カメラパラメータ算出部25では、一致度算出部24で求めた一致度eがより小さく(NCC等の場合は大きく)なるようにカメラパラメータを求める(ステップ109)。
【0099】
カメラパラメータ算出部25は、例えば公知の勾配法,ニュートン法,ガウスニュートン法,Levenberg−Marquardt法(修正ガウスニュートン法)などの最適化アルゴリズムを用いて、一致度eが最小となるように最適化処理を行うことでカメラパラメータを求めることができる。このとき、内部パラメータ,外部パラメータ,歪みパラメータのすべてを最適化しても良く、あるいはいくつかを固定値として扱いそれ以外のパラメータを最適化しても良い。例えば、内部パラメータ,歪みパラメータを固定し、外部パラメータのみを求める構成にすれば、経年変化等によりカメラの設置位置がずれた際の補正に利用することができる。
【0100】
ここで、式(24)の誤差が最小となるパラメータを推定する方法について説明する。
j(WR(i;p))をテイラー展開して2次以上の項は微小と仮定し無視し、同様にTj(WL(i;q))をテイラー展開して2次以上の項は微小と仮定し無視すると次式(25)が得られる。
【0101】
【数25】

【0102】
ただし、∇IはWR(i;p)により得られる補正前の座標の輝度の変化量、∇TはWL(i;q)により得られる座標の輝度の変化量である。また、Δpはパラメータpの更新量、Δqはパラメータqの更新量である。そして、式(25)をΔp,Δqで微分した値が0のときにパラメータが最適となるため、次式(26)が得られる。
【0103】
【数26】

【0104】
よって、ΔpおよびΔqは式(27),式(28)により求めることができる。
【0105】
【数27】

【0106】
【数28】

【0107】
pは式(26)をΔpで微分した場合のヘッセ行列、Hqは式(26)をΔqで微分した場合のヘッセ行列である。また、添え字Tは転置を表す。
【0108】
この式(27),式(28)を求めることで誤差をより小さくするパラメータを求めることができる。具体的には、pにp+Δpを、qにq+Δqを代入してパラメータを更新すれば良い。
【0109】
そして、式(2)から式(23)で説明した原理を用いて各画素の補正前と補正後の座標位置の対応関係をルックアップテーブル形式で算出し、そのルックアップテーブルを補正データとして保存する(ステップ110)。具体的には、例えば変換後の座標(1,1)に対応する変換前の座標は(0.8,0.6)といったように変換後の座標1画素ごと、あるいは一定間隔ごとにルックアップテーブルを作成する。
【0110】
次に、カメラパラメータ算出部25で求めたカメラパラメータをデータROM7,プログラムROM10,RAM8,RAM9のいずれかに保存する(ステップ111)。ただし、前記ルックアップテーブルの作成を省略し、カメラパラメータを保存するようにしても良い。
【0111】
そして最後に、一致度eが予めプログラムで設定されている閾値等よりも小さい(あるいは大きい)か、繰り返し回数が予めプログラムで設定されている上限等を超えているかなどを判定し、一致度eが予めプログラムで設定されている閾値等よりも小さい(あるいは大きい)場合、あるいは繰り返し回数が予めプログラムで設定されている上限等を超えている場合にキャリブレーション終了し、それ以外の場合は再度ステップ104からキャリブレーション処理を実行する。
【0112】
この過程を図8に示す。まず、上段では、カメラパラメータが求まっていないため左右のカメラでエピポーラ線が平行になっていないが、ステップ104からステップ111までのキャリブレーション処理を行うとカメラパラメータが最適な値に近づき(図8中段)、さらにステップ104からステップ111までの処理を繰り返すと最終的にはエピポーラ線を平行化することができ(図8下段)、図8下段の画像で対応領域の一致度が最小(あるいは最大)に近づく。図8の例では、左カメラのみに誤差が存在し、左カメラに関するパラメータのみが最適化されているが、左右画像ともに誤差が存在する場合でも同様に最適化することができる。
【0113】
ステップ112のキャリブレーション終了の判定において、所定回数キャリブレーションを実行後に一致度eが所定の値よりも大きい(あるいは小さい)場合、カメラに異常が発生している、キャリブレーションが正常に実行できなかったと判断して、撮像素子であるカメラを停止する停止信号を出力する、スピーカーから音声でドライバ、又はユーザに警告音を発する警告信号を出力する、又は、その警告信号に基づいてディスプレイに警告を表示するといった処理を行うことで、カメラの位置ずれが発生した際の誤動作を防止することができる。
【0114】
以上までに述べたように。第1の実施の形態を適用した撮像装置のキャリブレーション方法を用いることで、既知のパターンが描画された平面パターンなどを用いずに、左右のカメラからえられる画像の対応領域間が一致するようにカメラパラメータを求めることで、キャリブレーションを行うことができる。ただし、キャリブレーション用の既知のパターンを用いても良いことは言うまでもない。従来の手法では、特徴点を検出してキャリブレーションしていたため、特徴点の検出誤差によりキャリブレーション結果にも誤差が発生していた。
【0115】
本発明は、画像を直接比較するため、従来の手法よりも精度良くパラメータを求めることができる。
【0116】
また、第1の実施の形態を適用した撮像装置のキャリブレーション方法を用いることで、工場出荷時以外に、車両に搭載し道路を走行中、建物に監視カメラとして取り付けた後などの環境でも、キャリブレーションを行うことができる。振動や温度変化,衝撃などが原因で、カメラの外部パラメータ等がずれた場合でも、再度キャリブレーションを行うことができるといった利点もある。設置場所は、車両や建物以外でも、カメラ間の視野が重複している画像が撮像できる環境であれば、本実施の形態を適用できることは明らかである。
【0117】
さらに、第1の実施の形態を適用した撮像装置のキャリブレーション方法では、距離の異なる複数の対応領域を対応領域算出部で求めキャリブレーション処理を実施することで、近距離,遠距離を撮像した場合どちらにおいてもエピポーラ線が平行になるようにカメラパラメータを精度良く求めることができる。
【0118】
また、平面パターン上の特徴点を検出し、その特徴点を用いてキャリブレーションを行う従来の方法では、特徴点の検出時に誤差が発生するといった問題があったが、本実施の形態では特徴点の検出は行わず、直接画像を比較することでカメラパラメータを求めるため、精度良くカメラパラメータを求めることができる。さらに、対応領域算出部23が、対応領域内に距離の近い画像が多く含まれるように対応領域を求めると、エピポーラ線を平行化した際に対応領域間の画像がより一致するため精度良くカメラパラメータを求めることができる。また、ある瞬間に撮像された画像のみではなく、複数の異なるタイミングで撮像した画像を用いてキャリブレーションを行えば、より多くの対応領域を利用することができるため、より精度良くキャリブレーション結果を得ることができる。
【0119】
以上までに述べた方法は、カメラを2台用いるステレオカメラに関して説明したが、カメラが3台以上存在する場合でも視野が重複していれば本実施の形態を適用することができるのは明らかである。また、カメラが1台であっても撮像する位置等が異なる画像を、例えば異なるタイミングで撮像した画像を用いれば本実施の形態を適用することができる。
【0120】
また、少なくとも1台のカメラの内部パラメータ,歪みパラメータ等のすべてを、あるいはその一部を、事前に別の方法(例えば、非特許文献1の方法)によって事前に求めておき、その他のカメラの内部パラメータ,歪みパラメータ,外部パラメータを求めることで、事前にカメラパラメータを求めたカメラの画像を基準として、他のカメラの内部パラメータ,歪みパラメータ等を求めることができる。
【0121】
また、内部パラメータ,歪みパラメータ,外部パラメータを求める代わりに、画像の拡大,回転,並行移動に関するパラメータなど、カメラパラメータによる画像補正の近似的な変換が可能なパラメータ、カメラパラメータから変換可能なパラメータを用いても良い。
【0122】
さらに、以上までに述べた方法は、画像の輝度値を用いて一致度算出部24で一致度を算出したが、輝度値の代わりに輝度の変化量,カラー情報,カラーの変化量,輝度のヒストグラムなど画像から得られる各種特徴量などを用いても良い。
【0123】
また、カメラユニット1がディスプレイ,マウス,キーボード,タッチパネル等の入力装置を具備し、入力装置を用いてユーザが例えば人の領域や車の領域を指定する構成でも良く、人手で対応領域算出部で用いる領域を指定することで、異なった距離の画素が多く含まれる領域を除外することができ、キャリブレーションの精度が向上する等の効果がある。
【0124】
第1の実施の形態では、画像を平行化するレクティフィケーション処理後の画像で、対応領域が一致するようにカメラパラメータを求めたが、例えば左右のカメラの視点が同一になるような画像変換処理後の画像を用いても良い。
【0125】
(第2の実施の形態)
第2の実施の形態について、図面を参照して詳細に説明する。
【0126】
なお、第2の実施の形態に拘わるキャリブレーション方法の構成について、上述した第1の実施の形態と同様の構成については図中同一の符号を付して、重複した説明は省略する。
【0127】
第2の実施の形態では、図5に示すように撮像装置であるカメラユニット1に加え、コントロールユニット2とからなる車載システム3で構成されている。カメラ4a,4bは、車両に取り付けて前方を撮像するように取り付けられている例について説明するが、必ずしも車両である必要はなく、建物等に取り付けても良い。
【0128】
カメラユニット1は、第1の実施の形態と同一である。また、コントロールユニット2はCPU12,RAM11,プログラムROM14,データROM13とから構成されている。そして、車載システム3では、このカメラユニット1とコントロールユニット2が接続されており、さらに車室内に設置されて各種画像および各種情報を表示するためのディスプレイ15と、自車が障害物に衝突する危険性が高い場合などに警告音声を発生する、あるいはナビゲーションの音声案内等を発生するスピーカー19と、エンジンを始動する際にONとなるイグニッションスイッチ31が接続されており、ディスプレイ15の表示制御をはじめとして当該車載システム全体の動作をコントロールユニット2が制御する構成となっている。
【0129】
本実施の形態は、図10の画像処理装置に示す機能ブロック図のように図1の第1の実施の形態に比べ、画像補正部22と対応領域算出部23の間に、視差算出部27を設け、さらに視差算出部27の次に画像認識部28を具備することを特徴とする。
【0130】
本発明に係る撮像装置のキャリブレーション方法は、図5に示すような車載システム3に適用されて、カメラユニット1が備える車載カメラ4a,4bにより車両周囲の環境を認識する機能を実現する。このとき、車載カメラは3つ以上備えていても良い。あるいは、カメラが1台であっても撮像する位置等が異なる画像を、例えば異なるタイミングで撮像した画像を用いても良い。また、車載カメラ4a,4bとは別体のコントロールユニットが車載カメラ4a,4bから画像を取り込んで処理し、処理領域を車載カメラ4a,4bに設定する構成でも良い。
【0131】
図5に示すカメラユニット1は車両に搭載されて図5に示す車載システム3に適用される。このシステムは、例えば、車載カメラユニット1が自車両の前方に存在する障害物等を検出し、コントロールユニット2の制御の基で、検出結果に基づいて車両を制御、あるいは乗員に危険を報知するための装置である。
【0132】
カメラユニット1では、プログラムROM10に障害物等を検知する画像処理プログラムとキャリブレーションプログラムが格納されており、CPU6がこれらのプログラムを実行することで、障害物等を検知する機能および撮像装置のキャリブレーション機能が実現されるようになっている。
【0133】
また、この車載カメラユニット1は、車速センサ17,ハンドル角センサ16,リバーススイッチ18の情報をコントロールユニット2から受信できる構成になっている。図示しないヨーレートセンサや、ジャイロセンサ,GPSセンサ,地図データベースなどから車両の動きや位置に関する信号を受信できる構成にしても良い。
【0134】
さらに、エンジンを始動すると画像処理プログラムとキャリブレーションプログラムが実行され、カメラユニット1が図10の画像処理装置の機能ブロック図のように補正データ読み込み部21,画像補正部22,視差算出部27,画像認識部28,対応領域算出部23,一致度算出部24,カメラパラメータ算出部25,補正データ格納部26として機能するようになっている。
【0135】
補正データ読み込み部21,画像補正部22,対応領域算出部23,一致度算出部24,カメラパラメータ算出部25,補正データ格納部26は、第一の実施の形態と同様の機能を有するものである。
【0136】
視差算出部27は、画像補正部22で補正された左右の撮像素子であるカメラから得られる画像の見え方の差(視差情報)を算出する機能を有するものである。
【0137】
画像認識部28は、視差算出部27から得られる視差情報、カメラ4a,4bから得られる画像、カメラ4a,4bから取得し画像補正部22で補正した画像の少なくともいずれかを用いて障害物等(歩行者,動物,車両,家や工場や病院などの建造物、電柱やガードレールなどの構造物等)を検出する機能,画像の視点変更等の画像処理機能などの機能を有するものである。
【0138】
ここで、以上のような車載システム3において、撮像装置のキャリブレーション処理、および画像処理の流れをフローチャートを参照しながら説明する。
【0139】
この図5に示す一連の処理は、イグニッションスイッチがオンとなったときにスタートし、イグニッションスイッチがオフとなるまで繰り返し行われる。例えば、自車両が走行中であるか停止中であるか、また、ディスプレイ15に表示されている画像がナビゲーションシステムの走行経路案内画像かその他の映像であるかに拘わらずプログラムは実行される。
【0140】
以下では、ステップ102,ステップ106,ステップ108,ステップ109、およびステップ113からステップ118の個々の処理について図13に示すフローチャートに沿って説明する。
【0141】
ステップ102では、車載システム3のハンドル角センサ16,車速センサ17,リバーススイッチ18等から得られる情報を用いてキャリブレーションのタイミングを判定する。例えば、ハンドル角センサ16から得られる値が所定値以下の場合にキャリブレーションタイミングと判定する。これは、車両が旋回中に生じる画像のぶれによるキャリブレーション精度の低下を防止することができる。
【0142】
また、車速センサ17等から得られる自車の速度が、所定値以下(あるいは所定値以上)の場合にキャリブレーションタイミングと判定する。これは、例えば車両が停車中に画像処理を停止して、キャリブレーションのみを実行することができる。
【0143】
または、自車の速度が所定値以上のときにキャリブレーションを実行タイミングと判定すれば、高速道路など見通しの良い道路でキャリブレーションを実行することができる。リバーススイッチ18から得られる情報を用いれば、車両が後退時に画像処理を停止して、キャリブレーションのみを実行することができる。これらのキャリブレーションタイミング判定は、一例であり図示しないヨーレートセンサ,ジャイロセンサ,レーダ,カーナビゲーションや地図データベース,照度センサ,雨滴センサ等から得られる情報を用いて判定しても良い。ヨーレートセンサ,ジャイロセンサを用いれば、ハンドル角センサ16を用いた場合と同様の判定をすることができる。レーダを用いると、自車前方の近距離に車両等の物体が存在しない場合を、キャリブレーションタイミングとして判定することができる。
【0144】
カーナビゲーションや地図データベースを用いれば、自車が見通しの良い道路を走行中か、走行の方角、時間帯から逆光となっていないかといった判定ができる。照度センサは、ヘッドライトのON,OFFを制御するためのものであり、昼か夜といった周囲の明るさを検知することができるため、明るさが所定値以上の場合のみをキャリブレーションタイミングと判定できる。雨滴センサは、ワイパーを自動制御するためのものであり、フロントガラスに付いた水滴を検知することができるため、フロントに水滴が付いていない場合をキャリブレーションタイミングと判定できる。
【0145】
そして、ステップ103でキャリブレーションを実行するタイミングであればステップ113に移行し、キャリブレーションを実行するタイミングでなければキャリブレーションタイミング判定の処理を繰り返す。
【0146】
キャリブレーションのタイミングと判定された場合は、キャリブレーション用の画像をRAM9などにコピーする(ステップ113)。キャリブレーション用の画像を複写、コピーすることで、同一の画像を用いてキャリブレーション処理を行うことができるとともに、並行して画像処理を実行することができるため、キャリブレーション処理と画像処理をマルチタスクとして実行し、例えば画像処理は一定周期で処理を繰り返し、画像処理で余った時間をキャリブレーション処理に割り当てることができる。
【0147】
また、ステップ115,ステップ116は、ステップ104,ステップ105と同様な処理を行う。
【0148】
ステップ114,ステップ117では、左右のカメラの見え方の差(視差)を求める処理を行う。例えば、右画像に8×8などの小領域を設定し、その小領域に対応する領域を左画像のエピポーラ線上を探索、あるいは左画像上を2次元探索することで検出して、各小領域毎の視差を求める処理である。この視差算出は、公知の技術によって実現できる。
対応領域算出処理(ステップ106)では、例えば右側の白線と左側の白線を対応する領域として検出する。白線などのレーンマーク等の路面標示以外にガードレールや縁石などの平行なパターンからなる構造物の端点を対応領域として検出しても良い。
【0149】
そして、一致度の算出処理(ステップ108)では、対応領域間の幅を求め、その幅から一致度を求める。
【0150】
図11に、レーンマークの対応領域の検出結果(図11(a))と、平行パターンの幅とパラメータのずれの関係(図11(b))を示す。
【0151】
本実施の形態では、Y軸まわりの回転パラメータを求めることができる。さらに、平行パターンの幅が既知であれば、カメラ間の距離や、内部パラメータの横方向の拡大率,縦方向の拡大率を求めることができる。これは、前記パラメータが最適値(パラメータずれ無し)からずれている場合は、算出した視差に距離に関わらず一定の誤差が発生する。例えば、距離d1のときの視差が64(近距離)であった場合に誤差2画素が発生すると視差算出処理(ステップ114)で求めた視差は66となり、また距離d2のときの視差が4(遠距離)であった場合にも誤差2画素が発生すると視差算出処理(ステップ114)で求めた視差は6となるため、式(2)を用いて視差から距離を求めると遠距離ほど誤差2画素の影響が大きくなる(図11(b))。
【0152】
そこで、ステップ108では、例えば図12のように、複数の距離のレーンマークの幅のG個の実測値(W(1;a),W(2;a),・・・,W(G;a))と、パラメータずれが無い場合のレーンマークの幅Wmとの差の総和,差の二乗の総和などを一致度として求める。パラメータずれが無い場合のレーンマークの幅は、カーナビゲーション等から取得するか、予めプログラム内に定義するか、データROM7に保存しておいた値を用いても良い。
【0153】
平行パターンの幅を既知とすることで内部パラメータのうち横方向の拡大率と縦方向の拡大率を正確に求めることができる。または複数の距離のレーンマークの幅の実測値から、平均値,最大値,最小値といった値を求め、その実測値から求めた値をパラメータずれが無い場合のレーンマークの幅として用いても良く、あるいはある基準の距離のレーンマークの幅の実測値をパラメータずれが無い場合のレーンマークの幅として用いても良い。
そのパラメータずれが無い場合のレーンマークの幅と実測値との差の総和,差の二乗の総和などを一致度とする構成であっても良い。一致度の一例を式(29)に示す。
【0154】
【数29】

【0155】
また、Wmは、パラメータずれが無い場合の平行パターンの幅やそれぞれの対応領域からもとめた平行パターンの幅の平均値,最大値,最小値等の値である。つまり、
カメラパラメータの算出(ステップ109)では、前述の一致度が小さくなる(一致度の指標によっては大きくなる)ようにカメラパラメータを求める。このとき、パラメータずれが無い場合のレーンマークの幅が得られる場合は、X軸方向の平行移動パラメータも求めることができる。
【0156】
例えば、aはtxとdcから成るとすると、式(30)を満たすtx、dcを求めればよい。
【0157】
【数30】

【0158】
その後ステップ112では、キャリブレーション終了の判定を行い、一致度が所定の値よりも小さい(あるいは大きい)場合はキャリブレーションを終了する。または、キャリブレーション処理を所定回数実行済みであれば、キャリブレーションを終了する。
【0159】
このとき、一致度が所定の値よりも大きい(あるいは小さい)場合は、カメラに異常が発生しているか、キャリブレーションが正常に実行できなかったと判定し、カメラを停止してコントロールユニットにカメラが停止している旨の信号を送信しシステムを停止する、スピーカーから音声でドライバに警告音を発する、ディスプレイに警告を表示するといった処理を行う。
【0160】
ステップ118では、視差算出処理(ステップ117)で求めた視差データ、左右カメラから取得した画像データ、左右カメラから取得した画像を画像補正処理(ステップ116)で補正した画像データのいずれか少なくとも一つを処理することで、公知の技術により障害物やレーンマーク等を検出する。
【0161】
以上説明したように、本実施の形態では、平行パターンの端点を対応領域として検出し、対応領域間の幅の情報を用いてカメラパラメータを求めることができる。平行なパターンの幅を用いることで、平行パターンの一部しか視野に入っていない場合などであってもキャリブレーション処理を実行することができる。また、パターンが平行であれば良く、直線であることは必須の条件では無いといった利点がある。
【0162】
平行なパターンは、道路だけでなく室内などでも多く存在するため、本実施の形態は室内等で利用する監視カメラシステムにも利用することができる。室内では、例えば床と壁面の境界線,天井と壁面の境界線,窓枠などの室内に存在する平行パターンを用いればよい。つまり、撮像された画像から検知された、室内に存在する床と壁面の境界線,天井と壁面の境界線,窓枠、の少なくとも1つを含む領域を対象領域として算出しても良い。
【0163】
また、キャリブレーションを図14に示すフローチャートの処理手順で実行すれば、起動時などキャリブレーションが必要な場合に、キャリブレーション処理を優先して実行することができる。例えば、キャリブレーションタイミング判定(ステップ102)で、システムの起動時や、温度が大きく変化した場合、前回のキャリブレーション実施から所定時間が経過した場合などにキャリブレーションタイミングと判定する。そして、キャリブレーションタイミングであればキャリブレーションが終了するまで、キャリブレーション処理を実行し、キャリブレーションが終了した後に、画像処理を行う。
【0164】
図14に示す処理を繰り返すことで、キャリブレーションが必要なタイミングで、キャリブレーション処理を優先することができる。キャリブレーション処理を実行している間は、画像処理が停止している旨ディスプレイに表示する、音声等で警告する処理等を実施しても良い。また、本実施の形態は、車両の走行中以外であっても、カメラの製造ライン中の平行なパターン等を用いても良いことは明らかである。
【0165】
(第3の実施の形態)
第3の実施の形態について、図面を参照して詳細に説明する。
【0166】
なお、第3の実施の形態に拘わるキャリブレーション方法の構成について、上述した第1の実施の形態および第2の実施の形態と同様の構成については図中同一の符号を付して、重複した説明は省略する。
【0167】
第3の実施の形態では、対応領域算出部23が図18に示すように画像から物体の角などを特徴点として検出し、その検出した特徴点を他の画像からも検出して対応付ける。図18の例では、車両の左上の角を第3の対応領域として求め、歩行者の手の先を第2の対応領域、第3の対応領域として求めた例であるが、対応領域は3つである必要はない。
【0168】
そして一致度算出部は例えば、それぞれの対応領域の画像の垂直方向の座標値の差を用いて一致度を算出する。G個の対応領域を求めた場合に、G個の対応領域の縦方向の座標の差を用いて式(31)により一致度を算出する。例えば第1の対応領域の縦方向の座標の差e1は、図18の通りである。ただし、縦方向の座標の差を評価関数に用いるか否かは、カメラの設置位置により異なる。
【0169】
【数31】

【0170】
ただし、vR(j;p′)は、カメラパラメータp′を用いて画像補正部が右画像を補正した画像中のj番目の対応領域の縦方向の座標、vL(j;q′)は、カメラパラメータq′を用いて画像補正部が左画像を補正した画像中のj番目の対応領域の縦方向の座標である。p′,q′は例えば、第1の実施の形態と同様に左右カメラの内部パラメータ,外部パラメータ,歪みパラメータである。式(31)の一致度が最小になるようにニュートン法,ガウスニュートン法,修正ガウスニュートン法等の公知の最適化手法を用いてp′,q′を最適化すれば良い。
【0171】
以上までに説明した第1の実施の形態,第2の実施の形態,第3の実施の形態を組み合わせれば、精度良くカメラパラメータ、あるいはカメラパラメータから変換可能なパラメータ、カメラパラメータを近似したパラメータを求めることができ、誤マッチングの少ない視差データ(3次元データ)を得られるだけでなく、誤差の少ない3次元計測が可能となる。
【0172】
また、図15に示すようにカメラパラメータの初期値を算出するステップ120をさらに具備すれば、カメラパラメータが最適な値から大きくずれた場合や、設計値が分からない場合であってもキャリブレーションを行うことができる。カメラパラメータの初期値は、キャリブレーション用のパターンを用いる公知の手法などで求めるか、画像中から複数の特徴点を検出し、検出した複数の特徴点に対応する点を他の画像中から検出してその複数の特徴点の対を用いて外部パラメータ等を求めることができる。そして、初期値を用いて画像補正データを作成し(ステップ121)し、補正データを格納(ステップ122)することで、ステップ120で求めた初期値からカメラパラメータの最適値を求めることができる。
【0173】
また図16に示すように、異なったタイミングで撮像した画像を用いることでより多くの対応領域を用いてキャリブレーションを行うことができ、キャリブレーションの精度を向上させることができる。例えば、時刻tに撮像した画像に加え、時刻t−1に撮像した画像を用いる。また、時刻t−1に画像処理により検出した歩行者,車両等の領域を用いて、テンプレートマッチング等の公知の技術により時刻tの対応領域算出に用いる領域を求めても良い。さらに、画像処理とキャリブレーションを処理する際に、図17に示すようにキャリブレーション処理をN回に分割し、処理周期のうち、画像処理を実施後に余った時間でキャリブレーション処理を実行することで、処理周期が低下することを防止することができる。
【符号の説明】
【0174】
1 カメラユニット
4a,4b カメラ
6 CPU
7 データROM
9 RAM
10 プログラムROM
21 補正データ読み込み部
22 画像補正部
23 対応領域算出部
24 一致度算出部
25 カメラパラメータ算出部
26 補正データ格納部

【特許請求の範囲】
【請求項1】
視野が重複し、位置,角度,ズーム率のいずれか少なくとも1つが異なるように撮像された2つの画像を補正する予め記憶された、あるいは演算により算出された補正データを読み込む補正データ読み込み部と、
前記補正データ読み込み部で読み込まれた前記補正データを用いて撮像された画像を補正する画像補正部と、
前記画像補正部で補正された2つの画像中から対応する対応領域を算出する対応領域算出部と、
前記対応領域から抽出された画像パターンの一致度、前記対応領域間の座標の一致度、前記対応領域間の間隔の一致度、の少なくとも1つを算出する一致度算出部と、
前記一致度算出部で算出された前記一致度に基づいてカメラパラメータを算出するカメラパラメータ算出部と、
前記カメラパラメータ算出部で算出された前記カメラパラメータ、又は前記カメラパラメータに基づく補正データ、を格納する補正データ格納部(26)と、を有する画像処理装置。
【請求項2】
請求項1記載の画像処理装置において、
前記カメラパラメータ算出部で算出された前記カメラパラメータは、前記撮像素子の焦点距離,画素の縦方向の大きさ,画素の横方向の大きさ,縦方向の拡大率,横方向の拡大率,前記撮像素子の縦軸と横軸の成す角度,光軸中心の座標、の少なくとも1からなる内部パラメータ、又は、前記撮像素子間の回転角度、前記撮像素子間の平行移動量の少なくとも1つからなる外部パラメータ、又は画像の歪みを補正する歪みパラメータである画像処理装置。
【請求項3】
請求項1記載の画像処理装置において、
前記対応領域算出部は、撮像された2つの画像中から平行なパターンの端点の組を対応領域として算出する画像処理装置。
【請求項4】
請求項3記載の画像処理装置において、
前記一致度算出部は、前記対応領域間の間隔の一致度を算出する場合、前記対応領域間の間隔の平均値、前記対応領域間の間隔の最小値、前記対応領域間の間隔の最大値の少なくとも1つから算出した値、予め記憶又は定義された平行なパターンの幅の値、外部機器から受信された平行なパターンの幅の値、の少なくとも1つを比較して一致度を算出する画像処理装置。
【請求項5】
請求項1記載の画像処理装置において、
前記一致度算出部は、前記対応領域内の輝度値,輝度変化量,輝度変化の方向,カラー情報,カラーの変化量,輝度のヒストグラム,輝度変化量のヒストグラム,カラーの変化量のヒストグラム,輝度変化の方向のヒストグラム,カラー変化の方向のヒストグラム、の少なくとも1つの画像から得られる特徴量に基づいて前記対応領域間の一致度を算出する画像処理装置。
【請求項6】
請求項1記載の画像処理装置において、
前記補正データは、予め記憶されたカメラパラメータ、又は前記カメラパラメータに基づいて算出された補正前後の対応関係を示す変換テーブルである画像処理装置。
【請求項7】
請求項6記載の画像処理装置において、
前記カメラパラメータ算出部で算出された前記カメラパラメータ、又は前記変換テーブル、を補正データとして格納する補正データ格納部を有する画像処理装置。
【請求項8】
請求項1記載の画像処理装置において、
前記画像補正部は、前記2つの撮像素子の一方の撮像素子のカメラパラメータを補正データとして他方の撮像素子で撮像された画像を補正する画像処理装置。
【請求項9】
請求項3記載の画像処理装置において、
前記対応領域算出部は、撮像された画像から検知された、歩行者,車両,路面,路面標示,建造物,構造物の少なくとも1つのパターンを含む領域を前記対応領域として算出する画像処理装置。
【請求項10】
請求項3記載の画像処理装置において、
前記対応領域算出部は、撮像された画像から検知された、室内に存在する床と壁面の境界線,天井と壁面の境界線,窓枠、の少なくとも1つのパターンを含む領域を前記対応領域として算出する画像処理装置。
【請求項11】
請求項1記載の画像処理装置において、
前記一致度算出部が算出した一致度に基づいて、前記撮像素子に異常が発生しているか否か、又は読み込んだ前記補正データが正常か否かを判定し、
判定した結果に基づいて、前記撮像素子の動作を停止する停止信号の出力、又はユーザに警告を発する警告信号の出力を行う画像処理装置。
【請求項12】
請求項1記載の画像処理装置において、
前記対応領域算出部は、撮像された1つの画像に複数の対応領域が算出された画像処理装置。
【請求項13】
請求項12記載の画像処理装置において、
前記複数の対応領域は、前記撮像素子からの距離の異なる対応領域を有する画像処理装置。
【請求項14】
請求項1記載の画像処理装置において、
前記撮像素子で撮像された画像は、異なるタイミングで撮像された画像である画像処理装置。
【請求項15】
請求項1記載の画像処理装置において、
前記撮像素子で撮像された画像を複写する手段を有する画像処理装置。
【請求項16】
請求項1記載の画像処理装置において、
前記画像補正部で補正された前記2つの画像から視差情報を算出する視差算出部と、
前記視差情報に基づいて歩行者,車両,建造物,構造物,路面,路面標示の少なくとも1つの物体を検出する画像認識部と、を有する画像処理装置。
【請求項17】
請求項16記載の画像処理装置において、
前記対応領域算出部は、前記画像認識部で認識された前記物体を含む領域を前記対応領域として算出する画像処理装置。
【請求項18】
画像を撮像する2つの撮像素子と、
撮像された画像を画像処理する処理手段と、を有し、
前記処理手段は、
前記2つの撮像素子で撮像された2つの画像を補正する予め記憶された補正データを読み込む補正データ読み込み部と、
前記補正データ読み込み部で読み込まれた前記補正データを用いて撮像された画像を補正する画像補正部と、
前記画像補正部で補正された2つの画像中から対応する対応領域を算出する対応領域算出部と、
前記対応領域から抽出された画像パターンの一致度、前記対応領域間の座標の一致度、前記対応領域間の間隔の一致度、の少なくとも1つを算出する一致度算出部と、
前記一致度算出部で算出された前記一致度に基づいてカメラパラメータを算出するカメラパラメータ算出部と、を有する撮像装置。
【請求項19】
請求項18記載の撮像装置において、
前記補正データを記録する記録手段を有する撮像装置。
【請求項20】
請求項18記載の撮像装置において、
前記撮像素子のキャリブレーションを実行するキャリブレーションプログラムが記録されたプログラム記録手段を有し、
前記処理手段は、電源ON信号が入力された場合、前記プログラム記録手段に記録された前記キャリブレーションプログラムに基づいて、前記補正データ読み込み部と、前記画像補正部と、前記対応領域算出部と、前記一致度算出部と、前記カメラパラメータ算出部と、を実行する撮像装置。

【図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


【公開番号】特開2012−75060(P2012−75060A)
【公開日】平成24年4月12日(2012.4.12)
【国際特許分類】
【出願番号】特願2010−220250(P2010−220250)
【出願日】平成22年9月30日(2010.9.30)
【出願人】(509186579)日立オートモティブシステムズ株式会社 (2,205)
【Fターム(参考)】