カメラシステム
【課題】複数のカメラが配列されたカメラシステムにて移動物体の位置を検出する場合に、カメラの外部パラメータの校正を一群のカメラごとに行うと、カメラ群間で校正誤差が累積して精度が低下する。
【解決手段】クラスタごとに、共通視野を利用して設定したクラスタ座標系における各カメラの位置・姿勢を求める。クラスタ処理部2はクラスタごとに複数のカメラの画像からローカル座標系での物体位置を算出する。統合処理部3は、各共通カメラの位置・姿勢について隣接クラスタ間にて所定の誤差を持たせることによりクラスタ座標系の相互の配置関係を調整した統合座標系を設定し、クラスタ座標系での物体位置を統合座標系に変換する。
【解決手段】クラスタごとに、共通視野を利用して設定したクラスタ座標系における各カメラの位置・姿勢を求める。クラスタ処理部2はクラスタごとに複数のカメラの画像からローカル座標系での物体位置を算出する。統合処理部3は、各共通カメラの位置・姿勢について隣接クラスタ間にて所定の誤差を持たせることによりクラスタ座標系の相互の配置関係を調整した統合座標系を設定し、クラスタ座標系での物体位置を統合座標系に変換する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のカメラが配列されたカメラシステムを用いて、人物等の移動物体の位置を検出するカメラシステムに関し、特に、カメラの外部パラメータの校正が一部のカメラごとに行われるカメラシステムに関する。
【背景技術】
【0002】
対象空間を撮影した画像に基づいて移動物体の行動分析等を行う場合、隣り合うカメラが共通視野を持つように複数のカメラを配列して移動物体を追跡すれば、共通視野にて移動物体を3次元的に解析することでオクルージョンが生じても物体位置を精度良く検出でき、また複数の視野を連結することで物体位置を広範囲に追跡できるというメリットがある。
【0003】
複数のカメラで物体位置の情報を交換するには、共通視野を利用して各カメラの外部パラメーター(カメラの位置・姿勢)を計測する校正(キャリブレーション)を正確に行っておく必要があるが、カメラが多数になると全カメラに共通する視野を設定するのは困難がある。そのため、特許文献1に記載の撮像装置較正方法ではまず視野を共有するカメラごとにキャリブレーションを行ない、その後、これらの部分ごとのキャリブレーション結果を1つの座標系に変換する。
【0004】
このとき特許文献1の方法では、部分ごとのキャリブレーション結果の間に生じる誤差を均一化するために各カメラの外部パラメータを少しずつ補正して、誤差を全カメラに分散させる構成を示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2011−86111号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
複数のカメラを用いた追跡処理を好適に行うには、複数カメラの画像から物体の3次元位置を精度良く求める必要があり、そのために、共通視野を有するカメラ群(クラスタ)内におけるカメラキャリブレーションを高精度に行うことが求められる。この点、カメラシステム全体としての整合性を確保するために上述のように誤差を全カメラに分散させると、クラスタ内でのカメラの位置等、外部パラメータも修正される。その結果、クラスタ内の追跡精度が落ちるという問題があった。また、各クラスタでの追跡結果をクラスタ間にて対応付けて統合する処理はクラスタ内の追跡精度が高いことを前提としている。そのため、クラスタ内の追跡精度の低下はクラスタ間統合処理の精度も低下させ、全体としての追跡精度が低下するという問題があった。
【0007】
また、各クラスタにおけるキャリブレーション結果はそれぞれに量子化誤差などを含んでおり、クラスタ間で物体位置の情報を交換するとこの誤差が重畳する。そのため、クラスタがループ状に接続された場合などにシステム全体として物体位置の整合性を保てなくなる問題があった。
【0008】
このように多数のカメラを用いた追跡では、局所における物体位置の検出精度と全体での物体位置の整合性とのトレードオフが問題となる。
【0009】
本発明は上記問題を鑑みてなされたものであり、多数のカメラを用いた広い空間での物体位置の検出を高精度で行うことのできるカメラシステムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係るカメラシステムは、視野内に共通視野を有した一群のカメラであるクラスタを複数含み、当該複数のクラスタが隣り合うクラスタにて共通カメラを共有して互いに連鎖したものであって、前記クラスタごとに設定したクラスタ座標系、並びに当該クラスタ座標系における前記各カメラの位置及び姿勢を記憶するクラスタ校正情報記憶部と、前記隣り合うクラスタにて共有している前記共通カメラの前記クラスタ座標系それぞれの位置及び姿勢の間に所定範囲の誤差を許容することにより当該クラスタ座標系の相互の配置関係を調整した、全クラスタに亘る統合座標系を記憶する統合座標系記憶部と、前記クラスタごとに、前記カメラが撮像した物体の画像を解析して当該クラスタの前記クラスタ座標系における当該物体の物体位置を検出する物体位置検出部と、前記物体位置検出部により検出された前記クラスタ座標系での前記物体位置を前記統合座標系に変換して出力する物体位置統合部と、を備える。
【0011】
他の本発明に係るカメラシステムにおいては、前記複数のクラスタはループ状に連鎖し、前記統合座標系は、ループ上の全ての前記共通カメラについて積算した前記誤差を最小化するように定められている。
【0012】
本発明に係るカメラシステムにおいては、前記物体位置統合部は、前記クラスタ座標系における前記共通カメラの前記位置及び姿勢を前記隣り合うクラスタにて合致させて、当該隣り合うクラスタのそれぞれから検出された前記物体位置を照合し同一物体の対応付けを行う。
【0013】
別の本発明に係るカメラシステムにおいては、前記物体位置統合部は、前記同一物体として対応付けされた前記物体位置のうち、前記隣り合うクラスタそれぞれから同一時刻に検出された複数の物体位置を前記統合座標系における当該物体位置の内分点に置き換えて出力する。
【発明の効果】
【0014】
本発明によれば、多数のカメラを用いて広い空間で高精度に物体位置を検出することが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態に係るカメラシステムにおけるカメラの配置の一例を示す模式的な平面図である。
【図2】本発明の実施形態に係るカメラシステムの概略構成を示すブロック図である。
【図3】クラスタ処理部の概略の構成を示すブロック図である。
【図4】統合処理部の概略の構成を示すブロック図である。
【図5】図1に示したカメラシステムに関するクラスタ構成情報を表形式で表した模式図である。
【図6】図1に示すカメラ構成における誤差の累積を説明する模式的な平面図である。
【図7】誤差行列を説明するためのカメラシステムの模式的な平面図である。
【図8】座標統合処理部の機能を説明する模式図である。
【図9】各クラスタのカメラキャリブレーションの概略のフロー図である。
【図10】ループキャリブレーションの概略のフロー図である。
【図11】追跡動作時に行われる座標統合処理の概略のフロー図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態(以下実施形態という)について、図面に基づいて説明する。本実施形態は、監視対象空間に多数のカメラを配置して広範囲に人物等の移動物体を3次元追跡するカメラシステムである。
【0017】
最初に本システムで用いるマルチカメラトラッキングについて説明する。マルチカメラトラッキングは複数台のカメラで異なる視点から撮影した画像に基づいて3次元位置を求める手法である。この手法は、異なったアングルの複数の画像を用いて同一物体を観察するため、1台のカメラだけで撮影する場合に比べ位置の検出精度が高いという特徴を有する。例えば、カメラ1台で物体位置を検出する場合、一般に、カメラから見た奥行き方向に対する検出精度が悪いのに対し、別のカメラも用いれば同一物体を別の角度から見ることができるため奥行き方向の拘束を与えることができる。この拘束はカメラ台数が多い程強くなり、それに応じて物体位置の検出精度が高くなる。
【0018】
ただし、その検出精度はカメラの位置・姿勢といった外部パラメータの精度に左右される。そのために、共通視野を持つ複数のカメラに対して予めカメラキャリブレーションを行い、各カメラの外部パラメータを高精度に求める必要がある。
【0019】
ここで、カメラシステムを構成する全てのカメラに対してマルチカメラトラッキングを適用して監視対象空間全体にて物体を一元的に追跡できることが望ましい。しかし、建物などの広い空間では例えば、廊下等の遮蔽物により、カメラシステム全体で共通視野を確保できない状況が存在し得る。つまり、この場合、共通視野を前提とするマルチカメラトラッキングを監視対象空間に一元的には適用することができない。
【0020】
この場合には、共通視野を持つカメラの集合であるクラスタという概念を導入し、監視対象空間全体を複数のカメラクラスタで分担する。好適には3以上のクラスタを用いて広い空間を監視する。つまり、カメラクラスタ単位で独立にマルチカメラトラッキングを行う。そして、クラスタごとの追跡結果をクラスタ間にて統合して監視対象空間全体での追跡結果を得る。隣り合うクラスタには互いに共通するカメラを設け、統合処理はこのカメラを利用して行う。
【0021】
図1はカメラの配置の一例を示す模式的な平面図であり、本実施形態では当該配置を用いてカメラシステムを説明する。図1に示す配置では、監視対象空間には6台のカメラe1〜e6が配置される。例えば、これらカメラが取り囲む領域に障害物(図示せず)が存在し、任意のカメラには当該障害物の陰に隠れてその視野を撮影できないカメラが存在する。例えば、カメラe2からはカメラe5の視野内の空間を撮影できない。
【0022】
図1のカメラシステムでは3つのクラスタC1〜C3を設定し、当該クラスタごとにカメラキャリブレーションを行う。キャリブレーションとマルチカメラトラッキングとを共にクラスタ単位で行うことでマルチカメラトラッキングを高精度に行うことができる。C1はカメラe1〜e3からなり、C2はカメラe3〜e5、C3はカメラe5,e6及びe1からなる。各クラスタの3台のカメラは互いに共通視野を有する。例えば、C1においてe1とe2、e2とe3、及びe3とe1とはそれぞれ共通視野を有し、それら共通視野は連続した共通視野(クラスタ内共通視野)を形成する。図1ではクラスタを表す符号C1〜C3で指し示す矩形により、各クラスタのクラスタ内共通視野を模式的に表現している。
【0023】
また、図1のカメラシステムでは互いに隣り合うクラスタ(隣接クラスタ)にはそれらに共通するカメラ(共通カメラ)を1台設け、隣接クラスタ同士には互いのクラスタ内共通視野がオーバーラップする領域を設けている。具体的には、カメラe1,e3,e5が共通カメラである。すなわち、図1のカメラシステムは3つのクラスタがループ状に接続される例となっている。
【0024】
上述したようにカメラキャリブレーションはクラスタごとに独立に行う。よって、クラスタごとに3次元世界を記述するローカルな座標系(クラスタ座標系)を持つことになる。複数のクラスタ座標系間の座標変換は当該複数のクラスタに共通する共通カメラのカメラ座標系を介して行う。
【0025】
以上、マルチトラッキングロジックを用いた本システムにおける追跡処理の概要について説明した。以降、さらにその詳細について説明する。
【0026】
図2は本実施形態に係るカメラシステムの概略構成を示すブロック図であり、カメラシステム及び画像処理部1を備える。画像処理部1はクラスタ処理部2及び統合処理部3を含んで構成され、入力装置4及び出力装置5が画像処理部1に接続される。
【0027】
図2に示すカメラ構成は図1に示したものと同じ構成であり、6台のカメラe1〜e6からなり、3つのクラスタC1〜C3を設定される。既に述べたように、個々のカメラは監視対象空間の全体を撮影できないが、それぞれの視野を合わせて監視対象空間全体を撮影し、またマルチトラッキングを可能とするように設置される。移動物体の追跡を行う監視動作時には、各カメラはそれぞれの視野内を所定の時間間隔で撮影する。また、カメラは監視動作時だけでなく、その事前処理として行われるカメラキャリブレーションにも用いられる。カメラにより撮影された監視画像は順次、各カメラが属するクラスタに対応するクラスタ処理部2へ出力される。なお、専ら床面又は地表面等の基準面に沿って移動する人の位置、移動を把握するため、カメラは基本的に人を俯瞰撮影可能な高さに設置される。
【0028】
クラスタ処理部2及び統合処理部3は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、MCU(Micro Control Unit)等の演算装置、及びROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスク等の記憶装置を用いて構成される。記憶装置は演算装置で使用されるプログラムやデータを記憶し、演算装置は記憶装置からプログラムを読み出して実行し、監視動作時には移動物体追跡処理を行い、カメラシステムの設置時等にはキャリブレーションに伴う処理を行う。
【0029】
入力装置4はキーボード、マウス、タッチパネルディスプレイ等のユーザーインターフェース装置であり、ユーザーにより操作され画像処理部1に対する各種設定を入力するために用いられる。また、入力装置4はカメラシステムの設置時やメンテナンス時における管理者等の画像処理部1に対する設定入力にも用いられる。特に、入力装置4はカメラ外部パラメータの校正作業において、設置した各カメラの画像上での特徴点を指定する手段として用いることができる。
【0030】
出力装置5はカメラが撮影した画像を表示する表示手段や、異常発生をユーザに知らせる音声・警告音等を出力する音響出力手段を含む。
【0031】
図3はクラスタ処理部2の概略の構成を示すブロック図である。同図を用いて、クラスタ処理部2についてさらに説明する。クラスタ処理部2はクラスタC1〜C3それぞれに対応して設けられ、カメラクラスタごとの処理を行う。クラスタ処理部2はキャリブレーション実行部20、3次元追跡部21及び記憶部22を含んでいる。
【0032】
キャリブレーション実行部20は、クラスタを構成する各カメラで撮影された画像から得られる情報などを用いてカメラキャリブレーションを行う。例えば、共通視野内に設置した基準物体を各カメラで撮影し、それぞれの画像に映る基準物体上の特徴点の座標からクラスタ座標系における各カメラの位置・姿勢が算出される。画像における特徴点は、キャリブレーションを行う作業者が出力装置5に表示される画像にて特徴点を認識し入力装置4からその座標を入力する。また、画像処理部1が画像認識により自動的に特徴点を抽出する構成とすることもできる。キャリブレーション実行部20により算出された各カメラの外部パラメータ等のキャリブレーション結果は記憶部22に格納される。
【0033】
3次元追跡部21(物体位置検出部)は、クラスタごとに当該クラスタに属する各カメラから入力された画像を用いてマルチカメラトラッキングを行って各時刻における人物位置(物体位置)を検出する。この時、記憶部22に記憶されているカメラキャリブレーション情報を用いる。例えば、3次元追跡部21は予め記憶されている背景画像を用い、各カメラの入力画像から背景差分により、追跡対象とする移動物体である人物が映る画像領域を抽出する。一方、仮想3次元空間に3次元的な人モデルを配置し、このモデルをカメラキャリブレーション情報に基づき各カメラの画像上に投影し投影領域を求める。そして、人モデルの投影領域と人物の像の抽出領域との一致度を計算し、各カメラについての一致度の合計が最も大きくなる人モデルの床面上の位置を探索して人物位置とする。なお、3次元追跡部21にて検出される人物位置は各クラスタ座標系での座標値である。人物位置には人物の識別番号及びクラスタ処理部2のクラスタ番号を含めて統合処理部3へ出力される。
【0034】
記憶部22には、クラスタ番号、3次元追跡部21により算出された人物位置が保存される。また記憶部22はクラスタ校正情報記憶部であり、キャリブレーション実行部20により算出された外部パラメータ等のカメラキャリブレーション情報を記憶する。
【0035】
次に統合処理部3について説明する。図4は統合処理部3の概略の構成を示すブロック図である。統合処理部3は座標変換部30、変換行列生成部31、最適化処理部32、座標統合処理部33及び記憶部34を含んでいる。
【0036】
クラスタ処理部2がクラスタごとの処理を行うのに対し、統合処理部3はそれらクラスタを統合して扱う処理を行う。具体的には統合処理部3は、カメラシステムの設置時等に、クラスタ処理部2の記憶部22に保存した各クラスタのカメラキャリブレーション情報を基に、全てのクラスタに対するループキャリブレーションを行う。また、監視動作時には各クラスタ処理部2から入力される人物位置を統合する物体位置統合処理を行う。この物体位置統合処理は、クラスタ間での同一人物の対応付けを行う処理と、各クラスタのクラスタ座標系で求められる人物位置を共通の座標系(統合座標系)に変換することによりこれらを統合する処理とを含んでいる。統合された人物位置を含む追跡結果は出力装置5へ出力することができる。
【0037】
記憶部34はクラスタ構成情報340、変換行列341及び誤差行列342などを保存する。
【0038】
クラスタ構成情報340は、カメラとクラスタの関係及びクラスタ間の関係を記述したものである。図5は図1に示したカメラシステムに関するクラスタ構成情報340を表形式で表した模式図である。カメラ及びクラスタはそれぞれカメラ番号及びクラスタ番号で識別される。また、互いに隣接するクラスタの組(隣接クラスタ組)は隣接番号で識別される。クラスタ構成情報340には、各クラスタとカメラとの対応関係及び当該クラスタを構成するカメラ台数(図5(a))、並びに、各隣接クラスタ組を構成するクラスタと共通カメラとの対応関係(図5(b))が格納される。クラスタ構成情報340は予め記憶部34に格納される。
【0039】
変換行列341はクラスタ間の座標変換を実現するための行列T、及び同一クラスタ内の共通カメラ間の座標変換を実現するための行列Sである。すなわち、各隣接クラスタ組の一方のクラスタのクラスタ座標系から当該隣接クラスタ組の他方のクラスタのクラスタ座標系への回転及び平行移動を表す行列Tが隣接クラスタ組ごとに記憶され、各クラスタ内の任意の共通カメラのカメラ座標系から当該クラスタ内の別の共通カメラのカメラ座標系への回転及び平行移動を表す行列Sがクラスタごとに記憶される。これら変換行列341は変換行列生成部31により各クラスタ処理部2のカメラキャリブレーション情報から生成される。
【0040】
さらに変換行列341の行列Tとそれを用いた座標変換について説明する。
【0041】
行列Tにより実現される座標変換は、各隣接クラスタ組の一方のクラスタのクラスタ座標系を当該隣接クラスタ組の他方のクラスタのクラスタ座標系に、当該隣接クラスタ組が共有する共通カメラの位置・姿勢を合致させるよう位置合わせして座標系を共通化することに相当する。以降、隣接クラスタにて共通カメラの位置・姿勢を合致させる位置合わせを「局所位置合わせ」と称する。
【0042】
各クラスタのクラスタ座標系と共通カメラのカメラ座標系との関係は当該クラスタのキャリブレーション情報により与えられる。すなわち、クラスタ座標系における共通カメラの位置・姿勢が定まれば、当該クラスタ座標系から当該共通カメラのカメラ座標系への変換が一意に定まる。クラスタ座標系での座標(X,Y,Z)からカメラ座標系での座標(x,y,z)への変換は、当該座標間の回転及び平行移動を表す同次変換行列Wを用いてQ=W・Pと定式化できる。ここで、Q=(x,y,z,1)t、P=(X,Y,Z,1)tであり、Wは4×4行列である。
【0043】
そして、共通カメラの位置・姿勢を合致させるよう位置合わせする場合、共通カメラのカメラ座標系の座標は隣接クラスタで同一であるから、共通カメラmを共有するクラスタiのクラスタ座標系Piからクラスタjのクラスタ座標系Pjへの変換及び変換行列Tijは、クラスタ座標系Piから共通カメラmのカメラ座標系Qmへの変換を表す同次変換行列Wimとクラスタ座標系Pjからカメラ座標系Qmへの変換を表す同次変換行列Wjmとを用いてそれぞれ式(1)及び式(2)で表される。
Pj=Tij・Pi (1)
Tij=Wjm−1・Wim (2)
【0044】
変換行列341の行列T及びSを用いたもう一つの座標変換について説明する。
【0045】
上述した局所位置合わせを数珠繋ぎに連鎖させることで直接隣り合わないクラスタのクラスタ座標系同士を位置合わせすることができる。このような位置合わせを「連鎖位置合わせ」と称する。ただし、連鎖位置合わせには隣接クラスタでの座標変換に加えて、同一クラスタ内の共通カメラ間での座標変換が必要である。キャリブレーション情報からこれらの共通カメラのカメラ座標系の間の変換は一意に定まる。すなわち共通カメラmのカメラ座標系Qmから共通カメラnのカメラ座標系Qnへの変換は、これらの座標系の間の回転及び平行移動を表す同次変換行列Vmnを用いてQn=Vmn・Qmと定式化される。クラスタjの共通カメラm側にクラスタiが隣接し、クラスタjの共通カメラn側にクラスタkが隣接しているとすれば、クラスタiのクラスタ座標系Piからクラスタkのクラスタ座標系Pkへの変換及び変換行列Sikは、それぞれ式(3)及び式(4)で表される。
Pk=Sik・Pi (3)
Sik=Wkn−1・Vmn・Wim (4)
【0046】
なお、式(3)及び式(4)は2つ隣のクラスタへの変換であるが、3つ以上隣のクラスタへの変換も行列Vと行列Wの積を適宜連結することで算出することができる。
【0047】
ここでキャリブレーション誤差について説明する。各クラスタのキャリブレーション結果にはそれぞれの量子化誤差や実測時の誤差などが含まれる。そのため共通カメラの位置・姿勢を合致させて位置合わせを行うと、位置合わせされたクラスタ座標系の相対関係には誤差が重畳する。図6は、クラスタC1に対してクラスタC2、クラスタC3の順に連鎖位置合わせしたクラスタ座標系の相対関係を模式的に示したものである。クラスタC1のカメラ座標系Q1とクラスタC2のカメラ座標系Q4,Q5の間には実空間の各カメラの関係との誤差が生じ、同様にQ2とQ4,Q5の間にも誤差が生じる。そのためクラスタ間で人物位置の情報を交換すると実空間の位置との乖離が生じる。クラスタ間の誤差は位置合わせにより伝播し、連鎖に沿って離れるほど累積して大きくなり得る。例えば、Q1とQ1’の間にはQ1とQ5よりも大きな誤差が生じ得る。このような誤差の伝播は上記乖離を大きくし、カメラのループの終端において人物位置が整合しないという形で顕在化する。すなわちカメラシステム全体で人物位置の整合性をとることが困難となる。そのため、図6の例ではクラスタC3で検出された人物位置とクラスタC1で検出された人物位置を同定できない、若しくは接近した複数の人物を取り違えて同定してしまう問題が生じる。また、局所位置合わせを繰り返した場合も同じ問題が生じ、この場合はさらに人物の移動経路によって誤差の重畳パターンが変わるためにカメラシステム全体で人物位置の整合性をとることがより一層困難となる。
【0048】
誤差行列342はカメラキャリブレーション誤差へ対処するためのものであり、本発明の特徴的な性質を有する部分である。誤差行列342は、各クラスタ座標系を、当該クラスタ座標系におけるカメラの位置・姿勢の配置関係を維持したまま共通カメラの位置・姿勢にて位置合わせしたときに、各クラスタ座標系の間に生じる誤差を定義する情報である。ここでの位置合わせは前述した局所位置合わせとは異なり、全クラスタの位置合わせであることから「全体位置合わせ」と称する。全体位置合わせされた全クラスタのクラスタ座標系は共通する1つの座標系に座標変換されることになる。この全体位置合わせにより生成される全クラスタに共通の座標系を「統合座標系」と称する。なお本実施形態では、クラスタC1に対してクラスタC2,C3を全体位置合わせすることとし、そのため統合座標系のXYZ軸と原点はクラスタC1のクラスタ座標系のそれらと一致する。記憶部34は、各クラスタ間の誤差行列342と、前述した変換行列341と、統合座標系の基準がクラスタC1のクラスタ座標系であることとを記憶する統合座標系記憶部としての機能を有する。
【0049】
カメラキャリブレーション誤差が生じる問題については図6を用いて既に説明し、そこでは特にループ状のクラスタ配置ではループの端点同士のずれが顕在化する問題があることも説明した。なお、クラスタ間で座標変換を繰り返すほど、変換行列341に含まれる誤差成分が累積してトータルの誤差は増加する。
【0050】
図7はカメラシステムの模式的な平面図であり、誤差行列342を説明するためのものである。同図に示すように、誤差行列342を導入した統合座標系では、各共通カメラはそれを共有する隣接クラスタの一方と他方とで別々の位置・姿勢を与えられる。つまり、図7においてC1におけるe3とC2におけるe3’、C2におけるe5とC3におけるe5’、及びC1におけるe1とC3におけるe1’とはそれぞれ実体としては同一のカメラe3,e5,e1である。
【0051】
誤差行列342は、同一の共通カメラについてクラスタそれぞれにて別々に設定した位置間で定義され、変換行列341と同様、カメラ座標系における回転成分と平行移動成分からなる同次変換行列Eで定義でき、誤差を表すと共に座標変換をも表す。具体的には、カメラe3’からe3への間の変換行列E1と、カメラe5’からe5への変換行列E2が誤差行列342として記憶される。カメラe1とe1’との間の変換行列は、E1,E2が決まると従属的に一意に決まるものであるため特に定義を要しない。
【0052】
誤差行列342を定義するメリットは、クラスタの各連結部分で誤差を持たせるので変換行列341を修正することなく、すなわちクラスタ内のカメラキャリブレーション情報を維持したまま、カメラシステム全体でキャリブレーション誤差の分散・吸収を図れることである。これにより、クラスタ内の物体位置検出精度が劣化せず各クラスタからの物体位置を統合できるので、全体として精度の良いトラッキングが可能となる。
【0053】
ここで、誤差行列342及び変換行列341を使った座標変換の例として、クラスタC3のクラスタ座標系X3Y3Z3から統合座標系X1Y1Z1への変換について説明する。カメラキャリブレーション情報によりクラスタC3のクラスタ座標P3から、カメラe5’のカメラ座標Q5’が求まる。次に、カメラ座標Q5’からクラスタC2のカメラe5のカメラ座標Q5への変換は、
Q5 =E2・Q5’ (5)
となる。またカメラ座標Q5からカメラ座標Q3’への変換は、
Q3’=T53・Q5 (6)
となる。更に、カメラ座標Q3’からカメラ座標Q3への変換は、
Q3 =E1・Q3’ (7)
となる。最後に、カメラ座標Q3から統合座標系P1への変換はカメラキャリブレーション情報により求まる。この例では、クラスタC3のクラスタ座標から統合座標系P1への変換を行ったが、カメラe1’のカメラ座標系Q1’から統合座標系P1への変換も同様である。
【0054】
誤差行列342は後述する最適化処理部32により求められる。
【0055】
座標変換部30は、各クラスタのカメラキャリブレーション情報、変換行列341、誤差行列342を用いて、式(1)による隣接クラスタ間の座標変換、式(3)等による任意のクラスタ間の座標変換、及び式(5)〜(7)等によるクラスタ座標系から統合座標系への変換を行う。
【0056】
変換行列生成部31は、各クラスタのカメラキャリブレーション情報から各クラスタ内の変換行列341を生成する。上述したように変換行列341は各クラスタ座標系における共通カメラの位置・姿勢から、当該クラスタ座標系に対する当該共通カメラのカメラ座標系への回転量及び平行移動量を求めて、行列V及びWを算出し、これらに式(2)及び式(4)を適用することで算出される。
【0057】
最適化処理部32は、各クラスタ間の誤差がカメラシステム全体で最小化するように誤差行列342を定めることにより統合座標系の生成を行う。例えば、図7に示すカメラシステムではクラスタC1とC2との間、クラスタC2とC3との間、及びクラスタC3とC1との間の誤差の合計を最小化する。具体的には、誤差行列E1,E2それぞれの回転成分の回転角をθm1,θm2、誤差行列E1,E2それぞれの平行移動成分の移動量をdm1,dm2、またクラスタC1のカメラe1からクラスタC3のカメラe1’への変換の回転角をθe、移動量をdeと表すと、例えば、次式で定義する積算誤差USUMを最小化する。
USUM=Uθ+α×Ud (8)
【0058】
ここで、Uθ,Udはそれぞれ次式で定義する回転誤差の和、移動誤差の和である。αは重み係数であり、例えば、UθとUdとの単位の相違を調整し、回転角の誤差と移動量の誤差とが均等に評価されるように設定することができる。
Uθ= |θm1|+|θm2|+|θe| (9)
Ud= dm1+dm2+de (10)
【0059】
θe及びdeは次のように求められる。カメラe1’のカメラ座標系の原点と座標軸ベクトルを、座標変換部30により統合座標系に変換する。座標変換部30は、クラスタC1を始端クラスタ、クラスタC3を終端クラスタに設定し、始端クラスタから終端クラスタまでを連鎖位置合わせした変換行列S31を生成して、変換行列S31により統合座標系への変換を行う。一方、カメラe1のカメラ座標系の原点と座標軸ベクトルを基準座標系で表す。これら2つの原点座標のオフセットを移動量deとし、座標軸ベクトルの回転角をθeとする。
【0060】
さて、既に述べたように、カメラe1とe1’との間の変換は、E1,E2が決まると従属的に一意に決まる。つまり、θe及びdeは独立のパラメータではなく、E1,E2から計算されるパラメータである。よって、E1,E2を最適化することによりUSUMの最小化が図られる。最適化処理は一般的に用いられる、例えば、最急降下法、マルコフ連鎖モンテカルロ法(Markov chain Monte Carlo methods:MCMC法)などの手法を用いて行うことができ、当該最適化により誤差行列342が決定される。
【0061】
座標統合処理部33は物体位置統合部としての機能を有し、当該機能は各クラスタ処理部2から入力される人物位置を隣接クラスタ間で照合し同一人物の対応付けを行うクラスタ間追跡継承機能、及びクラスタごとの人物位置を統合座標系に統合して出力する追跡統合機能を含む。
【0062】
まず、クラスタ間追跡継承機能について説明する。当該機能では、隣接クラスタそれぞれから同時刻に検出された人物位置を座標変換部30を用いて局所位置合わせして位置合わせされた人物位置のうち予め設定された同定しきい値よりも近接している人物位置同士を同一人物によるものと判定することで、クラスタ間での同一物体の対応付けを行う。
【0063】
図8は座標統合処理部33の機能を説明する模式図であり、同図を用いて、クラスタ間追跡継承機能及び追跡統合機能について具体的に説明する。クラスタC1とクラスタC2との間での1人の人間の対応付けを考える。図8(a)は、局所位置合わせした場合の2つのクラスタの配置を示す模式的な平面図である。また同図(b)は全体位置合わせした場合の2つのクラスタの配置を模式的に示しており、誤差が含まれるため共通カメラe3の位置がクラスタC1,C2でずれている様子が示されている。
【0064】
また、図8(c)はクラスタC1にて検出された1人の人間の人物位置を三角印(▲)で示し、図8(d)はクラスタC2にて検出された同一人の人物位置を四角印(■)で示している。ここではこれらC1,C2での人物位置は共通カメラe3の視野内で同一時刻に得られたものとする。
【0065】
図8(e)は同図(c),(d)を局所位置合わせした様子を示しており、クラスタの配置は図8(a)の状態に相当する。また、図8(f)は全体位置合わせした様子を示しており、クラスタの配置は図8(b)の状態に相当する。これら2つの図を比較してわかるように、誤差成分を含む場合(図8(f))は、それぞれのクラスタで求まった三角(▲)及び四角(■)の位置が誤差成分の影響で誤差成分を含まない場合(図8(e))よりも離れる。
【0066】
ここで、誤差行列342はカメラシステム全体としての整合性をとるためのものであるため、検出結果をクラスタ間で対応付けるという局所的な処理において誤差行列342の誤差成分は考慮する必要がない。また、人が大勢いる場合にはこのような誤差成分を考慮に入れることにより離れてしまう検出位置を用いると、対応付けを誤る可能性がある。
【0067】
そこで、クラスタ間追跡継承機能においては、図8(e)に示すように、共通カメラを共有する隣接クラスタそれぞれのクラスタ座標系を当該共通カメラの外部パラメータを合致させる局所位置合わせにより人物位置を位置合わせして同定する。すなわち、当該共通カメラの視野にて追跡された各クラスタでの人物位置を局所位置合わせした座標系にて対応付け、クラスタ間での同一人を決定する。
【0068】
一方、共通カメラを合致させる位置合わせにはキャリブレーション誤差の問題がある。そこで、座標統合処理部33は追跡統合機能において、クラスタ間追跡継承機能により同一人とされたクラスタごとの人物位置について、それらの統合座標系における位置に基づいて一つの統合物体位置を算出し、クラスタの接続部分での追跡結果とする。このとき、統合物体位置は全てのクラスタの位置関係をみて整合性のとれた位置とする必要がある。そこで、座標統合処理部33は、最適化処理部32により積算誤差を最小化した配置関係のクラスタでの人物位置に基づいて統合物体位置を算出する。つまり、クラスタ間の誤差成分を考慮した配置関係で、対応付け後の人の新たな座標を計算する。よって、図8の例では同図(f)の状態で人の新たな座標が計算される。例えば、当該座標の計算方法として、対応付けられた2点の平均の位置(図8(f)における“×”印の位置)を、対応付け後の座標とすることができる。
【0069】
なお、既に述べたように、対応付けはクラスタ間でオーバーラップする領域にいる人間についてのみ行う。また、オーバーラップする領域に人間が複数存在する場合に対応するため、組み合わせ最適化処理により対応を求める。この際、座標間の距離が小さい程対応付けされやすくなるようにコストを設定する。
【0070】
次に本実施形態のカメラシステムにおけるカメラキャリブレーション時の動作、及び移動物体の追跡動作について説明する。既に述べたように、画像処理部1はカメラシステムの設置時等に、各クラスタにおけるキャリブレーション、及びクラスタ間でのループキャリブレーションを行い、その結果を利用して複数台のカメラの画像を用いた移動物体追跡を行う。
【0071】
[各クラスタのカメラキャリブレーション]
図9は各クラスタのカメラキャリブレーションの概略のフロー図である。クラスタを構成する各カメラからクラスタ処理部2に基準物体が映った画像を入力する(ステップS50)。入力された画像における特徴点の位置を特定する(ステップS51)。特徴点の位置の特定は、作業者が出力装置5に表示される画像にて特徴点を認識し入力装置4から指定することもできるし、クラスタ処理部2が自動的に抽出する構成とすることもできる。画像上での特徴点の位置に基づいてキャリブレーション実行部20がカメラキャリブレーションを行い、算出された各カメラの外部パラメータ等のキャリブレーション結果は記憶部22に格納される(ステップS52)。
【0072】
[ループキャリブレーション]
図10はループキャリブレーションの概略のフロー図である。統合処理部3は、クラスタ処理部2の記憶部22に保存してある各クラスタのカメラキャリブレーション情報を読み込み(ステップS60)、また統合処理部3の記憶部34に保存してあるクラスタ構成情報340を読み込む(ステップS61)。そして、変換行列生成部31により、読み込んだカメラキャリブレーション情報より変換行列341を求め(ステップS62)、最適化処理部32により最適化処理を行って誤差行列342を求める(ステップS63)。
【0073】
[追跡動作]
図11は追跡動作時に行われる座標統合処理の概略のフロー図である。各クラスタ処理部2は、担当するクラスタの各カメラから画像を入力し(ステップS70)、3次元追跡部21により当該クラスタ内での追跡処理を実行してクラスタ座標系の人物位置を検出し、検出した人物位置を統合処理部3に出力する(ステップS71)。統合処理部3は、入力された各人物位置に対して座標変換部30により全体位置合わせを行って統合座標系の値に変換し、変換後の各人物位置を記憶部34に記憶させる(ステップS72)。ここで算出された統合座標系の人物位置のうち隣接クラスタで別々に検出された同一人物の人物位置は以降の処理により1つにまとめられる。
【0074】
統合処理部3は、人物位置が検出された隣接クラスタ間で同一人物の対応付けを行う(ステップS73〜S82)。具体的には、各隣接クラスタ組を指定する隣接番号Iを1から1ずつインクリメントしながら(ステップS73,S82)、クラスタ校正情報340から該当する隣接クラスタの情報を読み出して隣接クラスタ組Iを構成する2つのクラスタi及びjを特定し(ステップS74)、クラスタiからの人物位置とクラスタjからの人物位置とが入力されていれば(ステップS75にてYES)、これらのクラスタ間にて対応付けを行う。他方、クラスタiからの人物位置が入力されていないか、クラスタjからの人物位置が入力されていなければ(ステップS75にてNO)、隣接クラスタ組Iに対応付け処理の対象はないとして次の隣接クラスタ組の処理に進む。
【0075】
対応付け処理の対象がある場合、統合処理部3は、変換行列341からクラスタi及びクラスタjの組み合わせに対応する行列Tijを読み出して、座標変換部30によりクラスタiにて検出された人物位置をクラスタjのクラスタ座標系に変換することで局所位置合わせを行う(ステップS76)。これは上述したように誤差成分を除いた状態で対応付けを行うためである。なお、ステップS76で処理される値はステップS72で算出された統合座標系の値ではなく、各クラスタ座標系の値である。統合処理部3は座標統合処理部33により、局所位置合わせされたクラスタiの人物位置とクラスタjの人物位置とに対して組み合わせ最適化による対応付けを行う(ステップS77)。すなわち隣接クラスタ間で人物位置の総当たり組み合わせを設定して各組み合わせで人物位置間の距離を算出し、一方のクラスタの各人物位置に対して最も距離の近い組み合わせのみを選定し、選定された組み合わせのうち距離が予め設定された同定しきい値以下の組み合わせを対応付ける。
【0076】
座標統合処理部33は、隣接クラスタ間にて局所位置合わせにより対応付いた人物位置の組み合わせがあれば(ステップS78にてYES)、これと同じ組み合わせを、当該隣接クラスタそれぞれについてステップS72にて記憶部34に書き込んだ統合座標系の人物位置の中から読み出す。そして、隣接クラスタ組を構成するクラスタそれぞれについて読み出した統合座標系の値の平均値を統合物体位置として算出し(ステップS79)、読み出した各隣接クラスタの人物位置を当該統合物体位置に置き換える(ステップS80)。なお、対応付いた人物位置がない場合(ステップS78にてNO)、ステップS79,S80の処理はスキップされる。
【0077】
全ての隣接クラスタ組について対応付けが終了するまで(ステップS81)、統合処理部3は隣接番号IをインクリメントしてステップS74〜S80の対応付け処理を繰り返す。
【0078】
上述の座標統合処理により、クラスタごとの人の追跡結果がカメラシステム全体で整合性を有するように統合される。画像処理部1は人の複数のクラスタに亘る行動についての判定を、統合された追跡結果に基づいて行う。また、出力装置5への追跡結果の画像表示には統合された追跡結果を用いる。クラスタ間の座標系の誤差が最小化された統合座標系での追跡結果は移動軌跡がクラスタ間にて滑らかになるので、統合された追跡結果を用いた人の移動速度や動きのパターンの精度が向上し、それらに基づいた人の行動認識の精度が向上する。また、軌跡が滑らかになることにより、画像表示での移動軌跡の表示が見やすくなる効果も得られる。
【0079】
以上説明したように本発明に係るカメラシステムでは、カメラシステムを構成する全カメラで共通視野が確保できない場合に、共通視野を有するクラスタごとに物体位置を求め、それを全クラスタに亘る統合座標系にまとめることで、広範囲での物体位置を求め、移動物体の行動分析等を可能としている。統合座標系は、クラスタ内のカメラの位置関係は保持し、カメラキャリブレーシの誤差をクラスタ間の複数の接続部分にて、最適化しつつ分散するように設定され、これにより、クラスタ内のトラッキング処理での移動物体の座標について高い検知精度が実現される。また、移動物体がクラスタをまたぐときは共通カメラで位置合わせして同一物体を同定するので追跡結果を高精度のまま引き継ぐことができる。
【0080】
隣接クラスタ間での同一人物の対応付け処理では、座標間の距離に基づく対応付けという非常に簡単な処理により人物位置のクラスタ間での統合を行っているが、上述のようにクラスタ内での人物位置の検出精度が高いため、このような簡単な処理であっても対応付けを誤る可能性が低く抑えられる。すなわち、クラスタ内での人物位置の高い検知精度が、座標の対応付け精度を担保している。さらに言えば、クラスタ内での人の検知座標の精度は、上述したようにカメラキャリブレーション精度に依存することから、最終的に、クラスタ内のカメラキャリブレーションの精度が、対応付け精度を担保している。
【0081】
なお、上述の実施形態ではクラスタがループ状に接続される例を説明した。ループ状のクラスタ接続では、ループを一周したときのずれによりカメラキャリブレーション全体の誤差を評価することができ、本発明では当該誤差を各クラスタ間に分散する。ここで、カメラキャリブレーション全体の誤差を各クラスタ間にて最適化しつつ分散するという本発明の構成は、全体の誤差を何らかの形で検知できれば、クラスタがループ状に閉合した形状に接続される場合に限らず、例えば、直鎖状やツリー状の開放した端部を有する形状に接続される場合にも適用することができる。例えば、部屋や廊下など形状が把握できる監視空間においては、監視空間の形状とクラスタの配置とを対比し、監視空間の壁からの距離などに基づいてクラスタのキャリブレーション誤差を検知して、本発明を適用することが可能である。
【0082】
また、上記実施形態では、座標統合処理部33による隣接クラスタ間の対応付け後の新たな座標(統合物体位置)は、対応付けられた2点の中点に設定している。しかし、統合物体位置は中点以外とすることもできる。例えば、対応付けられた2点を結ぶ線分を内分する点に設定することができる。また、2つのクラスタ間の共通カメラの視野内にて対応付けられた2点又はその中点がどちらのクラスタに近いかを評価し、近い方のクラスタにて得られた物体位置の重みを他方のクラスタにて得られた物体位置より大きくする重み付け平均とすることもできる。
【0083】
上述の実施形態では、簡単な例としてクラスタが3台のカメラからなる場合を示したが、クラスタを構成する複数のカメラの台数はこれに限定されない。
【0084】
また、クラスタ間での物体位置の対応付けは、当該クラスタの視野のオーバーラップ部分での各クラスタの物体位置の間で行うのが好適であるが、オーバーラップ部分を有さないクラスタ間であっても、互いの視野が或る程度近接していれば、例えば、移動元のクラスタでの追跡結果から移動先での或る時刻tの物体位置を推定し、これと当該時刻tにて移動先で実際に検知される物体位置とを対応付けたり、近接した視野のクラスタの一方にて時刻tに検知された物体位置と他方にて時刻tに近い時刻t’に検知された物体位置とを対応付けたりする近似的な対応付けを行うことも可能である。
【符号の説明】
【0085】
1 画像処理部、2 クラスタ処理部、3 統合処理部、4 入力装置、5 出力装置、20 キャリブレーション実行部、21 3次元追跡部、22,34 記憶部、30 座標変換部、31 変換行列生成部、32 最適化処理部、33 座標統合処理部、340 クラスタ構成情報、341 変換行列、342 誤差行列、C1〜C3 クラスタ、e1〜e6 カメラ。
【技術分野】
【0001】
本発明は、複数のカメラが配列されたカメラシステムを用いて、人物等の移動物体の位置を検出するカメラシステムに関し、特に、カメラの外部パラメータの校正が一部のカメラごとに行われるカメラシステムに関する。
【背景技術】
【0002】
対象空間を撮影した画像に基づいて移動物体の行動分析等を行う場合、隣り合うカメラが共通視野を持つように複数のカメラを配列して移動物体を追跡すれば、共通視野にて移動物体を3次元的に解析することでオクルージョンが生じても物体位置を精度良く検出でき、また複数の視野を連結することで物体位置を広範囲に追跡できるというメリットがある。
【0003】
複数のカメラで物体位置の情報を交換するには、共通視野を利用して各カメラの外部パラメーター(カメラの位置・姿勢)を計測する校正(キャリブレーション)を正確に行っておく必要があるが、カメラが多数になると全カメラに共通する視野を設定するのは困難がある。そのため、特許文献1に記載の撮像装置較正方法ではまず視野を共有するカメラごとにキャリブレーションを行ない、その後、これらの部分ごとのキャリブレーション結果を1つの座標系に変換する。
【0004】
このとき特許文献1の方法では、部分ごとのキャリブレーション結果の間に生じる誤差を均一化するために各カメラの外部パラメータを少しずつ補正して、誤差を全カメラに分散させる構成を示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2011−86111号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
複数のカメラを用いた追跡処理を好適に行うには、複数カメラの画像から物体の3次元位置を精度良く求める必要があり、そのために、共通視野を有するカメラ群(クラスタ)内におけるカメラキャリブレーションを高精度に行うことが求められる。この点、カメラシステム全体としての整合性を確保するために上述のように誤差を全カメラに分散させると、クラスタ内でのカメラの位置等、外部パラメータも修正される。その結果、クラスタ内の追跡精度が落ちるという問題があった。また、各クラスタでの追跡結果をクラスタ間にて対応付けて統合する処理はクラスタ内の追跡精度が高いことを前提としている。そのため、クラスタ内の追跡精度の低下はクラスタ間統合処理の精度も低下させ、全体としての追跡精度が低下するという問題があった。
【0007】
また、各クラスタにおけるキャリブレーション結果はそれぞれに量子化誤差などを含んでおり、クラスタ間で物体位置の情報を交換するとこの誤差が重畳する。そのため、クラスタがループ状に接続された場合などにシステム全体として物体位置の整合性を保てなくなる問題があった。
【0008】
このように多数のカメラを用いた追跡では、局所における物体位置の検出精度と全体での物体位置の整合性とのトレードオフが問題となる。
【0009】
本発明は上記問題を鑑みてなされたものであり、多数のカメラを用いた広い空間での物体位置の検出を高精度で行うことのできるカメラシステムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係るカメラシステムは、視野内に共通視野を有した一群のカメラであるクラスタを複数含み、当該複数のクラスタが隣り合うクラスタにて共通カメラを共有して互いに連鎖したものであって、前記クラスタごとに設定したクラスタ座標系、並びに当該クラスタ座標系における前記各カメラの位置及び姿勢を記憶するクラスタ校正情報記憶部と、前記隣り合うクラスタにて共有している前記共通カメラの前記クラスタ座標系それぞれの位置及び姿勢の間に所定範囲の誤差を許容することにより当該クラスタ座標系の相互の配置関係を調整した、全クラスタに亘る統合座標系を記憶する統合座標系記憶部と、前記クラスタごとに、前記カメラが撮像した物体の画像を解析して当該クラスタの前記クラスタ座標系における当該物体の物体位置を検出する物体位置検出部と、前記物体位置検出部により検出された前記クラスタ座標系での前記物体位置を前記統合座標系に変換して出力する物体位置統合部と、を備える。
【0011】
他の本発明に係るカメラシステムにおいては、前記複数のクラスタはループ状に連鎖し、前記統合座標系は、ループ上の全ての前記共通カメラについて積算した前記誤差を最小化するように定められている。
【0012】
本発明に係るカメラシステムにおいては、前記物体位置統合部は、前記クラスタ座標系における前記共通カメラの前記位置及び姿勢を前記隣り合うクラスタにて合致させて、当該隣り合うクラスタのそれぞれから検出された前記物体位置を照合し同一物体の対応付けを行う。
【0013】
別の本発明に係るカメラシステムにおいては、前記物体位置統合部は、前記同一物体として対応付けされた前記物体位置のうち、前記隣り合うクラスタそれぞれから同一時刻に検出された複数の物体位置を前記統合座標系における当該物体位置の内分点に置き換えて出力する。
【発明の効果】
【0014】
本発明によれば、多数のカメラを用いて広い空間で高精度に物体位置を検出することが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態に係るカメラシステムにおけるカメラの配置の一例を示す模式的な平面図である。
【図2】本発明の実施形態に係るカメラシステムの概略構成を示すブロック図である。
【図3】クラスタ処理部の概略の構成を示すブロック図である。
【図4】統合処理部の概略の構成を示すブロック図である。
【図5】図1に示したカメラシステムに関するクラスタ構成情報を表形式で表した模式図である。
【図6】図1に示すカメラ構成における誤差の累積を説明する模式的な平面図である。
【図7】誤差行列を説明するためのカメラシステムの模式的な平面図である。
【図8】座標統合処理部の機能を説明する模式図である。
【図9】各クラスタのカメラキャリブレーションの概略のフロー図である。
【図10】ループキャリブレーションの概略のフロー図である。
【図11】追跡動作時に行われる座標統合処理の概略のフロー図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態(以下実施形態という)について、図面に基づいて説明する。本実施形態は、監視対象空間に多数のカメラを配置して広範囲に人物等の移動物体を3次元追跡するカメラシステムである。
【0017】
最初に本システムで用いるマルチカメラトラッキングについて説明する。マルチカメラトラッキングは複数台のカメラで異なる視点から撮影した画像に基づいて3次元位置を求める手法である。この手法は、異なったアングルの複数の画像を用いて同一物体を観察するため、1台のカメラだけで撮影する場合に比べ位置の検出精度が高いという特徴を有する。例えば、カメラ1台で物体位置を検出する場合、一般に、カメラから見た奥行き方向に対する検出精度が悪いのに対し、別のカメラも用いれば同一物体を別の角度から見ることができるため奥行き方向の拘束を与えることができる。この拘束はカメラ台数が多い程強くなり、それに応じて物体位置の検出精度が高くなる。
【0018】
ただし、その検出精度はカメラの位置・姿勢といった外部パラメータの精度に左右される。そのために、共通視野を持つ複数のカメラに対して予めカメラキャリブレーションを行い、各カメラの外部パラメータを高精度に求める必要がある。
【0019】
ここで、カメラシステムを構成する全てのカメラに対してマルチカメラトラッキングを適用して監視対象空間全体にて物体を一元的に追跡できることが望ましい。しかし、建物などの広い空間では例えば、廊下等の遮蔽物により、カメラシステム全体で共通視野を確保できない状況が存在し得る。つまり、この場合、共通視野を前提とするマルチカメラトラッキングを監視対象空間に一元的には適用することができない。
【0020】
この場合には、共通視野を持つカメラの集合であるクラスタという概念を導入し、監視対象空間全体を複数のカメラクラスタで分担する。好適には3以上のクラスタを用いて広い空間を監視する。つまり、カメラクラスタ単位で独立にマルチカメラトラッキングを行う。そして、クラスタごとの追跡結果をクラスタ間にて統合して監視対象空間全体での追跡結果を得る。隣り合うクラスタには互いに共通するカメラを設け、統合処理はこのカメラを利用して行う。
【0021】
図1はカメラの配置の一例を示す模式的な平面図であり、本実施形態では当該配置を用いてカメラシステムを説明する。図1に示す配置では、監視対象空間には6台のカメラe1〜e6が配置される。例えば、これらカメラが取り囲む領域に障害物(図示せず)が存在し、任意のカメラには当該障害物の陰に隠れてその視野を撮影できないカメラが存在する。例えば、カメラe2からはカメラe5の視野内の空間を撮影できない。
【0022】
図1のカメラシステムでは3つのクラスタC1〜C3を設定し、当該クラスタごとにカメラキャリブレーションを行う。キャリブレーションとマルチカメラトラッキングとを共にクラスタ単位で行うことでマルチカメラトラッキングを高精度に行うことができる。C1はカメラe1〜e3からなり、C2はカメラe3〜e5、C3はカメラe5,e6及びe1からなる。各クラスタの3台のカメラは互いに共通視野を有する。例えば、C1においてe1とe2、e2とe3、及びe3とe1とはそれぞれ共通視野を有し、それら共通視野は連続した共通視野(クラスタ内共通視野)を形成する。図1ではクラスタを表す符号C1〜C3で指し示す矩形により、各クラスタのクラスタ内共通視野を模式的に表現している。
【0023】
また、図1のカメラシステムでは互いに隣り合うクラスタ(隣接クラスタ)にはそれらに共通するカメラ(共通カメラ)を1台設け、隣接クラスタ同士には互いのクラスタ内共通視野がオーバーラップする領域を設けている。具体的には、カメラe1,e3,e5が共通カメラである。すなわち、図1のカメラシステムは3つのクラスタがループ状に接続される例となっている。
【0024】
上述したようにカメラキャリブレーションはクラスタごとに独立に行う。よって、クラスタごとに3次元世界を記述するローカルな座標系(クラスタ座標系)を持つことになる。複数のクラスタ座標系間の座標変換は当該複数のクラスタに共通する共通カメラのカメラ座標系を介して行う。
【0025】
以上、マルチトラッキングロジックを用いた本システムにおける追跡処理の概要について説明した。以降、さらにその詳細について説明する。
【0026】
図2は本実施形態に係るカメラシステムの概略構成を示すブロック図であり、カメラシステム及び画像処理部1を備える。画像処理部1はクラスタ処理部2及び統合処理部3を含んで構成され、入力装置4及び出力装置5が画像処理部1に接続される。
【0027】
図2に示すカメラ構成は図1に示したものと同じ構成であり、6台のカメラe1〜e6からなり、3つのクラスタC1〜C3を設定される。既に述べたように、個々のカメラは監視対象空間の全体を撮影できないが、それぞれの視野を合わせて監視対象空間全体を撮影し、またマルチトラッキングを可能とするように設置される。移動物体の追跡を行う監視動作時には、各カメラはそれぞれの視野内を所定の時間間隔で撮影する。また、カメラは監視動作時だけでなく、その事前処理として行われるカメラキャリブレーションにも用いられる。カメラにより撮影された監視画像は順次、各カメラが属するクラスタに対応するクラスタ処理部2へ出力される。なお、専ら床面又は地表面等の基準面に沿って移動する人の位置、移動を把握するため、カメラは基本的に人を俯瞰撮影可能な高さに設置される。
【0028】
クラスタ処理部2及び統合処理部3は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、MCU(Micro Control Unit)等の演算装置、及びROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスク等の記憶装置を用いて構成される。記憶装置は演算装置で使用されるプログラムやデータを記憶し、演算装置は記憶装置からプログラムを読み出して実行し、監視動作時には移動物体追跡処理を行い、カメラシステムの設置時等にはキャリブレーションに伴う処理を行う。
【0029】
入力装置4はキーボード、マウス、タッチパネルディスプレイ等のユーザーインターフェース装置であり、ユーザーにより操作され画像処理部1に対する各種設定を入力するために用いられる。また、入力装置4はカメラシステムの設置時やメンテナンス時における管理者等の画像処理部1に対する設定入力にも用いられる。特に、入力装置4はカメラ外部パラメータの校正作業において、設置した各カメラの画像上での特徴点を指定する手段として用いることができる。
【0030】
出力装置5はカメラが撮影した画像を表示する表示手段や、異常発生をユーザに知らせる音声・警告音等を出力する音響出力手段を含む。
【0031】
図3はクラスタ処理部2の概略の構成を示すブロック図である。同図を用いて、クラスタ処理部2についてさらに説明する。クラスタ処理部2はクラスタC1〜C3それぞれに対応して設けられ、カメラクラスタごとの処理を行う。クラスタ処理部2はキャリブレーション実行部20、3次元追跡部21及び記憶部22を含んでいる。
【0032】
キャリブレーション実行部20は、クラスタを構成する各カメラで撮影された画像から得られる情報などを用いてカメラキャリブレーションを行う。例えば、共通視野内に設置した基準物体を各カメラで撮影し、それぞれの画像に映る基準物体上の特徴点の座標からクラスタ座標系における各カメラの位置・姿勢が算出される。画像における特徴点は、キャリブレーションを行う作業者が出力装置5に表示される画像にて特徴点を認識し入力装置4からその座標を入力する。また、画像処理部1が画像認識により自動的に特徴点を抽出する構成とすることもできる。キャリブレーション実行部20により算出された各カメラの外部パラメータ等のキャリブレーション結果は記憶部22に格納される。
【0033】
3次元追跡部21(物体位置検出部)は、クラスタごとに当該クラスタに属する各カメラから入力された画像を用いてマルチカメラトラッキングを行って各時刻における人物位置(物体位置)を検出する。この時、記憶部22に記憶されているカメラキャリブレーション情報を用いる。例えば、3次元追跡部21は予め記憶されている背景画像を用い、各カメラの入力画像から背景差分により、追跡対象とする移動物体である人物が映る画像領域を抽出する。一方、仮想3次元空間に3次元的な人モデルを配置し、このモデルをカメラキャリブレーション情報に基づき各カメラの画像上に投影し投影領域を求める。そして、人モデルの投影領域と人物の像の抽出領域との一致度を計算し、各カメラについての一致度の合計が最も大きくなる人モデルの床面上の位置を探索して人物位置とする。なお、3次元追跡部21にて検出される人物位置は各クラスタ座標系での座標値である。人物位置には人物の識別番号及びクラスタ処理部2のクラスタ番号を含めて統合処理部3へ出力される。
【0034】
記憶部22には、クラスタ番号、3次元追跡部21により算出された人物位置が保存される。また記憶部22はクラスタ校正情報記憶部であり、キャリブレーション実行部20により算出された外部パラメータ等のカメラキャリブレーション情報を記憶する。
【0035】
次に統合処理部3について説明する。図4は統合処理部3の概略の構成を示すブロック図である。統合処理部3は座標変換部30、変換行列生成部31、最適化処理部32、座標統合処理部33及び記憶部34を含んでいる。
【0036】
クラスタ処理部2がクラスタごとの処理を行うのに対し、統合処理部3はそれらクラスタを統合して扱う処理を行う。具体的には統合処理部3は、カメラシステムの設置時等に、クラスタ処理部2の記憶部22に保存した各クラスタのカメラキャリブレーション情報を基に、全てのクラスタに対するループキャリブレーションを行う。また、監視動作時には各クラスタ処理部2から入力される人物位置を統合する物体位置統合処理を行う。この物体位置統合処理は、クラスタ間での同一人物の対応付けを行う処理と、各クラスタのクラスタ座標系で求められる人物位置を共通の座標系(統合座標系)に変換することによりこれらを統合する処理とを含んでいる。統合された人物位置を含む追跡結果は出力装置5へ出力することができる。
【0037】
記憶部34はクラスタ構成情報340、変換行列341及び誤差行列342などを保存する。
【0038】
クラスタ構成情報340は、カメラとクラスタの関係及びクラスタ間の関係を記述したものである。図5は図1に示したカメラシステムに関するクラスタ構成情報340を表形式で表した模式図である。カメラ及びクラスタはそれぞれカメラ番号及びクラスタ番号で識別される。また、互いに隣接するクラスタの組(隣接クラスタ組)は隣接番号で識別される。クラスタ構成情報340には、各クラスタとカメラとの対応関係及び当該クラスタを構成するカメラ台数(図5(a))、並びに、各隣接クラスタ組を構成するクラスタと共通カメラとの対応関係(図5(b))が格納される。クラスタ構成情報340は予め記憶部34に格納される。
【0039】
変換行列341はクラスタ間の座標変換を実現するための行列T、及び同一クラスタ内の共通カメラ間の座標変換を実現するための行列Sである。すなわち、各隣接クラスタ組の一方のクラスタのクラスタ座標系から当該隣接クラスタ組の他方のクラスタのクラスタ座標系への回転及び平行移動を表す行列Tが隣接クラスタ組ごとに記憶され、各クラスタ内の任意の共通カメラのカメラ座標系から当該クラスタ内の別の共通カメラのカメラ座標系への回転及び平行移動を表す行列Sがクラスタごとに記憶される。これら変換行列341は変換行列生成部31により各クラスタ処理部2のカメラキャリブレーション情報から生成される。
【0040】
さらに変換行列341の行列Tとそれを用いた座標変換について説明する。
【0041】
行列Tにより実現される座標変換は、各隣接クラスタ組の一方のクラスタのクラスタ座標系を当該隣接クラスタ組の他方のクラスタのクラスタ座標系に、当該隣接クラスタ組が共有する共通カメラの位置・姿勢を合致させるよう位置合わせして座標系を共通化することに相当する。以降、隣接クラスタにて共通カメラの位置・姿勢を合致させる位置合わせを「局所位置合わせ」と称する。
【0042】
各クラスタのクラスタ座標系と共通カメラのカメラ座標系との関係は当該クラスタのキャリブレーション情報により与えられる。すなわち、クラスタ座標系における共通カメラの位置・姿勢が定まれば、当該クラスタ座標系から当該共通カメラのカメラ座標系への変換が一意に定まる。クラスタ座標系での座標(X,Y,Z)からカメラ座標系での座標(x,y,z)への変換は、当該座標間の回転及び平行移動を表す同次変換行列Wを用いてQ=W・Pと定式化できる。ここで、Q=(x,y,z,1)t、P=(X,Y,Z,1)tであり、Wは4×4行列である。
【0043】
そして、共通カメラの位置・姿勢を合致させるよう位置合わせする場合、共通カメラのカメラ座標系の座標は隣接クラスタで同一であるから、共通カメラmを共有するクラスタiのクラスタ座標系Piからクラスタjのクラスタ座標系Pjへの変換及び変換行列Tijは、クラスタ座標系Piから共通カメラmのカメラ座標系Qmへの変換を表す同次変換行列Wimとクラスタ座標系Pjからカメラ座標系Qmへの変換を表す同次変換行列Wjmとを用いてそれぞれ式(1)及び式(2)で表される。
Pj=Tij・Pi (1)
Tij=Wjm−1・Wim (2)
【0044】
変換行列341の行列T及びSを用いたもう一つの座標変換について説明する。
【0045】
上述した局所位置合わせを数珠繋ぎに連鎖させることで直接隣り合わないクラスタのクラスタ座標系同士を位置合わせすることができる。このような位置合わせを「連鎖位置合わせ」と称する。ただし、連鎖位置合わせには隣接クラスタでの座標変換に加えて、同一クラスタ内の共通カメラ間での座標変換が必要である。キャリブレーション情報からこれらの共通カメラのカメラ座標系の間の変換は一意に定まる。すなわち共通カメラmのカメラ座標系Qmから共通カメラnのカメラ座標系Qnへの変換は、これらの座標系の間の回転及び平行移動を表す同次変換行列Vmnを用いてQn=Vmn・Qmと定式化される。クラスタjの共通カメラm側にクラスタiが隣接し、クラスタjの共通カメラn側にクラスタkが隣接しているとすれば、クラスタiのクラスタ座標系Piからクラスタkのクラスタ座標系Pkへの変換及び変換行列Sikは、それぞれ式(3)及び式(4)で表される。
Pk=Sik・Pi (3)
Sik=Wkn−1・Vmn・Wim (4)
【0046】
なお、式(3)及び式(4)は2つ隣のクラスタへの変換であるが、3つ以上隣のクラスタへの変換も行列Vと行列Wの積を適宜連結することで算出することができる。
【0047】
ここでキャリブレーション誤差について説明する。各クラスタのキャリブレーション結果にはそれぞれの量子化誤差や実測時の誤差などが含まれる。そのため共通カメラの位置・姿勢を合致させて位置合わせを行うと、位置合わせされたクラスタ座標系の相対関係には誤差が重畳する。図6は、クラスタC1に対してクラスタC2、クラスタC3の順に連鎖位置合わせしたクラスタ座標系の相対関係を模式的に示したものである。クラスタC1のカメラ座標系Q1とクラスタC2のカメラ座標系Q4,Q5の間には実空間の各カメラの関係との誤差が生じ、同様にQ2とQ4,Q5の間にも誤差が生じる。そのためクラスタ間で人物位置の情報を交換すると実空間の位置との乖離が生じる。クラスタ間の誤差は位置合わせにより伝播し、連鎖に沿って離れるほど累積して大きくなり得る。例えば、Q1とQ1’の間にはQ1とQ5よりも大きな誤差が生じ得る。このような誤差の伝播は上記乖離を大きくし、カメラのループの終端において人物位置が整合しないという形で顕在化する。すなわちカメラシステム全体で人物位置の整合性をとることが困難となる。そのため、図6の例ではクラスタC3で検出された人物位置とクラスタC1で検出された人物位置を同定できない、若しくは接近した複数の人物を取り違えて同定してしまう問題が生じる。また、局所位置合わせを繰り返した場合も同じ問題が生じ、この場合はさらに人物の移動経路によって誤差の重畳パターンが変わるためにカメラシステム全体で人物位置の整合性をとることがより一層困難となる。
【0048】
誤差行列342はカメラキャリブレーション誤差へ対処するためのものであり、本発明の特徴的な性質を有する部分である。誤差行列342は、各クラスタ座標系を、当該クラスタ座標系におけるカメラの位置・姿勢の配置関係を維持したまま共通カメラの位置・姿勢にて位置合わせしたときに、各クラスタ座標系の間に生じる誤差を定義する情報である。ここでの位置合わせは前述した局所位置合わせとは異なり、全クラスタの位置合わせであることから「全体位置合わせ」と称する。全体位置合わせされた全クラスタのクラスタ座標系は共通する1つの座標系に座標変換されることになる。この全体位置合わせにより生成される全クラスタに共通の座標系を「統合座標系」と称する。なお本実施形態では、クラスタC1に対してクラスタC2,C3を全体位置合わせすることとし、そのため統合座標系のXYZ軸と原点はクラスタC1のクラスタ座標系のそれらと一致する。記憶部34は、各クラスタ間の誤差行列342と、前述した変換行列341と、統合座標系の基準がクラスタC1のクラスタ座標系であることとを記憶する統合座標系記憶部としての機能を有する。
【0049】
カメラキャリブレーション誤差が生じる問題については図6を用いて既に説明し、そこでは特にループ状のクラスタ配置ではループの端点同士のずれが顕在化する問題があることも説明した。なお、クラスタ間で座標変換を繰り返すほど、変換行列341に含まれる誤差成分が累積してトータルの誤差は増加する。
【0050】
図7はカメラシステムの模式的な平面図であり、誤差行列342を説明するためのものである。同図に示すように、誤差行列342を導入した統合座標系では、各共通カメラはそれを共有する隣接クラスタの一方と他方とで別々の位置・姿勢を与えられる。つまり、図7においてC1におけるe3とC2におけるe3’、C2におけるe5とC3におけるe5’、及びC1におけるe1とC3におけるe1’とはそれぞれ実体としては同一のカメラe3,e5,e1である。
【0051】
誤差行列342は、同一の共通カメラについてクラスタそれぞれにて別々に設定した位置間で定義され、変換行列341と同様、カメラ座標系における回転成分と平行移動成分からなる同次変換行列Eで定義でき、誤差を表すと共に座標変換をも表す。具体的には、カメラe3’からe3への間の変換行列E1と、カメラe5’からe5への変換行列E2が誤差行列342として記憶される。カメラe1とe1’との間の変換行列は、E1,E2が決まると従属的に一意に決まるものであるため特に定義を要しない。
【0052】
誤差行列342を定義するメリットは、クラスタの各連結部分で誤差を持たせるので変換行列341を修正することなく、すなわちクラスタ内のカメラキャリブレーション情報を維持したまま、カメラシステム全体でキャリブレーション誤差の分散・吸収を図れることである。これにより、クラスタ内の物体位置検出精度が劣化せず各クラスタからの物体位置を統合できるので、全体として精度の良いトラッキングが可能となる。
【0053】
ここで、誤差行列342及び変換行列341を使った座標変換の例として、クラスタC3のクラスタ座標系X3Y3Z3から統合座標系X1Y1Z1への変換について説明する。カメラキャリブレーション情報によりクラスタC3のクラスタ座標P3から、カメラe5’のカメラ座標Q5’が求まる。次に、カメラ座標Q5’からクラスタC2のカメラe5のカメラ座標Q5への変換は、
Q5 =E2・Q5’ (5)
となる。またカメラ座標Q5からカメラ座標Q3’への変換は、
Q3’=T53・Q5 (6)
となる。更に、カメラ座標Q3’からカメラ座標Q3への変換は、
Q3 =E1・Q3’ (7)
となる。最後に、カメラ座標Q3から統合座標系P1への変換はカメラキャリブレーション情報により求まる。この例では、クラスタC3のクラスタ座標から統合座標系P1への変換を行ったが、カメラe1’のカメラ座標系Q1’から統合座標系P1への変換も同様である。
【0054】
誤差行列342は後述する最適化処理部32により求められる。
【0055】
座標変換部30は、各クラスタのカメラキャリブレーション情報、変換行列341、誤差行列342を用いて、式(1)による隣接クラスタ間の座標変換、式(3)等による任意のクラスタ間の座標変換、及び式(5)〜(7)等によるクラスタ座標系から統合座標系への変換を行う。
【0056】
変換行列生成部31は、各クラスタのカメラキャリブレーション情報から各クラスタ内の変換行列341を生成する。上述したように変換行列341は各クラスタ座標系における共通カメラの位置・姿勢から、当該クラスタ座標系に対する当該共通カメラのカメラ座標系への回転量及び平行移動量を求めて、行列V及びWを算出し、これらに式(2)及び式(4)を適用することで算出される。
【0057】
最適化処理部32は、各クラスタ間の誤差がカメラシステム全体で最小化するように誤差行列342を定めることにより統合座標系の生成を行う。例えば、図7に示すカメラシステムではクラスタC1とC2との間、クラスタC2とC3との間、及びクラスタC3とC1との間の誤差の合計を最小化する。具体的には、誤差行列E1,E2それぞれの回転成分の回転角をθm1,θm2、誤差行列E1,E2それぞれの平行移動成分の移動量をdm1,dm2、またクラスタC1のカメラe1からクラスタC3のカメラe1’への変換の回転角をθe、移動量をdeと表すと、例えば、次式で定義する積算誤差USUMを最小化する。
USUM=Uθ+α×Ud (8)
【0058】
ここで、Uθ,Udはそれぞれ次式で定義する回転誤差の和、移動誤差の和である。αは重み係数であり、例えば、UθとUdとの単位の相違を調整し、回転角の誤差と移動量の誤差とが均等に評価されるように設定することができる。
Uθ= |θm1|+|θm2|+|θe| (9)
Ud= dm1+dm2+de (10)
【0059】
θe及びdeは次のように求められる。カメラe1’のカメラ座標系の原点と座標軸ベクトルを、座標変換部30により統合座標系に変換する。座標変換部30は、クラスタC1を始端クラスタ、クラスタC3を終端クラスタに設定し、始端クラスタから終端クラスタまでを連鎖位置合わせした変換行列S31を生成して、変換行列S31により統合座標系への変換を行う。一方、カメラe1のカメラ座標系の原点と座標軸ベクトルを基準座標系で表す。これら2つの原点座標のオフセットを移動量deとし、座標軸ベクトルの回転角をθeとする。
【0060】
さて、既に述べたように、カメラe1とe1’との間の変換は、E1,E2が決まると従属的に一意に決まる。つまり、θe及びdeは独立のパラメータではなく、E1,E2から計算されるパラメータである。よって、E1,E2を最適化することによりUSUMの最小化が図られる。最適化処理は一般的に用いられる、例えば、最急降下法、マルコフ連鎖モンテカルロ法(Markov chain Monte Carlo methods:MCMC法)などの手法を用いて行うことができ、当該最適化により誤差行列342が決定される。
【0061】
座標統合処理部33は物体位置統合部としての機能を有し、当該機能は各クラスタ処理部2から入力される人物位置を隣接クラスタ間で照合し同一人物の対応付けを行うクラスタ間追跡継承機能、及びクラスタごとの人物位置を統合座標系に統合して出力する追跡統合機能を含む。
【0062】
まず、クラスタ間追跡継承機能について説明する。当該機能では、隣接クラスタそれぞれから同時刻に検出された人物位置を座標変換部30を用いて局所位置合わせして位置合わせされた人物位置のうち予め設定された同定しきい値よりも近接している人物位置同士を同一人物によるものと判定することで、クラスタ間での同一物体の対応付けを行う。
【0063】
図8は座標統合処理部33の機能を説明する模式図であり、同図を用いて、クラスタ間追跡継承機能及び追跡統合機能について具体的に説明する。クラスタC1とクラスタC2との間での1人の人間の対応付けを考える。図8(a)は、局所位置合わせした場合の2つのクラスタの配置を示す模式的な平面図である。また同図(b)は全体位置合わせした場合の2つのクラスタの配置を模式的に示しており、誤差が含まれるため共通カメラe3の位置がクラスタC1,C2でずれている様子が示されている。
【0064】
また、図8(c)はクラスタC1にて検出された1人の人間の人物位置を三角印(▲)で示し、図8(d)はクラスタC2にて検出された同一人の人物位置を四角印(■)で示している。ここではこれらC1,C2での人物位置は共通カメラe3の視野内で同一時刻に得られたものとする。
【0065】
図8(e)は同図(c),(d)を局所位置合わせした様子を示しており、クラスタの配置は図8(a)の状態に相当する。また、図8(f)は全体位置合わせした様子を示しており、クラスタの配置は図8(b)の状態に相当する。これら2つの図を比較してわかるように、誤差成分を含む場合(図8(f))は、それぞれのクラスタで求まった三角(▲)及び四角(■)の位置が誤差成分の影響で誤差成分を含まない場合(図8(e))よりも離れる。
【0066】
ここで、誤差行列342はカメラシステム全体としての整合性をとるためのものであるため、検出結果をクラスタ間で対応付けるという局所的な処理において誤差行列342の誤差成分は考慮する必要がない。また、人が大勢いる場合にはこのような誤差成分を考慮に入れることにより離れてしまう検出位置を用いると、対応付けを誤る可能性がある。
【0067】
そこで、クラスタ間追跡継承機能においては、図8(e)に示すように、共通カメラを共有する隣接クラスタそれぞれのクラスタ座標系を当該共通カメラの外部パラメータを合致させる局所位置合わせにより人物位置を位置合わせして同定する。すなわち、当該共通カメラの視野にて追跡された各クラスタでの人物位置を局所位置合わせした座標系にて対応付け、クラスタ間での同一人を決定する。
【0068】
一方、共通カメラを合致させる位置合わせにはキャリブレーション誤差の問題がある。そこで、座標統合処理部33は追跡統合機能において、クラスタ間追跡継承機能により同一人とされたクラスタごとの人物位置について、それらの統合座標系における位置に基づいて一つの統合物体位置を算出し、クラスタの接続部分での追跡結果とする。このとき、統合物体位置は全てのクラスタの位置関係をみて整合性のとれた位置とする必要がある。そこで、座標統合処理部33は、最適化処理部32により積算誤差を最小化した配置関係のクラスタでの人物位置に基づいて統合物体位置を算出する。つまり、クラスタ間の誤差成分を考慮した配置関係で、対応付け後の人の新たな座標を計算する。よって、図8の例では同図(f)の状態で人の新たな座標が計算される。例えば、当該座標の計算方法として、対応付けられた2点の平均の位置(図8(f)における“×”印の位置)を、対応付け後の座標とすることができる。
【0069】
なお、既に述べたように、対応付けはクラスタ間でオーバーラップする領域にいる人間についてのみ行う。また、オーバーラップする領域に人間が複数存在する場合に対応するため、組み合わせ最適化処理により対応を求める。この際、座標間の距離が小さい程対応付けされやすくなるようにコストを設定する。
【0070】
次に本実施形態のカメラシステムにおけるカメラキャリブレーション時の動作、及び移動物体の追跡動作について説明する。既に述べたように、画像処理部1はカメラシステムの設置時等に、各クラスタにおけるキャリブレーション、及びクラスタ間でのループキャリブレーションを行い、その結果を利用して複数台のカメラの画像を用いた移動物体追跡を行う。
【0071】
[各クラスタのカメラキャリブレーション]
図9は各クラスタのカメラキャリブレーションの概略のフロー図である。クラスタを構成する各カメラからクラスタ処理部2に基準物体が映った画像を入力する(ステップS50)。入力された画像における特徴点の位置を特定する(ステップS51)。特徴点の位置の特定は、作業者が出力装置5に表示される画像にて特徴点を認識し入力装置4から指定することもできるし、クラスタ処理部2が自動的に抽出する構成とすることもできる。画像上での特徴点の位置に基づいてキャリブレーション実行部20がカメラキャリブレーションを行い、算出された各カメラの外部パラメータ等のキャリブレーション結果は記憶部22に格納される(ステップS52)。
【0072】
[ループキャリブレーション]
図10はループキャリブレーションの概略のフロー図である。統合処理部3は、クラスタ処理部2の記憶部22に保存してある各クラスタのカメラキャリブレーション情報を読み込み(ステップS60)、また統合処理部3の記憶部34に保存してあるクラスタ構成情報340を読み込む(ステップS61)。そして、変換行列生成部31により、読み込んだカメラキャリブレーション情報より変換行列341を求め(ステップS62)、最適化処理部32により最適化処理を行って誤差行列342を求める(ステップS63)。
【0073】
[追跡動作]
図11は追跡動作時に行われる座標統合処理の概略のフロー図である。各クラスタ処理部2は、担当するクラスタの各カメラから画像を入力し(ステップS70)、3次元追跡部21により当該クラスタ内での追跡処理を実行してクラスタ座標系の人物位置を検出し、検出した人物位置を統合処理部3に出力する(ステップS71)。統合処理部3は、入力された各人物位置に対して座標変換部30により全体位置合わせを行って統合座標系の値に変換し、変換後の各人物位置を記憶部34に記憶させる(ステップS72)。ここで算出された統合座標系の人物位置のうち隣接クラスタで別々に検出された同一人物の人物位置は以降の処理により1つにまとめられる。
【0074】
統合処理部3は、人物位置が検出された隣接クラスタ間で同一人物の対応付けを行う(ステップS73〜S82)。具体的には、各隣接クラスタ組を指定する隣接番号Iを1から1ずつインクリメントしながら(ステップS73,S82)、クラスタ校正情報340から該当する隣接クラスタの情報を読み出して隣接クラスタ組Iを構成する2つのクラスタi及びjを特定し(ステップS74)、クラスタiからの人物位置とクラスタjからの人物位置とが入力されていれば(ステップS75にてYES)、これらのクラスタ間にて対応付けを行う。他方、クラスタiからの人物位置が入力されていないか、クラスタjからの人物位置が入力されていなければ(ステップS75にてNO)、隣接クラスタ組Iに対応付け処理の対象はないとして次の隣接クラスタ組の処理に進む。
【0075】
対応付け処理の対象がある場合、統合処理部3は、変換行列341からクラスタi及びクラスタjの組み合わせに対応する行列Tijを読み出して、座標変換部30によりクラスタiにて検出された人物位置をクラスタjのクラスタ座標系に変換することで局所位置合わせを行う(ステップS76)。これは上述したように誤差成分を除いた状態で対応付けを行うためである。なお、ステップS76で処理される値はステップS72で算出された統合座標系の値ではなく、各クラスタ座標系の値である。統合処理部3は座標統合処理部33により、局所位置合わせされたクラスタiの人物位置とクラスタjの人物位置とに対して組み合わせ最適化による対応付けを行う(ステップS77)。すなわち隣接クラスタ間で人物位置の総当たり組み合わせを設定して各組み合わせで人物位置間の距離を算出し、一方のクラスタの各人物位置に対して最も距離の近い組み合わせのみを選定し、選定された組み合わせのうち距離が予め設定された同定しきい値以下の組み合わせを対応付ける。
【0076】
座標統合処理部33は、隣接クラスタ間にて局所位置合わせにより対応付いた人物位置の組み合わせがあれば(ステップS78にてYES)、これと同じ組み合わせを、当該隣接クラスタそれぞれについてステップS72にて記憶部34に書き込んだ統合座標系の人物位置の中から読み出す。そして、隣接クラスタ組を構成するクラスタそれぞれについて読み出した統合座標系の値の平均値を統合物体位置として算出し(ステップS79)、読み出した各隣接クラスタの人物位置を当該統合物体位置に置き換える(ステップS80)。なお、対応付いた人物位置がない場合(ステップS78にてNO)、ステップS79,S80の処理はスキップされる。
【0077】
全ての隣接クラスタ組について対応付けが終了するまで(ステップS81)、統合処理部3は隣接番号IをインクリメントしてステップS74〜S80の対応付け処理を繰り返す。
【0078】
上述の座標統合処理により、クラスタごとの人の追跡結果がカメラシステム全体で整合性を有するように統合される。画像処理部1は人の複数のクラスタに亘る行動についての判定を、統合された追跡結果に基づいて行う。また、出力装置5への追跡結果の画像表示には統合された追跡結果を用いる。クラスタ間の座標系の誤差が最小化された統合座標系での追跡結果は移動軌跡がクラスタ間にて滑らかになるので、統合された追跡結果を用いた人の移動速度や動きのパターンの精度が向上し、それらに基づいた人の行動認識の精度が向上する。また、軌跡が滑らかになることにより、画像表示での移動軌跡の表示が見やすくなる効果も得られる。
【0079】
以上説明したように本発明に係るカメラシステムでは、カメラシステムを構成する全カメラで共通視野が確保できない場合に、共通視野を有するクラスタごとに物体位置を求め、それを全クラスタに亘る統合座標系にまとめることで、広範囲での物体位置を求め、移動物体の行動分析等を可能としている。統合座標系は、クラスタ内のカメラの位置関係は保持し、カメラキャリブレーシの誤差をクラスタ間の複数の接続部分にて、最適化しつつ分散するように設定され、これにより、クラスタ内のトラッキング処理での移動物体の座標について高い検知精度が実現される。また、移動物体がクラスタをまたぐときは共通カメラで位置合わせして同一物体を同定するので追跡結果を高精度のまま引き継ぐことができる。
【0080】
隣接クラスタ間での同一人物の対応付け処理では、座標間の距離に基づく対応付けという非常に簡単な処理により人物位置のクラスタ間での統合を行っているが、上述のようにクラスタ内での人物位置の検出精度が高いため、このような簡単な処理であっても対応付けを誤る可能性が低く抑えられる。すなわち、クラスタ内での人物位置の高い検知精度が、座標の対応付け精度を担保している。さらに言えば、クラスタ内での人の検知座標の精度は、上述したようにカメラキャリブレーション精度に依存することから、最終的に、クラスタ内のカメラキャリブレーションの精度が、対応付け精度を担保している。
【0081】
なお、上述の実施形態ではクラスタがループ状に接続される例を説明した。ループ状のクラスタ接続では、ループを一周したときのずれによりカメラキャリブレーション全体の誤差を評価することができ、本発明では当該誤差を各クラスタ間に分散する。ここで、カメラキャリブレーション全体の誤差を各クラスタ間にて最適化しつつ分散するという本発明の構成は、全体の誤差を何らかの形で検知できれば、クラスタがループ状に閉合した形状に接続される場合に限らず、例えば、直鎖状やツリー状の開放した端部を有する形状に接続される場合にも適用することができる。例えば、部屋や廊下など形状が把握できる監視空間においては、監視空間の形状とクラスタの配置とを対比し、監視空間の壁からの距離などに基づいてクラスタのキャリブレーション誤差を検知して、本発明を適用することが可能である。
【0082】
また、上記実施形態では、座標統合処理部33による隣接クラスタ間の対応付け後の新たな座標(統合物体位置)は、対応付けられた2点の中点に設定している。しかし、統合物体位置は中点以外とすることもできる。例えば、対応付けられた2点を結ぶ線分を内分する点に設定することができる。また、2つのクラスタ間の共通カメラの視野内にて対応付けられた2点又はその中点がどちらのクラスタに近いかを評価し、近い方のクラスタにて得られた物体位置の重みを他方のクラスタにて得られた物体位置より大きくする重み付け平均とすることもできる。
【0083】
上述の実施形態では、簡単な例としてクラスタが3台のカメラからなる場合を示したが、クラスタを構成する複数のカメラの台数はこれに限定されない。
【0084】
また、クラスタ間での物体位置の対応付けは、当該クラスタの視野のオーバーラップ部分での各クラスタの物体位置の間で行うのが好適であるが、オーバーラップ部分を有さないクラスタ間であっても、互いの視野が或る程度近接していれば、例えば、移動元のクラスタでの追跡結果から移動先での或る時刻tの物体位置を推定し、これと当該時刻tにて移動先で実際に検知される物体位置とを対応付けたり、近接した視野のクラスタの一方にて時刻tに検知された物体位置と他方にて時刻tに近い時刻t’に検知された物体位置とを対応付けたりする近似的な対応付けを行うことも可能である。
【符号の説明】
【0085】
1 画像処理部、2 クラスタ処理部、3 統合処理部、4 入力装置、5 出力装置、20 キャリブレーション実行部、21 3次元追跡部、22,34 記憶部、30 座標変換部、31 変換行列生成部、32 最適化処理部、33 座標統合処理部、340 クラスタ構成情報、341 変換行列、342 誤差行列、C1〜C3 クラスタ、e1〜e6 カメラ。
【特許請求の範囲】
【請求項1】
視野内に共通視野を有した一群のカメラであるクラスタを複数含み、当該複数のクラスタが隣り合うクラスタにて共通カメラを共有して互いに連鎖したカメラシステムであって、
前記クラスタごとに設定したクラスタ座標系、並びに当該クラスタ座標系における前記各カメラの位置及び姿勢を記憶するクラスタ校正情報記憶部と、
前記隣り合うクラスタにて共有している前記共通カメラの前記クラスタ座標系それぞれの位置及び姿勢の間に所定範囲の誤差を許容することにより当該クラスタ座標系の相互の配置関係を調整した、全クラスタに亘る統合座標系を記憶する統合座標系記憶部と、
前記クラスタごとに、前記カメラが撮像した物体の画像を解析して当該クラスタの前記クラスタ座標系における当該物体の物体位置を検出する物体位置検出部と、
前記物体位置検出部により検出された前記クラスタ座標系での前記物体位置を前記統合座標系に変換して出力する物体位置統合部と、
を備えたことを特徴とするカメラシステム。
【請求項2】
請求項1に記載のカメラシステムにおいて、
前記複数のクラスタはループ状に連鎖し、
前記統合座標系は、ループ上の全ての前記共通カメラについて積算した前記誤差を最小化するように定められていること、
を特徴とするカメラシステム。
【請求項3】
請求項1又は請求項2に記載のカメラシステムにおいて、
前記物体位置統合部は、前記クラスタ座標系における前記共通カメラの前記位置及び姿勢を前記隣り合うクラスタにて合致させて、当該隣り合うクラスタのそれぞれから検出された前記物体位置を照合し同一物体の対応付けを行うこと、を特徴とするカメラシステム。
【請求項4】
請求項3に記載のカメラシステムにおいて、
前記物体位置統合部は、前記同一物体として対応付けされた前記物体位置のうち、前記隣り合うクラスタそれぞれから同一時刻に検出された複数の物体位置を前記統合座標系における当該物体位置の内分点に置き換えて出力すること、を特徴とするカメラシステム。
【請求項1】
視野内に共通視野を有した一群のカメラであるクラスタを複数含み、当該複数のクラスタが隣り合うクラスタにて共通カメラを共有して互いに連鎖したカメラシステムであって、
前記クラスタごとに設定したクラスタ座標系、並びに当該クラスタ座標系における前記各カメラの位置及び姿勢を記憶するクラスタ校正情報記憶部と、
前記隣り合うクラスタにて共有している前記共通カメラの前記クラスタ座標系それぞれの位置及び姿勢の間に所定範囲の誤差を許容することにより当該クラスタ座標系の相互の配置関係を調整した、全クラスタに亘る統合座標系を記憶する統合座標系記憶部と、
前記クラスタごとに、前記カメラが撮像した物体の画像を解析して当該クラスタの前記クラスタ座標系における当該物体の物体位置を検出する物体位置検出部と、
前記物体位置検出部により検出された前記クラスタ座標系での前記物体位置を前記統合座標系に変換して出力する物体位置統合部と、
を備えたことを特徴とするカメラシステム。
【請求項2】
請求項1に記載のカメラシステムにおいて、
前記複数のクラスタはループ状に連鎖し、
前記統合座標系は、ループ上の全ての前記共通カメラについて積算した前記誤差を最小化するように定められていること、
を特徴とするカメラシステム。
【請求項3】
請求項1又は請求項2に記載のカメラシステムにおいて、
前記物体位置統合部は、前記クラスタ座標系における前記共通カメラの前記位置及び姿勢を前記隣り合うクラスタにて合致させて、当該隣り合うクラスタのそれぞれから検出された前記物体位置を照合し同一物体の対応付けを行うこと、を特徴とするカメラシステム。
【請求項4】
請求項3に記載のカメラシステムにおいて、
前記物体位置統合部は、前記同一物体として対応付けされた前記物体位置のうち、前記隣り合うクラスタそれぞれから同一時刻に検出された複数の物体位置を前記統合座標系における当該物体位置の内分点に置き換えて出力すること、を特徴とするカメラシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−93787(P2013−93787A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2011−235737(P2011−235737)
【出願日】平成23年10月27日(2011.10.27)
【出願人】(000108085)セコム株式会社 (596)
【Fターム(参考)】
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願日】平成23年10月27日(2011.10.27)
【出願人】(000108085)セコム株式会社 (596)
【Fターム(参考)】
[ Back to top ]