以下に、本願の開示する位置関係判定プログラム、位置関係判定方法および位置関係判定装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例1に係る位置関係判定装置の一例について説明する。図1は、本実施例1に係る位置関係判定装置の構成を示す図である。図1に示すように、この位置関係判定装置100は、記憶部110、映像取得部120、移動体検出部130、特徴量抽出部140、位置関係判定部150、出力部160を有する。また、位置関係判定装置100は、複数のカメラ10a、10b、10cに接続される。ここでは一例として、カメラ10a、10b、10cを示すが、位置関係判定装置100は、その他のカメラに接続されていても良い。
カメラ10a〜10cは、撮像範囲の映像を撮影するカメラであり、それぞれ異なる位置に設置されているものとする。カメラ10a〜10cは、撮影した映像のデータを位置関係判定装置100に出力する。以下の説明において、カメラ10a〜10cをまとめて、適宜、カメラ10と表記する。
記憶部110は、移動体情報テーブル110a、対応情報テーブル110bを記憶する記憶装置である。記憶部110は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
移動体情報テーブル110aは、移動体の特徴量等を有するテーブルである。図2は、本実施例1に係る移動体情報テーブルのデータ構造の一例を示す図である。図2に示すように、この移動体情報テーブル110aは、移動体ID(Identification)、カメラID、出現位置、消滅位置、出現時刻、消滅時刻、特徴量を有する。
図2において、移動体IDは、移動体を一意に識別する情報である。カメラIDは、カメラ10を一意に識別する情報である。例えば、カメラID「10a」はカメラ10aに対応し、カメラID「10b」はカメラ10bに対応し、カメラID「10c」はカメラ10cに対応するものとする。
出現位置は、画像データ上の移動体の出現位置を特定する情報である。実施例1の出現位置は、上、下、右、左のいずれかに分類される。消滅位置は、画像データ上の移動体の消滅位置を特定する情報である。実施例1の消滅位置は、上、下、右、左のいずれかに分類される。出現時刻は、画面データ上に移動体が出現した時刻に対応する。消滅時刻は、画像データ上に移動体が消滅した時刻に対応する。また、特徴量は色および体型を含む。色は、R(Red)、G(Green)、B(Blue)を含む。体型は、身長および幅を含む。
例えば、図2において、移動体ID「0001」の移動体は、カメラID「10a」が撮影する画像の左から出現し、右へ消滅する。移動体ID「0001」の移動体の出現時刻は「9:00」であり、消滅時刻は「9:01」である。移動体ID「0001」の特徴量となるRGBはそれぞれ「10」、「5」、「210」であり、身長「170」、幅「42」である。
対応情報テーブル110bは、移動体が消滅した画像の位置および消滅した移動体を撮影したカメラ10と、移動体が出現した画像の位置および出現した移動体を撮影したカメラ10との関係に対応するパラメータを管理するテーブルである。図3は、本実施例1に係る対応情報テーブルのデータ構造の一例を示す図である。
図3に示すように、この対応情報テーブル110bは、横軸に出現位置の情報を有し、縦軸に消滅位置の情報を有する。例えば、カメラ10aの画像の右側で消滅した移動体が、カメラ10bの画像の下側から出現した場合には、消滅位置の「カメラ10a」の「右」を含む行と、出現位置の「カメラ10b」の「下」を含む列とが交差するパラメータに1が加算される。
映像取得部120は、各カメラ10から映像のデータを取得する処理部である。映像取得部120は、映像のデータをフレーム毎の画像データに変換し、画像データを移動体検出部130に出力する。
映像取得部120は、画像データとカメラ10の識別情報と時刻情報とを対応付けて、移動体検出部130に出力することで、画像データがどのカメラ10によって何時に撮影されたものなのかを通知する。
図4は、映像取得部が出力する画像データの一例を示す図である。図4において、画像データ11a、12a、13a、14aは、カメラ10aの映像から変換された画像データである。画像データ11b、12b、13bは、カメラ10bの映像から変換された画像データである。画像データ11c、12c、13cは、カメラ10cの映像から変換された画像データである。なお、各画像データを結ぶ線は、時刻を示す軸である。
移動体検出部130は、画像データから移動体を検出して追跡する処理部である。例えば、移動体検出部130は、移動体に対応する複数種類のテンプレートを用いて、テンプレートマッチングを行い、画像データから移動体を検出し、検出した移動体の追跡を行う。
移動体検出部130は、上記処理の他にも如何なる周知技術を用いて移動体の検出・追跡を行っても良い。例えば、移動体検出部130は、特開2002−157599号公報と同様の手法により、移動体の検出・追跡を行っても良い。移動体検出部130は「山下隆義、藤吉弘亘”追跡対象と周辺領域の関係性を利用した協調的な物体追跡”、画像の認識・理解シンポジウム(MIRU2011)、pp.56-63,2011」の技術を利用しても良い。
図5は、移動体の検出結果の一例を示す図である。図5に示すように、画像データ12aから移動体20aが検出され、画像データ13aから移動体21aが検出され、画像データ14aから移動体22aが検出される。画像データ12bから移動体20bが検出され、画像データ13bから移動体21bが検出される。画像データ12cから移動体20cが検出され、画像データ13cから移動体21cが検出される。
移動体検出部130は、検出・追跡結果を特徴量抽出部140に出力する。移動体検出部130は、検出および追跡を行った結果、同一の移動体については同一の移動体IDを付与する。例えば、移動体検出部130は、図5において、移動体20cと移動体21cとが同一の移動体である場合には、同一の移動体IDを付与する。移動体検出部130は、同一のカメラが撮影した画像データに対して追跡処理を実行するため、同一のカメラ10が撮影した画像データから検出する各移動体に対して、同一の移動体IDを付与するものとする。このため、異なるカメラ10が撮影した画像データの移動体に同一の移動体IDを付与することはない。
特徴量抽出部140は、移動体検出部130の検出・追跡結果を基にして、移動体の色を抽出する処理、移動体の体型を抽出する処理、移動体の出現時刻および出現位置、移動体の消滅時刻および消滅位置を特定する処理を実行する処理部である。特徴量抽出部140は、処理結果を、移動体情報テーブル110aに登録する。
特徴量抽出部140が、色を抽出する処理の一例について説明する。特徴量抽出部140は、同一の移動体IDが付与された移動体について、RGBの値を抽出する。例えば、特徴量抽出部140は、同一の移動体IDが付与された移動体のRGBの値をそれぞれ平均化することで、RGBの値を求めても良い。また、特徴量抽出部140は、同一の移動体IDの移動体の大きさを比較し、最も大きい移動体からRGBの値を求めても良い。
特徴量抽出部140が、移動体の体型を抽出する処理の一例について説明する。例えば、特徴量抽出部140は、画像の底辺から移動体までの距離と補正値とを対応付けたテーブルを用い、画像の移動体の高さおよび横幅に補正値を乗算することで、移動体の身長、幅を算出する。特徴量抽出部140は、他の如何なる周知技術を用いて、移動体の身長および幅を算出しても良い。
特徴量抽出部140が、移動体の出現時刻および出現位置を算出する処理の一例について説明する。特徴量抽出部140は、同一の移動体IDが付与された移動体について、各画像データを走査し、移動体が出現した画像データの時刻を出現時刻とする。また、特徴量抽出部140は、出現時刻における移動体の位置が、画像の上領域に含まれる場合には、移動体の出現位置を上と判定する。特徴量抽出部140は、出現時刻における移動体の位置が、画像の下領域に含まれる場合には、移動体の出現位置を下と判定する。特徴量抽出部140は、出現時刻における移動体の位置が、画像の左領域に含まれる場合には、移動体の出現位置を左と判定する。特徴量抽出部140は、出現時刻における移動体の位置が、画像の右領域に含まれる場合には、移動体の出現位置を右と判定する。上記の上領域、下領域、左領域、右領域は、予め管理者が設定しておくものとする。
特徴量抽出部140が、移動体の消滅時刻および消滅位置を算出する処理の一例について説明する。特徴量抽出部140は、同一の移動体IDが付与された移動体について、各画像データを走査し、移動体が消滅した画像データの時刻を消滅時刻とする。また、特徴量抽出部140は、消滅時刻の直前のフレームにおける移動体の位置が、画像の上領域に含まれる場合には、移動体の消滅位置を上と判定する。特徴量抽出部140は、消滅時刻の直前のフレームにおける移動体の位置が、画像の下領域に含まれる場合には、移動体の消滅位置を下と判定する。特徴量抽出部140は、消滅時刻の直前のフレームにおける移動体の位置が、画像の左領域に含まれる場合には、移動体の消滅位置を左と判定する。特徴量抽出部140は、消滅時刻の直前のフレームにおける移動体の位置が、画像の右領域に含まれる場合には、移動体の消滅位置を右と判定する。
特徴量抽出部140は、同一の移動体IDが付与された移動体毎に上記処理を繰り返し実行し、移動体情報テーブル110aに各情報を登録する。
位置関係判定部150は、移動体情報テーブル110aを基にして、類似度の高い移動体を対応付ける処理を行う。また、位置関係判定部150は、対応付けた移動体の消滅時刻および出現時刻を基にして、移動体の移動元の画像データを撮影したカメラ10と、移動体の移動先の画像データを撮影したカメラ10との関係を特定し、カメラ10の位置関係を判定する。以下において、位置関係判定部150の処理を具体的に説明する。
位置関係判定部150が、移動体を対応付ける処理の一例について説明する。位置判定部150は、第1条件および第2条件を満たす移動体同士を対応付ける。ここでは、比較する移動体を移動体Aと移動体Bとする。移動体AのRGB値を(R1、G1、B1)とする。移動体Aの身長および幅を(L1、W1)とする。移動体BのRGB値を(R2、G2、B2)とする。移動体Bの身長および幅を(L2、W2)とする。
第1条件は、式(1)によって算出される類似度corが、第1閾値以上であるという条件である。管理者は、位置関係判定部150に第1閾値を予め設定しておく。
第2条件は、式(2)によって算出される差分値dが、第2閾値未満であるという条件である。管理者は、位置関係判定部150に第2閾値を予め設定しておく。
位置関係判定部150は、上記処理を繰り返し実行することで、移動体同士を対応付ける。なお、位置関係判定部150は、単一の移動体に対して、複数の移動体が対応付けられた場合には、移動体の消滅時刻と他の移動体の出現時刻との差が最小となるものを採用し、他の対応付けは採用しない。例えば、移動体Aと移動体Bとが対応付けられ、移動体Aと移動体Cとが対応付けられているとする。移動体Aの消滅時刻と移動体Bの出現時刻との差が、移動体Aの消滅時刻と移動体Cの出現時刻との差よりも小さい場合に、位置関係判定部150は、移動体Aと移動体Bとの対応付けを採用する。
位置関係判定部150が、カメラ10の位置関係を判定する処理について説明する。位置関係判定部150は、移動体情報テーブル110aを参照し、対応付けた移動体の出現時刻、消滅時刻をそれぞれ比較する。位置関係判定部150は、対応付けた移動体のうち、消滅時刻が早い方の移動体の消滅位置およびカメラIDを特定する。位置関係判定部150は、対応付けた移動体のうち、出現時刻が遅い方の移動体の出現位置およびカメラIDを特定する。
位置関係判定部150は、対応情報テーブル110bを参照し、消滅時刻が早い方の移動体の消滅位置およびカメラIDと、出現時刻が遅い方の移動体の出現位置およびカメラIDとに対応するパラメータの値に1を加算する。
図6は、本実施例1に係る位置関係判定部の処理を説明するための図(1)である。例えば、消滅時刻が早い方の移動体の消滅位置およびカメラIDを「右」、「カメラ10a」とする。出現時刻が遅い方の移動体の出現位置およびカメラIDを「下」、「カメラ10b」とする。この場合には、位置関係判定部150は、図6に示す3行目、6列目のパラメータの値に1を加算する。
位置関係判定部150は、対応付けた移動体に対して、上記処理を繰り返し実行し、対応情報テーブル110bの各パラメータの値を順次更新していく。
位置関係判定部150は、対応情報テーブル110bに対する更新が終了した後に、対応情報テーブル110bのパラメータの値を参照し、パラメータの値が所定の閾値以上となるパラメータを検出する。位置関係判定部150は、検出したパラメータに対応する、消滅位置のカメラIDおよび出現位置のカメラIDの関係を基にして、カメラ10の位置関係を判定する。
図7は、本実施例1に係る位置関係判定部の処理を説明するための図(2)である。また、所定の閾値を90とする。そうすると、図7に示すように、閾値以上となるパラメータは、パラメータ(3,6)、(5,12)、(6,3)、(9,5)となる。
位置関係判定部150は、パラメータ(3,6)の関係から、カメラ10aの右とカメラ10bの下とが繋がっていると判定する。位置関係判定部150は、パラメータ(5,12)の関係から、カメラ10bの上とカメラ10cの左とが繋がっていると判定する。位置関係判定部150は、パラメータ(6,3)の関係から、カメラ10bの下とカメラ10aの右とが繋がっていると判定する。パラメータ(9,5)の関係から、カメラ10cの上とカメラ10bの上とが繋がっていると判定する。
位置関係判定部150は、判定結果を出力部160に出力する。図8は、本実施例1に係る位置関係判定部の判定結果の一例を示す図である。図8に示すように、カメラ10aが撮影する画像データ20aの右と、カメラ10bが撮影する画像データ20bの下とが繋がっている。また、画像データ20bの上と、カメラ10cが撮影する画像データ20cの左とが繋がっている。このため、各カメラ10の位置関係は、カメラ10a、10b、10cの順に並ぶ位置関係であることがわかる。
なお、位置関係判定部150は、各移動体の対応付けを完了してから、対応情報テーブル110bを更新しても良いし、各移動体の対応付けを行う度に、対応情報テーブル110bを更新しても良い。
出力部160は、位置関係判定部150の判定結果を外部装置に出力する処理部である。例えば、出力部160は、判定結果を表示装置に出力し、表示装置に判定結果を表示させても良い。
ところで、上記の映像取得部120、移動体検出部130、特徴量抽出部140、位置関係判定部150、出力部160の各処理部は下記装置に対応する。例えば、各処理部120〜160は、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、各処理部120〜160は、例えば、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。
次に、本実施例1に係る位置関係判定装置100の処理手順について説明する。移動体情報テーブルに情報を登録する処理手順を説明した後に、カメラ10の位置関係の情報を出力する処理の処理手順について説明する。
位置関係判定装置100が移動体情報テーブル110aに情報を登録する処理手順の一例について説明する。図9は、移動体情報テーブルに情報を登録する処理手順を示すフローチャートである。例えば、図9に示す処理は、位置関係判定装置100が、カメラ10から映像のデータを取得したことを契機に実行される。
図9に示すように、位置関係判定装置100は、カメラ10から映像を取得し、フレーム毎の画像データに変換する(ステップS101)。位置関係判定装置100は、画像データから移動体を検出し、検出した移動体を追跡する(ステップS102)。位置関係判定装置100は、検出および追跡した移動体の特徴量を抽出し、移動体情報テーブル110aに登録する(ステップS103)。
位置関係判定装置100が、カメラ10の位置関係の情報を出力する処理の処理手順の一例について説明する。図10は、カメラ10の位置関係の情報を出力する処理の処理手順を示すフローチャートである。例えば、図10に示す処理は、所定の時間間隔で繰り返し実行される。
図10に示すように、位置関係判定装置100は、移動体情報テーブル110aを参照し、各移動体の特徴量を取得する(ステップS201)。位置関係判定装置100は、移動体の特徴量を基にして、各移動体を対応付ける(ステップS202)。
位置関係判定装置100は、対応付けた結果を基にして、対応情報テーブル110bを更新する(ステップS203)。位置関係判定装置100は、対応付けが終了したか否かを判定する(ステップS204)。位置関係判定装置100は、対応付けが終了していない場合には(ステップS204,No)、ステップS201に移行する。
一方、位置関係判定装置100は、対応付けが終了した場合には(ステップS204,Yes)、対応情報テーブル110bを基にして、カメラ10の位置関係の情報を出力する(ステップS205)。
次に、本実施例1に係る位置関係判定装置100の効果について説明する。位置関係判定装置100は、カメラ10が撮影した画像データから移動体を検出して特徴量を抽出し、移動体の特徴量の情報を移動体情報テーブル110aに登録する。そして、位置関係判定装置100は、移動体情報テーブル110aを参照して、移動体の移動元の画像データを撮影したカメラ10と、移動体の移動先の画像データを撮影したカメラ10との関係を特定し、カメラ10の位置関係を判定する。このため、位置関係判定装置100によれば、カメラの位置関係を判定することができる。
また、位置関係判定装置100は、移動体の消滅位置および出現位置を更に利用して、各カメラ10の位置関係および移動元のカメラ10の画像データの位置と移動先のカメラ10の画像データの位置とを判定する。このため、各画像データ間の位置のつながりを求めることができる。
また、位置関係判定装置100は、対応情報テーブル110bを用いて、パラメータの値を加算していき、所定の閾値以上となったパラメータに対する消滅位置および出現位置の関係から、カメラ10の位置関係を判定する。このため、複数の移動体の関係を用いて、総合的に、カメラ10の位置関係を判定することとなり、カメラ10の位置関係の判定精度を向上させることができる。
次に、本実施例2に係る位置関係判定装置について説明する。図11は、本実施例2に係る位置関係判定装置の構成を示す機能ブロック図である。図11に示すように、この位置関係判定装置200は、記憶部210、映像取得部220、移動体検出部230、特徴量抽出部240、位置関係判定部250、出力部260を有する。また、位置関係判定装置200は、複数のカメラ10a、10b、10cに接続される。ここでは一例として、カメラ10a、10b、10cを示すが、位置関係判定装置200は、その他のカメラに接続されていても良い。カメラ10a〜10cに関する説明は、実施例1の説明と同様である。
記憶部210は、移動体情報テーブル210a、対応情報テーブル210bを記憶する。記憶部210は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
移動体情報テーブル210aは、移動体の特徴量等を有するテーブルである。図12は、本実施例2に係る移動体情報テーブルのデータ構造の一例を示す図である。図12に示すように、この移動体情報テーブル210aは、移動体ID、カメラID、出現位置、消滅位置、出現時刻、消滅時刻、特徴量を有する。このうち、移動体ID、カメラID出現時刻、消滅時刻、特徴量に関する説明は、実施例1のものと同様である。
出現位置は、画像データ上の移動体の出現位置を特定する情報である。本実施例2では、出現位置を出現した移動体の中心座標とする。消滅位置は、画像データ上の移動体の消滅位置を特定する情報である。本実施例2では、消滅位置を消滅する直前の移動体の中心座標とする。
対応情報テーブル210bは、移動体が消滅した画像の位置および消滅した移動体を撮影したカメラと、移動体が出現した画像の位置および出現した移動体を撮影したカメラ10との関係に対応するパラメータを管理するテーブルである。図13は、本実施例2に係る対応情報テーブルのデータ構造の一例を示す図である。
図13に示すように、この対応情報テーブル210bは、横軸に出現位置の情報を有し、縦軸に消滅位置の情報を有する。まず、消滅位置のカメラ10aと、出現位置のカメラ10bとが交差する領域1Aについて説明する。領域1Aは、番号、消滅座標、出現座標、所要時間の属性を有する。番号は、各レコードを識別する情報である。領域1Aの消滅座標は、カメラ10aが撮影する画像データから移動体が消滅した座標を示す。領域1Aの出現座標は、カメラ10bが撮影する画像データから移動体が出現した座標を示す。所要時間は、移動体が消滅座標で消滅した時刻から、移動体が出現座標で出現した時刻までの時間に対応する。平均は、消滅座標の平均、出現座標の平均、所要時間の平均をそれぞれ示す。
消滅位置のカメラ10aと、出現位置のカメラ10cとが交差する領域1Bについて説明する。領域1Bの消滅座標は、カメラ10aが撮影する画像データから移動体が消滅した座標を示す。領域1Bの出現座標は、カメラ10cが撮影する画像データから移動体が出現した座標を示す。番号、所要時間、平均の説明は、領域1Aのものと同様である。
消滅位置のカメラ10bと、出現位置のカメラ10aとが交差する領域1Cについて説明する。領域1Cの消滅位置は、カメラ10bが撮影する画像データから移動体が消滅した座標を示す。領域1Cの出現座標は、カメラ10aが撮影する画像データから移動体が出現した座標を示す。番号、所要時間、平均の説明は、領域1Aのものと同様である。
消滅位置のカメラ10bと、出現位置のカメラ10cとが交差する領域1Dについて説明する。領域1Dの消滅座標は、カメラ10bが撮影する画像データから移動体が消滅した座標を示す。領域1Dの出現座標は、カメラ10cが撮影する画像データから移動体が出現した座標を示す。番号、所要時間、平均の説明は、領域1Aのものと同様である。
消滅位置のカメラ10cと、出現位置のカメラ10aとが交差する領域1Eについて説明する。領域1Eの消滅座標は、カメラ10cが撮影する画像データから移動体が消滅した座標を示す。領域1Eの出現座標は、カメラ10aが撮影する画像データから移動体が出現した座標を示す。番号、所要時間、平均の説明は、領域1Aのものと同様である。
消滅位置のカメラ10cと、出現位置のカメラ10bとが交差する領域1Fについて説明する。領域1Fの消滅座標は、カメラ10cが撮影する画像データから移動体が消滅した座標を示す。領域1Fの出現座標は、カメラ10bが撮影する画像データから移動体が出現した座標を示す。番号、所要時間、平均の説明は、領域1Aのものと同様である。
図11の説明に戻る。映像取得部220は、各カメラ10から映像のデータを取得する処理部である。映像取得部220は、映像のデータをフレーム毎の画像データに変換し、画像データを移動体検出部230に出力する。
映像取得部220は、画像データとカメラ10の識別情報と時刻情報とを対応付けて、移動体検出部230に出力することで、画像データがどのカメラ10によって何時に撮影されたものなのかを通知する。
移動体検出部230は、画像データから移動体を検出して追跡する処理部である。移動体検出部230に関する説明は、実施例1に示した移動体検出部130と同様であるため、説明を省略する。
特徴量抽出部240は、移動体検出部230の検出・追跡結果を基にして、移動体の色を抽出する処理、移動体の体型を抽出する処理、移動体の出現時刻および出現位置、移動体の消滅時刻および消滅位置を特定する処理を実行する処理部である。特徴量抽出部240は、処理結果を、移動体情報テーブル210aに登録する。
このうち、特徴量抽出部240が、移動体の色を抽出する処理および移動体の移動体の体型を抽出する処理は、実施例1に示した特徴量抽出部140と同様であるため、説明を省略する。
特徴量抽出部240が、移動体の出現時刻および出現位置を算出する処理の一例について説明する。特徴量抽出部240は、同一の移動体IDが付与された移動体について、各画像データを走査し、移動体が出現した画像データの時刻を出現時刻とする。また、特徴量抽出部240は、出現時刻における移動体の中心座標を、出現位置として算出する。
特徴量抽出部240が、移動体の消滅時刻および消滅位置を算出する処理の一例について説明する。特徴量抽出部240は、同一の移動体IDが付与された移動体について、各画像データを走査し、移動体が消滅した画像データの時刻を消滅時刻とする。また、特徴量抽出部240は、消滅時刻の直前のフレームにおける移動体の中心座標を、消滅位置として算出する。
特徴量抽出部240は、同一の移動体IDが付与された移動体毎に上記処理を繰り返し実行し、移動体情報テーブル210aに各情報を登録する。
位置関係判定部250は、移動体情報テーブル210aを基にして、類似度の高い移動体を対応付ける処理を行う。位置関係判定部250は、移動体を対応付けた結果を基にして、対応情報テーブル210bに情報を登録する。そして、位置関係判定部250は、対応情報テーブル210bを基にして、移動体の移動先の画像データを撮影したカメラ10との関係を特定し、カメラ10の位置関係を判定する。以下において、位置関係判定部250の処理を具体的に説明する。
位置関係判定部250が、移動体を対応付ける処理は、実施例1に示した位置関係判定部150が、移動体を対応付ける処理と同様であるため、説明を省略する。
位置関係判定部250が、移動体情報テーブル210aを基にして、対応情報テーブル210bに各種の情報を登録する処理について説明する。位置関係判定部250は、移動体情報テーブル210aを参照し、対応付けた移動体の出現時刻、消滅時刻をそれぞれ比較する。位置関係判定部250は、対応付けた移動体のうち、消滅時刻が早い方の移動体の消滅座標およびカメラIDを特定する。位置関係判定部250は、対応付けた移動体のうち、出現時刻が遅い方の移動体の出現座標およびカメラIDを特定する。
位置関係判定部250は、消滅座標のカメラIDと、出現座標のカメラIDとの関係から、消滅座標、出現座標を登録する対応情報テーブル210b上の領域を特定し、消滅座標、出現座標を登録する。例えば、消滅座標のカメラIDが「10a」、出現位置のカメラIDが「10b」の場合には、領域1Aの消滅座標、出現座標に情報を登録する。また、位置関係判定部250は、消滅座標を検出した画像データの時刻と出現座標を検出した時刻との差分時間を、所要時間に登録する。位置関係判定部250は、各移動体の組みに対して、異なる番号を割り振るものとする。
位置関係判定部250は、異なる移動体の組み毎に、対応情報テーブル210bの消滅座標、出現座標、所要時間を登録する処理を繰り返し実行した後に、各領域1A〜1Fの平均を算出する。
例えば、領域1Aの平均を算出する処理について説明する。位置関係判定部250は、領域1Aについて、各番号の消滅座標を平均することで、消滅座標の平均を算出する。位置関係判定部250は、各番号の出現座標を平均することで、出現座標の平均を算出する。位置関係判定部250は、各番号の所要時間を平均することで、所要時間の平均を算出する。位置関係判定部250は、他の領域1B〜1Fについても同様に、平均を算出する。なお、位置関係判定部250は、領域に登録されたレコード数が所定数未満の場合には、平均を算出する処理をスキップしても良い。
位置関係判定部250が、カメラ10の位置関係を判定する処理について説明する。位置関係判定部250は、対応情報テーブル210bの各領域の平均に登録されたレコードを参照し、各カメラ10の位置関係を判定する。一例として、図13を利用して、位置関係判定部250の処理を説明する。なお、図13に示すように、領域1B、1Eについては、レコード数が足らず、平均を算出していないものとする。位置関係判定部250は、平均が算出された領域の情報を基にして、位置関係を判定する。
位置関係判定部250が対応情報テーブル210bの領域1Aを参照すると、カメラ10aの画像データ上の座標(620、250)で消滅した移動体は、カメラ10bの画像データ上の座標(300、450)で出現する。このため、位置関係判定部250は、カメラ10aの隣に、カメラ10bが存在すると判定する。
位置関係判定部250が対応情報テーブル210bの領域1Cを参照すると、カメラ10bの画像データ上の座標(320、465)で消滅した移動体は、カメラ10aの画像データ上の座標(620、260)で出現する。このため、位置関係判定部250は、カメラ10bの隣に、カメラ10aが存在すると判定する。
位置関係判定部250が対応情報テーブル210bの領域1Dを参照すると、カメラ10bの画像データ上の座標(300、50)で消滅した移動体は、カメラ10cの座標(30、400)で出現する。このため、位置関係判定部250は、カメラ10bの隣に、カメラ10cが存在すると判定する。
位置関係判定部250が対応情報テーブル210bの領域1Fを参照すると、カメラ10cの画像データ上の座標(35、420)で消滅した移動体は、カメラ10bの座標(300、35)で出現する。このため、位置関係判定部250は、カメラ10cの隣に、カメラ10bが存在すると判定する。
図14は、本実施例2に係る位置関係判定部の判定結果の一例を示す図である。図14において、画像データ30aは、カメラ10aが撮影する画像データである。画像データ30bは、カメラ10bが撮影する画像データである。画像データ30cは、カメラ10cが撮影する画像データである。図14に示す画像データ30a、30b、30cの座標と矢印は、上記の位置関係判定部250の判定結果をまとめものである。
図14に示すように、画像データ30a上の座標(620、250)で消滅した移動体は、画像データ30b上の座標(300、450)に出現する。画像データ30b上の座標(300、465)で消滅した移動体は、画像データ30a上の座標(620、260)に出現する。移動体が、画像データ30aから消滅してから、画像データ30bに出現するまでの所要時間は、5分である。
図14に示すように、画像データ30b上の座標(300、50)で消滅した移動体は、画像データ30c上の座標(30、400)に出現する。画像データ30c上の座標(35、420)で消滅した移動体は、画像データ30b上の座標(300、35)に出現する。移動体が、画像データ30bから消滅してから、画像データ30cに出現するまでの所要時間は、6分である。
このため、位置関係判定部250は、カメラ10a、10b、10cの順に、並んでいると判定する。位置関係判定部250は、位置関係の判定結果を出力部260に出力しても良いし、図14に示した判定結果を出力部260に出力しても良い。
出力部260は、位置関係判定部250の判定結果を外部装置に出力する処理部である。例えば、出力部260は、判定結果を表示装置に出力し、表示装置に判定結果を表示させても良い。
次に、本実施例2に係る位置関係判定装置200の効果について説明する。位置関係判定装置200は、移動体の消滅座標および出現座標の平均を基にして、各カメラ10の位置関係および移動元のカメラ10の画像データの座標と移動先のカメラ10の画像データの座標とを判定する。このため、各カメラ10の位置関係と、各画像データ間の位置のつながりをより詳細に求めることができる。
ところで、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
図1に示した特徴量抽出部140が、特徴量を抽出する処理は一例であり、その他の処理を行って、移動体の特徴量を抽出し、移動体情報テーブル110aに登録しても良い。例えば、特徴量抽出部140は、カメラ毎に、移動体の移動方向を管理しておく。特徴量抽出部140は、カメラ10に対応する移動方向と同一の方向に移動する移動体の特徴量を、移動体情報テーブル110aに登録する。これに対して、特徴量抽出部140は、カメラ10に対応する移動方向と異なる方向に移動する移動体の特徴量は、移動体情報テーブル110aに登録しない。特徴量抽出部140は、各カメラ10の画像データについて、移動体の移動方向を分析し、統計的手法などを用いて、カメラ毎の移動方向を予め判定しておくものとする。
カメラ10に対応する移動方向と異なる方向に移動する移動体は、他の移動体と異なる動きをしており、カメラ10の位置関係を判定する場合に利用するサンプルとしては相応しくない可能性が高い。上記のように、特徴量抽出部140が、移動体の移動方向に基づいて、登録する移動体の特徴量を取捨選択することで、移動体情報テーブル110aのデータ量を削減しつつ、カメラ10の位置関係を正確に判定することができる。
実施例1に示した位置関係判定部150が、移動体を対応付ける処理は一例であり、その他の処理を行って、各移動体を対応付けても良い。例えば、位置関係判定部150は、移動体の移動方向を基にして、特徴量の幅を補正した後に、移動体を対応付ける。位置関係判定部150は、移動体が縦方向に移動している場合には、移動体の幅に補正値を乗算することで、移動体の幅を補正する。補正値は、0〜1に含まれる任意の値とする。移動体を人間であると仮定した場合、横方向に移動する場合の幅は、縦方向に移動する場合の幅よりも小さくなると考えられる。このため、位置関係判定部150は、移動体が縦方向に移動している場合に、移動体の幅を補正しておくことで、移動体の移動方向による幅の変動の影響を低減して、各移動体を対応付けることができる。
実施例1に示した位置関係判定部150がカメラの位置関係を判定する処理は一例であり、その他の処理を行って、カメラ10の位置関係を判定しても良い。例えば、位置関係判定部150は、対応付けた移動体の組みに基づいて、対応情報テーブル110bのパラメータに1を加算していたが、他の移動体と異なる特徴を持った移動体を対応付けた場合には、1ではなく、1より大きい値をパラメータに加算しても良い。
複数のカメラ10の画像データから同一の移動体を探し出す際、他の移動体と異なる特徴を持っていると見つけやすくなりため、対応付けの推定精度が向上する。例えば、青色の移動体が10個存在する中から、特定の移動体を対応付けることは難しい。しかし、青色の移動体9個の中に、赤色の移動体が1個紛れている場合に、赤色の移動体を対応付けることは容易であり、対応付けの推定精度が向上する。このため、位置関係判定部150は、他の移動体と異なる特徴を持った移動体を対応付けた場合の結果に重きを置いてパラメータを更新することで、より正確に、カメラ10の位置関係を判定することが可能となる。例えば、赤色の移動体を対応付けた場合には、5をパラメータに加算しても良い。
上記の例では、他の移動体と異なる特徴を持った移動体を、複数の青色の中に存在する赤色の移動体として説明を行ったが、これに限定されるものではなく、このような組み合わせは無数に存在する。以下において、位置関係判定部150が、他の移動体と異なる特徴を持った移動体を判定する処理の一例について説明する。
位置関係判定部150は、他の移動体と異なる特徴を持った移動体を判定する場合には、移動体情報テーブル110aを基にして、各移動体IDのRGBの出現頻度を計算する。出現頻度の小さいRGB値を持つ移動体は、他の移動体と異なる特徴を持った移動体といえる。図15は、出現頻度テーブルのデータ構造の一例を示す図(1)である。図15に示す出現頻度テーブルは、例えば、記憶部110に記憶される。
位置関係判定部150は、出現頻度テーブルを参照し、RGBの値に対応するパラメータに1を加算する。出現頻度テーブルの各パラメータの初期値を0とする。位置関係判定部150は、ある移動体IDのRGBの値がそれぞれ、130、120、10の場合には、パラメータ(4、5)の値に1を加算する。
位置関係判定部150は、各移動体のRGBの値を基にして、上記処理を繰り返し実行することで、出現頻度テーブルを更新する。更新後の出現頻度テーブルを図16に示す。図16は、出現頻度テーブルのデータ構造の一例を示す図(2)である。位置関係判定部150は、出現頻度テーブルの各値のうち、所定値以下となるRGBの値の組みを特定する。位置関係判定部150は、特定したRGBの値に対応する移動体を、他の移動体と異なる特徴を持った移動体として判定する。
図16において、例えば、所定値を50とすると、パラメータ(1、2)、(1、8)、(2、8)、(6、4)、(7、7)、(8、8)が、所定値以下となる。パラメータ(1、2)を例にして説明すると、Rの値が32〜63、Gの値が0〜31、Bの値が0〜31に含まれる移動体は、他の移動体と異なる特徴を持った移動体となる。このため、位置関係判定部150は、係る移動体を対応付けた場合には、対応情報テーブル110bの該当パラメータに5を加算する。
上記のように、位置関係判定部150は、他の移動体と異なる特徴を持った移動体を判定し、対応情報テーブル110bのパラメータに重みを付けて値を加算していくことで、より正確に、各カメラ10の位置関係を判定することができる。
次に、各実施例に示した位置関係判定装置と同様の機能を実現する計算プログラムを実行するコンピュータの一例を説明する。図17は、位置関係判定プログラムを実行するコンピュータの一例を示す図である。
図17に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303を有する。また、コンピュータ300は、記憶媒体からプログラム等を読取る読み取り装置304と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307を有する。そして、各装置301〜307は、バス308に接続される。
ハードディスク装置307は、例えば、移動体検出プログラム307a、特徴量抽出プログラム307b、位置関係判定プログラム307cを有する。CPU301は、各プログラム307a、307b、307cを読み出して、RAM306に展開する。
移動体検出プログラム307aは、移動体検出プロセス306aとして機能する。特徴量抽出プログラム307bは、特徴量抽出プロセス306bとして機能する。位置関係判定プログラム307cは、位置関係判定プロセス306cとして機能する。
例えば、移動体検出プロセス306aは、移動体検出部130、230に対応する。特徴量抽出プロセス306bは、特徴量抽出部140、240に対応する。位置関係判定プロセス306cは、位置関係判定部150、250に対応する。
なお、各プログラム307a〜307cについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300がこれらから各プログラム307a〜307cを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
異なる位置に配置された複数のカメラがそれぞれ撮影した複数の画像データから移動体を検出し、
複数の画像データから検出した各移動体の特徴量を抽出し、
抽出した各移動体の特徴量を基にして、特徴量の類似する移動体を対応付け、
対応付けた移動体について、該移動体が画像データから消滅した時刻および前記移動体が画像データに出現した時刻を基にして、前記移動体の移動元の画像データを撮影したカメラと、前記移動体の移動先の画像データを撮影したカメラとの関係を特定し、カメラの位置関係を判定する
各処理を実行させることを特徴とする位置関係判定プログラム。
(付記2)前記位置関係を判定する処理は、前記移動体が消滅した位置および前記移動体が出現した位置を更に利用して、各カメラの位置関係および移動元のカメラの画像データの位置と移動先のカメラの画像データの位置とを判定することを特徴とする付記1に記載の位置関係判定プログラム。
(付記3)前記位置関係を判定する処理は、前記移動体が消滅した位置および前記移動体が出現した位置を平均し、平均した結果を基にして、各カメラの位置関係および移動元のカメラの画像データの位置と移動先のカメラの画像データの位置とを判定することを特徴とする付記1に記載の位置関係判定プログラム。
(付記4)前記位置関係を判定する処理は、特徴量の類似する移動体を対応付け、対応付けた移動体について、前記移動体が消滅した画像データの位置および消滅した移動体を撮影したカメラと、前記移動体が出現した画像データの位置および出現した移動体を撮影したカメラとの関係を判定し、判定結果を基にして、前記移動体が消滅した画像データの位置および消滅した移動体を撮影したカメラと、前記移動体が出現した画像データの位置および出現した移動体を撮影したカメラとの関係に対応するパラメータに値を加算し、該パラメータの値を基にして、各カメラの位置関係を判定することを特徴とする付記1に記載の位置関係判定プログラム。
(付記5)前記位置関係を判定する処理は、移動体の特徴量と他の移動体の特徴量とを基にして、パラメータに加算する値を補正することを特徴とする付記4に記載の位置関係判定プログラム。
(付記6)コンピュータが実行する位置関係判定方法であって、
異なる位置に配置された複数のカメラがそれぞれ撮影した複数の画像データから移動体を検出し、
複数の画像データから検出した各移動体の特徴量を抽出し、
抽出した各移動体の特徴量を基にして、特徴量の類似する移動体を対応付け、
対応付けた移動体について、該移動体が画像データから消滅した時刻および前記移動体が画像データに出現した時刻を基にして、前記移動体の移動元の画像データを撮影したカメラと、前記移動体の移動先の画像データを撮影したカメラとの関係を特定し、カメラの位置関係を判定する
各処理を実行させることを特徴とする位置関係判定方法。
(付記7)前記位置関係を判定する処理は、前記移動体が消滅した位置および前記移動体が出現した位置を更に利用して、各カメラの位置関係および移動元のカメラの画像データの位置と移動先のカメラの画像データの位置とを判定することを特徴とする付記6に記載の位置関係判定方法。
(付記8)前記位置関係を判定する処理は、前記移動体が消滅した位置および前記移動体が出現した位置を平均し、平均した結果を基にして、各カメラの位置関係および移動元のカメラの画像データの位置と移動先のカメラの画像データの位置とを判定することを特徴とする付記6に記載の位置関係判定方法。
(付記9)前記位置関係を判定する処理は、特徴量の類似する移動体を対応付け、対応付けた移動体について、前記移動体が消滅した画像データの位置および消滅した移動体を撮影したカメラと、前記移動体が出現した画像データの位置および出現した移動体を撮影したカメラとの関係を判定し、判定結果を基にして、前記移動体が消滅した画像データの位置および消滅した移動体を撮影したカメラと、前記移動体が出現した画像データの位置および出現した移動体を撮影したカメラとの関係に対応するパラメータに値を加算し、該パラメータの値を基にして、各カメラの位置関係を判定することを特徴とする付記6に記載の位置関係判定方法。
(付記10)前記位置関係を判定する処理は、移動体の特徴量と他の移動体の特徴量とを基にして、パラメータに加算する値を補正することを特徴とする付記6に記載の位置関係判定方法。
(付記11)異なる位置に配置された複数のカメラがそれぞれ撮影した複数の画像データから移動体を検出する移動体検出部と、
複数の画像データから検出した各移動体の特徴量を抽出する特徴量抽出部と、
前記特徴量抽出部が抽出した各移動体の特徴量を基にして、特徴量の類似する移動体を対応付け、対応付けた移動体について、該移動体が画像データから消滅した時刻および前記移動体が画像データに出現した時刻を基にして、前記移動体の移動元の画像データを撮影したカメラと、前記移動体の移動先の画像データを撮影したカメラとの関係を特定し、各カメラの位置関係を判定する位置関係判定部と
を有することを特徴とする位置関係判定装置。
(付記12)前記位置関係判定部は、前記移動体が消滅した位置および前記移動体が出現した位置を更に利用して、各カメラの位置関係および移動元のカメラの画像データの位置と移動先のカメラの画像データの位置とを判定することを特徴とする付記11に記載の位置関係判定装置。
(付記13)前記位置関係判定部は、前記移動体が消滅した位置および前記移動体が出現した位置を平均し、平均した結果を基にして、各カメラの位置関係および移動元のカメラの画像データの位置と移動先のカメラの画像データの位置とを判定することを特徴とする付記11に記載の位置関係判定装置。
(付記14)前記位置関係判定部は、特徴量の類似する移動体を対応付け、対応付けた移動体について、前記移動体が消滅した画像データの位置および消滅した移動体を撮影したカメラと、前記移動体が出現した画像データの位置および出現した移動体を撮影したカメラとの関係を判定し、判定結果を基にして、前記移動体が消滅した画像データの位置および消滅した移動体を撮影したカメラと、前記移動体が出現した画像データの位置および出現した移動体を撮影したカメラとの関係に対応するパラメータに値を加算し、該パラメータの値を基にして、各カメラの位置関係を判定することを特徴とする付記11に記載の位置関係判定装置。
(付記15)前記位置関係判定部は、移動体の特徴量と他の移動体の特徴量とを基にして、パラメータに加算する値を補正することを特徴とする付記11に記載の位置関係判定装置。
(付記16)メモリと、
前記メモリに接続されたプロセッサと、を具備し、
前記プロセッサは、
異なる位置に配置された複数のカメラがそれぞれ撮影した複数の画像データから移動体を検出し、
複数の画像データから検出した各移動体の特徴量を抽出し、
抽出した各移動体の特徴量を基にして、特徴量の類似する移動体を対応付け、
対応付けた移動体について、該移動体が画像データから消滅した時刻および前記移動体が画像データに出現した時刻を基にして、前記移動体の移動元の画像データを撮影したカメラと、前記移動体の移動先の画像データを撮影したカメラとの関係を特定し、カメラの位置関係を判定する
各処理を実行することを特徴とする位置関係判定装置。
(付記17)異なる位置に配置された複数のカメラがそれぞれ撮影した複数の画像データから移動体を検出し、
複数の画像データから検出した各移動体の特徴量を抽出し、
抽出した各移動体の特徴量を基にして、特徴量の類似する移動体を対応付け、
対応付けた移動体について、該移動体が画像データから消滅した時刻および前記移動体が画像データに出現した時刻を基にして、前記移動体の移動元の画像データを撮影したカメラと、前記移動体の移動先の画像データを撮影したカメラとの関係を特定し、カメラの位置関係を判定する、
各処理をコンピュータに実行させるテストデータ生成プログラムを記憶する、コンピュータ読み取り可能な記録媒体。