(57)【特許請求の範囲】
【請求項１】
自己及び相互の鉛直下を撮像可能に設置された複数のカメラの姿勢を前記複数のカメラに共通の世界座標系にて算出するカメラ姿勢算出装置であって、
前記各カメラの鉛直下に配置されたマーカーと、
前記複数のカメラのうちの任意の２つからなるカメラ対について、当該カメラ対の任意の一方のカメラで撮像した画像における自己の鉛直下の自己マーカー及び当該カメラ対の他方のカメラの鉛直下の相手マーカーの位置座標を用いて前記一方のカメラから前記各マーカーへの視線方向を算出する視線方向算出部と、
前記自己マーカーへの前記視線方向から得られる鉛直方向と、前記相手マーカーへの前記視線方向から得られる前記カメラ間の方位とを用いて前記世界座標系における前記カメラ対について前記姿勢を算出する姿勢算出部と、
を備えたことを特徴とするカメラ姿勢算出装置。
【請求項２】
請求項１に記載のカメラ姿勢算出装置において、
前記姿勢算出部は、前記自己マーカーへの前記視線方向を用いて前記各カメラの鉛直回転量を算出すること、を特徴とするカメラ姿勢算出装置。
【請求項３】
請求項２に記載のカメラ姿勢算出装置において、
前記姿勢算出部は、前記カメラ対における一方カメラから前記相手マーカーへの前記視線方向を当該一方カメラの前記鉛直回転量だけ回転させて当該一方カメラからの他方カメラの方位を算出すること、を特徴とするカメラ姿勢算出装置。
【請求項４】
請求項１から請求項３のいずれか１つに記載のカメラ姿勢算出装置において、
前記マーカーは、前記カメラのレンズ部に上端を固定された糸の下端に取り付けられて中空に配置されること、を特徴とするカメラ姿勢算出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視等の対象空間を俯瞰する複数のカメラを互いに撮像領域が重なるように配置したカメラシステムにおいて、これらのカメラの外部パラメータをキャリブレーションするカメラ姿勢算出装置に関する。
【背景技術】
【０００２】
対象空間を撮影した画像に基づいて移動物体を追跡してその行動を分析する場合、複数のカメラを用い異なる視点から共通の領域を撮像すれば、移動物体を３次元的に把握してオクルージョンの問題に対処でき、また複数の視野を連結することで広範囲に追跡できるというメリットがある。
【０００３】
そのようなカメラシステムを構築するためには、共通の座標系（世界座標系）における各カメラの外部パラメーター（カメラの位置・姿勢）を計測する校正（キャリブレーション）を行い、キャリブレーション結果に基づいて各カメラによる移動物体の追跡結果を統合する必要がある。
【０００４】
キャリブレーションを行なう場合、下記特許文献１に記載の発明のように複数のマーカーなどの基準物体を設置して撮像したり、またはパターンが描かれたボードを設置して撮像したりすることが行われている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−８６１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
キャリブレーションの精度を確保するためには監視カメラの画像上でマーカーの間隔が十分に離れて写されている、またはパターンが十分に大きく写されている必要がある。例えば天井設置された監視カメラのキャリブレーションを行なう場合、マーカーであれば例えば３ｍ間隔で設置する必要があり、ボードであれば３ｍ四方の大きさが必要である。
【０００７】
しかしながら、什器等が設置された建物内、或いは建物内の廊下などで上述のような基準物体を設置するスペースを確保することは困難であった。
【０００８】
本発明は上記問題点を解決するためになされたものであり、キャリブレーションに要するスペースを小さくすることが可能なカメラ姿勢算出装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るカメラ姿勢算出装置は、自己及び相互の鉛直下を撮像可能に設置された複数のカメラの姿勢を前記複数のカメラに共通の世界座標系にて算出するカメラ姿勢算出装置であって、前記各カメラの鉛直下に配置されたマーカーと、前記各カメラで撮像した画像における自己の鉛直下の自己マーカー及び他のカメラの鉛直下の相手マーカーの位置座標を用いて当該カメラから当該各マーカーへの視線方向を算出する視線方向算出部と、前記自己マーカーへの前記視線方向から得られる鉛直方向と、前記相手マーカーへの前記視線方向から得られる前記カメラ間の方位とを用いて前記世界座標系における前記各カメラの前記姿勢を算出する姿勢算出部と、を備える。
【００１０】
他の本発明に係るカメラ姿勢算出装置においては、前記姿勢算出部は、前記自己マーカーへの前記視線方向を用いて前記各カメラの鉛直回転量を算出する。
【００１１】
別の本発明に係るカメラ姿勢算出装置においては、前記姿勢算出部は、一対の前記カメラにおける一方カメラから前記相手マーカーへの前記視線方向を当該一方カメラの前記鉛直回転量だけ回転させて当該一方カメラからの他方カメラの方位を算出する。
【００１２】
さらに別の本発明に係るカメラ姿勢算出装置においては、前記マーカーは、前記カメラのレンズ部に上端を固定された糸の下端に取り付けられて中空に配置される。
【発明の効果】
【００１３】
本発明によれば、マーカーの配置に基本的に各カメラの鉛直直下のスペースしか必要としないため、広いスペースを確保できない場所でもキャリブレーションが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る移動物体追跡装置のブロック構成図である。
【図２】一対のカメラ及びそれらのマーカーについての位置関係、及び各カメラの姿勢の一例を示す３次元空間の模式的な斜視図である。
【図３】図２の設置状況に対応して３次元空間に設定された座標軸及びパラメータを示した模式図である。
【図４】図２の配置状況にて２つのカメラそれぞれで撮影される画像の一例を示す模式図である。
【図５】鉛直回転量の算出に係るパラメーターを３次元空間内にて図示した模式図である。
【図６】水平回転量の算出に係るパラメーターを３次元空間内にて図示した模式図である。
【図７】キャリブレーションの概略のフロー図である。
【図８】座標変換処理の一例の概略のフロー図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態（以下実施形態という）について、図面に基づいて説明する。本実施形態は、監視対象空間を俯瞰する複数のカメラを互いに撮像領域が重なるように配置したカメラシステムに本発明に係るカメラ姿勢算出装置を適用したものであり、カメラの外部パラメータをキャリブレーションする。本実施形態においては外部パラメータのうち主にカメラの姿勢のキャリブレーションが行われる。
【００１６】
本カメラシステムとして複数台のカメラが撮像する画像を用いて人物等の移動物体を追跡する移動物体追跡装置を例に以下、説明する。説明を簡単にするためにカメラシステムが２台のカメラからなる例で説明する。なお、カメラシステムが３台以上のカメラからなる場合には、それらの２台ずつを以下に述べる実施形態と同様にしてキャリブレーションすればよい。
【００１７】
図１は、実施形態に係る移動物体追跡装置１のブロック構成図である。移動物体追跡装置１は、カメラ２、制御部３、記憶部４、入力部５及び出力部６を含んで構成される。カメラ２、記憶部４、入力部５及び出力部６は制御部３に接続される。カメラのキャリブレーション作業時には各カメラ２にマーカー７が吊り下げられる。
【００１８】
カメラ２は監視カメラであり、監視空間を臨むように設置され、監視空間を所定の時間間隔で撮影する。撮影された監視空間の監視画像は順次、制御部３へ出力される。専ら床面又は地表面等の基準面に沿って移動する人の位置、移動を把握するため、カメラ２は基本的に人を俯瞰撮影可能な高さに設置される。ここでは説明のため、カメラ２は同一高の床上にあるものとし、床は傾いていないものとする。例えば、本実施形態では移動物体追跡装置１は屋内監視に用いられ、カメラ２は天井に設置される。また、カメラ２のレンズには等距離射影の魚眼レンズを使用する。
【００１９】
制御部３は、ＣＰＵ(Central Processing Unit)、ＤＳＰ（Digital Signal Processor）、ＭＣＵ（Micro Control Unit）等の演算装置を用いて構成され、記憶部４からプログラムを読み出して実行し、通常動作時には移動物体追跡処理を行う移動物体追跡部３Ａとして機能するが、カメラシステムの設置時等にはキャリブレーションを行うキャリブレーション部３Ｂとして機能する。
【００２０】
移動物体追跡部３Ａは、異なる位置に配置された複数のカメラ２で共通領域を撮影する。そして、各カメラ２による移動物体の追跡結果を統合してそれにより得られる３次元的な位置に基づいて当該移動物体を追跡する。移動物体追跡部３Ａは座標変換部３３を備え、３次元的な位置の追跡をカメラ２に共通する世界座標系にて行う。
【００２１】
キャリブレーション部３Ｂは、視線方向算出部３０、姿勢算出部３１及び変換行列算出部３２として機能する。これら各部３０〜３２の機能については後述する。
【００２２】
記憶部４は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ハードディスク等の記憶装置である。記憶部４は、制御部３で使用されるプログラムやデータを記憶する。これに記憶されるデータには、設定情報４０、マーカー座標４１及び変換行列４２などがある。記憶部４は制御部３からの要求に応じてこれらデータの参照・更新を行う。
【００２３】
設定情報４０は、本発明を用いたキャリブレーション前にあらかじめ実測しておく情報である。設定情報４０には、カメラの床面からの高さである地上高ｈ、カメラのレンズの焦点距離ｆ、カメラのマーカー間の距離ｄが含まれる。地上高ｈとマーカー間の距離ｄは、カメラ２の設置時に例えば、メジャーで実測する。
【００２４】
マーカー座標４１は、カメラ２で撮像した画像上における自己マーカー座標及び相手マーカー座標である。自己マーカー座標とは、画像を撮影したカメラ２自身の鉛直下に配置されたマーカーの座標であり、相手マーカー座標とは、画像を撮影したカメラ２とは別のカメラ２の下に配置されるマーカーの座標である。ここで、マーカー座標４１はカメラ２の撮像面の２次元座標系ｘｙで表され、画像上のレンズ中心位置を原点とした座標で表される。
【００２５】
変換行列４２は、カメラ２間やカメラ２と世界座標系との間での座標変換に必要な一連の情報である。ここでは、後述する行列Ｋ，Ｈ，Ｒなどが変換行列４２として記憶部４に格納される。変換行列４２はキャリブレーション部３Ｂにより生成されて書き込まれ、移動物体追跡部３Ａにより読み出されて利用される。
【００２６】
入力部５はキーボード、マウス、タッチパネルディスプレイ等のユーザーインターフェース装置であり、ユーザーにより操作され移動物体追跡部３Ａに対する各種設定を入力するために用いられる。また、入力部５は移動物体追跡装置１の設置時やメンテナンス時における管理者等の制御部３に対する設定入力にも用いられる。特に、入力部５はカメラ外部パラメータの校正作業において、設置した各カメラ２から垂らしたマーカー７の当該カメラ２の画像上での位置を指定するマーカー座標設定部として用いられ、指定されたマーカー７の画像上での位置はマーカー座標４１として記憶部４に格納される。
【００２７】
出力部６はカメラ２が撮影した画像を表示する表示手段や、異常発生をユーザに知らせる音声・警告音等を出力する音響出力手段を含む。
【００２８】
マーカー７はキャリブレーション時に各カメラ２に取り付けられ、それが取り付けられたカメラ２の鉛直下の位置を画像上にて指し示す目印である。カメラ２は床面ＦＬがＸＹ平面であるローカル座標系のＺ軸上に配置される。カメラ２のレンズ部２１に設置される固定具から垂らされる糸７１の先端にマーカー７が取り付けられる。カメラ２の鉛直下の位置の目印とする目的から、基本的には糸７１はカメラ２のレンズ中心から垂れ下がるようにレンズ部２１に固定されるが、レンズ部２１での糸７１の取付位置の変動幅はマーカー７までの距離に比べると小さいので、取付位置のレンズ中心からの或る程度のずれは許容され得る。
【００２９】
なお、カメラ２の鉛直下の位置の目印とする上記目的から、マーカー７はそれ自身や糸７１に当たる風などで揺らぎにくく、かつその位置を精度よく見定めやすいように、その材料密度や形状が選択される。例えば、マーカー７は、カメラ２を天井等にて所定の姿勢に支持する取付金具等の耐荷重を超えない範囲で重く、かつ画像上での大きさが目的とするキャリブレーションの精度に応じて小さくなるような密度の材料で、球形等に作られる。なお、マーカー７の形状は球形に限られないが、重心や下端等のマーカー７を代表する位置が鉛直上方から見ても任意の角度で斜め上方から見てもカメラ２の画像上にて特定しやすい形状が好適である。
【００３０】
マーカー７の床面ＦＬからの高さは基本的には各カメラ２に共通に設定され、本実施形態では当該高さを床面ＦＬに設定する。この場合、マーカー７は床面ＦＬのすぐ上に非接触で吊り下げられる。また、このように吊り下げたマーカー７の位置での床面ＦＬに○印や×印を描くなどして目印を残し、これをマーカーとしてキャリブレーションを行うこともできる。また、軽い糸７１と錘となるマーカー７とに代えて、鎖のような或る程度の密度が一様分布し可撓性を有する部材を吊り下げ、その先端をマーカーとしたりそれが床面ＦＬに達する位置に目印を付したりしてもよい。
【００３１】
続いて、キャリブレーション部３Ｂの各部の機能を説明しつつ、本発明におけるカメラ２の外部パラメータのキャリブレーションについて説明する。
【００３２】
図２は、一対のカメラ２ａ，２ｂとマーカー７ａ，７ｂの位置関係及び各カメラの姿勢の一例を示す３次元空間の模式的な斜視図である。カメラ２ａとカメラ２ｂとは床面からの高さｈに互いに水平距離ｄだけ離れて設置されている。カメラ２ａのレンズ中心には糸７１ａの上端が固定設置され、糸７１ａの下端にマーカー７ａが取り付けられる。マーカー７ａからレンズ中心までの高さをｈａとする。これによりマーカー７ａは、カメラ２ａの鉛直下に配置され、カメラ２ａの鉛直軸を規定する。同様に、下端にマーカー７ｂが取り付けられた糸７１ｂの上端がカメラ２ｂのレンズ中心に固定設置されることで、マーカー７ｂがカメラ２ｂの鉛直下に配置され、マーカー７ｂによりカメラ２ｂの鉛直軸が規定される。マーカー７ｂからレンズ中心までの高さをｈｂとする。なお、ここでは、マーカー７ａ，７ｂは同一高の床面位置にあり、ｈａ＝ｈｂ＝ｈであるとする。なお、レンズ中心と光学中心（焦点位置）との間の距離はｈやｄに比して十分に小さいため、レンズ中心を光学中心とみなしてキャリブレーションを行なう。
【００３３】
上記配置の特徴は、キャリブレーションに必要なマーカーが各カメラの鉛直下の僅かな空間しか占有しないこと、各カメラから自己の鉛直下のマーカーへの視線方向が世界座標系の鉛直方向であること、一方のカメラから他方のカメラの鉛直下のマーカーへの視線方向の水平成分が両カメラ間に共通する基準方位として利用できることである。
【００３４】
カメラ２ａ，２ｂそれぞれの視野内にはマーカー７ａ，７ｂの両方が含まれている。例えばカメラ２ａ，２ｂの視野角を１８０度とすると、鉛直軸に対するカメラ２ａの光軸の鉛直回転角θａ及び鉛直軸に対するカメラ２ｂの光軸の鉛直回転角θｂがともに９０度以内となるよう設置される。
【００３５】
図３は、図２の設置状況に対応して３次元空間に設定された座標軸及びパラメータを示した図である。カメラ２ａ側には、カメラ２ａの光学中心ｏａを原点とする右手系のカメラ座標系ｘａｙａｚａが設定されている。ｚａ軸はカメラ２ａの光軸に対応する。世界座標系ＸＹＺは、光学中心ｏａからｈａだけ離れた鉛直下すなわちマーカー７ａの位置を原点Ｏとする左手系の座標系として設定される。Ｚ軸は鉛直上方に向けて設定され、ＸＹ平面は水平面となる。
【００３６】
鉛直軸Ｚに対して光軸ｚａがなす鉛直回転角θａ、及びマーカー７ａとマーカー７ｂを結ぶ直線を基準にした鉛直軸Ｚ回りの水平回転角φａはカメラ２ａの姿勢を表す角度である。鉛直回転角θａは光学中心ｏａを通る水平面に対するｘａｙａ平面の傾きを表していることになる。その回転軸ｔａは水平面とｘａｙａ平面とが交わる直線となり、当該直線はカメラ２ａの光学中心ｏａを通る。カメラ座標系のｘａ軸を回転軸ｔａ回りに鉛直回転角θａだけ回転させて、回転結果を鉛直下方にｈａだけ平行移動すると世界座標系のＸ軸に一致する。ｙａ軸とＹ軸の間にもｘａ軸とＸ軸の間と同様の関係がある。
【００３７】
同様に、カメラ２ｂ側には、その光学中心ｏｂを原点とする右手系のカメラ座標系ｘｂｙｂｚｂが設定されている。ｚｂ軸はカメラ２ｂの光軸に対応する。そして、マーカー７ｂの位置を原点Ｏｂとするカメラ２ｂのローカル座標系ＸｂＹｂＺｂが設定される。
【００３８】
鉛直軸Ｚｂに対して光軸ｚｂがなす鉛直回転角θｂ、及びマーカー７ｂとマーカー７ａを結ぶ直線を基準にした鉛直軸Ｚｂ回りの水平回転角φｂはカメラ２ｂの姿勢を表す角度である。鉛直回転角θｂの回転軸ｔｂはカメラ２ｂの光学中心ｏｂを通る水平面とｘｂｙｂ平面とが交わる直線となる。カメラ座標系のｘｂ軸を回転軸ｔｂ回りに鉛直回転角θｂだけ回転させて、回転結果を鉛直下方にｈｂだけ平行移動するとローカル座標系のＸｂ軸に一致する。ｙｂ軸とＹｂ軸の間にもｘｂ軸とＸｂ軸の間と同様の関係がある。
【００３９】
また、カメラ２ａからマーカー７ａへの視線方向をベクトルｎａ、カメラ２ｂからマーカー７ｂへの視線方向をベクトルｎｂで表す。各カメラから自己の鉛直下のマーカーへの視線方向ｎａ，ｎｂは世界座標系における鉛直方向に対応する。
【００４０】
カメラ２ａからマーカー７ｂへの視線方向をベクトルｅａ、カメラ２ｂからマーカー７ａへの視線方向をベクトルｅｂで表す。一対のカメラのそれぞれから相互の鉛直下のマーカーへの視線方向ｅａ，ｅｂは同一鉛直面をなし、それらの水平成分は同一直線上にある。
【００４１】
鉛直回転角θａとその回転軸である水平軸（水平回転軸）ｔａが定まれば、これらと高さｈａとを用いることで、世界座標系ＸＹＺとカメラ２ａのカメラ座標系ｘａｙａｚａとの間で座標変換が可能となる。同様に、鉛直回転角θｂと水平回転軸ｔｂと高さｈｂにより、カメラ２ｂのローカル座標系ＸｂＹｂＺｂとカメラ２ｂのカメラ座標系ｘｂｙｂｚｂとの間で座標変換が可能となる。
【００４２】
また水平回転角φａとφｂが定まれば、これらとカメラ間距離ｄを用いて世界座標系ＸＹＺとローカル座標系ＸｂＹｂＺｂとの間で座標変換が可能となる。
【００４３】
図４は、図２の配置に対応したカメラ２ａ，２ｂの画像の一例を示す模式図であり、図４（ａ）はマーカー７ａ，７ｂを撮影したカメラ２ａの画像２２ａ、図４（ｂ）はマーカー７ａ，７ｂを撮影したカメラ２ｂの画像２２ｂである。レンズが魚眼レンズであるので、撮像面の中心に位置する円形の画像２２ａ，２２ｂが得られる。カメラ２ａの画像２２ａには、その位置座標Ｐa（ｐｘａ，ｐｙａ）に自己マーカー７ａの像２３ａが写り、その位置座標Ｑａ（ｑｘａ，ｑｙａ）に相手マーカー７ｂの像２４ａが写る。また、カメラ２ｂの画像２２ｂには、その位置座標Ｐｂ（ｐｘｂ，ｐｙｂ）に自己マーカー７ｂの像２３ｂが写り、その位置座標Ｑｂ（ｑｘｂ，ｑｙｂ）に相手マーカー７ａの像２４ｂが写る。
【００４４】
視線方向算出部３０は、記憶部４からマーカー座標４１を読み出して、各カメラが撮像した画像における各マーカーの座標を用いて当該カメラから当該マーカーへの視線方向を算出し、各視線方向及びその算出元のカメラとマーカーの別とともに姿勢算出部３１に出力する。具体的には、視線方向算出部３０は、各カメラから各マーカーへの視線方向として、当該視線方向が当該カメラの光軸となす見込み角、及び当該視線方向の当該カメラの光軸回りの方位角、の２つの角度を算出する。
【００４５】
レンズが等距離射影のカメラの場合、光学中心から対象物の像の位置座標までの距離Ｓ、対象物への見込み角θ及び焦点距離ｆの間にはＳ＝ｆ・θの関係が成り立つ。視線方向算出部３０は、この関係を利用して、各カメラ２から各マーカー７への見込み角を当該マーカーの位置座標と当該カメラの焦点距離から算出する。すなわち、カメラ２ａから自己マーカー７ａへの見込み角θａ、カメラ２ｂから自己マーカー７ｂへの見込み角θｂ、カメラ２ａから相手マーカー７ｂへの見込み角αａ、カメラ２ｂから相手マーカー７ａへの見込み角αｂは式（１）から算出される。
【００４６】
【数１】
0005804892.tif 000002
【００４７】
また、視線方向算出部３０は、各カメラ２から各マーカー７への方位角の正弦と余弦を当該マーカーの位置座標から算出する。すなわち、カメラ２ａから自己マーカー７ａへの方位角ψａ、カメラ２ｂから自己マーカー７ｂへの方位角ψｂ、カメラ２ａから相手マーカー７ｂへの方位角βａ、カメラ２ｂから相手マーカー７ａへの方位角βｂそれぞれの正弦と余弦は式（２）から算出される。
【００４８】
【数２】
0005804892.tif 000003
【００４９】
なお、自己マーカーの位置座標が画像上の原点に一致する場合、視線方向算出部３０は式（１）と式（２）を適用せずに、当該自己マーカーへの見込み角を０と算出し、方位角は算出しない。
【００５０】
なお、ここでは等距離射影のレンズを想定しているが、他の特性のレンズを備えたカメラ２であってもレンズ中心からの距離Ｓと角度θとの関係がわかれば本発明のキャリブレーションを適用することができる。例えば、透視投影のレンズの場合には、当該特性はＳ＝ｆtanθとなる。
【００５１】
姿勢算出部３１は、視線方向算出部３０から入力される視線方向を基にして世界座標系における各カメラ２の姿勢を算出し、算出した姿勢を変換行列算出部３２に出力する。
【００５２】
姿勢算出部３１は、鉛直回転量算出部３１０及び水平回転量算出部３１１を備える。鉛直回転量算出部３１０は、各カメラ２から自己マーカーへの視線方向を用いて世界座標における当該カメラの鉛直回転量を算出する。水平回転量算出部３１１は、各カメラ２から相手マーカーへの視線方向を用いて世界座標における当該カメラの水平回転量を算出する。
【００５３】
図５を参照して、鉛直回転量算出部３１０の処理を説明する。図５は、カメラ２ａを例に鉛直回転量の算出に係るパラメーターを図示したものである。図５には、カメラ２ａの視線方向として算出された自己マーカー７ａへの見込み角θａ及び方位角ψａと、カメラ２ａの視線方向の単位ベクトルｎａと、カメラ２ａの光軸ｚａ、撮像面ｘａｙａ及び撮像面の原点ｏａと、原点ｏａを通る水平面と、カメラ２ａの世界座標系ＸＹＺと、回転軸ｔａとの関係が表されている。
【００５４】
各カメラ２の鉛直回転量は、水平面に対する当該カメラの撮像面の傾きの量であり、回転の大きさを表す鉛直回転角と回転の方位を規定する水平回転軸の２つのパラメーターからなる。
【００５５】
各カメラ２の自己マーカーへの視線方向は鉛直方向であることから、鉛直回転角は当該カメラから自己マーカーへの見込み角θに一致し、水平回転軸ｔは視線方向を表すベクトルｎ（視線ベクトル）と光軸方向ｚを表すベクトル（光軸ベクトル）の外積を単位ベクトルに正規化して求めることができる。
【００５６】
まず、鉛直回転量算出部３１０は、視線方向算出部３０から入力された各カメラの自己マーカーへの見込み角を当該カメラの鉛直回転角として算出する。すなわちカメラ２ａ、カメラ２ｂの鉛直回転角はそれぞれθａ，θｂと算出される。
【００５７】
次に、鉛直回転量算出部３１０は、視線方向算出部３０から入力された各カメラの自己マーカーへの見込み角θ及び方位角ψから水平回転軸ｔを算出する。ここで、図５に示した幾何学関係から自己マーカーへの視線ベクトルｎのｘ，ｙ，ｚ成分ｎｘ，ｎｙ，ｎｚはそれぞれ見込み角θ及び方位角ψを用いてｎｘ＝sinθcosψ，ｎｙ＝sinθsinψ，ｎｚ＝cosθと変換することができる。また、各カメラの視線ベクトル（ｎｘ，ｎｙ，ｎｚ）と光軸ベクトルの単位ベクトルｕ≡（０，０，１）との外積ｕ×ｎは（−ｎｙ，ｎｘ，０）である。よって、鉛直回転量算出部３１０は、カメラ２ａの水平回転軸ｔａを式（３）により算出し、カメラ２ｂの水平回転軸ｔｂを式（４）により算出する。
【００５８】
【数３】
0005804892.tif 000004
【００５９】
【数４】
0005804892.tif 000005
【００６０】
ただし、θａ＝０の場合、鉛直回転量算出部３１０は式（３）を用いずにｔａを０ベクトルと算出し、θｂ＝０の場合、鉛直回転量算出部３１０は式（４）を用いずにｔｂを０ベクトルと算出する。
【００６１】
なお、ここで算出される鉛直回転量においてはカメラ座標系のｘｙ平面を水平面に回転させる回転方向が正の回転方向となっている。
【００６２】
ローカル座標系での回転行列Ｒを定義するためには水平回転軸ｔはローカル座標系で定義されている必要がある。この点、上述の（−ｎｙ，ｎｘ，０）を正規化したベクトルｔはカメラ座標系で定義しているが、回転軸上に存在するので座標系の回転によって当該ベクトルｔの成分表示は変わらない。よって、（−ｎｙ，ｎｘ，０）を正規化した式（３）、式（４）で表すベクトルｔは世界座標系又はカメラ座標系で定義された回転軸ベクトルとして扱うことができる。
【００６３】
図６を参照して、水平回転量算出部３１１の処理を説明する。図６は、カメラ２ａを例に水平回転量の算出に係るパラメーターを図示したものである。ベクトルｅａは、上述した見込み角αａ及び方位角βａにより定まるカメラ２ａから相手マーカー７ｂへの視線方向の単位ベクトルである。ベクトルｅ１ａは視線ベクトルｅａを光学中心ｏａを通る水平面に正射影したものであり、ベクトルｅ２ａは、ベクトルｅ１ａ
を鉛直下方にｈａだけ平行移動させたものである。ベクトルｅ２ｂはカメラ２ｂ側で同様にしてカメラ２ｂから相手マーカー７ａへの視線方向の単位ベクトルを正射影及び平行移動させたものである。
【００６４】
ベクトルｅ２ａはカメラ２ａからカメラ２ｂへの方位を表し、ベクトルｅ２ａとＸ軸とがなす角φａは当該方位を基準としたカメラ２ａの水平回転角となる。同様にベクトルｅ２ｂとＸｂ軸とがなす角φｂはカメラ２ｂからカメラ２ａへの方位を基準としたカメラ２ｂの水平回転角となる。マーカー７を各カメラの鉛直下に配置したことにより、ベクトルｅ２ａとベクトルｅ２ｂは同一直線上に存在するため水平回転角φａとφｂは同一直線からの角度として求まる。そのため、水平回転角φａとφｂの関係から世界座標系ＸＹＺとローカル座標系ＸｂＹｂＺｂの間の回転が表される。
【００６５】
まず、水平回転量算出部３１１は、視線方向算出部３０から入力された各カメラの相手マーカーへの見込み角α及び方位角βで表される視線ベクトルｅのｘｙｚ成分を算出し、視線ベクトルｅを逆回転させてベクトルｅ１を算出する。
【００６６】
図６に示した幾何学関係から相手マーカーへの視線ベクトルｅのｘ，ｙ，ｚ成分ｅｘ，ｅｙ，ｅｚはそれぞれ見込み角α及び方位角βを用いてｅｘ＝sinαcosβ，ｅｙ＝sinαsinβ，ｅｚ＝cosαと算出することができる。ただし、α＝０の場合、水平回転量算出部３１１はｅｘ＝０，ｅｙ＝０，ｅｚ＝１と算出する。
【００６７】
また、図６に示したベクトルｅ１は、ｘｙｚ座標系で表された視線ベクトルｅを世界座標系のベクトルに変換するため、行列Ｋを掛け、これに対して鉛直回転量算出部３１０が算出した鉛直回転量だけ逆回転させ、光学中心ｏａを通る水平面に正射影することで算出できる。そして、水平回転軸ｔａ＝（ｔｘａ，ｔｙａ，ｔｚａ）回りに鉛直回転角θａだけ回転させる回転行列Ｒａは式（５）で与えることができ、水平回転軸ｔｂ＝（ｔｘｂ，ｔｙｂ，ｔｚｂ）回りに鉛直回転角θｂだけ回転させる回転行列Ｒｂは式（６）で与えることができる。
【００６８】
【数５】
0005804892.tif 000006
【００６９】
【数６】
0005804892.tif 000007
【００７０】
ちなみに、ローカル座標系は左手系であるので、式（５），式（６）は右手系の回転行列とはθの符号を逆にしたものとなる。
【００７１】
水平回転量算出部３１１は、式（５）により回転行列Ｒａ、式（６）により回転行列Ｒｂを算出し、さらにこれらの逆行列Ｒａ−１，Ｒｂ−１を算出し、式（７）及び式（８）によってベクトルｅ１ａ，ｅ１ｂを算出する。
【００７２】
【数７】
0005804892.tif 000008
【００７３】
【数８】
0005804892.tif 000009
【００７４】
次に、水平回転量算出部３１１は、ベクトルｅ１ａ ，ｅ１ｂを単位ベクトルに正規化したベクトルがそれぞれＸ軸、Ｘｂ軸の余弦となっていることに着目して、式（９）及び式（１０）により、直線ＯＯｂとＸ軸がなす角φａ、直線ＯＯｂとＸｂ軸がなす角φｂを算出する。
【００７５】
【数９】
0005804892.tif 000010
【００７６】
【数１０】
0005804892.tif 000011
【００７７】
なお、φの算出にはＺ成分が不要であるため、ここではｅ２の算出は省略してｅ１のＸＹ成分でφを算出している。
【００７８】
変換行列算出部３２は、姿勢算出部３１から入力される各カメラ２の姿勢、及び記憶部４に記憶されている各カメラ２の位置の情報から各座標系間の座標変換を行なうための変換行列４２を算出して記憶部４に記憶させる。
【００７９】
変換行列算出部３２は、世界座標系（Ｘ，Ｙ，Ｚ）ｔから基準カメラ２ａのカメラ座標系（ｘａ，ｙａ，ｚａ）ｔへの座標変換式を式（１１）に従い算出し、記憶部４に記憶させる。ただしＲａは式（５）のＲａである。
【００８０】
【数１１】
0005804892.tif 000012
【００８１】
念のため式（１１）を補足説明する。式（１１）の第１式右辺において、(（Ｘａ，Ｙａ，Ｚａ）ｔ−Ｈａ)はローカル座標系の原点をカメラ座標系の原点に平行移動させる操作に当たり、移動後の原点を中心として回転行列Ｒａで回転操作を行う。Ｒａによる回転でカメラ座標系のｘａｙａ平面がローカル座標系のＸａＹａ平面に一致する。また、ｘａｙａ平面を水平にしたカメラ座標系のｚ軸とローカル座標系のＺ軸とは向きが逆であるので、Ｚ座標の符号を反転する行列Ｋを作用させ、それらを一致させる座標変換を行う。
【００８２】
また、変換行列算出部３２は、世界座標系（Ｘ，Ｙ，Ｚ）ｔからカメラ２ｂのローカル座標系（Ｘｂ，Ｙｂ，Ｚｂ）ｔへの座標変換式を算出し、記憶部４に記憶させる。世界座標系におけるカメラ２ｂのローカル座標系の原点、すなわち世界座標系におけるマーカー７ｂの座標は、カメラ間距離ｄと方位角φａを用いて（ｄ・cosφａ，ｄ・sinφａ，０）と表せることから、当該座標変換式は式（１２）によって算出できる。
【００８３】
【数１２】
0005804892.tif 000013
【００８４】
また、変換行列算出部３２は、同様にして、カメラ２ｂのローカル座標系（Ｘｂ，Ｙｂ，Ｚｂ）ｔから世界座標系（Ｘ，Ｙ，Ｚ）ｔへの座標変換式を式（１３）に従い算出し、記憶部４に記憶させる。
【００８５】
【数１３】
0005804892.tif 000014
【００８６】
また、変換行列算出部３２は、カメラ２ｂのローカル座標系（Ｘｂ，Ｙｂ，Ｚｂ）ｔからカメラ２ｂのカメラ座標系（ｘｂ，ｙｂ，ｚｂ）ｔへの座標変換式を式（１４）に従い算出し、記憶部４に記憶させる。ただしＲｂは式（６）のＲｂである。
【００８７】
【数１４】
0005804892.tif 000015
【００８８】
次に本実施形態におけるマーカー７及びキャリブレーション部３Ｂを用いたキャリブレーションの方法について改めて整理して説明する。移動物体追跡装置１はカメラの設置時等にキャリブレーションを行い、その結果を利用して複数台のカメラ２の画像を用いた移動物体追跡を行う。具体的には、移動物体追跡の事前処理としてキャリブレーションが行われ、キャリブレーション結果に基づき、例えば、カメラ画像間の座標変換処理が行われ、移動物体の追跡処理が行われる。
【００８９】
[キャリブレーション]
図７はキャリブレーションの概略のフロー図である。キャリブレーションでは、カメラ２毎に世界座標系における位置・姿勢の算出と変換行列４２の算出を行う。
【００９０】
キャリブレーション部３Ｂは、まず、入力部５を介した設定情報４０の入力を受け付ける（Ｓ５０）。管理者は入力部５からカメラ２ａと２ｂの間の距離ｄ、基準カメラ２ａの指定、カメラ２ａからマーカー７ａまでの距離ｈａ、カメラ２ｂからマーカー７ｂまでの距離ｈｂ、カメラ２ａの焦点距離ｆａ、カメラ２ｂの焦点距離ｆｂ等を設定情報として入力し、キャリブレーション部３Ｂは入力された設定情報４０を記憶部４に記憶させる。
【００９１】
設定情報４０の入力が終わると、各カメラ２によるマーカー７の撮像が行なわれる（Ｓ５１）。キャリブレーション部３Ｂは、各カメラ２により撮像された各画像を入力部５のモニタに順次表示してマーカー座標４１の入力を受け付ける（Ｓ５２）。管理者は入力部５のマウスを操作するなどして表示画像中の自己マーカー座標及び相手マーカー座標を入力し、キャリブレーション部３Ｂは入力されたマーカー座標４１を撮像したカメラ２の識別子及び自己マーカー／相手マーカーを区別する識別子と関連付けて記憶部４に記憶させる。カメラ２ａの画像に対しては自己マーカー座標Ｐａと相手マーカー座標Ｑａが、カメラ２ｂの画像に対しては自己マーカー座標Ｐｂと相手マーカー座標Ｑｂがそれぞれ入力される。
【００９２】
マーカー座標４１の入力が終わると、キャリブレーション部３Ｂは視線方向算出部３０によりマーカー座標４１それぞれに対する視線方向を算出する（Ｓ５３）。視線方向算出部３０は、自己マーカー座標Ｐａに式（１）及び式（２）を適用してカメラ２ａからマーカー７ａへの視線方向として見込み角θａ、方位角の正弦sinψａ、方位角の余弦cosψａを算出し、同様に自己マーカー座標Ｐｂに基づきカメラ２ｂからマーカー７ｂへの視線方向としてθｂ，sinψｂ、cosψｂを算出する。但し、視線方向算出部３０は、各自己マーカー座標が画像中心ｏと一致するかの確認を行い、一致する自己マーカー座標についてはθを０と算出し、sinψとcosψの算出を省略する。
【００９３】
また視線方向算出部３０は、相手マーカー座標Ｑａに式（１）及び式（２）を適用してカメラ２ａからマーカー７ｂへの視線方向として見込み角αａ、方位角の正弦sinβａ、方位角の余弦cosβａを算出し、同様に相手マーカー座標Ｑｂに基づきカメラ２ｂからマーカー７ａへの視線方向としてαｂ，sinβｂ、cosβｂを算出する。但し、視線方向算出部３０は、各相手マーカー座標が画像中心ｏと一致するかの確認を行い、一致する相手マーカー座標についてはαを０と算出し、sinβとcosβの算出を省略する。
【００９４】
視線方向の算出が終わると、キャリブレーション部３Ｂは姿勢算出部３１により各カメラ２の姿勢を算出する。姿勢算出部３１の鉛直回転量算出部３１０は、まず、各カメラ２の自己マーカーへの視線方向から当該カメラの鉛直回転量の算出を行なう（Ｓ５４）。すなわち、鉛直回転量算出部３１０は、θａ，θbをそれぞれカメラ２ａ，２ｂの鉛直回転角とし、θａとsinψａとcosψａを式（３）に適用して水平回転軸ｔａを算出し、θｂとsinψｂとcosψｂを式（４）に適用して水平回転軸ｔｂを算出する。但し、θａが０の場合は水平回転軸ｔａを（０，０，０）と算出し、θｂが０の場合は水平回転軸ｔｂを（０，０，０）と算出する。
【００９５】
次に、姿勢算出部３１は、水平回転量算出部３１１により水平回転量の算出を行なう（Ｓ５５）。すなわち、まず水平回転量算出部３１１は、θａとｔａを式（５）に適用して回転行列Ｒａを算出し、θｂとｔｂを式（６）に適用して回転行列Ｒｂを算出し、さらにこれらの逆行列Ｒａ−１，Ｒｂ−１を算出する。続いて水平回転量算出部３１１は、Ｒａ−１とαａ，sinβａ，cosβａを式（７）に適用してベクトルｅ１ａを算出し、Ｒｂ−１とαｂ，sinβｂ，cosβｂを式（８）に適用してベクトルｅ１ｂを算出する。そして水平回転量算出部３１１は、ベクトルｅ１ａを式（９）に適用してカメラ２ａの水平回転角φａを算出するとともに、ベクトルｅ１ｂを式（１０）に適用してカメラ２ｂの水平回転角φｂを算出する。
【００９６】
こうして、カメラ２ａの姿勢として鉛直回転量（鉛直回転角θａ及び水平回転軸ｔａ）と水平回転角φａが算出され、カメラ２ｂの姿勢として鉛直回転量（鉛直回転角θｂ及び水平回転軸ｔｂ）と水平回転角φｂが算出される。
【００９７】
次に、キャリブレーション部３Ｂの変換行列算出部３２は、設定情報４０及び各カメラの姿勢を用いて変換行列４２を算出して記憶部４に記憶させる（Ｓ５６）。すなわち、変換行列算出部３２は、カメラ２ａの鉛直回転量パラメーターθａ及びｔａとマーカーへの距離ｈａを式（１１）に適用して世界座標系からカメラ２ａのカメラ座標系への座標変換式を算出し、カメラ２ａの水平回転角φａとカメラ間距離ｄを式（１２）に適用して世界座標系からカメラ２ｂのローカル座標系への座標変換式を算出し、カメラ２ｂの水平回転角φｂとカメラ間距離ｄを式（１３）に適用してカメラ２ｂのローカル座標系から世界座標系への座標変換式を算出し、カメラ２ｂの鉛直回転量パラメーターθｂ及びｔｂとマーカーへの距離ｈｂを式（１４）に適用してカメラ２ｂのローカル座標系からカメラ２ｂのカメラ座標系への座標変換式を算出する。
【００９８】
以上によりカメラ２ａとカメラ２ｂのキャリブレーションが終了する。
【００９９】
[座標変換処理]
キャリブレーション完了後、その結果である変換行列４２を利用して座標変換処理を行うことができる。座標変換処理は移動物体追跡部３Ａの座標変換部３３により行われる。図８は座標変換処理の一例の概略のフロー図である。座標変換処理としてここでは、世界座標系をカメラ２ａ，２ｂそれぞれのカメラ座標系へ変換する例を説明する。
【０１００】
このような変換の必要性は、例えば、追跡処理の過程でカメラ２ａの画像にて検出された移動物体の像とカメラ２ｂの画像にて検出された移動物体の像が同一移動物体によるものか同定するために生じる。同定のために移動物体追跡部３Ａは世界座標系に同定対象の移動物体の存在が予測される位置に移動物体の３次元形状を模した立体モデルを仮想配置して当該立体モデル内部に複数のサンプリング点を設定し、各サンプリング点を変換対象として順次、座標変換部３３に入力する。
【０１０１】
世界座標系における座標（Ｘ，Ｙ，Ｚ）が変換対象として入力されると（Ｓ７０）、座標変換部３３は、記憶部４から変換行列４２を読み出し、当該座標（Ｘ，Ｙ，Ｚ）に式（１１）により算出された変換式を適用して基準カメラ２ａのカメラ座標系に変換し、これを画像平面に投影した対応座標を出力する（Ｓ７１）。また、座標変換部３３は、当該座標（Ｘ，Ｙ，Ｚ）に式（１２）により算出された変換式を適用してカメラ２ｂのローカル座標系に変換して対応座標（Ｘｂ，Ｙｂ，Ｚｂ）を求め（Ｓ７２）、さらに対応座標（Ｘｂ，Ｙｂ，Ｚｂ）に式（１４）により算出された変換式を適用してカメラ２ｂのカメラ座標系に変換し、これを画像平面に投影した対応座標を出力する（Ｓ７３）。
【０１０２】
移動物体追跡部３Ａは座標変換部３３から出力された各サンプリング点の対応座標が対応する各カメラの画像にて検出された移動物体の像の内部にどの程度含まれるかによって移動物体の像の同定を行う。
【０１０３】
上述の実施形態では、移動物体追跡装置１の制御部３でキャリブレーション部３Ｂを実現する構成を示したが、キャリブレーション部３Ｂの機能は移動物体追跡装置１から分離した装置により実現することもできる。この場合、移動物体追跡装置１のカメラシステムの設置時に作業者が当該装置を制御部３に接続する等して、カメラ２の画像に基づいてキャリブレーションを実施する。
【０１０４】
上述の説明では、マーカー座標４１は例えば、キャリブレーションを行う作業者等がマーカー７を設置した状態でのカメラ２の画像上にてマーカーの像の位置を入力部５から入力するが、制御部３にて画像認識でマーカーの像を認識しその位置を特定して記憶部４に格納する構成とすることもできる。例えば、２台のカメラそれぞれのマーカー７の色を変えることで、各カメラ２の画像にて自己のマーカー７と相手のマーカー７とを識別することが可能である。
【０１０５】
以上説明したように本発明によれば、カメラの鉛直下に吊り下げたマーカーのみでキャリブレーションが可能であることにより、狭いスペースでのキャリブレーションが可能になる。
【符号の説明】
【０１０６】
１  移動物体追跡装置、２  カメラ、３  制御部、３Ａ  移動物体追跡部、３Ｂ  キャリブレーション部、４  記憶部、５  入力部、６  出力部、７  マーカー、２１  レンズ部、３０  視線方向算出部、３１  姿勢算出部、３２  変換行列算出部、３３  座標変換部、４０  設定情報、４１  マーカー座標、４２  変換行列、７１  糸、３１０  鉛直回転量算出部、３１１  水平回転量算出部。
【図１】
0005804892.tif 000016
【図２】
0005804892.tif 000017
【図３】
0005804892.tif 000018
【図４】
0005804892.tif 000019
【図５】
0005804892.tif 000020
【図６】
0005804892.tif 000021
【図７】
0005804892.tif 000022
【図８】
0005804892.tif 000023