(57)【特許請求の範囲】
【請求項１】
カメラと歪み校正用被写体の相対位置情報から歪みのない理想結像位置を算出する理想結像位置算出手段と、
校正用被写体が撮影された画像からレンズの歪みを含んだ実測結像位置を検出する実測結像位置検出手段と、
結像位置に応じた重みを生成するための重み関数を決定する重み関数決定手段と、
歪み係数を用いて算出される歪み量が含まれる理想結像位置と実測結像位置、及び、結像位置に応じて前記重み関数が生成した重みを、歪み係数の評価関数に入力して、評価関数の演算結果から歪み係数を決定する歪み係数決定手段と、
を有することを特徴とするカメラキャリブレーション装置。
【請求項２】
前記重み関数は、画像中心からの距離に応じて異なる重みを生成する関数であり、画像中心からの距離に応じて歪み補正の補正精度を変更する、
ことを特徴とする請求項１に記載のカメラキャリブレーション装置。
【請求項３】
結像位置と歪み係数から歪み量を算出する算出式に、前記歪み係数決定手段が決定した歪み係数を適用し、前記算出式で得られた歪み量が閾値以上となる画像領域がある場合、
前記重み係数決定手段は結像位置に関係なく均一な重みを生成する前記重み関数に変更して、前記歪み係数決定手段は、再度、歪み係数を決定する、
ことを特徴とする請求項１に記載のカメラキャリブレーション装置。
【請求項４】
前記重み関数は、画像中心からの距離が大きくなるほど一様に小さくなる重みを生成する関数、又は、画像中心からの距離が大きくなるほど一様に大きくなる重みを生成する関数である、
ことを特徴とする請求項１〜３いずれか１項に記載のカメラキャリブレーション装置。
【請求項５】
前記評価関数は、前記実測結像位置と、結像位置と歪み係数を用いて算出された前記理想結像位置との差の二乗の平方根に、結像位置に応じて前記重み関数が生成した重みを乗じる関数であり、
前記歪み係数決定手段は、画像全体の前記評価関数の演算結果の絶対値和又は二乗和が最小になる場合の歪み係数を求める、
ことを特徴とする請求項１に記載のカメラキャリブレーション装置。
【請求項６】
複数のステレオカメラを備え、運転支援又はドア開閉支援を提供する乗員支援装置であって、
車載されたセンサにより車両状況又は乗員の行動を予測して複数のステレオカメラから一つのステレオカメラの画像を選択すると共に、他の領域よりも高精度に測距したい領域選択を行う画像選択手段と、
歪み係数を係数とする歪み量の算出式、及び、１レンズ毎に複数の前記歪み係数を記憶する歪み係数記憶手段と、
前記歪み係数記憶手段から読み出した、選択された領域用の前記歪み係数を前記算出式に適用して歪み量を算出し、前記画像選択手段によって選択された画像に歪み補正を施す前処理部と、
前記前処理部によって補正された２つの画像に相関演算を施す相関演算手段と、
前記相関演算手段の出力結果に基づいて対象物までの距離情報を検出する距離情報検出手段と、有することを特徴とする乗員支援装置。
【請求項７】
前記前処理部は、所定数の画像毎に、前記歪み係数記憶手段から読み出す前記歪み係数を切り換え、前記算出式に適用する、ことを特徴とする請求項６に記載の乗員支援装置。
【請求項８】
前記歪み係数記憶手段が記憶する複数の前記歪み係数は、請求項１〜４いずれか１項記載のカメラキャリブレーション装置が算出したものである、ことを特徴とする請求項６又は７に記載の乗員支援装置。
【請求項９】
理想結像位置算出手段が、カメラと歪み校正用被写体の相対位置情報から歪みのない理想結像位置を算出するステップと、
実測結像位置検出手段が、校正用被写体が撮影された画像からレンズの歪みを含んだ実測結像位置を検出するステップと、
重み関数決定手段が、結像位置に応じた重みを生成するための重み関数を決定するステップと、
歪み係数決定手段が、歪み係数を用いて算出される歪み量が含まれる理想結像位置と実測結像位置、及び、結像位置に応じて前記重み関数が生成した重みを、歪み係数の評価関数に入力して、評価関数の演算結果から歪み係数を決定するステップと、
を有することを特徴とするカメラキャリブレーション用歪み係数生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レンズの歪み係数を生成するカメラキャリブレーション装置に関する。
【背景技術】
【０００２】
自動車の運転支援システムや駐車支援システムが注目されており、支援内容に応じて複数のカメラが車に設置されるようになってきた。このような種々の支援を実現したＡＳＶ（Advanced Safety Vehicle；先進安全自動車）が各方面から提案されている。ＡＳＶは、例えば、搭載したカメラによって車両前方を監視し、人、他車両、障害物等との距離を検出する。それらに衝突する危険性がある場合は、運転者に報知したり、車両のブレーキを作動させて減速させたり停止させたりする。
【０００３】
また、ＡＳＶでは、駐車時にドアやトランクの開閉に十分なスペースを残しているかを運転者に知らせたり（ドア開閉支援）、車の乗り降りの際に後方から車や自転車、人が接近している場合は警告する（乗降支援）、などのシステムを構成することも可能である。
【０００４】
これらのシステムは、車から対象物までの距離を高精度に算出すると、より正確な支援が可能になると期待される。距離を精度よく算出する方法として、測定したい対象物を、二つ以上の設置位置の異なるカメラ（複眼カメラ（以下ステレオカメラと呼ぶ））で撮像したときのセンサ上の結像位置の違い（視差）を用いる方法が知られている。ステレオカメラによる位置検出装置は、レーダ等のアクティブ測距とは異なり、一度の撮影で広い範囲の距離情報及び形状等が得られるという利点がある。
【０００５】
ここで、目標測距対象物が異なるため測定領域（画角）が異なるような場合、画角の異なる複数のステレオカメラを用いることが考えられる。しかし、複数のステレオカメラを搭載するとコストが高くなり、装置も大型化し、測定領域も重複してしまう可能性が高い。
【０００６】
そこで、一つのステレオカメラの測距範囲を広くするため、広角の光学系を用いる事が考えられる。
【０００７】
上述したドア開閉支援においては、自動車はドアの開閉スペースはどのくらいあるのかを測定する必要があるため、比較的狭い画角範囲内の測距のみできればよい。一方、乗降支援においては（ドアを開けてよいか確認するときなど）、車に近づいてくる人や物がないことを認識したいので、広い画角で測距を行う必要がある。また、乗員が少しドアを開けて頭をだして遠くから何か近づいてくる人や物がないことを確認するよう場合（狭い測距範囲でよい場合）には、狭い画角領域の測距精度はそれほど高精度でなくてもよいが、広画角領域は高精度に測距を行う必要がある。
【０００８】
高精度な測距を行う場合にはサブピクセル精度の歪み補正が必要である。歪みを補正するにはＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）を用いた方法や、高次の多項式で歪みを表現する方法が知られている（例えば、特許文献１参照。）。特許文献１には、死角をなくして広角レンズの歪み補正を行うため、領域毎に異なる歪み補正強度でレンズ歪み補正を行い、作成したＬＵＴで歪み補正する運転支援装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ＬＵＴを用いて補正する場合、用意すべきメモリ容量が大きくなってしまうという問題がある。そこで、高次の多項式で歪みを表現することが検討される。
【００１０】
しかし、広角レンズの歪みを１つの関数モデルで高精度に近似することは困難である。カメラにはレンズの歪みの他に、カメラごとに異なる製造ばらつきによる歪みがあり、歪み方にも規則正しい変化があるわけではない。
【００１１】
また、画角が広くなるほど画像全体の歪みを一つの多項式で表現する事は難しくなることが容易に予想される。非球面レンズを用いるなど、光学系の構成を工夫することも考えられるが、コストが高くなる上、光学系の工夫だけでサブピクセル精度の歪みを補正する事は困難である。
【００１２】
本発明は、上記課題に鑑み、広角レンズの歪みを、容量の小さなメモリで高精度に補正するカメラキャリブレーション装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、カメラと歪み校正用被写体の相対位置情報から歪みのない理想結像位置を算出する理想結像位置算出手段と、校正用被写体が撮影された画像からレンズの歪みを含んだ実測結像位置を検出する実測結像位置検出手段と、結像位置に応じた重みを生成するための重み関数を決定する重み関数決定手段と、歪み係数を用いて算出される歪み量が含まれる理想結像位置と実測結像位置、及び、結像位置に応じて前記重み関数が生成した重みを、歪み係数の評価関数に入力して、評価関数の演算結果から歪み係数を決定する歪み係数決定手段と、を有することを特徴とするカメラキャリブレーション装置を提供する。
【発明の効果】
【００１４】
広角レンズの歪みを、容量の小さなメモリで高精度に補正するカメラキャリブレーション装置を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】ステレオカメラシステムの概略的な特徴を説明する図の一例である。
【図２】ステレオカメラの歪み係数を算出するキャリブレーション装置、及び、ステレオカメラを有するシステムのシステム構成例を示す図の一例である。
【図３】キャリブレーション装置の機能ブロック図の一例を示す図である。
【図４】実測結像位置と理想結像位置の取得を説明する図の一例である。
【図５】はレンズの製造時のばらつきによって発生する歪みの様子を示す図の一例である。
【図６】重み付けと歪み残差を説明する図の一例である。
【図７】重み付けと歪み残差を説明する図の一例である。
【図８】キャリブレーション装置の動作手順の一例を示すフローチャート図の一例である。
【図９】ステレオカメラシステムの機能ブロック図の一例である。
【図１０】複数のステレオカメラを有するステレオカメラシステムの機能ブロック図の一例である。
【図１１】画像の選択を説明する図の一例である。
【図１２】画像の選択を説明する図の一例である。
【図１３】車両状況の判定を説明する図の一例である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例１】
【００１７】
図１は、ステレオカメラシステムの概略的な特徴を説明する図の一例である。なお、この特徴は、ステレオカメラ５０に関わらず単眼カメラにも同様に適用できる。まず、図１（ａ）に示すように、カメラの画角は予め決まっており、本実施形態のステレオカメラ５０は広範囲を撮影するため広い画角を有している。
【００１８】
一般にレンズは、歪曲歪みだけでなくレンズごとに異なる製造ばらつきによる歪みを有する。ＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）を用いずに歪み補正する場合、高次の多項式を用いて歪み係数を算出するが、全ての画角に対し歪みを十分に補正できる歪み係数を算出することは困難になる。
【００１９】
そこで、本実施形態では、画角領域に対し重み付けを行ってから、歪み係数を算出する。
図１（ｂ）は、ＴＥＬＥ領域（狭画角）の重み付けを大きくした場合を説明する図の一例である。狭画角の重み付けを広画角よりも大きくすることで、狭画角の画像の歪みを精度よく補正できる歪み係数が得られる。このため、ステレオカメラの場合、狭画角にある被写体に対し高精度な測距が可能となる。
図１（ｃ）は、ＷＩＤＥ領域（広画角）の重み付けを大きくした場合の歪み係数を説明する図の一例である。広画角の重み付けを狭画角よりも大きくすることで、広画角の画像の歪みを精度よく補正できる歪み係数が得られる。このため、ステレオカメラの場合、広画角にある被写体に対し高精度な測距が可能となる。
【００２０】
後述するキャリブレーション装置は、車両に搭載する前に、画角に応じて重み付けを変えていくつかの歪み係数を算出しておく。よって、車両には複数の歪み係数が記憶される。車両は、車両状況によって（提供すべき運転支援によって）歪み係数を選択して高次の多項式で歪み量を算出し、撮影された画像データに歪み補正を施す。したがって、１つの広画角なカメラにより、広い範囲の物や人との距離を精度よく検出できるという効果が得られる。
【００２１】
〔構成例〕
図２（ａ）は、ステレオカメラ５０の歪み係数を算出するキャリブレーション装置１００、及び、ステレオカメラ５０を有するキャリブレーションシステムのシステム構成例を示す図の一例である。キャリブレーション装置１００は、例えばコンピュータや情報処理装置として構成される。キャリブレーション装置１００はステレオカメラ５０と接続されているが、ステレオカメラ５０が撮影した画像データを取得できればよく、必ずしも接続されている必要はない。逆に、キャリブレーション装置１００と、一台以上のステレオカメラ５０をネットワークを介して接続し、一台以上のステレオカメラ５０に対し一台のサーバ（キャリブレーション装置）で歪み係数を算出するように構成してもよい。
【００２２】
図２（ｂ）は、キャリブレーション装置１００のハードウェア構成図の一例である。キャリブレーション装置１００は、歪み計数を算出可能な一般的なコンピュータであればよい。したがって。パーソナルコンピュータやサーバの他、ワークステーション、タブレットＰＣなどでもよい。
【００２３】
キャリブレーション装置１００は公知のハードウェア構成を有する。キャリブレーション装置１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４、ネットワークＩ／Ｆ１０５、グラフィックボード１０６、キーボード１０７、マウス１０８、メディアドライブ１０９、及び、ＤＶＤ−ＲＯＭドライブ１１０を有する。ＣＰＵ１０１は、ＨＤＤ１０４に記憶されたプログラム１３０を実行してキャリブレーション装置１００の全体の動作を制御する。ＲＯＭ１０２は、ＩＰＬ（Initial Program Loader）や静的なデータを記憶しており、車載されたＲＯＭとは異なるものである。ＲＡＭ１０３は、ＣＰＵ１０１がプログラム１３０を実行する際のワークエリアとして使用される。
【００２４】
ＨＤＤ１０４にはＣＰＵ１０１が実行するプログラム１３０やＯＳが記憶される。ネットワークＩ／Ｆ１０５はネットワークに接続するための例えばイーサネットカード（登録商標）であり、主にレイヤ１、２の処理を提供する。レイヤ３以上の処理は、ＯＳに含まれるＴＣＰ／ＩＰのプロトコルスタックや不図示の通信プログラムが提供する。
【００２５】
グラフィックボード１０６は、ＣＰＵ１０１がビデオＲＡＭに書き込んだ描画コマンドを解釈してディスプレイ１２０にウィンドウ、メニュー、カーソル、文字又は画像などの各種情報を表示する。キーボード１０７は、文字、数値、各種指示などのための複数のキーを備え、ユーザの操作を受け付けＣＰＵ１０１に通知する。同様に、マウス１０８はカーソルの移動、メニューなどの処理対象の選択、処理内容などのユーザの操作を受け付ける。メディアドライブ１０９は、フラッシュメモリ等の記録メディア１１１に対するデータの読み出し又は書き込み（記憶）を制御する。ＤＶＤ−ＲＯＭドライブ１１０は、着脱可能な記録媒体の一例としてのＣＤ−ＲＷ、ＤＶＤ−ＲＷ等の光メディア１１２に対する各種データの読み出し又は書き込みを制御する。また、上記各構成要素を電気的に接続するためのアドレスバスやデータバス等のバスライン１１３を備えている。
【００２６】
プログラム１３０は、インストール可能な形式又は実行可能な形式のファイルで、コンピュータで読み取り可能な記録メディア１１１や光メディア１１２に記録して流通される。また、プログラム１３０は、不図示のサーバからインストール可能な形式又は実行可能な形式のファイルで配布されてもよい。
【００２７】
図３は、キャリブレーション装置１００の機能ブロック図の一例を示す図である。キャリブレーション装置１００は、最終的に歪み係数を算出する。歪み係数は、例えば、車両に搭載されるステレオカメラシステム２００のメモリ１に記憶される。
【００２８】
キャリブレーション装置１００は、理想結像位置算出部１２、実測結像位置算出部１１、歪み係数算出部１３、及び、重み関数選択部１４を有する。
＜実測結像位置、理想結像位置の算出＞
実測結像位置算出部１１は実測結像位置を算出し、理想結像位置算出部１２は理想結像位置を算出する。実測結像位置と理想結像位置の違いはレンズの歪みにより生じるものである。
【００２９】
図４は実測結像位置と理想結像位置の取得を説明する図の一例である。歪み校正用の被写体として市松模様状に正方形の白マスと黒マスが反転した格子チャートが用いられている。校正用の被写体は、特に図示するものに限られない。
【００３０】
理想結像位置は、レンズの歪みのない仮想的な状態で、格子の各座標が結像する撮像素子上の位置である。レンズに歪みがないと仮定しているので、カメラと格子チャートの相対角度や距離、焦点距離などから計算で求めることができる。例えば、球面の凸レンズに対しては、焦点距離Ｆ、被写体のレンズからの距離ａ、焦点位置のレンズからの距離ｂに、次のような関係がある。
１／Ｆ＝１／ａ  ＋  １／ｂ
a、ｂ、Ｆが既知なら格子の座標から撮像素子上の結像位置が求められる。
【００３１】
したがって、格子チャートとカメラの相対位置を正確に位置決定し、それを計測すること又は正確な値を取得することが重要である。通常は、格子チャートの中央にレンズの光軸中央が相対し、かつ、レンズの主面が格子チャートと並行になるように配置される。よって、レンズが格子チャートに対しシフトや回転している場合、シフト量や回転量も計測される。キャリブレーション装置１００には、開発者等が計測して設定したこれらの値が設定されている。理想結像位置算出部１２は、与えられた、カメラと格子チャートの相対角度や距離、予め知られている焦点距離などを受け付け、理想結像位置を算出する。
【００３２】
これに対し、実測結像位置は、格子の各座標が実際に結像した撮像素子における位置である。カメラには、少なくともレンズ中心から遠方に行くほど大きくなる歪曲収差があり、高精度に測距する場合に必ずこの歪み補正を行う必要がある。実測結像位置はステレオカメラ５０が実際に取得した格子チャートの画像から格子点の位置を特定する事で求められる。格子点の位置は、画像データを２値化して黒画素の正方形と白画素の正方形の頂点として検出できる。理想結像位置と実測結像位置の差異が計測された歪み量である。
【００３３】
＜従来の歪み補正＞
ステレオカメラ５０でレンズの歪みが生じると、視差に直接影響を及ぼすため、歪みがあるまま撮像した画像を相関演算してしまうと測距結果は非常に精度の悪いものとなってしまう。
【００３４】
歪みの補正方法としては、大きく、全画素の補正前後の変換先の情報をもつＬＵＴを利用する方法と、多項式を利用する方法がある。歪曲収差はレンズ中心から遠方に行くほど大きくなるので、歪み量は高次の多項式で表すことができる。
【００３５】
歪み量は例えば式（１）に示した高次の多項式により算出できることが知られている。
【００３６】
【数１】
0005834810.tif 000002
ここで、δx、δyはレンズのある点のx方向、y方向の歪み量であり、x,yは理想正規化座標、f1,f2….fk、g1,g2….gkはある温度における歪み係数である。歪み係数を求めることができれば、あるレンズのある温度の歪み量をレンズの全体（画像データの全体にわたって）求めることができる。これら歪み係数を求めるためには、x,y,δx,δyの値を既知データとし、画像全体でこの歪み式（１）を満たすような歪み係数の最適化を行う手法がある。
【００３７】
・温度に応じた歪み量
式（１）はある温度における歪み量なので、好ましくは温度に応じて歪みを補正する。特に車載用途であると車内は１００度近くになるため、温度による歪み量変化は無視できず、相関演算する前に補正する必要がある。
【００３８】
温度による歪み変化を表現する多項式の例として例えば式（２）などが挙げられる。式（２）は、上述した式（１）と同じで歪み係数fとgが温度ｔの関数として表されている。すなわち、各温度（例えば１度から数度刻み）における単眼カメラごとの歪み係数ｆ、ｇを記憶しておくよりも、歪み係数を温度の関数として表す方がより記憶容量が小さくてすむ。
【００３９】
【数２】
0005834810.tif 000003
〔本実施形態の歪みの処理について〕
しかしながら、一般にレンズには、レンズ中心から遠方に行くほど大きくなる歪曲収差の他に、カメラ（主にレンズ）ごとに異なる製造ばらつきによる歪みがある。
【００４０】
図５は、レンズの製造時のばらつきによって発生する歪みの様子を示す図の一例である。矢印の始点が理想結像位置で、終点が実測結像位置であり、画像全体の歪みをベクトル図で示したものである。各矢印はカラー表示可能であり、色によって相対的な歪みの大きさを示すことができる。
【００４１】
カメラ１とカメラ２（ステレオカメラ５０の２つのレンズでも、そうでなくてもよい）のベクトルを比較すると明らかなように、製造時のばらつきによって発生する歪みはカメラ毎に大きく異なっている。このような規則性のない歪みを表現する多項式を、広角レンズを用いたカメラの画像全域で表現することは非常に困難である。
【００４２】
そこで、歪み補正方法として、歪み係数を求める際に領域重み付けを行うことが考えられる。本実施形態のキャリブレーション装置１００は、ある程度の広さの領域に重み付けして、領域毎に最適化された歪み係数を算出する。こうすることで、大きく重み付けされた領域に撮影された被写体との距離を精度よく検出することができる。
【００４３】
図６、７は重み付けと歪み残差を説明する図の一例である。図６（ａ）は、横軸が画像中心からの距離を、縦軸が重みを示す。横軸はレンズの焦点距離で正規化されているので、焦点距離に関係なく重みを表すことができる。縦軸の重みは、最大の重みを１００％（＝１．０）としてそれ以外の重みを１００％に対する相対値として示す。図６（ａ）の重みは、画像中心からの距離が大きいほど、小さくなっている。すなわち、便宜的に示したＴＥＬＥ領域の重みの方が、ＷＩＤＥ領域の重みより大きくなっている。このような重み付けは、ＴＥＬＥ領域の被写体の距離を精度よく検出する際に好適であることが期待できる。
【００４４】
より具体的には、このような重みを使用して歪み係数を算出すれば、ＴＥＬＥ領域に最適化された歪み係数を得ることができる。
【００４５】
式（３）は、歪み係数を最適化するための評価関数Ｈの一例を示す。
【００４６】
【数３】
0005834810.tif 000004
x,y：理想正規化座標（Fx、Fyで正規化済み）
Cx、Cy：画像中心、
δx、δy：式（１）（２）で示したx,yと歪み係数で表された歪み量
u、v：実測結像位置
w：重み式
Fx：ｘ方向の焦点距離
Fy：ｙ方向の焦点距離
評価関数Ｈのルート内は、画像中心を原点として、
「実測位置u」と、「理想正規化座標x ＋ あるｆの時の歪み量δx」を焦点距離Fxに乗じた値の差、
「実測位置v」と、「理想正規化座標y ＋ あるｇの時の歪み量δy」を焦点距離Fyに乗じた値の差、
をそれぞれ二乗した値の和である。
【００４７】
評価関数Ｈのルート内の値が小さいほど歪み係数が適切であることになる。歪み係数の算出方法としては、一対の理想結像位置、実測結像位置の組によって評価関数Ｈの値が計算されるので、画像全体におけるＨを計算し、Ｈの二乗和又は絶対値和が最小となる場合の歪み係数ｆ、ｇを求める方法などがある。式（３）では、重み式ｗが乗じられているので、重みが大きいｘ、ｙにおいて算出されたＨが大きく評価される。
【００４８】
したがって、図６（ａ）のような重みを定式化して式（３）に与えることで、歪み係数算出部１３は、式（３）からＴＥＬＥ側で最適化された歪み係数を算出できる。なお、式（３）はＨＤＤ１０４に記憶されている。
【００４９】
式（４）は重みを表す重み式ｗの一例である。rは画像中心からの距離であり、ｒ＝√（ｘ２＋ｙ２）である。
【００５０】
【数４】
0005834810.tif 000005
重み関数選択部は図６（ａ）のように与えられた重みから式（４）のような重み式を決定する。どのように重み式を決定するかについてはいくつか方法がある。例えば、開発者から狭画角又は広画角のどちらを優先するかの情報を受け付け、狭画角用か広画角用の重み関数を選択する方法がある。また、例えば、図６（ａ）のような重みを開発者がプロットし、所定の多項式で近似することで重み式を作成できる。または、適当な多項式の係数を、開発者から直接、受け付けて図６（ａ）のようなグラフを表示することで、試行錯誤的に定式化することもできる。また、必ずしも連続に変化する（微分可能な）多項式で定式化する必要はなく、あるｒの範囲で重みを所定値以上（例えば、0.8〜0.9以上）、それ以外でより小さい値（例えば"0.3"）とすることもできる。したがって、重み式ｗの関数形や多項式の次数は式（４）に限定されない。
【００５１】
なお、ＨＤＤ１０４にはいくつかの式（４）の候補（関数形や次数が決まっており係数を可変とできる）が記憶されている。
【００５２】
以上から明らかなように、広画角領域を高精度に測距したい場合には、ＷＩＤＥ側の重みを大きくすればよい。
【００５３】
図７（ａ）は、図６（ａ）と同様に、画像の中心位置に対する重みの一例を示す。図７（ａ）の重みは、画像中心からの距離が大きいほど、大きくなっている。すなわち、ＴＥＬＥ領域の重みの方が、ＷＩＤＥ領域の重みより小さくなっている。このような重み付けは、ＷＩＤＥ領域の被写体の距離を精度よく検出する際に好適であることが期待できる。
【００５４】
したがって、図７（ａ）の重みから重み関数選択部１４が式（４）のような重み式を求め、式（３）に適用することで、歪み係数算出部１３は、ＷＩＤＥ側で最適化された歪み量係数を算出できる。すなわち、重みが小さい領域と比較して、重みの高い領域では高精度に歪みを補正することができる。
【００５５】
図６（ｂ）は、図６（ａ）の重みにより歪み係数を求めた時の、理想結像位置と実測結像位置の差を示す。すなわち、図６（ａ）の重みを用いて求めた歪み係数によって画像を補正した場合に、補正しきれなかった歪みの残差量のイメージ図である。なお、残差はピクセル単位で示している。図６（ａ）の重みは、狭画角領域で高精度に測距できるような重みであるので、狭画角領域では歪み残差量が小さい。広画角領域では歪み残差量が徐々に大きくなっている。
【００５６】
したがって、図６（ｂ）から、ＴＥＬＥ領域では歪みを高精度に補正できていることがわかる。反面、ＷＩＤＥ側に行くほど歪み補正が不十分になるおそれがある。そこで、全画角において残差量が所定値を超えないように保証することが好適となる。すなわち、歪み係数算出部１３は、限界の歪み残差量（歪み量許容値）を予め記憶しておく。画像の一部で歪み残差が歪み量許容値を超えた場合、重み関数選択部１４に通知する。これにより、重み関数選択部１４は、歪み係数算出部１３が画像全体で均一な歪み補正ができるように重み式を変更する（この場合も、歪み残差が歪み量許容値を超えないようにする）。この場合は、画像中心からの距離によって二種類の歪み係数が得られることになる。
【００５７】
図７（ｂ）は、図７（ａ）の重みにより歪み係数を求めた時の、理想結像位置と実測結像位置との差を示す。すなわち、図７（ａ）の重みを用いて求めた歪み係数によって画像を補正した場合に、補正しきれなかった歪みの残差量のイメージ図である。図７（ａ）の重みは、広画角領域で高精度に測距できるような重みであるので、広画角領域では歪み残差量が小さい。狭画角領域にいくほど歪み残差量が大きくなっている。図７（ｂ）から、ＷＩＤＥ領域では歪みを高精度に補正できていることがわかる。ＴＥＬＥ側では歪み補正量が不十分になるおそれがあるので、その場合は、図６（ｂ）で説明したように、再度、歪み係数を算出することが有効である。
【００５８】
図５に示したように、歪み係数ｆ、ｇはカメラ側（車両側）のメモリ１に記憶される。歪み係数ｆ、ｇは、少なくとも狭画角領域に最適化したもの、広画角領域に最適化したもの、の二種類が記憶される。この他、画像の一部で歪み残差が歪み量許容値を超えた場合に算出された、全画角に均一な歪み補正が可能な歪み係数を記憶しておく。
【００５９】
この他、中画角領域に最適化した歪み係数、狭画角領域に最適化した複数の歪み係数（超狭画角領域と通常の狭画角領域など）、及び、広画角領域に最適化した複数の歪み係数（超広画角領域と通常の広画角領域など）等を記憶しておいてもよい。
【００６０】
カメラはリアルタイムに撮影した画像データに対し、車両状況に応じて選択した歪み係数を用いて、例えば式（１）又は（２）から歪み量を算出し歪み補正を施す。こうすることで、ＬＵＴを用いることなく、広角レンズの歪みを、撮影領域にあわせて高精度に補正することができる。
【００６１】
〔動作手順〕
図８は、キャリブレーション装置１００の動作手順の一例を示すフローチャート図の一例である。
【００６２】
理想結像位置算出部が理想結像位置を算出する（Ｓ１０）。
【００６３】
実測結像位置算出部がステレオカメラにより撮影された画像を取得する（Ｓ２０）。
【００６４】
実測結像位置算出部は、画像を解析して実測結像位置を算出する（Ｓ３０）。
【００６５】
次に、重み関数選択部は重み関数を決定する（Ｓ４０）。例えば、開発者から狭画角又は広画角のどちらを優先するかの情報を受け付け、適切な重み関数を選択する。
【００６６】
歪み係数算出部が、理想結像位置、実測結像位置、初期値用の歪み係数、及び、重み関数を用いて歪み係数を算出する（Ｓ５０）。何回か計算を繰り返し、評価関数Ｈの二乗和の変化が十分に小さくなったら終了する。
【００６７】
歪み係数算出部は、算出した歪み係数で歪み量を算出し、歪み許容値を超える画像領域があるか否かを判定する（Ｓ６０）。歪み許容値を超える画像領域がない場合（Ｓ６０のＮｏ），図８の処理は終了する。
【００６８】
歪み許容値を超える画像領域がある場合（Ｓ６０のＹｅｓ）、重み関数選択部は画像の全体にわたって均一な重みを生成する重み関数を決定する（Ｓ７０）。そして、ステップＳ５０以下の処理が繰り返される。
【００６９】
〔車両側の構成〕
図９は、ステレオカメラシステム２００の機能ブロック図の一例を示す。ステレオカメラシステム２００は、歪み係数選択部２１、前処理部２２、相関演算部２３、認識部２４、表示・警報・制御部２５、外部パラメータ変化量算出部２６、及び、メモリ１〜３を有する。このうちメモリ１に、上記の複数の歪み係数及び式（１）又は式（２）が記憶されている。ステレオカメラ５０の場合、レンズ毎に複数の歪み係数が記憶されている。
【００７０】
歪み係数選択部２１は、センサ類（焦電センサ、マイクロスイッチ、車速センサ、乗員検知センサ、ステアリング舵角センサ、ギヤポジション検出センサ、方向指示器センサ、温度センサ）２７と接続されている。歪み係数選択部２１は、センサ類２７が検出した情報（以下、単に車両情報という）を取得して車両状況を判別し、適切な歪み係数を選択する。
【００７１】
すなわち、メモリ１に少なくとも広画角領域に最適化した歪み係数と狭画角領域に最適化した歪み係数が記憶されているので、歪み係数選択部２１は車両情報に基づき車両が提供すべき運転支援を判別する。そして、例えば、車両が車に近づいてくる人や物がないことを認識する運転支援を行う場合、広画角領域に最適化した歪み係数を選択する。乗員が少しドアを開けて頭をだして遠くから何か近づいてくる人や物がないことを確認する状況では、狭画角領域に最適化した歪み係数を選択する。なお、より具体的な選択方法に関しては実施例２で説明する。
【００７２】
前処理部２２は、歪み係数選択部２１からの指示によって歪み補正に使用する歪み係数をメモリ１から読み込む。また、２つのカメラ１Ｌ、１Ｒの画像を取り込み、選択された歪み係数を用いて歪み補正を行う。歪み補正処理された画像は相関演算部２３に出力される。メモリ１には歪み係数の他に歪み補正処理に使用するカメラの焦点距離や画素ピッチなどの情報が記憶されている。
【００７３】
相関演算部２３は、前処理部２２から出力された２つの画像の相関演算を行い視差画像を生成する。メモリ２には各ステレオカメラ５０の基線長、画素数、探索幅情報が記憶されていること好ましく、ステレオカメラ５０の基線長、画素数、探索幅などに応じてステレオマッチングを行い、相関演算を行う。
【００７４】
ステレオマッチングとしては、例えばＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）法が知られている。ＳＡＤ法は、ステレオカメラ５０のいずれかにより撮像された一対のステレオ画像から同一の撮像対象物が写っている部分を抽出し、一組のステレオ画像同士でその撮像対象物の同一点を対応づけ、対応づけられた点（対応点）のずれ量（視差）を求める方法である。２つの画像の一方を固定し、他方の画像の着目画素を中心に例えば３×３等の画素ブロックを取り出し、固定した画像の画素に対し１画素ずつシフトしながら最も重なり合う位置を求める。重なり合う位置は、２つの画像の輝度値の差の絶対値の積算値を算出して評価値とし、該評価値が最も小さくなる場合に最も重なり合う位置とする。
【００７５】
最も重なり合う位置までシフトした画素数をｎ、画素ピッチをｓとすると、（ｐ＝ｎ・ｓ）が視差である。視差画像には、画素位置毎にこの視差が登録されている。
【００７６】
認識部２４は、相関演算部２３で計算された視差画像を入力として対象物認識を行う。対象物は、例えば、先行車両、人、ガードレールなどである。認識する際には、あらかじめ測距対象物の特徴を辞書データとしてメモリに記憶しておいてもよいし、同じ視差のかたまりを一つのブロックとして、どのような物があるかは認識しないが、そこに物があるかどうかを認識するようにしてもよい。後者は測距精度がよいほど高精度に認識できる。
【００７７】
外部パラメータ変化量算出部２６は、例えば、認識した対象物からカメラ間の相対位置、向きなどを表す外部パラメータ変化量を求め、その結果を相関演算部２３のメモリ２に保存しておく。出荷時には外部パラメータは精度よく調整されているが、経時などによって外部パラメータはずれてしまうおそれがある。外部パラメータが変化してしまうとそのまま視差算出精度が悪化するからである。相関演算を行うときにその外部パラメータ変化量を反映させて計算させることが望ましい。
【００７８】
認識結果は表示・警報・制御部２５に出力され、表示部に表示されたり、音によって運転者に報知される。表示先としては、メータパネル（ＬＣＤ）やヘッドアップディスプレイなどがある。また、表示や警報だけでなく、障害物との衝突を回避するブレーキ制御や、ドアの可動領域の制御、ドアロックなどの制御を行う事も有効である。
【００７９】
また衝突回避として、表示・警報・制御部２５は、対象物まで後何秒で衝突するかを表示装置に表示する、警報を吹鳴する、距離が近づいている車を赤で点滅させるなど様々な方法で警告することが可能である。
【００８０】
以上説明したように、本実施例のステレオカメラシステム２００は、広角の光学系を用いることで、カメラの数を抑制してコストダウンすることができる。その際、撮影する画角に応じて歪み係数を求めておくので、ＬＵＴのための大きなメモリ容量を必要としない。
【実施例２】
【００８１】
本実施例では、ステレオカメラシステム２００が、車両情報に基づきどのような歪み係数を選択するかを説明する。
【００８２】
図１０は、複数のステレオカメラ５０を有するステレオカメラシステム２００の機能ブロック図の一例を示す。図１０において図９と同一部の説明は省略する。まず、センサ類２７と検出される車両情報について説明する。
【００８３】
車速センサは、例えば、車輪が所定角回転する毎にパルスを出力するセンサであり、画像選択部２０は単位時間当たりのパルスの数により車速を求めることができるようになっている。ステアリング舵角センサは、例えば、ステアリングシャフトの回転に伴いフォトダイオードが検出する光を遮ることで、舵角を検出する。シフトポジションセンサは、シフトレバーの位置（Ｐ，Ｎ，Ｄ、Ｒ等）を検知し、検知されたシフトポジションに応じた電気信号を出力する。方向指示器センサは、例えばステアリングコラムから延設された揺動式のターンシグナルスイッチ（ウィンカスイッチ）の操作方向を検知する。ブレーキセンサは、ブレーキペダルが踏み込まれた際にオンとなる信号を出力するセンサ（ストップランプスイッチ）又はマスタシリンダ圧からブレーキペダルの踏み込みを検出するセンサである。温度センサは車内温度又はステレオカメラ５０（区別する場合、システムカメラ１〜３という）の環境温度を検出するセンサである。ドアロックセンサは、ドア毎にドアのロック／アンロックを検出するセンサである。焦電センサは、赤外線を受光して電圧を出力するセンサであり、ドアの開放レバーや内側のドア取っ手などに配置される。焦電センサにより搭乗者や運転者がドアに手を掛けたことが検出される。マイクロスイッチも同様に、ドアの開放レバーや内側のドア取っ手などに配置され、搭乗者や運転者がドアに手を掛けていることを検出する。
【００８４】
本実施例のステレオカメラシステム２００には、ステレオカメラ１（１Ｌ、１Ｒ）、ステレオカメラ２（２Ｌ、２Ｒ）、ステレオカメラ３（３Ｌ、３Ｒ）が接続されている。ステレオカメラの個数は、２つでもよいし４つ以上でもよい。
【００８５】
また、これらのステレオカメラ１〜３の光学的特性や構成などは限定されない。魚眼のような広画角のレンズから狭角のレンズを使用したカメラでもよく、前処理部２２が、共通の相関演算部２３で計算できるように処理をする。具体的には、１Ｌ、１Ｒ、２Ｌ、２Ｒ、３Ｌ、３Ｒそれぞれの歪み係数がメモリ１に記憶されているので、前処理部２２がそれぞれのカメラが撮影した画像データに適切な歪み補正を行うことで、相関演算部２３が複数のカメラに共通の相関演算をすることが可能になる。
【００８６】
ステレオカメラ１〜３の設置例としては、それぞれを異なる向きに設置することが考えられる。車載用途を考えると、
・車両の全周囲を監視するように設置する
・ドアの開閉時に周囲の物体にぶつかる可能性があるかを認識するために側方に設置する・後続車との距離を認識するために後方に設置する
・前方の対象物の距離を認識するために前方に設置する
などが考えられる。このように配置することで、カメラを組み合わせた多様なアプリケーションを実現できる。
【００８７】
また、ステレオカメラ（又は単なるカメラ）１〜３の向きは車外方向だけでなく、車内方向でもよい。車内方向にカメラを向けて設置する用途としては、乗員検知などが考えられる。
【００８８】
画像選択部２０は実施例１の歪み係数選択部２１と同等の機能を含むものである。画像選択部２０は、車両情報に基づき、複数のステレオカメラ１〜３の画像から一つのステレオカメラの画像を選択する。画像選択をする際には、センサ類２７の情報を用いる。
【００８９】
画像選択部２０は、どのカメラの画像を選択するかだけではなく、あるステレオカメラ１〜３のどの領域を高精度に測距したいかの情報を前処理部２２に出力する。これにより、前処理部２２は、ステレオカメラ１〜３と適用すべき歪み係数を特定できる。
【００９０】
図１１，１２は、画像の選択を説明する図の一例である。図１１、１２はステレオカメラ５０を３台用いた例であるが、ステレオカメラ５０の数は設計できる。いずれの図も、ステレオカメラ１(１Ｌ,１Ｒ)は車内を撮像する向きに設置してあり、例えばバックミラー上などに設置されほぼ車内全体を撮影する。これにより、乗員検知、さらに乗員が着座している座席を判別できる。ステレオカメラ２(２Ｌ,２Ｒ)は、車の左側方、ステレオカメラ３(３Ｌ,３Ｒ)は車の右側方に設置してある。これらはドア部（開閉部材）に設置してもよいが、ドアの開閉中にも同じ撮像範囲を撮影できるように車のドアとドアの間の枠（Ｂピラー）に設置してあるものとする。
【００９１】
乗員が３人の場合を考える。それぞれ人１は左前方の座席に、人２は右前方の座席に、人３は右後方の座席に、着座している。
【００９２】
また、図１１、１２のＴR,ＴL,ＷR, ＷL, Ｗ1, Ｗ2, Ｗ3, Ｗ4はステレオカメラ２，３の撮像範囲(画角)を示す。ＷLはステレオカメラ２の最大画角であり、ＷRはステレオカメラ３の最大画角であり、その他は画角の一部の領域を示している。
【００９３】
画像選択部２０は、車が走行中であるか、左折右折をしようとしているのか、駐車をしようとしている最中であるか、乗員がドアを開閉しようとしているのか又は、停車中であるのかの状況を判別する。判別方法は後述する。
【００９４】
・走行中や左折右折をしようとしている際（運転支援）
歪み係数選択部２１は、画角の広い範囲で測距を均一に行えるような歪み係数を選択するように前処理部２２へ出力する。
【００９５】
・車が駐車をしようとしている最中（駐車支援）
歪み係数選択部２１は、車が周囲の物にぶつからないかを把握する目的で広範囲の領域の測距をする一方、実際にそこに駐車した際に物にぶつからずにドアの開閉が行えるかどうかを把握するために狭い領域を高精度で測距できるようにもしたい。そこで、フレームごと（１フレームごと又は数フレームごと）に高精度に測距する範囲（重み）を変えた歪み係数を選択する事が有効になる。
【００９６】
その際、ステレオカメラ１において乗員を検知し、例えば人１がおらず、左側には誰もいない状態であればドアの開閉を行うのは右側だけであると判断できる。この場合、歪み係数選択部２１は、ステレオカメラ２の画像に対しＷLの範囲の相関演算を行うように指定し、ステレオカメラ３の画像に対しＷRとＴR の領域を交互に計算するように指定する。また、乗員検知にはステレオカメラ１以外に焦電センサなどを用いてもよい。
【００９７】
・車が駐車し終わって停止している場合（ドア開閉支援）
ステレオカメラシステム２００は、乗員が車から降りようとドアを開ける際に対向車線などから近づいてくる車や自転車にぶつからないように支援する。このため、Ｗ1, Ｗ2, Ｗ3, Ｗ4の領域の物の距離を測定する。
【００９８】
なお、停止時にはドアの開閉に十分なスペースが空いていることが望ましい。着座位置やドアを開けようとしているか否かの判断は、ステレオカメラ１、焦電センサ又はマイクロスイッチなどの情報により行う。
【００９９】
このようにして、画像選択部２０は選択した画像データを前処理部２２へ出力し、歪み係数選択部２１は高精度に測距したい領域（画角）情報（Ｗ1, Ｗ2, Ｗ3, Ｗ4）を前処理部２２に出力する。
【０１００】
〔車両状況の判定〕
図１３は、車両状況の判定を説明する図の一例である。
（１）ドアロックが解除されていない
a．運転席のドアロックが解除されていないので、運転者は駐車を含む運転を継続すると予想される。このため、画像選択部２０は「運転支援・駐車支援」を行うと判断する。
（２）ドアロックが解除されており、車速がゼロでなく、ブレーキペダルを踏む頻度が閾値ａ以下でない
ｂ．ブレーキペダルを踏む頻度がａより多いため、運転者は駐車中又は駐車する直前であると予想される。ドアロックが解除されているのはロックし忘れているためと考える。
（３）ドアロックが解除されており、車速がゼロでなく、ブレーキペダルを踏む頻度が閾値ａ以下である
ｃ．ブレーキペダルをほとんど踏まないため、運転者は運転中である予想される。ドアロックが解除されているのはロックし忘れているためと考える。
（４）ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングである
ｄ．シフトポジションがパーキングなので、運転者が降車することが予想される。
（５）ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングでなく、ブレーキペダルを踏む頻度が閾値ｂ（＞ａ）以上でなく、ブレーキペダルを踏む頻度が閾値ａ以下でない
ｅ．ブレーキペダルをａ〜ｂの間の頻度で踏むため、運転者は駐車操作中であると予想される。
（６）ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングでなく、ブレーキペダルを踏む頻度が閾値ｂ（＞ａ）以上でなく、ブレーキペダルを踏む頻度が閾値ａ以下である
ｆ．ほとんどブレーキペダルを踏んでいないのでサイドブレーキを引いて停止していると考えられ、運転者は運転を終了させており、搭乗者や運転者が降車すると予想される。
（７）ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングでなく、ブレーキペダルを踏む頻度が閾値ｂ（＞ａ）以上であり、画像認識で特徴物体を検知した
ｇ．信号機や横断歩道の手前で停止していると考えられ、マイクロスイッチ及び焦電センサでドア開閉を感知する以外は運転支援する
（８）ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングでなく、ブレーキペダルを踏む頻度が閾値ｂ（＞ａ）以上であり、画像認識で特徴物体を検知せず、移動物体が横切るのを検知しない
ｈ．信号機や横断歩道、及び、歩行者の横切りも検知されないので、搭乗者や運転者が降車すると予想される（ドア開閉支援）
（９）ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングでなく、ブレーキペダルを踏む頻度が閾値ｂ（＞ａ）以上であり、画像認識で特徴物体を検知せず、移動物体が横切るのを検知した
ｉ．歩行者の通過待ちをしていると考えられ、マイクロスイッチ３０又は焦電センサでドア開閉を感知する以外は運転支援する
このように、画像選択部２０は、車両情報から車両状況を適切に判定できる。車両状況が定まると、ステレオカメラ１〜３から選択すべき画像データ及び歪み係数を特定できる。すなわち、広角領域若しくは狭角領域の歪みをより高精度に測距したい、又は、画像全体で同じレベルの精度で歪み補正したい、という目的に応じて一つの多項式の歪み係数を選択できる。ステレオカメラの使用状況に応じて歪み係数を切り替えることで、一つのステレオカメラで広角から狭角領域までの高精度な測距が実現できる。
【符号の説明】
【０１０１】
１１      実測結像位置算出部
１２      理想結像位置算出部
１３      歪み係数算出部
１４      重み関数選択部
２０      画像選択部
２１      歪み係数選択部
２２      前処理部
２３      相関演算部
２４      認識部
２５      表示・警報・制御部
２６      外部パラメータ変化量算出部
２７      センサ類
１００    キャリブレーション装置
２００    ステレオカメラシステム
【先行技術文献】
【特許文献】
【０１０２】
【特許文献１】特開２００３−３４８５７５号公報
【図１】
0005834810.tif 000006
【図２】
0005834810.tif 000007
【図３】
0005834810.tif 000008
【図４】
0005834810.tif 000009
【図５】
0005834810.tif 000010
【図６】
0005834810.tif 000011
【図７】
0005834810.tif 000012
【図８】
0005834810.tif 000013
【図９】
0005834810.tif 000014
【図１０】
0005834810.tif 000015
【図１１】
0005834810.tif 000016
【図１２】
0005834810.tif 000017
【図１３】
0005834810.tif 000018