【文献】
横地 裕次、外3名,“特徴点追跡とGPS測位に基づくカメラ外部パラメータの推定”,情報処理学会論文誌,日本,社団法人情報処理学会,2006年 3月15日,Vol.47, No.SIG 5 (CVIM 13),pp.69-79
【文献】
Michael Miksch et al.,"Automatic Extrinsic Camera Self-Calibration Based on Homography and Epipolar Geometry",2010 IEEE Intelligent Vehicles Symposium,米国,IEEE,2010年 6月21日,pp.832-839
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下、本発明に係るキャリブレーション装置の具体的な実施形態について、図面を参照して説明する。なお、以下では、4台のカメラ111〜114を使用する場合について説明する。
【0016】
<キャリブレーションシステムの概略構成>
図1は、本発明の一実施形態に係るキャリブレーション装置を搭載したキャリブレーションシステムの概略構成を示す。キャリブレーションシステム100は、前輪が操舵輪である車両1に設置されている。
【0017】
キャリブレーションシステム100は、主に、4台のカメラ111〜114と、演算装置101と、RAM(Random Access Memory)102と、ROM(Read Only Memory)103と、表示装置104と、車速センサ105と、舵角センサ106と、ヨーレートセンサ107と、入力装置108と、通信装置109とを備えている。
【0018】
各カメラ111〜114は、車両1に搭載され、例えば当該車両1の前後左右に設置される。例えば、前後に設置されるカメラは、ナンバープレート付近の車体に取り付けられ、左右に設置されるカメラは、サイドミラーの下部等に取り付けられる。ここでは、カメラ111を車両1の前方、カメラ112を車両1の後方、カメラ113を車両1の左方、カメラ114を車両1の右方に取り付けるものとする。
【0019】
前方カメラ111及び後方カメラ112は、光軸方向が車両1の前後方向と一致するように取り付けられる。左方カメラ113及び右方カメラ114は、光軸方向が車両1の上下方向と一致するように取り付けられる。各カメラ111〜114は、事前に取り決めた既知の設計情報に従って取り付けられるが、実際には取り付け誤差が発生しており、この誤差は未知である。また、各カメラ111〜114には、車両1の全周囲の画像を取得できるように、広角の魚眼レンズを備えたカメラが採用される。魚眼カメラは広角の画像を取得するために、既知の歪み関数に基づいて画像を歪ませている。各カメラ111〜114で撮像された4つの画像は、演算装置101に出力される。
【0020】
車速センサ105と舵角センサ106とヨーレートセンサ107は、それぞれ、車速、舵角、ヨーレートを検出するセンサであり、各センサで検出されたセンサ情報は演算装置101に出力され、演算装置101における演算処理で利用される。舵角センサ106では、前輪のタイヤ角が舵角として検出される。
【0021】
入力装置108は、例えばスイッチやボタン等といった、ユーザーの操作を受け付ける装置である。入力装置108は、キャリブレーション機能のオン/オフ、キャリブレーション結果の初期化、キャリブレーション方法の変更等に利用される。ユーザーの操作を介して当該入力装置108に入力された各種情報は、演算装置101に出力される。
【0022】
通信装置109は、不図示の外部機器との通信に使用される装置である。演算装置101は、当該通信装置109を介して外部機器から各種情報を受信すると共に、演算装置101で演算された各種情報を外部機器へ出力する。
【0023】
RAM102には、演算装置101における演算処理過程で必要となる数値データ、演算処理途中の処理結果に対するプログラムの変数等が書き込まれる。その書き込まれたデータは、演算装置101の演算処理過程で適宜必要に応じて読み出されて演算処理に使用される。また、RAM102には、各カメラ111〜114によって撮像された画像データ等も格納される。
【0024】
ROM103には、例えば、キャリブレーションを実行するプログラムや、プログラムで必要となる情報のうちで書き換えをせずに利用される情報が事前に格納される。例えば、各カメラ111〜114の設置位置や角度(ピッチ角、ヨー角、ロール角、カメラ高さ)の設計値(外部パラメータ)、各カメラ111〜114の焦点距離、画素サイズ、光軸中心、歪み関数等(内部パラメータ)のカメラパラメータが格納される。
【0025】
演算装置101は、各カメラ111〜114、車速センサ105、舵角センサ106、ヨーレートセンサ107、入力装置108、通信装置109等から送信される種々の情報を受け取る。その受け取った情報を用いて、演算装置101は、プログラム等に基づき計算処理を実施する。
【0026】
演算装置101は、例えば、各カメラ111〜114から入力された画像を視点変換し、上方から地面を見下ろしたような俯瞰画像を生成する。詳細には、魚眼カメラからなる各カメラ111〜114で撮像された画像について、ROM103等に事前に格納された既知の歪み関数を用いて画像の歪みを除去した画像を生成する。
【0027】
その歪みを除去した各画像を、ROM103等に事前に格納された既知のカメラ取り付けに関する設計値等に基づいて、俯瞰視点から見た画像に視点変換する(画像生成装置115)。このような視点変換処理は、周知のカメラの幾何変換式を使って、俯瞰画像の特定の画素とそれに対応する各カメラ111〜114の特定の画素を計算し、その画素の輝度値を俯瞰画像の画素に割り当てることによって実現できる。
【0028】
対応する画素が小数点を含み、該当する画素がない場合は、周知の輝度の補間処理によって周辺画素の中間輝度を割り当てる処理が行われる。また、演算装置101は、車速センサ105、舵角センサ106、ヨーレートセンサ107、通信装置109の出力結果を用いて演算処理を実行したり、入力装置108の入力結果に従って動作プログラムの切り替え処理を実行したりする。
【0029】
また、演算装置101には、視点変換された俯瞰画像が車両1を真上から見下ろした画像となるように、各カメラ111〜114のキャリブレーションを実施するキャリブレーション装置116が搭載される。キャリブレーション装置116の構成については後述する。
【0030】
表示装置104は、演算装置101の処理結果を受け取り、ディスプレイ等を用いてその処理結果をユーザーに提示する。例えば、ユーザーに対して各カメラ111〜114の4つの画像を視点変換した俯瞰画像を表示する。また、表示装置104は、車両1の後方を撮像するカメラ112の画像だけを表示する等、演算装置101の出力に従って表示内容を切り替えることもできる。
【0031】
<キャリブレーション装置の構成>
図2は、本発明の一実施形態に係るキャリブレーション装置の概略構成を示す。キャリブレーション装置116は、車両1に搭載されて車両の周辺を撮像する各カメラ111〜114の校正を実施する。キャリブレーション装置116は、特徴点抽出部117と、速度取得部118と、舵角取得部119と、特徴点系列算出部120と、特徴点系列累積部121と、カメラパラメータ校正部122(回転角校正部)と、を有する。
【0032】
特徴点抽出部117は、各カメラ111〜114の撮像により時系列的に得られる複数のフレームから、その撮像された画像の特徴点を抽出する。速度取得部118は、車速センサ105で検出された走行速度の検出結果を取得する。舵角取得部119は、舵角センサ106で検出された舵角の検出結果を取得する。なお、特徴点系列算出部120、特徴点系列累積部121、カメラパラメータ校正部122の詳細は後述する。
【0033】
<カメラ座標系>
図3は、カメラ座標系の一例を示す説明図である。以下では、
図3を用いて、カメラ座標系(X,Y,Z)の一例について説明する。このカメラ座標系(X,Y,Z)では、カメラの光軸方向をZ軸方向と定義する。図中に網掛けで示した面ISは、カメラの光軸(Z軸)に対して垂直となる撮像面ISを示す。このカメラ座標系(X,Y,Z)では、その撮像面ISと平行にX軸及びY軸をとるものとする。
【0034】
図中のピッチングとは、X軸回りの回転のことをいい、ヨーイングとは、Y軸回りの回転のことをいい、ローリングとは、Z軸回りの回転のことをいう。X,Y,Z軸の回りの回転角のパラメータを、それぞれ、ピッチ角、ヨー角、ロール角という。
【0035】
前方カメラ111及び後方カメラ112のように、その光軸方向が車両1の前後方向と一致する場合、その前後方向をZ軸方向と定義し、その前後方向(Z軸方向)と垂直な車両1の上下方向に延びる軸をY軸と定義する。
【0036】
一方、左方カメラ113及び右方カメラ114のように、その光軸方向が車両1の上下方向と一致する場合、その上下方向をZ軸方向と定義し、その上下方向(Z軸方向)と垂直な車両1の左右方向に延びる軸をX軸と定義する。
【0037】
<キャリブレーション装置で行われる一連の校正処理の流れ>
以下、
図4に示すフローチャート及び
図5〜
図7を用いて、キャリブレーション装置で行われる一連の校正処理の流れを説明する。以下では、前方カメラ111のカメラパラメータ(ピッチ角、ヨー角、ロール角、カメラ高さ)の校正を前提として記述する。
【0038】
まず、ステップS101では、カメラパラメータの校正指標となる特徴点系列の長さを取得するために、前方カメラ111において、直進走行中の車両1の周辺が撮像される。その撮像により得られたフレームFは、特徴点抽出部117に出力される。特徴点系列とは、車両1が直進走行しているときに、時系列に相前後する一組のフレーム間で特徴点が変位して形成された直線のことをいう。車両1が走行する道路は、特徴点の多い白線や道路標示が存在することが望ましい。
【0039】
ステップS102では、車速センサ105及び舵角センサ106において、それぞれ、車速及び舵角が検出される。その検出により得られた車速情報及び舵角情報は、それぞれ、通信プロトコルとしてのCAN(Controller Area Network)等の車載ネットワークを介して、速度取得部118及び舵角取得部119に出力される。
【0040】
ステップS103では、特徴点系列算出部120において、車両1の走行状態が特徴点系列の長さを得るに適切な走行状態か否かの判断が行われる。車両1の走行速度が安定していない場合、特徴点の追跡が困難なケースが発生し得る。例えば、車両1が急加速や急減速を行った場合、車両1の姿勢が大きく変動する。その変動の影響を受け、前方カメラ111の撮像により得られる画像は、特徴点系列の長さを得るに不適切な画像となってしまう。そのため、カメラパラメータ校正部122は、舵角取得部119で取得された舵角情報に基づいて、車両1が直進走行しているか否かを判断する。
【0041】
車両1が直進走行していると判断されたときは(ステップS103におけるYES)、車両1の走行状態が特徴点系列の長さを得るに適切な走行状態にあるので、ステップS104に進む。一方、車両1が直進走行していないと判断されたときは(ステップS103におけるNO)、車両1の走行状態が特徴点系列の長さを得るに不適切な走行状態にあるので、処理はステップS101に戻る。
【0042】
ステップS104では、特徴点系列算出部120において、第1番目に取得されるフレームF1のうち、エッジ強度の高い点が特徴点として抽出される。なお、このような特徴点の抽出技術については、例えばHarrisオペレータを用いた手法で提案されている等、既に周知であるため、詳細な説明は省略する。
【0043】
ステップS105では、特徴点系列算出部120において、特徴点系列の長さが算出される。特徴点系列の長さの算出は、一組のフレームF1,F2間で撮像面IS上を特徴点がどの地点からどの地点に移動したのかを追跡することで実現される。このような特徴点の追跡技術については、LK(Lucas-Kanade)法で提案されている等、既に周知である。そのため、詳細な説明は省略するが、本実施形態では可能な限り特徴点の追跡が継続される。
【0044】
例えば、第1番目のフレームF1から抽出した特徴点が、第2番目のフレームF2のどの地点に移動したかを追跡する処理が行われた後も、そのフレームF2に後続するフレームFX(X=3〜N)において同地点を示す座標値が算出される。勿論、特徴点の追跡の成功率を高めるうえで、特徴点系列の本数はより多いことが望ましい。
【0045】
そのため、ステップS106では、特徴点系列累積部121において、特徴点系列が累積される。前方カメラ111の校正は、特徴点系列を2本取得出来れば実現可能である。以下、
図5及び
図6に基づいて、2本の特徴点系列を取得する例を説明する。
【0046】
図5(A),(B)に示すように、時系列に相前後する、第300番目のフレームF300と、第301番目のフレームF301との間で特徴点P1(道路に描かれている白線WL1のコーナー)が変位した直線である特徴点系列の長さD1(世界座標系におけるユークリッド距離D1)が1本目の特徴点系列の長さとして取得される。続いて、
図6(A),(B)に示すように、時系列に相前後する、第600番目のフレームF600と、第601番目のフレームF601との間で特徴点P2(道路に描かれている白線WL1のコーナー)が変位した直線である特徴点系列の長さD2(世界座標系におけるユークリッド距離D2)が2本目の特徴点系列の長さとして取得される。
【0047】
ただし、特徴点の抽出結果、特徴点の追跡処理、車速センサ又は舵角センサから取得した情報には誤差が発生する可能性が多分にある。そのため、特徴点、走行速度、舵角を示す情報を多量に累積した方が、誤差を軽減するうえで望ましい。
【0048】
例えば、舗装が不十分で車両1に対して水平ではない道路を車両1が走行中に、特徴点の抽出処理が行われた場合、ピッチ角、ヨー角、ロール角の校正指標としては不十分である。そのため、最終的に算出されるカメラパラメータ(ピッチ角、ヨー角、ロール角、カメラ高さ)に多量の誤差が生じてしまう虞がある。仮に、校正指標として不十分な特徴点系列の長さが算出されたとしても、校正指標として正しい特徴点系列が多量に累積されていれば、校正指標として不十分な特徴点系列に起因して、カメラパラメータ(ピッチ角、ヨー角、ロール角、カメラ高さ)に生じる誤差の緩和が可能となる。
【0049】
ステップS107では、カメラパラメータ校正部122において、特徴点系列の本数が予め定められた必要本数に到達したか否かの判定が行われる。特徴点系列の本数が必要本数に到達したと判定されたときは(ステップS107におけるYES)、必要な本数分の特徴点系列の累積が完了したので、ステップS108に進む。一方、特徴点系列の本数が必要本数に未到達と判定されたときは(ステップS107におけるNO)、必要な本数分の特徴点系列の累積が完了していないので、処理はステップS101に戻る。
【0050】
ステップS108では、カメラパラメータ校正部122において、ROM103に格納されているカメラ取り付け位置・角度の設計値を用いて、ピッチ角(
図3に示すX軸回りの回転角のパラメータ)の校正が行われる。ピッチ角の校正方法は種々の方法が紹介されており、そのいずれの方法を用いてもよいが、本実施形態ではステップS107で累積した特徴点系列を用いることとする。
【0051】
特徴点系列を用いたピッチ角の校正方法については、例えば国際公開第2012/139636号等で提案されている等、既に周知である。そのため、詳細な説明は省略するが、本実施形態では、俯瞰変換した2本以上の特徴点系列が平行になるように、ピッチ角の校正が行われる。
【0052】
ステップS109では、カメラパラメータ校正部122において、ヨー角(
図3に示すY軸回りの回転角のパラメータ)の校正が行われる。
【0053】
まず、カメラパラメータ校正部122において、第N番目のフレームFNと、第N+1番目のフレームFN+1の同地点を指す特徴点系列が画像座標系から世界座標系に変換される。この変換方法は既に周知である。そのため、詳細な説明は省略するが、本実施形態では、例えば、フレームFNの世界座標における特徴座標を(P
X1、P
Y1)とし、フレームFN+1の世界座標における特徴座標を(P
X2、P
Y2)として、フレームFNとフレームFN+1との間の世界座標系におけるユークリッド距離Dが特徴点系列の長さとして以下の式(1)を用いて算出される。
・・・(1)
【0054】
次に、カメラパラメータ校正部122において、車両1の走行速度を示す情報を基に、フレームFNとフレームFN+1との間で車両1が走行した走行距離d[km]が算出される。フレームFNとフレームFN+1との間の走行距離d[km]は、それぞれのフレーム間の走行速度をvk[km/]とし、1秒間のフレーム数をfとすると、以下の式(2)を用いて算出される。なお、走行速度vkは、速度取得部118からカメラパラメータ校正部122に出力される。
・・・(2)
【0055】
上記式(2)に示すように、フレームFNからフレームFN+1へ移動する際の車両1の走行速度は、それぞれのフレームで取得した走行速度の相加平均値が採用される。
【0056】
例えば、
図5に示すように、フレームF300(
図5(A))からフレームF301(
図5(B))へ移動する際の車両1の走行速度は、フレームF300及びフレームF301のそれぞれで取得した走行速度の相加平均値が採用される。
【0057】
次に、カメラパラメータ校正部122において、以下の式(3)に示すように、ユークリッド距離Dが走行距離dで除算されることにより、累積した全ての特徴点系列を正規化した正規化長さRが算出される。式(3)に示すように、正規化長さRは、車両1の走行距離に依存する値となる。
・・・(3)
【0058】
次に、カメラパラメータ校正部122において、正規化長さRが異なる組のフレーム間で一致するように、ヨー角の校正が行われる。具体的には、
図5に示す一組のフレームF300,F301間での走行距離をd1[km]とし、
図6に示すフレームF600,F601間での走行距離をd2[km]とした場合、正規化長さR1(=D1/d1)と正規化長さR2(=D2/d2)とが一致するように、ヨー角の校正が行われる。
【0059】
このようなヨー角の校正技術については、LM法(Levenberg-Marquardt Method)で、提案されている等、既に周知である。そのため、詳細な説明は省略するが、本実施形態では、まず、フレームFNとフレームFN+1との間で特徴点系列のX座標の相加平均X
CENTERが算出される。次に、その相加平均X
CENTERと、正規化長さRとが、
図7に示すような二次元投票空間へ投票される。次に、その投票した主成分が分析され、
図7に破線で示すような近似直線が算出される。次に、その算出した近似曲線の傾きが0°に最も近づくときのヨー角が、校正後のヨー角として推定される。
【0060】
ステップS110では、カメラパラメータ校正部122において、ROM103に格納されているカメラ取り付け位置・角度の設計値を用いて、ロール角(
図3に示すZ軸回りの回転角のパラメータ)の校正が行われる。ロール角の校正方法は種々の方法が紹介されており、そのいずれの方法を用いてもよいが、本実施形態では、国際公開第2012/139636号で提案されている手法でロール角の校正が行われる。具体的には、ステップS107で累積した特徴点系列の角度が車両1の進行方向と平行になるときのロール角が前方カメラ111のロール角として校正される。
【0061】
ステップS111では、カメラパラメータ校正部122において、ROM103に格納されているカメラ取り付け位置・角度の設計値を用いて、前方カメラ111のカメラ高さの校正が行われる。カメラ高さの校正方法は種々の方法が紹介されており、そのいずれの方法を用いてもよいが、本実施形態では、国際公開第2012/139636号で提案されている手法でカメラ高さの校正が行われる。具体的には、ステップS109で算出したユークリッド距離Dと走行距離dとが等しくなるときのカメラ高さが前方カメラ111の高さとして算出される。
【0062】
以上説明したように、本実施形態のキャリブレーション装置によれば、一組のフレーム間(フレームF300,F301間又はフレームF600,F601間)で1つの特徴点(特徴点P1又は特徴点P2)の抽出及び追跡が行われる。このため、一組のフレーム間(フレームF300,F301間、又は、フレームF600,F601間)で、2つの特徴点P1,P2を同時に抽出したり、その抽出した2つの特徴点P1,P2を同時に追跡したりする必要がない。
【0063】
つまり、一組のフレーム間で抽出し且つ追跡する特徴点の数は1つで済む。これにより、一組のフレーム間で2つの特徴点を同時に抽出し且つ追跡する場合と比べて、特徴点の抽出及び追跡に要する時間を短くすることができる。従って、ヨー角の校正処理に要する時間を短くすることができる。
【0064】
また、上述のように、一組のフレーム間で抽出し且つ追跡する特徴点の数は1つで済むので、一組のフレーム間で2つの特徴点を同時に抽出し且つ追跡する場合と比べて、抽出及び追跡の成功率を向上できる。このため、ヨー角の校正処理を高精度に実現できる。
【0065】
従って、ヨー角の校正処理を短時間且つ高精度に実現することができる。
【0066】
また、本実施形態のキャリブレーション装置によれば、工場出荷時に行う規定のマーカを使ったキャリブレーションが不要になる。
【0067】
なお、上記の実施形態では、前方カメラ111のカメラパラメータ(ピッチ角、ヨー角、ロール角、カメラ高さ)の校正を前提とした。しかし、これに限らない。勿論、後方カメラ112、左方カメラ113、右方カメラ114のカメラパラメータ(ピッチ角、ヨー角、ロール角、カメラ高さ)を校正しても良い。
【0068】
後方カメラ112は、前方カメラ111同様、光軸方向(Z軸方向)が車両1の前後方向(走行方向)と一致する。その前後方向(走行方向)と垂直な上下方向(Y軸)の回りの回転角のパラメータ(ヨー角)の校正は、前方カメラ111と同様に、車両1の走行距離dに依存する正規化長さRを用いて実現可能である。
【0069】
一方、左方カメラ113及び右方カメラ114は、前方カメラ111及び後方カメラ112と異なり、光軸方向(Z軸方向)が車両1の上下方向と一致する。そのため、ピッチ角、ヨー角、ロール角のうち、車両1の走行距離dに依存する回転角は、車両1の上下方向と垂直な左右方向(X軸)の回りのピッチ角となる。従って、そのピッチ角の校正は、前方カメラ111におけるヨー角の校正と同様に、特徴点系列の長さDと、車両1の走行距離dとの比を用いて実現可能である。
【0070】
なお、上記の実施形態では、特徴点系列の長さdを走行距離Dで除した正規化長さRを用いて、ヨー角の校正を行う例を示した。しかし、これに限らない。例えば、特徴点系列の長さdを車両1の走行速度vkで除した正規化速度を用いて、ヨー角の校正を行っても良い。
【0071】
なお、上記の実施形態では、キャリブレーションシステム100を、前輪が操舵輪である車両1に設置する例を示した。しかし、これに限らない。例えば、キャリブレーションシステム100を、後輪が操舵輪である車両に設置しても良い。
【0072】
なお、上記の実施形態では、4台のカメラ111〜114を使用する例を示した。しかし、これに限らない。カメラの台数は、使用者等の要請に応じて適宜変更できる。
【0073】
なお、上記の実施形態では、車速情報及び舵角情報が、それぞれ、通信プロトコルとしてのCANを介して、速度取得部118及び舵角取得部119に出力される例を示した。しかし、これに限らない。例えば、車速情報及び舵角情報は、それぞれ、OSI(Open Systems Interconnection)参照モデルの物理層がCANと互換性のあるCAN FD(Controller Area Network With Flexible Data Rate)等を介して、速度取得部118及び舵角取得部119に出力されても良い。
【0074】
以上、本発明の実施例を図面により詳述したが、実施例は本発明の例示にしか過ぎないものであるため、本発明は実施例の構成にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲の設計の変更等があっても、本発明に含まれることは勿論である。