カメラキャリブレーション装置、乗員支援装置、カメラキャリブレーション用歪み係数生成方法

【課題】広角レンズの歪みを、容量の小さなメモリで高精度に補正するカメラキャリブレーション装置を提供すること。
【解決手段】カメラ50と歪み校正用被写体の相対位置情報から歪みのない理想結像位置を算出する理想結像位置算出手段12と、校正用被写体が撮影された画像からレンズの歪みを含んだ実測結像位置を検出する実測結像位置検出手段11と、結像位置に応じた重みを生成するための重み関数を決定する重み関数決定手段14と、歪み係数を用いて算出される歪み量が含まれる理想結像位置と実測結像位置、及び、結像位置に応じて前記重み関数が生成した重みを、歪み係数の評価関数に入力して、評価関数の演算結果から歪み係数を決定する歪み係数決定手段13と、を有することを特徴とするカメラキャリブレーション装置を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、レンズの歪み係数を生成するカメラキャリブレーション装置に関する。
【背景技術】
【0002】
自動車の運転支援システムや駐車支援システムが注目されており、支援内容に応じて複数のカメラが車に設置されるようになってきた。このような種々の支援を実現したASV(Advanced Safety Vehicle;先進安全自動車)が各方面から提案されている。ASVは、例えば、搭載したカメラによって車両前方を監視し、人、他車両、障害物等との距離を検出する。それらに衝突する危険性がある場合は、運転者に報知したり、車両のブレーキを作動させて減速させたり停止させたりする。
【0003】
また、ASVでは、駐車時にドアやトランクの開閉に十分なスペースを残しているかを運転者に知らせたり(ドア開閉支援)、車の乗り降りの際に後方から車や自転車、人が接近している場合は警告する(乗降支援)、などのシステムを構成することも可能である。
【0004】
これらのシステムは、車から対象物までの距離を高精度に算出すると、より正確な支援が可能になると期待される。距離を精度よく算出する方法として、測定したい対象物を、二つ以上の設置位置の異なるカメラ(複眼カメラ(以下ステレオカメラと呼ぶ))で撮像したときのセンサ上の結像位置の違い(視差)を用いる方法が知られている。ステレオカメラによる位置検出装置は、レーダ等のアクティブ測距とは異なり、一度の撮影で広い範囲の距離情報及び形状等が得られるという利点がある。
【0005】
ここで、目標測距対象物が異なるため測定領域(画角)が異なるような場合、画角の異なる複数のステレオカメラを用いることが考えられる。しかし、複数のステレオカメラを搭載するとコストが高くなり、装置も大型化し、測定領域も重複してしまう可能性が高い。
【0006】
そこで、一つのステレオカメラの測距範囲を広くするため、広角の光学系を用いる事が考えられる。
【0007】
上述したドア開閉支援においては、自動車はドアの開閉スペースはどのくらいあるのかを測定する必要があるため、比較的狭い画角範囲内の測距のみできればよい。一方、乗降支援においては(ドアを開けてよいか確認するときなど)、車に近づいてくる人や物がないことを認識したいので、広い画角で測距を行う必要がある。また、乗員が少しドアを開けて頭をだして遠くから何か近づいてくる人や物がないことを確認するよう場合(狭い測距範囲でよい場合)には、狭い画角領域の測距精度はそれほど高精度でなくてもよいが、広画角領域は高精度に測距を行う必要がある。
【0008】
高精度な測距を行う場合にはサブピクセル精度の歪み補正が必要である。歪みを補正するにはLUT(Look Up Table)を用いた方法や、高次の多項式で歪みを表現する方法が知られている(例えば、特許文献1参照。)。特許文献1には、死角をなくして広角レンズの歪み補正を行うため、領域毎に異なる歪み補正強度でレンズ歪み補正を行い、作成したLUTで歪み補正する運転支援装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、LUTを用いて補正する場合、用意すべきメモリ容量が大きくなってしまうという問題がある。そこで、高次の多項式で歪みを表現することが検討される。
【0010】
しかし、広角レンズの歪みを1つの関数モデルで高精度に近似することは困難である。カメラにはレンズの歪みの他に、カメラごとに異なる製造ばらつきによる歪みがあり、歪み方にも規則正しい変化があるわけではない。
【0011】
また、画角が広くなるほど画像全体の歪みを一つの多項式で表現する事は難しくなることが容易に予想される。非球面レンズを用いるなど、光学系の構成を工夫することも考えられるが、コストが高くなる上、光学系の工夫だけでサブピクセル精度の歪みを補正する事は困難である。
【0012】
本発明は、上記課題に鑑み、広角レンズの歪みを、容量の小さなメモリで高精度に補正するカメラキャリブレーション装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明は、カメラと歪み校正用被写体の相対位置情報から歪みのない理想結像位置を算出する理想結像位置算出手段と、校正用被写体が撮影された画像からレンズの歪みを含んだ実測結像位置を検出する実測結像位置検出手段と、結像位置に応じた重みを生成するための重み関数を決定する重み関数決定手段と、歪み係数を用いて算出される歪み量が含まれる理想結像位置と実測結像位置、及び、結像位置に応じて前記重み関数が生成した重みを、歪み係数の評価関数に入力して、評価関数の演算結果から歪み係数を決定する歪み係数決定手段と、を有することを特徴とするカメラキャリブレーション装置を提供する。
【発明の効果】
【0014】
広角レンズの歪みを、容量の小さなメモリで高精度に補正するカメラキャリブレーション装置を提供することができる。
【図面の簡単な説明】
【0015】
【図1】ステレオカメラシステムの概略的な特徴を説明する図の一例である。
【図2】ステレオカメラの歪み係数を算出するキャリブレーション装置、及び、ステレオカメラを有するシステムのシステム構成例を示す図の一例である。
【図3】キャリブレーション装置の機能ブロック図の一例を示す図である。
【図4】実測結像位置と理想結像位置の取得を説明する図の一例である。
【図5】はレンズの製造時のばらつきによって発生する歪みの様子を示す図の一例である。
【図6】重み付けと歪み残差を説明する図の一例である。
【図7】重み付けと歪み残差を説明する図の一例である。
【図8】キャリブレーション装置の動作手順の一例を示すフローチャート図の一例である。
【図9】ステレオカメラシステムの機能ブロック図の一例である。
【図10】複数のステレオカメラを有するステレオカメラシステムの機能ブロック図の一例である。
【図11】画像の選択を説明する図の一例である。
【図12】画像の選択を説明する図の一例である。
【図13】車両状況の判定を説明する図の一例である。
【発明を実施するための形態】
【0016】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例1】
【0017】
図1は、ステレオカメラシステムの概略的な特徴を説明する図の一例である。なお、この特徴は、ステレオカメラ50に関わらず単眼カメラにも同様に適用できる。まず、図1(a)に示すように、カメラの画角は予め決まっており、本実施形態のステレオカメラ50は広範囲を撮影するため広い画角を有している。
【0018】
一般にレンズは、歪曲歪みだけでなくレンズごとに異なる製造ばらつきによる歪みを有する。LUT(Look Up Table)を用いずに歪み補正する場合、高次の多項式を用いて歪み係数を算出するが、全ての画角に対し歪みを十分に補正できる歪み係数を算出することは困難になる。
【0019】
そこで、本実施形態では、画角領域に対し重み付けを行ってから、歪み係数を算出する。
図1(b)は、TELE領域(狭画角)の重み付けを大きくした場合を説明する図の一例である。狭画角の重み付けを広画角よりも大きくすることで、狭画角の画像の歪みを精度よく補正できる歪み係数が得られる。このため、ステレオカメラの場合、狭画角にある被写体に対し高精度な測距が可能となる。
図1(c)は、WIDE領域(広画角)の重み付けを大きくした場合の歪み係数を説明する図の一例である。広画角の重み付けを狭画角よりも大きくすることで、広画角の画像の歪みを精度よく補正できる歪み係数が得られる。このため、ステレオカメラの場合、広画角にある被写体に対し高精度な測距が可能となる。
【0020】
後述するキャリブレーション装置は、車両に搭載する前に、画角に応じて重み付けを変えていくつかの歪み係数を算出しておく。よって、車両には複数の歪み係数が記憶される。車両は、車両状況によって(提供すべき運転支援によって)歪み係数を選択して高次の多項式で歪み量を算出し、撮影された画像データに歪み補正を施す。したがって、1つの広画角なカメラにより、広い範囲の物や人との距離を精度よく検出できるという効果が得られる。
【0021】
〔構成例〕
図2(a)は、ステレオカメラ50の歪み係数を算出するキャリブレーション装置100、及び、ステレオカメラ50を有するキャリブレーションシステムのシステム構成例を示す図の一例である。キャリブレーション装置100は、例えばコンピュータや情報処理装置として構成される。キャリブレーション装置100はステレオカメラ50と接続されているが、ステレオカメラ50が撮影した画像データを取得できればよく、必ずしも接続されている必要はない。逆に、キャリブレーション装置100と、一台以上のステレオカメラ50をネットワークを介して接続し、一台以上のステレオカメラ50に対し一台のサーバ(キャリブレーション装置)で歪み係数を算出するように構成してもよい。
【0022】
図2(b)は、キャリブレーション装置100のハードウェア構成図の一例である。キャリブレーション装置100は、歪み計数を算出可能な一般的なコンピュータであればよい。したがって。パーソナルコンピュータやサーバの他、ワークステーション、タブレットPCなどでもよい。
【0023】
キャリブレーション装置100は公知のハードウェア構成を有する。キャリブレーション装置100は、CPU101、ROM102、RAM103、HDD104、ネットワークI/F105、グラフィックボード106、キーボード107、マウス108、メディアドライブ109、及び、DVD−ROMドライブ110を有する。CPU101は、HDD104に記憶されたプログラム130を実行してキャリブレーション装置100の全体の動作を制御する。ROM102は、IPL(Initial Program Loader)や静的なデータを記憶しており、車載されたROMとは異なるものである。RAM103は、CPU101がプログラム130を実行する際のワークエリアとして使用される。
【0024】
HDD104にはCPU101が実行するプログラム130やOSが記憶される。ネットワークI/F105はネットワークに接続するための例えばイーサネットカード(登録商標)であり、主にレイヤ1、2の処理を提供する。レイヤ3以上の処理は、OSに含まれるTCP/IPのプロトコルスタックや不図示の通信プログラムが提供する。
【0025】
グラフィックボード106は、CPU101がビデオRAMに書き込んだ描画コマンドを解釈してディスプレイ120にウィンドウ、メニュー、カーソル、文字又は画像などの各種情報を表示する。キーボード107は、文字、数値、各種指示などのための複数のキーを備え、ユーザの操作を受け付けCPU101に通知する。同様に、マウス108はカーソルの移動、メニューなどの処理対象の選択、処理内容などのユーザの操作を受け付ける。メディアドライブ109は、フラッシュメモリ等の記録メディア111に対するデータの読み出し又は書き込み(記憶)を制御する。DVD−ROMドライブ110は、着脱可能な記録媒体の一例としてのCD−RW、DVD−RW等の光メディア112に対する各種データの読み出し又は書き込みを制御する。また、上記各構成要素を電気的に接続するためのアドレスバスやデータバス等のバスライン113を備えている。
【0026】
プログラム130は、インストール可能な形式又は実行可能な形式のファイルで、コンピュータで読み取り可能な記録メディア111や光メディア112に記録して流通される。また、プログラム130は、不図示のサーバからインストール可能な形式又は実行可能な形式のファイルで配布されてもよい。
【0027】
図3は、キャリブレーション装置100の機能ブロック図の一例を示す図である。キャリブレーション装置100は、最終的に歪み係数を算出する。歪み係数は、例えば、車両に搭載されるステレオカメラシステム200のメモリ1に記憶される。
【0028】
キャリブレーション装置100は、理想結像位置算出部12、実測結像位置算出部11、歪み係数算出部13、及び、重み関数選択部14を有する。
<実測結像位置、理想結像位置の算出>
実測結像位置算出部11は実測結像位置を算出し、理想結像位置算出部12は理想結像位置を算出する。実測結像位置と理想結像位置の違いはレンズの歪みにより生じるものである。
【0029】
図4は実測結像位置と理想結像位置の取得を説明する図の一例である。歪み校正用の被写体として市松模様状に正方形の白マスと黒マスが反転した格子チャートが用いられている。校正用の被写体は、特に図示するものに限られない。
【0030】
理想結像位置は、レンズの歪みのない仮想的な状態で、格子の各座標が結像する撮像素子上の位置である。レンズに歪みがないと仮定しているので、カメラと格子チャートの相対角度や距離、焦点距離などから計算で求めることができる。例えば、球面の凸レンズに対しては、焦点距離F、被写体のレンズからの距離a、焦点位置のレンズからの距離bに、次のような関係がある。
1/F=1/a + 1/b
a、b、Fが既知なら格子の座標から撮像素子上の結像位置が求められる。
【0031】
したがって、格子チャートとカメラの相対位置を正確に位置決定し、それを計測すること又は正確な値を取得することが重要である。通常は、格子チャートの中央にレンズの光軸中央が相対し、かつ、レンズの主面が格子チャートと並行になるように配置される。よって、レンズが格子チャートに対しシフトや回転している場合、シフト量や回転量も計測される。キャリブレーション装置100には、開発者等が計測して設定したこれらの値が設定されている。理想結像位置算出部12は、与えられた、カメラと格子チャートの相対角度や距離、予め知られている焦点距離などを受け付け、理想結像位置を算出する。
【0032】
これに対し、実測結像位置は、格子の各座標が実際に結像した撮像素子における位置である。カメラには、少なくともレンズ中心から遠方に行くほど大きくなる歪曲収差があり、高精度に測距する場合に必ずこの歪み補正を行う必要がある。実測結像位置はステレオカメラ50が実際に取得した格子チャートの画像から格子点の位置を特定する事で求められる。格子点の位置は、画像データを2値化して黒画素の正方形と白画素の正方形の頂点として検出できる。理想結像位置と実測結像位置の差異が計測された歪み量である。
【0033】
<従来の歪み補正>
ステレオカメラ50でレンズの歪みが生じると、視差に直接影響を及ぼすため、歪みがあるまま撮像した画像を相関演算してしまうと測距結果は非常に精度の悪いものとなってしまう。
【0034】
歪みの補正方法としては、大きく、全画素の補正前後の変換先の情報をもつLUTを利用する方法と、多項式を利用する方法がある。歪曲収差はレンズ中心から遠方に行くほど大きくなるので、歪み量は高次の多項式で表すことができる。
【0035】
歪み量は例えば式(1)に示した高次の多項式により算出できることが知られている。
【0036】
【数1】

ここで、δx、δyはレンズのある点のx方向、y方向の歪み量であり、x,yは理想正規化座標、f1,f2….fk、g1,g2….gkはある温度における歪み係数である。歪み係数を求めることができれば、あるレンズのある温度の歪み量をレンズの全体(画像データの全体にわたって)求めることができる。これら歪み係数を求めるためには、x,y,δx,δyの値を既知データとし、画像全体でこの歪み式(1)を満たすような歪み係数の最適化を行う手法がある。
【0037】
・温度に応じた歪み量
式(1)はある温度における歪み量なので、好ましくは温度に応じて歪みを補正する。特に車載用途であると車内は100度近くになるため、温度による歪み量変化は無視できず、相関演算する前に補正する必要がある。
【0038】
温度による歪み変化を表現する多項式の例として例えば式(2)などが挙げられる。式(2)は、上述した式(1)と同じで歪み係数fとgが温度tの関数として表されている。すなわち、各温度(例えば1度から数度刻み)における単眼カメラごとの歪み係数f、gを記憶しておくよりも、歪み係数を温度の関数として表す方がより記憶容量が小さくてすむ。
【0039】
【数2】

〔本実施形態の歪みの処理について〕
しかしながら、一般にレンズには、レンズ中心から遠方に行くほど大きくなる歪曲収差の他に、カメラ(主にレンズ)ごとに異なる製造ばらつきによる歪みがある。
【0040】
図5は、レンズの製造時のばらつきによって発生する歪みの様子を示す図の一例である。矢印の始点が理想結像位置で、終点が実測結像位置であり、画像全体の歪みをベクトル図で示したものである。各矢印はカラー表示可能であり、色によって相対的な歪みの大きさを示すことができる。
【0041】
カメラ1とカメラ2(ステレオカメラ50の2つのレンズでも、そうでなくてもよい)のベクトルを比較すると明らかなように、製造時のばらつきによって発生する歪みはカメラ毎に大きく異なっている。このような規則性のない歪みを表現する多項式を、広角レンズを用いたカメラの画像全域で表現することは非常に困難である。
【0042】
そこで、歪み補正方法として、歪み係数を求める際に領域重み付けを行うことが考えられる。本実施形態のキャリブレーション装置100は、ある程度の広さの領域に重み付けして、領域毎に最適化された歪み係数を算出する。こうすることで、大きく重み付けされた領域に撮影された被写体との距離を精度よく検出することができる。
【0043】
図6、7は重み付けと歪み残差を説明する図の一例である。図6(a)は、横軸が画像中心からの距離を、縦軸が重みを示す。横軸はレンズの焦点距離で正規化されているので、焦点距離に関係なく重みを表すことができる。縦軸の重みは、最大の重みを100%(=1.0)としてそれ以外の重みを100%に対する相対値として示す。図6(a)の重みは、画像中心からの距離が大きいほど、小さくなっている。すなわち、便宜的に示したTELE領域の重みの方が、WIDE領域の重みより大きくなっている。このような重み付けは、TELE領域の被写体の距離を精度よく検出する際に好適であることが期待できる。
【0044】
より具体的には、このような重みを使用して歪み係数を算出すれば、TELE領域に最適化された歪み係数を得ることができる。
【0045】
式(3)は、歪み係数を最適化するための評価関数Hの一例を示す。
【0046】
【数3】

x,y:理想正規化座標(Fx、Fyで正規化済み)
Cx、Cy:画像中心、
δx、δy:式(1)(2)で示したx,yと歪み係数で表された歪み量
u、v:実測結像位置
w:重み式
Fx:x方向の焦点距離
Fy:y方向の焦点距離
評価関数Hのルート内は、画像中心を原点として、
「実測位置u」と、「理想正規化座標x + あるfの時の歪み量δx」を焦点距離Fxに乗じた値の差、
「実測位置v」と、「理想正規化座標y + あるgの時の歪み量δy」を焦点距離Fyに乗じた値の差、
をそれぞれ二乗した値の和である。
【0047】
評価関数Hのルート内の値が小さいほど歪み係数が適切であることになる。歪み係数の算出方法としては、一対の理想結像位置、実測結像位置の組によって評価関数Hの値が計算されるので、画像全体におけるHを計算し、Hの二乗和又は絶対値和が最小となる場合の歪み係数f、gを求める方法などがある。式(3)では、重み式wが乗じられているので、重みが大きいx、yにおいて算出されたHが大きく評価される。
【0048】
したがって、図6(a)のような重みを定式化して式(3)に与えることで、歪み係数算出部13は、式(3)からTELE側で最適化された歪み係数を算出できる。なお、式(3)はHDD104に記憶されている。
【0049】
式(4)は重みを表す重み式wの一例である。rは画像中心からの距離であり、r=√(x+y)である。
【0050】
【数4】

重み関数選択部は図6(a)のように与えられた重みから式(4)のような重み式を決定する。どのように重み式を決定するかについてはいくつか方法がある。例えば、開発者から狭画角又は広画角のどちらを優先するかの情報を受け付け、狭画角用か広画角用の重み関数を選択する方法がある。また、例えば、図6(a)のような重みを開発者がプロットし、所定の多項式で近似することで重み式を作成できる。または、適当な多項式の係数を、開発者から直接、受け付けて図6(a)のようなグラフを表示することで、試行錯誤的に定式化することもできる。また、必ずしも連続に変化する(微分可能な)多項式で定式化する必要はなく、あるrの範囲で重みを所定値以上(例えば、0.8〜0.9以上)、それ以外でより小さい値(例えば"0.3")とすることもできる。したがって、重み式wの関数形や多項式の次数は式(4)に限定されない。
【0051】
なお、HDD104にはいくつかの式(4)の候補(関数形や次数が決まっており係数を可変とできる)が記憶されている。
【0052】
以上から明らかなように、広画角領域を高精度に測距したい場合には、WIDE側の重みを大きくすればよい。
【0053】
図7(a)は、図6(a)と同様に、画像の中心位置に対する重みの一例を示す。図7(a)の重みは、画像中心からの距離が大きいほど、大きくなっている。すなわち、TELE領域の重みの方が、WIDE領域の重みより小さくなっている。このような重み付けは、WIDE領域の被写体の距離を精度よく検出する際に好適であることが期待できる。
【0054】
したがって、図7(a)の重みから重み関数選択部14が式(4)のような重み式を求め、式(3)に適用することで、歪み係数算出部13は、WIDE側で最適化された歪み量係数を算出できる。すなわち、重みが小さい領域と比較して、重みの高い領域では高精度に歪みを補正することができる。
【0055】
図6(b)は、図6(a)の重みにより歪み係数を求めた時の、理想結像位置と実測結像位置の差を示す。すなわち、図6(a)の重みを用いて求めた歪み係数によって画像を補正した場合に、補正しきれなかった歪みの残差量のイメージ図である。なお、残差はピクセル単位で示している。図6(a)の重みは、狭画角領域で高精度に測距できるような重みであるので、狭画角領域では歪み残差量が小さい。広画角領域では歪み残差量が徐々に大きくなっている。
【0056】
したがって、図6(b)から、TELE領域では歪みを高精度に補正できていることがわかる。反面、WIDE側に行くほど歪み補正が不十分になるおそれがある。そこで、全画角において残差量が所定値を超えないように保証することが好適となる。すなわち、歪み係数算出部13は、限界の歪み残差量(歪み量許容値)を予め記憶しておく。画像の一部で歪み残差が歪み量許容値を超えた場合、重み関数選択部14に通知する。これにより、重み関数選択部14は、歪み係数算出部13が画像全体で均一な歪み補正ができるように重み式を変更する(この場合も、歪み残差が歪み量許容値を超えないようにする)。この場合は、画像中心からの距離によって二種類の歪み係数が得られることになる。
【0057】
図7(b)は、図7(a)の重みにより歪み係数を求めた時の、理想結像位置と実測結像位置との差を示す。すなわち、図7(a)の重みを用いて求めた歪み係数によって画像を補正した場合に、補正しきれなかった歪みの残差量のイメージ図である。図7(a)の重みは、広画角領域で高精度に測距できるような重みであるので、広画角領域では歪み残差量が小さい。狭画角領域にいくほど歪み残差量が大きくなっている。図7(b)から、WIDE領域では歪みを高精度に補正できていることがわかる。TELE側では歪み補正量が不十分になるおそれがあるので、その場合は、図6(b)で説明したように、再度、歪み係数を算出することが有効である。
【0058】
図5に示したように、歪み係数f、gはカメラ側(車両側)のメモリ1に記憶される。歪み係数f、gは、少なくとも狭画角領域に最適化したもの、広画角領域に最適化したもの、の二種類が記憶される。この他、画像の一部で歪み残差が歪み量許容値を超えた場合に算出された、全画角に均一な歪み補正が可能な歪み係数を記憶しておく。
【0059】
この他、中画角領域に最適化した歪み係数、狭画角領域に最適化した複数の歪み係数(超狭画角領域と通常の狭画角領域など)、及び、広画角領域に最適化した複数の歪み係数(超広画角領域と通常の広画角領域など)等を記憶しておいてもよい。
【0060】
カメラはリアルタイムに撮影した画像データに対し、車両状況に応じて選択した歪み係数を用いて、例えば式(1)又は(2)から歪み量を算出し歪み補正を施す。こうすることで、LUTを用いることなく、広角レンズの歪みを、撮影領域にあわせて高精度に補正することができる。
【0061】
〔動作手順〕
図8は、キャリブレーション装置100の動作手順の一例を示すフローチャート図の一例である。
【0062】
理想結像位置算出部が理想結像位置を算出する(S10)。
【0063】
実測結像位置算出部がステレオカメラにより撮影された画像を取得する(S20)。
【0064】
実測結像位置算出部は、画像を解析して実測結像位置を算出する(S30)。
【0065】
次に、重み関数選択部は重み関数を決定する(S40)。例えば、開発者から狭画角又は広画角のどちらを優先するかの情報を受け付け、適切な重み関数を選択する。
【0066】
歪み係数算出部が、理想結像位置、実測結像位置、初期値用の歪み係数、及び、重み関数を用いて歪み係数を算出する(S50)。何回か計算を繰り返し、評価関数Hの二乗和の変化が十分に小さくなったら終了する。
【0067】
歪み係数算出部は、算出した歪み係数で歪み量を算出し、歪み許容値を超える画像領域があるか否かを判定する(S60)。歪み許容値を超える画像領域がない場合(S60のNo),図8の処理は終了する。
【0068】
歪み許容値を超える画像領域がある場合(S60のYes)、重み関数選択部は画像の全体にわたって均一な重みを生成する重み関数を決定する(S70)。そして、ステップS50以下の処理が繰り返される。
【0069】
〔車両側の構成〕
図9は、ステレオカメラシステム200の機能ブロック図の一例を示す。ステレオカメラシステム200は、歪み係数選択部21、前処理部22、相関演算部23、認識部24、表示・警報・制御部25、外部パラメータ変化量算出部26、及び、メモリ1〜3を有する。このうちメモリ1に、上記の複数の歪み係数及び式(1)又は式(2)が記憶されている。ステレオカメラ50の場合、レンズ毎に複数の歪み係数が記憶されている。
【0070】
歪み係数選択部21は、センサ類(焦電センサ、マイクロスイッチ、車速センサ、乗員検知センサ、ステアリング舵角センサ、ギヤポジション検出センサ、方向指示器センサ、温度センサ)27と接続されている。歪み係数選択部21は、センサ類27が検出した情報(以下、単に車両情報という)を取得して車両状況を判別し、適切な歪み係数を選択する。
【0071】
すなわち、メモリ1に少なくとも広画角領域に最適化した歪み係数と狭画角領域に最適化した歪み係数が記憶されているので、歪み係数選択部21は車両情報に基づき車両が提供すべき運転支援を判別する。そして、例えば、車両が車に近づいてくる人や物がないことを認識する運転支援を行う場合、広画角領域に最適化した歪み係数を選択する。乗員が少しドアを開けて頭をだして遠くから何か近づいてくる人や物がないことを確認する状況では、狭画角領域に最適化した歪み係数を選択する。なお、より具体的な選択方法に関しては実施例2で説明する。
【0072】
前処理部22は、歪み係数選択部21からの指示によって歪み補正に使用する歪み係数をメモリ1から読み込む。また、2つのカメラ1L、1Rの画像を取り込み、選択された歪み係数を用いて歪み補正を行う。歪み補正処理された画像は相関演算部23に出力される。メモリ1には歪み係数の他に歪み補正処理に使用するカメラの焦点距離や画素ピッチなどの情報が記憶されている。
【0073】
相関演算部23は、前処理部22から出力された2つの画像の相関演算を行い視差画像を生成する。メモリ2には各ステレオカメラ50の基線長、画素数、探索幅情報が記憶されていること好ましく、ステレオカメラ50の基線長、画素数、探索幅などに応じてステレオマッチングを行い、相関演算を行う。
【0074】
ステレオマッチングとしては、例えばSAD(Sum of Absolute Difference)法が知られている。SAD法は、ステレオカメラ50のいずれかにより撮像された一対のステレオ画像から同一の撮像対象物が写っている部分を抽出し、一組のステレオ画像同士でその撮像対象物の同一点を対応づけ、対応づけられた点(対応点)のずれ量(視差)を求める方法である。2つの画像の一方を固定し、他方の画像の着目画素を中心に例えば3×3等の画素ブロックを取り出し、固定した画像の画素に対し1画素ずつシフトしながら最も重なり合う位置を求める。重なり合う位置は、2つの画像の輝度値の差の絶対値の積算値を算出して評価値とし、該評価値が最も小さくなる場合に最も重なり合う位置とする。
【0075】
最も重なり合う位置までシフトした画素数をn、画素ピッチをsとすると、(p=n・s)が視差である。視差画像には、画素位置毎にこの視差が登録されている。
【0076】
認識部24は、相関演算部23で計算された視差画像を入力として対象物認識を行う。対象物は、例えば、先行車両、人、ガードレールなどである。認識する際には、あらかじめ測距対象物の特徴を辞書データとしてメモリに記憶しておいてもよいし、同じ視差のかたまりを一つのブロックとして、どのような物があるかは認識しないが、そこに物があるかどうかを認識するようにしてもよい。後者は測距精度がよいほど高精度に認識できる。
【0077】
外部パラメータ変化量算出部26は、例えば、認識した対象物からカメラ間の相対位置、向きなどを表す外部パラメータ変化量を求め、その結果を相関演算部23のメモリ2に保存しておく。出荷時には外部パラメータは精度よく調整されているが、経時などによって外部パラメータはずれてしまうおそれがある。外部パラメータが変化してしまうとそのまま視差算出精度が悪化するからである。相関演算を行うときにその外部パラメータ変化量を反映させて計算させることが望ましい。
【0078】
認識結果は表示・警報・制御部25に出力され、表示部に表示されたり、音によって運転者に報知される。表示先としては、メータパネル(LCD)やヘッドアップディスプレイなどがある。また、表示や警報だけでなく、障害物との衝突を回避するブレーキ制御や、ドアの可動領域の制御、ドアロックなどの制御を行う事も有効である。
【0079】
また衝突回避として、表示・警報・制御部25は、対象物まで後何秒で衝突するかを表示装置に表示する、警報を吹鳴する、距離が近づいている車を赤で点滅させるなど様々な方法で警告することが可能である。
【0080】
以上説明したように、本実施例のステレオカメラシステム200は、広角の光学系を用いることで、カメラの数を抑制してコストダウンすることができる。その際、撮影する画角に応じて歪み係数を求めておくので、LUTのための大きなメモリ容量を必要としない。
【実施例2】
【0081】
本実施例では、ステレオカメラシステム200が、車両情報に基づきどのような歪み係数を選択するかを説明する。
【0082】
図10は、複数のステレオカメラ50を有するステレオカメラシステム200の機能ブロック図の一例を示す。図10において図9と同一部の説明は省略する。まず、センサ類27と検出される車両情報について説明する。
【0083】
車速センサは、例えば、車輪が所定角回転する毎にパルスを出力するセンサであり、画像選択部20は単位時間当たりのパルスの数により車速を求めることができるようになっている。ステアリング舵角センサは、例えば、ステアリングシャフトの回転に伴いフォトダイオードが検出する光を遮ることで、舵角を検出する。シフトポジションセンサは、シフトレバーの位置(P,N,D、R等)を検知し、検知されたシフトポジションに応じた電気信号を出力する。方向指示器センサは、例えばステアリングコラムから延設された揺動式のターンシグナルスイッチ(ウィンカスイッチ)の操作方向を検知する。ブレーキセンサは、ブレーキペダルが踏み込まれた際にオンとなる信号を出力するセンサ(ストップランプスイッチ)又はマスタシリンダ圧からブレーキペダルの踏み込みを検出するセンサである。温度センサは車内温度又はステレオカメラ50(区別する場合、システムカメラ1〜3という)の環境温度を検出するセンサである。ドアロックセンサは、ドア毎にドアのロック/アンロックを検出するセンサである。焦電センサは、赤外線を受光して電圧を出力するセンサであり、ドアの開放レバーや内側のドア取っ手などに配置される。焦電センサにより搭乗者や運転者がドアに手を掛けたことが検出される。マイクロスイッチも同様に、ドアの開放レバーや内側のドア取っ手などに配置され、搭乗者や運転者がドアに手を掛けていることを検出する。
【0084】
本実施例のステレオカメラシステム200には、ステレオカメラ1(1L、1R)、ステレオカメラ2(2L、2R)、ステレオカメラ3(3L、3R)が接続されている。ステレオカメラの個数は、2つでもよいし4つ以上でもよい。
【0085】
また、これらのステレオカメラ1〜3の光学的特性や構成などは限定されない。魚眼のような広画角のレンズから狭角のレンズを使用したカメラでもよく、前処理部22が、共通の相関演算部23で計算できるように処理をする。具体的には、1L、1R、2L、2R、3L、3Rそれぞれの歪み係数がメモリ1に記憶されているので、前処理部22がそれぞれのカメラが撮影した画像データに適切な歪み補正を行うことで、相関演算部23が複数のカメラに共通の相関演算をすることが可能になる。
【0086】
ステレオカメラ1〜3の設置例としては、それぞれを異なる向きに設置することが考えられる。車載用途を考えると、
・車両の全周囲を監視するように設置する
・ドアの開閉時に周囲の物体にぶつかる可能性があるかを認識するために側方に設置する・後続車との距離を認識するために後方に設置する
・前方の対象物の距離を認識するために前方に設置する
などが考えられる。このように配置することで、カメラを組み合わせた多様なアプリケーションを実現できる。
【0087】
また、ステレオカメラ(又は単なるカメラ)1〜3の向きは車外方向だけでなく、車内方向でもよい。車内方向にカメラを向けて設置する用途としては、乗員検知などが考えられる。
【0088】
画像選択部20は実施例1の歪み係数選択部21と同等の機能を含むものである。画像選択部20は、車両情報に基づき、複数のステレオカメラ1〜3の画像から一つのステレオカメラの画像を選択する。画像選択をする際には、センサ類27の情報を用いる。
【0089】
画像選択部20は、どのカメラの画像を選択するかだけではなく、あるステレオカメラ1〜3のどの領域を高精度に測距したいかの情報を前処理部22に出力する。これにより、前処理部22は、ステレオカメラ1〜3と適用すべき歪み係数を特定できる。
【0090】
図11,12は、画像の選択を説明する図の一例である。図11、12はステレオカメラ50を3台用いた例であるが、ステレオカメラ50の数は設計できる。いずれの図も、ステレオカメラ1(1L,1R)は車内を撮像する向きに設置してあり、例えばバックミラー上などに設置されほぼ車内全体を撮影する。これにより、乗員検知、さらに乗員が着座している座席を判別できる。ステレオカメラ2(2L,2R)は、車の左側方、ステレオカメラ3(3L,3R)は車の右側方に設置してある。これらはドア部(開閉部材)に設置してもよいが、ドアの開閉中にも同じ撮像範囲を撮影できるように車のドアとドアの間の枠(Bピラー)に設置してあるものとする。
【0091】
乗員が3人の場合を考える。それぞれ人1は左前方の座席に、人2は右前方の座席に、人3は右後方の座席に、着座している。
【0092】
また、図11、12のTR,TL,WR, WL, W1, W2, W3, W4はステレオカメラ2,3の撮像範囲(画角)を示す。WLはステレオカメラ2の最大画角であり、WRはステレオカメラ3の最大画角であり、その他は画角の一部の領域を示している。
【0093】
画像選択部20は、車が走行中であるか、左折右折をしようとしているのか、駐車をしようとしている最中であるか、乗員がドアを開閉しようとしているのか又は、停車中であるのかの状況を判別する。判別方法は後述する。
【0094】
・走行中や左折右折をしようとしている際(運転支援)
歪み係数選択部21は、画角の広い範囲で測距を均一に行えるような歪み係数を選択するように前処理部22へ出力する。
【0095】
・車が駐車をしようとしている最中(駐車支援)
歪み係数選択部21は、車が周囲の物にぶつからないかを把握する目的で広範囲の領域の測距をする一方、実際にそこに駐車した際に物にぶつからずにドアの開閉が行えるかどうかを把握するために狭い領域を高精度で測距できるようにもしたい。そこで、フレームごと(1フレームごと又は数フレームごと)に高精度に測距する範囲(重み)を変えた歪み係数を選択する事が有効になる。
【0096】
その際、ステレオカメラ1において乗員を検知し、例えば人1がおらず、左側には誰もいない状態であればドアの開閉を行うのは右側だけであると判断できる。この場合、歪み係数選択部21は、ステレオカメラ2の画像に対しWLの範囲の相関演算を行うように指定し、ステレオカメラ3の画像に対しWRとTR の領域を交互に計算するように指定する。また、乗員検知にはステレオカメラ1以外に焦電センサなどを用いてもよい。
【0097】
・車が駐車し終わって停止している場合(ドア開閉支援)
ステレオカメラシステム200は、乗員が車から降りようとドアを開ける際に対向車線などから近づいてくる車や自転車にぶつからないように支援する。このため、W1, W2, W3, W4の領域の物の距離を測定する。
【0098】
なお、停止時にはドアの開閉に十分なスペースが空いていることが望ましい。着座位置やドアを開けようとしているか否かの判断は、ステレオカメラ1、焦電センサ又はマイクロスイッチなどの情報により行う。
【0099】
このようにして、画像選択部20は選択した画像データを前処理部22へ出力し、歪み係数選択部21は高精度に測距したい領域(画角)情報(W1, W2, W3, W4)を前処理部22に出力する。
【0100】
〔車両状況の判定〕
図13は、車両状況の判定を説明する図の一例である。
(1)ドアロックが解除されていない
a.運転席のドアロックが解除されていないので、運転者は駐車を含む運転を継続すると予想される。このため、画像選択部20は「運転支援・駐車支援」を行うと判断する。
(2)ドアロックが解除されており、車速がゼロでなく、ブレーキペダルを踏む頻度が閾値a以下でない
b.ブレーキペダルを踏む頻度がaより多いため、運転者は駐車中又は駐車する直前であると予想される。ドアロックが解除されているのはロックし忘れているためと考える。
(3)ドアロックが解除されており、車速がゼロでなく、ブレーキペダルを踏む頻度が閾値a以下である
c.ブレーキペダルをほとんど踏まないため、運転者は運転中である予想される。ドアロックが解除されているのはロックし忘れているためと考える。
(4)ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングである
d.シフトポジションがパーキングなので、運転者が降車することが予想される。
(5)ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングでなく、ブレーキペダルを踏む頻度が閾値b(>a)以上でなく、ブレーキペダルを踏む頻度が閾値a以下でない
e.ブレーキペダルをa〜bの間の頻度で踏むため、運転者は駐車操作中であると予想される。
(6)ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングでなく、ブレーキペダルを踏む頻度が閾値b(>a)以上でなく、ブレーキペダルを踏む頻度が閾値a以下である
f.ほとんどブレーキペダルを踏んでいないのでサイドブレーキを引いて停止していると考えられ、運転者は運転を終了させており、搭乗者や運転者が降車すると予想される。
(7)ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングでなく、ブレーキペダルを踏む頻度が閾値b(>a)以上であり、画像認識で特徴物体を検知した
g.信号機や横断歩道の手前で停止していると考えられ、マイクロスイッチ及び焦電センサでドア開閉を感知する以外は運転支援する
(8)ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングでなく、ブレーキペダルを踏む頻度が閾値b(>a)以上であり、画像認識で特徴物体を検知せず、移動物体が横切るのを検知しない
h.信号機や横断歩道、及び、歩行者の横切りも検知されないので、搭乗者や運転者が降車すると予想される(ドア開閉支援)
(9)ドアロックが解除されており、車速がゼロであり、シフトポジションがパーキングでなく、ブレーキペダルを踏む頻度が閾値b(>a)以上であり、画像認識で特徴物体を検知せず、移動物体が横切るのを検知した
i.歩行者の通過待ちをしていると考えられ、マイクロスイッチ30又は焦電センサでドア開閉を感知する以外は運転支援する
このように、画像選択部20は、車両情報から車両状況を適切に判定できる。車両状況が定まると、ステレオカメラ1〜3から選択すべき画像データ及び歪み係数を特定できる。すなわち、広角領域若しくは狭角領域の歪みをより高精度に測距したい、又は、画像全体で同じレベルの精度で歪み補正したい、という目的に応じて一つの多項式の歪み係数を選択できる。ステレオカメラの使用状況に応じて歪み係数を切り替えることで、一つのステレオカメラで広角から狭角領域までの高精度な測距が実現できる。
【符号の説明】
【0101】
11 実測結像位置算出部
12 理想結像位置算出部
13 歪み係数算出部
14 重み関数選択部
20 画像選択部
21 歪み係数選択部
22 前処理部
23 相関演算部
24 認識部
25 表示・警報・制御部
26 外部パラメータ変化量算出部
27 センサ類
100 キャリブレーション装置
200 ステレオカメラシステム
【先行技術文献】
【特許文献】
【0102】
【特許文献1】特開2003−348575号公報

【特許請求の範囲】
【請求項1】
カメラと歪み校正用被写体の相対位置情報から歪みのない理想結像位置を算出する理想結像位置算出手段と、
校正用被写体が撮影された画像からレンズの歪みを含んだ実測結像位置を検出する実測結像位置検出手段と、
結像位置に応じた重みを生成するための重み関数を決定する重み関数決定手段と、
歪み係数を用いて算出される歪み量が含まれる理想結像位置と実測結像位置、及び、結像位置に応じて前記重み関数が生成した重みを、歪み係数の評価関数に入力して、評価関数の演算結果から歪み係数を決定する歪み係数決定手段と、
を有することを特徴とするカメラキャリブレーション装置。
【請求項2】
前記重み関数は、画像中心からの距離に応じて異なる重みを生成する関数であり、画像中心からの距離に応じて歪み補正の補正精度を変更する、
ことを特徴とする請求項1記載のカメラキャリブレーション装置。
【請求項3】
前記歪み係数決定手段が決定した歪み係数を、結像位置と歪み係数から歪み量を算出する算出式に適用して得られた歪み量が閾値以上となる画像領域がある場合、
前記重み係数決定手段は結像位置に関係なく略均一な重みを生成する前記重み関数に変更して、再度、歪み係数を決定する、
ことを特徴とする請求項1記載のカメラキャリブレーション装置。
【請求項4】
前記重み関数は、画像中心からの距離が大きくなるほど一様に小さくなる重みを生成する関数、又は、画像中心からの距離が大きくなるほど一様に大きくなる重みを生成する関数である、
ことを特徴とする請求項1〜3いずれか1項記載のカメラキャリブレーション装置。
【請求項5】
前記評価関数は、前記実測結像位置と、結像位置と歪み係数を用いて算出された前記理想結像位置との差の二乗の平方根に、結像位置に応じて前記重み関数が生成した重みを乗じる関数であり、
前記歪み係数決定手段は、画像全体の前記評価関数の演算結果の絶対値和又は二乗和が最小になる場合の歪み係数を求める、
ことを特徴とする請求項1記載のカメラキャリブレーション装置。
【請求項6】
複数のステレオカメラを備え、運転支援又はドア開閉支援を提供する乗員支援装置であって、
車載されたセンサにより車両状況又は乗員の行動を予測して複数のステレオカメラから一つのステレオカメラの画像を選択すると共に、他の領域よりも高精度に測距したい領域選択を行う画像選択手段と、
歪み係数を係数とする歪み量の算出式、及び、1レンズ毎に複数の前記歪み係数を記憶する歪み係数記憶手段と、
前記歪み係数記憶手段から読み出した、選択された領域用の前記歪み係数を前記算出式に適用して歪み量を算出し、画像選択部によって選択された画像に歪み補正を施す前処理部と、
前記前処理部によって補正された2つの画像に相関演算を施す相関演算手段と、
前記相関演算手段の出力結果に基づいて対象物までの距離情報を検出する距離情報検出手段と、
有することを特徴とする乗員支援装置。
【請求項7】
前記前処理部は、所定数の画像毎に、前記歪み係数記憶手段から読み出す前記歪み係数を切り換え、前記算出式に適用する、
ことを特徴とする請求項6記載の乗員支援装置。
【請求項8】
前記歪み係数記憶手段が記憶する複数の前記歪み係数は、請求項1〜4いずれか1項記載のカメラキャリブレーション装置が算出したものである、ことを特徴とする請求項6又は7記載の乗員支援装置。
【請求項9】
理想結像位置算出手段が、カメラと歪み校正用被写体の相対位置情報から歪みのない理想結像位置を算出するステップと、
実測結像位置検出手段が、校正用被写体が撮影された画像からレンズの歪みを含んだ実測結像位置を検出するステップと、
重み関数決定手段が、結像位置に応じた重みを生成するための重み関数を決定するステップと、
歪み係数決定手段が、歪み係数を用いて算出される歪み量が含まれる理想結像位置と実測結像位置、及び、結像位置に応じて前記重み関数が生成した重みを、歪み係数の評価関数に入力して、評価関数の演算結果から歪み係数を決定するステップと
を有することを特徴とするカメラキャリブレーション用歪み係数生成方法。

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


【公開番号】特開2013−109416(P2013−109416A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−251984(P2011−251984)
【出願日】平成23年11月17日(2011.11.17)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】