(57)【特許請求の範囲】
【請求項１】
隣接するカメラの撮影範囲が重なる領域に設置された第１の冶具と、カメラの鉛直下に設置された第２の冶具とを含む画像を取得する画像取得手段と、
前記第１の冶具および前記第２の冶具の画像中の座標から得られる視線ベクトルのなす角度と、前記第１の冶具および前記第２の冶具の車両座標系の座標から得られる角度との差を評価する評価関数の値が最小になる、前記第１の冶具および前記第２の冶具の車両座標系の座標を求め、求めた前記第１の冶具および前記第２の冶具の車両座標系の座標に基づいて前記カメラの角度を算出する角度算出手段と
を有するカメラ角度算出装置。 
【請求項２】
隣接するカメラが撮影する前記第１の冶具は同一の冶具である請求項１に記載のカメラ角度算出装置。 
【請求項３】
前記カメラ毎に異なる時間に撮影された画像を記憶装置に記憶し、当該記憶装置に記憶された各画像を合成する画像合成手段を更に有し、前記画像取得手段は、前記画像合成手段に合成された画像を取得する請求項１または２に記載のカメラ角度算出装置。
【請求項４】
カメラ角度算出装置が、
隣接するカメラの撮影範囲が重なる領域に設置された第１の冶具と、カメラの鉛直下に設置された第２の冶具とを含む画像を取得して記憶装置に記憶する画像取得ステップと、  前記第１の冶具および前記第２の冶具の画像中の座標から得られる視線ベクトルのなす角度と、前記第１の冶具および前記第２の冶具の車両座標系の座標から得られる角度との差を評価する評価関数の値が最小になる、前記第１の冶具および前記第２の冶具の車両座標系の座標を求め、求めた前記第１の冶具および前記第２の冶具の車両座標系の座標に基づいて前記カメラの角度を算出する角度算出ステップと
を含んだカメラ角度算出方法。
【請求項５】
隣接するカメラが撮影する前記第１の冶具は同一の冶具である請求項４に記載のカメラ角度算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラ角度算出装置に関するものである。
【背景技術】
【０００２】
近年、移動体に取り付けた複数のカメラを用いて移動体の周囲の画像を撮影し、撮影した各画像を鳥瞰図あるいは３６０°パノラマなどに合成して表示する画像表示装置が普及している。この画像表示装置としては、自動車向けの駐車支援装置（アラウンドビューモニタ）等がある。【０００３】
なお、この画像表示装置がカメラの撮影した各画像を合成する場合には、各カメラの設置パラメータが必要となる。カメラの設置パラメータには、車両座標系に対する位置（Ｘ座標、Ｙ座標、Ｚ座標）および角度（ロール角、ピッチー角、ヨー角）等が含まれる。【０００４】
この設置パラメータのうち、位置に関してはそれほど厳密に求める必要はない（ユーザが計測した初期値を用いればよい）が、角度に関しては、微小な誤差でも最終的な合成画像に与える影響が大きいため、車両に設置したカメラに対するキャリブレーションを実行して、正確なカメラの角度を算出する必要がある。【０００５】
上述したカメラの角度を算出する技術に関して、各種の技術が提案されている。例えば、形状が既知のキャリブレーション冶具（校正パターン）を路面上、かつ各カメラの視野のオーバーラップ部分（各カメラの共通撮影領域）の任意の場所に１個ずつ配置し、校正パターンの形状条件に基づいてカメラの設置パラメータを算出する技術が知られている（例えば、特許文献１参照）。この技術で用いられるキャリブレーション冶具は、正方形形状を有し、正方形の一辺は、１ｍ〜１．５ｍ程度であり、冶具上の４頂点にそれぞれマーカを有している。【０００６】
また、予め、所定の方法でカメラの設置パラメータをいくつか算出しておき、１点の特徴点からなる小型のキャリブレーション冶具を各カメラの共通撮影領域に２個ずつ配置して、１カメラあたり４個のマーカを撮影する条件のもとで、残りの設置パラメータを算出する技術も知られている（例えば、特許文献２参照）。【０００７】
【特許文献１】特開２００８−１８７５６６号公報
【特許文献２】特開２００８−１８７５６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来の技術では、狭い空間でカメラのキャリブレーションを実行することができないという問題があった。【０００９】
例えば、正方形形状の校正パターンを配置してカメラのキャリブレーションを実行する場合には、サイズが１辺１ｍ〜１．５ｍ程度の校正パターンを共通撮影領域に２個以上配置する必要があるため、カメラの設置パラメータを算出するためには、車両設置スペースに加えて、車両周囲にそれぞれ２ｍ〜３ｍの空間が必要になる。【００１０】
また、小型のキャリブレーション冶具を配置してカメラのキャリブレーションを実行する場合であっても、各カメラの共通撮影領域に、ある程度の間隔をあけて２個のキャリブレーション冶具を配置する必要があるので、結果的に狭い空間でカメラのキャリブレーションを実行することができなくなる。また、かかる技術では、予め、別の方法で設置パラメータの一部を算出しておく必要があり、単独でカメラの設置パラメータを全て算出することが出来ない。【００１１】
すなわち、狭い空間であってもカメラのキャリブレーションを実行可能で、正確にカメラの設置パラメータを求めることが重要な課題となっている。【００１２】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、狭い空間であってもカメラのキャリブレーションを実行可能で、正確にカメラの設置パラメータを求めることが出来るカメラ角度算出装置およびカメラ角度算出方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、このカメラ角度算出装置は、隣接するカメラの撮影範囲が重なる領域に設置された第１の冶具と、カメラの鉛直下に設置された第２の冶具とを含む画像を取得する画像取得手段と、前記画像取得手段が取得した画像中に含まれる前記第１の冶具および第２の冶具の座標に基づいて前記カメラの角度を算出する角度算出手段とを有することを要件とする。
【発明の効果】
【００１４】
このカメラ角度算出装置によれば、隣接するカメラの撮影範囲が重なる領域に設置された第１の冶具と、カメラの鉛直下に設置された第２の冶具とを含む画像を取得し、取得した画像中に含まれる第１の冶具および第２の冶具の座標に基づいてカメラの角度を算出するので、カメラのキャリブレーションを実行する場所を縮小化することが出来ると共に、正確にカメラ角度パラメータを算出することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、カメラの設置パラメータを説明するための図（１）である。
【図２】図２は、カメラの設置パラメータを説明するための図（２）である。
【図３】図３は、車両に配置されたカメラとマーカとの位置関係を説明するための図である。
【図４】図４は、車両に配置されたカメラとマーカとの位置関係を斜めから示した図である。
【図５】図５は、本実施例１にかかるキャリブレーション装置の構成を示す図である。
【図６】図６は、カメラ位置パラメータのデータ構造の一例を示す図である。
【図７】図７は、カメラ角度パラメータのデータ構造の一例を示す図である。
【図８】図８は、カメラによって撮影される各画像の一例を示す図である。
【図９】図９は、マーカ抽出部のマーカ抽出結果を示す図である。
【図１０】図１０は、変換テーブルのデータ構造の一例を示す図である。
【図１１】図１１は、各視線ベクトルの間の角度の算出を説明するための図である。
【図１２】図１２は、車両座標系におけるカメラの座標およびマーカの座標を示す図である。
【図１３】図１３は、カメラ角度パラメータ推定部の処理を説明するための図（１）である。
【図１４】図１４は、カメラ角度パラメータ推定部の処理を説明するための図（２）である。
【図１５】図１５は、画像合成処理部が出力した画像の一例を示す図である。
【図１６】図１６は、本実施例１にかかるキャリブレーション装置の処理手順を示すフローチャートである。
【図１７】図１７は、マーカの分割撮影を説明するための図である。
【図１８】図１８は、カメラ画像の合成を説明するための図である。
【図１９】図１９は、本実施例２にかかるキャリブレーション装置の構成を示す図である。
【図２０】図２０は、実施例にかかるキャリブレーション装置を構成するコンピュータのハードウェア構成を示す図である。
【符号の説明】
【００１６】
１    車両
１０ａ，１０ｂ，１０ｃ，１０ｄ，３６  カメラ
２０ａ，２０ｂ，２０ｃ，２０ｄ，２０ｅ，２０ｆ  マーカ
３０    コンピュータ
３１    入力装置
３２，１７０    ディスプレイ
３３    ＲＡＭ
３３ａ  カメラ位置パラメータ
３４    ＲＯＭ
３５    媒体読取装置
３７    ＣＰＵ
３７ａ  キャリブレーションプロセス
３７ｂ  画像合成プロセス
３８    ＨＤＤ
３８ａ  カメラ位置パラメータ
３８ｂ  キャリブレーションプログラム
３９    バス
１００    キャリブレーション装置
１１０    パラメータ格納部
１１０ａ  カメラ位置パラメータ
１１０ｂ  カメラ角度パラメータ
１２０    フレームバッファ
１３０    マーカ抽出部
１４０    マーカ位置推定部
１５０    カメラ角度パラメータ推定部
１６０    画像合成処理部
２００    合成処理装置
２００ａ，２００ｂ，２００ｃ，２００ｄ，２００ｅ，２００ｆ，２００ｇ，２００ｈ  サブフレームバッファ
２１０ａ，２１０ｂ，２１０ｃ，２００ｄ  合成部
２２０    同期制御部
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照して、この発明に係るカメラ角度算出装置の実施例を詳細に説明する。なお、以下に説明する実施例では、カメラ角度算出装置の一例として、キャリブレーション装置を用いて説明する。なお、この実施例により本願発明が限定されるものではない。
【実施例１】
【００１８】
本実施例１にかかるキャリブレーション装置は、車両に設置されたカメラの設置パラメータを算出する場合に、隣接するカメラの撮影範囲が重複する領域に設置されたマーカ（キャリブレーション冶具；以下同様）と、カメラの鉛直下に配置されたマーカとを含む画像を用いることで、カメラ配置に必要な領域の縮小化を可能にすると共に、正確な設置パラメータを算出することを可能にする。【００１９】
ここで、カメラの設置パラメータについて説明する。図１および図２は、カメラの設置パラメータを説明するための図である。図１に示すように、カメラ１０ａ〜１０ｄの設置パラメータのうち、カメラ１０ａ〜１０ｄの設置位置は、車両１を基準とした車両座標系において、座標（ｘ，ｙ，ｚ）で与えられる。なお、本実施例では、カメラ１０ａ〜１０ｄの座標を既知とする。以下の説明において、カメラの位置座標をカメラ位置パラメータと表記する。【００２０】
図２に示すように、カメラ１０ａ（１０ｂ〜１０ｄ）の設置パラメータのうち、カメラ１０ａの角度は、カメラ１０ａの光軸を基準としたカメラ座標系において、カメラ１０ａの光軸周りの回転角φ、カメラの光軸の水平線方向に対する回転角ψ、地面垂直軸まわりの回転角θで与えられる。以下の説明において、カメラの回転角φ、回転角ψ、回転角θをまとめて、カメラ角度パラメータと表記する。【００２１】
次に、車両１に設置されたカメラ１０ａ〜１０ｄとマーカとの位置関係について説明する。図３は、車両に配置されたカメラとマーカとの位置関係を説明するための図であり、図４は、車両に配置されたカメラとマーカとの位置関係を斜めから示した図である。【００２２】
図３に示すように、カメラ１０ａとカメラ１０ｄとの視野（撮影範囲；以下同様）が重複する領域にマーカ２０ａが配置されており、カメラ１０ａとカメラ１０ｂとの視野が重複する領域にマーカ２０ｂが配置されている。そして、カメラ１０ｂの鉛直下（カメラ１０ｂの光学中心＜レンズ位置＞の鉛直下方向）にマーカ２０ｃが配置されている（図４参照）。【００２３】
また、図３に示すように、カメラ１０ｂとカメラ１０ｃとの視野が重複する領域にマーカ２０ｄが配置されており、カメラ１０ｃとカメラ１０ｄとの視野が重複する領域にマーカ２０ｅが配置されている。そして、カメラ１０ｄの鉛直下（カメラ１０ｄの光学中心＜レンズ位置＞の鉛直下方向）にマーカ２０ｆが配置されている。なお、車両１、マーカ２０ａ〜２０ｆは、水平な平面上に配置されているものとする。【００２４】
次に、本実施例１にかかるキャリブレーション装置１００の構成について説明する。このキャリブレーション装置１００は、例えば、車両１内に設置され、カメラ１０ａ〜１０ｄに対するカメラ角度パラメータを算出するものとする。図５は、本実施例１にかかるキャリブレーション装置１００の構成を示す図である。図５に示すように、このキャリブレーション装置１００は、パラメータ格納部１１０と、フレームバッファ１２０と、マーカ抽出部１３０と、マーカ位置推定部１４０と、カメラ角度パラメータ推定部１５０と、画像合成処理部１６０と、ディスプレイ１７０とを有する。【００２５】
このうち、パラメータ格納部１１０は、キャリブレーション実行時に用いられる各種のデータを記憶する記憶部であり、特に本発明に密接に関連するものとして、カメラ位置パラメータ１１０ａと、カメラ角度パラメータ１１０ｂとを格納する。【００２６】
図６は、カメラ位置パラメータ１１０ａのデータ構造の一例を示す図である。図６に示すように、このカメラ位置パラメータ１１０ａは、カメラ識別情報と、カメラの座標とを対応付けて記憶している。例えば、ユーザは、カメラ１０ａ〜１０ｄの座標を予め計測し、入力装置（図示略）を用いて、パラメータ格納部１１０にカメラ位置パラメータ１１０ａを格納させる。【００２７】
図７は、カメラ角度パラメータ１１０ｂのデータ構造の一例を示す図である。図７に示すように、このカメラ角度パラメータ１１０ｂは、カメラ識別情報と、回転角φ、ψ、θとを対応付けて記憶している。このカメラ角度パラメータ１１０ｂは、カメラ角度パラメータ推定部１５０によって算出される。カメラ角度パラメータ推定部１５０の説明は後述する。【００２８】
フレームバッファ１２０は、カメラ１０ａ〜１０ｄが撮影した画像を順次記憶する記憶部である。図８は、カメラ１０ａ〜１０ｄによって撮影される各画像の一例を示す図である。図８の左上に示すように、カメラ１０ａによって撮影された画像には、マーカ２０ａ、２０ｂが含まれており、図８の右上に示すように、カメラ１０ｃに撮影された画像には、マーカ２０ｄ、２０ｅが含まれている。【００２９】
また、図８の左下に示すように、カメラ１０ｄによって撮影された画像には、マーカ２０ｅ、マーカ２０ｆ、マーカ２０ａが含まれており、図８の右下に示すように、カメラ１０ｂに撮影された画像には、マーカ２０ｂ、２０ｃ、２０ｄが含まれている。【００３０】
マーカ抽出部１３０は、カメラ１０ａ〜１０ｄが撮影した画像データをフレームバッファ１２０から取得し、画像中に含まれるマーカを抽出し、抽出したマーカの画像上の座標を特定する処理部である。画像中に含まれるマーカを抽出する手法はいかなる従来の画像処理技術を用いても構わない。【００３１】
図９は、マーカ抽出部１３０のマーカ抽出結果を示す図である。図９に示す画像が、カメラ１０ｂによって撮影されたものとすると、マーカ抽出部１３０は、画像座標軸系において、マーカ２０ｂ、２０ｃ、２０ｄの座標を、Ｐ１、Ｐ２、Ｐ３として抽出する。マーカ抽出部１３０は、カメラ１０ａ、１０ｃ、１０ｃの撮影した画像に対してもマーカの座標（画像座標軸系の座標）を特定する。マーカ抽出部１３０は、特定した各マーカの座標をマーカ位置推定部１４０に出力する。【００３２】
なお、マーカ抽出部１３０がマーカの位置を抽出する場合に、抽出が容易となるように発光／点滅するＬＥＤ（Light  Emitting  Diode）等をマーカとして配置してもよく、その際、近傍に同一発光パターンとなる点滅画素集合をまとめてマーカとして認識する機能をマーカ抽出部１３０に設けてもよい。あるいは、マーカ抽出部１３０が、画像をディスプレイ１７０に表示し、ユーザがポインティングデバイスを用いてマーカの画像上の座標を入力することで、マーカ抽出部１３０にマーカの座標を通知してもよい。【００３３】
マーカ位置推定部１４０は、マーカ２０ａ〜２０ｆの座標（画像座標系の座標）と、カメラ位置パラメータ１１０ａ（図６参照）とを基にして、車両座標系におけるマーカ２０ａ〜２０ｆの座標を算出すると共に、車両座標系における各カメラ１０ａ〜１０ｄの光軸ベクトルＲと、鉛直ベクトルＤを算出する処理部である。かかる光軸ベクトルおよび鉛直ベクトルを用いることで、カメラ１０ａ〜１０ｄのカメラ角度パラメータを算出することができる。【００３４】
具体的に、マーカ位置推定部１４０の処理を説明する。まず、マーカ位置推定部１４０は、マーカ２０ａ〜２０ｆの座標（画像座標系の座標）と、変換テーブルとを比較して、各座標の視線ベクトルを判定する。ここで、視線ベクトルは、カメラの光学中心とマーカの座標とを結んだ線分の方向ベクトルであり、視線ベクトルの向きは、カメラからマーカへの向きとなる。【００３５】
また、変換テーブルは、カメラの撮影した画像上の座標を視線ベクトルに変換するためのテーブルであり、各座標と視線ベクトルとの関係は、カメラとレンズ系との固有値から予め算出されている。この変換テーブルは、マーカ位置推定部１４０が保持しているものとする。図１０は、変換テーブルのデータ構造の一例を示す図である。【００３６】
次に、マーカ位置推定部１４０は、カメラ座標系において、各視線ベクトルの間の角度を算出する。図１１は、各視線ベクトルの間の角度の算出を説明するための図である。ここでは一例として、マーカをＰ１〜Ｐ３（Ｐ３は、カメラ鉛直下方のマーカ）とし、各マーカの視線ベクトルをｖ１〜ｖ３とする。このとき、マーカの視線ベクトル間の成す角度は
arccos（ｖｍ・ｖｎ）・・・（１）
によって算出される。なお、式１に含まれる「・」は、ベクトルの内積である。【００３７】
式１を用いることで、カメラ座標系でのＰ１とＰ２とが成す角度α（∠Ｐ１０Ｐ２）、Ｐ１とＰ３とが成す角度をβＡ（∠Ｐ１０Ｐ３）、Ｐ２とＰ３とが成す角度をβＢ（∠Ｐ２０Ｐ３）が、カメラ１０ｄ、カメラ１０ｂによって撮影した画像から算出される。なお、カメラ１０ａ、１０ｃによって撮影される画像には、マーカＰ３が存在しないので、Ｐ１とＰ２とが成す角度αのみ算出される。【００３８】
以下の説明において、カメラ１０ａに対応する角度αをα１、カメラ１０ｂに対応する角度αをα２、カメラ１０ｃに対応する角度αをα３、カメラ１０ｄに対応する角度αをα４とする。また、カメラ１０ｂに対応する角度βＡ、βＢをβ２Ａ、β２Ｂとし、カメラ１０ｄに対応する角度βＡ、βＢをβ４Ａ、β４Ｂとする。【００３９】
次に、マーカ位置推定部１４０は、評価関数となる
Ｆ（Ｍ１，Ｍ２，Ｍ３，Ｍ４）
＝（α１−∠Ｍ１Ｃ１Ｍ２）２＋（α２−∠Ｍ２Ｃ２Ｍ３）２＋（α３−∠Ｍ３Ｃ３Ｍ４）２＋（α４−∠Ｍ４Ｃ４Ｍ１）２＋＋Ｋ｛（β２Ａ−∠Ｍ２Ｃ２Ｎ２）２＋（β２Ｂ−∠Ｍ３Ｃ２Ｎ２）２＋（β４Ａ−∠Ｍ４Ｃ４Ｎ４）２＋（β４Ｂ−∠Ｍ１Ｃ４Ｎ４）２・・・（２）
を用いて、車両座標軸上におけるマーカ２０ａ〜２０ｆの座標Ｍ１〜Ｍ４を求める。【００４０】
式２において、Ｍ１は、車両座標系におけるマーカ２０ａの座標であり、Ｍ１＝（ｍ１ｘ，ｍ１ｙ，０）とする。Ｍ２は、車両座標系におけるマーカ２０ｂの座標であり、Ｍ２＝（ｍ２ｘ，ｍ２ｙ，０）とする。Ｍ３は、車両座標系におけるマーカ２０ｄの座標であり、Ｍ３＝（ｍ３ｘ，ｍ３ｙ，０）とする。Ｍ４は、車両座標系におけるマーカ２０ｅの座標であり、Ｍ４＝（ｍ４ｘ，ｍ４ｙ，０）とする。【００４１】
また、式２において、Ｎ２は、車両座標系におけるマーカ２０ｃの座標であり、Ｎ２＝（ｃ２ｘ，ｃ２ｙ，０）とする。Ｎ４は、車両座標系におけるマーカ２０ｆの座標であり、Ｎ４＝（ｃ４ｘ，ｃ４ｙ，０）とする。ここで、マーカ２０ａ〜２０ｆは、地面に配置されているため、Ｍ１〜Ｍ４、Ｎ２、Ｎ４のｚ成分は「０」となっている。【００４２】
また、式２において、Ｃ１は、車両座標系におけるカメラ１０ａの座標であり、Ｃ１＝（ｃ１ｘ，ｃ１ｙ，ｃ１ｚ）とする。Ｃ２は、車両座標系におけるカメラ１０ｂの座標であり、Ｃ２＝（ｃ２ｘ，ｃ２ｙ，ｃ２ｚ）とする。Ｃ３は、車両座標系におけるカメラ１０ｃの座標であり、Ｃ３＝（ｃ３ｘ，ｃ３ｙ，ｃ３ｚ）とする。Ｃ４は、車両座標系におけるカメラ１０ｄの座標であり、Ｃ４＝（ｃ４ｘ，ｃ４ｙ，ｃ４ｚ）とする。【００４３】
ここで、カメラ１０ｂの鉛直下にマーカ２０ｃが配置されているので、Ｃ２とＮ２とのｘ、ｙ成分は等しくなり、カメラ１０ｄの鉛直下にマーカ２０ｆが配置されているので、Ｃ４とＮ４とのｘ、ｙ成分は等しくなる。なお、式２に含まれるＫは定数である。図１２は、車両座標系におけるカメラ１０ａ〜１０ｄの座標Ｃ１〜Ｃ４およびマーカ２０ａ〜２０ｆの座標Ｍ１〜Ｍ４、Ｎ２、Ｎ４を示す図である。【００４４】
マーカ位置推定部１４０は、式２に示した評価関数Ｆ（Ｍ１，Ｍ２，Ｍ３，Ｍ４）の値が最小になるＭ１〜Ｍ４を算出する。例えば、マーカ位置推定部１４０は、Ｍ１〜Ｍ４に初期値を与え、周知技術である最急降下法を用いることで、評価関数Ｆ（Ｍ１，Ｍ２，Ｍ３，Ｍ４）の値が０となる（あるいは、０に限りなく近くなる）Ｍ１〜Ｍ４を判定することで、Ｍ１〜Ｍ４を算出する。なお、式２に含まれるカメラ１０ａ〜１０ｄの座標Ｃ１〜Ｃ４の値およびＮ２、Ｎ４の値は既知であり、カメラ位置パラメータ１１０ａの値を使用する。【００４５】
マーカ位置推定部１４０は、車両座標系におけるマーカ２０ａ〜２０ｆの座標Ｍ１〜Ｍ４の情報をカメラ角度パラメータ推定部１５０に出力する。【００４６】
カメラ角度パラメータ推定部１５０は、マーカ２０ａ〜２０ｆの座標Ｍ１〜Ｍ４を取得し、取得した座標Ｍ１〜Ｍ４に基づいて、カメラ１０ａ〜１０ｄのカメラ角度パラメータを算出する処理部である。以下において、カメラ角度パラメータ推定部１５０の処理を具体的に説明する。【００４７】
図１３および図１４は、カメラ角度パラメータ推定部１５０の処理を説明するための図である。まず、カメラ角度パラメータ推定部１５０は、カメラ１０ａ〜１０ｄの座標Ｍ１〜Ｍ４を基にして、車両座標系でのカメラの光軸ベクトルＲｎ（ｎ＝１，２，３，４；図１３参照）と、カメラ座標系における鉛直ベクトルｄｎ（ｎ＝１，２，３，４；図１４参照）を算出する。光軸ベクトルＲ１〜Ｒ４はカメラ１０ａ〜１０ｄの光軸ベクトルにそれぞれ対応し、鉛直ベクトルｄ１〜ｄ４は、カメラ１０ａ〜１０ｄの鉛直ベクトルにそれぞれ対応する。【００４８】
図１３において、Ｄｎ（ｎ＝１，２，３，４）は、車両座標系における鉛直ベクトルを示す。γｎＡ（ｎ＝１，２，３，４）は、カメラからマーカの座標に向かうベクトルと、光軸ベクトルＲｎとの成す角度を示し、γｎＢ（ｎ＝１，２，３，４）は、カメラからマーカの座標に向かうベクトルと、光軸ベクトルＲｎとの成す角度を示す。例えば、図１３において、カメラ１０ｂに着目すると、γ２Ａは、カメラ１０ｂから座標Ｍ２に向かうベクトルと、光軸ベクトルＲｎとの成す角度を示し、γ２Ｂは、カメラ１０ｂから座標Ｍ３に向かうベクトルと、光軸ベクトルＲｎとの成す角度を示す。【００４９】
また、図１３において、βｎＡ（ｎ＝１，２，３，４）は、カメラからマーカの座標に向かうベクトルと、鉛直ベクトルｄｎとの成す角度を示し、βｎＢ（ｎ＝１，２，３，４）は、カメラからマーカの座標に向かうベクトルと、鉛直ベクトルｄｎとの成す角度を示す。例えば、図１３において、カメラ１０ｂに着目すると、β２Ａは、カメラ１０ｂから座標Ｍ２に向かうベクトルと、鉛直ベクトルＤｎとの成す角度を示し、β２Ａは、カメラ１０ｂから座標Ｍ３に向かうベクトルと、鉛直ベクトルＤｎとの成す角度を示す。【００５０】
なお、図１３において、車両座標系におけるカメラからマーカの座標に向かうベクトルは、変換テーブル等を用いて、車両座標系におけるマーカの座標から変換される。【００５１】
図１４において、ｒｎ（ｎ＝１，２，３，４）は、カメラ座標系でのカメラの光軸ベクトルを示し、γｎＡ（ｎ＝１，２，３，４）は、視線ベクトルｖ１と、光軸ベクトルｒｎとの成す角度を示し、γｎＢ（ｎ＝１，２，３，４）は、視線ベクトルｖ２と、光軸ベクトルｒｎとの成す角度を示す。βｎＡ（ｎ＝１，２，３，４）は、視線ベクトルｖ１と、鉛直ベクトルｄｎとの成す角度を示し、βｎＢ（ｎ＝１，２，３，４）は、視線ベクトルｖ２と、鉛直ベクトルｄｎとの成す角度を示す。【００５２】
車両座標軸系のγｎＡ、γｎＢ、βｎＡ、βｎＢは、カメラ座標系のγｎＡ、γｎＢ、βｎＡ、βｎＢと等しい値なる。例えば、図１３のγ２Ａ、γ２Ｂ、β２Ａ、β２Ｂは、図１４のγ２Ａ、γ２Ｂ、β２Ａ、β２Ｂと等しい値となる。以下では、カメラ角度パラメータ推定部１５０が、カメラ１０ｂの光軸ベクトルＲ２、鉛直ベクトルｄ２を算出する場合を例にして説明する。【００５３】
図１４において、カメラ座標系の光軸ベクトルはｒ２＝（０，０，−１）で既知であるため、カメラ角度パラメータ推定部１５０は、式１を利用して、光軸ベクトルｒ２と視線ベクトルとからγ２Ａ、γ２Ｂを算出する。算出したγ２Ａ、γ２Ｂは、図１３に示した車両座標系でも成立するので、カメラ１０ｂのレンズからマーカＭ２、Ｍ２の方向ベクトルとγ２Ａ、γ２Ｂの角度関係をもつベクトルの内、適切なものをＲ２として選択する。一般に角度関係を満たすベクトルは２つあるが、カメラと路面との関係から一意に決定することが出来る。【００５４】
図１３において、車両座標系の鉛直ベクトルはＤ２＝（０，０，−１）で既知であるため、カメラ角度パラメータ推定部１５０は、式１を利用して、鉛直ベクトルＤと方向ベクトル（カメラ１０ｄのレンズからマーカＭ２の方向ベクトルおよびカメラ１０ｄのレンズからマーカＭ３の方向ベクトル）とからβ２Ａ、β２Ｂを算出する。算出したβ２Ａ、β２Ｂは、図１４に示したカメラ座標系でも成立するので、視線ベクトルとの角度関係をもつベクトルをｄ２として選択する。【００５５】
カメラ角度パラメータ推定部１５０は、図１３および図１４に示した手法を用いて、カメラ１０ａ〜カメラ１０ｄの光軸ベクトルＲｎ（ｎ＝１，２，３，４）と鉛直ベクトルｄｎ（ｎ＝１，２，３，４）を算出する。なお、カメラ１０ｂ、１０ｄのように、直下にマーカが配置されているケースでは、鉛直ベクトルｄｎは、直下に配置されたマーカに対する視線ベクトルと同一となるので、必ずしも上記手法によって算出する必要はない。【００５６】
カメラ角度パラメータ推定部１５０は、カメラ１０ａ〜１０ｄの光軸ベクトルＲｎと鉛直ベクトルｄｎとを算出した後に、
θｎ＝arctan２（−Ｒｎｘ，Ｒｎｙ）・・・（３）
ψｎ＝π／２−arccos（（０，０，−１）・Ｒｎ）・・・（４）
φｎ＝−arctan２（ｄｎｘ，−ｄｎｙ）・・・（５）
を用いて、カメラ角度パラメータを算出する。カメラ角度パラメータ推定部１５０は、カメラ角度パラメータを算出した後に、カメラ角度パラメータをパラメータ格納部１１０に格納する。【００５７】
画像合成処理部１６０は、カメラ１０ａ〜１０ｄの撮影した画像をフレームバッファ１２０から取得し、取得した各画像を合成して合成画像をディスプレイ１７０に出力する処理部である。図１５は、画像合成処理部１６０が出力した画像の一例を示す図である。画像合成処理部１６０は、カメラ角度パラメータの初期値をそのまま利用して、各画像を合成した場合には、図１５の上段に示すように、ディスプレイに表示される画像が傾いてしまう（例えば、回転角φに誤差が発生している場合）。【００５８】
そこで、画像合成処理部１６０は、パラメータ格納部１１０に格納されたカメラ角度パラメータ１１０ｂを基にして、カメラ角度パラメータの誤差を補正し、各画像を合成することで、図１５の下段に示すように、合成画像を適切に表示させることが出来る。【００５９】
次に、本実施例１にかかるキャリブレーション装置１００の処理手順について説明する。図１６は、本実施例１にかかるキャリブレーション装置１００の処理手順を示すフローチャートである。図１６に示すように、キャリブレーション装置１００は、マーカ抽出部１３０が、各カメラ１０ａ〜１０ｄの撮影した画像データを取得し（ステップＳ１０１）、画像内のマーカの位置を抽出する（ステップＳ１０２）。【００６０】
マーカ位置推定部１４０は、カメラ画像のマーカ位置を視線ベクトルに変換し（ステップＳ１０３）、視線ベクトル間が成す角度を算出し（ステップＳ１０４）、評価関数を用いて車両座標系のマーカ位置Ｍ１〜Ｍ４を算出する（ステップＳ１０５）。【００６１】
そして、カメラ角度パラメータ推定部１５０は、車両座標軸系のマーカ位置Ｍ１〜Ｍ４に基づいて、車両座標系の光軸ベクトルと、カメラ座標系の鉛直ベクトルとを算出し（ステップＳ１０６）、カメラ角度パラメータ１１０ｂを算出する（ステップＳ１０７）。【００６２】
上述してきたように、本実施例１にかかるキャリブレーション装置１００は、隣接するカメラの撮影範囲が重複する領域に設置されたマーカ２０ａ，２０ｂ，２０ｄ，２０ｅと、カメラの鉛直下に配置されたマーカ２０ｃ，２０ｆとを含む画像を用いることで、車両に設置されたカメラ１０ａ〜１０ｄのカメラ角度パラメータを算出するので、カメラのキャリブレーションを実行する場所を縮小化することが出来る（マーカの配置領域を狭めることが出来る）と共に、正確にカメラ角度パラメータを算出することができる。
【実施例２】
【００６３】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例１以外にも種々の異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。【００６４】
（１）カメラの鉛直下のマーカについて
例えば、上記の実施例１では、カメラ１０ｂ，１０ｄの鉛直下にマーカ２０ｃ，２０ｆを配置していたが、本発明はこれに限定されるものではない。ユーザは、マーカ２０ｃ，２０ｆをカメラ１０ｂ，１０ｄの鉛直下に配置する代わりに、カメラ１０ｂ、１０ｄに錘のついた糸を吊るしても良い。このように、錘のついた糸をカメラ１０ｂ、１０ｄに吊るすと、自然に錘がカメラ１０ｂ，１０ｄの鉛直下に移動するので、ユーザにかかる負担を軽減させることが出来る。【００６５】
（２）マーカの撮影について
上記の実施例１では、カメラ１０ａ〜１０ｄが画像を撮影するタイミングについて言及していなかったが、キャリブレーションに必要なカメラ画像をすべて同時に撮影しなくてもよい。例えば、キャリブレーション装置１００は、撮影範囲を分割して各マーカを撮影した後に各画像を合成することで、実施例１と同様にしてカメラ角度パラメータを算出しても良い。【００６６】
図１７は、マーカの分割撮影を説明するための図である。図１７に示すように、キャリブレーション装置は、領域（１）〜（４）の順番に各マーカを撮影する。なお、マーカ２０ａ〜２０ｆは、該当領域の撮影が行われる時点で配置されるものとする。すなわち、領域（１）の撮影を行っている場合には、領域（２）〜（３）に冶具を配置しておかなくてもよい。【００６７】
具体的に、キャリブレーション装置は、カメラ１０ａ，１０ｄを用いて領域（１）を撮影する。この撮影の際に、領域（１）にマーカ２０ａが配置され、マーカ２０ａは、カメラ１０ａ，１０ｄに撮影される。【００６８】
続いて、キャリブレーション装置は、カメラ１０ａ、１０ｂを用いて領域（２）を撮影する。この撮影の際に、領域（２）にマーカ２０ｂが配置され、マーカ２０ｂは、カメラ１０ａ，１０ｂに撮影される。【００６９】
続いて、キャリブレーション装置は、カメラ１０ｂ，１０ｃを用いて領域（３）を撮影する。この撮影の際に、領域（３）にマーカ２０ｃ，２０ｄが配置され、マーカ２０ｃは、カメラ１０ｂに撮影され、マーカ２０ｄは、カメラ１０ｃに撮影される。【００７０】
続いて、キャリブレーション装置は、カメラ１０ｃ，１０ｄを用いて領域（４）を撮影する。この撮影の際に、領域（４）にマーカ２０ｅ，２０ｆが配置され、マーカ２０ｅは、カメラ１０ｃ，１０ｄに撮影され、マーカ２０ｆは、カメラ１０ｄに撮影される。【００７１】
キャリブレーション装置は、図１７に示した領域毎にカメラの画像を合成する。図１８は、カメラ画像の合成を説明するための図である。図１８の左上に示す画像は、カメラ１０ａが、領域（１）のマーカ２０ａを撮影した画像と、領域（２）のマーカ２０ｂを撮影した画像とを合成した画像である。このように画像を合成することで、実施例１と同様に、領域（１）のマーカ２０ａと領域（２）のマーカ２０ｂを同時に撮影した場合と同じ画像を得ることができる。【００７２】
図１８の右上に示す画像は、カメラ１０ｃが、領域（３）のマーカ２０ｄを撮影した画像と、領域（４）のマーカ２０ｅを撮影した画像とを合成した画像である。このように合成することで、実施例１と同様に、領域（３）のマーカ２０ｄと領域（４）のマーカ２０ｅを同時に撮影した場合と同じ画像を得ることが出来る。【００７３】
図１８の右下に示す画像は、カメラ１０ｂが、領域（２）のマーカ２０ｂを撮影した画像と、領域（３）のマーカ２０ｃおよびマーカ２０ｄを撮影した画像とを合成した画像である。このように合成することで、実施例１と同様に、領域（２）のマーカ２０ｂと領域（３）のマーカ２０ｃ，２０ｄを同時に撮影した場合と同じ画像を得ることが出来る。【００７４】
図１８の左下に示す画像は、カメラ１０ｄが、領域（１）のマーカ２０ａを撮影した画像と、領域（４）のマーカ２０ｅおよびマーカ２０ｆを撮影した画像とを合成した画像である。このように合成することで、実施例１と同様に、領域（１）のマーカ２０ａと、領域（４）のマーカ２０ｅ，２０ｆとを同時に撮影した場合と同じ画像を得ることが出来る。【００７５】
図１８に示した各合成画像を作成した後に、キャリブレーション装置は、実施例１と同様にして、カメラ１０ａ〜１０ｄのカメラ角度パラメータを算出する。このように、本実施例２にかかるキャリブレーション装置は、領域（１）〜（４）の順に画像を撮影すればよいので、カメラのキャリブレーション時に必要となる空間を更に縮小することが出来る。【００７６】
次に、図１７および図１８において説明した手法によってカメラ１０ａ〜１０ｄのカメラ角度パラメータを算出するキャリブレーション装置の構成について説明する。図１９は、本実施例２にかかるキャリブレーション装置の構成を示す図である。図１９に示すように、カメラ１０ａ〜１０ｄと、キャリブレーション装置１００との間に、合成処理装置２００が配置されている。キャリブレーション装置１００の構成は、図５に示したキャリブレーション装置１００と同様である。【００７７】
合成処理装置２００は、各カメラ１０ａ〜１０ｄが異なる時間に撮影した画像を合成する装置であり、サブフレームバッファ２００ａ〜２００ｈと、合成部２１０ａ〜２１０ｄとを有する。合成処理部２００は、同期制御部２２０によって同期が取られている。【００７８】
サブフレームバッファ２００ａは、カメラ１０ａが撮影した左半分の画像（領域（１）のマーカ２０ａを含んだ画像）を格納する記憶部であり、サブフレームバッファ２００ｂは、カメラ１０ａが撮影した右半分の画像（領域（２）のマーカ２０ｂを含んだ画像）を格納する記憶部である。【００７９】
サブフレームバッファ２００ｃは、カメラ１０ｂが撮影した左半分の画像（領域（２）のマーカ２０ｂを含んだ画像）を格納する記憶部であり、サブフレームバッファ２００ｄは、カメラ１０ｂが撮影した右半分の画像（領域（３）のマーカ２０ｃ，２０ｄを含んだ画像）を格納する記憶部である。【００８０】
サブフレームバッファ２００ｅは、カメラ１０ｃが撮影した左半分の画像（領域（３）のマーカ２０ｄを含んだ画像）を格納する記憶部であり、サブフレームバッファ２００ｆは、カメラ１０ｃが撮影した右半分の画像（領域（４）のマーカ２０ｅを含んだ画像）を格納する記憶部である。【００８１】
サブフレームバッファ２００ｇは、カメラ１０ｄが撮影した左半分の画像（領域（４）のマーカ２０ｅ，２０ｆを含んだ画像）を格納する記憶部であり、サブフレームバッファ２００ｈは、カメラ１０ｄが撮影した右半分の画像（領域（１）のマーカ２０ａを含んだ画像）を格納する記憶部である。【００８２】
合成部２１０ａは、サブフレームバッファ２００ａ，２００ｂに格納された画像を合成する処理部である。合成部２１０ａによって合成される画像は、例えば、図１８の左上の画像に対応する。合成部２１０ａは合成した画像をキャリブレーション装置１００のフレームバッファ１２０に格納する。【００８３】
合成部２１０ｂは、サブフレームバッファ２００ｃ，２００ｄに格納された画像を合成する処理部である。合成部２１０ｂによって合成される画像は、例えば、図１８の右下の画像に対応する。合成部２１０ｂは合成した画像をキャリブレーション装置１００のフレームバッファ１２０に格納する。【００８４】
合成部２１０ｃは、サブフレームバッファ２００ｅ，２００ｆに格納された画像を合成する処理部である。合成部２１０ｃによって合成される画像は、例えば、図１８の右上の画像に対応する。合成部２１０ｃは合成した画像をキャリブレーション装置１００のフレームバッファ１２０に格納する。【００８５】
合成部２１０ｄは、サブフレームバッファ２００ｇ，２００ｈに格納された画像を合成する処理部である。合成部２１０ｄによって合成される画像は、例えば、図１８の左下の画像に対応する。合成部２１０ｄは合成した画像をキャリブレーション装置１００のフレームバッファ１２０に格納する。【００８６】
（３）システム構成等
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【００８７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【００８８】
図２０は、実施例にかかるキャリブレーション装置１００を構成するコンピュータのハードウェア構成を示す図である。図２０に示すように、このコンピュータ（キャリブレーション装置）３０は、入力装置３１、ディスプレイ３２、ＲＡＭ（Random  Access  Memory）３３、ＲＯＭ（Read  Only  Memory）３４、記憶媒体からデータを読み取る媒体読取装置３５、カメラ３６、ＣＰＵ（Central  Processing  Unit）３７、ＨＤＤ（Hard  Disk  Drive）３８をバス３９で接続して構成される。コンピュータ３０は、カメラ３６以外にもカメラを有しているものとする。【００８９】
ＨＤＤ３８には、上記したキャリブレーション装置１００の機能と同様の機能を発揮するキャリブレーションプログラム３８ｂおよび画像合成プログラム３８ｃが記憶されている。ＣＰＵ３７がキャリブレーションプログラム３８ｂおよび画像合成プログラム３８ｃを読み出して実行することにより、キャリブレーションプロセス３７ａおよび画像合成プロセス３７ｂが起動される。ここで、キャリブレーションプロセス３７ａは、図５に示した、マーカ抽出部１３０、マーカ位置推定部１４０、カメラ角度パラメータ推定部１５０に対応し、画像合成プロセス３７ｂは、画像合成処理部１６０に対応する。【００９０】
また、ＨＤＤ３８は、パラメータ格納部１１０に記憶される情報に対応するカメラ位置パラメータ３８ａを記憶する。ＣＰＵ３７は、ＨＤＤ３８に格納されたカメラ位置パラメータ３８ａを読み出して、ＲＡＭ３３に格納し、ＲＡＭ３３に格納されたカメラ位置パラメータ３３ａおよびカメラ３６に撮影された画像を用いて、カメラ角度パラメータを算出し、算出したカメラ角度パラメータ、カメラ位置パラメータ３８ｂを用いて各画像を合成する。【００９１】
ところで、図２０に示したキャリブレーションプログラム３８ｂおよび画像合成プログラム３８ｃは、必ずしも最初からＨＤＤ３８に記憶させておく必要はない。たとえば、コンピュータに挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータの内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータに接続される「他のコンピュータ（またはサーバ）」などにキャリブレーションプログラム３８ｂおよび画像合成プログラム３８ｃを記憶しておき、コンピュータがこれらからキャリブレーションプログラム３８ｂおよび画像合成プログラム３８ｃを読み出して実行するようにしてもよい。
【図１】
0005387580.tif 000002
【図２】
0005387580.tif 000003
【図３】
0005387580.tif 000004
【図４】
0005387580.tif 000005
【図５】
0005387580.tif 000006
【図６】
0005387580.tif 000007
【図７】
0005387580.tif 000008
【図８】
0005387580.tif 000009
【図９】
0005387580.tif 000010
【図１０】
0005387580.tif 000011
【図１１】
0005387580.tif 000012
【図１２】
0005387580.tif 000013
【図１３】
0005387580.tif 000014
【図１４】
0005387580.tif 000015
【図１５】
0005387580.tif 000016
【図１６】
0005387580.tif 000017
【図１７】
0005387580.tif 000018
【図１８】
0005387580.tif 000019
【図１９】
0005387580.tif 000020
【図２０】
0005387580.tif 000021