カメラキャリブレーション装置
【課題】駐車場の白線の2つの特徴点を検出し、特徴点とその交差する2方向の情報をもとに画像の位置合わせを行うキャリブレーション装置を提供する。
【解決手段】車両に搭載した複数のカメラを有する撮像部と、各カメラで撮影した画像から駐車枠を示す直線画像を識別し夫々のカメラ画像から駐車枠の特徴点を少なくとも2つ検出する特徴点検出部と、検出した特徴点とその交差する2方向の情報をもとに各カメラの画像を合成して真上からの視点に変換した俯瞰画像を生成する視点変換部と、俯瞰画像から車両と直線画像との境界位置を判別して車両画像の表示枠を決定し、俯瞰画像に対する表示枠の割合及び位置が予め指定した値になるように俯瞰画像を変更する調整部と、変更した俯瞰画像をもとに計算された各カメラの特性を示すカメラパラメータを格納する記憶部とを具備する。
【解決手段】車両に搭載した複数のカメラを有する撮像部と、各カメラで撮影した画像から駐車枠を示す直線画像を識別し夫々のカメラ画像から駐車枠の特徴点を少なくとも2つ検出する特徴点検出部と、検出した特徴点とその交差する2方向の情報をもとに各カメラの画像を合成して真上からの視点に変換した俯瞰画像を生成する視点変換部と、俯瞰画像から車両と直線画像との境界位置を判別して車両画像の表示枠を決定し、俯瞰画像に対する表示枠の割合及び位置が予め指定した値になるように俯瞰画像を変更する調整部と、変更した俯瞰画像をもとに計算された各カメラの特性を示すカメラパラメータを格納する記憶部とを具備する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両に複数のカメラを搭載し、車両外部の映像を撮影して運転者向けに表示する車載カメラ装置において、カメラの取り付け時等にカメラキャリブレーションを行うカメラキャリブレーション装置に関する。
【背景技術】
【0002】
従来、車両に複数のカメラを搭載して、車両の周囲(前方、後方、左側、右側)を撮影した画像を取得し、各画像の視点を車両上方からの視点に変換した画像(俯瞰画像)を生成して合成し、さらに自車の画像(イラスト画など)を合成してトップビュー画像のように表示する車載カメラ装置がある。俯瞰画像を表示することで自車及び周囲の状況を把握しやすくなり、例えば駐車場に車両を入れる場合などに運転者の運転を支援することができる。尚、俯瞰画像は、自車の上方などに設定した仮想視点から見た画像であり、仮想視点の位置を変えることで俯瞰画像の見え方を変えることができる。
【0003】
ところで、従来の車載カメラ装置では、カメラ取付け時の取付け位置、取付け角度、設置高さ等は事前に設計された値に設定されているが、実際に取付けた際に誤差を生じるため、各カメラで撮影した画像を合成したときに合成画像の接合部分がずれて不連続になることがあった。このため、撮影領域内に校正パターンを配置し、撮影した校正パターンに基づいて撮影画像の座標を校正するキャリブレーション(較正)装置がある。
【0004】
例えば特許文献1の例では、4個のカメラの撮影領域に1辺の長さが1m〜1.5m程度の正方形状の校正パターンを4つ配置し、夫々のカメラで撮影した画像を合成する際に各校正パターンを利用して画像の位置合わせを行うようにしている。しかしながら、特許文献1の例では、地面等にキャリブレーション用の特殊な校正パターンを配置する必要があり、また自車の位置を特定するために正確な位置に校正パターンを配置する必要がある。
【0005】
また特許文献2には、駐車場に引いてある駐車スペース示す白線同士が交わってできる4つの角(特徴点)を検出し、それらの4つの特徴点を用いてカメラパラメータ(カメラの取付け位置、取付け角度、焦点距離等)を計算するキャリブレーション装置が記載されている。
【0006】
しかしながら、特許文献2の例では、検出する特徴点が多くなるため、ある程度離れた位置から検出する必要があり、前後左右のカメラで特徴点を検出する場合には、車の向きを変えるため移動量が多くなる。また手動で自車位置を調整する必要や、車両に特徴点を設定する必要がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2008−187566号公報
【特許文献2】特開2002−135765号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来の車載カメラ装置では、各カメラで撮影した画像を合成したときに合成画像の接合部分がずれて不連続になることがあるため、校正パターンに基づいて撮影画像の座標を校正するようにしているが、特許文献1の例では、地面等にキャリブレーション用の特殊な校正パターンを配置する必要があり、特許文献2の例では、駐車場に引いてある白線同士が交わってできる4つの角(特徴点)を検出してカメラパラメータを計算する必要がある。
【0009】
本発明はこのような事情に鑑み、駐車場の白線を利用し白線の2つの特徴点とその交差する2方向の情報を利用して各画像の位置合わせを行うことができるキャリブレーション装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
請求項1記載のカメラキャリブレーション装置は、車両に搭載した複数のカメラを有し、前記複数のカメラによって前記車両の周囲を撮影する撮像部と、前記複数のカメラで撮影した画像から駐車枠を示す直線画像を識別し、それぞれのカメラ画像から前記駐車枠の特徴点を少なくとも2つ検出する特徴点検出部と、前記特徴点検出部で検出した特徴点とその交差する2方向の情報をもとに前記各カメラの画像を合成して真上からの視点に変換した俯瞰画像を生成する視点変換部と、前記俯瞰画像から前記車両と前記直線画像との境界位置を判別して車両画像の表示枠を決定し、前記俯瞰画像に対する前記表示枠の割合及び位置が予め指定した値になるように前記俯瞰画像を変更する調整部と、前記変更した俯瞰画像をもとに計算された前記各カメラの特性を示すカメラパラメータを格納するカメラデータ記憶部と、を具備したことを特徴とする。
【発明の効果】
【0011】
本発明のカメラキャリブレーション装置によれば、駐車場の白線を利用するため特殊な校正パターンを必要とせず、また白線の2つの特徴点とその交差する2方向の情報を利用するため、キャリブレーションのために駐車枠から離れて撮影する必要がない。
【図面の簡単な説明】
【0012】
【図1】本発明の一実施形態に係るカメラキャリブレーション装置の構成を示すブロック図。
【図2】カメラの配置の一例を示す平面図。
【図3】車両を駐車場に駐車した場合を示す平面図。
【図4】駐車場の白線を撮影する際の3パターンを示す説明図。
【図5】パターンAにおいて前方、左、右のカメラで撮影した画像を示す説明図。
【図6】パターンBにおいて後方、左、右のカメラで撮影した画像を示す説明図。
【図7】パターンCにおいて後方、左、右のカメラで撮影した画像を示す説明図。
【図8】3次元空間座標系の定義を示す説明図。
【図9】調整された後の後方、左、右のカメラの画像を示す説明図。
【図10】白線枠の位置と車両の位置のずれを示す説明図。
【図11】俯瞰画像の表示領域における自車の表示枠を示す説明図。
【図12】パターンA、Bでのカメラの調整画像を示す説明図。
【図13】調整画像を長方形にするための説明図。
【図14】カメラキャリブレーションの動作を示すフローチャート。
【図15】本発明の変形例における特徴点と角度の検出を説明する説明図。
【図16】パターンDにおいて各カメラで撮影した画像を示す説明図。
【図17】パターンDにおいて白線が自車によって消える境界を示す説明図。
【図18】パターンFにおける白線枠を示す説明図。
【図19】パターンGにおける白線枠を示す説明図。
【図20】パターンGにおいて各カメラで撮影した画像を示す説明図。
【図21】直線(白線)をまたいで絶対位置を調整する際の説明図。
【図22】車両が白線又は地面と同じような色の場合を示す説明図。
【図23】自車と白線の境界の検出について説明する説明図。
【発明を実施するための形態】
【0013】
以下、この発明の一実施形態について図面を参照して説明する。
【実施例1】
【0014】
図1は、本発明の一実施形態に係るカメラキャリブレーション装置の構成を示すブロック図である。図1のカメラキャリブレーション装置は、撮像部10、カメラデータ記憶部20、特徴点検出部21、空間再構成部22、空間データバッファ23、視点変換部24、示パターン記憶部30、画像合成部40及び表示部50を備えている。
【0015】
撮像部10は、自車の周囲の映像を撮影する例えば4つのカメラ11,12,13,14を有している。4つのカメラ11,12,13,14は、車両の前方、後方、左側、右側を夫々撮影するものである。また各カメラ11〜14は、魚眼カメラ等の広角カメラを使用するとよい。各カメラ11〜14の位置については後述する。
【0016】
カメラデータ記憶部20は、各カメラ(11〜14)の特性を示すカメラパラメータを格納するカメラパラメータテーブル201を含む。カメラパラメータは、各カメラ11〜14で撮影した画像から特徴点を抽出し特徴点の情報をもとに計算によって得ることができる。カメラパラメータは、カメラの取付け位置、カメラの取付け角度、カメラのレンズ歪み補正値、カメラのレンズの焦点距離などといったカメラ特性を表わすものである。各カメラ(11〜14)で撮影した画像の複数の特徴点と、これら特徴点の3次元座標系内での位置との対応関係が取れていれば、カメラパラメータを計算によって近似的に求めることができる。尚、カメラパラメータを計算によって求める方法については、特許文献2にも記載されている。
【0017】
特徴点検出部21は、カメラ(11〜14)からの入力画像をもとに、車両周囲の例えば路面に描かれた駐車場の白線など、路面上の特徴点を検出する。空間再構成部22は、カメラパラメータをもとに3次元空間の空間モデルにマッピングした空間データを作成する。また空間再構成部22は、特徴点検出部21で検出した路面上の特徴点と車両の現在位置にもとづいて空間モデルを逐次変更する。
【0018】
空間データバッファ23は、空間再構成部22にて作成された空間データを一時的に格納する。視点変換部24は仮想視点を設定し、空間データバッファ23からの空間データを参照して任意の仮想視点から見た画像を作成する。
【0019】
表示パターン記憶部30は、画像記憶部31とマッピングテーブル32を含む。画像記憶部31は、自車を真上からみた俯瞰画像や、斜め後方等からみた俯瞰画像を記憶するものである。即ち、カメラ11〜14は自車の周囲を夫々撮影し、撮影した画像に基づいて自車の背景画像を生成するが、背景画像に表示されるのは実景のみである。したがって、背景画像の所定の位置に自車の俯瞰画像を合成するため、予め自車を真上から撮影した画像や斜め後方等からみた画像を俯瞰画像として画像記憶部31に記憶している。或いは、自車を示すイラスト画像を生成し、このイラスト画像を俯瞰画像として記憶している。撮影した画像やイラスト画像は1つに限らず、複数種記憶しておき、任意のものを選択できるようにしている。
【0020】
マッピングテーブル32は、カメラ11〜14で撮影した画像の画素データと、自車の周辺を仮想視点から見た背景画像の画素データとの対応関係を記憶したテーブルであり、撮影された画像の画素が背景画像のどの画素に対応するかを示す変換情報を記憶している。
【0021】
画像合成部40は、視点変換部24にて視点変換した画像(俯瞰画像)と、表示パターン記憶部30からの仮想視点に対応した自車画像(イラスト画等)を合成し、表示部50に表示する。また画像合成部40は、撮影部10で撮影した任意のカメラ画像を選択して表示部50に表示することができる。
【0022】
次にカメラ11〜14の配置の一例を、図2を参照して説明する。本実施形態では、4つのカメラ11〜14を配置している。図2は、車両1を真上から見た図であり、例えば車両1の前方部にカメラ11を配置し、後方部にカメラ12を配置する。また車両1の左側のサイドミラーにカメラ13を配置し、右側のサイドミラーにカメラ14を配置する。
【0023】
こうして各カメラ11〜14は、車両1の4辺に配置される。各カメラ11〜14は、車両1の全周囲を撮影するため魚眼カメラにすると良い。尚、以下の説明では、カメラ11を前方カメラ、カメラ12を後方カメラ、カメラ13を左カメラ、カメラ14を右カメラと呼ぶ。またカメラ11〜14を備えた車両1を自車1と呼ぶこともある。
【0024】
以下、本発明のカメラキャリブレーション装置の主要部(特徴点検出部21、空間再構成部22、視点変換部24、カメラデータ記憶部20、空間データバッファ23)の動作を説明する。カメラキャリブレーションのために必要とするレンズ歪補正は、特許文献2にも記載されているが、例えば温度センサと温度補正テーブルを設け、気温の上昇や下降に伴って変化するレンズ歪を補正する。またカメラは車両1の前後左右の4か所に設置されているものとする。
【0025】
<相対位置調整>
本実施形態では、先ず複数のカメラ(11〜14)を図2で説明したように車両の前後左右に取り付ける。そしてレンズ歪補正をした後に、ある程度カメラが地面の向きになるように画像を視点変換させた画像にする。そのとき、その画像の面に対する視点の位置も記憶しておく。駐車場の駐車枠は、図3に示すように駐車スペースを示す四角の枠と、横に延びた線とし、画像の取得パターンは3パターンとする。
【0026】
図3は、車両1を駐車場に駐車した場合を示す平面図である。駐車場には駐車枠2を示す白線が引かれており、駐車枠2は、前方の白線2a、後方の白線2b、左側の白線2c、右側の白線2dで構成されている。次に駐車場の駐車枠2内に車両1をある程度真っ直ぐに入れて複数のカメラ(11〜14)で駐車場の白線(2a〜2d)を撮影し、3パターン(パターンA,B,C)の白線画像を取得する。
【0027】
パターンAの画像とは、図4(a)で示すように車両1を駐車枠2の後方にずれた位置に移動させ、前方カメラ11、左カメラ13及び右カメラ13で駐車枠2を撮影した画像を意味する。パターンCの画像とは、図4(c)で示すように車両1の前方が駐車枠2の白線2aを完全に越えた位置にくるように移動させて撮影した画像を意味する。またパターンBの画像とは、図4(b)で示すように車両1がパターンAとパターンCの間の位置にくるように移動させて撮影した画像を意味する。尚、図4以降においては、便宜上、駐車枠2の白線を黒い太い線で示す。
【0028】
次に3パターンの画像から地面に描かれた白線(駐車枠を示す直線画像)を検出して特徴点を検出するが、特徴点(白線)を検出するには色々な手法がある。例えば撮影した画像データを、白線を検出しやすいようにモノクロ画像にして入力し、画像プロセッサによってエッジ抽出処理を行う。即ちカラー画像データをグレースケールデータ(モノクロ画像)に変換し、グレースケールデータの輝度平均値や、輝度の中央値等の閾値を設定する。そして、画素間の輝度の勾配等が閾値未満であるときはエッジとして検出せず、閾値以上であるときはエッジとして検出する。或いはグレースケールデータに変換した画像データの各画素の輝度と、各画素に隣接する画素の画素値の差分を検出し、差分の大きい画素をエッジとして検出する。これによりエッジの座標が算出され、このような方法により地面に描かれた白線を検出する。
【0029】
図5(a),(b),(c)は、パターンAにおいて前方カメラ11、左カメラ13、右カメラ14で撮影した画像を示す。図6(a),(b),(c)は、パターンBにおいて後方カメラ12、左カメラ13、右カメラ14で撮影した画像を示す。図7(a),(b),(c)は、パターンCにおいて後方カメラ12、左カメラ13、右カメラ14で撮影した画像を示す。図5〜7において、隣に別の車両が駐車していた場合は、隣の車両の画像も取得されるが特に支障はない。
【0030】
図5のパターンAの画像からは、前方カメラ11で撮影した特徴点A1,A2と、その交差する2つの方向を検出する。つまり特徴点A1,A2の検出だけでなく、特徴点において白線が交差する2つの方向を検出する。また左方カメラ13で撮影した特徴点A1と、右カメラ14で撮影した特徴点A2を検出する。特徴点A1は、白線2aと白線2cの交点に相当し、特徴点A2は、白線2aと白線2dの交点に相当する。
【0031】
図6のパターンBの画像からは、後方カメラ12で撮影した特徴点B1,B2を検出する。また左カメラ13で撮影した特徴点A1とその交差する2つの方向、及び特徴点B1を検出し、右カメラ14で撮影した特徴点A2とその交差する2つの方向、及び特徴点B2を検出する。特徴点B1は、白線2bと白線2cの交点に相当し、特徴点B2は、白線2bと白線2dの交点に相当する。
【0032】
図7のパターンCの画像からは、後方カメラ12で撮影した特徴点B1,B2とその交差する2つの方向を検出する。また左カメラ13で撮影した特徴点A1とその交差する2つの方向を検出し、右カメラ14で撮影した特徴点A2とその交差する2つの方向を検出する。尚、図5〜図7において、特徴点をそれぞれ円で囲って示しているが、太い円は特徴点とその交差する2つの方向を検出することを意味し、細い点線の円は特徴点のみを検出することを意味する。
【0033】
またパターンA,B,C(図4)で示すように車両1が移動したとき、各カメラの位置と各特徴点の相対位置が変わるため、特徴点とその交差する2つの方向を検出する場合は、特徴点から離れ過ぎない位置、つまり交差する2つの方向が分かりやすい位置で検出する。例えば、パターンB(図6)とパターンC(図7)でそれぞれ特徴点B1,B2を検出した場合、パターンCの方が交差する2つの方向を把握しやすいため、パターンBでは特徴点B1,B2の交差する2つの方向は検出しない。尚、特徴点A1,A2,B1,B2を検出する場合は、白線の中心同士が交わる点を特徴点として検出しているが、より精度を上げるためには、白線の中心ではなく白線の端を検出して特徴点や交差する2つの方向を求めるとよい。
【0034】
次に各カメラ(11〜14)で撮影した画像を真上からの視点に変換する。先ず前方カメラ11の画像は、パターンAの2つの特徴点A1,A2とその交差する2つの方向より、夫々の角度が直角になるように計算する。
【0035】
ここで、先ず3次元空間座標系を定義する。例えば車両1の後面に平行な路面上の直線をx軸、車両1の後面に垂直な路面上の直線をy軸、路面から車両方向に垂直に伸びる軸をz軸とする3次元空間座標系を定義する。本座標系においてカメラの向きは、カメラの位置を(0,0,0)とした場合、x軸に対して回転する角度をα、y軸に対して回転する角度をβとし、z軸に対して回転する角度をγとして表すものとする。以下、3次元空間座標系もしくは3次元空間は、本定義による3次元空間座標系を指すものとする。
【0036】
図8のように座標系を定義した場合、夫々の軸の回転計算は以下のようになる。
【0037】
x軸中心回転は、
x’=x
y’=y・cos(α)+z・sin(α)
z’=−y・sin(α)+z・cos(α)
y軸中心回転は、
x’=x・cos(β)+z・sin(β)
y’=y
z’=−x・sin(β)+z・cos(β)
z軸中心回転は、
x’=x・cos(γ)+y・sin(γ)
y’=-x・sin(γ)+y・cos(γ)
z’=z
画像はカメラの向きが、ある程度地面向きになるように、視点変換された画像(−z方向に地面がある)にする。そのため検出する特徴点の交差する2つの方向はある程度直角になっている。カメラの向きを−z方向として画像の配置を図8の点線のように配置する。画像はz軸に対して垂直にする。
【0038】
上記の位置の画像より、特徴点とその交差する2つの方向を検出した座標を計算する。2方向は適当な長さにして2つの座標とし、特徴点とあわせて3座標にする。夫々の座標の角度abc (bが特徴点)が−z方向に見て直角になるようなx軸回転角度とy軸回転角度を計算する。
【0039】
上記のx軸中心回転とy軸中心回転の計算式より回転後の座標は、
x’=x・cos(β)−y・sin(α)・sin(β)+z・cos(α)・sin(β)
y’=y・cos(α)+z・sin(α)
z’=−x・sin(β)−y・sin(α)・cos(β)+z・cos(α)・cos(β)
となる。その座標がカメラ視点から−z方向に見て直角に見えるためには、
X=x/(−z)、Y=y/(−z)
に変換した座標(X,Y)による直線abと直線bcが直角になればよいので、直線abと直線bcの+x方向に対する傾き(2次元の直線の式であるy=ax+bのa)は、
直線ab : (Y(a)−Y(b))/(X(a)−X(b))
直線bc : (Y(c)−Y(b))/(X(c)−X(b))
となり、その2つの傾きを乗算した値が−1となるのが直角である。
【0040】
その計算式はf1(α,β) =0と表し、もうひとつの特徴点から導き出した計算式をf2(α,β)=0と表す。そして、非線形連立方程式(ニュートン法)などを用いてαとβの解を出す。非線形連立方程式(ニュートン法)は一般的であるため簡単に説明する。
【0041】
2つの解を導き出すニュートン法の方程式は以下のようになる。
【数1】
【0042】
「δf1 / δα」とは関数f1(α,β)=0をαで偏微分した結果である。また、ΔαとΔβが導き出される解であるが、最初に設定したαとβに対する差分であり、誤差を含んでいる。αとβは0に近い値になるように地面の向きを設定しているので、最初はαとβを0として値を代入し計算する。そして得られたΔαとΔβを元の値のαとβに加算し、再計算させてΔαとΔβがほぼ0となるように何回か計算し収束させる。
【0043】
αとβは0に近い値になるように地面の向きを設定しているので、α,βは−45度以上+45度以下(もっと広くしてもよい)として計算を収束させる(上記の方法では複数の収束解があるため制限を入れる)。この計算方法によりx軸回転角度とy軸回転角度を導き出す。
【0044】
同様に、後方カメラ12の画像は、パターンCでの2つの特徴点B1,B2とその交差する2つの方向より、夫々の角度が直角になるように計算する。また左カメラ13の画像は、パターンBの前方の特徴点A1とその交差する2つの方向、及びパターンCの前方の特徴点A1とその交差する2つの方向より、夫々の角度が直角になるように計算する。さらに、右カメラ14の画像は、パターンBの前方の特徴点A2とその交差する2つの方向、及びパターンCの前方の特徴点A2とその交差する2つの方向より、夫々の角度が直角になるように計算する。こうして計算結果をもとに、画像を真上からの視点に変換する。
【0045】
次にパターンBでの駐車場枠2に向きを合わせる。つまり、地面の真上から見た画像に変換しただけでは、夫々の特徴点A1,A2,B1,B2の角度が直角になるだけで、向きはばらばらである。したがって、向きを駐車場枠2に合わせるため、後方カメラ12の画像は、パターンCの2つの特徴点B1,B2により、その特徴点が真横になるように調整(z軸回転)する。後方カメラ12は、前方カメラ11に対して180度回転しているので、左側を右側、右側を左側になるように調整する。
【0046】
左カメラ13の画像は、パターンBの2つの特徴点A1,B1により、その特徴点が真縦になるように、前方を上側、後方を下側になるように調整する。右カメラ13の画像は、パターンBの2つの特徴点A2,B2により、その特徴点が真縦になるように、前方を上側、後方を下側になるように調整する。尚、前方カメラ11の画像は、パターンBでは特徴点が取得できていないので向きの調整は行わない。こうして調整された後の後方カメラ12、左カメラ13及び右カメラ14の画像は、図9(a),(b),(c)のようになる。
【0047】
次に、パターンBでの左カメラ画像の2つの特徴点A1,B1間の長さと、右カメラ画像の2つ特徴点A2,B2間の長さが同じになるように、左右のカメラ13,14の拡大率を決定する。さらにパターンBでの後方カメラ12の2つの特徴点B1,B2と、左右のカメラ13,14の後方の特徴点B1,B2が一致するように、またパターンCでの後方カメラ12の2つの特徴点B1,B2と左右のカメラ13,14の後方の特徴点B1,B2が一致するように後方のカメラの拡大率を決定する。
【0048】
もしくは、白線枠2の縦横比を入力しておいて、パターンBでの後方カメラ12の2つの特徴点B1,B2間の長さと左カメラ画像の2つの特徴点A1,B1間の長さ、または、右カメラ画像の2つ特徴点A2,B2間の長さが入力しておいた縦横比になるように、後方カメラ12の拡大率を決定する。
【0049】
左右のカメラ13,14と後方カメラ12での拡大率により、視点の相対的な高さが決定されるので、その視点の高さにしたがって、パターンBでの後方カメラ12の2つの特徴点B1,B2と左右のカメラ13,14の後方の特徴点B1,B2が一致するように地面方向に対して水平に移動し、左右のカメラ13,14と後方カメラ12の相対的な視点位置を決定する。
【0050】
次にパターンAでの2つの特徴点A1,A2の画像と左右のカメラ13,14の前方の特徴点A1,A2画像が一致するように、前方カメラ11の地面方向に対する回転角度と拡大率、及び相対的な視点位置を決定する。こうして決定した白線枠2の画像は図10のようになる。
【0051】
しかしながら、図10から分かるが、この図では駐車場の白線枠2が垂直になっているだけで、車両1に対しては必ずしも垂直になっていない。また線の長さを駐車場の白線枠2の長さにあわせているので、車両1の大きさが大きかったり小さかったりする。また白線枠2の位置も車両1の位置に対して左にずれていたり前にずれていたりする。また車両1と白線枠2の境界がはっきりしないので、白線枠2映像に車両が写りこむ。そこで、次に絶対位置調整を行う。
【0052】
<絶対位置調整>
図10では、自車1の大きさ、位置、向きが特定されていない状態にあるため、この状態から図11のように、俯瞰画像の表示領域Rに対して自車の表示枠が予め決められた範囲内になるように調整する。図11において、太い枠で示す領域Rは、俯瞰画像の表示領域であり、横幅wと縦幅hで規定される。また自車の表示枠は、縦幅をaとし、横方向の中心位置をx、縦方向の中心位置をyとしている。
【0053】
先ず図12のように、パターンA,Bから車両1と地面の境界を検出する。検出方法は白線2が自車1によって消失する位置(境界位置)を特定する方法とする。駐車場の白線2が直線で太さが変わらない領域が白線の領域で、その先端が境界となる。図12(a)は前方カメラ11のパターンAでの調整画像(特徴点の角度を直角に調整し、特徴点が真横になるように調整し、ほかのカメラに対する相対位置を調整した画像)であり、(b)は後方カメラ12のパターンBでの調整画像である。(c)は左カメラ13のパターンBでの調整画像であり、(d)は右カメラ14のパターンBでの調整画像である。誤差を吸収するためにA,B,Cの夫々のパターンでの調整画像を取得してもよい。
【0054】
それらの調整画像から、つまり図12(a)〜(d)の画像から境界位置を2点ずつ検出する。図12(a)では、境界位置をそれぞれ円A3,A4で示し、(b)では円A5,A6で示す。また、図12(c)では、境界位置を円B3,B4で示し、(d)では円B5,B6で示す。
【0055】
そして、検出した左右のカメラ13,14の2点の境界点から境界線を作り出す。そして境界線が左右ともに真縦に一番近い角度になるように絶対角度を計算し、夫々のカメラ11,12,13,14の調整画像の向きや位置を調整する。また、前後のカメラ11,12の画像を用いて行ってもよい。この場合は、境界線が前後ともに真横に一番近い角度になるように絶対角度を計算し、夫々のカメラ11,12,13,14の調整画像の向きや位置を調整する。
【0056】
上述した調整では境界線が夫々斜めになっている可能性があるので、長方形にするために夫々のカメラ(11〜14)画像における4つの境界線より四角形を作り出す。例えば、図13で示すように、前方カメラ11による境界線が直線X1、後方カメラ11による境界線が直線X2、左カメラ13による境界線が直線Y1、右カメラ14による境界線が直線Y2であったと仮定し、各境界線の交点を求め、各交点におけるx軸方向とy軸方向の夫々の最小値と最大値で規定される長方形(太い点線で示す)を作成する。
【0057】
この長方形は、自車のイラスト画像等を表示する表示枠となり、俯瞰画像に対する表示枠の割合及び位置が予め指定した値になるように俯瞰画像を変更し、俯瞰画像が予め設定した表示領域R(図11)に収まるように調整する。空間再構成部22は俯瞰画像を変更する調整部を構成する。
【0058】
こうして、カメラ位置、カメラの向き決定して、カメラデータ記憶部20にカメラパラメータが格納される。
【0059】
図14は、以上の動作を示すフローチャートである。図14において、ステップS1は、カメラキャリブレーションの開始ステップであり、ステップS2では各カメラ(11〜14)を車両の前後・左右に取り付ける。次にステップS3では、駐車場の白線画像をA,B,Cの3パターンで取得する。ステップS4では、白線を検出しやすいように画像を調整(グレースケールデータに変換)し、夫々必要な特徴点を検出する。ステップS5では、各カメラで地面方向を−z方向として夫々の特徴点とその交差する2つの方向により、x軸回転角度とy軸回転角度を計算する。またステップS6では、白線の枠に合せて夫々のカメラのz軸回転角度を計算する。
【0060】
次にステップS7では、左右のカメラ13,14での白線の縦軸長さが同じになるように、左右のカメラ13,14の拡大率を計算する。ステップS8では、パターンBとパターンCでの後方カメラ12の特徴点より後方カメラ12の拡大率を計算する。ステップS9では、パターンBでの後方カメラ12の特徴点の位置が左右のカメラ13,14と一致するように、左右と後方カメラの相対位置を計算する。そしてステップS10では、パターンAでの前方カメラ11の特徴点の位置が左右のカメラ13,14と一致するように、左右と前方カメラの相対位置を計算する。
【0061】
次にステップS11では、白線が自車によって消失する位置(自車から現れる位置)を検出する。ステップS12では、検出された消失位置から境界線を作成する。またステップS13では左右のカメラ13,14の境界線の平均が、真縦になるように絶対角度を計算し、夫々のカメラで撮影した画像の向きや位置を補正する。ステップS14では、前後左右の境界線より夫々の境界線の交点のx軸とy軸の最小値、最大値を計算し、その領域(表示枠)を車両の表示領域とする。ステップS15では、予め設定しておいた車両表示領域に従って、夫々の画像の拡大率、位置を決定し、ステップS16で終了する。
【0062】
こうして、白線枠2内に車両1が駐車されたときに、俯瞰画像の表示領域R内に方形状の白線枠2と、白線枠2内に駐車された自車1のイラスト画像が表示され、各カメラ11〜14で撮影された画像が正常に合成されて、繋ぎ目が段違いになるのをなくすことができる。また各カメラ11〜14では少なくとも2つの特徴点を検出すればよいため、キャリブレーションが簡単になる。
【0063】
次に本発明の実施形態の変形例について説明する。各カメラ(11〜14)の取り付け位置が距離的に分かっている場合は、カメラの取付け向きだけが分からない状態になる。その場合は、車両1を移動して夫々のカメラ(11〜14)について2つの特徴点とその交差する2つの方向を検出しなくても済む。
【0064】
即ち、図15(a)のパターンDのように、前後のカメラ11,12において、夫々で横切る白線2a,2bが見え、さらに左右のカメラ13,14で2つの特徴点と夫々に対する交差する2つの方向を見つけられる状態であれば車両を移動しなくてもよい。或いは、図15(b)のパターンEのように、左右のカメラ13,14の夫々で縦の白線2c,2dが見え、さらに前後のカメラ11,12で2つの特徴点と夫々に対する交差する2つの方向を見つけられる状態であれば車両を移動しなくてもよい。
【0065】
図16を参照して、パターンDについて説明する。図16(a)〜(d)は、パターンDにおいて各カメラ11〜14で撮影した画像を示す。パターンDの画像からは、前方カメラ11で撮影した特徴点A11,A12と、後方カメラ12で撮影した特徴点B11,B12を検出する。また左カメラ13で撮影した特徴点A11,B11と、右カメラ14で撮影した特徴点A12,B12と夫々の交差する2つの方向を検出する。
【0066】
次に左カメラ13と右カメラ14の画像での2つの特徴点とその交差する2つの方向が夫々直角になるように前述した計算式に従って回転処理を行う。また地面に対して垂直方向の回転を、左右のカメラ13,14の画像の白線が真縦になるように回転させる。次に左右のカメラ13,14の高さより、真縦にした白線の長さがわかる。その白線の端の特徴点と左右のカメラ13,14の位置関係より、前後のカメラ11,12に映し出されている横線の特徴点の間隔を計算する。前後のカメラ11,12に映し出されている横線の特徴点と前後のカメラ11,12の位置より、前後のカメラ11,12の向きを特定する。計算式は以下のようになる。
【0067】
自車1の左前の特徴点を例にする。前方カメラ11の回転前の左側の特徴点位置を(x,y,z)とし、前方カメラ11の取り付け位置に対する左のカメラ13での計算結果の特徴点位置を(xa,ya,za)とする。特徴点(x,y,z)をx軸回転し、y軸回転し、z軸回転した座標を(xb,yb,zb)とすると、xb,yb,zbはα, β, γの関数である。
【0068】
(xa,ya,za)と(xb,yb,zb)は前方カメラ11に対する座標となっているため、カメラ視点から−z方向に見た場合の頂点が同じに見えるための計算式は、
xa/(−za) = xb/(−zb)
ya/(−za) = yb/(−zb)
となる。そして、2つの式よりf1(α, β, γ)=0とf2(α, β, γ)=0の式を作成する。非線形連立方程式(ニュートン法)でα, β, γを導き出すためにはもうひとつ式が必要であるため、自車1の右前の特徴点も利用し、もうひとつの式を用意する。その3式を利用し、非線形連立方程式を解いてα, β, γを得る。
【0069】
αとβは0に近い値になるように地面の向きを設定していて、また前方カメラ11に関してはz軸回転もほとんどしていない状態なので、α,β,γは−45度以上+45度以下(もっと広くしてもよい)として計算を収束させる(上記の方法では複数の収束解があるため)。この計算方法によりx軸回転角度とy軸回転角度とz軸回転角度を導き出す。
【0070】
特定されたカメラの向きは夫々白線に対しての向きである。そのため、カメラの取付け位置より、白線が車両に対してどれだけ地面の垂直方向が回転しているかを計算する。次に車両1の真上から見た車両と地面の境界に対してカメラ位置がどれだけ離れているか分かっているなら、その距離に従って自車画像の表示位置と、外部映像の表示位置の境界線を決定する。もし分かっていなければ、図17に示すように、白線が自車1によって消える境界を夫々のカメラ11〜14に対して最低1点見つけて、その点を自車画像の表示位置と外部映像の表示位置の境界線と決定する。
【0071】
また、カメラの取り付け位置が特定されている状態で、車両1が小さく、白線2の角度を車両側に向かう白線により検出できるならなら、図18のパターンFのように四角枠のみの白線を利用することもできる。
【0072】
つまり図4や図15のように、四角の白線枠2から外側に延びる白線を必要とするのは、角度の精度を上げるためである。したがって、内側に延びる白線でも角度の計算はできるため、車両1が白線枠2に対してある程度小さければ、内側に向かって延びる線でも角度計算の精度は出せる。
【0073】
さらに、最近の駐車場は図19に示すように、四角の枠になっておらず2重線になっている場合がある。このような場合(パターンG)では、カメラの取り付け位置が特定されているなら、図19の位置に自車1を設置して調整する。そして図20のように特徴点を検出する。
【0074】
図20のように、特徴点と交差する2つの方向が検出できるのは後方カメラ12の画像のみである。前方カメラ11の画像では特徴点A21,A22がカーブになっているため、角度が正確に検出できない。後方カメラ12での特徴点B21〜B24同士は同じライン上にあるため、それらの特徴点を結んだ線から2方向を特定できることになる。
【0075】
もしくは、前方カメラ11の画像での特徴点A21,A22の接線と、特徴点A23〜A26の直線との交点(4点あるが2点あれば計算可能)を仮想的な特徴点とし、特徴点A21,A22の接線と特徴点A23〜A26の直線を交差する2つの方向としてもよい。
【0076】
そのため、後方カメラ12の画像の2つの特徴点B21,B24とその2方向、又は特徴点B22,B23とその2方向により、2の特徴点の2方向のなす角度が直角になるように非線形連立方程式(ニュートン法)などでx軸回転角度、y軸回転角度を決定する。次に2つの特徴点が真横(但し左側と右側が逆)になるようにz軸回転角度を決定する。
【0077】
次に補正された後方カメラ12での4つの特徴点B21〜B24と、前方カメラ11での4つの線上の特徴点A23〜A26(図では自車との境界に見えるが、境界である必要はなく線上にあればよい)の横方向(x)の座標が同じ位置に見えるように、非線形連立方程式(ニュートン法)などで前方カメラ11のx軸回転角度、y軸回転角度、z軸回転角度を決定する(前カメラと後ろカメラの高さを考慮する)。もしくは前述した仮想的な特徴点と交差する2つの方向により前方カメラ11のx軸回転角度、y軸回転角度、z軸回転角度を決定してもよい。
【0078】
精度を上げるために、α、β、γの関数のひとつは、前方カメラ11での、線の端のカーブになっている部分の2つの特徴点A21,A23を検出し(2つのカーブ位置と直線が接する位置が2つの特徴点)、その検出した2つの特徴点の縦(y)の位置が同じになるような計算式にしてもよい。また、その2つの特徴点A21,A22の横(x)の位置が、後方カメラ12の左右の夫々2つの特徴点の中点(B21とB22の中点及びB23とB24の中点)と同じになるような計算式にしてもよい。
【0079】
前方カメラ11と後方カメラ12の向きと位置が特定できたので、前後のカメラ11,12での車両1の左側の白線の端の特徴点A23,B21を左カメラ13でのカメラ位置基準になるように計算する。左カメラ13での特徴点の検出結果を、左カメラ13の位置を基準にx軸、y軸、z軸回転させた座標と左カメラ13から見て同じ位置に見えるようにx軸、y軸、z軸回転の夫々の角度を計算する。計算方法は、パターンDで説明した前後のカメラ11,12を左右のカメラ13,14に置き換えたのと同じである。同様に右側も計算させる。車両の後方の特徴点は2重線のどちら側でもよい。
【0080】
もしくは左カメラ13での特徴点B21,B22を2つの特徴点とし、それぞれの2方向は白線の方向ともう一つの特徴点(特徴点をB21とした場合B22、特徴点をB22とした場合B21)の方向として、x軸回転角度、y軸回転角度を決定し、次に白線が真縦になるようにz軸回転角度を決定してもよい。右カメラ14も同様に、特徴点B23,B24とその交差する2つの方向を検出し、x軸回転角度、y軸回転角度、z軸回転角度を決定してもよい。
【0081】
特定されたカメラの向きは夫々白線に対しての向きである。そのためカメラの取り付け位置より、白線が車両に対してどれだけ地面の垂直方向に回転しているかを計算する。次に、車両1の真上から見た車両と地面の境界に対してカメラ位置がどれだけ離れているか分かっているなら、その距離に従って自車画像の表示位置と、外部映像の表示位置の境界線を決定する。もし分かっていなければ、前後のカメラ11,12は、白線が自車によって消える境界を夫々のカメラに対して最低1点見つけて(複数を平均や、信用のある位置にある方でもいい)、その点を自車画像の表示位置と外部映像の表示位置の境界線と決定する。左右のカメラ13,14に対しては、車両1のタイヤと地面の境界や、輪留めの車両に対する消失位置を境界線として決定する。
【0082】
またパターンGのような場合には、車両1を白線に対して横向きにし、2つの特徴点とその角度(2方向)を検出して計算してもよい。また白線の長さや縦横比が分かっているなら、それを計算式に入れて計算量を削減してもよい。
【0083】
また、絶対位置の調整については、図21のように直線(白線2)をまたいで調整してもよい。この場合、白線2を横切って消失点、出現点を検出するが、白線2を横切って境界を検出するには、車両1の進行方向に対して横方向が望ましい。また車両1の進行は極力舵角をもたないように直線的に移動することが望ましい。それを前提に先ず前方カメラ11での境界検出方法を説明する。
【0084】
図21のように最初に白線2を検出して、進行方向と思われる方向に対する白線2の太さを測定する。その測定を進行方向と思われる方向に対して垂直方向に、適当な距離をもたせ複数個所行う。進行方向が回転していなければ、取得した白線2の進行方向に対する太さは変わらない。そのため、さらに前進した場合、夫々の位置での白線2の太さが変わる位置が自車1の境界となる。
【0085】
図22(a)に示すように、車両1が白線2と同じような色であれば線は太くなり、逆に図22(b)に示すように、車両1が地面と同じような色であれば線は細くなる。そして夫々の境界点を、最小2乗法などによって全体の境界を決める。また後方カメラ12の画像も同様な処理で境界を決定することができる。
【0086】
次に右カメラ14の画像における境界検出方法を説明する。図23に示すように最初に白線2を検出してその直線の向きを測定し、向きに対する太さを測定する。次に白線2に対してその直線の向きと太さが維持できなくなった場所を境界と決定する。図23(a)は車両1が白線2と同じような色の場合を示し、図23(b)は車両1が地面と同じような色の場合を示す。
【0087】
以上の作業を、自車1を移動させながら複数回行い、夫々の境界点を最小2乗法などによって全体の境界を決める。また図23(c)のように、白線2が自車1への映り込み、向きも太さも変わらない直線として認識してしまう場合を想定し、明らかにほかの境界点と位置がずれている場合は除外する。また左のカメラ13も同様な処理で境界を決定することができる。こうして、夫々のカメラ画像に対する境界位置を特定することができる。
【0088】
次に、自車の向きを表示映像に対して垂直にするために、左右のカメラ13,14の画像より求めた境界線の平均を自車1の傾きとして決定する。その傾きを補正した状態で、前後のカメラ11,12画像の境界より自車1の縦幅を導き出す。また左右のカメラ11,12画像の境界より自車1の横幅を導き出す。さらにその縦幅と横幅より自車1の中心位置を特定する。以上の結果と図11で設定した値により、自車1の位置、向き、大きさは特定される。以上により、自車位置と向きを簡単に調整することが可能となる。
【0089】
尚、絶対位置の調整は、相対位置調整で得られたカメラの位置によって調整してもよい。つまり左右のカメラ13,14が、車両1の縦方向に対して同じ距離についている場合には、その位置が真横になるように調整し、夫々のカメラの位置を境界線とする。
また、以下に述べるような各種の変形例も可能である。
【0090】
(1)駐車場の枠2に対して車両1を横向きに進行してキャリブレーションしてもよい。横の線が車両に対して離れるので、四角の枠からはみ出す線は必要とせず、内側に伸びた線によって角度の計算をすることができる。
(2)左右のカメラ映像に映る前方のタイヤ(もしくは後方のタイヤ)を検出し、その左右のタイヤの位置が表示映像に対して水平になるように自車の向きを決定してもよい。タイヤの検出は映像を地面に対して垂直になるように変換してから検出するとよい。これにより複雑な形の車両にも対応できるようになる。
(3)白線の消失点を検出しやすいように、予め自車に反射しないようなシートを貼り付けておいても良い。白線が自車に反射して映りこんだときにも、正確に白線の消失点を検出することができる。
(4)白線の消失位置がカメラの視野と同じである場合は、車両の位置がカメラに対して分からなくなる。車両の形が分かっているなら、前や後ろのどちらかのカメラに映った車両に対する白線の消失位置に合わせて表示すればよい。また、前と後ろの両方とも車両に対する白線の消失位置がカメラの視野と同じ場合は、左右のカメラに映る車両のタイヤの位置で合わせるとよい。これにより前後のカメラに車両が映っていないときにも対応することができる。
(5)4つのカメラ11〜14を用いる例について説明したが、カメラの数をもっと多くしてもよいし、少なくしてもよい。
(6)トップビュー画像における自車画像の位置など、絶対距離を正確に設定する必要がある場合は、前後のタイヤ間の距離や、車幅、白線の距離などを一つ設定しておき計算してもよい。また、加速度センサや車速パルスを用いて車速を出しておき、直線の移動量から距離を正確に判定してもよい。これにより距離が正確に設定できる。
(7)調整精度をあげるため、より沢山の画像を取得してもよい。
(8)白線の消失位置を、大まかにではなく車両周りすべてを連続的に計測して、車両の形状を決定し、自車周りの映像を表示してもよい。車両の形状で自車周りの映像を表示させることができる。
(9)左右のカメラ画像で、タイヤが白線をまたいだ場合は、自車の横幅が極大となる。極大となった2点をタイヤの位置とし、自車の向きを決定してもよい。
(10)最後に微調整を手動で行ってもよい。これにより微妙なずれや好みに合わせることができる。
(11)車両のハンドルの陀角、加速度センサ、ジャイロなどのパラメータなどを使用しても良い。これにより、調整時間の短縮や精度向上を図ることができる。
(12)調整しやすいように特徴点に補助線を追加してもよい。これにより駐車枠を認識しやすくなる。また計算速度を短縮することができる。また補助線は、シートとして用意してもよいし、地面に書いてもよく、補助線はどんな形態でも良い。
(13)計算誤差を減らすために夫々の特徴点を複数取得し、最小2乗法などの計算によって決め、白線が凹んでいたり薄くなっていたりしても問題ないようにしてもよい。
(14)白線枠が長方形のように角の角度が90度となっていない場合に、角度がわかっていればそれに合わせて計算してもよい。例えば平行四辺形などの角が90度となっていない場合にも対応することができる。
(15)ユーザによって好みが違うため、キャリブレーションの設定(オンオフ、程度など)を夫々ユーザが決められるようにしてもよい。
【0091】
以上説明したように本発明の実施形態によれば、駐車場の白線を利用してキャリブレーションを行うため、特定の校正パターンを必要としない。また白線の2つの特徴点とその交差する2方向の情報を利用するため、少なくとも2点の特徴点を検出するだけで済み、駐車枠から多く離れる必要がなく車両の移動量を少なくすることができる。また隣に他の車が駐車していても支障はない。また地面に描かれた直線を横切ったときの直線の消失点、出現点を境界とし、その境界により自車の大きさや向きなどの特定を自動で行うことができる。
【0092】
尚、特許請求の範囲を逸脱しない範囲内で種々の変形が可能である。
【符号の説明】
【0093】
10…撮像部
11…前方カメラ
12…後方カメラ
13…左カメラ
14…右カメラ
20…カメラデータ記憶部
21…特徴点検出部
22…空間再構成部
23…空間データバッファ
24…視点変換部
30…表示パターン記憶部
40…画像合成部
50…表示部
【技術分野】
【0001】
本発明は、車両に複数のカメラを搭載し、車両外部の映像を撮影して運転者向けに表示する車載カメラ装置において、カメラの取り付け時等にカメラキャリブレーションを行うカメラキャリブレーション装置に関する。
【背景技術】
【0002】
従来、車両に複数のカメラを搭載して、車両の周囲(前方、後方、左側、右側)を撮影した画像を取得し、各画像の視点を車両上方からの視点に変換した画像(俯瞰画像)を生成して合成し、さらに自車の画像(イラスト画など)を合成してトップビュー画像のように表示する車載カメラ装置がある。俯瞰画像を表示することで自車及び周囲の状況を把握しやすくなり、例えば駐車場に車両を入れる場合などに運転者の運転を支援することができる。尚、俯瞰画像は、自車の上方などに設定した仮想視点から見た画像であり、仮想視点の位置を変えることで俯瞰画像の見え方を変えることができる。
【0003】
ところで、従来の車載カメラ装置では、カメラ取付け時の取付け位置、取付け角度、設置高さ等は事前に設計された値に設定されているが、実際に取付けた際に誤差を生じるため、各カメラで撮影した画像を合成したときに合成画像の接合部分がずれて不連続になることがあった。このため、撮影領域内に校正パターンを配置し、撮影した校正パターンに基づいて撮影画像の座標を校正するキャリブレーション(較正)装置がある。
【0004】
例えば特許文献1の例では、4個のカメラの撮影領域に1辺の長さが1m〜1.5m程度の正方形状の校正パターンを4つ配置し、夫々のカメラで撮影した画像を合成する際に各校正パターンを利用して画像の位置合わせを行うようにしている。しかしながら、特許文献1の例では、地面等にキャリブレーション用の特殊な校正パターンを配置する必要があり、また自車の位置を特定するために正確な位置に校正パターンを配置する必要がある。
【0005】
また特許文献2には、駐車場に引いてある駐車スペース示す白線同士が交わってできる4つの角(特徴点)を検出し、それらの4つの特徴点を用いてカメラパラメータ(カメラの取付け位置、取付け角度、焦点距離等)を計算するキャリブレーション装置が記載されている。
【0006】
しかしながら、特許文献2の例では、検出する特徴点が多くなるため、ある程度離れた位置から検出する必要があり、前後左右のカメラで特徴点を検出する場合には、車の向きを変えるため移動量が多くなる。また手動で自車位置を調整する必要や、車両に特徴点を設定する必要がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2008−187566号公報
【特許文献2】特開2002−135765号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来の車載カメラ装置では、各カメラで撮影した画像を合成したときに合成画像の接合部分がずれて不連続になることがあるため、校正パターンに基づいて撮影画像の座標を校正するようにしているが、特許文献1の例では、地面等にキャリブレーション用の特殊な校正パターンを配置する必要があり、特許文献2の例では、駐車場に引いてある白線同士が交わってできる4つの角(特徴点)を検出してカメラパラメータを計算する必要がある。
【0009】
本発明はこのような事情に鑑み、駐車場の白線を利用し白線の2つの特徴点とその交差する2方向の情報を利用して各画像の位置合わせを行うことができるキャリブレーション装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
請求項1記載のカメラキャリブレーション装置は、車両に搭載した複数のカメラを有し、前記複数のカメラによって前記車両の周囲を撮影する撮像部と、前記複数のカメラで撮影した画像から駐車枠を示す直線画像を識別し、それぞれのカメラ画像から前記駐車枠の特徴点を少なくとも2つ検出する特徴点検出部と、前記特徴点検出部で検出した特徴点とその交差する2方向の情報をもとに前記各カメラの画像を合成して真上からの視点に変換した俯瞰画像を生成する視点変換部と、前記俯瞰画像から前記車両と前記直線画像との境界位置を判別して車両画像の表示枠を決定し、前記俯瞰画像に対する前記表示枠の割合及び位置が予め指定した値になるように前記俯瞰画像を変更する調整部と、前記変更した俯瞰画像をもとに計算された前記各カメラの特性を示すカメラパラメータを格納するカメラデータ記憶部と、を具備したことを特徴とする。
【発明の効果】
【0011】
本発明のカメラキャリブレーション装置によれば、駐車場の白線を利用するため特殊な校正パターンを必要とせず、また白線の2つの特徴点とその交差する2方向の情報を利用するため、キャリブレーションのために駐車枠から離れて撮影する必要がない。
【図面の簡単な説明】
【0012】
【図1】本発明の一実施形態に係るカメラキャリブレーション装置の構成を示すブロック図。
【図2】カメラの配置の一例を示す平面図。
【図3】車両を駐車場に駐車した場合を示す平面図。
【図4】駐車場の白線を撮影する際の3パターンを示す説明図。
【図5】パターンAにおいて前方、左、右のカメラで撮影した画像を示す説明図。
【図6】パターンBにおいて後方、左、右のカメラで撮影した画像を示す説明図。
【図7】パターンCにおいて後方、左、右のカメラで撮影した画像を示す説明図。
【図8】3次元空間座標系の定義を示す説明図。
【図9】調整された後の後方、左、右のカメラの画像を示す説明図。
【図10】白線枠の位置と車両の位置のずれを示す説明図。
【図11】俯瞰画像の表示領域における自車の表示枠を示す説明図。
【図12】パターンA、Bでのカメラの調整画像を示す説明図。
【図13】調整画像を長方形にするための説明図。
【図14】カメラキャリブレーションの動作を示すフローチャート。
【図15】本発明の変形例における特徴点と角度の検出を説明する説明図。
【図16】パターンDにおいて各カメラで撮影した画像を示す説明図。
【図17】パターンDにおいて白線が自車によって消える境界を示す説明図。
【図18】パターンFにおける白線枠を示す説明図。
【図19】パターンGにおける白線枠を示す説明図。
【図20】パターンGにおいて各カメラで撮影した画像を示す説明図。
【図21】直線(白線)をまたいで絶対位置を調整する際の説明図。
【図22】車両が白線又は地面と同じような色の場合を示す説明図。
【図23】自車と白線の境界の検出について説明する説明図。
【発明を実施するための形態】
【0013】
以下、この発明の一実施形態について図面を参照して説明する。
【実施例1】
【0014】
図1は、本発明の一実施形態に係るカメラキャリブレーション装置の構成を示すブロック図である。図1のカメラキャリブレーション装置は、撮像部10、カメラデータ記憶部20、特徴点検出部21、空間再構成部22、空間データバッファ23、視点変換部24、示パターン記憶部30、画像合成部40及び表示部50を備えている。
【0015】
撮像部10は、自車の周囲の映像を撮影する例えば4つのカメラ11,12,13,14を有している。4つのカメラ11,12,13,14は、車両の前方、後方、左側、右側を夫々撮影するものである。また各カメラ11〜14は、魚眼カメラ等の広角カメラを使用するとよい。各カメラ11〜14の位置については後述する。
【0016】
カメラデータ記憶部20は、各カメラ(11〜14)の特性を示すカメラパラメータを格納するカメラパラメータテーブル201を含む。カメラパラメータは、各カメラ11〜14で撮影した画像から特徴点を抽出し特徴点の情報をもとに計算によって得ることができる。カメラパラメータは、カメラの取付け位置、カメラの取付け角度、カメラのレンズ歪み補正値、カメラのレンズの焦点距離などといったカメラ特性を表わすものである。各カメラ(11〜14)で撮影した画像の複数の特徴点と、これら特徴点の3次元座標系内での位置との対応関係が取れていれば、カメラパラメータを計算によって近似的に求めることができる。尚、カメラパラメータを計算によって求める方法については、特許文献2にも記載されている。
【0017】
特徴点検出部21は、カメラ(11〜14)からの入力画像をもとに、車両周囲の例えば路面に描かれた駐車場の白線など、路面上の特徴点を検出する。空間再構成部22は、カメラパラメータをもとに3次元空間の空間モデルにマッピングした空間データを作成する。また空間再構成部22は、特徴点検出部21で検出した路面上の特徴点と車両の現在位置にもとづいて空間モデルを逐次変更する。
【0018】
空間データバッファ23は、空間再構成部22にて作成された空間データを一時的に格納する。視点変換部24は仮想視点を設定し、空間データバッファ23からの空間データを参照して任意の仮想視点から見た画像を作成する。
【0019】
表示パターン記憶部30は、画像記憶部31とマッピングテーブル32を含む。画像記憶部31は、自車を真上からみた俯瞰画像や、斜め後方等からみた俯瞰画像を記憶するものである。即ち、カメラ11〜14は自車の周囲を夫々撮影し、撮影した画像に基づいて自車の背景画像を生成するが、背景画像に表示されるのは実景のみである。したがって、背景画像の所定の位置に自車の俯瞰画像を合成するため、予め自車を真上から撮影した画像や斜め後方等からみた画像を俯瞰画像として画像記憶部31に記憶している。或いは、自車を示すイラスト画像を生成し、このイラスト画像を俯瞰画像として記憶している。撮影した画像やイラスト画像は1つに限らず、複数種記憶しておき、任意のものを選択できるようにしている。
【0020】
マッピングテーブル32は、カメラ11〜14で撮影した画像の画素データと、自車の周辺を仮想視点から見た背景画像の画素データとの対応関係を記憶したテーブルであり、撮影された画像の画素が背景画像のどの画素に対応するかを示す変換情報を記憶している。
【0021】
画像合成部40は、視点変換部24にて視点変換した画像(俯瞰画像)と、表示パターン記憶部30からの仮想視点に対応した自車画像(イラスト画等)を合成し、表示部50に表示する。また画像合成部40は、撮影部10で撮影した任意のカメラ画像を選択して表示部50に表示することができる。
【0022】
次にカメラ11〜14の配置の一例を、図2を参照して説明する。本実施形態では、4つのカメラ11〜14を配置している。図2は、車両1を真上から見た図であり、例えば車両1の前方部にカメラ11を配置し、後方部にカメラ12を配置する。また車両1の左側のサイドミラーにカメラ13を配置し、右側のサイドミラーにカメラ14を配置する。
【0023】
こうして各カメラ11〜14は、車両1の4辺に配置される。各カメラ11〜14は、車両1の全周囲を撮影するため魚眼カメラにすると良い。尚、以下の説明では、カメラ11を前方カメラ、カメラ12を後方カメラ、カメラ13を左カメラ、カメラ14を右カメラと呼ぶ。またカメラ11〜14を備えた車両1を自車1と呼ぶこともある。
【0024】
以下、本発明のカメラキャリブレーション装置の主要部(特徴点検出部21、空間再構成部22、視点変換部24、カメラデータ記憶部20、空間データバッファ23)の動作を説明する。カメラキャリブレーションのために必要とするレンズ歪補正は、特許文献2にも記載されているが、例えば温度センサと温度補正テーブルを設け、気温の上昇や下降に伴って変化するレンズ歪を補正する。またカメラは車両1の前後左右の4か所に設置されているものとする。
【0025】
<相対位置調整>
本実施形態では、先ず複数のカメラ(11〜14)を図2で説明したように車両の前後左右に取り付ける。そしてレンズ歪補正をした後に、ある程度カメラが地面の向きになるように画像を視点変換させた画像にする。そのとき、その画像の面に対する視点の位置も記憶しておく。駐車場の駐車枠は、図3に示すように駐車スペースを示す四角の枠と、横に延びた線とし、画像の取得パターンは3パターンとする。
【0026】
図3は、車両1を駐車場に駐車した場合を示す平面図である。駐車場には駐車枠2を示す白線が引かれており、駐車枠2は、前方の白線2a、後方の白線2b、左側の白線2c、右側の白線2dで構成されている。次に駐車場の駐車枠2内に車両1をある程度真っ直ぐに入れて複数のカメラ(11〜14)で駐車場の白線(2a〜2d)を撮影し、3パターン(パターンA,B,C)の白線画像を取得する。
【0027】
パターンAの画像とは、図4(a)で示すように車両1を駐車枠2の後方にずれた位置に移動させ、前方カメラ11、左カメラ13及び右カメラ13で駐車枠2を撮影した画像を意味する。パターンCの画像とは、図4(c)で示すように車両1の前方が駐車枠2の白線2aを完全に越えた位置にくるように移動させて撮影した画像を意味する。またパターンBの画像とは、図4(b)で示すように車両1がパターンAとパターンCの間の位置にくるように移動させて撮影した画像を意味する。尚、図4以降においては、便宜上、駐車枠2の白線を黒い太い線で示す。
【0028】
次に3パターンの画像から地面に描かれた白線(駐車枠を示す直線画像)を検出して特徴点を検出するが、特徴点(白線)を検出するには色々な手法がある。例えば撮影した画像データを、白線を検出しやすいようにモノクロ画像にして入力し、画像プロセッサによってエッジ抽出処理を行う。即ちカラー画像データをグレースケールデータ(モノクロ画像)に変換し、グレースケールデータの輝度平均値や、輝度の中央値等の閾値を設定する。そして、画素間の輝度の勾配等が閾値未満であるときはエッジとして検出せず、閾値以上であるときはエッジとして検出する。或いはグレースケールデータに変換した画像データの各画素の輝度と、各画素に隣接する画素の画素値の差分を検出し、差分の大きい画素をエッジとして検出する。これによりエッジの座標が算出され、このような方法により地面に描かれた白線を検出する。
【0029】
図5(a),(b),(c)は、パターンAにおいて前方カメラ11、左カメラ13、右カメラ14で撮影した画像を示す。図6(a),(b),(c)は、パターンBにおいて後方カメラ12、左カメラ13、右カメラ14で撮影した画像を示す。図7(a),(b),(c)は、パターンCにおいて後方カメラ12、左カメラ13、右カメラ14で撮影した画像を示す。図5〜7において、隣に別の車両が駐車していた場合は、隣の車両の画像も取得されるが特に支障はない。
【0030】
図5のパターンAの画像からは、前方カメラ11で撮影した特徴点A1,A2と、その交差する2つの方向を検出する。つまり特徴点A1,A2の検出だけでなく、特徴点において白線が交差する2つの方向を検出する。また左方カメラ13で撮影した特徴点A1と、右カメラ14で撮影した特徴点A2を検出する。特徴点A1は、白線2aと白線2cの交点に相当し、特徴点A2は、白線2aと白線2dの交点に相当する。
【0031】
図6のパターンBの画像からは、後方カメラ12で撮影した特徴点B1,B2を検出する。また左カメラ13で撮影した特徴点A1とその交差する2つの方向、及び特徴点B1を検出し、右カメラ14で撮影した特徴点A2とその交差する2つの方向、及び特徴点B2を検出する。特徴点B1は、白線2bと白線2cの交点に相当し、特徴点B2は、白線2bと白線2dの交点に相当する。
【0032】
図7のパターンCの画像からは、後方カメラ12で撮影した特徴点B1,B2とその交差する2つの方向を検出する。また左カメラ13で撮影した特徴点A1とその交差する2つの方向を検出し、右カメラ14で撮影した特徴点A2とその交差する2つの方向を検出する。尚、図5〜図7において、特徴点をそれぞれ円で囲って示しているが、太い円は特徴点とその交差する2つの方向を検出することを意味し、細い点線の円は特徴点のみを検出することを意味する。
【0033】
またパターンA,B,C(図4)で示すように車両1が移動したとき、各カメラの位置と各特徴点の相対位置が変わるため、特徴点とその交差する2つの方向を検出する場合は、特徴点から離れ過ぎない位置、つまり交差する2つの方向が分かりやすい位置で検出する。例えば、パターンB(図6)とパターンC(図7)でそれぞれ特徴点B1,B2を検出した場合、パターンCの方が交差する2つの方向を把握しやすいため、パターンBでは特徴点B1,B2の交差する2つの方向は検出しない。尚、特徴点A1,A2,B1,B2を検出する場合は、白線の中心同士が交わる点を特徴点として検出しているが、より精度を上げるためには、白線の中心ではなく白線の端を検出して特徴点や交差する2つの方向を求めるとよい。
【0034】
次に各カメラ(11〜14)で撮影した画像を真上からの視点に変換する。先ず前方カメラ11の画像は、パターンAの2つの特徴点A1,A2とその交差する2つの方向より、夫々の角度が直角になるように計算する。
【0035】
ここで、先ず3次元空間座標系を定義する。例えば車両1の後面に平行な路面上の直線をx軸、車両1の後面に垂直な路面上の直線をy軸、路面から車両方向に垂直に伸びる軸をz軸とする3次元空間座標系を定義する。本座標系においてカメラの向きは、カメラの位置を(0,0,0)とした場合、x軸に対して回転する角度をα、y軸に対して回転する角度をβとし、z軸に対して回転する角度をγとして表すものとする。以下、3次元空間座標系もしくは3次元空間は、本定義による3次元空間座標系を指すものとする。
【0036】
図8のように座標系を定義した場合、夫々の軸の回転計算は以下のようになる。
【0037】
x軸中心回転は、
x’=x
y’=y・cos(α)+z・sin(α)
z’=−y・sin(α)+z・cos(α)
y軸中心回転は、
x’=x・cos(β)+z・sin(β)
y’=y
z’=−x・sin(β)+z・cos(β)
z軸中心回転は、
x’=x・cos(γ)+y・sin(γ)
y’=-x・sin(γ)+y・cos(γ)
z’=z
画像はカメラの向きが、ある程度地面向きになるように、視点変換された画像(−z方向に地面がある)にする。そのため検出する特徴点の交差する2つの方向はある程度直角になっている。カメラの向きを−z方向として画像の配置を図8の点線のように配置する。画像はz軸に対して垂直にする。
【0038】
上記の位置の画像より、特徴点とその交差する2つの方向を検出した座標を計算する。2方向は適当な長さにして2つの座標とし、特徴点とあわせて3座標にする。夫々の座標の角度abc (bが特徴点)が−z方向に見て直角になるようなx軸回転角度とy軸回転角度を計算する。
【0039】
上記のx軸中心回転とy軸中心回転の計算式より回転後の座標は、
x’=x・cos(β)−y・sin(α)・sin(β)+z・cos(α)・sin(β)
y’=y・cos(α)+z・sin(α)
z’=−x・sin(β)−y・sin(α)・cos(β)+z・cos(α)・cos(β)
となる。その座標がカメラ視点から−z方向に見て直角に見えるためには、
X=x/(−z)、Y=y/(−z)
に変換した座標(X,Y)による直線abと直線bcが直角になればよいので、直線abと直線bcの+x方向に対する傾き(2次元の直線の式であるy=ax+bのa)は、
直線ab : (Y(a)−Y(b))/(X(a)−X(b))
直線bc : (Y(c)−Y(b))/(X(c)−X(b))
となり、その2つの傾きを乗算した値が−1となるのが直角である。
【0040】
その計算式はf1(α,β) =0と表し、もうひとつの特徴点から導き出した計算式をf2(α,β)=0と表す。そして、非線形連立方程式(ニュートン法)などを用いてαとβの解を出す。非線形連立方程式(ニュートン法)は一般的であるため簡単に説明する。
【0041】
2つの解を導き出すニュートン法の方程式は以下のようになる。
【数1】
【0042】
「δf1 / δα」とは関数f1(α,β)=0をαで偏微分した結果である。また、ΔαとΔβが導き出される解であるが、最初に設定したαとβに対する差分であり、誤差を含んでいる。αとβは0に近い値になるように地面の向きを設定しているので、最初はαとβを0として値を代入し計算する。そして得られたΔαとΔβを元の値のαとβに加算し、再計算させてΔαとΔβがほぼ0となるように何回か計算し収束させる。
【0043】
αとβは0に近い値になるように地面の向きを設定しているので、α,βは−45度以上+45度以下(もっと広くしてもよい)として計算を収束させる(上記の方法では複数の収束解があるため制限を入れる)。この計算方法によりx軸回転角度とy軸回転角度を導き出す。
【0044】
同様に、後方カメラ12の画像は、パターンCでの2つの特徴点B1,B2とその交差する2つの方向より、夫々の角度が直角になるように計算する。また左カメラ13の画像は、パターンBの前方の特徴点A1とその交差する2つの方向、及びパターンCの前方の特徴点A1とその交差する2つの方向より、夫々の角度が直角になるように計算する。さらに、右カメラ14の画像は、パターンBの前方の特徴点A2とその交差する2つの方向、及びパターンCの前方の特徴点A2とその交差する2つの方向より、夫々の角度が直角になるように計算する。こうして計算結果をもとに、画像を真上からの視点に変換する。
【0045】
次にパターンBでの駐車場枠2に向きを合わせる。つまり、地面の真上から見た画像に変換しただけでは、夫々の特徴点A1,A2,B1,B2の角度が直角になるだけで、向きはばらばらである。したがって、向きを駐車場枠2に合わせるため、後方カメラ12の画像は、パターンCの2つの特徴点B1,B2により、その特徴点が真横になるように調整(z軸回転)する。後方カメラ12は、前方カメラ11に対して180度回転しているので、左側を右側、右側を左側になるように調整する。
【0046】
左カメラ13の画像は、パターンBの2つの特徴点A1,B1により、その特徴点が真縦になるように、前方を上側、後方を下側になるように調整する。右カメラ13の画像は、パターンBの2つの特徴点A2,B2により、その特徴点が真縦になるように、前方を上側、後方を下側になるように調整する。尚、前方カメラ11の画像は、パターンBでは特徴点が取得できていないので向きの調整は行わない。こうして調整された後の後方カメラ12、左カメラ13及び右カメラ14の画像は、図9(a),(b),(c)のようになる。
【0047】
次に、パターンBでの左カメラ画像の2つの特徴点A1,B1間の長さと、右カメラ画像の2つ特徴点A2,B2間の長さが同じになるように、左右のカメラ13,14の拡大率を決定する。さらにパターンBでの後方カメラ12の2つの特徴点B1,B2と、左右のカメラ13,14の後方の特徴点B1,B2が一致するように、またパターンCでの後方カメラ12の2つの特徴点B1,B2と左右のカメラ13,14の後方の特徴点B1,B2が一致するように後方のカメラの拡大率を決定する。
【0048】
もしくは、白線枠2の縦横比を入力しておいて、パターンBでの後方カメラ12の2つの特徴点B1,B2間の長さと左カメラ画像の2つの特徴点A1,B1間の長さ、または、右カメラ画像の2つ特徴点A2,B2間の長さが入力しておいた縦横比になるように、後方カメラ12の拡大率を決定する。
【0049】
左右のカメラ13,14と後方カメラ12での拡大率により、視点の相対的な高さが決定されるので、その視点の高さにしたがって、パターンBでの後方カメラ12の2つの特徴点B1,B2と左右のカメラ13,14の後方の特徴点B1,B2が一致するように地面方向に対して水平に移動し、左右のカメラ13,14と後方カメラ12の相対的な視点位置を決定する。
【0050】
次にパターンAでの2つの特徴点A1,A2の画像と左右のカメラ13,14の前方の特徴点A1,A2画像が一致するように、前方カメラ11の地面方向に対する回転角度と拡大率、及び相対的な視点位置を決定する。こうして決定した白線枠2の画像は図10のようになる。
【0051】
しかしながら、図10から分かるが、この図では駐車場の白線枠2が垂直になっているだけで、車両1に対しては必ずしも垂直になっていない。また線の長さを駐車場の白線枠2の長さにあわせているので、車両1の大きさが大きかったり小さかったりする。また白線枠2の位置も車両1の位置に対して左にずれていたり前にずれていたりする。また車両1と白線枠2の境界がはっきりしないので、白線枠2映像に車両が写りこむ。そこで、次に絶対位置調整を行う。
【0052】
<絶対位置調整>
図10では、自車1の大きさ、位置、向きが特定されていない状態にあるため、この状態から図11のように、俯瞰画像の表示領域Rに対して自車の表示枠が予め決められた範囲内になるように調整する。図11において、太い枠で示す領域Rは、俯瞰画像の表示領域であり、横幅wと縦幅hで規定される。また自車の表示枠は、縦幅をaとし、横方向の中心位置をx、縦方向の中心位置をyとしている。
【0053】
先ず図12のように、パターンA,Bから車両1と地面の境界を検出する。検出方法は白線2が自車1によって消失する位置(境界位置)を特定する方法とする。駐車場の白線2が直線で太さが変わらない領域が白線の領域で、その先端が境界となる。図12(a)は前方カメラ11のパターンAでの調整画像(特徴点の角度を直角に調整し、特徴点が真横になるように調整し、ほかのカメラに対する相対位置を調整した画像)であり、(b)は後方カメラ12のパターンBでの調整画像である。(c)は左カメラ13のパターンBでの調整画像であり、(d)は右カメラ14のパターンBでの調整画像である。誤差を吸収するためにA,B,Cの夫々のパターンでの調整画像を取得してもよい。
【0054】
それらの調整画像から、つまり図12(a)〜(d)の画像から境界位置を2点ずつ検出する。図12(a)では、境界位置をそれぞれ円A3,A4で示し、(b)では円A5,A6で示す。また、図12(c)では、境界位置を円B3,B4で示し、(d)では円B5,B6で示す。
【0055】
そして、検出した左右のカメラ13,14の2点の境界点から境界線を作り出す。そして境界線が左右ともに真縦に一番近い角度になるように絶対角度を計算し、夫々のカメラ11,12,13,14の調整画像の向きや位置を調整する。また、前後のカメラ11,12の画像を用いて行ってもよい。この場合は、境界線が前後ともに真横に一番近い角度になるように絶対角度を計算し、夫々のカメラ11,12,13,14の調整画像の向きや位置を調整する。
【0056】
上述した調整では境界線が夫々斜めになっている可能性があるので、長方形にするために夫々のカメラ(11〜14)画像における4つの境界線より四角形を作り出す。例えば、図13で示すように、前方カメラ11による境界線が直線X1、後方カメラ11による境界線が直線X2、左カメラ13による境界線が直線Y1、右カメラ14による境界線が直線Y2であったと仮定し、各境界線の交点を求め、各交点におけるx軸方向とy軸方向の夫々の最小値と最大値で規定される長方形(太い点線で示す)を作成する。
【0057】
この長方形は、自車のイラスト画像等を表示する表示枠となり、俯瞰画像に対する表示枠の割合及び位置が予め指定した値になるように俯瞰画像を変更し、俯瞰画像が予め設定した表示領域R(図11)に収まるように調整する。空間再構成部22は俯瞰画像を変更する調整部を構成する。
【0058】
こうして、カメラ位置、カメラの向き決定して、カメラデータ記憶部20にカメラパラメータが格納される。
【0059】
図14は、以上の動作を示すフローチャートである。図14において、ステップS1は、カメラキャリブレーションの開始ステップであり、ステップS2では各カメラ(11〜14)を車両の前後・左右に取り付ける。次にステップS3では、駐車場の白線画像をA,B,Cの3パターンで取得する。ステップS4では、白線を検出しやすいように画像を調整(グレースケールデータに変換)し、夫々必要な特徴点を検出する。ステップS5では、各カメラで地面方向を−z方向として夫々の特徴点とその交差する2つの方向により、x軸回転角度とy軸回転角度を計算する。またステップS6では、白線の枠に合せて夫々のカメラのz軸回転角度を計算する。
【0060】
次にステップS7では、左右のカメラ13,14での白線の縦軸長さが同じになるように、左右のカメラ13,14の拡大率を計算する。ステップS8では、パターンBとパターンCでの後方カメラ12の特徴点より後方カメラ12の拡大率を計算する。ステップS9では、パターンBでの後方カメラ12の特徴点の位置が左右のカメラ13,14と一致するように、左右と後方カメラの相対位置を計算する。そしてステップS10では、パターンAでの前方カメラ11の特徴点の位置が左右のカメラ13,14と一致するように、左右と前方カメラの相対位置を計算する。
【0061】
次にステップS11では、白線が自車によって消失する位置(自車から現れる位置)を検出する。ステップS12では、検出された消失位置から境界線を作成する。またステップS13では左右のカメラ13,14の境界線の平均が、真縦になるように絶対角度を計算し、夫々のカメラで撮影した画像の向きや位置を補正する。ステップS14では、前後左右の境界線より夫々の境界線の交点のx軸とy軸の最小値、最大値を計算し、その領域(表示枠)を車両の表示領域とする。ステップS15では、予め設定しておいた車両表示領域に従って、夫々の画像の拡大率、位置を決定し、ステップS16で終了する。
【0062】
こうして、白線枠2内に車両1が駐車されたときに、俯瞰画像の表示領域R内に方形状の白線枠2と、白線枠2内に駐車された自車1のイラスト画像が表示され、各カメラ11〜14で撮影された画像が正常に合成されて、繋ぎ目が段違いになるのをなくすことができる。また各カメラ11〜14では少なくとも2つの特徴点を検出すればよいため、キャリブレーションが簡単になる。
【0063】
次に本発明の実施形態の変形例について説明する。各カメラ(11〜14)の取り付け位置が距離的に分かっている場合は、カメラの取付け向きだけが分からない状態になる。その場合は、車両1を移動して夫々のカメラ(11〜14)について2つの特徴点とその交差する2つの方向を検出しなくても済む。
【0064】
即ち、図15(a)のパターンDのように、前後のカメラ11,12において、夫々で横切る白線2a,2bが見え、さらに左右のカメラ13,14で2つの特徴点と夫々に対する交差する2つの方向を見つけられる状態であれば車両を移動しなくてもよい。或いは、図15(b)のパターンEのように、左右のカメラ13,14の夫々で縦の白線2c,2dが見え、さらに前後のカメラ11,12で2つの特徴点と夫々に対する交差する2つの方向を見つけられる状態であれば車両を移動しなくてもよい。
【0065】
図16を参照して、パターンDについて説明する。図16(a)〜(d)は、パターンDにおいて各カメラ11〜14で撮影した画像を示す。パターンDの画像からは、前方カメラ11で撮影した特徴点A11,A12と、後方カメラ12で撮影した特徴点B11,B12を検出する。また左カメラ13で撮影した特徴点A11,B11と、右カメラ14で撮影した特徴点A12,B12と夫々の交差する2つの方向を検出する。
【0066】
次に左カメラ13と右カメラ14の画像での2つの特徴点とその交差する2つの方向が夫々直角になるように前述した計算式に従って回転処理を行う。また地面に対して垂直方向の回転を、左右のカメラ13,14の画像の白線が真縦になるように回転させる。次に左右のカメラ13,14の高さより、真縦にした白線の長さがわかる。その白線の端の特徴点と左右のカメラ13,14の位置関係より、前後のカメラ11,12に映し出されている横線の特徴点の間隔を計算する。前後のカメラ11,12に映し出されている横線の特徴点と前後のカメラ11,12の位置より、前後のカメラ11,12の向きを特定する。計算式は以下のようになる。
【0067】
自車1の左前の特徴点を例にする。前方カメラ11の回転前の左側の特徴点位置を(x,y,z)とし、前方カメラ11の取り付け位置に対する左のカメラ13での計算結果の特徴点位置を(xa,ya,za)とする。特徴点(x,y,z)をx軸回転し、y軸回転し、z軸回転した座標を(xb,yb,zb)とすると、xb,yb,zbはα, β, γの関数である。
【0068】
(xa,ya,za)と(xb,yb,zb)は前方カメラ11に対する座標となっているため、カメラ視点から−z方向に見た場合の頂点が同じに見えるための計算式は、
xa/(−za) = xb/(−zb)
ya/(−za) = yb/(−zb)
となる。そして、2つの式よりf1(α, β, γ)=0とf2(α, β, γ)=0の式を作成する。非線形連立方程式(ニュートン法)でα, β, γを導き出すためにはもうひとつ式が必要であるため、自車1の右前の特徴点も利用し、もうひとつの式を用意する。その3式を利用し、非線形連立方程式を解いてα, β, γを得る。
【0069】
αとβは0に近い値になるように地面の向きを設定していて、また前方カメラ11に関してはz軸回転もほとんどしていない状態なので、α,β,γは−45度以上+45度以下(もっと広くしてもよい)として計算を収束させる(上記の方法では複数の収束解があるため)。この計算方法によりx軸回転角度とy軸回転角度とz軸回転角度を導き出す。
【0070】
特定されたカメラの向きは夫々白線に対しての向きである。そのため、カメラの取付け位置より、白線が車両に対してどれだけ地面の垂直方向が回転しているかを計算する。次に車両1の真上から見た車両と地面の境界に対してカメラ位置がどれだけ離れているか分かっているなら、その距離に従って自車画像の表示位置と、外部映像の表示位置の境界線を決定する。もし分かっていなければ、図17に示すように、白線が自車1によって消える境界を夫々のカメラ11〜14に対して最低1点見つけて、その点を自車画像の表示位置と外部映像の表示位置の境界線と決定する。
【0071】
また、カメラの取り付け位置が特定されている状態で、車両1が小さく、白線2の角度を車両側に向かう白線により検出できるならなら、図18のパターンFのように四角枠のみの白線を利用することもできる。
【0072】
つまり図4や図15のように、四角の白線枠2から外側に延びる白線を必要とするのは、角度の精度を上げるためである。したがって、内側に延びる白線でも角度の計算はできるため、車両1が白線枠2に対してある程度小さければ、内側に向かって延びる線でも角度計算の精度は出せる。
【0073】
さらに、最近の駐車場は図19に示すように、四角の枠になっておらず2重線になっている場合がある。このような場合(パターンG)では、カメラの取り付け位置が特定されているなら、図19の位置に自車1を設置して調整する。そして図20のように特徴点を検出する。
【0074】
図20のように、特徴点と交差する2つの方向が検出できるのは後方カメラ12の画像のみである。前方カメラ11の画像では特徴点A21,A22がカーブになっているため、角度が正確に検出できない。後方カメラ12での特徴点B21〜B24同士は同じライン上にあるため、それらの特徴点を結んだ線から2方向を特定できることになる。
【0075】
もしくは、前方カメラ11の画像での特徴点A21,A22の接線と、特徴点A23〜A26の直線との交点(4点あるが2点あれば計算可能)を仮想的な特徴点とし、特徴点A21,A22の接線と特徴点A23〜A26の直線を交差する2つの方向としてもよい。
【0076】
そのため、後方カメラ12の画像の2つの特徴点B21,B24とその2方向、又は特徴点B22,B23とその2方向により、2の特徴点の2方向のなす角度が直角になるように非線形連立方程式(ニュートン法)などでx軸回転角度、y軸回転角度を決定する。次に2つの特徴点が真横(但し左側と右側が逆)になるようにz軸回転角度を決定する。
【0077】
次に補正された後方カメラ12での4つの特徴点B21〜B24と、前方カメラ11での4つの線上の特徴点A23〜A26(図では自車との境界に見えるが、境界である必要はなく線上にあればよい)の横方向(x)の座標が同じ位置に見えるように、非線形連立方程式(ニュートン法)などで前方カメラ11のx軸回転角度、y軸回転角度、z軸回転角度を決定する(前カメラと後ろカメラの高さを考慮する)。もしくは前述した仮想的な特徴点と交差する2つの方向により前方カメラ11のx軸回転角度、y軸回転角度、z軸回転角度を決定してもよい。
【0078】
精度を上げるために、α、β、γの関数のひとつは、前方カメラ11での、線の端のカーブになっている部分の2つの特徴点A21,A23を検出し(2つのカーブ位置と直線が接する位置が2つの特徴点)、その検出した2つの特徴点の縦(y)の位置が同じになるような計算式にしてもよい。また、その2つの特徴点A21,A22の横(x)の位置が、後方カメラ12の左右の夫々2つの特徴点の中点(B21とB22の中点及びB23とB24の中点)と同じになるような計算式にしてもよい。
【0079】
前方カメラ11と後方カメラ12の向きと位置が特定できたので、前後のカメラ11,12での車両1の左側の白線の端の特徴点A23,B21を左カメラ13でのカメラ位置基準になるように計算する。左カメラ13での特徴点の検出結果を、左カメラ13の位置を基準にx軸、y軸、z軸回転させた座標と左カメラ13から見て同じ位置に見えるようにx軸、y軸、z軸回転の夫々の角度を計算する。計算方法は、パターンDで説明した前後のカメラ11,12を左右のカメラ13,14に置き換えたのと同じである。同様に右側も計算させる。車両の後方の特徴点は2重線のどちら側でもよい。
【0080】
もしくは左カメラ13での特徴点B21,B22を2つの特徴点とし、それぞれの2方向は白線の方向ともう一つの特徴点(特徴点をB21とした場合B22、特徴点をB22とした場合B21)の方向として、x軸回転角度、y軸回転角度を決定し、次に白線が真縦になるようにz軸回転角度を決定してもよい。右カメラ14も同様に、特徴点B23,B24とその交差する2つの方向を検出し、x軸回転角度、y軸回転角度、z軸回転角度を決定してもよい。
【0081】
特定されたカメラの向きは夫々白線に対しての向きである。そのためカメラの取り付け位置より、白線が車両に対してどれだけ地面の垂直方向に回転しているかを計算する。次に、車両1の真上から見た車両と地面の境界に対してカメラ位置がどれだけ離れているか分かっているなら、その距離に従って自車画像の表示位置と、外部映像の表示位置の境界線を決定する。もし分かっていなければ、前後のカメラ11,12は、白線が自車によって消える境界を夫々のカメラに対して最低1点見つけて(複数を平均や、信用のある位置にある方でもいい)、その点を自車画像の表示位置と外部映像の表示位置の境界線と決定する。左右のカメラ13,14に対しては、車両1のタイヤと地面の境界や、輪留めの車両に対する消失位置を境界線として決定する。
【0082】
またパターンGのような場合には、車両1を白線に対して横向きにし、2つの特徴点とその角度(2方向)を検出して計算してもよい。また白線の長さや縦横比が分かっているなら、それを計算式に入れて計算量を削減してもよい。
【0083】
また、絶対位置の調整については、図21のように直線(白線2)をまたいで調整してもよい。この場合、白線2を横切って消失点、出現点を検出するが、白線2を横切って境界を検出するには、車両1の進行方向に対して横方向が望ましい。また車両1の進行は極力舵角をもたないように直線的に移動することが望ましい。それを前提に先ず前方カメラ11での境界検出方法を説明する。
【0084】
図21のように最初に白線2を検出して、進行方向と思われる方向に対する白線2の太さを測定する。その測定を進行方向と思われる方向に対して垂直方向に、適当な距離をもたせ複数個所行う。進行方向が回転していなければ、取得した白線2の進行方向に対する太さは変わらない。そのため、さらに前進した場合、夫々の位置での白線2の太さが変わる位置が自車1の境界となる。
【0085】
図22(a)に示すように、車両1が白線2と同じような色であれば線は太くなり、逆に図22(b)に示すように、車両1が地面と同じような色であれば線は細くなる。そして夫々の境界点を、最小2乗法などによって全体の境界を決める。また後方カメラ12の画像も同様な処理で境界を決定することができる。
【0086】
次に右カメラ14の画像における境界検出方法を説明する。図23に示すように最初に白線2を検出してその直線の向きを測定し、向きに対する太さを測定する。次に白線2に対してその直線の向きと太さが維持できなくなった場所を境界と決定する。図23(a)は車両1が白線2と同じような色の場合を示し、図23(b)は車両1が地面と同じような色の場合を示す。
【0087】
以上の作業を、自車1を移動させながら複数回行い、夫々の境界点を最小2乗法などによって全体の境界を決める。また図23(c)のように、白線2が自車1への映り込み、向きも太さも変わらない直線として認識してしまう場合を想定し、明らかにほかの境界点と位置がずれている場合は除外する。また左のカメラ13も同様な処理で境界を決定することができる。こうして、夫々のカメラ画像に対する境界位置を特定することができる。
【0088】
次に、自車の向きを表示映像に対して垂直にするために、左右のカメラ13,14の画像より求めた境界線の平均を自車1の傾きとして決定する。その傾きを補正した状態で、前後のカメラ11,12画像の境界より自車1の縦幅を導き出す。また左右のカメラ11,12画像の境界より自車1の横幅を導き出す。さらにその縦幅と横幅より自車1の中心位置を特定する。以上の結果と図11で設定した値により、自車1の位置、向き、大きさは特定される。以上により、自車位置と向きを簡単に調整することが可能となる。
【0089】
尚、絶対位置の調整は、相対位置調整で得られたカメラの位置によって調整してもよい。つまり左右のカメラ13,14が、車両1の縦方向に対して同じ距離についている場合には、その位置が真横になるように調整し、夫々のカメラの位置を境界線とする。
また、以下に述べるような各種の変形例も可能である。
【0090】
(1)駐車場の枠2に対して車両1を横向きに進行してキャリブレーションしてもよい。横の線が車両に対して離れるので、四角の枠からはみ出す線は必要とせず、内側に伸びた線によって角度の計算をすることができる。
(2)左右のカメラ映像に映る前方のタイヤ(もしくは後方のタイヤ)を検出し、その左右のタイヤの位置が表示映像に対して水平になるように自車の向きを決定してもよい。タイヤの検出は映像を地面に対して垂直になるように変換してから検出するとよい。これにより複雑な形の車両にも対応できるようになる。
(3)白線の消失点を検出しやすいように、予め自車に反射しないようなシートを貼り付けておいても良い。白線が自車に反射して映りこんだときにも、正確に白線の消失点を検出することができる。
(4)白線の消失位置がカメラの視野と同じである場合は、車両の位置がカメラに対して分からなくなる。車両の形が分かっているなら、前や後ろのどちらかのカメラに映った車両に対する白線の消失位置に合わせて表示すればよい。また、前と後ろの両方とも車両に対する白線の消失位置がカメラの視野と同じ場合は、左右のカメラに映る車両のタイヤの位置で合わせるとよい。これにより前後のカメラに車両が映っていないときにも対応することができる。
(5)4つのカメラ11〜14を用いる例について説明したが、カメラの数をもっと多くしてもよいし、少なくしてもよい。
(6)トップビュー画像における自車画像の位置など、絶対距離を正確に設定する必要がある場合は、前後のタイヤ間の距離や、車幅、白線の距離などを一つ設定しておき計算してもよい。また、加速度センサや車速パルスを用いて車速を出しておき、直線の移動量から距離を正確に判定してもよい。これにより距離が正確に設定できる。
(7)調整精度をあげるため、より沢山の画像を取得してもよい。
(8)白線の消失位置を、大まかにではなく車両周りすべてを連続的に計測して、車両の形状を決定し、自車周りの映像を表示してもよい。車両の形状で自車周りの映像を表示させることができる。
(9)左右のカメラ画像で、タイヤが白線をまたいだ場合は、自車の横幅が極大となる。極大となった2点をタイヤの位置とし、自車の向きを決定してもよい。
(10)最後に微調整を手動で行ってもよい。これにより微妙なずれや好みに合わせることができる。
(11)車両のハンドルの陀角、加速度センサ、ジャイロなどのパラメータなどを使用しても良い。これにより、調整時間の短縮や精度向上を図ることができる。
(12)調整しやすいように特徴点に補助線を追加してもよい。これにより駐車枠を認識しやすくなる。また計算速度を短縮することができる。また補助線は、シートとして用意してもよいし、地面に書いてもよく、補助線はどんな形態でも良い。
(13)計算誤差を減らすために夫々の特徴点を複数取得し、最小2乗法などの計算によって決め、白線が凹んでいたり薄くなっていたりしても問題ないようにしてもよい。
(14)白線枠が長方形のように角の角度が90度となっていない場合に、角度がわかっていればそれに合わせて計算してもよい。例えば平行四辺形などの角が90度となっていない場合にも対応することができる。
(15)ユーザによって好みが違うため、キャリブレーションの設定(オンオフ、程度など)を夫々ユーザが決められるようにしてもよい。
【0091】
以上説明したように本発明の実施形態によれば、駐車場の白線を利用してキャリブレーションを行うため、特定の校正パターンを必要としない。また白線の2つの特徴点とその交差する2方向の情報を利用するため、少なくとも2点の特徴点を検出するだけで済み、駐車枠から多く離れる必要がなく車両の移動量を少なくすることができる。また隣に他の車が駐車していても支障はない。また地面に描かれた直線を横切ったときの直線の消失点、出現点を境界とし、その境界により自車の大きさや向きなどの特定を自動で行うことができる。
【0092】
尚、特許請求の範囲を逸脱しない範囲内で種々の変形が可能である。
【符号の説明】
【0093】
10…撮像部
11…前方カメラ
12…後方カメラ
13…左カメラ
14…右カメラ
20…カメラデータ記憶部
21…特徴点検出部
22…空間再構成部
23…空間データバッファ
24…視点変換部
30…表示パターン記憶部
40…画像合成部
50…表示部
【特許請求の範囲】
【請求項1】
車両に搭載した複数のカメラを有し、前記複数のカメラによって前記車両の周囲を撮影する撮像部と、
前記複数のカメラで撮影した画像から駐車枠を示す直線画像を識別し、それぞれのカメラ画像から前記駐車枠の特徴点を少なくとも2つ検出する特徴点検出部と、
前記特徴点検出部で検出した特徴点とその交差する2方向の情報をもとに前記各カメラの画像を合成して真上からの視点に変換した俯瞰画像を生成する視点変換部と、
前記俯瞰画像から前記車両と前記直線画像との境界位置を判別して車両画像の表示枠を決定し、前記俯瞰画像に対する前記表示枠の割合及び位置が予め指定した値になるように前記俯瞰画像を変更する調整部と、
前記変更した俯瞰画像をもとに計算された前記各カメラの特性を示すカメラパラメータを格納するカメラデータ記憶部と、
を具備してなるカメラキャリブレーション装置。
【請求項2】
前記撮像部は、前記車両の前方、後方、左側、右側を撮影する4つのカメラを搭載したことを特徴とする請求項1記載のカメラキャリブレーション装置。
【請求項3】
前記撮像部は、前記車両を移動し白線で区分された駐車枠のある場所を異なる位置で撮影し、前記特徴点検出部は、それぞれの位置で前記特徴点を検出することを特徴とする請求項1記載のカメラキャリブレーション装置。
【請求項4】
前記撮像部は、白線で区分された駐車枠のある場所を撮影し、前記特徴点検出部は、前記白線が交差する2点の特徴点とその交差する2方向を検出することを特徴とする請求項1記載のカメラキャリブレーション装置。
【請求項5】
前記調整部は、前記車両の4辺と前記直線画像との境界位置をもとに境界線を設定し、前記境界線の交点座標の最小値と最大値で規定される領域を前記車両画像の表示枠として決定することを特徴とする請求項1記載のカメラキャリブレーション装置。
【請求項6】
前記調整部は、前記車両の移動により前記直線画像が前記車両によって消失する位置又は車両から出現する位置を前記境界位置として判別することを特徴とすることを請求項5記載のカメラキャリブレーション装置。
【請求項7】
前記調整部は、前記車両が前記直線画像上を通過する際の前記直線画像の太さの変化をもとに前記境界位置を判別することを特徴とする請求項6記載のカメラキャリブレーション装置。
【請求項1】
車両に搭載した複数のカメラを有し、前記複数のカメラによって前記車両の周囲を撮影する撮像部と、
前記複数のカメラで撮影した画像から駐車枠を示す直線画像を識別し、それぞれのカメラ画像から前記駐車枠の特徴点を少なくとも2つ検出する特徴点検出部と、
前記特徴点検出部で検出した特徴点とその交差する2方向の情報をもとに前記各カメラの画像を合成して真上からの視点に変換した俯瞰画像を生成する視点変換部と、
前記俯瞰画像から前記車両と前記直線画像との境界位置を判別して車両画像の表示枠を決定し、前記俯瞰画像に対する前記表示枠の割合及び位置が予め指定した値になるように前記俯瞰画像を変更する調整部と、
前記変更した俯瞰画像をもとに計算された前記各カメラの特性を示すカメラパラメータを格納するカメラデータ記憶部と、
を具備してなるカメラキャリブレーション装置。
【請求項2】
前記撮像部は、前記車両の前方、後方、左側、右側を撮影する4つのカメラを搭載したことを特徴とする請求項1記載のカメラキャリブレーション装置。
【請求項3】
前記撮像部は、前記車両を移動し白線で区分された駐車枠のある場所を異なる位置で撮影し、前記特徴点検出部は、それぞれの位置で前記特徴点を検出することを特徴とする請求項1記載のカメラキャリブレーション装置。
【請求項4】
前記撮像部は、白線で区分された駐車枠のある場所を撮影し、前記特徴点検出部は、前記白線が交差する2点の特徴点とその交差する2方向を検出することを特徴とする請求項1記載のカメラキャリブレーション装置。
【請求項5】
前記調整部は、前記車両の4辺と前記直線画像との境界位置をもとに境界線を設定し、前記境界線の交点座標の最小値と最大値で規定される領域を前記車両画像の表示枠として決定することを特徴とする請求項1記載のカメラキャリブレーション装置。
【請求項6】
前記調整部は、前記車両の移動により前記直線画像が前記車両によって消失する位置又は車両から出現する位置を前記境界位置として判別することを特徴とすることを請求項5記載のカメラキャリブレーション装置。
【請求項7】
前記調整部は、前記車両が前記直線画像上を通過する際の前記直線画像の太さの変化をもとに前記境界位置を判別することを特徴とする請求項6記載のカメラキャリブレーション装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2011−182236(P2011−182236A)
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願番号】特願2010−45474(P2010−45474)
【出願日】平成22年3月2日(2010.3.2)
【出願人】(504113008)東芝アルパイン・オートモティブテクノロジー株式会社 (110)
【Fターム(参考)】
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願日】平成22年3月2日(2010.3.2)
【出願人】(504113008)東芝アルパイン・オートモティブテクノロジー株式会社 (110)
【Fターム(参考)】
[ Back to top ]