以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[システム構成]
図1は、本実施形態に係る追跡装置を含むシステムの概略構成を示す模式図である。図1に例示するように、設置された複数台の映像センサCが、それぞれ所定の監視範囲R内を撮影してその映像を生成する。追跡装置1は、後述する追跡処理により監視範囲R内にいる人物hの行動を監視する。
映像センサCは光学カメラや赤外線カメラ等で実現され、監視範囲R内の人物hを、この人物hに対する撮影方向およびこの人物hまでの距離が異なる複数の場所から撮影可能に設置される。具体的に、図2〜図4を参照して、映像センサCの設置方法について説明する。
例えば、各映像センサCの監視範囲Rに対する撮影方向を変え、撮影範囲が重複する範囲が設けられるように設置される。これにより、図2に例示するように、移動中に撮影範囲の重複範囲(a,b)に入った人物hを複数台の映像センサC(C1〜C3)で撮影可能となる。例えば、重複範囲aにいる人物hは、映像センサC1と映像センサC2とにより撮影可能となる。
また、各映像センサCの監視範囲R内の人物hに対する撮影方向を変えて設置される。これにより、図3に例示するように、一部の映像センサC1と人物hとの間に障害物がある場合にも、この人物hを、この人物に対する撮影方向が異なる他の映像センサC2で撮影可能となる。
また、各映像センサCが、監視範囲R内の人物hまでの距離が異なるように設置される。これにより、図4に例示するように、一部の映像センサC1からの距離dが近すぎて、映像上でこの人物hの移動速度が大きくなり、この映像上の人物hの検知精度が低下する場合にも、この人物hまでの距離が異なる他の映像センサC2で撮影可能となる。反対に、一部の映像センサC1からの距離dが遠すぎて映像上での人物hの移動速度が小さくなり、この映像上の人物hの検知精度が低下する場合にも、この人物hまでの距離が異なる他の映像センサC2で撮影可能となる。なお、ここで設定された映像センサCの各位置は、以降の処理では固定とする。
[追跡装置の構成]
図1の説明に戻る。追跡装置1は、パソコン等の汎用コンピュータで実現され、入力部11、出力部12、通信制御部13、記憶部14、および制御部15を備える。
入力部11は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部15に対して処理開始などの各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置等によって実現される。
通信制御部13は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した映像センサC等の外部の装置と制御部15との通信を制御する。
記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現され、後述する追跡処理により生成される訓練データ14aが記憶される。なお、記憶部14は、通信制御部13を介して制御部15と通信する構成でもよい。
制御部15は、CPU(Central Processing Unit)等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部15は、図1に例示するように、取得部15a、訓練部15bおよび識別部15cとして機能する。
取得部15aは、所定の監視範囲R内を同時に異なる場所から撮影した複数の映像を取得する。具体的に、取得部15aは、複数の映像センサCのそれぞれが同一時刻に監視範囲R内を撮影した複数の映像を、通信制御部13を介して取得する。
また、取得部15aは、取得した同一時刻の複数の映像のそれぞれから、例えば、頭部〜肩の形状を検知することにより、人物の映像の部分(以下、人物映像と記す)pを検知する。また、取得部15aは、各人物映像pの位置xpとして、例えば、頭部エリアの重心点等の代表点のピクセル位置を抽出する。その際、取得部15aは、同一の場所から撮影された各映像において、連続する異なる時刻間で同一の人物の人物映像pを識別して同一の識別値を付与する。
ここで、図5を参照して、人物映像pの位置(以下、ピクセル位置とも記す)xpについて説明する。図5には、監視範囲R内の物理位置i(i=1,2,3)にいる人物hiを複数の映像センサCn(n=1,2)で撮影した複数の映像n中の人物映像inのピクセル位置xinについて例示されている。例えば、映像センサC1で撮影された映像1中には、物理位置1にいる人物h1および物理位置2にいる人物h2が、ピクセル位置x11の人物映像11またはピクセル位置x21の人物映像21として映っている。一方、映像センサC2で撮影された映像2には、人物h1、h2に加えて、物理位置3にいる人物h3が、ピクセル位置x22の人物映像22、ピクセル位置x12の人物映像12、またはピクセル位置x32の人物映像32として映っている。すなわち、物理位置3にいる人物h3は、映像1には映っておらず、映像2にのみ映っている。
なお、取得部15aが複数の映像nを取得して人物映像inのピクセル位置xinを抽出した時点では、各人物映像inと物理位置iにいる人物hiとの対応は不明である。そこで、本実施形態の追跡装置1は、後述する追跡処理により、各映像n中の人物映像inのうち同一人物を撮影したものを識別する。これにより、本実施形態の追跡装置1は、各人物hiの移動軌跡を検知する。
また、取得部15aは、上記したように設置された映像センサCが、監視範囲R内の人物hを、該人物hに対する撮影方向および該人物までの距離が異なる複数の場所から撮影した映像を取得する。これにより、各映像センサCの撮影範囲が重複する範囲ができ、重複範囲にいる人物を複数の映像センサCで撮影した複数の映像を取得できる(図2参照)。また、一部の映像センサCと人物との間に障害物があり映像上で人物の追跡が困難な場合にも、他の映像センサCが撮影した映像を用いて人物の検知の精度の低下を抑止できる(図3参照)。また、例えば、一部の映像センサCからの距離が近すぎて映像上でこの人物の移動速度が大きくなり、この人物の映像上での検知精度が低下した場合にも、他の映像センサCが撮影した映像を用いて人物の識別の精度の低下を抑止できる。反対に、一部の映像センサCからの距離が遠すぎて映像上での人物の移動速度が小さくなり、この人物の映像上での検知精度が低下した場合にも、他の映像センサCが撮影した映像を用いて人物の識別の精度の低下を抑止できる(図4参照)。
図1の説明に戻る。訓練部15bは、監視範囲R内の人物hを同一時刻に撮影した映像のそれぞれにおける該人物の位置の組み合わせを含む訓練データ14aを生成する。具体的に、図6および図7を参照して、訓練データ14aを生成する処理(以下、事前フェーズとも記す)について説明する。図6および図7は、事前フェーズについて説明するための説明図である。
事前フェーズでは、図6に例示するように、監視範囲R内のある物理位置にいる同一の人物hを同一時刻に複数の映像センサCn(n=1,2)が撮影した各映像n中の人物映像pnのピクセル位置xpnを用いて、訓練部15bが訓練データ14aを生成する。
図6に示す例では、訓練部15bは、訓練データ14aとして、人物映像pnを識別する識別値の組み合わせを表す人物映像ベクトルHp(p1,p2)と、ピクセル位置xpnの組み合わせを表すピクセル位置ベクトルXp(xp1,xp2)とを生成する。なお、一部の映像センサCnの撮影範囲外となり人物映像pnがない映像nに対しては、上記の人物映像ベクトルHpおよびピクセル位置ベクトルXpの成分はnullとする。
さらに、訓練部15bは、図7に例示するように、人物hの物理位置i(i=1〜3)を変えて、各物理位置iにおいて、図6に示す例と同様に訓練データ14aを生成する。その後、訓練部15bは、生成した訓練データ14aを記憶部14に格納する。
このようにして、訓練部15bは、人物hの物理位置に対応する各映像n中の人物映像pnのピクセル位置xpnの組み合わせを用いて訓練データ14aを生成する。なお、後述するように、本実施形態の追跡装置1は、同一の物理位置iに対応する各映像n中の人物映像pnのピクセル位置xpnの組み合わせを用いて、同一人物hに対応する各映像n中の人物映像pnを識別する。したがって、監視範囲R内の可能な限り多数の物理位置iに対応する訓練データ14aが生成されることが望ましい。
例えば、一人の人物を監視範囲R内で移動させながら撮影した映像を用いることにより、物理位置iを変えた訓練データ14aを生成することができる。また、複数の各人物に対応する人物映像pnを特定可能な範囲で、それらの複数の人物を移動させながら同時に撮影した映像を用いれば、効率よく訓練データ14aを生成することができる。
また、訓練部15bは、複数の訓練データ14aの各位置の間の位置を組み合わせて訓練データ14aを生成すなわち内挿する。具体的に、図8を参照して訓練データ14aの内挿について説明する。図8に例示するように、訓練部15bは、上記の手順で生成された物理位置aおよび物理位置bに対応する訓練データ14aを用いて、物理位置aと物理位置bとの間の物理位置abに対応する訓練データ14aを内挿する。
具体的に、物理位置abに対応する訓練データ14aに含まれるピクセル位置xpnabとして、物理位置aに対応する訓練データ14aのピクセル位置xpnaと物理位置bに対応する訓練データ14aのピクセル位置xpnbとの間のピクセル位置が特定される。例えば、直線モデルを採用して、ピクセル位置xpnaとピクセル位置xpnbとの中間の1点のピクセル位置が算出される。この場合、物理位置abに対応する訓練データ14aのピクセル位置ベクトルXp(xp1ab,xp2ab)は、次式(1)を用いて算出される。
このようにして、訓練部15bは、物理位置abに対応して、ピクセル位置ベクトルXpnabおよび人物映像ベクトルHpnabを含む訓練データ14aを内挿する。その後、訓練部15bは、生成(内挿)した訓練データ14aを記憶部14に格納する。
なお、内挿される訓練データ14aは、生成済みの訓練データ14aのピクセル位置の中間の1点に限定されず、細分化した内分比により算出された複数点が内挿されてもよい。例えば、物理位置aと物理位置bとの間を1:1:1に内分する2点の物理位置に対応する2つの訓練データ14aが内挿されてもよい。
また、訓練部15bは、訓練データ14aの各位置の一部を削除して訓練データ14aを生成する。すなわち、訓練部15bは、後述する追跡処理に使用される訓練データ14aを補完する。具体的に、図9を参照して、訓練データ14aの補完について説明する。訓練部15bは、補完する訓練データ14aとして、以下に示すように、サブセットピクセル位置ベクトルおよびサブセット人物映像ベクトルを生成する。
すなわち、訓練部15bは、人物hの物理位置に対応して上記のように生成した訓練データ14aの各映像n(n=1,2,3)中の人物映像pnのピクセル位置xpnの組み合わせを表すピクセル位置ベクトルXp(xp1,xp2,xp3)の成分の一部をnullにする。併せて、人物映像ベクトルHp(p1,p2,p3)の対応する成分をnullにする。
訓練部15bは、図9に例示するように、nullにする成分の組み合わせを変えた複数のベクトルを、サブセット人物映像ベクトルまたはサブセットピクセル位置ベクトルとして生成する。ピクセル位置ベクトルXp(xp1,xp2,xp3)に対するサブセットピクセル位置ベクトルとして、例えば、Xps(xp1,xp2,null)、Xps(null,null,xp3)が生成される。また、対応する人物映像ベクトルHp(p1,p2,p3)に対するサブセット人物映像ベクトルとして、例えば、Hps(p1,p2,null)、Hps(null,null,p3)が生成される。
このようにして、訓練部15bは、訓練データ14aの各ピクセル位置の一部を削除してnullとした訓練データ14aを補完する。その後、訓練部15bは、生成(補完)した訓練データ14aを記憶部14に格納する。
なお、このように補完された訓練データ14aは、後述するように、人物hの物理位置に対応する各映像nのうちの一部で、各種のノイズにより検知されるはずの人物映像pnのピクセル位置xpnが誤検知されたり検知されなかったりした場合に参照される。
図1の説明に戻る。識別部15cは、訓練データ14aが生成された後に取得された複数の映像中の同一時刻における人物の位置の組み合わせのうち、訓練データ14aの位置の組み合わせに類似する組み合わせを同一の人物の位置の組み合わせとして識別する。そして、識別部15cは、識別した同一の人物の位置の組み合わせと、同一の場所から連続する異なる時刻に撮影された各映像中の同一の人物の位置の軌跡とを組み合わせて、該人物の監視範囲Rでの移動軌跡を抽出する(以下、行動フェーズとも記す)。
ここで、図10を参照して、行動フェーズについて説明する。まず、識別部15cは、取得部15aから、監視範囲R内の複数の人物hi(i=1,2,3)を同時に撮影した複数の映像n中の各人物映像inのピクセル位置xinを取得する。そして、識別部15cは、図10に例示するように、同一時刻における映像nごとに一つの人物映像inを選択して組み合わせて、人物映像ベクトルHb(i1,…,in,…,iN)を生成する。併せて、識別部15cは、人物映像ベクトルの各人物映像inに対応するピクセル位置xinを組み合わせて、ピクセル位置ベクトルXb(xi1,…,xin,…,xiN)を生成する。ここで、Nは映像センサCの数を表し、図10に示す例では、N=2である。
図10には、人物映像ベクトルとして、例えばHb(11,12)、Hb(11,22)、Hb(11,nd)等が生成されることが示されている。また、ピクセル位置ベクトルとして、各人物映像ベクトルに対応して、例えばxb(x11,x12)、xb(x11,x22)、xb(x11,xnd)等が生成されることが示されている。なお、図10に示す例において、人物映像ベクトルの成分のndと、ピクセル位置ベクトルの成分のxndとは、いずれもnullを意味する。
次に、識別部15cは、記憶部14の訓練データ14aを参照し、訓練データ14aのピクセル位置ベクトルXp(xp1,xp2)に類似するピクセル位置ベクトルXbを同一人物のピクセル位置ベクトルと識別する。すなわち、識別部15cは、訓練データ14aのピクセル位置ベクトルXp(xp1,xp2)の各成分の近傍のピクセル位置を成分とするピクセル位置ベクトルXbを、同一人物のピクセル位置の組み合わせと識別する。また、識別部15cは、同一人物のものと識別したピクセル位置ベクトルと対応する人物映像ベクトルとに共通の識別情報を付与する。
図10に示す例では、例えば、ピクセル位置ベクトルXb(x11,x22)が、ある訓練データ#1のピクセル位置ベクトルの近傍であって、映像1のピクセル位置x11と映像2のピクセル位置x22とが同一人物の位置であると識別されている。そして、このピクセル位置ベクトルXb(x11,x22)と対応する人物映像ベクトルHb(11,22)とに、識別情報として共通人物ID:1cが付与されている。
また、ピクセル位置ベクトルXb(x21,x12)が、他の訓練データ#2の位置ベクトルの近傍であって、映像1のピクセル位置x21と映像2のピクセル位置x12とが同一人物の位置であると識別されている。そして、このピクセル位置ベクトルXb(x21,x12)と対応する人物映像ベクトルHb(21,12)とに共通人物ID:2cが付与されている。
また、ピクセル位置ベクトルXb(xnd,x32)が、他の訓練データ#3の位置ベクトルの近傍であって、映像2のピクセル位置x32の人物映像32の人物が映像1に映っていないことが識別されている。そして、このピクセル位置ベクトルXb(xnd,x32)と対応する人物映像ベクトルHb(nd,32)とに共通人物ID:3cが付与されている。
なお、近傍とは、例えば、ピクセル平面上の距離が所定の閾値以下の場合を意味する。この閾値を映像センサCと人物hとの距離に応じて傾斜をつけて設定することにより、さらに識別部15cの処理の精度が向上する。
また、識別部15cは、上記の処理を所定の間隔で連続する時刻ごとに行う。その際、識別部15cは、同一の場所から撮影された映像中の同一の人物の位置の軌跡すなわち移動軌跡の情報と組み合わせることにより、付与した識別情報の人物ごとの監視範囲Rでの移動軌跡を抽出する。すなわち、識別情報は、連続する時刻間で共通に付与される。具体的に、ある時刻t0と連続する直後の時刻t1とにおいて、人物映像ベクトルの成分が等しい場合に、同一の人物の識別情報が付与される。
これにより、また、上記のサブセットピクセル位置ベクトルおよびサブセット人物映像ベクトルを用いて、識別部15cは、各種のノイズにより検知されるはずの人物映像xpのピクセル位置xpnが誤検知されたり検知されなかったりした場合にも、同一人物を識別できる。
ここで、ノイズとして、例えば、明るさや移動速度等の影響により、別の物体が人物として誤検知される場合がある。また、例えば、一部の映像の画角より見切れる人物がいる場合がある。あるいは、人物どうしのすれちがいや柱や設備等の陰になる等、障害物に一時的に隠される場合がある。
これらのノイズにより生じる現象は、次の3つの場合に分類できる。一つ目に、ある時点まで検知されていた人物映像が検知されなくなり映像から消える場合がある。二つ目に、ある時点で人物映像の識別情報が入れ替わる場合がある。三つ目に、ある時点まで検知されなかった人物映像が検知され人物映像が増える場合がある。
これらのノイズによる現象に対する対処について、図11〜図13を参照して説明する。図11〜図13には、一人の人物を3つの映像センサCで時刻t0に撮影した3つの映像と、時刻t1に撮影した3つの映像とが例示されている。
まず、図11は、一つ目の現象に対する対処について説明するための説明図である。図11には、時刻t0では検知されていた映像2のピクセル位置x2(t0)の人物映像の人物が、時刻t1に検知されない場合が例示されている。
ここで、映像1のピクセル位置x1(t0)の人物映像1(t0)とピクセル位置x1(t1)人物映像1(t1)とは同一人物を表す同一の識別値をもつ。また、映像3のピクセル位置x3(t0)人物映像3(t0)とピクセル位置x3(t1)人物映像3(t1)とは同一人物を表す同一の識別値をもつ。一方、映像2において、ピクセル位置x2(t0)に人物映像2(t0)は存在するものの、この人物の時刻t1における人物映像2(t1)は存在しない。
この場合に、時刻t0のピクセル位置ベクトルXb(x1(t0),x2(t0),x3(t0))の近傍には、訓練データ14a中のピクセル位置ベクトルXp(xp1,xp2,xp3)が存在する。そこで、識別部15cは、対応する時刻t0の人物映像ベクトルHb(1(t0),2(t0),3(t0))に共通人物ID:icを付与する。
一方、時刻t1のピクセル位置ベクトルxb(x1(t1),null,x3(t1))の近傍には、訓練データ14a中のサブセットピクセル位置ベクトルXps(xp1,null,xp3)が存在する。したがって、対応する時刻t1の人物映像ベクトルHb(1(t1),null,3(t1))に、成分が同一であることから時刻t0の人物映像ベクトルと同一の共通人物ID:icが付与される。このようにして、識別部15cは同一人物の移動軌跡を追跡することが可能となる。
図12は、二つ目の現象に対する対処について説明するための説明図である。図12には、時刻t0において映像2のピクセル位置x2(t0)で検知された人物映像の人物が、時刻t1には本来のピクセル位置x2’(t1)がピクセル位置x2(t1)と入れ替わった場合が例示されている。例えば、人物どうしまたは人物と物体とが交差して誤検知された場合等が該当する。
ここで、映像1のピクセル位置x1(t0)の人物映像1(t0)とピクセル位置x1(t1)の人物映像1(t1)とは同一人物を表す同一の識別値をもつ。また、映像3のピクセル位置x3(t0)の人物映像3(t0)とピクセル位置x3(t1)の人物映像3(t1)とは同一人物を表す同一の識別値をもつ。一方、映像2において、時刻t0にはピクセル位置x2(t0)に人物映像2(t0)が存在するが、時刻t1にはこの人物の人物映像2(t1)は存在しない。また、時刻t1にピクセル位置x2’(t1)に人物映像2’(t1)が存在するが、時刻t0にはこの人物の人物映像2’(t0)は存在しない。
この場合に、時刻t0のピクセル位置ベクトルXb(x1(t0),x2(t0),x3(t0))に対しては、近傍の訓練データ14aのピクセル位置ベクトルXp(xp1,xp2,xp3)が存在する。そこで、識別部15は、対応する時刻t0の人物映像ベクトルHb(1(t0),2(t0),3(t0))に共通人物ID:icを付与する。
また、時刻t1のピクセル位置ベクトルXb(x1(t1),x2’(t1),x3(t1))の近傍にも、訓練データ14aのピクセル位置ベクトルXp(xp1,xp2,xp3)が存在する。したがって、対応する時刻t1の人物映像ベクトルHb(1(t1),2’(t1),3(t1))に、成分が同一であることから時刻t0の人物映像ベクトルと同一の共通人物ID:icが付与される。このようにして、識別部15cは同一人物の移動軌跡を追跡することが可能となる。
図13は、三つ目の現象に対する対処について説明するための説明図である。図13には、時刻t0に映像2で検知されていない人物が、時刻t1にピクセル位置x2(t1)の人物映像として検知された場合が例示されている。
ここで、映像1のピクセル位置x1(t0)の人物映像1(t0)とピクセル位置x1(t1)の人物映像1(t1)とは同一人物を表す同一の識別値をもつ。また、映像3のピクセル位置x3(t0)の人物映像3(t0)とピクセル位置x3(t1)の人物映像3(t1)とは同一人物を表す同一の識別値をもつ。一方、映像2において、ピクセル位置x2(t1)に人物映像2(t1)が存在するが、時刻t0にはこの人物の人物映像2(t0)は存在しない。
この場合に、時刻t0のピクセル位置ベクトルXb(x1(t0),null,x3(t0))の近傍には、訓練データ14aのピクセル位置ベクトルXp(xp1,xp2,xp3)のサブセットピクセル位置ベクトルXps(xp1,null,xp3)が存在する。そこで、識別部15cは、対応する時刻t0の人物映像ベクトルHb(1(t0),null,3(t0))に共通人物ID:icを付与する。
一方、時刻t1のピクセル位置ベクトルXb(x1(t1),x2(t1),x3(t1))の近傍には、訓練データ14aのピクセル位置ベクトルXp(xp1,xp2,xp3)が存在する。したがって、対応する時刻t1の人物映像ベクトルHb(1(t1),2(t1),3(t1))に、成分が同一であることから時刻t0の人物映像ベクトルと同一の共通人物ID:icが付与される。このようにして、識別部15cは同一人物の移動軌跡を追跡することが可能となる。
なお、識別部15cは、識別した人物の識別情報を出力部12に出力する。図14は、出力部12に出力される画面例を示す図である。識別部15cは、例えば、図14に例示するように、各映像センサCによる映像に、識別した人物の位置に重畳してこの人物の識別情報を表示するように制御する。図14に示す例では、例えば、識別情報として、共通人物ID:1cが付与された人物と2cが付与された人物とが、映像1および映像2の双方に表示されている。一方、共通人物ID:3cが付与された人物は映像2にのみ表示されている。このように人物が識別されて表示されることにより、例えば、関係者以外は立ち入り禁止の区域を監視する管理者等の利用者の利便性が向上する。
さらに、識別部15cは、例えば、別途管理されている監視範囲R内に入ることが可能な人物リスト等を利用することにより、識別した人物を特定することも可能である。
[追跡処理]
次に、図15を参照して、本実施形態に係る追跡装置1による追跡処理について説明する。図15は、追跡処理手順を示すフローチャートである。図15のフローチャートは、例えば、追跡処理の開始を指示する操作入力があったタイミングで開始される。
取得部15aが、所定の監視範囲R内を同一時刻に異なる場所から撮影した複数の映像を取得して、映像中の人物映像を検知してその位置を抽出する(ステップS1)。また、訓練部15bが、監視範囲R内の人物の人物映像のそれぞれの位置の組み合わせを含む訓練データ14aを生成し(ステップS2)、記憶部14に格納する。
次に、取得部15aが、訓練データ14aが生成された後の監視範囲R内の複数の人物を同一時刻に異なる場所から撮影した複数の映像を取得して、映像中の人物映像を検知して各位置を抽出する(ステップS3)。
次に、識別部15cが、取得された複数の映像中の人物の位置の組み合わせのうち、訓練データ14aの位置の組み合わせに類似する組み合わせを同一の人物の位置の組み合わせとして識別して、各人物映像に識別情報を付与する(ステップS4)。また、識別部15cは、ステップS3〜ステップS4の処理を所定の間隔で連続する時刻ごとに行う。その際、識別部15cは、同一の場所から撮影された映像中の同一の人物の位置の軌跡すなわち移動軌跡の情報と組み合わせることにより、付与した識別情報の人物ごとの監視範囲Rでの移動軌跡を抽出する。これにより、一連の追跡処理が終了する。
以上、説明したように、本実施形態の追跡装置1において、取得部15aが、所定の監視範囲R内を同時に異なる場所から撮影した複数の映像を取得する。また、訓練部15bが、監視範囲R内の人物を同一時刻に撮影した複数の映像のそれぞれにおける該人物の位置の組み合わせを含む訓練データ14aを生成する。また、識別部15cが、訓練データ14aが生成された後に取得された複数の映像中の同一時刻における人物の位置の組み合わせのうち、訓練データ14aの位置の組み合わせに類似する組み合わせを同一の人物の位置の組み合わせとして識別する。そして、識別部15cが、識別した同一の人物の位置の組み合わせと、同一の場所から連続する異なる時刻に撮影された各映像中の同一の人物の位置の軌跡とを組み合わせて、該人物の監視範囲Rでの移動軌跡を抽出する。
これにより、特徴を抽出したり比較したりする処理や、ステレオマッチングが不要となり、人物を識別する処理が簡易になる。また、キャリブレーションが不要となるので、その設定や運用のためのコストが低減して、容易に人物の位置と人物IDとを取得できる。このように、多視点から撮影された映像から簡易に人物を識別して移動軌跡を抽出することができる。
また、訓練部15bは、複数の訓練データ14aの各位置の間の位置を組み合わせて訓練データを内挿する。これにより、容易に多数の訓練データ14aを生成して、人物の識別の精度を向上させることができる。
また、訓練部15bは、訓練データ14aの各位置の一部を削除した訓練データ14aを補完する。これにより、例えば、映像中の人物の検知精度の限界や障害物の存在により、一部の映像で人物を検知できなかった場合等にも、ノイズの影響を抑止して人物の追跡を継続することができる。
また、取得部15aは、監視範囲R内の人物を、該人物に対する撮影方向および該人物までの距離が異なる複数の場所から撮影した映像を取得する。これにより、各映像センサCの撮影範囲が重複する範囲ができ、重複範囲にいる人物を複数の映像センサCで撮影した複数の映像を取得できる。また、一部の映像センサCと人物との間に障害物があり映像上で人物の追跡が困難な場合にも、他の映像センサCが撮影した映像を用いて人物の検知の精度の低下を抑止できる。また、例えば、一部の映像センサCからの距離が近すぎて映像上でこの人物の移動速度が大きくなり、この人物の映像上での検知精度が低下した場合にも、他の映像センサCが撮影した映像を用いて人物の識別の精度の低下を抑止できる。反対に、一部の映像センサCからの距離が遠すぎて映像上での人物の移動速度が小さくなり、この人物の映像上での検知精度が低下した場合にも、他の映像センサCが撮影した映像を用いて人物の識別の精度の低下を抑止できる。このように、確度高く人物を識別することが可能となる。
また、識別部15cは、識別した人物の識別情報を出力部12に出力する。例えば、識別した人物の位置に重畳してこの人物の識別情報を表示するように制御する。これにより、例えば、関係者以外は立ち入り禁止の区域を監視する管理者等の利用者の利便性が向上する。
[プログラム]
上記実施形態に係る追跡装置1が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、追跡装置1は、パッケージソフトウェアやオンラインソフトウェアとして上記の追跡処理を実行する追跡プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の追跡プログラムを情報処理装置に実行させることにより、情報処理装置を追跡装置1として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末、さらには、PDA(Personal Digital Assistants)などのスレート端末などがその範疇に含まれる。また、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の追跡処理に関するサービスを提供するサーバ装置として実装することもできる。例えば、追跡装置1は、所定の監視範囲内を撮影した複数の映像を入力とし、識別された人物の位置と識別情報とを出力する追跡処理サービスを提供するサーバ装置として実装される。この場合、追跡装置1は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の追跡処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。以下に、追跡装置1と同様の機能を実現する追跡プログラムを実行するコンピュータの一例を説明する。
図16に示すように、追跡プログラムを実行するコンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
ここで、図16に示すように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ1031やメモリ1010に記憶される。
また、追跡プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した追跡装置1が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
また、追跡プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、追跡プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、支援プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。