以下、図面を参照して本発明の実施形態に係る位置同定装置の一例を詳細に説明する。
[第1実施形態]
図1に、第1実施形態に係る位置同定装置10を用いることが可能な、店舗などの施設内を複数の撮影部により撮影する環境の一例を正面側から見た概略図として示す。第1実施形態では、撮影画像から施設内を移動する利用者を追跡して、複数の撮影部間で共通する撮影位置を同定するものである。
図1に示すように、位置同定装置10は、第1カメラ14及び第2カメラ16が接続された制御装置12を含んでいる。図1には、第1カメラ14及び第2カメラ16が、店舗などの施設20内の天井に設置された環境の一例が示されている。また、第1実施形態では、第1カメラ14及び第2カメラ16は、施設20内を広範囲に撮影可能とするために、等距離射影方式によるフィッシュアイ等の撮影レンズを用いた場合を説明する。しかし、第1カメラ14及び第2カメラ16の撮影レンズは、フィッシュアイ等の撮影レンズに限定されるものではなく、広角レンズや標準レンズを用いてもよい。
なお、第1カメラ14の撮影範囲と第2カメラ16の撮影範囲は、少なくとも一部が重複されて設置されるものとする。しかし、第1カメラ14及び第2カメラ16は、画角又は撮影範囲の設定処理等のカメラの詳細な初期設定を行わずに、撮影方向を概ね定めて設置される。例えば、図1に示すように、第2カメラ16を設定する際に、設置時の画角が、画角θa又は画角θbによって撮影範囲が異なることになる。これは、詳細は後述するが、第1カメラ14及び第2カメラ16のマッチング処理を実施することで、第1カメラ14及び第2カメラ16の詳細な初期設定を不要とするためである。
また、第1実施形態では、第1カメラ14及び第2カメラ16の2つのカメラを用いた場合を説明するが、カメラの数量は2つに限定されるものではなく、3つ以上でもよい。また、カメラの設置は、施設20内の天井に限定されるものではなく、壁面に設置してもよく、また床面に自立型で設置してもよい。
図2に、制御装置12を実現可能なコンピュータの一例をコンピュータ30として示す。コンピュータ30はCPU32、RAM34、ROM36、および入出力ポート(I/O)40を備え、これらはバス42を介して互いに接続されている。また、I/O40には、蓄積装置44、ディスプレイ46、キーボードなどの入力装置48、及び現在時刻を報知するタイマ50が接続されている。なお、I/O40には、第1カメラ14及び第2カメラ16も接続されている。
蓄積装置44、HDD(Hard Disk Drive)や不揮発性のフラッシュメモリ等によって実現できる。詳細は後述するが、蓄積装置44には、マップ格納部44Mと、トラッキングデータ格納部44Tが設定されている。マップ格納部44Mは、第1カメラ14及び第2カメラ16の間で撮影画像内の位置が共通の位置であることの確からしさを示す確率マップを格納するための領域である。トラッキングデータ格納部44Tは、撮影画像における利用者の位置を示す時系列のデータ(撮影画像上の座標及び時間情報)を格納するための領域である。また、ROM36には、コンピュータ30を制御装置12として機能させるための制御プログラム38が記憶されている。CPU32は、制御プログラム38をROM36から読み出してRAM34に展開して処理を実行する。これにより、制御プログラム38を実行したコンピュータ30は図1に示す制御装置12として動作する。
次に、制御装置12として機能するコンピュータ30の動作を説明する。
図3に、CPU32により制御プログラム38が実行されて制御装置12として機能するコンピュータ30の位置同定処理の流れの一例を示す。CPU32は、ユーザにより指示された際、または定期的に図3に示す処理ルーチンを実行する。
まず、ステップS100で、CPU32は、第1カメラ14及び第2カメラ16の各々にグリッド枠を設定する。ステップS100は、位置同定処理における演算量を削減するために実行される。なお、より詳細に位置同定処理を実行する場合は、グリッド枠の設定は不要である。
図4に、第1カメラ14の撮影画像に対して設定する、縦横に複数のグリッドGを有するグリッド枠15の一例を示す。フィッシュアイ等の撮影レンズにより撮影した第1カメラ14の撮影画像は略円形となる。その第1カメラ14の撮影画像に対して設定する、グリッド枠15は、第1カメラ14のレンズ歪係数等の設計データに基づき、実平面上で各グリッドGの面積が同一となるように、定められる。また、本実施形態では、位置同定処理における演算量をさらに削減するため、第1カメラ14の撮影画像に対して設定するグリッド枠15は、第1カメラ14の撮影画像の予め定めた主要領域(図4に示す太線で囲まれた領域)内に対して設定するグリッド枠15Mを用いる。図5に、第1カメラ14の撮影画像に対して設定するグリッド枠15Mを示す。以下の説明では、第2カメラ16の撮影画像に対して設定するグリッド枠は、グリッド枠17Mとして説明する。
次に、図3に示すステップS102では、第1カメラ14及び第2カメラ16の各撮影画像を取得する。次のステップS104では、既知の画像処理によって、各撮影画像内に新たに出現した利用者を検出し、利用者IDを付与し、かつ付与された利用者IDの利用者に対してトラッキングを開始する。このトラッキングとは、利用者の移動に伴って撮影画像上の位置が変化する状態を、利用者の移動軌跡として取得する処理である。次にステップS106では、撮影画像内に存在する利用者の移動軌跡を、蓄積装置44に蓄積する。
本実施形態では、利用者の移動軌跡として、利用者の予め定めた部位(例えば頭部)が撮影画像内に存在する代表的な位置座標を、時系列に取得し、移動軌跡を示す情報としてトラッキングデータを蓄積装置44に蓄積する。なお、トラッキングデータは、取得した撮影画像内に存在する利用者の頭部の位置を示す撮影画像上の座標と、その撮影画像を取得した時間情報とを対応付けて蓄積する。つまり、ステップS106では、タイマ50から現在時間を取得し、かつ第1カメラ14及び第2カメラ16の其々でトラッキングされている利用者の位置座標に、現在時間を対応付けて、蓄積装置44に蓄積する。具体的には、トラッキングデータが、蓄積装置44に設定されたトラッキングデータ格納部44Tに格納される。従って、撮影画像における利用者の位置を時系列に示すトラッキングデータが蓄積される。
図6に、蓄積装置44に蓄積されるトラッキングデータの一例を示す。図6(A)は、第1カメラ14におけるトラッキングデータを示し、図6(B)は、第2カメラ16におけるトラッキングデータを示した。なお、図6では、利用者の頭部の位置を示す撮影画像上の座標を蓄積した場合の一例を示すが、撮影画像上の座標に代えて、当該座標が含まれるグリッド枠内のグリッドGの位置を示す情報を蓄積してもよい。図6(A)では第1カメラ14におけるグリッドGの位置を「Ai」で示し、図6(B)では第2カメラ16におけるグリッドGの位置を「Bj」で示した。
また、図8に、第1カメラ14におけるトラッキングデータによる利用者(ID:A−001)の移動軌跡の一例を示し、図9に、第2カメラ16におけるトラッキングデータによる利用者(ID:B−001)の移動軌跡の一例を示した。なお、図8及び図9では、縦横等倍の比率撮影画像、つまりグリッド枠が撮影レンズの歪係数等の設計データから、実平面上で各グリッドGが四角形となるように、座標変換した結果の撮影画像にグリッド枠を設定したイメージを示している。また、図8では、利用者の頭部の位置を節点Da1〜節点Da4で示した。また、図9では、利用者の頭部の位置を節点Db1〜節点Db4で示した。図8及び図9に示す一例では、第1カメラ14におけるトラッキングデータによる利用者(ID:A−001)の移動軌跡と、第2カメラ16におけるトラッキングデータによる利用者(ID:B−001)の移動軌跡との相関関係を見出すことはできない。
次に、図3に示すように、CPU32は、ステップS108で、現在状態が予め定めた条件に適合するかを判定する。本実施形態では、予め定めた条件として、トラッキングデータを蓄積装置44に蓄積した期間、例えば一週間等の時刻期間を定めている。つまり、蓄積装置44へトラッキングデータの蓄積を開始した時間t1から最終の時間tm(図6)が一週間を経過した際に、ステップS108で肯定判定される。ステップS108で否定判定された場合、ステップS102へ処理を戻し、トラッキングデータの蓄積を繰り返す。
ステップS108で肯定判定された場合、ステップS110〜ステップS118で、第1カメラ14及び第2カメラ16の其々に対して、第1カメラ14及び第2カメラ16の一方で撮影された利用者が他方で撮影されたことの確からしさを示すマップが作成される。
まず、ステップS110で、第1カメラ14の撮影画像に設定されたグリッド枠15Mのグリッド単位で、第1カメラ14で観測された利用者が第2カメラ16で観測された確率を演算する。具体的には、蓄積装置44に蓄積されたトラッキングデータを用いて、第1カメラ14の撮影画像に設定された特定のグリッドAiに利用者が観測された際、第2カメラ16の撮影画像に設定された特定のグリッドBjで利用者が観測された確率P(Ai,Bj)を演算する。この確率Pの演算を、第1カメラ14の撮影画像に設定された複数のグリッドの各々について行う、つまり、ステップS112で肯定判定されるまで、ステップS110の処理を繰り返し行う。
このようにすることで、第1カメラ14と第2カメラ16の重複する撮影エリアに含まれるグリッド同士の対応関係を同定することができる。つまり、重複する撮影エリアの或る位置に利用者が立っている場合、その利用者は第1カメラ14の或るグリッド(グリッドAi)と第2カメラ16の撮影画像中の対応するグリッド(グリッドBj)の両方に撮影されることになる。すなわち、第1カメラ14のグリッドAiに人が撮影されていた場合、同じタイミングの第2カメラ16の撮影画像中のグリッドBjには、必ずその同じ人が撮影されているはずである。そのため、一方のカメラで撮影した画像中の或る位置に対象物が撮影されているときの、他方のカメラの撮影画像の分割領域毎に、物体が撮影されている確率を求めた場合に、対応する位置において、物体が撮影されている確率が高く検出されることになる。このような確率を検出することで、複数のカメラで撮影した画像中の、同じ位置として対応する位置同士を検出することが可能となる。
確率Pの演算の一例を説明する。まず、第1カメラ14の撮影画像に設定された任意のグリッドAiを特定する。特定したグリッドAiにおいて、第1カメラ14のトラッキングデータで、利用者が観測された時間を特定する。特定した観測時間と同一の時間である第2カメラ16のトラッキングデータから、第2カメラ16で利用者が観測されたグリッドを導出する。導出された第2カメラ16によるグリッド総数を分母とし、導出したグリッドの数を分子とした値を、確率P(Ai,Bj)の値とする。以上の処理を、第1カメラ14の撮影画像に設定された複数のグリッドの各々について行う。これにより、第1カメラ14におけるグリッドAiに利用者が観測された際、第2カメラ16におけるグリッドBjで利用者が観測された確からしさの度合いを示す確率P(Ai,Bj)を演算できる。
次に、第2カメラ16におけるグリッドに対する第1カメラ14におけるグリッドの確率P(Bj,Ai)を演算する。つまり、ステップS110及びステップS112と同様に、ステップS114で、第2カメラ16の撮影画像に設定されたグリッド枠17Mのグリッド単位で、第2カメラ16で観測された利用者が第1カメラ14で観測された確率を演算する処理を、ステップS116で肯定判定されるまで繰り返し行う。
次のステップS118では、ステップS110で演算したグリッド単位の確率P(Ai,Bj)を第1カメラ14の確率マップとし、ステップS114で演算したグリッド単位の確率P(Bj,Ai)を第2カメラ16の確率マップとして生成し、各々の確率マップを蓄積装置44に格納する。つまり、第1カメラ14及び第2カメラ16の間で撮影画像内の位置が共通の位置であることの確からしさを示す確率マップを、蓄積装置44に設定されたマップ格納部44Mに格納する。具体的には、第1カメラ14の各グリッドに対する第2カメラ16の全グリッドの各々の確からしさを第1カメラ14の確率マップとし、第2カメラ16の各グリッドに対する第1カメラ14の全グリッドの各々の確からしさを第2カメラ16の確率マップとしてマップ格納部44Mに格納する。
次のステップS120では、蓄積装置44に格納した第1カメラ14の確率マップと、第2カメラ16の確率マップとを用いて、第1カメラ14及び第2カメラ16のマッチング処理を行った後に、本処理ルーチンを終了する。
第1カメラ14及び第2カメラ16のマッチング処理は、第1カメラ14及び第2カメラ16の撮影画像上の共通の位置関係を同定する処理である。つまり、第1カメラ14及び第2カメラ16で共通するグリッド対を同定することである。具体的には、確率マップにおいて、最も確率が高い第1カメラ14に設定されたグリッドと第2カメラ16に設定されたグリッドとのグリッド対を、共通の位置関係にあるグリッド対として同定する。この場合、第1カメラの確率マップ又は第2カメラ16の確率マップを用いることで処理してもよいが、第1カメラの確率マップ及び第2カメラ16の確率マップの両方を用いて、グリッド対を特定することができる。例えば、第1カメラの確率マップによる確率が高い複数のグリッド対からなる第1群と、第2カメラ16の確率マップによる確率が高い複数のグリッド対からなる第2群と、を求め、第1群と第2群のうち、最も確率が高いグリッド対を共通の位置関係にあるグリッド対として同定すればよい。
以上の処理により、利用者が観測された確からしさの度合いから、第1カメラ14で撮影された撮影画像の領域と、第2カメラ16で撮影された撮影画像の領域との間で、共通の領域を同定することができる。従って、第1カメラ14及び第2カメラ16の各々の間で相対位置関係を設定する等の詳細な初期設定を実施することは不要である。
上述のようにして求めた第1カメラ14の確率マップ、及び第2カメラ16の確率マップは、利用者が滞留する任意の領域に対応するグリッドに対して、確率が高くなる傾向になる。例えば、店舗等の施設では、費用の清算を行う場所に、利用者や清算処理を行う店員が滞留することが考えられる。例えば、第1カメラ14が店舗内のある領域を撮影していて、それと重複する領域を第2カメラ16でも撮影しているとする。このとき、清算所(所謂レジが設置された位置)が、第2カメラ16の撮影領域には含まれているが、第1カメラ14の撮影領域外だったとする。このような場合に、第1カメラ14と第2カメラ16の重複領域に人がいたとすると、第1カメラ14の撮影画像中のその位置に人が撮影される。同じタイミングに第2カメラ16で撮影された画像では、重複領域中の対応する位置だけでなく、清算所周辺にも人が検出されることになる。このように人が絶えず滞留する位置は、重複領域でないにも関わらず、同時存在確率が高く検出されるような誤検出を生じる原因となる場合がある。そこで、利用者が滞留することが予測される領域に対しては、確率Pを低くするように設定することが好ましい。つまり、複数のカメラをまたがって移動することが想定され、そのような移動を検出する対象とする物体(本実施形態の場合には、店舗内の客等)が、複数のカメラによる撮影画像中に同時に検出される位置によって、カメラ間の位置を同定するのであり、狭い範囲に留まることが想定される物体(本実施形態の場合、店員など)による誤った確率検出を除外することで、本実施形態では、より位置同定の精度を向上することが可能となる。
また、利用者の移動軌跡であるトラッキングデータにおいて、時系列の利用者の位置が極端に離れている場合、画像処理におけるノイズなどによる影響を受けた可能性が高く、時系列中に極端に離れた位置を含む移動軌跡は確率演算から除外することが好ましい。
また、利用者の移動軌跡であるトラッキングデータにおいて、長時間の間で利用者の位置が変化していない場合も、画像処理におけるノイズなどによる影響を受けた可能性が高く、確率演算から除外することが好ましい。
そこで、第1実施形態では、確率マップを生成する前に、利用者が滞留することが予測される領域に対して確率Pを低くする処理、及びトラッキングデータにおけるノイズの可能性を含む移動軌跡を確率演算から除外する処理として、前処理を行っている。
図7に、確率マップを生成するための前処理の流れの一例を示す。図7に示す処理ルーチンは、図3に示すステップS108とステップS110との間に処理を実行する。
図7に示す前処理では、CPU32がステップS130で、確率演算に対する付与係数Wを設定する。付与係数Wは、グリッドに対する確率Pの分散Uを示す変数であり、確率Pを演算する際に付与されるものである。次のステップS132では、トラッキングデータを取得し、次のステップS134で、取得したトラッキングデータにおける座標間の距離Lを演算する。次のステップS136では、距離Lが予め定めた閾値を超えた位置座標のデータ及び長時間の間で利用者の位置が変化していないこと(Lがほぼ零)を示す位置座標のデータを除外する設定をおこなって、本処理ルーチンを終了する。
これによって、利用者が滞留することが予測される領域に対して確率Pを低くでき、またトラッキングデータにおけるノイズの可能性を含む移動軌跡を確率演算から除外することができる。
[第2実施形態]
次に、第2実施形態を説明する。第2実施形態は、第1実施形態と同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。なお、第2実施形態では、グリッド間の距離、つまり撮影した撮影画像に設定されるグリッド間の実際の距離が予め既知であるものとする。
第2実施形態では、図3に示すステップS120の処理において、第1カメラ14及び第2カメラ16の間の距離を導出する。具体的には、第1カメラ14及び第2カメラ16のマッチング処理で同定した、第1カメラ14及び第2カメラ16で共通するグリッド対を複数抽出する。抽出した複数のグリッド対について、既知のグリッド間の実際の距離を用いて、特開2013−168089号公報等に記載の既知の三角測量演算によって、第1カメラ14及び第2カメラ16の間の距離を導出する。
これにより、第1カメラ14及び第2カメラ16の設置時に、第1カメラ14及び第2カメラ16の間の距離を計測する処理を省略することができる。
[第3実施形態]
次に、第3実施形態を説明する。第3実施形態は、第1実施形態と同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
前記実施形態で説明した第1カメラ14で撮影された撮影画像の領域と、第2カメラ16で撮影された撮影画像の領域との間で、共通の領域を同定することによって、利用者の移動軌跡(トラッキング)を連結することができる。つまり、上記実施形態で導出した確率マップを用いて、第1カメラ14で撮影された撮影画像における移動軌跡と、第2カメラ16で撮影された撮影画像における移動軌跡とを連結することができる。
図10に、利用者の移動軌跡(トラッキング)を連結する過程を示す。図10(A)は第1カメラ14で撮影された撮影画像に含まれる利用者の移動軌跡を示し、図10(B)は第2カメラ16で撮影された撮影画像に含まれる利用者の移動軌跡を示す。また、図10(C)は第1カメラ14による移動軌跡の利用者と、第2カメラ16による移動軌跡の利用者とが同一の利用者であった場合に移動軌跡(トラッキング)を連結した概念を示した。
図10に示すように、確率マップから同定されたグリッド対で、撮影画像を重畳することで、同一の利用者についての移動軌跡を、複数のカメラの各々で撮影された複数画像に亘って連結することができる。従って、第1カメラ14及び第2カメラ16に跨って移動した人物の移動経路を特定することができる。
そこで、本実施形態では、第1実施形態で導出した確率マップを用いて、第1カメラ14及び第2カメラ16に跨って移動した人物の移動経路を特定する。以下、人物の移動経路を特定する経路特定装置を詳細に説明する。
次に、本実施形態に係る経路特定装置として機能するコンピュータ30の動作を説明する。
図11に、CPU32により制御プログラム38が実行されて、制御装置12が経路特定装置として機能するコンピュータ30の経路特定処理の流れの一例を示す。CPU32は、ユーザにより指示された際、または定期的に図11に示す処理ルーチンを実行する。
まず、ステップS140で、CPU32は、図3に示すステップS100〜ステップS118と同様の処理を実行して導出された第1カメラ14及び第2カメラ16の各々確率マップを記憶する。つまり、第1カメラ14の各グリッドに対する第2カメラ16の全グリッドの各々の確からしさを第1カメラ14の確率マップとし、第2カメラ16の各グリッドに対する第1カメラ14の全グリッドの各々の確からしさを第2カメラ16の確率マップとしてマップ格納部44Mに格納する。なお、ステップS140の処理は、経路特定処理に用いる確率マップを導出する処理であり、事前に確率マップを導出済みの場合には、ステップS140の処理は不要である。
次のステップS142では、図3のステップS104及びステップS106と同様に、第1カメラ14及び第2カメラ16の各撮影画像を取得し、撮影画像内に存在する利用者の移動軌跡を、蓄積装置44に蓄積(トラッキングデータ格納部44Tに格納)する。なお、ステップS142の処理は、リアルタイムで移動する利用者を含めて移動経路を特定する場合に、継続的に移動軌跡をトラッキングデータとして蓄積する処理であり、事前に蓄積済(格納済)の移動軌跡から利用者を特定する場合には、トラッキングデータ格納部44Tからデータを取得するのみで良く、ステップS142の処理は不要である。
次のステップS144では、第1カメラ14で観測された利用者のうち1利用者Rを設定する。つまり、ステップS144では、トラッキングデータ格納部44Tから第1カメラ14のトラッキングデータを取得し、取得したトラッキングデータ(総数Rmax)の何れかを第1カメラ14における利用者Rのトラッキングデータとして抽出する。また、ステップS144では、利用者Rのトラッキングデータにおける観測時間を第1カメラ14の観測時間に設定する。
次のステップS146では、第2カメラ16で観測された利用者のうち1利用者Vを設定する。つまり、ステップS146では、トラッキングデータ格納部44Tから第2カメラ16のトラッキングデータを取得し、取得したトラッキングデータ(総数Vmax)の何れかを第2カメラ16における利用者Vのトラッキングデータとして抽出する。また、ステップS144では、利用者Rのトラッキングデータにおける観測時間を第1カメラ14の観測時間に設定する。
次に、ステップS148では、ステップS144で設定した第1カメラ14における利用者Rのトラッキングデータと、ステップS146で設定した第2カメラ16における利用者Vのトラッキングデータとについて、観測時間が共通の時刻範囲Tthを求める。時刻範囲Tthは、第1カメラ14で利用者Rが観測された時刻に、第2カメラ16で利用者Vが観測された時刻範囲であり、利用者R及び利用者Vが第1カメラ14及び第2カメラ16で共通に観測された可能性が高い。従って、時刻範囲Tthについて、利用者R及び利用者Vが第1カメラ14及び第2カメラ16で共通に観測された確かさを求めることで、トラッキングデータの全ての観測時間について求める場合に比べて処理負荷を抑制できる。
そこで、次のステップS150では、各確率マップを用いて、利用者R及び利用者Vが第1カメラ14及び第2カメラ16で共通に観測された同一人物である確からしさを示す同一性Mrvを求める。同一性Mrvは、例えば、次の(1)式及び(2)式を用いた同一性演算によって求めることができる。
(1)式では、時刻tにおいて第1カメラ14による画像位置(グリッドAi)及び第2カメラ16による画像位置(グリッドBj)に共通に利用者が存在する確からしさを示す確率Ptを求めることができる。具体的には、トラッキングデータにおける節点の時刻tについて、第1カメラ14の確率マップから取得した第1カメラ14のグリッドAiに存在する利用者に対して第2カメラ16のグリッドBjに存在する確かさを示す第1項の確率P(Ai,Bj)と、第2カメラ16の確率マップから取得した第2カメラ16のグリッドBiに存在する利用者に対して第1カメラ14のグリッドAjに存在する確かさを示す第2項の確率P(Bj,Ai)とを乗算して、確率Ptを求める。なお、時刻tは、ステップS148で求めた時刻範囲Tth内の時刻である。
(2)式では、第1カメラ14のトラッキングデータによる移動経路で観測された利用者Rと、第2カメラ16のトラッキングデータによる移動経路で観測された利用者Vとが同一人物である確からしさを示す同一性Mrvを求めることができる。具体的には、(1)式で求めた時刻範囲Tth内の各時刻tにおける確率Ptの直積を演算する。また、求めた同一性Mrvは、ステップS144で設定した第1カメラ14の利用者R(トラッキングデータ)と、ステップS146で設定した第2カメラ16の利用者V(トラッキングデータ)との組み合わせに対応付けて蓄積装置44に格納する。
次のステップS152では、第2カメラ16で観測された利用者(トラッキングデータ)の全てについて、ステップS146〜ステップS150の処理を完了したか否かを判断する。ステップS152で否定判断した場合は、ステップS146へ戻り、未処理の第2カメラ16で観測された利用者について、ステップS146〜ステップS150の処理を実行する。一方、ステップS152で肯定判断した場合は、ステップS154へ処理を移行し、同一性Mrvの値が予め定めた閾値Moを超えた(Mrv>Mo)か否かを判断する。閾値Moは、第1カメラ14の利用者Rと、第2カメラ16の利用者Vとが同一人物と判断する判断基準の値として予め実験によって求めた値である。
ステップS154で肯定判断した場合(Mrv>Mo)、ステップS156において利用者R及び利用者Vが同一人物と判定し、ステップS160へ処理を移行する。一方、ステップS154で否定判断した場合(Mrv≦Mo)、ステップS158において利用者R及び利用者Vが相違人物と判定し、ステップS160へ処理を移行する。なお、ステップS156では、判定結果を、第1カメラ14の利用者Rのトラッキングデータと第2カメラ16の利用者Vのトラッキングデータとの組み合わせに対応付けて蓄積装置44に格納する。
ところで、第1カメラ14で観測された利用者Rに共通する利用者として第2カメラ16で観測された利用者Vは、1利用者であることが好ましい。つまり、利用者Rと利用者Vとは1対1の対応であることが望ましい。そこで、ステップ154において、利用者R及び利用者Vの複数の組み合わせが同一人物と判定された場合、複数の組み合わせから同一人物である確からしさが高い組み合わせを設定する。例えば、同一性Mrvの値が最大値となる利用者R及び利用者Vの組み合わせを設定する処理を、ステップS154に加えればよい。
次のステップS160では、第1カメラ14で観測された利用者(トラッキングデータ)の全てについて、ステップS144〜ステップS158の処理を完了したか否かを判断する。ステップS160で否定判断した場合は、ステップS144へ戻り、未処理の第1カメラ14で観測された利用者について、ステップS144〜ステップS158の処理を実行する。一方、ステップS160で肯定判断した場合は、ステップS162へ処理を移行し、同一人物と判定された第1カメラ14の利用者Rのトラッキングデータと、第2カメラ16の利用者Vのトラッキングデータとを連結して本処理ルーチンを終了する。
図12に、利用者の移動軌跡(トラッキング)を連結して利用者の移動経路を特定する過程を示す。図12は、図10をより詳細に示した一例であり、図12(A)は第1カメラ14で撮影された撮影画像に含まれる利用者Rの移動軌跡TRRを示し、図12(B)は第2カメラ16で撮影された撮影画像に含まれる利用者Vの移動軌跡TRVを示す。また、図12(C)は利用者R及び利用者Vの移動軌跡を連結して、第1カメラ14及び第2カメラ16の撮影範囲に跨って移動した人物の移動経路TRを示した。
図12(A)に示すように、利用者Rは、グリッド単位で、節点(例えば、頭部の位置)Da01〜節点Da07へ移動している。また、図12(B)に示すように、利用者Vは、グリッド単位で、節点(例えば、頭部の位置)Db01〜節点Db09へ移動している。図12に示す例では、各々観測時間が共通の時刻範囲Tthを含む第1カメラ14における利用者Rのトラッキングデータによる移動軌跡TRR、及び第2カメラ16における利用者Vのトラッキングデータによる移動軌跡TRVを示した。また、図12では、時刻範囲Tthにおける第1カメラ14の利用者Rの移動軌跡TRRを、節点Da04〜節点Da07の範囲で示し、第2カメラ16の利用者Vの移動軌跡TRVを、節点Da04〜節点Da04の範囲で示した。なお、利用者が観測された確からしさの度合いから、第1カメラ14で撮影された撮影画像の領域と、第2カメラ16で撮影された撮影画像の領域との間で、共通の領域を同定することができる。この共通の領域を領域Areaとして示した。
ここで、図12(A)に示す領域Areaに含まれる移動軌跡TRRと、図12(B)に示す領域Areaに含まれる移動軌跡TRVとは、同一性Mrvの値が閾値Moを超え、利用者R及び利用者Vが同一人物であると判定される。従って、移動軌跡TRRと、移動軌跡TRVとを、重複部分を重ねて連結することにより、同一人物であると判定した利用者の移動経路TRを形成できる。この移動経路TRは、第1カメラ14及び第2カメラ16の撮影範囲に跨って移動した人物の移動経路として特定することができる。
以上説明したように、本実施形態では、利用者が複数のカメラで共通して観測される確からしさの度合い(確率マップ)から、第1カメラ14による利用者Rの移動軌跡と、第2カメラ16による利用者Vの移動軌跡との各々で、共通する同一の利用者を判定することができる。このように確率マップを用いて同一の利用者を判定しているので、第1カメラ14及び第2カメラ16の撮影範囲に跨って移動する利用者の移動経路を特定する処理の負荷を軽減することができる。
なお、本実施形態では、確率マップを蓄積装置44に格納し、かつトラッキングデータを蓄積装置44に格納した後に、トラッキングデータを連結する場合を説明したが、本発明はこれに限定されるものではない。例えば、確率マップ及びトラッキングデータを予めHDDや不揮発性のフラッシュメモリ等の格納装置に格納しておき、格納装置から読み取った確率マップ及びトラッキングデータを用いて、トラッキングデータを連結してもよい。この場合、図11に示すステップS140を省略でき、ステップS144〜ステップS150の各々で、確率マップ又はトラッキングデータを格納装置から読み取る処理を実行すればよい。
[第4実施形態]
次に、第4実施形態を説明する。第4実施形態は、第3実施形態と同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
第3実施形態では、確率マップを用いて、第1カメラ14で撮影された撮影画像における移動軌跡と、第2カメラ16で撮影された撮影画像における移動軌跡とを連結して、第1カメラ14及び第2カメラ16に跨って移動する利用者の移動経路を特定した。この場合、施設内を撮影する全てのカメラについて、各確率マップを用いた同一性Mrvを求め、共通する同一の利用者を判定するので、カメラの総数が増加するのに伴って演算量が増加する。ところが、施設内を撮影するカメラ間で共通する同一の利用者が存在する確率が低い場合もある。そこで、本実施形態では、カメラ間で共通する同一の利用者が存在する確率が低い場合の演算処理を抑制することで、演算量を減少させる。
本実施形態では、第1カメラ14、第2カメラ16及び図示しない第3カメラの3台のカメラにより、施設20内を撮影する場合を説明する。なお、以下の説明では、図示しない第3カメラを、第3カメラ18と符号を付して説明する場合がある。
次に、本実施形態に係る経路特定装置として機能するコンピュータ30の動作を説明する。
図13に、本実施形態に係る経路特定処理の流れの一例を示す。
まず、ステップS170で、図11のステップS140と同様に、CPU32は、第1カメラ14、第2カメラ16及び第3カメラ18の各々確率マップを記憶する。次のステップS172では、図11のステップS142と同様に、第1カメラ14、第2カメラ16及び第3カメラ18の各撮影画像を取得し、撮影画像内に存在する利用者の移動軌跡を、蓄積装置44に蓄積(トラッキングデータ格納部44Tに格納)する。
次のステップS174では、各々確率マップを用い、自己のカメラの撮影画像の各グリッドで、他のカメラの撮影画像のグリッドに対応関係が高いグリッド領域を、カメラ毎に設定する。例えば、第1カメラ14について、第2カメラ16及び第3カメラ18の対応関係を求める場合、まず、第1カメラ14の第2カメラ16に対する確率マップを用いて、確率Pが予め定めた閾値以上のグリッドを求める。求めた閾値以上のグリッドを含む領域を、第1カメラ14の第2カメラ16に対応関係が高いグリッド領域17GRに設定する。次に、第1カメラ14の第3カメラ18に対する確率マップを用いて、確率Pが予め定めた閾値以上のグリッドを求める。求めた閾値以上のグリッドを含む領域を、第1カメラ14の第3カメラ18に対応関係が高いグリッド領域19GRに設定する。
図14に、第1カメラ14の撮影画像に対して設定するグリッド枠15Mにおいて、第2カメラ16及び第3カメラ18のグリッドに対応関係が高いグリッド領域の一例を示す。
図14に示すように、第1カメラ14のグリッドGの各々で、第2カメラ16のグリッドに対応関係が高いグリッド領域17GRと、第3カメラ18のグリッドに対応関係が高いグリッド領域19GRと、に含まれないグリッドGは、第1カメラ14及び第2カメラ16或いは第2カメラ16及び第3カメラ18に跨って移動する利用者の移動経路を含む確率が極めて低い。そこで、例えば、第1カメラ14と他のカメラで共通に観測された利用者の同一性Mrvを求める場合、第1カメラ14のトラッキングデータの節点が、グリッド領域17GR,19GRを含む場合にのみ、同一性Mrvを求めるようにすることで、演算量を抑制できる。
次に、図13に示すステップS176で、図11のステップS144と同様に、第1カメラ14で観測された利用者のうち1利用者Rを設定し、利用者Rのトラッキングデータを抽出する。また、利用者Rのトラッキングデータにおける観測時間を第1カメラ14の観測時間に設定する。
次のステップS178では、利用者Rのトラッキングデータに共起可能性有りのカメラを判定する。つまり、ステップS174で設定したグリッド領域を用いて、第1カメラ14による利用者Rのトラッキングデータに含まれるグリッドと対応関係が高いグリッドを有するカメラを判定するグリッド領域判定を実行する。ステップS178の判定結果が、第2カメラ16である場合はステップS180で肯定判断され、ステップS182へ処理を移行する。また、ステップS178の判定結果が、第3カメラ18である場合は、ステップS180で否定判断された後に、ステップS181で肯定判断され、ステップS182へ処理を移行する。一方、ステップS178の判定結果が、第2カメラ16及び第3カメラ18の対応関係が低い場合は、ステップS180及びステップS181で否定判断され、ステップS195へ処理を移行する。ステップS195で、カメラ間で同一の利用者が存在する可能性が低いと判定し、ステップS196へ処理を移行する。
次に、ステップS182では、図11のステップS146と同様に、ステップS178で判定された第2カメラ16又は第3カメラ18を該当カメラとして観測された利用者のうち1利用者Vを設定する。次のステップ184では、図11のステップS148と同様に、第1カメラ14における利用者Rのトラッキングデータと、該当カメラ(第2カメラ16又は第3カメラ18)における利用者Vのトラッキングデータとについて、観測時間が共通の時刻範囲Tthを求める。そして、次のステップS186で、図11のステップS150と同様に、各確率マップ及び(1)式及び(2)式を用いて、利用者R及び利用者Vが第1カメラ14及び第2カメラ16で共通に観測された同一人物である確からしさを示す同一性Mrvを求める。
次に、ステップS188では、図11のステップS152と同様に、該当カメラで観測された全利用者の処理を完了したか否かを判断し、否定判断した場合は、ステップS182へ戻る。一方、ステップS188で肯定判断した場合は、ステップS190へ処理を移行し、図11のステップS154と同様に、同一性Mrvの値が予め定めた閾値Moを超えた(Mrv>Mo)か否かを判断する。ステップS190で肯定判断した場合(Mrv>Mo)、ステップS192de、図11のステップS156と同様に、利用者R及び利用者Vが同一人物と判定し、ステップS196へ処理を移行する。一方、ステップS190で否定判断した場合(Mrv≦Mo)、ステップS194で、図11のステップS158と同様に利用者R及び利用者Vが相違人物と判定し、ステップS196へ処理を移行する。
ステップS196では、図11のステップS160と同様に、第1カメラ14で観測された全利用者の処理を完了したか否かを判断し、否定判断した場合は、ステップS176へ戻る。一方、ステップS196で肯定判断した場合は、ステップS198へ処理を移行し、図11のステップS162と同様に、同一人物と判定された第1カメラ14の利用者Rのトラッキングデータと、該当カメラの利用者Vのトラッキングデータとを連結して本処理ルーチンを終了する。
以上説明したように、本実施形態では、複数のカメラ間で共通する同一の利用者を判定する場合に、確率マップ又はカメラのグリッド枠に対して、予め他のカメラとの対応関係が高い領域を定めておくことで、複数のカメラに跨って移動する利用者の移動経路を特定する処理の負荷を軽減することができる。
なお、本実施形態では、複数カメラの一例として、3台のカメラに適用した場合を説明したが、カメラの台数は、3台に限定されるものではなく、4台以上のカメラに適用可能であることは言うまでもない。
前記実施形態では、カメラの撮影範囲の一部が重複する場合を一例として説明したが、カメラの撮影範囲が内包する場合に適用してもよい。つまり、例えば、第1カメラ14で施設内の外観を撮影し、第2カメラ16で第1カメラ14の撮影範囲の施設内の一部を詳細に撮影する場合にも適用可能である。
上記では、本発明を特定の実施形態について詳細に説明したが、本発明は係る実施形態に限定されるものではなく、本発明の範囲内にて他の種々の実施形態をとることが可能である。
また、前記各実施の形態では、ROM36に記憶したプログラムを実行することにより行われる処理を説明したが、プログラムの処理をハードウエアで実現してもよい。
さらに、前記各実施形態における処理は、プログラムとして光ディスク等の記憶媒体等に記憶して流通するようにしてもよい。