(57)【要約】【課題】容易かつ短時間でカメラのキャリブレーションを実施することを課題とする。【解決手段】画像取得部２は、車両に搭載された複数のカメラの撮影範囲が重なり合う車両周囲の所定位置に配置された複数の冶具であって、マーカ間の距離が既知である複数のマーカを有する複数の冶具の画像を、キャリブレーション対象とする複数のカメラを用いてそれぞれ取得する。リンク構造形成部３は、取得された各画像から冶具をそれぞれ特定し、特定された各冶具に共通する所定の代表点を、複数のカメラで重複して撮影された同一の冶具について重ね合わせた仮想的なリンク構造を形成する。リンク角探索部４は、形成されたリンク構造について任意のリンク角を設定してリンク構造の姿勢を決定し、同一の冶具が有する同一の頂点間の距離の差分２乗和が最小となるリンク角を探索する。パラメータ算出部５は、リンク角を用いて、カメラパン角度、ｘ軸座標、ｙ軸座標を算出する。【選択図】図１
2011107990.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載された複数のカメラの撮影範囲が重なり合う車両周囲の所定位置に配置された複数の冶具であって、マーカ間の距離が既知である複数のマーカを有する前記複数の冶具のうち、隣り合う冶具の画像をキャリブレーション対象とする複数のカメラを用いてそれぞれ取得する画像取得部と、
前記画像取得部により取得された各画像から冶具をそれぞれ特定し、特定された各冶具に共通する所定の代表点を、前記複数のカメラで撮影された同一の冶具について重ね合わせた仮想的なリンク構造を形成するリンク構造形成部と、
前記リンク構造形成部により形成された前記リンク構造について任意のリンク角を設定して当該リンク構造の姿勢を決定し、同一の冶具が有する同一のマーカ間の距離の差分が最小となるときのリンク角を探索するリンク角探索部と、
前記リンク角探索部により探索されたリンク角を用いて、カメラパン角度、ｘ軸座標、ｙ軸座標を算出するパラメータ算出部と
を有することを特徴とするキャリブレーション装置。
【請求項２】
前記画像取得部は、前記各画像内に前記冶具を複数含む画像を取得し、
前記リンク構造形成部は、前記リンク構造として、一の前記画像上の複数の前記冶具の代表点間の距離に基づく長さの辺を有し、前記重ね合わせた代表点を頂点とする多角形であって、当該多角形がなす一つの外角に応じて姿勢が決定される仮想的なリンク構造を形成し、
前記リンク角探索部は、前記リンク構造形成部により形成された前記リンク構造がなす外角の角度を表す任意の変数を設定して当該リンク構造の姿勢を決定した場合の、当該リンク構造内の同一の冶具が有する同一の頂点間の距離の差分と前記変数とに基づく評価関数を定義し、前記変数の値として任意の値を代入して算出される前記評価関数の評価値が最小となるときの変数の値を、前記代入する値を変更して前記評価値の算出を繰り返すことで算出することを特徴とする請求項１記載のキャリブレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、カメラのキャリブレーションを実行するキャリブレーション装置に関する。
【背景技術】
【０００２】
近年、車両に単数または複数のカメラを設置して、車外を撮影した画像を運転手等へ提供する技術が実用化されている（例えば、アラウンドビューモニタ）。このようなカメラにおいては、カメラの設置方法によって撮影範囲にずれが生じるので、カメラのキャリブレーションを行う。キャリブレーションとは、カメラの座標、俯角、回転角、カメラパン角度などを求めることをいう。そして、この技術は、キャリブレーションの実行結果によって求められるカメラのパラメータに基づいて撮影範囲のずれを補正している。
【０００３】
従来、カメラのキャリブレーションを実行する場合には、例えば、格子状のターゲット装置を車両に対して支持具により固定し、車両とターゲット装置との間隔を所定の状態に保つことでカメラのキャリブレーションを実現している。
【０００４】
また、車両に搭載された各車載カメラにより撮影した画像を用いて、例えば、車両の周囲を映し出した俯瞰画像を作成する技術もある。このような技術では、各車載カメラのキャリブレーションを行って俯瞰画像を作成する。例えば、この技術は、各車載カメラごとに、上述したターゲット装置の路面投影像を取得する。そして、この技術は、取得した路面投影像について、例えば、４台の車載カメラであれば、３２個のホモグラフィ行列のパラメータが最適となる組合せを探索し、探索したパラメータに基づいて俯瞰画像を作成する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２８５６８１号公報
【特許文献２】特開２００８−１８７５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の技術では、カメラのキャリブレーションを実行する場合に、ターゲット装置の取り付け位置に厳密性が要求されるので、ユーザにかかる負担が大きいという問題があった。また、上述した従来の技術では、パラメータの導出に要する処理時間が非常に大きくなってしまうという問題があった。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、容易かつ短時間でカメラのキャリブレーションを実施することができるキャリブレーション装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示する技術は、一つの態様において、車両に搭載された複数のカメラの撮影範囲が重なり合う車両周囲の所定位置に配置された複数の冶具であって、マーカ間の距離が既知である複数のマーカを有する前記複数の冶具のうち、隣り合う冶具の画像をキャリブレーション対象とする複数のカメラを用いてそれぞれ取得する画像取得部と、前記画像取得部により取得された各画像から冶具をそれぞれ特定し、特定された各冶具に共通する所定の代表点を、前記複数のカメラで撮影された同一の冶具について重ね合わせた仮想的なリンク構造を形成するリンク構造形成部と、前記リンク構造形成部により形成された前記リンク構造について任意のリンク角を設定して当該リンク構造の姿勢を決定し、同一の冶具が有する同一のマーカ間の距離の差分が最小となるときのリンク角を探索するリンク角探索部と、前記リンク角探索部により探索されたリンク角を用いて、カメラパン角度、ｘ軸座標、ｙ軸座標を算出するパラメータ算出部とを有する。
【発明の効果】
【０００９】
本願の開示する技術の一つの態様によれば、容易かつ短時間でカメラのキャリブレーションを実施できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るキャリブレーション装置を示す図である。
【図２】図２は、冶具の構成を示す図である。
【図３】図３は、車両に設置されたカメラと冶具との位置関係を示す図である。
【図４】図４は、カメラのパラメータを説明する図である。
【図５】図５は、カメラのパラメータを説明する図である。
【図６】図６は、カメラにより撮影された画像の一例を示す図である。
【図７】図７は、マーカの画像座標の特定結果を示す図である。
【図８】図８は、式（１）〜（３）の関係を示す図である。
【図９】図９は、カメラのパラメータψの算出方法を説明する図である。
【図１０】図１０は、カメラ座標軸系と車両ローカル座標軸系との関係を示す図である。
【図１１】図１１は、各カメラにより検出された冶具の頂点位置を示す図である。
【図１２】図１２は、実施例２に係るカメラ相互のパラメータ算出を説明する図である。
【図１３】図１３は、カメラ相互のパラメータ算出を説明する図である。
【図１４】図１４は、カメラ相互のパラメータ算出を説明する図である。
【図１５】図１５は、冶具頂点のずれを示す図である。
【図１６】図１６は、実施例２に係るキャリブレーション装置の構成を示す図である。
【図１７】図１７は、実施例２に係るキャリブレーション装置の処理の流れを示す図である。
【図１８】図１８は、実施例２に係るキャリブレーション装置の処理の流れを示す図である。
【図１９】図１９は、実施例２に係るキャリブレーション装置の処理の流れを示す図である。
【図２０】図２０は、実施例２に係るキャリブレーション装置の処理の流れを示す図である。
【図２１】図２１は、実施例２に係るキャリブレーション装置の処理の流れを示す図である。
【図２２】図２２は、キャリブレーション処理を実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、図面を参照しつつ、本願の開示するキャリブレーション装置の一実施形態について詳細に説明する。なお、キャリブレーション装置の一実施形態として後述する以下の実施例により、本願が開示する技術が限定されるものではない。
【実施例１】
【００１２】
図１は、実施例１に係るキャリブレーション装置を示す図である。同図に示すように、実施例１に係るキャリブレーション装置１は、画像取得部２と、リンク構造形成部３と、リンク角探索部４と、パラメータ算出部５とを有する。
【００１３】
なお、キャリブレーション対象とする複数の車載カメラが搭載された車両の周囲には、マーカ間の距離が既知である複数のマーカを有する複数の冶具が配置される。例えば、冶具は、隣り合う車載カメラの撮影範囲が重複する位置にそれぞれ一つずつ配置される。キャリブレーション対象となる車載カメラは、撮影範囲にある冶具の画像を撮影する。
【００１４】
画像取得部２は、キャリブレーション対象とする複数のカメラから冶具の画像をそれぞれ取得する。例えば、画像取得部２は、各車載カメラから、各車載カメラにより撮影された２つの冶具の画像を取得する。
【００１５】
リンク構造形成部３は、画像取得部２により取得された各画像から冶具をそれぞれ特定する。そして、リンク構造形成部３は、特定された各冶具に共通する所定の代表点を、複数のカメラで重複して撮影された同一の冶具について重ね合わせた仮想的なリンク構造を形成する。
【００１６】
リンク角探索部４は、リンク構造形成部３により形成されたリンク構造について任意のリンク角を設定してリンク構造の姿勢を決定する。そして、リンク角探索部４は、同一の冶具が有する同一のマーカ間の距離の差分２乗和が最小となるときのリンク角を探索する。
【００１７】
パラメータ算出部５は、リンク角探索部４により探索されたリンク角を用いて、カメラパン角度、ｘ軸座標、ｙ軸座標を算出する。
【００１８】
キャリブレーション装置１は、各画像から特定された各冶具に共通する所定の代表点（例えば、重心位置に対応する点）を、複数のカメラで重複して撮影された同一の冶具について重ね合わせた仮想的なリンク構造を形成する。これにより、キャリブレーション装置１は、カメラのパラメータ算出に必要となる他のパラメータの数を大幅に削減できる。このようなことから、キャリブレーション装置１は、容易かつ短時間でカメラのキャリブレーションを実施できる。
【実施例２】
【００１９】
［実施例２の構成］
図２は、冶具の構成を示す図である。同図は、車両の周囲に配置された冶具を鉛直方向から見た時の冶具の構造を示す。同図に示すように、冶具１０は、各頂点にマーカＰ１〜Ｐ３を有しており、各マーカ間の距離がＤ（一定）に設定されている。そして、この冶具１０は、車両に搭載されるカメラのキャリブレーションを実行する場合に、隣り合う車載カメラの撮影範囲が重複する車両周囲の所定位置に支持具により固定され、車両との間隔が所定の状態に保たれる。
【００２０】
図３は、車両に設置されたカメラと冶具との位置関係を示す図である。同図は、車両に設置されたカメラと冶具との関係を鉛直方向から見た状態を示す。同図に示すように、カメラ２０〜２３は、撮影範囲が隣り合うカメラの撮影範囲と重複するように車両７の前後左右に搭載される。
【００２１】
また、図３に示すように、カメラ２０の撮影範囲とカメラ２１の撮影範囲とが重なる領域に冶具１１が設置される。また、同図に示すように、カメラ２１の撮影範囲とカメラ２２の撮影範囲とが重なる領域に冶具１２が設置される。また、同図に示すように、カメラ２２の撮影範囲とカメラ２３の撮影範囲とが重なる領域に冶具１３が配置される。また、同図に示すように、カメラ２３の撮影範囲とカメラ２０の撮影範囲とが重なる領域に冶具１０が配置される。なお、冶具１０〜１３の構造は同一の構造を有する（図１参照）。なお、図３に示すように、冶具１１は、各頂点にマーカＰ４〜Ｐ６を有し、冶具１２は、各頂点にマーカＰ７〜Ｐ９を有し、冶具１３は、各頂点にＰ１０〜Ｐ１２を有する。
【００２２】
図４および図５は、カメラのパラメータを説明する図である。車両に搭載されるカメラ２０〜２３のパラメータには、図４に示すように、カメラ座標軸系におけるカメラの俯角ψ、カメラの回転角φおよびカメラパン角度θが含まれる。また、図５に示すように、車両全体座標系におけるカメラの３次元座標（ｘ、ｙ、ｚ）が含まれる。なお、カメラ座標軸系とは、カメラ内に設定した所定の基準点および基準軸を元に、カメラの俯角ψ、カメラの回転角φおよびカメラパン角度θが決定される座標系である。車両全体座標系は、図５に示すように、車両７を鉛直方向から見た場合に、鉛直方向に直交する平面内の水平方向をＸ軸および垂直方向をＹ軸とする座標系である。
【００２３】
以下、実施例２にキャリブレーション装置が、各カメラのパラメータ（ψ、θ、φ、ｘ、ｙ、ｚ）を算出する方法について説明する。実施例２に係るキャリブレーション装置は、個々のカメラ２０〜２３についてのパラメータ（ψ、φ、ｚ）を算出した後に、カメラ２０〜２３相互のパラメータ（θ、ｘ、ｙ）を算出する。
【００２４】
［カメラ個々のパラメータ（ψ、φ、ｚ）の算出］
実施例２に係るキャリブレーション装置は、各カメラにより撮影された画像を取得し、取得した画像中に含まれる冶具のマーカの位置（画像上の座標；以下、画像座標と表記する）を特定するポインティング処理を行う。
【００２５】
なお、ポインティング処理は、画像処理により行ってもよいし、ユーザが、ポインティングデバイスを用いてインタラクティブに行なってもよい。また、ポインティング処理を画像処理により行う場合には、マーカの位置の特定が容易となるように、発光・点滅するＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）などをマーカとして用いることもできる。さらに、ポインティング処理を画像処理により行う場合に、近傍に同一発光パターンとなる点滅画素集合をまとめてマーカとして認識するようにしてもよい。
【００２６】
図６は、カメラにより撮影された画像の一例を示す図である。上述の図３に示すように、車両７の周辺に冶具１０〜１３を配置すると、カメラ２０〜２３ごとに２つの冶具が撮影される。例えば、図６に示すように、カメラ２２では、冶具１２および１３が撮影される。なお、画像座標系とは、カメラの撮影方向に直交する平面内の水平方向をＸ軸および垂直方向をＹ軸とする座標系である。
【００２７】
実施例２に係るキャリブレーション装置は、マーカの画像座標を特定した後に、特定した画像座標（画像座標系におけるＸ，Ｙ座標）をカメラ座標軸系の視線ベクトルに変換する。ここで、視線ベクトルとは、カメラの光学中心と冶具上のマーカとを結んだ線分の方向ベクトルであり、マーカから発せられた光がレンズへ入射する方向の逆方向となる。視線ベクトルの方向については、光学中心からマーカへの方向を正の方向とする。
【００２８】
マーカから発せられた光がレンズへ入射する方向と撮像位置との関係はカメラとレンズ系により固有であるので、ユーザは、画像座標と視線ベクトルの変換テーブルをあらかじめ作成できる。そこで、実施例２に係るキャリブレーション装置は、ユーザによりあらかじめ作成された変換テーブルを利用して、画像座標を視線ベクトルに変換する。
【００２９】
例えば、画像中の２個の冶具上のマーカをＰｎ（ｎ＝１〜６）、各マーカの視線ベクトルをｖ１〜ｖ６として、マーカＰｎ（ｎ＝１〜６）のカメラ座標系における位置をＰｎＣＡＭと表記するものとする。このとき、ＰｎＣＡＭは、カメラ座標系の原点から視線ベクトル方向にあるので、以下に示す式（１）の関係が成り立つ。なお、ｋｎは正の定数値（未知量）である。
【数１】
2011107990.tif 000003
【００３０】
図７は、マーカの画像座標の特定結果を示す図である。例えば、冶具１２，１３上のマーカをＰ１〜Ｐ６とした場合に、同図に示すような画像座標の特定結果が得られる。例えば、同図に示すように、冶具１２のマーカＰ１の特定結果は、Ｐ１（−１２２，−３６）となる。
【００３１】
また、冶具を配置した平面Ｒの法線ベクトルをｎｐ（ｎｐｘ、ｎｐｙ、ｎｐｚ）とし、カメラの設置高さをＨとすると、カメラ座標軸系の原点から平面Ｒに下ろした垂線と平面Ｒの交点ＰＣＡＭ０は、以下に示す式（２）で表すことができる。
【数２】
2011107990.tif 000004
【００３２】
また、平面Ｒの方程式は、以下に示す式（３）となる。
【数３】
2011107990.tif 000005
【００３３】
ここで、上述した式（１）〜（３）の関係を図示すると、図８のように表すことができる。図８は、式（１）〜（３）の関係を示す図である。
【００３４】
また、上述した式（１）および式（３）を用いることにより、ｋｎを以下に示す式（４）で表すことができる。
【数４】
2011107990.tif 000006
【００３５】
そして、上述した式（４）を式（１）に代入すると、カメラ座標軸系におけるマーカの位置ＰＣＡＭｎを以下に示す式（５）で表すことができる。
【数５】
2011107990.tif 000007
【００３６】
つまり、上述した式（２）および式（５）より、冶具の各マーカ位置は、カメラの設置高さＨと法線ベクトルｎＰとを変数とする関数として表現できる。
【００３７】
上述の図２に示すように、同一の冶具上に存在するマーカ間（Ｐ１〜Ｐ２、Ｐ２〜Ｐ３、Ｐ３〜Ｐ１）の距離Ｄは一定であるので、カメラの設置高さＨと法線ベクトルｎＰとを引数とする評価関数Ｅを以下に示す式（６）のように定める。
【数６】
2011107990.tif 000008
【００３８】
式（６）（評価関数Ｅ）は、Ｈおよびｎｐが正しい値をとる場合に、０となる。従って、式（６）の値を最小化するＨとｎｐとを求めることでカメラ座標系における平面Ｒを決定できる。式（６）を最小化する適切な初期値（例えば、初期値は予めユーザが特定しておく）からの最急降下法などの数値解析を用いることでＨとｎｐとを求めることができる。個々のカメラのパラメータのうち「ｚ」は、平面Ｒとカメラ座標系の原点との距離であるからＨそのものである。
【００３９】
個々のカメラのパラメータのうち「ψ」、「φ」は、平面Ｒの法線ベクトルｎｐとカメラ座標系各軸とのなす角度から算出する。図９は、実施例２に係るカメラのパラメータψの算出方法を説明する図である。同図に示すように、カメラ座標系のｚ軸を延長した平面Ｒ上の点をＱとすると、カメラ座標系の原点ＯＣＡＭと、Ｑと、Ｐ０ＣＡＭとを結んだ三角形の法線ベクトルとカメラ座標系のｘ軸との成す角がφである。従って、カメラのパラメータ「φ」は、以下に示す式（７）で表すことができる。
【数７】
2011107990.tif 000009
【００４０】
なお、式（７）において、ＶＺＣＡＭはカメラ座標軸系上のｚ軸方向の法線ベクトル（０、０、１）Ｔである。ＶＸＣＡＭはカメラ座標軸系上のｘ軸方向の法線ベクトル（１、０、０）Ｔである。Ｕｎｉｔ（  ）は、ベクトルを単位ベクトルに変換する関数である。
【００４１】
また、カメラ座標系上のｚ軸まわりに−φだけカメラ座標軸系を回転させると、ψは、回転後のｙ軸方向（カメラ座標軸系上のｙ座標方向）の法線ベクトルとｎｐとの成す角度となる。従って、カメラのパラメータ「ψ」は、以下に示す式（８）で表すことができる。なお、以下に示す式（８）において、ＶＹＣＡＭは、ｙ軸方向の法線ベクトル（０、１、０）Ｔである。
【数８】
2011107990.tif 000010
【００４２】
上述してきたように、実施例２に係るキャリブレーション装置は、上述の式（１）〜（８）を用いることにより、個々のカメラのパラメータ（ψ、φ、ｚ）を算出することができる。
【００４３】
［カメラ相互のパラメータ（θ、ｘ、ｙ）の算出］
以下の説明において、カメラｍ（ｍ＝Ｆ，Ｂ，Ｒ，Ｌ）のパラメータをψｍ、φｍ、θｍ、ｘｍ、ｙｍ、ｚｍと表記する。なお、個々のカメラのパラメータの算出とは異なり、各冶具の頂点に設置されるマーカをＰｎ（ｎ＝１〜３）で表現する。なお、カメラＦ（Ｆｒｏｎｔ）はカメラ２０を表し、カメラＢ（Ｂａｃｋ）はカメラ２２を表し、カメラＲ（Ｒｉｇｈｔ）はカメラ２１を表し、カメラＬ（Ｌｉｇｈｔ）はカメラ２３を表す。
【００４４】
図１０は、実施例２に係るカメラ座標軸系と車両ローカル座標軸系との関係を示す図である。同図に示すように、車両ローカル座標軸系は、カメラ毎に設定されたＰ０ＣＡＭ−ｍを原点に持つ直交座標系である。そして、車両ローカル座標軸系の原点Ｐ０ＣＡＭ−ｍを、車両ローカル座標軸系のＺ軸方向の高さＨｍの位置にカメラ座標軸系の原点が存在する。
【００４５】
また、カメラｍのカメラ座標系における冶具の頂点（マーカ１〜３）の位置（例えば、Ｐ１，Ｐ２，Ｐ３）に対応する車両ローカル座標軸系の平面Ｒ上の位置をＰｎＣＡＭ−ｍと表す。各冶具の頂点（マーカ）は、となり合うカメラによって撮影されているので（図３参照）、例えば、カメラＦにより撮影された冶具１１のマーカ１は、Ｐ１ＣＡＭ−Ｆとなり、カメラＲにより撮影された冶具１２のマーカ１は、Ｐ１ＣＡＭ−Ｒとなる。
【００４６】
図１１は、実施例２に係る各カメラにより検出された冶具の頂点位置を示す図である。同図には、カメラ座標系の原点位置に対応する車両ローカル座標軸系における平面Ｒ上の原点位置Ｐ０ＣＡＭ−ｍと、カメラにより検出された車両ローカル座標軸系における冶具の頂点位置との相対的な位置関係をカメラごとに示す。実施例２に係るキャリブレーション装置は、カメラ２０〜２３により撮影された冶具の画像から、冶具の頂点（マーカ１〜３）の車両ローカル座標軸系における位置を検出し、各カメラと冶具との相対的な位置関係を求める。
【００４７】
例えば、実施例２に係るキャリブレーション装置は、カメラ２０（Ｆ）により検出された冶具１０および１１の頂点を同図の右上段に示すように検出する。また、キャリブレーション装置は、例えば、カメラ２０（Ｒ）により検出された画像内の冶具１１および１２の頂点を同図の左上段に示すように検出する。また、キャリブレーション装置は、カメラ２２（Ｂ）により検出された冶具１２および１３の頂点を同図の右下段に示すように検出する。また、キャリブレーション装置は、例えば、カメラ２３（Ｌ）により検出された画像内の冶具１０および１３の頂点を同図の左下段に示すように検出する。そして、実施例２に係るキャリブレーション装置は、カメラ２０〜２３（Ｆ，Ｂ，Ｒ，Ｌ）ごとに検出した冶具の頂点（マーカ）の位置と、カメラ座標系の原点位置に対応する平面Ｒ上の位置Ｐ０ＣＡＭ−ｍとに基づいて、カメラと冶具との相対的な位置関係を求める。
【００４８】
各カメラと冶具との相対的な位置関係が求めた後、実施例２に係るキャリブレーション装置は、カメラと冶具との相対的な位置関係を維持したままで車両座標系（世界座標系）での最適化を行う。
【００４９】
例えば、実施例２に係るキャリブレーション装置は、冶具間で相互に対応する代表点として、例えば、重心位置に対応する点を決定する。キャリブレーション装置は、図１１に示すように、冶具１０の代表点として重心位置に対応する点Ｍ１を決定する。また、キャリブレーション装置は、同図に示すように、冶具１１の代表点として重心位置に対応する点Ｍ２を決定する。また、キャリブレーション装置は、同図に示すように、冶具１２の代表点として重心位置に対応する点Ｍ３を決定する。また、キャリブレーション装置は、同図に示すように、冶具１３の代表点として重心位置に対応する点Ｍ４を決定する。
【００５０】
そして、実施例２に係るキャリブレーション装置は、カメラと冶具との相対的な位置関係（図１１参照）を維持したままで、同一の冶具の代表点が必ず一致するような仮想的なリンク構造を算出する。例えば、対応する各代表点どうしの位置を車両座標系（世界座標系）上で一致させるように、図１１の状態の各カメラ画像を平行移動や回転移動させる。例えば、図１１の右上段の画像を基準にした場合、右上段の画像内の点Ｍ１と左下段画像内の点Ｍ１との位置を一致させるように、左下段の画像を反時計周りに回転させるとともに平行移動させる。他の代表点についても同様に位置を一致させる。そのようにして、図１１に示す４枚の画像を平行または回転移動させてリンク構造にした状態を、以下に説明する図１２に示す。
【００５１】
図１２は、実施例２に係るカメラ相互のパラメータ算出を説明する図である。例えば、同図に示すように、仮想的なリンク構造は、カメラ２０（Ｆ）により撮影される冶具１１の重心位置に対応する点Ｍ２と、カメラ２１（Ｒ）により撮影される冶具１１の重心位置に対応する点Ｍ２とが一致している。また、同図に示すように、仮想的なリンク構造は、カメラ２１（Ｒ）により撮影される冶具１２の重心位置に対応する点Ｍ３と、カメラ２２（Ｂ）により撮影される冶具１２の重心位置に対応する点Ｍ３とが一致している。また、同図に示すように、仮想的なリンク構造は、カメラ２２（Ｂ）により撮影される冶具１３の重心位置に対応する点Ｍ４と、カメラ２３（Ｌ）により撮影される冶具１３の重心位置に対応する点Ｍ４とが一致している。また、同図に示すように、仮想的なリンク構造は、カメラ２３（Ｌ）により撮影される冶具１０の重心位置に対応する点Ｍ１と、カメラ２０（Ｆ）により撮影される冶具１０の重心位置に対応する点Ｍ１とが一致している。
【００５２】
そして、上述した仮想的なリンク構造は、１個のリンク角の大きさに応じて姿勢が確定される。例えば、図１２に示すように、この仮想的なリンク構造について、冶具１０の重心位置に対応する点Ｍ１と、冶具１１の重心位置に対応する点Ｍ２との間のリンクの長さをＬＦと表す。また、同図に示すように、冶具１１の重心位置に対応する点Ｍ２と、冶具１２の重心位置に対応する点Ｍ３との間のリンクの長さをＬＲと表す。また、同図に示すように、冶具１２の重心位置に対応する点Ｍ３と、冶具１３の重心位置に対応する点Ｍ４との間のリンクの長さをＬＢと表す。また、同図に示すように、冶具１３の重心位置に対応する点Ｍ４と、冶具１０の重心位置に対応する点Ｍ１との間のリンクの長さをＬＬと表す。点Ｍ１と点Ｍ２を結ぶ線分の長さ、点Ｍ２と点Ｍ３を結ぶ線分の長さ、点Ｍ３と点Ｍ４を結ぶ線分の長さ、点Ｍ４と点Ｍ１とを結ぶ線分の長さはそれぞれ変わることなく固定である。
【００５３】
そして、図１２に示すように、この仮想的なリンク構造を表す四角形の一つの外角（車両ローカル座標軸系のＸ座標軸と点Ｍ２と点Ｍ３を結ぶ線分とが成す角度）をリンク構造の姿勢を確定させるリンク角αと表す。このとき、この仮想的なリンク構造は、例えば、リンク角αが小さくなると、リンク構造を表す四角形の内角Ｍ４Ｍ１Ｍ２、Ｍ２Ｍ３Ｍ４が小さくなり、リンク角αが大きくなると、リンク構造を表す四角形の内角Ｍ１Ｍ２Ｍ３、Ｍ３Ｍ４Ｍ１が小さくなるような構造である。すなわち、図１２上で点Ｍ１と点Ｍ２を結ぶ線分ＬＦの長さは図１１の右上段に示す点Ｍ１と点Ｍ２を結ぶ線分の長さと等しい。また、点Ｍ２と点Ｍ３を結ぶ線分ＬＲの長さは、図１１の左上段に示す点Ｍ２と点Ｍ３を結ぶ線分の長さと等しい。また、点Ｍ３と点Ｍ４を結ぶ線分ＬＢの長さは、図１１の右下段に示す点Ｍ３と点Ｍ４を結ぶ線分の長さと等しい。また、点Ｍ４と点Ｍ１とを結ぶ線分ＬＬの長さは図１１の左下段に示す点Ｍ４と点Ｍ１とを結ぶ線分の長さと等しい。
【００５４】
実施例２に係るキャリブレーション装置は、上述した図１２に示すような仮想的なリンク構造、すなわち、冶具１０の点Ｍ１、冶具１１の点Ｍ２、冶具１２の点Ｍ３、冶具１３の点Ｍ４を頂点とし、リンク角がαである仮想的なリンク構造を算出する。なお、カメラが５台（Ｍ＝５）以上の場合には、（Ｍ−３）個のリンク角を確定させることにより、車両座標系（世界座標系）におけるリンク構造の姿勢を一意に設定できる。
【００５５】
［リンク角をパラメータとするリンク構造の姿勢の決定］
続いて、実施例２に係るキャリブレーション装置は、仮想的なリンク構造のリンク角をαとしたときの各冶具の車両ローカル座標系における位置を算出する。
【００５６】
例えば、実施例２に係るキャリブレーション装置は、カメラ２０（Ｆ）の車両ローカル座標軸系と車両座標系（世界座標系）とが一致しているものと仮定する。このとき、冶具１０の重心位置に対応する点Ｍ１の座標、および冶具１１の重心位置に対応する点Ｍ２の座標は既知の値として得られる。そして、キャリブレーション装置は、リンク角α（図１２参照）を用いると、冶具１２の重心位置に対応する点Ｍ３の座標は、以下に示す式（９）で表される。なお、ＬＦ，ＬＲ，ＬＢ，ＬＬは、カメラ座標系での重心間距離と一致するので既知の値となる。
【数９】
2011107990.tif 000011
【００５７】
同様に、車両ローカル座標軸系のＸ座標軸とリンクＬＬが成す角度を（β+γ）とすると、冶具１３の重心位置に対応する点Ｍ４は、以下に示す式（１０）で表される。
【数１０】
2011107990.tif 000012
【００５８】
また、角Ｍ２Ｍ１Ｍ３に該当する角度βは、以下に示す式（１１）で表される。
【数１１】
2011107990.tif 000013
【００５９】
ここで、余弦定理より、ＬＢ２を以下の式（１２）で表すことができ、ｃｏｓγを以下の式（１３）で表すことができるので、角Ｍ３Ｍ１Ｍ４に該当する角度γは、以下に示す式（１４）で表される。
【数１２】
2011107990.tif 000014
【数１３】
2011107990.tif 000015
【数１４】
2011107990.tif 000016
【００６０】
そして、冶具１０の重心位置に対応する点Ｍ１と、冶具１１の重心位置に対応する点Ｍ２との距離を以下に示す式（１５）で表すことができる。
【数１５】
2011107990.tif 000017
【００６１】
このようにして、実施例２に係るキャリブレーション装置は、式（９）〜（１５）により、仮想的なリンク構造（図１２参照）のリンク角をαとしたときの各冶具の位置をそれぞれ算出できる。
【００６２】
［車両座標系における各冶具の頂点（マーカ）の座標の算出］
次に、実施例２に係るキャリブレーション装置は、上述したような仮想的なリンク構造（図１２参照）において、特定のカメラにより検出された冶具の頂点（マーカ）の車両座標系における位置（座標）を算出する。
【００６３】
例えば、実施例２に係るキャリブレーション装置は、以下の説明において、カメラｍから検出された冶具ｇのｎ番目の頂点の車両ローカル座標軸系における座標値を、Ｐｇ-ｎＣＡＭ-ｍと記述する。ここで、ｍはカメラの識別子（ｍ＝Ｆ，Ｒ，Ｂ，Ｌ）である。また、ｇは冶具の識別子（ｇ＝１，２，３，４）である。例えば、冶具１０には識別子ｇ＝１を割り当て、冶具１１には識別子ｇ＝２を割り当て、冶具１２には識別子ｇ＝３を割り当て、冶具１３には識別子ｇ＝４を割り当てる。また、ｎは冶具中の頂点（マーカ）の識別子（ｎ＝１，２，３）である。例えば、カメラ２１（Ｒ）から検出された冶具１１（割り当て識別子ｇ＝２）の１番目の頂点の車両ローカル座標軸系における座標値は、Ｐ２-１ＣＡＭ-Ｒと表される。
【００６４】
更に、実施例２に係るキャリブレーション装置は、以下の説明において、冶具ｇの重心位置をカメラｍの車両ローカル座標軸系でＭｇＣＡＭ-ｍと記述し、カメラｍで検出された２つの三角形冶具の重心位置をつなぐ線分の方向単位ベクトルをｑＣＡＭ-ｍと記述する。例えば、冶具１１（割り当て識別子ｇ＝２）の重心位置は、カメラ２１（Ｒ）の車両ローカル座標軸系でＭ２ＣＡＭ-Ｒと表される。また、例えば、カメラ２１（Ｒ）で検出された２つの冶具１１の重心位置Ｍ２ＣＡＭ-Ｒと、冶具１２の重心位置Ｍ３ＣＡＭ-Ｒをつなぐ線分の方向単位ベクトルは、ｑＣＡＭ-Ｒと表される。
【００６５】
また、実施例２に係るキャリブレーション装置は、以下の説明において、カメラｍにより検出された冶具の頂点（マーカ）の世界座標系における座標値を、Ｐｍ-ｇ-ｎＣＡＲと記述する。
【００６６】
また、実施例２に係るキャリブレーション装置は、以下の説明において、カメラｍにより検出された冶具の車両ローカル座標軸系の座標値を車両座標系（世界座標系）の座標値に変換する回転移動をＲｏｔＺ（δｍ）と定義する。また、実施例２に係るキャリブレーション装置は、以下の説明において、カメラｍにより検出された冶具の車両ローカル座標軸系の座標値を車両座標系（世界座標系）の座標値に変換する並行移動をＴｒａｎｓ（εｍ）と定義する。
【００６７】
実施例２に係るキャリブレーション装置は、以下のような手順で、カメラにより検出された冶具の頂点（マーカ）の車両座標系における位置（座標）を算出する。すなわち、キャリブレーション装置は、各カメラで検出された冶具の位置を示す車両ローカル座標系の原点を一致させる。そして、キャリブレーション装置は、上述した仮想的なリンク構造（図１２参照）となるように、各カメラで検出された冶具の重心位置を移動させるパラメータ（回転移動量および並行移動量）を算出する。
【００６８】
以下では、例えば、カメラ２１（Ｒ）により検出された冶具の頂点（マーカ）の車両座標系における位置（座標）を算出する場合を例に挙げて説明する。まず、実施例２に係るキャリブレーション装置は、既に算出している車両座標系（世界座標系）における冶具の重心位置の座標から、冶具の重心位置間を結ぶ線分の方向単位ベクトルｑＣＡＲ-ｍを計算する。例えば、図１３に示すように、キャリブレーション装置は、カメラ２１（Ｒ）で検出された２つの冶具１１の重心位置Ｍ２ＣＡＭ-Ｒと、冶具１２の重心位置Ｍ３ＣＡＭ-Ｒをつなぐ線分の方向単位ベクトルｑＣＡＭ-Ｒとを計算する。図１３は、実施例２に係るカメラ相互のパラメータ算出を説明する図である。
【００６９】
また、実施例２に係るキャリブレーション装置は、カメラ２０（Ｆ）の車両ローカル座標軸系と車両座標系（世界座標系）とが一致しているものと仮定したことから、車両座標系における冶具の重心位置間を結ぶ方向単位ベクトルｑｍＣＡＲを求めることができる。なお、ｍは、カメラを示す識別子（ｍ＝Ｆ，Ｂ，Ｒ，Ｌ）である。例えば、図１４に示すように、キャリブレーション装置は、カメラ２１（Ｒ）により検出された冶具の重心位置Ｍ２とＭ３とを結ぶ方向単位ベクトルｑＲＣＡＲを算出できる。図１４は、実施例２に係るカメラ相互のパラメータ算出を説明する図である。
【００７０】
そして、実施例２に係るキャリブレーション装置は、算出した方向単位ベクトルｑＣＡＭ-ｍおよびｑＲＣＡＲを用いて、上述した仮想的なリンク構造（図１２参照）となるように、カメラ２１（Ｒ）で検出された冶具１１の重心位置Ｍ２を移動させる回転移動量δＲおよび平行移動量εｍを算出する。
【００７１】
すなわち、実施例２に係るキャリブレーション装置は、カメラ２０（Ｆ）により検出された冶具の位置が投影されている車両ローカル座標軸系の原点と、カメラ２１（Ｒ）により検出された冶具の位置が投影されている車両ローカル座標軸系の原点とを一致させる。そして、キャリブレーション装置は、上述した方向単位ベクトルｑＣＡＭ-ＲおよびｑＲＣＡＲを目安として回転移動量δＲを算出する。すなわち、キャリブレーション装置は、上述した仮想的なリンク構造（図１２）に一致させるように、カメラ２１（Ｒ）により検出された冶具１１の重心位置Ｍ２を回転移動させる回転移動量δＲ（図１４のＡ参照）を算出する。例えば、キャリブレーション装置は、図１４に示すＲ’上の方向単位ベクトルｑＣＡＭ-Ｒと、図１４に示すＲ上の方向単位ベクトルｑＲＣＡＲとが並行となるような回転移動量δＲを算出する。
【００７２】
次に、キャリブレーション装置は、上述した方向単位ベクトルｑＣＡＭ-ＲおよびｑＲＣＡＲを目安として平行移動量εｍを算出する。すなわち、キャリブレーション装置は、上述した仮想的なリンク構造（図１２）に一致させるように、カメラ２１（Ｒ）により検出された冶具１１の重心位置Ｍ２を並行移動させる平行移動量εｍ（図１４のＢ参照）を算出する。例えば、キャリブレーション装置は、回転移動後の方向単位ベクトルｑＣＡＭ-Ｒと、図１４に示すＲ上の単位ベクトルｑＲＣＡＲとを一致させる平行移動量εｍを算出する。そして、キャリブレーション装置は、算出した回転移動量δＲおよび平行移動量εｍを用いて、カメラ２１（Ｒ）により検出された冶具の頂点（マーカ）の車両座標系における位置（座標）を算出する。
【００７３】
なお、実施例２に係るキャリブレーション装置は、カメラ２０（Ｆ）〜カメラ２３（Ｌ）により検出された冶具の位置の全てについて、上述した操作（図１４）と同様の操作を実行する。これにより、キャリブレーション装置は、車両座標系における冶具１０〜冶具１３の全ての頂点座標を算出する。
【００７４】
図１４のＡに示す回転移動量δｍは以下に示す式（１６）で算出される。
【数１６】
2011107990.tif 000018
【００７５】
回転移動量δｍにより回転移動された後の冶具の重心位置のうちの１つ（ＭｇＣＡＭ-ｍ）を示す座標値は、以下に示す式（１７）で算出される。なお、回転移動後の座標値は、式（１７）の左辺に該当する。
【数１７】
2011107990.tif 000019
【数１８】
2011107990.tif 000020
【００７６】
図１４のＢに示す平行移動量εｍは、以下に示す式（１９）で算出される。
【数１９】
2011107990.tif 000021
【００７７】
車両座標系（世界座標系）における冶具の頂点（マーカ）の座標は、以下に示す式（２０）および式（２１）で算出される。
【数２０】
2011107990.tif 000022
【数２１】
2011107990.tif 000023
【００７８】
［評価関数の評価値が最小となるときのリンク角の算出］
カメラ２０〜２３で観測された冶具の頂点（マーカ）の車両座標系（世界座標系）における位置を導出後、実施例２に係るキャリブレーション装置は、評価関数の評価値が最小となるときのリンク角度αを算出する。
【００７９】
冶具の車両座標系（世界座標系）における重心位置は、どのカメラで観測された冶具についても一致している。しかしながら、図１５に示すように、仮定したリンク構造上において、冶具が有する各頂点（マーカ）の位置は、必ずしも一致しているとは限らない。そこで、実施例２に係るキャリブレーション装置は、異なるカメラで観測された同一の冶具について同一の頂点の座標値を比較し、そのズレ量（距離）の差分として、例えば差分絶対値和を以下に示す式（２３）により算出する。差分絶対値和の算出後、キャリブレーション装置は、式（２３）により差分絶対値和を用いて、以下に示す式（２２）のような評価値関数Ｅを算出する。そして、キャリブレーション装置は、式（２２）に示す評価関数を用いて、評価関数の評価値が最小となるときのリンク角度αを算出する。なお、差分絶対和を用いる場合に限られるものではなく、例えば、差分そのものを用いた評価関数を算出してもよい。図１５は、実施例２に係る冶具頂点のずれを示す図である。
【数２２】
2011107990.tif 000024
【数２３】
2011107990.tif 000025
【００８０】
なお、式（２３）のパラメータｍ１，ｍ２は、撮影範囲が重複するカメラ２０〜２３（Ｆ，Ｂ，Ｒ，Ｌ）のいずれかの識別子を示す。例えば、カメラ２０（Ｆ）およびカメラ（Ｒ）で重複して撮影された冶具１１の頂点間の差分２乗和を算出する場合であれば、ｍ１＝Ｆ、ｍ２＝Ｒとなる。
【００８１】
上述した式（２２）に示す評価値関数Ｅの評価値が最小となるときのリンク角度αを求めた後、実施例２に係るキャリブレーション装置は、カメラ相互のパラメータ（θ、ｘ、ｙ）をそれぞれ求める。カメラ相互のパラメータ（θ、ｘ、ｙ）は、以下に示す式（２４）〜（２６）で表される。
【数２４】
2011107990.tif 000026
【数２５】
2011107990.tif 000027
【数２６】
2011107990.tif 000028
【００８２】
図１６は、実施例２に係るキャリブレーション装置の構成を示す図である。同図に示すように、実施例２に係るキャリブレーション装置１００は、カメラ２０〜２３に接続され、フレームバッファ１１０と、マーカ抽出部１２０と、第１パラメータ推定部１３０と、第２パラメータ推定部１４０と、パラメータ記憶部１５０とを有する。同図に示す冶具１０〜１３は、上述した図２に示す冶具に対応する。また、同図に示す冶具１０〜１３と、カメラ２０〜２３との位置関係は、上述したい図３に示す位置関係を有するものとする。
【００８３】
フレームバッファ１１０は、カメラ２０〜２３により撮影された画像（図６参照）をそれぞれ記憶する。
【００８４】
マーカ抽出部１２０は、フレームバッファ１１０から画像データを取得し、取得した画像データ上のマーカの画像座標を特定するポインティング処理を行う。例えば、マーカ抽出部１２０は、周知の画像処理技術を利用して、取得した画像データ上のマーカの画像を認識し、認識したマーカを抽出することによりポインティング処理を行うことができる。さらに、マーカ抽出部１２０は、ポインティング処理を行う場合に、同一発光パターンを示す近傍の点滅画素集合をまとめてマーカとして認識し、認識したマーカの座標を特定するようにしてもよい。マーカ抽出部１２０は、特定した画像座標のデータを各カメラの画像データごとに分類して、第１パラメータ推定部１３０に出力する。
【００８５】
また、マーカの位置の特定が容易となるように、発光・点滅するＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）などをマーカとして用いることもできる。なお、マーカ抽出部１２０は、タッチパネルなどのポインティングデバイスに画像を表示し、ユーザによるタッチペンの接触位置を検出することにより、マーカの画像座標を特定してもよい。
【００８６】
第１パラメータ推定部１３０は、上述したように、カメラ毎にパラメータ（ψ、φ、ｚ）を算出する。例えば、第１パラメータ推定部１３０は、マーカ抽出部１２０から各マーカの画像座標のデータを取得した場合に、変換テーブルを用いて、各画像座標を視線ベクトルｖｎに変換する。そして、第１パラメータ推定部１３０は、最急降下法などを用いて式（６）に示した評価関数Ｅの値が最小値をとなるＨ（ｚ）とｎｐとを求め、求めたｎｐと式（７）および式（８）とを用いることにより、カメラのパラメータ（ψ、φ、ｚ）を算出する。第１パラメータ推定部１３０は、カメラ毎に算出したパラメータ（ψ、φ、ｚ）のデータおよび視線ベクトルのデータを第２パラメータ推定部１４０に出力する。
【００８７】
第２パラメータ推定部１４０は、上述したように、カメラ相互のパラメータ（θ、ｘ、ｙ）をカメラごとに算出する。例えば、カメラ２０〜２３により撮影された冶具の画像から、冶具の頂点（マーカ）の位置を検出することにより、カメラ座標系における各カメラと冶具との相対的な位置関係を求める。そして、第２パラメータ推定部１４０は、冶具間で相互に対応する代表点（例えば、重心位置に対応する点）を決定し、カメラと冶具との相対的な位置関係を維持したままで、各冶具の代表点が必ず一致するように串刺しにした仮想的なリンク構造を作成する。
【００８８】
リンク構造の作成後、第２パラメータ推定部１４０は、リンク構造の一つのリンク角をパラメータとしてリンク構造の姿勢を決定し、決定した姿勢時の各冶具の車両座標系における頂点座標を算出する（式（２０）および（２１））。そして、第２パラメータ推定部１４０は、車両座標系における頂点座標値から評価関数（式（２２））を算出し、評価関数の評価値が最小となるリンク角を求める。例えば、第２パラメータ推定部１４０は、リンク角αの初期値を設定して所定の角度（Δα）刻みで最急降下法を行い、評価関数Ｅの評価値が減少する方向にαの値を動かす。そして、第２パラメータ推定部１４０は、評価関数Ｅが最小となるαを検出すると、Δαを１／２倍して、更に細かい刻みで評価関数Ｅの評価値が減少する方向への探索を行い、Δαが０．１度以下になったときにリンク角αの探索を終了する。
【００８９】
リンク角を求めた後、第２パラメータ推定部１４０は、求めたリンク角から、カメラ相互のパラメータ（θ、ｘ、ｙ）をカメラごとに算出する（式（２４）〜（２６））。
【００９０】
なお、第２パラメータ推定部１４０による処理の流れについては、後述する処理の流れの説明にて詳述する。
【００９１】
パラメータ記憶部１５０は、カメラ毎にパラメータ（ψ、θ、φ、ｘ、ｙ、ｚ）を記憶する。パラメータ記憶部１５０に記憶されたカメラのパラメータは、各種のアプリケーションによって利用される。例えば、パラメータ記憶部１５０によりカメラ毎に記憶されたパラメータ（ψ、θ、φ、ｘ、ｙ、ｚ）は、俯瞰画像を作成するためのアプリケーションによって利用される。
【００９２】
なお、パラメータ記憶部１５０は、例えば、ＲＡＭ（Random Access Memory)、ＲＯＭ（Read Only Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
【００９３】
なお、第１パラメータ推定部１３０および第２のパラメータ推定部１４０は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ (Field Programmable Gate Array)などの集積回路である。また、第１パラメータ推定部１３０および第２パラメータ推定部１４０は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などの電子回路である。
【００９４】
［実施例２による処理］
図１７〜図２０は、実施例２に係るキャリブレーション装置の処理の流れを示す図である。まず、図１７を用いて、実施例２に係るキャリブレーション装置の処理の全体的な流れを説明する。同図に示すように、キャリブレーション装置１００において、カメラ２０〜２３が画像を撮影し（ステップＳ１７０１）、フレームバッファ１１０が画像データを記憶する（ステップＳ１７０２）。
【００９５】
続いて、マーカ抽出部１２０が、画像データからマーカの画像座標を特定し（ステップＳ１７０３）、第１パラメータ推定部１３０が、カメラのパラメータ（ψ、φ、ｚ）を算出する（ステップＳ１７０４）。
【００９６】
そして、第２パラメータ推定部１４０が、カメラのパラメータ（θ、ｘ、ｙ）を算出し（ステップＳ１７０５）、パラメータ記憶部１５０が、カメラのパラメータ（ψ、θ、φ、ｘ、ｙ、ｚ）を記憶する（ステップＳ１７０６）。なお、ステップＳ１７０５の処理は、図１８を用いて、以下で詳述する。
【００９７】
次に、図１８を用いて、第２パラメータ推定部１４０によるリンク角αの探索処理の流れを説明する。例えば、第１パラメータ推定部１３０によるパラメータ（θ、ｘ、ｙ）の算出が完了すると、第２パラメータ推定部１４０は、リンク角αの探索処理を開始する。
【００９８】
すなわち、第２パラメータ推定部１４０は、同図に示すように、リンク角αの初期値（例えば、α＝９０ｄｅｇ）を設定し（ステップＳ１８０１）、最急降下法の探索処理におけるαの初期増分（例えば、Δα＝１ｄｅｇ）を設定する（ステップＳ１８０２）。そして、第２パラメータ推定部１４０は、リンク角αのときの評価関数Ｅ（式２２）の評価値Ｅ（α）を算出する（ステップＳ１８０３）。なお、ステップＳ１８０３の処理は、図１９を用いて、以下に詳述する。
【００９９】
Ｅ（α）の算出後、第２パラメータ推定部１４０は、算出したＥ（α）を最小値（Ｅ  ｍｉｎ）に設定するとともに、リンク角αの初期値を最小値（α  ｍｉｎ）に設定する（ステップＳ１８０４）。そして、第２パラメータ推定部１４０は、リンク角αを初期増分だけ増加させたリンク角α＋Δαのときの評価関数Ｅ（式２２）の評価値Ｅ（α＋Δα）を算出する（ステップＳ１８０５）。
【０１００】
Ｅ（α＋Δα）の算出後、第２パラメータ推定部１４０は、算出したＥ（α＋Δα）が最小値「Ｅ  ｍｉｎ」よりも小さいか否かを判定する（ステップＳ１８０６）。判定の結果、Ｅ（α＋Δα）が「Ｅ  ｍｉｎ」よりも小さい場合には（ステップＳ１８０６肯定）、第２パラメータ推定部１４０は、Ｅ（α＋Δα）を最小値（Ｅ  ｍｉｎ）に設定する（ステップＳ１８０７）。さらに、第２パラメータ推定部１４０は、リンク角α＋Δαを最小値（α  ｍｉｎ）に設定する（ステップＳ１８０７）。そして、第２パラメータ推定部１４０は、リンク角αを初期増分だけ減少させたリンク角α−Δαのときの評価関数Ｅ（式２２）の評価値Ｅ（α−Δα）を算出する（ステップＳ１８０８）。
【０１０１】
ここで、ステップＳ１８０６の説明に戻る。判定の結果、Ｅ（α＋Δα）が「Ｅ  ｍｉｎ」よりも小さくない場合には（ステップＳ１８０６否定）、第２パラメータ推定部１４０は、そのまま、上述したステップＳ１８０８の処理に移行する。
【０１０２】
Ｅ（α−Δα）の算出後、第２パラメータ推定部１４０は、算出したＥ（α−Δα）が最小値「Ｅ  ｍｉｎ」よりも小さいか否かを判定する（ステップＳ１８０９）。判定の結果、Ｅ（α−Δα）が「Ｅ  ｍｉｎ」よりも小さい場合には（ステップＳ１８０９肯定）、第２パラメータ推定部１４０は、Ｅ（α−Δα）を最小値（Ｅ  ｍｉｎ）に設定する（ステップＳ１８１０）。さらに、第２パラメータ推定部１４０は、リンク角α−Δαを最小値（α  ｍｉｎ）に設定する（ステップＳ１８１０）。そして、第２パラメータ推定部１４０は、リンク角αと「α  ｍｉｎ」とが等しいか否かを判定する（ステップＳ１８１１）。
【０１０３】
判定の結果、リンク角αと「α  ｍｉｎ」とが等しい場合には（ステップＳ１８１１肯定）、第２パラメータ推定部１４０は、Δαが、例えば、０．１度（ｄｅｇ）よりも小さいか否かを判定する（ステップＳ１８１２）。判定の結果、Δαが０．１度（ｄｅｇ）よりも小さい場合には（ステップＳ１８１２肯定）、第２パラメータ推定部１４０は、そのときの「α  ｍｉｎ」を出力して、リンク角αの探索処理を終了する。そして、第２パラメータ推定部１４０は、出力したリンク角αを用いて、カメラのパラメータ（θ、ｘ、ｙ）を算出する。
【０１０４】
ここで、ステップＳ１８１１の説明に戻ると、判定の結果、リンク角αと「α  ｍｉｎ」とが等しくない場合には（ステップＳ１８１１否定）、第２パラメータ推定部１４０は、「α  ｍｉｎ」をαに設定して、上述したステップＳ１８０５の処理に戻る。
【０１０５】
また、ステップＳ１８１２の説明に戻ると、判定の結果、Δαが０．１度（ｄｅｇ）よりも小さくない場合には（ステップＳ１８１２否定）、第２パラメータ推定部１４０は、Δαを２分の１倍して（ステップＳ１８１４）、上述したステップＳ１８０５の処理に戻る。
【０１０６】
なお、上述したリンク角αの探索処理（図１８）は、探索した角度と閾値との判定結果に応じて、その都度探索する角度を設定し、最小となるリンク角を探索する場合を説明した。しかしながら、これに限定されるものではなく、処理開始から、探索する角度を設定可能な最小値に設定して、最小となるリンク角を小刻みに探索するようにしてもよい。
【０１０７】
続いて、図１９を用いて、第２パラメータ推定部１４０による評価関数Ｅ（式２２）の評価値Ｅ（α）の算出処理の流れを説明する。第２パラメータ推定部１４０は、仮に、カメラ２０（Ｆ）の車両ローカル座標軸系と車両座標系（世界座標系）とが一致しているものと仮定する。そして、同図に示すように、第２パラメータ推定部１４０は、車両座標系（世界座標系）における冶具の重心位置の座標Ｍｇ（ｇ＝１，２，３，４）を算出する（ステップＳ１９０１）。なお、ステップＳ１９０１の処理は、図２０を用いて、以下に詳述する。
【０１０８】
Ｍｇ（ｇ＝１，２，３，４）の算出後、第２パラメータ推定部１４０は、上述した式（１６）および（１８）を用いて、回転移動を表す行列ＲｏｔＺ（δｍ）（ｍ＝Ｆ，Ｂ，Ｌ，Ｒ）を算出する（ステップＳ１９０２）。すなわち、第２パラメータ推定部１４０は、方向単位ベクトルｑＣＡＭ-ｍを用いて、カメラｍにより検出された冶具の車両ローカル座標軸系の位置を車両座標系（世界座標系）の位置に変換するための回転移動を表す行列ＲｏｔＺ（δｍ）を算出する。
【０１０９】
ＲｏｔＺ（δｍ）の算出後、第２パラメータ推定部１４０は、上述した式（１７）を用いて、冶具が有する各頂点の位置を回転移動させたときの座標値を算出する（ステップＳ１９０３）。座標値の算出後、第２パラメータ推定部１４０は、上述した式（１９）および（２１）を用いて、平行移動を表す行列Ｔｒａｎｓ（εｍ）を算出する（ステップＳ１９０４）。
【０１１０】
Ｔｒａｎｓ（εｍ）の算出後、第２パラメータ推定部１４０は、同一の冶具について、同一の頂点の座標値を比較し、そのズレ量（距離）の差分絶対値和（Ｅｓｕｂ）を、上述した式（２３）を用いてそれぞれ算出する（ステップＳ１９０５〜Ｓ１９０８）。すなわち、第２パラメータ推定部１４０は、ＲｏｔＺ（δｍ）およびＴｒａｎｓ（εｍ）を用いた上述の式（２０）により、車両ローカル座標軸系における冶具の各頂点の位置を車両座標系（世界座標系）の位置に変換した座標値をそれぞれ算出する。そして、第２パラメータ推定部１４０は、算出した各座標値を用いて、上述した差分絶対値和（Ｅｓｕｂ）を算出する。なお、ステップＳ１９０５〜Ｓ１９０８の処理は、図２１を用いて、以下に詳述する。
【０１１１】
差分絶対値和の算出後、第２パラメータ推定部１４０は、差分絶対値和を評価関数として設定することにより、上述した式（２２）に示す評価関数Ｅ（α）を算出する（ステップＳ１９０９）。
【０１１２】
続いて、図２０を用いて、第２パラメータ推定部１４０による冶具の重心位置の座標Ｍｇ（ｇ＝１，２，３，４）の算出処理の流れを説明する。同図に示すように、第２パラメータ推定部１４０は、冶具１０の重心位置に対応する点Ｍ１の座標として、既知であるカメラ２０（Ｆ）の車両ローカル座標軸系の値（Ｍ１ＣＡＭ-Ｆ）を設定する（ステップＳ２００１）。同様に、第２パラメータ推定部１４０は、冶具１１の重心位置に対応する点Ｍ２の座標として、カメラ２０（Ｆ）の車両ローカル座標軸系の値（Ｍ２ＣＡＭ-Ｆ）を設定する（ステップＳ２００２）。
【０１１３】
次に、第２パラメータ推定部１４０は、重心間距離であるリンク長Ｌｍ（ｍ＝Ｆ，Ｂ，Ｌ，Ｒ）を算出する（ステップＳ２００３）。そして、第２パラメータ推定部１４０は、車両ローカル座標軸系のＸ座標軸とリンクＬＲとが成す角度αとして、上述した式（９）を用いて、冶具１２の重心位置に対応する点Ｍ３の座標を算出する（ステップＳ２００４）。
【０１１４】
Ｍ３の座標を算出後、第２パラメータ推定部１４０は、上述した式（１５）を用いて、冶具１０の重心位置に対応する点Ｍ１と、冶具１１の重心位置に対応する点Ｍ２との距離Ｄ１３を算出する（ステップＳ２００５）。そして、第２パラメータ推定部１４０は、上述した式（１４）を用いて、角Ｍ３Ｍ１Ｍ４（図１２参照）に該当する角度γを算出する（ステップＳ２００６）。また、第２パラメータ推定部１４０は、上述した式（１１）を用いて、角Ｍ２Ｍ１Ｍ３（図１２参照）に該当する角度βを算出する（ステップＳ２００７）。
【０１１５】
そして、第２パラメータ推定部１４０は、上述した式（１０）に角度（β+γ）を代入することにより、冶具１３の重心位置に対応する点Ｍ４の座標を求める（ステップＳ２００８）。以後、第２パラメータ推定部１４０は、上述した図１９に示すステップＳ１９０２の処理に移行する。
【０１１６】
次に、図２１を用いて、図１９のステップＳ１９０５〜１９０８に示す差分絶対値和（Ｅｓｕｂ）の算出の流れを示す。図２１に示すように、第２パラメータ推定部１４０は、上述した式（２０）を用いて、各冶具の各頂点の車両座標系（世界座標系）における座標値をそれぞれ算出する（ステップＳ２１０１〜Ｓ２１０２）。そして、第２パラメータ推定部１４０は、上述した式（２３）を用いて、各冶具ごとに、同一の冶具について同一の頂点間の距離の差分絶対値和（Ｅｓｕｂ）を算出する（ステップＳ２１０３）。以後、第２パラメータ推定部１４０は、図１９に示すステップＳ１９０９の処理に移行する。
【０１１７】
上述してきたように、実施例２に係るキャリブレーション装置１００は、各マーカ間の距離が既知（例えば、Ｄ）である複数のマーカを有する冶具を、カメラ２０〜２３を用いて撮影する。そして、実施例２に係るキャリブレーション装置１００は、撮影された画像から冶具が有するマーカの位置を特定することにより、カメラのパラメータ（ψ、θ、φ、ｘ、ｙ、ｚ）を算出するので、従来技術のように、冶具とカメラとの配置位置に厳密性が要求されない。その結果、容易にカメラのキャリブレーションを実行することができ、ユーザの負担を軽減することができる。
【０１１８】
また、実施例２に係るキャリブレーション装置１００は、カメラと冶具との相対的な位置関係を維持したままで、各冶具の代表点が必ず一致するように串刺しにした仮想的なリンク構造を作成する。リンク構造の作成後、キャリブレーション装置１００は、リンク構造の一つのリンク角をパラメータとしてリンク構造の姿勢を決定し、決定した姿勢時の各冶具の車両座標系における頂点座標を算出する。頂点座標の算出後、キャリブレーション装置１００は、車両座標系における頂点座標値から評価関数を算出し、評価関数の評価値が最小となるリンク角を求める。リンク角を求めた後、キャリブレーション装置１００は、カメラ相互の（カメラ間の相対的位置関係を考慮した）パラメータ（θ、ｘ、ｙ）を算出する。すなわち、キャリブレーション装置１００は、リンク構造を一意に特定するリンク角の最適値を求めてリンク構造の姿勢を決定する。これにより、キャリブレーション装置１００は、カメラ相互の３パラメータ（θ、ｘ、ｙ）について４カメラ分の全１２パラメータの最適値の決定処理を、リンク角の１パラメータに置き換えて処理することができる。このようなことから、キャリブレーション装置１００は、カメラ相互のパラメータ（θ、ｘ、ｙ）を算出するために必要な他のパラメータを大幅に削減でき、容易かつ短時間でカメラのキャリブレーションを実施できる。
【０１１９】
なお、実施例２に係るキャリブレーション装置１００は、隣り合うカメラの視野が重なる部分に配置された冶具を各カメラで撮影するので、カメラ間の相対位置関係の推定が可能となる。その結果、鳥瞰図や全周囲画像や３６０度パノラマ画像を生成するのに必要なカメラパラメータを一括取得できる。
【０１２０】
また、カメラ２０〜２３と冶具１０〜１３との位置関係は、上述した図３の位置関係に限定されるものではない。具体的には、各カメラが撮影する１画面内に複数の冶具が撮影されており、かつ、画面中の冶具は、少なくとも２つのマーカを含む１冶具と、少なくとも３つのマーカを含む１冶具とを含むという条件、および同一の冶具が複数のカメラに撮影されるという条件を満たせば、カメラ２０〜２３、冶具１０〜１３の配置を変更してもよい。なお、冶具の形状は、図２に示す形状に限られるものではない、冶具間で共通の代表点を決定できる形状であれば、どのような形状の冶具を適用してもよい。
【実施例３】
【０１２１】
（１）装置構成
図１６に示すキャリブレーション装置１００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、キャリブレーション装置１００の分散・統合の具体的形態は図示のものに限られず、例えば、第１パラメータ推定部１３０と第２パラメータ推定部１４０とを機能的または物理的に統合してもよい。このように、キャリブレーション装置１００の全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１２２】
（２）キャリブレーション処理をコンピュータに実行させるプログラム
また、上述の実施例２で説明したキャリブレーション装置１００の各種の処理（例えば、図１７〜図２１参照）は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。
【０１２３】
そこで、以下では、図２２を用いて、上述の実施例２で説明したキャリブレーション装置１００による処理と同様の機能を実現するキャリブレーションプログラムを実行するコンピュータの一例を説明する。図２２は、キャリブレーション処理を実行するコンピュータの一例を示す図である。
【０１２４】
図２１に示すように、キャリブレーション装置１００として機能するコンピュータ３００は、入力装置３０１、モニタ３０２、ＲＡＭ（Random  Access  Memory）３０３、ＲＯＭ（Read  Only  Memory）３０４を有する。また、コンピュータ３００は、画像（冶具を含んだ画像）を撮影するカメラ３０５、ＣＰＵ（Central  Processing  Unit）３０６、ＨＤＤ（Hard  Disk  Drive）３０７を有する。
【０１２５】
そして、コンピュータ３００は、入力装置３０１、モニタ３０２、ＲＡＭ３０３、ＲＯＭ３０４、カメラ３０５、ＣＰＵ３０６およびＨＤＤ３０７をバス３０８で相互に接続する。
【０１２６】
そして、ＨＤＤ３０７には、上述したキャリブレーション装置１００の機能と同様の機能を発揮するキャリブレーションプログラム３０７ａが記憶されている。なお、このキャリブレーションプログラム３０７ａを適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。
【０１２７】
そして、ＣＰＵ３０６が、キャリブレーションプログラム３０７ａをＨＤＤ３０７から読み出してＲＡＭ３０３に展開することにより、図２１に示すように、キャリブレーションプログラム３０７ａはキャリブレーションプロセス３０６ａとして機能する。
【０１２８】
すなわち、キャリブレーションプロセス３０６ａは、カメラ３０５により取得された画像データ等の各種データ３０３ａをＲＡＭ３０３において身に割り当てられた領域に展開し、この展開した各種データ３０３ａに基づいて各種処理を実行する。
【０１２９】
なお、キャリブレーションプロセス３０６ａは、特に、図１６に示したマーカ抽出部１２０、第１パラメータ推定部１３０、第２パラメータ推定部１４０において実行される処理に対応する。
【０１３０】
なお、キャリブレーションプログラム３０７ａについては、必ずしも最初からＨＤＤ３０７に記憶させておく必要はない。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００がこれらから各プログラムを読み出して実行するようにしてもよい。
【０１３１】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておく。そして、コンピュータ３００がこれらから各プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１３２】
１  キャリブレーション装置
２  画像取得部
３  リンク構造形成部
４  リンク角探索部
５  パラメータ算出部
７  車両
１０，１１，１２，１３  冶具
２０，２１，２２，２３  カメラ
１００  キャリブレーション装置
１１０  フレームバッファ
１２０  マーカ抽出部
１３０  第１パラメータ推定部
１４０  第２パラメータ推定部
１５０  パラメータ記憶部
３００  コンピュータ
３０１  入力装置
３０２  モニタ
３０３  ＲＡＭ（Random Access Memory）
３０３ａ  各種データ
３０４  ＲＯＭ（Random Only Memory）
３０５  カメラ
３０６  ＣＰＵ（Central Processing Unit）
３０６ａ  キャリブレーションプロセス
３０７  ＨＤＤ（Hard Disk Drive）
３０７ａ  キャリブレーションプログラム
３０８    バス
【図１】
2011107990.tif 000029
【図２】
2011107990.tif 000030
【図３】
2011107990.tif 000031
【図４】
2011107990.tif 000032
【図５】
2011107990.tif 000033
【図６】
2011107990.tif 000034
【図７】
2011107990.tif 000035
【図８】
2011107990.tif 000036
【図９】
2011107990.tif 000037
【図１０】
2011107990.tif 000038
【図１１】
2011107990.tif 000039
【図１２】
2011107990.tif 000040
【図１３】
2011107990.tif 000041
【図１４】
2011107990.tif 000042
【図１５】
2011107990.tif 000043
【図１６】
2011107990.tif 000044
【図１７】
2011107990.tif 000045
【図１８】
2011107990.tif 000046
【図１９】
2011107990.tif 000047
【図２０】
2011107990.tif 000048
【図２１】
2011107990.tif 000049
【図２２】
2011107990.tif 000050