(57)【特許請求の範囲】
【請求項１】
視野内に共通視野を有した一群のカメラであるクラスタを複数含み、当該複数のクラスタが隣り合うクラスタにて共通カメラを共有して互いに連鎖し、かつ少なくとも１つの前記クラスタには前記共通カメラ以外のカメラが存在するカメラシステムであって、
前記クラスタごとに設定したクラスタ座標系、並びに当該クラスタ座標系における前記各カメラの位置及び姿勢を記憶するクラスタ校正情報記憶部と、
前記各クラスタ座標系における前記カメラの位置及び姿勢の配置関係を維持したまま、前記共通カメラを共有する複数の前記クラスタそれぞれの前記クラスタ座標系における当該共通カメラの位置及び姿勢の間に所定範囲の誤差を許容することにより当該クラスタ座標系の相互の配置関係を調整した、全クラスタに亘る統合座標系を記憶する統合座標系記憶部と、
前記クラスタごとに、前記カメラが撮像した物体の画像を解析して当該クラスタの前記クラスタ座標系における当該物体の物体位置を検出する物体位置検出部と、
前記物体位置検出部により検出された前記クラスタ座標系での前記物体位置を前記統合座標系に変換して出力する物体位置統合部と、
を備えたことを特徴とするカメラシステム。
【請求項２】
請求項１に記載のカメラシステムにおいて、
前記複数のクラスタはループ状に連鎖し、
前記統合座標系は、ループ上の全ての前記共通カメラについて積算した前記誤差を最小化するように定められていること、
を特徴とするカメラシステム。
【請求項３】
請求項１又は請求項２に記載のカメラシステムにおいて、
前記物体位置統合部は、前記クラスタ座標系における前記共通カメラの前記位置及び姿勢を前記隣り合うクラスタにて合致させて、当該隣り合うクラスタのそれぞれから検出された前記物体位置を照合し同一物体の対応付けを行うこと、を特徴とするカメラシステム。
【請求項４】
請求項３に記載のカメラシステムにおいて、
前記物体位置統合部は、前記同一物体として対応付けされた前記物体位置のうち、前記隣り合うクラスタそれぞれから同一時刻に検出された複数の物体位置を前記統合座標系における当該物体位置の内分点に置き換えて出力すること、を特徴とするカメラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のカメラが配列されたカメラシステムを用いて、人物等の移動物体の位置を検出するカメラシステムに関し、特に、カメラの外部パラメータの校正が一部のカメラごとに行われるカメラシステムに関する。
【背景技術】
【０００２】
対象空間を撮影した画像に基づいて移動物体の行動分析等を行う場合、隣り合うカメラが共通視野を持つように複数のカメラを配列して移動物体を追跡すれば、共通視野にて移動物体を３次元的に解析することでオクルージョンが生じても物体位置を精度良く検出でき、また複数の視野を連結することで物体位置を広範囲に追跡できるというメリットがある。
【０００３】
複数のカメラで物体位置の情報を交換するには、共通視野を利用して各カメラの外部パラメーター（カメラの位置・姿勢）を計測する校正（キャリブレーション）を正確に行っておく必要があるが、カメラが多数になると全カメラに共通する視野を設定するのは困難がある。そのため、特許文献１に記載の撮像装置較正方法ではまず視野を共有するカメラごとにキャリブレーションを行ない、その後、これらの部分ごとのキャリブレーション結果を１つの座標系に変換する。
【０００４】
このとき特許文献１の方法では、部分ごとのキャリブレーション結果の間に生じる誤差を均一化するために各カメラの外部パラメータを少しずつ補正して、誤差を全カメラに分散させる構成を示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−８６１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のカメラを用いた追跡処理を好適に行うには、複数カメラの画像から物体の３次元位置を精度良く求める必要があり、そのために、共通視野を有するカメラ群（クラスタ）内におけるカメラキャリブレーションを高精度に行うことが求められる。この点、カメラシステム全体としての整合性を確保するために上述のように誤差を全カメラに分散させると、クラスタ内でのカメラの位置等、外部パラメータも修正される。その結果、クラスタ内の追跡精度が落ちるという問題があった。また、各クラスタでの追跡結果をクラスタ間にて対応付けて統合する処理はクラスタ内の追跡精度が高いことを前提としている。そのため、クラスタ内の追跡精度の低下はクラスタ間統合処理の精度も低下させ、全体としての追跡精度が低下するという問題があった。
【０００７】
また、各クラスタにおけるキャリブレーション結果はそれぞれに量子化誤差などを含んでおり、クラスタ間で物体位置の情報を交換するとこの誤差が重畳する。そのため、クラスタがループ状に接続された場合などにシステム全体として物体位置の整合性を保てなくなる問題があった。
【０００８】
このように多数のカメラを用いた追跡では、局所における物体位置の検出精度と全体での物体位置の整合性とのトレードオフが問題となる。
【０００９】
本発明は上記問題を鑑みてなされたものであり、多数のカメラを用いた広い空間での物体位置の検出を高精度で行うことのできるカメラシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るカメラシステムは、視野内に共通視野を有した一群のカメラであるクラスタを複数含み、当該複数のクラスタが隣り合うクラスタにて共通カメラを共有して互いに連鎖したものであって、前記クラスタごとに設定したクラスタ座標系、並びに当該クラスタ座標系における前記各カメラの位置及び姿勢を記憶するクラスタ校正情報記憶部と、前記隣り合うクラスタにて共有している前記共通カメラの前記クラスタ座標系それぞれの位置及び姿勢の間に所定範囲の誤差を許容することにより当該クラスタ座標系の相互の配置関係を調整した、全クラスタに亘る統合座標系を記憶する統合座標系記憶部と、前記クラスタごとに、前記カメラが撮像した物体の画像を解析して当該クラスタの前記クラスタ座標系における当該物体の物体位置を検出する物体位置検出部と、前記物体位置検出部により検出された前記クラスタ座標系での前記物体位置を前記統合座標系に変換して出力する物体位置統合部と、を備える。
【００１１】
他の本発明に係るカメラシステムにおいては、前記複数のクラスタはループ状に連鎖し、前記統合座標系は、ループ上の全ての前記共通カメラについて積算した前記誤差を最小化するように定められている。
【００１２】
本発明に係るカメラシステムにおいては、前記物体位置統合部は、前記クラスタ座標系における前記共通カメラの前記位置及び姿勢を前記隣り合うクラスタにて合致させて、当該隣り合うクラスタのそれぞれから検出された前記物体位置を照合し同一物体の対応付けを行う。
【００１３】
別の本発明に係るカメラシステムにおいては、前記物体位置統合部は、前記同一物体として対応付けされた前記物体位置のうち、前記隣り合うクラスタそれぞれから同一時刻に検出された複数の物体位置を前記統合座標系における当該物体位置の内分点に置き換えて出力する。
【発明の効果】
【００１４】
本発明によれば、多数のカメラを用いて広い空間で高精度に物体位置を検出することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係るカメラシステムにおけるカメラの配置の一例を示す模式的な平面図である。
【図２】本発明の実施形態に係るカメラシステムの概略構成を示すブロック図である。
【図３】クラスタ処理部の概略の構成を示すブロック図である。
【図４】統合処理部の概略の構成を示すブロック図である。
【図５】図１に示したカメラシステムに関するクラスタ構成情報を表形式で表した模式図である。
【図６】図１に示すカメラ構成における誤差の累積を説明する模式的な平面図である。
【図７】誤差行列を説明するためのカメラシステムの模式的な平面図である。
【図８】座標統合処理部の機能を説明する模式図である。
【図９】各クラスタのカメラキャリブレーションの概略のフロー図である。
【図１０】ループキャリブレーションの概略のフロー図である。
【図１１】追跡動作時に行われる座標統合処理の概略のフロー図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態（以下実施形態という）について、図面に基づいて説明する。本実施形態は、監視対象空間に多数のカメラを配置して広範囲に人物等の移動物体を３次元追跡するカメラシステムである。
【００１７】
最初に本システムで用いるマルチカメラトラッキングについて説明する。マルチカメラトラッキングは複数台のカメラで異なる視点から撮影した画像に基づいて３次元位置を求める手法である。この手法は、異なったアングルの複数の画像を用いて同一物体を観察するため、１台のカメラだけで撮影する場合に比べ位置の検出精度が高いという特徴を有する。例えば、カメラ１台で物体位置を検出する場合、一般に、カメラから見た奥行き方向に対する検出精度が悪いのに対し、別のカメラも用いれば同一物体を別の角度から見ることができるため奥行き方向の拘束を与えることができる。この拘束はカメラ台数が多い程強くなり、それに応じて物体位置の検出精度が高くなる。
【００１８】
ただし、その検出精度はカメラの位置・姿勢といった外部パラメータの精度に左右される。そのために、共通視野を持つ複数のカメラに対して予めカメラキャリブレーションを行い、各カメラの外部パラメータを高精度に求める必要がある。
【００１９】
ここで、カメラシステムを構成する全てのカメラに対してマルチカメラトラッキングを適用して監視対象空間全体にて物体を一元的に追跡できることが望ましい。しかし、建物などの広い空間では例えば、廊下等の遮蔽物により、カメラシステム全体で共通視野を確保できない状況が存在し得る。つまり、この場合、共通視野を前提とするマルチカメラトラッキングを監視対象空間に一元的には適用することができない。
【００２０】
この場合には、共通視野を持つカメラの集合であるクラスタという概念を導入し、監視対象空間全体を複数のカメラクラスタで分担する。好適には３以上のクラスタを用いて広い空間を監視する。つまり、カメラクラスタ単位で独立にマルチカメラトラッキングを行う。そして、クラスタごとの追跡結果をクラスタ間にて統合して監視対象空間全体での追跡結果を得る。隣り合うクラスタには互いに共通するカメラを設け、統合処理はこのカメラを利用して行う。
【００２１】
図１はカメラの配置の一例を示す模式的な平面図であり、本実施形態では当該配置を用いてカメラシステムを説明する。図１に示す配置では、監視対象空間には６台のカメラｅ１〜ｅ６が配置される。例えば、これらカメラが取り囲む領域に障害物（図示せず）が存在し、任意のカメラには当該障害物の陰に隠れてその視野を撮影できないカメラが存在する。例えば、カメラｅ２からはカメラｅ５の視野内の空間を撮影できない。
【００２２】
図１のカメラシステムでは３つのクラスタＣ１〜Ｃ３を設定し、当該クラスタごとにカメラキャリブレーションを行う。キャリブレーションとマルチカメラトラッキングとを共にクラスタ単位で行うことでマルチカメラトラッキングを高精度に行うことができる。Ｃ１はカメラｅ１〜ｅ３からなり、Ｃ２はカメラｅ３〜ｅ５、Ｃ３はカメラｅ５，ｅ６及びｅ１からなる。各クラスタの３台のカメラは互いに共通視野を有する。例えば、Ｃ１においてｅ１とｅ２、ｅ２とｅ３、及びｅ３とｅ１とはそれぞれ共通視野を有し、それら共通視野は連続した共通視野（クラスタ内共通視野）を形成する。図１ではクラスタを表す符号Ｃ１〜Ｃ３で指し示す矩形により、各クラスタのクラスタ内共通視野を模式的に表現している。
【００２３】
また、図１のカメラシステムでは互いに隣り合うクラスタ（隣接クラスタ）にはそれらに共通するカメラ（共通カメラ）を１台設け、隣接クラスタ同士には互いのクラスタ内共通視野がオーバーラップする領域を設けている。具体的には、カメラｅ１，ｅ３，ｅ５が共通カメラである。すなわち、図１のカメラシステムは３つのクラスタがループ状に接続される例となっている。
【００２４】
上述したようにカメラキャリブレーションはクラスタごとに独立に行う。よって、クラスタごとに３次元世界を記述するローカルな座標系（クラスタ座標系）を持つことになる。複数のクラスタ座標系間の座標変換は当該複数のクラスタに共通する共通カメラのカメラ座標系を介して行う。
【００２５】
以上、マルチトラッキングロジックを用いた本システムにおける追跡処理の概要について説明した。以降、さらにその詳細について説明する。
【００２６】
図２は本実施形態に係るカメラシステムの概略構成を示すブロック図であり、カメラシステム及び画像処理部１を備える。画像処理部１はクラスタ処理部２及び統合処理部３を含んで構成され、入力装置４及び出力装置５が画像処理部１に接続される。
【００２７】
図２に示すカメラ構成は図１に示したものと同じ構成であり、６台のカメラｅ１〜ｅ６からなり、３つのクラスタＣ１〜Ｃ３を設定される。既に述べたように、個々のカメラは監視対象空間の全体を撮影できないが、それぞれの視野を合わせて監視対象空間全体を撮影し、またマルチトラッキングを可能とするように設置される。移動物体の追跡を行う監視動作時には、各カメラはそれぞれの視野内を所定の時間間隔で撮影する。また、カメラは監視動作時だけでなく、その事前処理として行われるカメラキャリブレーションにも用いられる。カメラにより撮影された監視画像は順次、各カメラが属するクラスタに対応するクラスタ処理部２へ出力される。なお、専ら床面又は地表面等の基準面に沿って移動する人の位置、移動を把握するため、カメラは基本的に人を俯瞰撮影可能な高さに設置される。
【００２８】
クラスタ処理部２及び統合処理部３は、ＣＰＵ(Central Processing Unit)、ＤＳＰ（Digital Signal Processor）、ＭＣＵ（Micro Control Unit）等の演算装置、及びＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ハードディスク等の記憶装置を用いて構成される。記憶装置は演算装置で使用されるプログラムやデータを記憶し、演算装置は記憶装置からプログラムを読み出して実行し、監視動作時には移動物体追跡処理を行い、カメラシステムの設置時等にはキャリブレーションに伴う処理を行う。
【００２９】
入力装置４はキーボード、マウス、タッチパネルディスプレイ等のユーザーインターフェース装置であり、ユーザーにより操作され画像処理部１に対する各種設定を入力するために用いられる。また、入力装置４はカメラシステムの設置時やメンテナンス時における管理者等の画像処理部１に対する設定入力にも用いられる。特に、入力装置４はカメラ外部パラメータの校正作業において、設置した各カメラの画像上での特徴点を指定する手段として用いることができる。
【００３０】
出力装置５はカメラが撮影した画像を表示する表示手段や、異常発生をユーザに知らせる音声・警告音等を出力する音響出力手段を含む。
【００３１】
図３はクラスタ処理部２の概略の構成を示すブロック図である。同図を用いて、クラスタ処理部２についてさらに説明する。クラスタ処理部２はクラスタＣ１〜Ｃ３それぞれに対応して設けられ、カメラクラスタごとの処理を行う。クラスタ処理部２はキャリブレーション実行部２０、３次元追跡部２１及び記憶部２２を含んでいる。
【００３２】
キャリブレーション実行部２０は、クラスタを構成する各カメラで撮影された画像から得られる情報などを用いてカメラキャリブレーションを行う。例えば、共通視野内に設置した基準物体を各カメラで撮影し、それぞれの画像に映る基準物体上の特徴点の座標からクラスタ座標系における各カメラの位置・姿勢が算出される。画像における特徴点は、キャリブレーションを行う作業者が出力装置５に表示される画像にて特徴点を認識し入力装置４からその座標を入力する。また、画像処理部１が画像認識により自動的に特徴点を抽出する構成とすることもできる。キャリブレーション実行部２０により算出された各カメラの外部パラメータ等のキャリブレーション結果は記憶部２２に格納される。
【００３３】
３次元追跡部２１（物体位置検出部）は、クラスタごとに当該クラスタに属する各カメラから入力された画像を用いてマルチカメラトラッキングを行って各時刻における人物位置（物体位置）を検出する。この時、記憶部２２に記憶されているカメラキャリブレーション情報を用いる。例えば、３次元追跡部２１は予め記憶されている背景画像を用い、各カメラの入力画像から背景差分により、追跡対象とする移動物体である人物が映る画像領域を抽出する。一方、仮想３次元空間に３次元的な人モデルを配置し、このモデルをカメラキャリブレーション情報に基づき各カメラの画像上に投影し投影領域を求める。そして、人モデルの投影領域と人物の像の抽出領域との一致度を計算し、各カメラについての一致度の合計が最も大きくなる人モデルの床面上の位置を探索して人物位置とする。なお、３次元追跡部２１にて検出される人物位置は各クラスタ座標系での座標値である。人物位置には人物の識別番号及びクラスタ処理部２のクラスタ番号を含めて統合処理部３へ出力される。
【００３４】
記憶部２２には、クラスタ番号、３次元追跡部２１により算出された人物位置が保存される。また記憶部２２はクラスタ校正情報記憶部であり、キャリブレーション実行部２０により算出された外部パラメータ等のカメラキャリブレーション情報を記憶する。
【００３５】
次に統合処理部３について説明する。図４は統合処理部３の概略の構成を示すブロック図である。統合処理部３は座標変換部３０、変換行列生成部３１、最適化処理部３２、座標統合処理部３３及び記憶部３４を含んでいる。
【００３６】
クラスタ処理部２がクラスタごとの処理を行うのに対し、統合処理部３はそれらクラスタを統合して扱う処理を行う。具体的には統合処理部３は、カメラシステムの設置時等に、クラスタ処理部２の記憶部２２に保存した各クラスタのカメラキャリブレーション情報を基に、全てのクラスタに対するループキャリブレーションを行う。また、監視動作時には各クラスタ処理部２から入力される人物位置を統合する物体位置統合処理を行う。この物体位置統合処理は、クラスタ間での同一人物の対応付けを行う処理と、各クラスタのクラスタ座標系で求められる人物位置を共通の座標系（統合座標系）に変換することによりこれらを統合する処理とを含んでいる。統合された人物位置を含む追跡結果は出力装置５へ出力することができる。
【００３７】
記憶部３４はクラスタ構成情報３４０、変換行列３４１及び誤差行列３４２などを保存する。
【００３８】
クラスタ構成情報３４０は、カメラとクラスタの関係及びクラスタ間の関係を記述したものである。図５は図１に示したカメラシステムに関するクラスタ構成情報３４０を表形式で表した模式図である。カメラ及びクラスタはそれぞれカメラ番号及びクラスタ番号で識別される。また、互いに隣接するクラスタの組（隣接クラスタ組）は隣接番号で識別される。クラスタ構成情報３４０には、各クラスタとカメラとの対応関係及び当該クラスタを構成するカメラ台数（図５（ａ））、並びに、各隣接クラスタ組を構成するクラスタと共通カメラとの対応関係（図５（ｂ））が格納される。クラスタ構成情報３４０は予め記憶部３４に格納される。
【００３９】
変換行列３４１はクラスタ間の座標変換を実現するための行列Ｔ、及び同一クラスタ内の共通カメラ間の座標変換を実現するための行列Ｓである。すなわち、各隣接クラスタ組の一方のクラスタのクラスタ座標系から当該隣接クラスタ組の他方のクラスタのクラスタ座標系への回転及び平行移動を表す行列Ｔが隣接クラスタ組ごとに記憶され、各クラスタ内の任意の共通カメラのカメラ座標系から当該クラスタ内の別の共通カメラのカメラ座標系への回転及び平行移動を表す行列Ｓがクラスタごとに記憶される。これら変換行列３４１は変換行列生成部３１により各クラスタ処理部２のカメラキャリブレーション情報から生成される。
【００４０】
さらに変換行列３４１の行列Ｔとそれを用いた座標変換について説明する。
【００４１】
行列Ｔにより実現される座標変換は、各隣接クラスタ組の一方のクラスタのクラスタ座標系を当該隣接クラスタ組の他方のクラスタのクラスタ座標系に、当該隣接クラスタ組が共有する共通カメラの位置・姿勢を合致させるよう位置合わせして座標系を共通化することに相当する。以降、隣接クラスタにて共通カメラの位置・姿勢を合致させる位置合わせを「局所位置合わせ」と称する。
【００４２】
各クラスタのクラスタ座標系と共通カメラのカメラ座標系との関係は当該クラスタのキャリブレーション情報により与えられる。すなわち、クラスタ座標系における共通カメラの位置・姿勢が定まれば、当該クラスタ座標系から当該共通カメラのカメラ座標系への変換が一意に定まる。クラスタ座標系での座標（Ｘ，Ｙ，Ｚ）からカメラ座標系での座標（ｘ，ｙ，ｚ）への変換は、当該座標間の回転及び平行移動を表す同次変換行列Ｗを用いてＱ＝Ｗ・Ｐと定式化できる。ここで、Ｑ＝（ｘ，ｙ，ｚ，１）ｔ、Ｐ＝（Ｘ，Ｙ，Ｚ，１）ｔであり、Ｗは４×４行列である。
【００４３】
そして、共通カメラの位置・姿勢を合致させるよう位置合わせする場合、共通カメラのカメラ座標系の座標は隣接クラスタで同一であるから、共通カメラｍを共有するクラスタｉのクラスタ座標系Ｐｉからクラスタｊのクラスタ座標系Ｐｊへの変換及び変換行列Ｔｉｊは、クラスタ座標系Ｐｉから共通カメラｍのカメラ座標系Ｑｍへの変換を表す同次変換行列Ｗｉｍとクラスタ座標系Ｐｊからカメラ座標系Ｑｍへの変換を表す同次変換行列Ｗｊｍとを用いてそれぞれ式（１）及び式（２）で表される。
Ｐｊ＝Ｔｉｊ・Ｐｉ            （１）
Ｔｉｊ＝Ｗｊｍ−１・Ｗｉｍ        （２）
【００４４】
変換行列３４１の行列Ｔ及びＳを用いたもう一つの座標変換について説明する。
【００４５】
上述した局所位置合わせを数珠繋ぎに連鎖させることで直接隣り合わないクラスタのクラスタ座標系同士を位置合わせすることができる。このような位置合わせを「連鎖位置合わせ」と称する。ただし、連鎖位置合わせには隣接クラスタでの座標変換に加えて、同一クラスタ内の共通カメラ間での座標変換が必要である。キャリブレーション情報からこれらの共通カメラのカメラ座標系の間の変換は一意に定まる。すなわち共通カメラｍのカメラ座標系Ｑｍから共通カメラｎのカメラ座標系Ｑｎへの変換は、これらの座標系の間の回転及び平行移動を表す同次変換行列Ｖｍｎを用いてＱｎ＝Ｖｍｎ・Ｑｍと定式化される。クラスタｊの共通カメラｍ側にクラスタｉが隣接し、クラスタｊの共通カメラｎ側にクラスタｋが隣接しているとすれば、クラスタｉのクラスタ座標系Ｐｉからクラスタｋのクラスタ座標系Ｐｋへの変換及び変換行列Ｓｉｋは、それぞれ式（３）及び式（４）で表される。
Ｐｋ＝Ｓｉｋ・Ｐｉ              （３）
Ｓｉｋ＝Ｗｋｎ−１・Ｖｍｎ・Ｗｉｍ    （４）
【００４６】
なお、式（３）及び式（４）は２つ隣のクラスタへの変換であるが、３つ以上隣のクラスタへの変換も行列Ｖと行列Ｗの積を適宜連結することで算出することができる。
【００４７】
ここでキャリブレーション誤差について説明する。各クラスタのキャリブレーション結果にはそれぞれの量子化誤差や実測時の誤差などが含まれる。そのため共通カメラの位置・姿勢を合致させて位置合わせを行うと、位置合わせされたクラスタ座標系の相対関係には誤差が重畳する。図６は、クラスタＣ１に対してクラスタＣ２、クラスタＣ３の順に連鎖位置合わせしたクラスタ座標系の相対関係を模式的に示したものである。クラスタＣ１のカメラ座標系Ｑ１とクラスタＣ２のカメラ座標系Ｑ４，Ｑ５の間には実空間の各カメラの関係との誤差が生じ、同様にＱ２とＱ４，Ｑ５の間にも誤差が生じる。そのためクラスタ間で人物位置の情報を交換すると実空間の位置との乖離が生じる。クラスタ間の誤差は位置合わせにより伝播し、連鎖に沿って離れるほど累積して大きくなり得る。例えば、Ｑ１とＱ１’の間にはＱ１とＱ５よりも大きな誤差が生じ得る。このような誤差の伝播は上記乖離を大きくし、カメラのループの終端において人物位置が整合しないという形で顕在化する。すなわちカメラシステム全体で人物位置の整合性をとることが困難となる。そのため、図６の例ではクラスタＣ３で検出された人物位置とクラスタＣ１で検出された人物位置を同定できない、若しくは接近した複数の人物を取り違えて同定してしまう問題が生じる。また、局所位置合わせを繰り返した場合も同じ問題が生じ、この場合はさらに人物の移動経路によって誤差の重畳パターンが変わるためにカメラシステム全体で人物位置の整合性をとることがより一層困難となる。
【００４８】
誤差行列３４２はカメラキャリブレーション誤差へ対処するためのものであり、本発明の特徴的な性質を有する部分である。誤差行列３４２は、各クラスタ座標系を、当該クラスタ座標系におけるカメラの位置・姿勢の配置関係を維持したまま共通カメラの位置・姿勢にて位置合わせしたときに、各クラスタ座標系の間に生じる誤差を定義する情報である。ここでの位置合わせは前述した局所位置合わせとは異なり、全クラスタの位置合わせであることから「全体位置合わせ」と称する。全体位置合わせされた全クラスタのクラスタ座標系は共通する１つの座標系に座標変換されることになる。この全体位置合わせにより生成される全クラスタに共通の座標系を「統合座標系」と称する。なお本実施形態では、クラスタＣ１に対してクラスタＣ２，Ｃ３を全体位置合わせすることとし、そのため統合座標系のＸＹＺ軸と原点はクラスタＣ１のクラスタ座標系のそれらと一致する。記憶部３４は、各クラスタ間の誤差行列３４２と、前述した変換行列３４１と、統合座標系の基準がクラスタＣ１のクラスタ座標系であることとを記憶する統合座標系記憶部としての機能を有する。
【００４９】
カメラキャリブレーション誤差が生じる問題については図６を用いて既に説明し、そこでは特にループ状のクラスタ配置ではループの端点同士のずれが顕在化する問題があることも説明した。なお、クラスタ間で座標変換を繰り返すほど、変換行列３４１に含まれる誤差成分が累積してトータルの誤差は増加する。
【００５０】
図７はカメラシステムの模式的な平面図であり、誤差行列３４２を説明するためのものである。同図に示すように、誤差行列３４２を導入した統合座標系では、各共通カメラはそれを共有する隣接クラスタの一方と他方とで別々の位置・姿勢を与えられる。つまり、図７においてＣ１におけるｅ３とＣ２におけるｅ３’、Ｃ２におけるｅ５とＣ３におけるｅ５’、及びＣ１におけるｅ１とＣ３におけるｅ１’とはそれぞれ実体としては同一のカメラｅ３，ｅ５，ｅ１である。
【００５１】
誤差行列３４２は、同一の共通カメラについてクラスタそれぞれにて別々に設定した位置間で定義され、変換行列３４１と同様、カメラ座標系における回転成分と平行移動成分からなる同次変換行列Ｅで定義でき、誤差を表すと共に座標変換をも表す。具体的には、カメラｅ３’からｅ３への間の変換行列Ｅ１と、カメラｅ５’からｅ５への変換行列Ｅ２が誤差行列３４２として記憶される。カメラｅ１とｅ１’との間の変換行列は、Ｅ１，Ｅ２が決まると従属的に一意に決まるものであるため特に定義を要しない。
【００５２】
誤差行列３４２を定義するメリットは、クラスタの各連結部分で誤差を持たせるので変換行列３４１を修正することなく、すなわちクラスタ内のカメラキャリブレーション情報を維持したまま、カメラシステム全体でキャリブレーション誤差の分散・吸収を図れることである。これにより、クラスタ内の物体位置検出精度が劣化せず各クラスタからの物体位置を統合できるので、全体として精度の良いトラッキングが可能となる。
【００５３】
ここで、誤差行列３４２及び変換行列３４１を使った座標変換の例として、クラスタＣ３のクラスタ座標系Ｘ３Ｙ３Ｚ３から統合座標系Ｘ１Ｙ１Ｚ１への変換について説明する。カメラキャリブレーション情報によりクラスタＣ３のクラスタ座標Ｐ３から、カメラｅ５’のカメラ座標Ｑ５’が求まる。次に、カメラ座標Ｑ５’からクラスタＣ２のカメラｅ５のカメラ座標Ｑ５への変換は、
Ｑ５  ＝Ｅ２・Ｑ５’          （５）
となる。またカメラ座標Ｑ５からカメラ座標Ｑ３’への変換は、
Ｑ３’＝Ｔ５３・Ｑ５          （６）
となる。更に、カメラ座標Ｑ３’からカメラ座標Ｑ３への変換は、
Ｑ３  ＝Ｅ１・Ｑ３’          （７）
となる。最後に、カメラ座標Ｑ３から統合座標系Ｐ１への変換はカメラキャリブレーション情報により求まる。この例では、クラスタＣ３のクラスタ座標から統合座標系Ｐ１への変換を行ったが、カメラｅ１’のカメラ座標系Ｑ１’から統合座標系Ｐ１への変換も同様である。
【００５４】
誤差行列３４２は後述する最適化処理部３２により求められる。
【００５５】
座標変換部３０は、各クラスタのカメラキャリブレーション情報、変換行列３４１、誤差行列３４２を用いて、式（１）による隣接クラスタ間の座標変換、式（３）等による任意のクラスタ間の座標変換、及び式（５）〜（７）等によるクラスタ座標系から統合座標系への変換を行う。
【００５６】
変換行列生成部３１は、各クラスタのカメラキャリブレーション情報から各クラスタ内の変換行列３４１を生成する。上述したように変換行列３４１は各クラスタ座標系における共通カメラの位置・姿勢から、当該クラスタ座標系に対する当該共通カメラのカメラ座標系への回転量及び平行移動量を求めて、行列Ｖ及びＷを算出し、これらに式（２）及び式（４）を適用することで算出される。
【００５７】
最適化処理部３２は、各クラスタ間の誤差がカメラシステム全体で最小化するように誤差行列３４２を定めることにより統合座標系の生成を行う。例えば、図７に示すカメラシステムではクラスタＣ１とＣ２との間、クラスタＣ２とＣ３との間、及びクラスタＣ３とＣ１との間の誤差の合計を最小化する。具体的には、誤差行列Ｅ１，Ｅ２それぞれの回転成分の回転角をθｍ１，θｍ２、誤差行列Ｅ１，Ｅ２それぞれの平行移動成分の移動量をｄｍ１，ｄｍ２、またクラスタＣ１のカメラｅ１からクラスタＣ３のカメラｅ１’への変換の回転角をθｅ、移動量をｄｅと表すと、例えば、次式で定義する積算誤差ＵＳＵＭを最小化する。
ＵＳＵＭ＝Ｕθ＋α×Ｕｄ              （８）
【００５８】
ここで、Ｕθ，Ｕｄはそれぞれ次式で定義する回転誤差の和、移動誤差の和である。αは重み係数であり、例えば、ＵθとＵｄとの単位の相違を調整し、回転角の誤差と移動量の誤差とが均等に評価されるように設定することができる。
Ｕθ＝ |θｍ１|＋|θｍ２|＋|θｅ|      （９）
Ｕｄ＝ ｄｍ１＋ｄｍ２＋ｄｅ            （１０）
【００５９】
θｅ及びｄｅは次のように求められる。カメラｅ１’のカメラ座標系の原点と座標軸ベクトルを、座標変換部３０により統合座標系に変換する。座標変換部３０は、クラスタＣ１を始端クラスタ、クラスタＣ３を終端クラスタに設定し、始端クラスタから終端クラスタまでを連鎖位置合わせした変換行列Ｓ３１を生成して、変換行列Ｓ３１により統合座標系への変換を行う。一方、カメラｅ１のカメラ座標系の原点と座標軸ベクトルを基準座標系で表す。これら２つの原点座標のオフセットを移動量ｄｅとし、座標軸ベクトルの回転角をθｅとする。
【００６０】
さて、既に述べたように、カメラｅ１とｅ１’との間の変換は、Ｅ１，Ｅ２が決まると従属的に一意に決まる。つまり、θｅ及びｄｅは独立のパラメータではなく、Ｅ１，Ｅ２から計算されるパラメータである。よって、Ｅ１，Ｅ２を最適化することによりＵＳＵＭの最小化が図られる。最適化処理は一般的に用いられる、例えば、最急降下法、マルコフ連鎖モンテカルロ法（Markov chain Monte Carlo methods：ＭＣＭＣ法）などの手法を用いて行うことができ、当該最適化により誤差行列３４２が決定される。
【００６１】
座標統合処理部３３は物体位置統合部としての機能を有し、当該機能は各クラスタ処理部２から入力される人物位置を隣接クラスタ間で照合し同一人物の対応付けを行うクラスタ間追跡継承機能、及びクラスタごとの人物位置を統合座標系に統合して出力する追跡統合機能を含む。
【００６２】
まず、クラスタ間追跡継承機能について説明する。当該機能では、隣接クラスタそれぞれから同時刻に検出された人物位置を座標変換部３０を用いて局所位置合わせして位置合わせされた人物位置のうち予め設定された同定しきい値よりも近接している人物位置同士を同一人物によるものと判定することで、クラスタ間での同一物体の対応付けを行う。
【００６３】
図８は座標統合処理部３３の機能を説明する模式図であり、同図を用いて、クラスタ間追跡継承機能及び追跡統合機能について具体的に説明する。クラスタＣ１とクラスタＣ２との間での１人の人間の対応付けを考える。図８（ａ）は、局所位置合わせした場合の２つのクラスタの配置を示す模式的な平面図である。また同図（ｂ）は全体位置合わせした場合の２つのクラスタの配置を模式的に示しており、誤差が含まれるため共通カメラｅ３の位置がクラスタＣ１，Ｃ２でずれている様子が示されている。
【００６４】
また、図８（ｃ）はクラスタＣ１にて検出された１人の人間の人物位置を三角印（▲）で示し、図８（ｄ）はクラスタＣ２にて検出された同一人の人物位置を四角印（■）で示している。ここではこれらＣ１，Ｃ２での人物位置は共通カメラｅ３の視野内で同一時刻に得られたものとする。
【００６５】
図８（ｅ）は同図（ｃ），（ｄ）を局所位置合わせした様子を示しており、クラスタの配置は図８（ａ）の状態に相当する。また、図８（ｆ）は全体位置合わせした様子を示しており、クラスタの配置は図８（ｂ）の状態に相当する。これら２つの図を比較してわかるように、誤差成分を含む場合（図８（ｆ））は、それぞれのクラスタで求まった三角（▲）及び四角（■）の位置が誤差成分の影響で誤差成分を含まない場合（図８（ｅ））よりも離れる。
【００６６】
ここで、誤差行列３４２はカメラシステム全体としての整合性をとるためのものであるため、検出結果をクラスタ間で対応付けるという局所的な処理において誤差行列３４２の誤差成分は考慮する必要がない。また、人が大勢いる場合にはこのような誤差成分を考慮に入れることにより離れてしまう検出位置を用いると、対応付けを誤る可能性がある。
【００６７】
そこで、クラスタ間追跡継承機能においては、図８（ｅ）に示すように、共通カメラを共有する隣接クラスタそれぞれのクラスタ座標系を当該共通カメラの外部パラメータを合致させる局所位置合わせにより人物位置を位置合わせして同定する。すなわち、当該共通カメラの視野にて追跡された各クラスタでの人物位置を局所位置合わせした座標系にて対応付け、クラスタ間での同一人を決定する。
【００６８】
一方、共通カメラを合致させる位置合わせにはキャリブレーション誤差の問題がある。そこで、座標統合処理部３３は追跡統合機能において、クラスタ間追跡継承機能により同一人とされたクラスタごとの人物位置について、それらの統合座標系における位置に基づいて一つの統合物体位置を算出し、クラスタの接続部分での追跡結果とする。このとき、統合物体位置は全てのクラスタの位置関係をみて整合性のとれた位置とする必要がある。そこで、座標統合処理部３３は、最適化処理部３２により積算誤差を最小化した配置関係のクラスタでの人物位置に基づいて統合物体位置を算出する。つまり、クラスタ間の誤差成分を考慮した配置関係で、対応付け後の人の新たな座標を計算する。よって、図８の例では同図（ｆ）の状態で人の新たな座標が計算される。例えば、当該座標の計算方法として、対応付けられた２点の平均の位置（図８（ｆ）における“×”印の位置）を、対応付け後の座標とすることができる。
【００６９】
なお、既に述べたように、対応付けはクラスタ間でオーバーラップする領域にいる人間についてのみ行う。また、オーバーラップする領域に人間が複数存在する場合に対応するため、組み合わせ最適化処理により対応を求める。この際、座標間の距離が小さい程対応付けされやすくなるようにコストを設定する。
【００７０】
次に本実施形態のカメラシステムにおけるカメラキャリブレーション時の動作、及び移動物体の追跡動作について説明する。既に述べたように、画像処理部１はカメラシステムの設置時等に、各クラスタにおけるキャリブレーション、及びクラスタ間でのループキャリブレーションを行い、その結果を利用して複数台のカメラの画像を用いた移動物体追跡を行う。
【００７１】
[各クラスタのカメラキャリブレーション]
図９は各クラスタのカメラキャリブレーションの概略のフロー図である。クラスタを構成する各カメラからクラスタ処理部２に基準物体が映った画像を入力する（ステップＳ５０）。入力された画像における特徴点の位置を特定する（ステップＳ５１）。特徴点の位置の特定は、作業者が出力装置５に表示される画像にて特徴点を認識し入力装置４から指定することもできるし、クラスタ処理部２が自動的に抽出する構成とすることもできる。画像上での特徴点の位置に基づいてキャリブレーション実行部２０がカメラキャリブレーションを行い、算出された各カメラの外部パラメータ等のキャリブレーション結果は記憶部２２に格納される（ステップＳ５２）。
【００７２】
[ループキャリブレーション]
図１０はループキャリブレーションの概略のフロー図である。統合処理部３は、クラスタ処理部２の記憶部２２に保存してある各クラスタのカメラキャリブレーション情報を読み込み（ステップＳ６０）、また統合処理部３の記憶部３４に保存してあるクラスタ構成情報３４０を読み込む（ステップＳ６１）。そして、変換行列生成部３１により、読み込んだカメラキャリブレーション情報より変換行列３４１を求め（ステップＳ６２）、最適化処理部３２により最適化処理を行って誤差行列３４２を求める（ステップＳ６３）。
【００７３】
[追跡動作]
図１１は追跡動作時に行われる座標統合処理の概略のフロー図である。各クラスタ処理部２は、担当するクラスタの各カメラから画像を入力し（ステップＳ７０）、３次元追跡部２１により当該クラスタ内での追跡処理を実行してクラスタ座標系の人物位置を検出し、検出した人物位置を統合処理部３に出力する（ステップＳ７１）。統合処理部３は、入力された各人物位置に対して座標変換部３０により全体位置合わせを行って統合座標系の値に変換し、変換後の各人物位置を記憶部３４に記憶させる（ステップＳ７２）。ここで算出された統合座標系の人物位置のうち隣接クラスタで別々に検出された同一人物の人物位置は以降の処理により１つにまとめられる。
【００７４】
統合処理部３は、人物位置が検出された隣接クラスタ間で同一人物の対応付けを行う（ステップＳ７３〜Ｓ８２）。具体的には、各隣接クラスタ組を指定する隣接番号Ｉを１から１ずつインクリメントしながら（ステップＳ７３，Ｓ８２）、クラスタ校正情報３４０から該当する隣接クラスタの情報を読み出して隣接クラスタ組Ｉを構成する２つのクラスタｉ及びｊを特定し（ステップＳ７４）、クラスタｉからの人物位置とクラスタｊからの人物位置とが入力されていれば（ステップＳ７５にてＹＥＳ）、これらのクラスタ間にて対応付けを行う。他方、クラスタｉからの人物位置が入力されていないか、クラスタｊからの人物位置が入力されていなければ（ステップＳ７５にてＮＯ）、隣接クラスタ組Ｉに対応付け処理の対象はないとして次の隣接クラスタ組の処理に進む。
【００７５】
対応付け処理の対象がある場合、統合処理部３は、変換行列３４１からクラスタｉ及びクラスタｊの組み合わせに対応する行列Ｔｉｊを読み出して、座標変換部３０によりクラスタｉにて検出された人物位置をクラスタｊのクラスタ座標系に変換することで局所位置合わせを行う（ステップＳ７６）。これは上述したように誤差成分を除いた状態で対応付けを行うためである。なお、ステップＳ７６で処理される値はステップＳ７２で算出された統合座標系の値ではなく、各クラスタ座標系の値である。統合処理部３は座標統合処理部３３により、局所位置合わせされたクラスタｉの人物位置とクラスタｊの人物位置とに対して組み合わせ最適化による対応付けを行う（ステップＳ７７）。すなわち隣接クラスタ間で人物位置の総当たり組み合わせを設定して各組み合わせで人物位置間の距離を算出し、一方のクラスタの各人物位置に対して最も距離の近い組み合わせのみを選定し、選定された組み合わせのうち距離が予め設定された同定しきい値以下の組み合わせを対応付ける。
【００７６】
座標統合処理部３３は、隣接クラスタ間にて局所位置合わせにより対応付いた人物位置の組み合わせがあれば（ステップＳ７８にてＹＥＳ）、これと同じ組み合わせを、当該隣接クラスタそれぞれについてステップＳ７２にて記憶部３４に書き込んだ統合座標系の人物位置の中から読み出す。そして、隣接クラスタ組を構成するクラスタそれぞれについて読み出した統合座標系の値の平均値を統合物体位置として算出し（ステップＳ７９）、読み出した各隣接クラスタの人物位置を当該統合物体位置に置き換える（ステップＳ８０）。なお、対応付いた人物位置がない場合（ステップＳ７８にてＮＯ）、ステップＳ７９，Ｓ８０の処理はスキップされる。
【００７７】
全ての隣接クラスタ組について対応付けが終了するまで（ステップＳ８１）、統合処理部３は隣接番号ＩをインクリメントしてステップＳ７４〜Ｓ８０の対応付け処理を繰り返す。
【００７８】
上述の座標統合処理により、クラスタごとの人の追跡結果がカメラシステム全体で整合性を有するように統合される。画像処理部１は人の複数のクラスタに亘る行動についての判定を、統合された追跡結果に基づいて行う。また、出力装置５への追跡結果の画像表示には統合された追跡結果を用いる。クラスタ間の座標系の誤差が最小化された統合座標系での追跡結果は移動軌跡がクラスタ間にて滑らかになるので、統合された追跡結果を用いた人の移動速度や動きのパターンの精度が向上し、それらに基づいた人の行動認識の精度が向上する。また、軌跡が滑らかになることにより、画像表示での移動軌跡の表示が見やすくなる効果も得られる。
【００７９】
以上説明したように本発明に係るカメラシステムでは、カメラシステムを構成する全カメラで共通視野が確保できない場合に、共通視野を有するクラスタごとに物体位置を求め、それを全クラスタに亘る統合座標系にまとめることで、広範囲での物体位置を求め、移動物体の行動分析等を可能としている。統合座標系は、クラスタ内のカメラの位置関係は保持し、カメラキャリブレーシの誤差をクラスタ間の複数の接続部分にて、最適化しつつ分散するように設定され、これにより、クラスタ内のトラッキング処理での移動物体の座標について高い検知精度が実現される。また、移動物体がクラスタをまたぐときは共通カメラで位置合わせして同一物体を同定するので追跡結果を高精度のまま引き継ぐことができる。
【００８０】
隣接クラスタ間での同一人物の対応付け処理では、座標間の距離に基づく対応付けという非常に簡単な処理により人物位置のクラスタ間での統合を行っているが、上述のようにクラスタ内での人物位置の検出精度が高いため、このような簡単な処理であっても対応付けを誤る可能性が低く抑えられる。すなわち、クラスタ内での人物位置の高い検知精度が、座標の対応付け精度を担保している。さらに言えば、クラスタ内での人の検知座標の精度は、上述したようにカメラキャリブレーション精度に依存することから、最終的に、クラスタ内のカメラキャリブレーションの精度が、対応付け精度を担保している。
【００８１】
なお、上述の実施形態ではクラスタがループ状に接続される例を説明した。ループ状のクラスタ接続では、ループを一周したときのずれによりカメラキャリブレーション全体の誤差を評価することができ、本発明では当該誤差を各クラスタ間に分散する。ここで、カメラキャリブレーション全体の誤差を各クラスタ間にて最適化しつつ分散するという本発明の構成は、全体の誤差を何らかの形で検知できれば、クラスタがループ状に閉合した形状に接続される場合に限らず、例えば、直鎖状やツリー状の開放した端部を有する形状に接続される場合にも適用することができる。例えば、部屋や廊下など形状が把握できる監視空間においては、監視空間の形状とクラスタの配置とを対比し、監視空間の壁からの距離などに基づいてクラスタのキャリブレーション誤差を検知して、本発明を適用することが可能である。
【００８２】
また、上記実施形態では、座標統合処理部３３による隣接クラスタ間の対応付け後の新たな座標（統合物体位置）は、対応付けられた２点の中点に設定している。しかし、統合物体位置は中点以外とすることもできる。例えば、対応付けられた２点を結ぶ線分を内分する点に設定することができる。また、２つのクラスタ間の共通カメラの視野内にて対応付けられた２点又はその中点がどちらのクラスタに近いかを評価し、近い方のクラスタにて得られた物体位置の重みを他方のクラスタにて得られた物体位置より大きくする重み付け平均とすることもできる。
【００８３】
上述の実施形態では、簡単な例としてクラスタが３台のカメラからなる場合を示したが、クラスタを構成する複数のカメラの台数はこれに限定されない。
【００８４】
また、クラスタ間での物体位置の対応付けは、当該クラスタの視野のオーバーラップ部分での各クラスタの物体位置の間で行うのが好適であるが、オーバーラップ部分を有さないクラスタ間であっても、互いの視野が或る程度近接していれば、例えば、移動元のクラスタでの追跡結果から移動先での或る時刻ｔの物体位置を推定し、これと当該時刻ｔにて移動先で実際に検知される物体位置とを対応付けたり、近接した視野のクラスタの一方にて時刻ｔに検知された物体位置と他方にて時刻ｔに近い時刻ｔ’に検知された物体位置とを対応付けたりする近似的な対応付けを行うことも可能である。
【符号の説明】
【００８５】
１  画像処理部、２  クラスタ処理部、３  統合処理部、４  入力装置、５  出力装置、２０  キャリブレーション実行部、２１  ３次元追跡部、２２，３４  記憶部、３０  座標変換部、３１  変換行列生成部、３２  最適化処理部、３３  座標統合処理部、３４０  クラスタ構成情報、３４１  変換行列、３４２  誤差行列、Ｃ１〜Ｃ３  クラスタ、ｅ１〜ｅ６  カメラ。
【図１】
0005886594.tif 000002
【図２】
0005886594.tif 000003
【図３】
0005886594.tif 000004
【図４】
0005886594.tif 000005
【図５】
0005886594.tif 000006
【図６】
0005886594.tif 000007
【図７】
0005886594.tif 000008
【図８】
0005886594.tif 000009
【図９】
0005886594.tif 000010
【図１０】
0005886594.tif 000011
【図１１】
0005886594.tif 000012