説明

カメラ姿勢算出装置

【課題】複数台の監視カメラの監視空間が什器等が設置された建物内、或いは建物内の廊下などの場合、各カメラの姿勢を校正する基準物体を設置するスペースを確保できない。
【解決手段】自己及び相互の鉛直下を撮像可能に設置された2台のカメラ2a,2bのそれぞれの鉛直下にマーカー7a,7bを配置する。視線方向算出部30は、例えば、カメラ2aについて当該カメラで撮像した画像における自己マーカー7a及び他方カメラ鉛直下の相手マーカー7bの位置座標を用いて当該カメラから各マーカーへの視線方向を算出する。姿勢算出部31は、自己マーカーへの視線方向から得られる鉛直方向と、相手マーカーへの視線方向から得られるカメラ2a,2b間の方位とを用いて世界座標系における各カメラの姿勢を算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、監視等の対象空間を俯瞰する複数のカメラを互いに撮像領域が重なるように配置したカメラシステムにおいて、これらのカメラの外部パラメータをキャリブレーションするカメラ姿勢算出装置に関する。
【背景技術】
【0002】
対象空間を撮影した画像に基づいて移動物体を追跡してその行動を分析する場合、複数のカメラを用い異なる視点から共通の領域を撮像すれば、移動物体を3次元的に把握してオクルージョンの問題に対処でき、また複数の視野を連結することで広範囲に追跡できるというメリットがある。
【0003】
そのようなカメラシステムを構築するためには、共通の座標系(世界座標系)における各カメラの外部パラメーター(カメラの位置・姿勢)を計測する校正(キャリブレーション)を行い、キャリブレーション結果に基づいて各カメラによる移動物体の追跡結果を統合する必要がある。
【0004】
キャリブレーションを行なう場合、下記特許文献1に記載の発明のように複数のマーカーなどの基準物体を設置して撮像したり、またはパターンが描かれたボードを設置して撮像したりすることが行われている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2011−86111号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
キャリブレーションの精度を確保するためには監視カメラの画像上でマーカーの間隔が十分に離れて写されている、またはパターンが十分に大きく写されている必要がある。例えば天井設置された監視カメラのキャリブレーションを行なう場合、マーカーであれば例えば3m間隔で設置する必要があり、ボードであれば3m四方の大きさが必要である。
【0007】
しかしながら、什器等が設置された建物内、或いは建物内の廊下などで上述のような基準物体を設置するスペースを確保することは困難であった。
【0008】
本発明は上記問題点を解決するためになされたものであり、キャリブレーションに要するスペースを小さくすることが可能なカメラ姿勢算出装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係るカメラ姿勢算出装置は、自己及び相互の鉛直下を撮像可能に設置された複数のカメラの姿勢を前記複数のカメラに共通の世界座標系にて算出するカメラ姿勢算出装置であって、前記各カメラの鉛直下に配置されたマーカーと、前記各カメラで撮像した画像における自己の鉛直下の自己マーカー及び他のカメラの鉛直下の相手マーカーの位置座標を用いて当該カメラから当該各マーカーへの視線方向を算出する視線方向算出部と、前記自己マーカーへの前記視線方向から得られる鉛直方向と、前記相手マーカーへの前記視線方向から得られる前記カメラ間の方位とを用いて前記世界座標系における前記各カメラの前記姿勢を算出する姿勢算出部と、を備える。
【0010】
他の本発明に係るカメラ姿勢算出装置においては、前記姿勢算出部は、前記自己マーカーへの前記視線方向を用いて前記各カメラの鉛直回転量を算出する。
【0011】
別の本発明に係るカメラ姿勢算出装置においては、前記姿勢算出部は、一対の前記カメラにおける一方カメラから前記相手マーカーへの前記視線方向を当該一方カメラの前記鉛直回転量だけ回転させて当該一方カメラからの他方カメラの方位を算出する。
【0012】
さらに別の本発明に係るカメラ姿勢算出装置においては、前記マーカーは、前記カメラのレンズ部に上端を固定された糸の下端に取り付けられて中空に配置される。
【発明の効果】
【0013】
本発明によれば、マーカーの配置に基本的に各カメラの鉛直直下のスペースしか必要としないため、広いスペースを確保できない場所でもキャリブレーションが可能となる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施形態に係る移動物体追跡装置のブロック構成図である。
【図2】一対のカメラ及びそれらのマーカーについての位置関係、及び各カメラの姿勢の一例を示す3次元空間の模式的な斜視図である。
【図3】図2の設置状況に対応して3次元空間に設定された座標軸及びパラメータを示した模式図である。
【図4】図2の配置状況にて2つのカメラそれぞれで撮影される画像の一例を示す模式図である。
【図5】鉛直回転量の算出に係るパラメーターを3次元空間内にて図示した模式図である。
【図6】水平回転量の算出に係るパラメーターを3次元空間内にて図示した模式図である。
【図7】キャリブレーションの概略のフロー図である。
【図8】座標変換処理の一例の概略のフロー図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態(以下実施形態という)について、図面に基づいて説明する。本実施形態は、監視対象空間を俯瞰する複数のカメラを互いに撮像領域が重なるように配置したカメラシステムに本発明に係るカメラ姿勢算出装置を適用したものであり、カメラの外部パラメータをキャリブレーションする。本実施形態においては外部パラメータのうち主にカメラの姿勢のキャリブレーションが行われる。
【0016】
本カメラシステムとして複数台のカメラが撮像する画像を用いて人物等の移動物体を追跡する移動物体追跡装置を例に以下、説明する。説明を簡単にするためにカメラシステムが2台のカメラからなる例で説明する。なお、カメラシステムが3台以上のカメラからなる場合には、それらの2台ずつを以下に述べる実施形態と同様にしてキャリブレーションすればよい。
【0017】
図1は、実施形態に係る移動物体追跡装置1のブロック構成図である。移動物体追跡装置1は、カメラ2、制御部3、記憶部4、入力部5及び出力部6を含んで構成される。カメラ2、記憶部4、入力部5及び出力部6は制御部3に接続される。カメラのキャリブレーション作業時には各カメラ2にマーカー7が吊り下げられる。
【0018】
カメラ2は監視カメラであり、監視空間を臨むように設置され、監視空間を所定の時間間隔で撮影する。撮影された監視空間の監視画像は順次、制御部3へ出力される。専ら床面又は地表面等の基準面に沿って移動する人の位置、移動を把握するため、カメラ2は基本的に人を俯瞰撮影可能な高さに設置される。ここでは説明のため、カメラ2は同一高の床上にあるものとし、床は傾いていないものとする。例えば、本実施形態では移動物体追跡装置1は屋内監視に用いられ、カメラ2は天井に設置される。また、カメラ2のレンズには等距離射影の魚眼レンズを使用する。
【0019】
制御部3は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、MCU(Micro Control Unit)等の演算装置を用いて構成され、記憶部4からプログラムを読み出して実行し、通常動作時には移動物体追跡処理を行う移動物体追跡部3Aとして機能するが、カメラシステムの設置時等にはキャリブレーションを行うキャリブレーション部3Bとして機能する。
【0020】
移動物体追跡部3Aは、異なる位置に配置された複数のカメラ2で共通領域を撮影する。そして、各カメラ2による移動物体の追跡結果を統合してそれにより得られる3次元的な位置に基づいて当該移動物体を追跡する。移動物体追跡部3Aは座標変換部33を備え、3次元的な位置の追跡をカメラ2に共通する世界座標系にて行う。
【0021】
キャリブレーション部3Bは、視線方向算出部30、姿勢算出部31及び変換行列算出部32として機能する。これら各部30〜32の機能については後述する。
【0022】
記憶部4は、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスク等の記憶装置である。記憶部4は、制御部3で使用されるプログラムやデータを記憶する。これに記憶されるデータには、設定情報40、マーカー座標41及び変換行列42などがある。記憶部4は制御部3からの要求に応じてこれらデータの参照・更新を行う。
【0023】
設定情報40は、本発明を用いたキャリブレーション前にあらかじめ実測しておく情報である。設定情報40には、カメラの床面からの高さである地上高h、カメラのレンズの焦点距離f、カメラのマーカー間の距離dが含まれる。地上高hとマーカー間の距離dは、カメラ2の設置時に例えば、メジャーで実測する。
【0024】
マーカー座標41は、カメラ2で撮像した画像上における自己マーカー座標及び相手マーカー座標である。自己マーカー座標とは、画像を撮影したカメラ2自身の鉛直下に配置されたマーカーの座標であり、相手マーカー座標とは、画像を撮影したカメラ2とは別のカメラ2の下に配置されるマーカーの座標である。ここで、マーカー座標41はカメラ2の撮像面の2次元座標系xyで表され、画像上のレンズ中心位置を原点とした座標で表される。
【0025】
変換行列42は、カメラ2間やカメラ2と世界座標系との間での座標変換に必要な一連の情報である。ここでは、後述する行列K,H,Rなどが変換行列42として記憶部4に格納される。変換行列42はキャリブレーション部3Bにより生成されて書き込まれ、移動物体追跡部3Aにより読み出されて利用される。
【0026】
入力部5はキーボード、マウス、タッチパネルディスプレイ等のユーザーインターフェース装置であり、ユーザーにより操作され移動物体追跡部3Aに対する各種設定を入力するために用いられる。また、入力部5は移動物体追跡装置1の設置時やメンテナンス時における管理者等の制御部3に対する設定入力にも用いられる。特に、入力部5はカメラ外部パラメータの校正作業において、設置した各カメラ2から垂らしたマーカー7の当該カメラ2の画像上での位置を指定するマーカー座標設定部として用いられ、指定されたマーカー7の画像上での位置はマーカー座標41として記憶部4に格納される。
【0027】
出力部6はカメラ2が撮影した画像を表示する表示手段や、異常発生をユーザに知らせる音声・警告音等を出力する音響出力手段を含む。
【0028】
マーカー7はキャリブレーション時に各カメラ2に取り付けられ、それが取り付けられたカメラ2の鉛直下の位置を画像上にて指し示す目印である。カメラ2は床面FLがXY平面であるローカル座標系のZ軸上に配置される。カメラ2のレンズ部21に設置される固定具から垂らされる糸71の先端にマーカー7が取り付けられる。カメラ2の鉛直下の位置の目印とする目的から、基本的には糸71はカメラ2のレンズ中心から垂れ下がるようにレンズ部21に固定されるが、レンズ部21での糸71の取付位置の変動幅はマーカー7までの距離に比べると小さいので、取付位置のレンズ中心からの或る程度のずれは許容され得る。
【0029】
なお、カメラ2の鉛直下の位置の目印とする上記目的から、マーカー7はそれ自身や糸71に当たる風などで揺らぎにくく、かつその位置を精度よく見定めやすいように、その材料密度や形状が選択される。例えば、マーカー7は、カメラ2を天井等にて所定の姿勢に支持する取付金具等の耐荷重を超えない範囲で重く、かつ画像上での大きさが目的とするキャリブレーションの精度に応じて小さくなるような密度の材料で、球形等に作られる。なお、マーカー7の形状は球形に限られないが、重心や下端等のマーカー7を代表する位置が鉛直上方から見ても任意の角度で斜め上方から見てもカメラ2の画像上にて特定しやすい形状が好適である。
【0030】
マーカー7の床面FLからの高さは基本的には各カメラ2に共通に設定され、本実施形態では当該高さを床面FLに設定する。この場合、マーカー7は床面FLのすぐ上に非接触で吊り下げられる。また、このように吊り下げたマーカー7の位置での床面FLに○印や×印を描くなどして目印を残し、これをマーカーとしてキャリブレーションを行うこともできる。また、軽い糸71と錘となるマーカー7とに代えて、鎖のような或る程度の密度が一様分布し可撓性を有する部材を吊り下げ、その先端をマーカーとしたりそれが床面FLに達する位置に目印を付したりしてもよい。
【0031】
続いて、キャリブレーション部3Bの各部の機能を説明しつつ、本発明におけるカメラ2の外部パラメータのキャリブレーションについて説明する。
【0032】
図2は、一対のカメラ2a,2bとマーカー7a,7bの位置関係及び各カメラの姿勢の一例を示す3次元空間の模式的な斜視図である。カメラ2aとカメラ2bとは床面からの高さhに互いに水平距離dだけ離れて設置されている。カメラ2aのレンズ中心には糸71aの上端が固定設置され、糸71aの下端にマーカー7aが取り付けられる。マーカー7aからレンズ中心までの高さをhとする。これによりマーカー7aは、カメラ2aの鉛直下に配置され、カメラ2aの鉛直軸を規定する。同様に、下端にマーカー7bが取り付けられた糸71bの上端がカメラ2bのレンズ中心に固定設置されることで、マーカー7bがカメラ2bの鉛直下に配置され、マーカー7bによりカメラ2bの鉛直軸が規定される。マーカー7bからレンズ中心までの高さをhとする。なお、ここでは、マーカー7a,7bは同一高の床面位置にあり、h=h=hであるとする。なお、レンズ中心と光学中心(焦点位置)との間の距離はhやdに比して十分に小さいため、レンズ中心を光学中心とみなしてキャリブレーションを行なう。
【0033】
上記配置の特徴は、キャリブレーションに必要なマーカーが各カメラの鉛直下の僅かな空間しか占有しないこと、各カメラから自己の鉛直下のマーカーへの視線方向が世界座標系の鉛直方向であること、一方のカメラから他方のカメラの鉛直下のマーカーへの視線方向の水平成分が両カメラ間に共通する基準方位として利用できることである。
【0034】
カメラ2a,2bそれぞれの視野内にはマーカー7a,7bの両方が含まれている。例えばカメラ2a,2bの視野角を180度とすると、鉛直軸に対するカメラ2aの光軸の鉛直回転角θ及び鉛直軸に対するカメラ2bの光軸の鉛直回転角θがともに90度以内となるよう設置される。
【0035】
図3は、図2の設置状況に対応して3次元空間に設定された座標軸及びパラメータを示した図である。カメラ2a側には、カメラ2aの光学中心oを原点とする右手系のカメラ座標系xが設定されている。z軸はカメラ2aの光軸に対応する。世界座標系XYZは、光学中心oからhだけ離れた鉛直下すなわちマーカー7aの位置を原点Oとする左手系の座標系として設定される。Z軸は鉛直上方に向けて設定され、XY平面は水平面となる。
【0036】
鉛直軸Zに対して光軸zがなす鉛直回転角θ、及びマーカー7aとマーカー7bを結ぶ直線を基準にした鉛直軸Z回りの水平回転角φはカメラ2aの姿勢を表す角度である。鉛直回転角θは光学中心oを通る水平面に対するx平面の傾きを表していることになる。その回転軸tは水平面とx平面とが交わる直線となり、当該直線はカメラ2aの光学中心oを通る。カメラ座標系のx軸を回転軸t回りに鉛直回転角θだけ回転させて、回転結果を鉛直下方にhだけ平行移動すると世界座標系のX軸に一致する。y軸とY軸の間にもx軸とX軸の間と同様の関係がある。
【0037】
同様に、カメラ2b側には、その光学中心oを原点とする右手系のカメラ座標系xが設定されている。z軸はカメラ2bの光軸に対応する。そして、マーカー7bの位置を原点Oとするカメラ2bのローカル座標系Xが設定される。
【0038】
鉛直軸Zに対して光軸zがなす鉛直回転角θ、及びマーカー7bとマーカー7aを結ぶ直線を基準にした鉛直軸Z回りの水平回転角φはカメラ2bの姿勢を表す角度である。鉛直回転角θの回転軸tはカメラ2bの光学中心oを通る水平面とx平面とが交わる直線となる。カメラ座標系のx軸を回転軸t回りに鉛直回転角θだけ回転させて、回転結果を鉛直下方にhだけ平行移動するとローカル座標系のX軸に一致する。y軸とY軸の間にもx軸とX軸の間と同様の関係がある。
【0039】
また、カメラ2aからマーカー7aへの視線方向をベクトルn、カメラ2bからマーカー7bへの視線方向をベクトルnで表す。各カメラから自己の鉛直下のマーカーへの視線方向n,nは世界座標系における鉛直方向に対応する。
【0040】
カメラ2aからマーカー7bへの視線方向をベクトルe、カメラ2bからマーカー7aへの視線方向をベクトルeで表す。一対のカメラのそれぞれから相互の鉛直下のマーカーへの視線方向e,eは同一鉛直面をなし、それらの水平成分は同一直線上にある。
【0041】
鉛直回転角θとその回転軸である水平軸(水平回転軸)tが定まれば、これらと高さhとを用いることで、世界座標系XYZとカメラ2aのカメラ座標系xとの間で座標変換が可能となる。同様に、鉛直回転角θと水平回転軸tと高さhにより、カメラ2bのローカル座標系Xとカメラ2bのカメラ座標系xとの間で座標変換が可能となる。
【0042】
また水平回転角φとφが定まれば、これらとカメラ間距離dを用いて世界座標系XYZとローカル座標系Xとの間で座標変換が可能となる。
【0043】
図4は、図2の配置に対応したカメラ2a,2bの画像の一例を示す模式図であり、図4(a)はマーカー7a,7bを撮影したカメラ2aの画像22a、図4(b)はマーカー7a,7bを撮影したカメラ2bの画像22bである。レンズが魚眼レンズであるので、撮像面の中心に位置する円形の画像22a,22bが得られる。カメラ2aの画像22aには、その位置座標Pa(pxa,pya)に自己マーカー7aの像23aが写り、その位置座標Q(qxa,qya)に相手マーカー7bの像24aが写る。また、カメラ2bの画像22bには、その位置座標P(pxb,pyb)に自己マーカー7bの像23bが写り、その位置座標Q(qxb,qyb)に相手マーカー7aの像24bが写る。
【0044】
視線方向算出部30は、記憶部4からマーカー座標41を読み出して、各カメラが撮像した画像における各マーカーの座標を用いて当該カメラから当該マーカーへの視線方向を算出し、各視線方向及びその算出元のカメラとマーカーの別とともに姿勢算出部31に出力する。具体的には、視線方向算出部30は、各カメラから各マーカーへの視線方向として、当該視線方向が当該カメラの光軸となす見込み角、及び当該視線方向の当該カメラの光軸回りの方位角、の2つの角度を算出する。
【0045】
レンズが等距離射影のカメラの場合、光学中心から対象物の像の位置座標までの距離S、対象物への見込み角θ及び焦点距離fの間にはS=f・θの関係が成り立つ。視線方向算出部30は、この関係を利用して、各カメラ2から各マーカー7への見込み角を当該マーカーの位置座標と当該カメラの焦点距離から算出する。すなわち、カメラ2aから自己マーカー7aへの見込み角θ、カメラ2bから自己マーカー7bへの見込み角θ、カメラ2aから相手マーカー7bへの見込み角α、カメラ2bから相手マーカー7aへの見込み角αは式(1)から算出される。
【0046】
【数1】

【0047】
また、視線方向算出部30は、各カメラ2から各マーカー7への方位角の正弦と余弦を当該マーカーの位置座標から算出する。すなわち、カメラ2aから自己マーカー7aへの方位角ψ、カメラ2bから自己マーカー7bへの方位角ψ、カメラ2aから相手マーカー7bへの方位角β、カメラ2bから相手マーカー7aへの方位角βそれぞれの正弦と余弦は式(2)から算出される。
【0048】
【数2】

【0049】
なお、自己マーカーの位置座標が画像上の原点に一致する場合、視線方向算出部30は式(1)と式(2)を適用せずに、当該自己マーカーへの見込み角を0と算出し、方位角は算出しない。
【0050】
なお、ここでは等距離射影のレンズを想定しているが、他の特性のレンズを備えたカメラ2であってもレンズ中心からの距離Sと角度θとの関係がわかれば本発明のキャリブレーションを適用することができる。例えば、透視投影のレンズの場合には、当該特性はS=ftanθとなる。
【0051】
姿勢算出部31は、視線方向算出部30から入力される視線方向を基にして世界座標系における各カメラ2の姿勢を算出し、算出した姿勢を変換行列算出部32に出力する。
【0052】
姿勢算出部31は、鉛直回転量算出部310及び水平回転量算出部311を備える。鉛直回転量算出部310は、各カメラ2から自己マーカーへの視線方向を用いて世界座標における当該カメラの鉛直回転量を算出する。水平回転量算出部311は、各カメラ2から相手マーカーへの視線方向を用いて世界座標における当該カメラの水平回転量を算出する。
【0053】
図5を参照して、鉛直回転量算出部310の処理を説明する。図5は、カメラ2aを例に鉛直回転量の算出に係るパラメーターを図示したものである。図5には、カメラ2aの視線方向として算出された自己マーカー7aへの見込み角θ及び方位角ψと、カメラ2aの視線方向の単位ベクトルnと、カメラ2aの光軸z、撮像面x及び撮像面の原点oと、原点oを通る水平面と、カメラ2aの世界座標系XYZと、回転軸tとの関係が表されている。
【0054】
各カメラ2の鉛直回転量は、水平面に対する当該カメラの撮像面の傾きの量であり、回転の大きさを表す鉛直回転角と回転の方位を規定する水平回転軸の2つのパラメーターからなる。
【0055】
各カメラ2の自己マーカーへの視線方向は鉛直方向であることから、鉛直回転角は当該カメラから自己マーカーへの見込み角θに一致し、水平回転軸tは視線方向を表すベクトルn(視線ベクトル)と光軸方向zを表すベクトル(光軸ベクトル)の外積を単位ベクトルに正規化して求めることができる。
【0056】
まず、鉛直回転量算出部310は、視線方向算出部30から入力された各カメラの自己マーカーへの見込み角を当該カメラの鉛直回転角として算出する。すなわちカメラ2a、カメラ2bの鉛直回転角はそれぞれθ,θと算出される。
【0057】
次に、鉛直回転量算出部310は、視線方向算出部30から入力された各カメラの自己マーカーへの見込み角θ及び方位角ψから水平回転軸tを算出する。ここで、図5に示した幾何学関係から自己マーカーへの視線ベクトルnのx,y,z成分n,n,nはそれぞれ見込み角θ及び方位角ψを用いてn=sinθcosψ,n=sinθsinψ,n=cosθと変換することができる。また、各カメラの視線ベクトル(n,n,n)と光軸ベクトルの単位ベクトルu≡(0,0,1)との外積u×nは(−n,n,0)である。よって、鉛直回転量算出部310は、カメラ2aの水平回転軸tを式(3)により算出し、カメラ2bの水平回転軸tを式(4)により算出する。
【0058】
【数3】

【0059】
【数4】

【0060】
ただし、θ=0の場合、鉛直回転量算出部310は式(3)を用いずにtを0ベクトルと算出し、θ=0の場合、鉛直回転量算出部310は式(4)を用いずにtを0ベクトルと算出する。
【0061】
なお、ここで算出される鉛直回転量においてはカメラ座標系のxy平面を水平面に回転させる回転方向が正の回転方向となっている。
【0062】
ローカル座標系での回転行列Rを定義するためには水平回転軸tはローカル座標系で定義されている必要がある。この点、上述の(−n,n,0)を正規化したベクトルtはカメラ座標系で定義しているが、回転軸上に存在するので座標系の回転によって当該ベクトルtの成分表示は変わらない。よって、(−n,n,0)を正規化した式(3)、式(4)で表すベクトルtは世界座標系又はカメラ座標系で定義された回転軸ベクトルとして扱うことができる。
【0063】
図6を参照して、水平回転量算出部311の処理を説明する。図6は、カメラ2aを例に水平回転量の算出に係るパラメーターを図示したものである。ベクトルeは、上述した見込み角α及び方位角βにより定まるカメラ2aから相手マーカー7bへの視線方向の単位ベクトルである。ベクトルe1は視線ベクトルeを光学中心oを通る水平面に正射影したものであり、ベクトルe2は、ベクトルe1
を鉛直下方にhだけ平行移動させたものである。ベクトルe2はカメラ2b側で同様にしてカメラ2bから相手マーカー7aへの視線方向の単位ベクトルを正射影及び平行移動させたものである。
【0064】
ベクトルe2はカメラ2aからカメラ2bへの方位を表し、ベクトルe2とX軸とがなす角φは当該方位を基準としたカメラ2aの水平回転角となる。同様にベクトルe2とX軸とがなす角φはカメラ2bからカメラ2aへの方位を基準としたカメラ2bの水平回転角となる。マーカー7を各カメラの鉛直下に配置したことにより、ベクトルe2とベクトルe2は同一直線上に存在するため水平回転角φとφは同一直線からの角度として求まる。そのため、水平回転角φとφの関係から世界座標系XYZとローカル座標系Xの間の回転が表される。
【0065】
まず、水平回転量算出部311は、視線方向算出部30から入力された各カメラの相手マーカーへの見込み角α及び方位角βで表される視線ベクトルeのxyz成分を算出し、視線ベクトルeを逆回転させてベクトルe1を算出する。
【0066】
図6に示した幾何学関係から相手マーカーへの視線ベクトルeのx,y,z成分e,e,eはそれぞれ見込み角α及び方位角βを用いてe=sinαcosβ,e=sinαsinβ,e=cosαと算出することができる。ただし、α=0の場合、水平回転量算出部311はe=0,e=0,e=1と算出する。
【0067】
また、図6に示したベクトルe1は、xyz座標系で表された視線ベクトルeを世界座標系のベクトルに変換するため、行列Kを掛け、これに対して鉛直回転量算出部310が算出した鉛直回転量だけ逆回転させ、光学中心oを通る水平面に正射影することで算出できる。そして、水平回転軸t=(txa,tya,tza)回りに鉛直回転角θだけ回転させる回転行列Rは式(5)で与えることができ、水平回転軸t=(txb,tyb,tzb)回りに鉛直回転角θだけ回転させる回転行列Rは式(6)で与えることができる。
【0068】
【数5】

【0069】
【数6】

【0070】
ちなみに、ローカル座標系は左手系であるので、式(5),式(6)は右手系の回転行列とはθの符号を逆にしたものとなる。
【0071】
水平回転量算出部311は、式(5)により回転行列R、式(6)により回転行列Rを算出し、さらにこれらの逆行列R−1,R−1を算出し、式(7)及び式(8)によってベクトルe1,e1を算出する。
【0072】
【数7】

【0073】
【数8】

【0074】
次に、水平回転量算出部311は、ベクトルe1 ,e1を単位ベクトルに正規化したベクトルがそれぞれX軸、X軸の余弦となっていることに着目して、式(9)及び式(10)により、直線OOとX軸がなす角φ、直線OOとX軸がなす角φを算出する。
【0075】
【数9】

【0076】
【数10】

【0077】
なお、φの算出にはZ成分が不要であるため、ここではe2の算出は省略してe1のXY成分でφを算出している。
【0078】
変換行列算出部32は、姿勢算出部31から入力される各カメラ2の姿勢、及び記憶部4に記憶されている各カメラ2の位置の情報から各座標系間の座標変換を行なうための変換行列42を算出して記憶部4に記憶させる。
【0079】
変換行列算出部32は、世界座標系(X,Y,Z)から基準カメラ2aのカメラ座標系(x,y,zへの座標変換式を式(11)に従い算出し、記憶部4に記憶させる。ただしRは式(5)のRである。
【0080】
【数11】

【0081】
念のため式(11)を補足説明する。式(11)の第1式右辺において、((X,Y,Z−H)はローカル座標系の原点をカメラ座標系の原点に平行移動させる操作に当たり、移動後の原点を中心として回転行列Rで回転操作を行う。Rによる回転でカメラ座標系のx平面がローカル座標系のX平面に一致する。また、x平面を水平にしたカメラ座標系のz軸とローカル座標系のZ軸とは向きが逆であるので、Z座標の符号を反転する行列Kを作用させ、それらを一致させる座標変換を行う。
【0082】
また、変換行列算出部32は、世界座標系(X,Y,Z)からカメラ2bのローカル座標系(X,Y,Zへの座標変換式を算出し、記憶部4に記憶させる。世界座標系におけるカメラ2bのローカル座標系の原点、すなわち世界座標系におけるマーカー7bの座標は、カメラ間距離dと方位角φを用いて(d・cosφ,d・sinφ,0)と表せることから、当該座標変換式は式(12)によって算出できる。
【0083】
【数12】

【0084】
また、変換行列算出部32は、同様にして、カメラ2bのローカル座標系(X,Y,Zから世界座標系(X,Y,Z)への座標変換式を式(13)に従い算出し、記憶部4に記憶させる。
【0085】
【数13】

【0086】
また、変換行列算出部32は、カメラ2bのローカル座標系(X,Y,Zからカメラ2bのカメラ座標系(x,y,zへの座標変換式を式(14)に従い算出し、記憶部4に記憶させる。ただしRは式(6)のRである。
【0087】
【数14】

【0088】
次に本実施形態におけるマーカー7及びキャリブレーション部3Bを用いたキャリブレーションの方法について改めて整理して説明する。移動物体追跡装置1はカメラの設置時等にキャリブレーションを行い、その結果を利用して複数台のカメラ2の画像を用いた移動物体追跡を行う。具体的には、移動物体追跡の事前処理としてキャリブレーションが行われ、キャリブレーション結果に基づき、例えば、カメラ画像間の座標変換処理が行われ、移動物体の追跡処理が行われる。
【0089】
[キャリブレーション]
図7はキャリブレーションの概略のフロー図である。キャリブレーションでは、カメラ2毎に世界座標系における位置・姿勢の算出と変換行列42の算出を行う。
【0090】
キャリブレーション部3Bは、まず、入力部5を介した設定情報40の入力を受け付ける(S50)。管理者は入力部5からカメラ2aと2bの間の距離d、基準カメラ2aの指定、カメラ2aからマーカー7aまでの距離h、カメラ2bからマーカー7bまでの距離h、カメラ2aの焦点距離f、カメラ2bの焦点距離f等を設定情報として入力し、キャリブレーション部3Bは入力された設定情報40を記憶部4に記憶させる。
【0091】
設定情報40の入力が終わると、各カメラ2によるマーカー7の撮像が行なわれる(S51)。キャリブレーション部3Bは、各カメラ2により撮像された各画像を入力部5のモニタに順次表示してマーカー座標41の入力を受け付ける(S52)。管理者は入力部5のマウスを操作するなどして表示画像中の自己マーカー座標及び相手マーカー座標を入力し、キャリブレーション部3Bは入力されたマーカー座標41を撮像したカメラ2の識別子及び自己マーカー/相手マーカーを区別する識別子と関連付けて記憶部4に記憶させる。カメラ2aの画像に対しては自己マーカー座標Pと相手マーカー座標Qが、カメラ2bの画像に対しては自己マーカー座標Pと相手マーカー座標Qがそれぞれ入力される。
【0092】
マーカー座標41の入力が終わると、キャリブレーション部3Bは視線方向算出部30によりマーカー座標41それぞれに対する視線方向を算出する(S53)。視線方向算出部30は、自己マーカー座標Pに式(1)及び式(2)を適用してカメラ2aからマーカー7aへの視線方向として見込み角θ、方位角の正弦sinψ、方位角の余弦cosψを算出し、同様に自己マーカー座標Pに基づきカメラ2bからマーカー7bへの視線方向としてθ,sinψ、cosψを算出する。但し、視線方向算出部30は、各自己マーカー座標が画像中心oと一致するかの確認を行い、一致する自己マーカー座標についてはθを0と算出し、sinψとcosψの算出を省略する。
【0093】
また視線方向算出部30は、相手マーカー座標Qに式(1)及び式(2)を適用してカメラ2aからマーカー7bへの視線方向として見込み角α、方位角の正弦sinβ、方位角の余弦cosβを算出し、同様に相手マーカー座標Qに基づきカメラ2bからマーカー7aへの視線方向としてα,sinβ、cosβを算出する。但し、視線方向算出部30は、各相手マーカー座標が画像中心oと一致するかの確認を行い、一致する相手マーカー座標についてはαを0と算出し、sinβとcosβの算出を省略する。
【0094】
視線方向の算出が終わると、キャリブレーション部3Bは姿勢算出部31により各カメラ2の姿勢を算出する。姿勢算出部31の鉛直回転量算出部310は、まず、各カメラ2の自己マーカーへの視線方向から当該カメラの鉛直回転量の算出を行なう(S54)。すなわち、鉛直回転量算出部310は、θ,θbをそれぞれカメラ2a,2bの鉛直回転角とし、θとsinψとcosψを式(3)に適用して水平回転軸tを算出し、θとsinψとcosψを式(4)に適用して水平回転軸tを算出する。但し、θが0の場合は水平回転軸tを(0,0,0)と算出し、θが0の場合は水平回転軸tを(0,0,0)と算出する。
【0095】
次に、姿勢算出部31は、水平回転量算出部311により水平回転量の算出を行なう(S55)。すなわち、まず水平回転量算出部311は、θとtを式(5)に適用して回転行列Rを算出し、θとtを式(6)に適用して回転行列Rを算出し、さらにこれらの逆行列R−1,R−1を算出する。続いて水平回転量算出部311は、R−1とα,sinβ,cosβを式(7)に適用してベクトルe1を算出し、R−1とα,sinβ,cosβを式(8)に適用してベクトルe1を算出する。そして水平回転量算出部311は、ベクトルe1を式(9)に適用してカメラ2aの水平回転角φを算出するとともに、ベクトルe1を式(10)に適用してカメラ2bの水平回転角φを算出する。
【0096】
こうして、カメラ2aの姿勢として鉛直回転量(鉛直回転角θ及び水平回転軸t)と水平回転角φが算出され、カメラ2bの姿勢として鉛直回転量(鉛直回転角θ及び水平回転軸t)と水平回転角φが算出される。
【0097】
次に、キャリブレーション部3Bの変換行列算出部32は、設定情報40及び各カメラの姿勢を用いて変換行列42を算出して記憶部4に記憶させる(S56)。すなわち、変換行列算出部32は、カメラ2aの鉛直回転量パラメーターθ及びtとマーカーへの距離hを式(11)に適用して世界座標系からカメラ2aのカメラ座標系への座標変換式を算出し、カメラ2aの水平回転角φとカメラ間距離dを式(12)に適用して世界座標系からカメラ2bのローカル座標系への座標変換式を算出し、カメラ2bの水平回転角φとカメラ間距離dを式(13)に適用してカメラ2bのローカル座標系から世界座標系への座標変換式を算出し、カメラ2bの鉛直回転量パラメーターθ及びtとマーカーへの距離hを式(14)に適用してカメラ2bのローカル座標系からカメラ2bのカメラ座標系への座標変換式を算出する。
【0098】
以上によりカメラ2aとカメラ2bのキャリブレーションが終了する。
【0099】
[座標変換処理]
キャリブレーション完了後、その結果である変換行列42を利用して座標変換処理を行うことができる。座標変換処理は移動物体追跡部3Aの座標変換部33により行われる。図8は座標変換処理の一例の概略のフロー図である。座標変換処理としてここでは、世界座標系をカメラ2a,2bそれぞれのカメラ座標系へ変換する例を説明する。
【0100】
このような変換の必要性は、例えば、追跡処理の過程でカメラ2aの画像にて検出された移動物体の像とカメラ2bの画像にて検出された移動物体の像が同一移動物体によるものか同定するために生じる。同定のために移動物体追跡部3Aは世界座標系に同定対象の移動物体の存在が予測される位置に移動物体の3次元形状を模した立体モデルを仮想配置して当該立体モデル内部に複数のサンプリング点を設定し、各サンプリング点を変換対象として順次、座標変換部33に入力する。
【0101】
世界座標系における座標(X,Y,Z)が変換対象として入力されると(S70)、座標変換部33は、記憶部4から変換行列42を読み出し、当該座標(X,Y,Z)に式(11)により算出された変換式を適用して基準カメラ2aのカメラ座標系に変換し、これを画像平面に投影した対応座標を出力する(S71)。また、座標変換部33は、当該座標(X,Y,Z)に式(12)により算出された変換式を適用してカメラ2bのローカル座標系に変換して対応座標(X,Y,Z)を求め(S72)、さらに対応座標(X,Y,Z)に式(14)により算出された変換式を適用してカメラ2bのカメラ座標系に変換し、これを画像平面に投影した対応座標を出力する(S73)。
【0102】
移動物体追跡部3Aは座標変換部33から出力された各サンプリング点の対応座標が対応する各カメラの画像にて検出された移動物体の像の内部にどの程度含まれるかによって移動物体の像の同定を行う。
【0103】
上述の実施形態では、移動物体追跡装置1の制御部3でキャリブレーション部3Bを実現する構成を示したが、キャリブレーション部3Bの機能は移動物体追跡装置1から分離した装置により実現することもできる。この場合、移動物体追跡装置1のカメラシステムの設置時に作業者が当該装置を制御部3に接続する等して、カメラ2の画像に基づいてキャリブレーションを実施する。
【0104】
上述の説明では、マーカー座標41は例えば、キャリブレーションを行う作業者等がマーカー7を設置した状態でのカメラ2の画像上にてマーカーの像の位置を入力部5から入力するが、制御部3にて画像認識でマーカーの像を認識しその位置を特定して記憶部4に格納する構成とすることもできる。例えば、2台のカメラそれぞれのマーカー7の色を変えることで、各カメラ2の画像にて自己のマーカー7と相手のマーカー7とを識別することが可能である。
【0105】
以上説明したように本発明によれば、カメラの鉛直下に吊り下げたマーカーのみでキャリブレーションが可能であることにより、狭いスペースでのキャリブレーションが可能になる。
【符号の説明】
【0106】
1 移動物体追跡装置、2 カメラ、3 制御部、3A 移動物体追跡部、3B キャリブレーション部、4 記憶部、5 入力部、6 出力部、7 マーカー、21 レンズ部、30 視線方向算出部、31 姿勢算出部、32 変換行列算出部、33 座標変換部、40 設定情報、41 マーカー座標、42 変換行列、71 糸、310 鉛直回転量算出部、311 水平回転量算出部。

【特許請求の範囲】
【請求項1】
自己及び相互の鉛直下を撮像可能に設置された複数のカメラの姿勢を前記複数のカメラに共通の世界座標系にて算出するカメラ姿勢算出装置であって、
前記各カメラの鉛直下に配置されたマーカーと、
前記各カメラで撮像した画像における自己の鉛直下の自己マーカー及び他のカメラの鉛直下の相手マーカーの位置座標を用いて当該カメラから当該各マーカーへの視線方向を算出する視線方向算出部と、
前記自己マーカーへの前記視線方向から得られる鉛直方向と、前記相手マーカーへの前記視線方向から得られる前記カメラ間の方位とを用いて前記世界座標系における前記各カメラの前記姿勢を算出する姿勢算出部と、
を備えたことを特徴とするカメラ姿勢算出装置。
【請求項2】
請求項1に記載のカメラ姿勢算出装置において、
前記姿勢算出部は、前記自己マーカーへの前記視線方向を用いて前記各カメラの鉛直回転量を算出すること、を特徴とするカメラ姿勢算出装置。
【請求項3】
請求項2に記載のカメラ姿勢算出装置において、
前記姿勢算出部は、一対の前記カメラにおける一方カメラから前記相手マーカーへの前記視線方向を当該一方カメラの前記鉛直回転量だけ回転させて当該一方カメラからの他方カメラの方位を算出すること、を特徴とするカメラ姿勢算出装置。
【請求項4】
請求項1から請求項3のいずれか1つに記載のカメラ姿勢算出装置において、
前記マーカーは、前記カメラのレンズ部に上端を固定された糸の下端に取り付けられて中空に配置されること、を特徴とするカメラ姿勢算出装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−92871(P2013−92871A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2011−233919(P2011−233919)
【出願日】平成23年10月25日(2011.10.25)
【出願人】(000108085)セコム株式会社 (596)
【Fターム(参考)】