動線編集装置,方法及びプログラム
【課題】簡単な作業により複数の動線を1本の動線に連結できるようにする。
【解決手段】動線データベースに記憶された動線データの中から、第1の動線データが選択入力されると、その動線データの終点位置を検出し、動線データ毎に、その動線データの始点位置から第1の動線データの終点位置までの距離を算出する。その結果、算出された距離が予め設定された閾値以内である動線データを第1の動線データと連結される第2の動線データの候補としてリストアップし、リストアップされた動線データの中から第2の動線データの選択入力を受付ける。かくして、第1の動線データと第2の動線データとが選択されると、第1の動線データの始点から第2の動線データの終点までの軌跡を示す動線データを生成するようにしたものである。
【解決手段】動線データベースに記憶された動線データの中から、第1の動線データが選択入力されると、その動線データの終点位置を検出し、動線データ毎に、その動線データの始点位置から第1の動線データの終点位置までの距離を算出する。その結果、算出された距離が予め設定された閾値以内である動線データを第1の動線データと連結される第2の動線データの候補としてリストアップし、リストアップされた動線データの中から第2の動線データの選択入力を受付ける。かくして、第1の動線データと第2の動線データとが選択されると、第1の動線データの始点から第2の動線データの終点までの軌跡を示す動線データを生成するようにしたものである。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、監視領域内を移動する人物等の移動体の移動経路を示す動線を編集する動線編集装置及びその方法並びにコンピュータ読取り可能なプログラムに関する。
【背景技術】
【0002】
従来より、複数のカメラでそれぞれ撮影された複数のカメラ画像データを画像処理して人物等の移動体を特定し、この移動体の追跡を行って、移動体の位置座標データに、移動体の識別情報と時間情報とを紐付けした動線データを作成するシステムは、既に知られている。このようなシステムで作成された時系列の動線データをコンピュータが取込み、データ処理を行って、ディスプレイの画面に所望する移動体の動線を再生表示する技術がある。このような動線表示技術をコンビニエンスストア等の店舗に適用することによって、顧客の動線を把握することができる(例えば、特許文献1参照)。
【特許文献1】特開2006-350751号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、例えば店舗内には商品陳列棚等が置かれているため、人が棚の陰に隠れてしまったり、複数の人が重なってしまったりして、カメラ画像では途中で追跡できなくなる場合があった。このような場合、従来の動線データ生成システムでは、途絶える前までの移動体の軌跡と途絶えた後の移動体の軌跡とが別々の動線として管理されるため、例えば入店した人物が店舗内を回り、会計カウンタで会計を済ませて出店するまでを1本の動線で結ぶことはできないのが実情であった。
【0004】
本発明はこのような事情に基づいてなされたもので、その目的とするところは、簡単な作業により複数の動線を1本の動線に連結することができる動線編集装置、及びその方法、並びにコンピュータを本発明の動線編集装置として機能させるための動線編集プログラムを提供しようとするものである。
【課題を解決するための手段】
【0005】
本発明は、監視領域内を移動する複数の移動体それぞれの始点から終点までの軌跡を示す動線データを記憶する動線データベースに記憶された動線データの中から、第1の動線データが選択入力されると、その動線データの終点位置を検出する。そして、動線データベースに記憶された動線データ毎に、その動線データの始点位置から第1の動線データの終点位置までの距離を算出する。その結果、算出された距離が予め設定された閾値以内である動線データを第1の動線データと連結される第2の動線データの候補としてリストアップし、リストアップされた動線データの中から第2の動線データの選択入力を受付ける。かくして、第1の動線データと第2の動線データとが選択されると、第1の動線データの始点から第2の動線データの終点までの軌跡を示す動線データを生成するようにしたものである。
【発明の効果】
【0006】
かかる手段を講じた本発明によれば、簡単な作業により複数の動線を1本の動線に連結することができ、分断された移動体の軌跡を完全なものに容易に復元することができる効果を奏し得る。
【発明を実施するための最良の形態】
【0007】
以下、本発明を実施するための最良の形態について、図面を用いて説明する。
なお、この実施の形態は、コンビニエンスストア等の店舗において、周知の動線データ生成システム10により生成された動線データ(以下、動線生データと称する)を基に移動体である人物(客)の動線を編集する動線編集装置20に、本発明を適用した場合である。
【0008】
図1は本実施の形態のシステム構成を示すブロック図である。このシステムは、動線監視対象の施設、すなわち店舗内を撮影するための複数台(本実施の形態では6台)のカメラCA1〜CA6と、各カメラCA1〜CA6によってそれぞれ撮影されたカメラ画像データを画像処理して人物を特定し、この人物の追跡を行って、人物毎の動線データを生成する周知の動線データ生成システム10と、本発明に関わる動線編集装置20とから構成されている。
【0009】
各カメラCA1〜CA6は、図2の店舗内レイアウト図に示すように、店舗内中央部の天井に1台(CA1)、POS(Point Of Sales)端末P1,P2が置かれている会計カウンタCH近傍の天井に2台(CA2,CA3)、会計カウンタCHに対して店内奥側及び左右壁側の計3箇所の天井に3台(CA4,CA5,CA6)が取り付けられている。このうち、カメラCA1,CA2,CA3は魚眼カメラであり、カメラCA4,C5,CA6は全方位カメラである。
【0010】
このように配置された6台のカメラCA1〜CA6でそれぞれ撮影されたカメラ画像データにより、動線データ生成システム10は、店舗の入退場口IN/OUTから入店した人物を移動体のターゲットとして検出し、店舗内を移動する各ターゲットを個別に追跡して、そのターゲットの移動経路に沿った動線データを生成するものである。ただし、店舗内には商品陳列棚R等が置かれているため、人が棚の陰に隠れてしまったり、複数の人が重なってしまったりして、カメラ画像では途中で追跡できなくなる場合がある。
【0011】
動線データ生成システム10は、同一時刻に撮影された複数のカメラ画像データから新たなターゲット(移動体)を検出する毎に、そのターゲットに固有の識別子であるターゲットIDを付して追跡し、追跡が途絶えるまでを1本の動線データとして生成している。このため、同一人物に対して複数の動線データが生成される場合がある。動線編集装置20は、同一人物に対して生成された複数の動線データを抽出し、入店から出店までを結んだ完全動線を編集するためのコンピュータ機器である。別の言い方をすると、上記完全動線を編集するためのプログラムを実装したコンピュータである。
【0012】
なお、本実施の形態では、説明の便宜上、動線データ生成システム10で検出されたターゲットに付与されるターゲットIDは、“0”から1ずつ昇順に繰り上がる連続番号とする。
【0013】
動線編集装置20は、図1に示すように、動線データ生成システム10からデータを受信するインターフェイス機能を有したデータ受信部21、大容量の記憶部22、操作入力部23、画面表示部24、及びこれらを制御する制御部25等を備えている。記憶部22としては、例えばハードディスクやフラッシュメモリ等の不揮発性記憶媒体を用いている。操作入力部23としては、キーボード,マウス等の入力デバイスを用いている。画面表示部24としては、液晶ディスプレイ,有機ELディスプレイ等を用いている。制御部25は、CPU,ROM及びRAMのコンピュータ部品を主体に構成したものである。
【0014】
記憶部22には、特に動線生データベース31、カメラ画像データベース32、動線データベース33、設定データベース34、カメラパラメータデータベース35、店内エリア定義データベース36及び店内マップデータベース37を形成している。なお、記憶部22は、動線編集装置20に内蔵されていてもよいし、外付けされていてもよい。また、例えば後述する動線編集処理を開始する前に予め記憶しておく、もしくは処理の途中で追記される動線データベース33、設定データベース34、カメラパラメータデータベース35及び店内エリア定義データベース36については内蔵の記憶部で記憶し、動線編集処理を開始するに先立って動線データ生成システム10から取り込む必要がある動線生データベース31及びカメラ画像データベース32は、外付けの記憶部に記憶するようにしてもよい。
【0015】
動線生データベース31には、動線データ生成システム10で順次生成される動線生データが時系列に記憶される。動線生データベース31に記憶される動線生データのデータ構造を図3に示す。図示するように動線生データベース31には、動線データ生成システム10においてカメラ画像の1フレーム毎に生成される動線生データ(フレーム別動線生データ)が順次蓄積される。本実施の形態では1フレーム毎に生成される動線データは1/15秒毎の動線データとなる。なお、1フレームの間隔は変更が可能であり、より詳細な動線データが必要であれば1フレームの間隔を1/30秒毎等とすれば良いし、動線生データベース31のファイル容量を小さくする必要があれば1フレームの間隔を1/10秒毎等とすれば良い。
【0016】
ここで、1フレーム単位の動線生データブロックには、6台のカメラCA1〜CA6で撮影された同時点の各フレーム画像を保存したカメラ画像ファイルのファイル名、各フレーム画像をそれぞれ特定するオフセット値、各フレームの撮影日時情報、各フレーム画像の画像処理によって移動体として検出された人物すなわちターゲットの数及びそのターゲット数分のターゲット情報(ID,X,Y,H)が記憶される。
【0017】
ターゲット情報には、ターゲットを識別するためのターゲットID(識別子)と、そのターゲットの店舗内の位置を三次元の世界座標系で示す店舗内座標(X,Y,H)とが含まれる。本実施の形態では、図2の店内レイアウト図において、左奥の角をX軸及びY軸の原点(0,0)とし、その床面をH(Height)軸の原点としている。
【0018】
カメラ画像データベース32には、6台のカメラCA1〜CA6で撮影された同時点の各フレーム画像を記憶したカメラ画像ファイルのデータが順次蓄積記憶される。
【0019】
動線データベース33には、動線生データベース31に記憶された動線生データに基づいてターゲット毎に生成される動線データが記憶される。動線データの主要なデータ構造を図4に示す。図示するように、動線データは、固有の動線IDと、この動線IDで特定される動線の開始位置である始点を示す二次元座標(X0.Y0)と、同動線の終了位置である終点を示す二次元座標(Xn.Yn)と、同動線に関わる画像フレーム時間単位のインデックス情報と、状態ステータス,無効化ステータス及び部分動線ステータスと、[起点],[前連結ID],及び[後連結ID]の各定義情報とで構成される。インデックス情報には、店舗内座標(X,Y,H)と、画像フレームの撮影日時情報Tと、変化点フラグFとが含まれる。
【0020】
なお、状態ステータス,無効化ステータス,部分動線ステータス,各種定義情報及び変化点フラグFについては後述する。
【0021】
設定データベース34には、動線編集作業に必要な種々の設定データが予め格納されている。
【0022】
カメラパラメータデータベース35には、魚眼カメラCA1〜CA3に関する種々のパラメータデータと、全方位カメラCA4〜CA6に関する種々のパラメータデータとが予め格納されている。
【0023】
店内エリア定義データベース36には、店舗内のエリアを定義するためのデータが予め格納されている。本実施の形態では、図2のレイアウト図において、入退場口IN/OUTより店内側の図中破線で囲われた矩形の領域を入口エリアと設定し、この入口エリア内の二次元座標(X,Y)が入口エリア定義データとして記憶されている。また、客が買い回りすることができない店内の商品陳列棚設置エリアと会計カウンタCHより内側のエリアを無効エリアと設定し、この無効エリア内の二次元座標(X,Y)が無効エリア定義データとして記憶されている。さらに、入口エリアと無効エリアとを除く店内のエリア、つまり買物をする客が移動し得るエリアを監視対象の領域である店内エリアと設定し、この店内エリア内の二次元座標(X,Y)が店内エリア定義データとして記憶されている。因みに、無効エリアに対して残りの入口エリアと店内エリアは、ターゲットである客が存在し得る有効領域として区分される。
【0024】
店内マップデータベース37には、図2に示すレイアウト図と同様の店内マップ平面図のイメージデータが予め格納されている。
【0025】
かかる構成の動線編集装置20を用いて動線の編集作業を行うオペレータは、作業に先立ち動線データ生成システム10から作業対象である動線生データとその動線生データを生成するために用いたカメラ画像データとをデータ受信部21を介して取込む。そして、動線生データベース31とカメラ画像データベース32とにそれぞれ保存する。この状態で、操作入力部23を操作して、動線編集業務の開始を指令する。すると、動線編集プログラムが起動する。動線編集プログラムは、予め記憶部22にインストールされている。
【0026】
動線編集プログラムが起動すると、制御部25は、このプログラムに従い図6の流れ図に示す手順で各部を制御する。先ず、ST(ステップ)1として動線編集画面40を画面表示部24に表示させる。
【0027】
動線編集画面40の一レイアウト例を図5に示す。図示するように、動線編集画面40は、動線編集部41と、カメラ画像表示部42と、動線リスト表示部43と、座標表示部44とに区分されている。
【0028】
動線編集部41には、店内マップデータベース37に記憶されているイメージデータにより店内マップの平面図が表示される。また、スクロールバー45を画面に向かって左端から右端にスライドさせることによりカメラ画像の撮影時間が経過し、その時間に撮影されたカメラ画像から検出されたターゲットの動線が該店内マップに重ねて表示される。
【0029】
カメラ画像表示部42には、各カメラCA1〜CA6で撮影された画像が表示される。図示するように、6個のカメラ画像を並べて同時に表示することもできるし、その中から選択された1乃至複数のカメラ画像を拡大して表示することもできる。
【0030】
動線編集画面40を表示した後、制御部25は、ST2として動線データ作成処理を実行する。この作成処理の処理手順は、図7の流れ図によって示される。すなわち制御部25は、先ず、ST31として動線データベース33をクリアする。次に、ST32として番号カウンタのカウント値Nを“0”に初期設定する。この初期設定値“0”は、動線データ生成システム10において、新たなターゲットを検出する毎に付与されるターゲットIDの初期値である。
【0031】
番号カウンタのカウント値Nを“0”に初期設定した後、制御部25は、ST33として動線生データベース31を検索する。そして、ST34として各フレーム別動線生データの中からターゲットIDが番号カウンタのカウント値Nと一致するターゲット情報(ID,X,Y,H等)を有する動線生データを検出する。
【0032】
ターゲットIDが“N”のターゲット情報を有するフレーム別動線生データを1つでも検出できた場合には、制御部25は、ST35としてそのターゲットIDを動線IDとする動線編集レコード(動線データ)を生成する。そしてこの動線編集レコードに、ターゲットIDが“N”のターゲット情報を有するフレーム別動線生データの中で、フレーム日時情報が最も古い動線生データに記憶されている当該ターゲット情報の店舗内二次元座標(X,Y)を始点座標(X0,Y0)としてセットする。また、フレーム日時情報が最も新しいフレーム別動線生データに記憶されている当該ターゲット情報の店舗内二次元座標(X,Y)を終点座標(Xn,Yn)としてセットする。さらに、検出された全てのフレーム別動線生データからターゲットIDが“N”のターゲット情報をすべて抽出し、これらのターゲット情報の店舗内座標(X,Y,H)と、フレーム日時情報Tとを、動線インデックス情報として日時の古い順に動線編集レコードにセットする。
【0033】
こうして、動線IDが“N”の動線編集レコードを作成したならば、制御部25は、ST36としてこの動線編集レコードを動線データベース33に追加する。しかる後、ST37として番号カウンタを“1”だけカウントアップしたならば、ST33〜ST37の処理を再度実行する。以後、ターゲットIDが“N”のターゲット情報(ID,X,Y,H等)を有する動線生データを検出できなくなるまで、この処理を繰り返す。すなわち、動線生データベース31のフレーム別動線生データを基に、動線IDが1ずつ昇順する動線編集レコードを順次生成して、動線データベース33に追加する処理を繰り返す。
【0034】
ST34にてターゲットIDが“N”のターゲット情報を有する動線生データを検出できなかったならば、制御部25は、ST38として番号カウンタのカウント値Nから“1”を減算した値(N−1)を最終動線IDとしてメモリに記憶して、この動線データ作成処理を終了する。
【0035】
動線データ作成処理を終了すると、制御部25は、次に、ST3として動線の状態定義処理を実行する。この状態定義処理の処理手順は、図8の流れ図によって示される。すなわち制御部25は、動線データベース33から動線編集レコードを1データずつ抽出する。そして、動線編集レコードを抽出する毎に、以下の処理を実行する。
【0036】
先ず、ST41として抽出した動線編集レコードから動線始点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線始点座標が入口エリア定義データとして設定された座標であるか否かを判断する。入口エリア定義データの座標であった場合には、制御部25は、ST42として同動線編集レコードから動線終点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線終点座標も入口エリア定義データとして設定された座標か否かを判断する。
【0037】
動線終点座標も入口エリア定義データの座標であった場合には、制御部25は、ST43として同動線編集レコードの動線インデックス情報を日時の古い順に調べる。そして、入口エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を検出したならば、この動線編集レコードに対応するターゲットは、入口エリアから少なくとも一度出て、その後、再び入口エリアに戻ったので、この動線編集レコードの状態ステータスを「入口→入口」に設定する。これに対し、入口エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を1つも検出しなかった場合には、この動線編集レコードに対応するターゲットは、入口エリアから一度も出なかったので、この動線編集レコードの状態ステータスを「入口」に設定する。
【0038】
一方、ST42にて動線終点座標が入口エリア定義データの座標でなかった場合、すなわち店内エリア定義データまたは無効エリア定義データの座標である場合には、制御部25は、この動線編集レコードの状態ステータスを「入口→店内」に設定する。
【0039】
一方、ST41にて動線始点座標が入口エリア定義データとして設定された座標でなかった場合には、制御部25は、ST44としてこの動線始点座標が店内エリア定義データとして設定された座標であるか無効エリア定義データとして設定された座標であるかを判断する。無効エリア定義データの座標であった場合には、ST45として同動線編集レコードから動線終点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線終点座標が無効エリア定義データとして設定された座標か否かを判断する。
【0040】
動線終点座標が無効エリア定義データの座標であった場合には、制御部25は、ST46として同動線編集レコードの動線インデックス情報を日時の古い順に調べる。そして、無効エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を1つも検出しなかった場合には、この動線編集レコードに対応するターゲットは、無効エリアから一度も出なかったので、この動線編集レコードの状態ステータスを「無効」に設定する。これに対し、無効エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を検出したならば、この動線編集レコードに対応するターゲットは、無効エリアから少なくとも一度出て、その後、再び無効エリアに戻ったので、この動線編集レコードの状態ステータスを「店内→店内」に設定する。
【0041】
一方、ST45にて動線終点座標が無効エリア定義データの座標でなかった場合には、制御部25は、ST47にて店内エリア定義データベース36を参照してこの動線終点座標が店内エリア定義データとして設定された座標か否かを判断する。
【0042】
動線終点座標が店内エリア定義データの座標であった場合には、この動線編集レコードの状態ステータスを「店内→店内」に設定する。これに対し、店内エリア定義データの座標でなかった場合、すなわち、入口エリア定義データの座標である場合には、同状態ステータスを「店内→入口」に設定する。
【0043】
一方、ST44にて動線始点座標が無効エリア定義データの座標でなかった場合、すなわち、店内エリア定義データの座標であった場合には、制御部25は、ST48として同動線編集レコードから動線終点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線終点座標が入口エリア定義データとして設定された座標か否かを判断する。
【0044】
動線終点座標が入口エリア定義データの座標であった場合には、この動線編集レコードの状態ステータスを「店内→入口」に設定する。これに対し、入口エリア定義データの座標でなかった場合、すなわち、店内エリア定義データまたは無効エリア定義データの座標である場合には、同状態ステータスを「店内→店内」に設定する。
【0045】
制御部25は、動線データベース33の全ての動線編集レコードについて上記処理を実行する。こうして、全ての動線編集レコードに対して、「入口→入口」,「入口」,「入口→店内」,「店内→入口」,「店内→店内」,「無効」のなかのいずれかの状態ステータスを設定したならば、この状態定義処理を終了する(動線状態判定手段)。
【0046】
動線の状態定義処理を終了すると、制御部25は、次に、ST4として動線の無効化処理を実行する。この無効化処理の処理手順は、図9の流れ図によって示される。すなわち制御部25は、設定データベース34から無効化条件の設定データを取得する。無効化条件には、動線の開始または終了位置が無効エリアに存在する動線を無効化する条件、いわゆる領域条件と、動線の追跡時間が予め設定された閾値以下の動線を無効化する条件、いわゆる時間条件とがある。そして、これらの条件を有効とするか否かは、予めオペレータによって選択され、設定データベース34に設定されている。
【0047】
無効化条件設定データを取得した制御部25は、先ず、ST51として領域条件がオン(有効)かオフ(無効)かを判断する。領域条件がオンの場合には、動線データベース33の動線編集レコードを1データずつ抽出して、その状態ステータスを調べる。そして、状態ステータスが「無効」であったならば、その動線編集レコードの無効化ステータスを「オン」にして動線データベース33に戻す。すなわち、当該動線編集レコードを無効化する。因みに、無効化された動線編集レコードは、この後の編集処理において処理されることはない。状態ステータスが「無効」でなかった場合には、無効化ステータスを「オフ」のまま動線データベース33に戻す。
【0048】
動線データベース33の全ての動線編集レコードの状態ステータスを調べ終えるか、領域条件がオフであった場合には、制御部51は、ST52として時間条件がオン(有効)かオフ(無効)かを判断する。時間条件がオンの場合には、動線データベース33の動線編集レコードを1データずつ抽出して動線追跡時間を算出する。すなわち、この動線編集レコードの先頭の動線インデックス情報のフレーム日時情報Tから最終の動線インデックス情報のフレーム日時情報Tまでの経過時間を算出する。そして、この動線追跡時間がオペレータによって予め設定データベース34に設定された閾値以下であるか否かを判断する。そして、動線追跡時間が閾値以下であった場合には、その動線編集レコードの無効化ステータスを「オン」にして動線データベース33に戻す。閾値より長い場合には、無効化ステータスを「オフ」のまま動線データベース33に戻す。
【0049】
動線データベース33の全ての動線編集レコードの動線追跡時間を調べ終えるか、時間条件がオフであった場合には、この無効化処理を終了する。
【0050】
動線の無効化処理が終了すると、制御部25は、次に、ST5として動線の分割処理を実行する。この分割処理の処理手順は、図10の流れ図によって示される。すなわち制御部25は、動線データベース33から無効化ステータスが「オン」でない動線編集レコードを1データずつ抽出する。そして、抽出する毎に、以下の処理を実行する。
【0051】
先ず、ST61として動線追跡処理を実行する。すなわち、動線インデックス情報をフレーム日時の古い順に取得し、その三次元座標が、店内エリア定義データベース36において、入口エリア定義データまたは店内エリア定義データとして設定された座標から無効エリア定義データとして設定された座標に変化した動線インデックス情報、または無効エリア定義データとして設定された座標から入口エリア定義データまたは店内エリア定義データとして設定された座標に変化した動線インデックス情報を検出する。そして、該当する動線インデックス情報を検出したならば、制御部25は、ST62としてその動線インデックス情報の変化点フラグFをセットする。すなわち、変化点を記録する。
【0052】
抽出した動線編集レコードの先頭の動線インデックス情報から最終の動線インデックス情報まで変化点をチェックし終えたならば、制御部25は、ST63としてこの動線編集レコードで管理される動線に変化点があるか否か、すなわち、変化点フラグがセットされた動線インデックス情報が存在するか否かを調べる。そして、変化点フラグがセットされた動線インデックス情報を検出したならば、変化点を有する動線編集レコードなので、制御部25は、ST64としてその変化点での動線分割処理を実行する。
【0053】
すなわち制御部25は、この動線編集レコードのコピーを動線データベース33に追加し、このコピーした動線編集レコードの動線IDを、前記最終動線IDに“1”を加算した値に書き換える。このとき、記憶している最終動線IDにも“1”を加算する。また、コピーした動線編集レコードに関して、先頭の動線インデックス情報から変化点フラグがセットされている動線インデックス情報の直前のインデックス情報までを削除し、変化点フラグがセットされている動線インデックス情報を先頭のインデックス情報とする。そして、この先頭のインデックス情報の変化点フラグをリセットするともに、この先頭のインデックス情報の二次元座標を当該動線編集レコードの動線開始位置座標(X0,Y0)とする。さらに、この動線編集レコードについて前記状態定義処理と同様の処理を実行し、状態ステータスを更新する。しかる後、部分動線ステータスを「オン」して、部分動線編集レコードとする。
【0054】
一方、コピー元の動線編集レコードについては、変化点フラグがセットされている動線インデックス情報から以後の動線インデックス情報を削除し、残った動線インデックス情報のうち日時が最も新しい動線インデックス情報の二次元座標を、当該動線編集レコードの動線終点座標(Xn,Yn)とする。そして、この動線編集レコードについても前記状態定義処理と同様の処理を実行して状態ステータスを更新するとともに、部分動線ステータスを「オン」して、部分動線編集レコードとする。
【0055】
かくして、変化点を有する動線編集レコードが変化点より前の部分動線レコードと変化点以後の部分動線レコードとに自動的に分割されるので、次に、制御部25は、コピーした部分動線編集レコード(変化点以後の部分動線レコード)にさらに変化点フラグがセットされている動線インデックス情報が存在するか否かを調べる。そして、変化点フラグがセットされている動線インデックス情報を検出したならば、上記と同様な処理を実行して、変化点より前の部分動線レコードと変化点以後の部分動線レコードとに分割する(部分動線データ生成手段)。
【0056】
こうして、変化点を有する動線編集レコードを、変化点を有さない複数の部分動線編集レコードに分割し終えたならば、次に、制御部25は、ST65として各部分動線編集レコードから無効エリア内の部分動線に関するレコードを無効化する。
【0057】
すなわち、部分動線編集レコード毎に状態ステータスを調べ、「無効」であったならば、この部分動線編集レコードの無効化ステータスをセットする。
【0058】
上記ST61〜ST65までの処理を、全ての動線編集レコードについて実行したならば、制御部25は、ST66として無効化条件の中の時間条件がオンしているか否かを判断する。時間条件がオンされていない場合には、この分割処理を終了する。
【0059】
時間条件がオンされていた場合には、動線データベース33から部分動線ステータスがセットされているレコード、すなわち部分動線編集レコードで、無効化ステータスがセットされていないレコードを順次抽出する。そして、前述した動線無効化処理のときと同様に動線追跡時間を算出して、閾値以下であれば無効化ステータスをセットする。有効な全ての部分動線編集レコードについて上記処理を完了すると、この分割処理を終了する。
【0060】
上記分割処理を実行することによって、動線データベース33に記憶されている有効な動線編集レコードは、その定義情報が、「入口」,「入口→入口」,「入口→店内」,「店内→店内」または「店内→入口」のいずれかになる。
【0061】
動線の分割処理を終了すると、制御部25は、ST6として動線データベース33を検索して、無効化ステータスがセットされていない全ての動線編集レコードを抽出する。そして、抽出したレコードの動線ID、開始位置座標及び終了位置座標を一覧表にした動線リストを作成し、動線編集画面40の動線リスト表示部43に表示する。そして制御部25は、ST7としてオペレータにより動線リストからいずれかの動線が選択されるのを待機する。すなわち、動線データベース33に記憶された動線データの中から連結元となる第1の動線データの選択入力を受付ける(第1の動線選択手段)。
【0062】
操作入力部23の操作入力により動線リストからいずれかの動線IDが選択入力されたならば、制御部25は、ST8としてこの選択された動線IDを連結元動線のIDとして記憶する。そして、ST9として連結元動線再生処理を実行する。この再生処理の処理手順は、図11の流れ図によって示される。
【0063】
すなわち制御部25は、先ず、ST71として動線生データベース31を先頭フレームの動線生データから順に検索して、連結元動線IDをターゲットIDとするターゲット情報を含む動線生データを全て取込む。次に、ST72として取込んだ各動線生データから、それぞれカメラ画像ファイル名を取得する。そして、カメラ画像データベース32からこのカメラ画像ファイル名が設定されたカメラ画像ファイルを全て取込む。
【0064】
次に、制御部25は、ST73として取込んだ各動線生データのフレーム日時情報を比較する。そして、フレーム日時情報が古い順に動線生データを選択して、以下の処理を実行する。
【0065】
すなわち、ST74として選択した動線生データから連結元動線IDをターゲットIDとするターゲット情報の三次元座標を取得する。また、ST75として選択した動線生データのカメラ画像オフセット値で特定されるフレーム画像を、取込んだカメラ画像ファイルから抽出する。さらに、ST76として取得した世界座標系の三次元座標を、該当するカメラ画像系の座標に変換する。この変換処理は、カメラCA1〜CA6毎に、それぞれ図12の流れ図に示す手順で処理する。なお、この変換処理では、カメラパラメータデータベース35に予め設定されている以下のパラメータを使用する。
【0066】
・世界座標系の動線座標:x,y,h
・世界座標系のカメラの位置:Wx,Wy,Wz
・画像中心の座標:Cx,Cy
・世界座標系の座標軸周りのカメラ回転角:Rx,Ry,Rz
・全方位カメラのパラメータ:b,c,f
・魚眼カメラのパラメータ:k1,k3,k5,scale
先ず、制御部25は、ST81として変換対象の動線座標(x,y,h)を、カメラ位置を原点とした座標系(X0,Y0,Z0)に平行移動する。この処理は、次の演算式により実行される。
【数1】
【0067】
次に、制御部25は、ST82として平行移動した動線座標(X0,Y0,Z0)について、世界座標系の座標軸周りのカメラ回転角を使って回転処理し、世界座標系とカメラ座標系の軸を合せる。この処理は、次の演算式により実行される。
【0068】
[X軸周りの回転]
【数2】
【0069】
[Y軸周りの回転]
【数3】
【0070】
[Z軸周りの回転]
【数4】
【0071】
次に、制御部25は、ST83として処理対象のカメラの種類を判別する。魚眼カメラCA1,CA2,CA3に対しては、ST84として魚眼カメラのパラメータを使って、動線座標(Xz,Yz,Zz)を世界座標系からカメラ画像座標系に変換する。この処理は、次の演算により実行される。
【0072】
先ず、Xd=rcost:Yd=rsintとする。
【0073】
ただし、Yz≧0のとき、
【数5】
【0074】
Yz<0のとき、
【数6】
【0075】
である。ここで、上記rの値を、下記数式のニュートン法を用いて求める。
【数7】
【0076】
なお、この数式において、初期値r0を0.0、目標値をθとする。また、|rn+1−rn|<0.01で収束したとみなす。その時点でのrの値を使用する。
【0077】
一方、全方位カメラCA4,CA5,CA6に対しては、ST85として全方位カメラのパラメータを使って、動線座標(Xz,Yz,Zz)を世界座標系からカメラ画像座標系に変換する。この処理は、次の演算式により実行される。
【数8】
【0078】
こうして、動線座標を世界座標系からカメラ画像座標系に変換したならば、制御部25は、ST86として変換後の座標(Xd,Yd)をカメラ画像座標系の原点に平行移動する。この処理は、次の演算式により実行される。
【数9】
【0079】
以上、ST81〜ST86の処理を実行することにより、選択した動線生データから取得したターゲット情報の三次元座標が、各カメラCA1〜CA6のカメラ画像系の座標に変換される。
【0080】
かくして、三次元座標、フレーム画像及びカメラ画像系座標を取得したならば、制御部25は、ST77としてその三次元座標に基づいて動線編集画面40の動線編集部41に動線を表示する。また同時に、動線編集画面40のカメラ画像表示部42にフレーム画像を表示し、さらに、カメラ画像系座標に基づいてカメラ画像表示部42に連結元動線IDを表示する。
【0081】
しかる後、制御部25は、ST78として処理した動線生データの次に古い動線生データが取り込まれているか否かを判断する。次に古い動線生データが取り込まれている場合には、前記ST74〜ST78の処理を繰り返す。次に古い動線生データが取り込まれていない場合には、取り込んだフレーム別動線生データについてフレーム日時情報が古い順に前記ST74〜ST78の処理を実行したので、この再生処理を終了する。
【0082】
かかる手順の再生処理が実行されることにより、動線編集画面40の動線編集部41には、動線リストの中からオペレータが選択した動線IDの動線が表示される。また、この動線表示に同期して、同一時点のカメラ画像が動線編集画面40のカメラ画像表示部42に表示される。そして、このカメラ画像には、動線のターゲット位置に動線IDが表示される。
【0083】
したがってオペレータは、動線の動きとカメラ画像とを見比べて、その動線が1人の人物を追跡したものであるか否かを容易に判別することができる。また、前述したように、同一人物に対する動線は途中で途切れることが一般的であるので、途切れる前の動線と途切れた後の動線とが同一人物に対する動線なのか否かも容易に判別することできる。そして、同一人物に対する動線であると判別できた場合には、その途切れる前の動線と途切れた後の動線とを1つの動線に連結すればよい。そこで次に、この連結作業について述べる。
【0084】
なお、前述したように、動線データベース33に記憶されている有効な動線編集レコードは、その定義情報が、「入口」,「入口→入口」,「入口→店内」,「店内→店内」または「店内→入口」のいずれかである。このうち、定義情報が「入口→入口」及び「入口」のレコードは、入店から退店までを追跡した完全動線である。また、定義情報が「店内→入口」のレコードは、退店につながるレコードなので、連結先動線にはなり得るものの連結元動線にはなり得ない。
【0085】
そこで、前記連結元動線再生処理が終了すると、制御部25は、ST10としてこの再生した連結元動線が完全動線であるか否かを判断する。すなわち、動線データベース33を検索して、連結元動線IDを動線IDとする動線編集レコードを取得する。そして、この動線編集レコードの状態ステータスを調べる。ここで、状態ステータスが「入口→入口」または「入口」の場合は完全動線と判断し、その他の場合は不完全動線と判断する。
【0086】
完全動線の場合には、制御部25は、ST15の連結定義処理に進む。
不完全動線の場合には、制御部25は、ST11として連結先動線候補検索処理を実行する。この検索処理の処理手順は、図13の流れ図によって示される。すなわち制御部25は、先ず、ST91として設定データベース34から検索条件を取得する。検索条件には、「時間」と「距離」がある。
【0087】
検索条件として「時間」が設定されていた場合には、制御部25は、ST92として連結元動線の動線終了時刻を取得する。すなわち、連結元動線IDを動線IDとする動線編集レコードのなかから最終フレームに対応した動線インデックス情報のフレーム日時を動線終了時刻として取得する(終点時間検出手段)。
【0088】
次に、制御部25は、ST93として動線データベース33を検索して、連結先動線として完全動線以外の動線、すなわち状態ステータスが「入口→店内」,「店内→店内」,「店内→入口」の動線編集レコードを抽出する。そして、この抽出した連結先動線の動線開始時刻、すなわち当該動線編集レコードの先頭フレームに対応した動線インデックス情報のフレーム日時と、前記連結元動線の動線終了時刻との時間差を算出する(時間差算出手段)。そして、この時間差が予め設定された閾値以内であった場合には、この連結先動線を連結先候補の動線として残す。時間差が閾値を超える連結先動線は、連結先候補から外す。
【0089】
動線データベース33に設定されている全ての連結先動線について、上記ST93以降の処理を実行する。そして、この処理を終了したならば、制御部25は、ST94として連結先候補の動線を時間差の小さい順にリストアップして(連結先候補抽出手段)、動線リスト表示部43に表示する(連結先候補表示手段)。
【0090】
一方、検索条件として「距離」が設定されていた場合には、制御部25は、ST95として連結元動線の動線終点座標を取得する。すなわち、連結元動線IDを動線IDとする動線編集レコードから動線終点座標を取得する(終点位置検出手段)。
【0091】
次に、制御部25は、ST96として動線データベース33を検索して、連結先動線の動線編集レコードを抽出する。そして、この抽出した連結先動線の動線始点座標、すなわち当該動線編集レコードから動線始点座標を取得し、前記連結元動線の動線終点座標との距離を算出する(距離算出手段)。そして、この距離が予め設定された閾値以内であった場合には、この連結先動線を連結先候補の動線として残す。距離が閾値を超える連結先動線は、連結先候補から外す。
【0092】
動線データベース33に設定されている全ての連結先動線について、上記ST96以降の処理を実行する。そして、この処理を終了したならば、制御部25は、ST97として連結先候補の動線を距離の短い順にリストアップして(連結先候補抽出手段)、動線リスト表示部43に表示する(連結先候補表示手段)。
【0093】
こうして、連結先候補処理が終了すると、制御部25は、ST12として動線リスト表示部43に表示されている候補の中から連結先動線が選択されるのを待機する。すなわち、動線データベース33に記憶された動線データの中から連結先となる第2の動線データの選択入力を受付ける(第2の動線選択手段)。そして、操作入力部23の操作入力により連結先動線が選択されたならば、制御部25は、ST13として連結先動線再生処理を実行する。この再生処理は、図11に示した連結元動線再生処理と対象となる動線データが異なるだけで、その処理手順は同じである。したがって、ここでの説明は省略する。
【0094】
この再生処理が実行されることにより、動線編集画面40の動線編集部41には、連結先候補リストの中からオペレータが選択した連結先動線IDの動線が表示される。また、この動線表示に同期して、同一時点のカメラ画像が動線編集画面40のカメラ画像表示部42に表示される。そして、このカメラ画像には、動線のターゲット位置に動線IDが表示される。
【0095】
したがってオペレータは、動線の動きとカメラ画像とを見比べて、その動線が先に選択した連結元動線に連結される動線であるか否かを判断する。そして、操作入力部23を介してその判断結果を入力する。
【0096】
制御部25は、ST14として連結元動線に連結される動線でない旨の入力を受付けた場合には、ST12に戻り、次の連結先動線が選択されるのを待機する。これに対し、連結元動線に連結される動線である旨の入力を受付けた場合には、ST15の連結定義処理を実行する。
【0097】
この連結定義処理の処理手順は、図14の流れ図によって示される。すなわち制御部25は、先ず、ST101として連結元動線の状態ステータスを判定する。ここで、状態ステータスが「入口→入口」または「入口」の場合、すなわち完全動線の場合には、この連結元動線に対応した動線編集レコードの連結定義情報[起点]を「連結元動線ID」とし、連結定義情報[前連結ID]及び[後連結ID]をいずれも「設定なし」とする。
【0098】
これに対し、状態ステータスが「入口→店内」の場合には、ST102として、ST12の処理で選択された連結先動線の状態ステータスを判定する。連結先動線の状態ステータスが「店内→店内」であった場合には、この連結先動線及び連結元動線にそれぞれ対応した動線編集レコードの連結定義情報[起点]を「連結元動線ID」とする。また、連結元動線に対応した動線編集レコードの連結定義情報[前連結ID]を「設定なし」とし、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。これに対し、連結先動線の状態ステータスが「店内→入口」または「入口」であった場合には、この連結先動線及び連結元動線にそれぞれ対応した動線編集レコードの連結定義情報[起点]を「連結元動線ID」とする。また、連結元動線に対応した動線編集レコードの連結定義情報[前連結ID]を「設定なし」とし、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。さらに、連結先動線に対応した動線編集レコードの連結定義情報[後連結ID]を「設定なし」とする。
【0099】
一方、連結元動線の状態ステータスが「入口→入口」,「入口」及び「入口→店内」でない場合、すなわち「店内→店内」の場合には、ST103として、やはり連結先動線の状態ステータスを判定する。連結先動線の状態ステータスが「店内→店内」であった場合には、この連結先動線に対応した動線編集レコードの連結定義情報[起点]を「連結元動線の起点」とする。また、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。これに対し、連結先動線の状態ステータスが「店内→入口」であった場合には、この連結先動線に対応した動線編集レコードの連結定義情報[起点]を「連結元動線の起点」とする。また、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。さらに、連結先動線に対応した動線編集レコードの連結定義情報[後連結ID]を「設定なし」とする。
【0100】
こうして、連結定義処理が終了すると、制御部25は、ST16として連結元動線が退店まで定義されたか否かを判断する。連結元動線が完全動線であった場合には、退店まで定義されたと判断する。また、連結先動線として選択された動線の状態ステータスが「店内→入口」であった場合も、退店まで定義されたと判断する。それ以外の場合は、まだ退店まで定義されていないと判断する。そして、その場合は、ST17として連結先動線を連結元動線に置き換えて、ST9以降の処理を再度実行する。
【0101】
ST16にて、退店まで定義されたと判断した場合には、制御部25は、ST18として動線の選択が完了したか否かを判断する。ここで、操作入力部23の操作入力により選択継続が指示された場合には、ST6に戻り、動線リストをリスト表示部43に表示させて、次の動線が選択されるのを待機する。
【0102】
一方、操作入力部23の操作入力により選択終了が指示された場合には、制御部25は、ST19として連結処理を実行する。この連結処理の処理手順は、図15の流れ図によって示される。すなわち制御部25は、先ず、ST111として動線データベース33を検索して、連結定義情報が設定された動線編集レコードの中から定義情報[前連結ID]が「設定なし」の動線編集レコードを1つ選択する。この選択した動線編集レコードに対応する動線を動線Aと認識する。
【0103】
次に、制御部25は、ST112としてこの動線Aに対応した動線編集レコードの連結定義情報[後連結ID]が動線IDとして設定された動線編集レコードを動線データベース33から取得する。そして、この取得した動線編集レコードに対応する動線を動線Bと認識する。
【0104】
次に、制御部25は、ST113として動線Aに対応した動線編集レコードの連結定義情報[起点]と、動線Bに対応した動線編集レコードの連結定義情報[起点]とを比較する。その結果、一致していることを確認したならば、次に、制御部25は、ST114として動線Aの動線IDと、動線Bに対応した動線編集レコードの連結定義情報[前連結ID]とを比較する。
【0105】
その結果、一致していることを確認したならば、次に、制御部25は、ST115として動線Aに対応した動線編集レコードの最終フレームに対応した動線インデックス情報のフレーム日時と、動線Bに対応した動線編集レコードの先頭フレームに対応した動線インデックス情報のフレーム日時との時間差を算出する。そして、この時間差が、カメラ画像の1フレーム以内であるか否かを判断する(連結点判定手段)。
【0106】
1フレーム以内であった場合には、動線Aの終点位置と動線Bの始点位置とが一致していると判断し、制御部25は、ST116として動線Aと動線Bを連結する。すなわち、動線Bに対応した動線編集レコードの先頭フレームに対応した動線インデックス情報から最終フレームに対応した動線インデックス情報を抽出し、動線Aに対応した動線編集レコードの最終フレームに対応した動線インデックス情報の後に付加する。そして、この動線Aに対応した動線編集レコードの動線終点座標を、動線Bに対応した動線編集レコードから抽出した最終フレーム対応の動線インデックス情報の座標に置換する。さらに、動線Aに対応した動線編集レコードの状態ステータスを更新する。かくして、連結元となる動線データの始点から連結先となる動線データの終点までの軌跡を示す動線データが生成される(動線データ生成手段)。
【0107】
これに対し、時間差が1フレームより長かった場合には、動線Aの終点と動線Bの起点との間を補間処理する(補間手段)。補間処理としては、動線Aの終点と動線Bの起点との間を直線で結ぶ線形補間が挙げられる。店内での客の動きは、ゆったりとした歩行が主であるので、線形補間でも充分に補間処理が可能である。補間処理の後、制御部25は、ST116の連結処理を行う。
【0108】
その後、制御部25は、ST117として動線Bに対応した動線編集レコードの連結定義情報[後連結ID]を判定する。ここで、連結定義情報[後連結ID]が「設定なし」以外の場合には、動線Bを動線Aと置き換えて、ST112以降の処理を再度実行する。
【0109】
動線Bに対応した動線編集レコードの連結定義情報[後連結ID]が「設定なし」であった場合には、制御部25は、ST118として連結定義情報が設定された動線編集レコードを検索し終えたか否かを判断する。未だ検索し終えていない場合には、ST111以降の処理を再度実行する。検索し終えたならば、この連結処理を終了する。
【0110】
連結処理を終了すると、制御部25は、ST20として動線データベース33に記憶された動線編集レコードの中から、状態ステータスが「入口→入口」または「入口」の完全動線のレコードを検出する。そして、この完全動線のレコードを、記憶部22の出力ファイルに出力する。データ出力後、動線編集プログラムは終了する。
【0111】
このように本実施の形態によれば、動線データベース33に記憶された動線データの中から連結元となる第1の動線データの選択入力を受付けるとともに、同じく動線データの中から連結先となる第2の動線データの選択入力を受付け、連結元となる動線データと連結先となる動線データとが選択されると、連結元となる動線データの始点から連結先となる動線データの終点までの軌跡を示す動線データを自動的に生成するようにしたので、周知の動線データ生成システム10により生成された複数の動線を1本の動線に容易に連結することができる。その結果、入退場口IN/OUTから入店した人物が店舗内を回り、会計カウンタCHで会計を済ませて出店するまでを、1本の動線で結ぶことができる。
【0112】
この場合において、本実施の形態では、連結元となる動線データが選択されると、その動線データの終点位置を検出し、動線データベース33に記憶された動線データ毎に、その動線データの始点位置から連結元となる動線データの終点位置までの距離を算出して、この距離が予め設定された閾値以内である動線データを連結先動線候補としてリストアップするようにしている。したがって、距離を条件に連結先動線候補をさらに絞ることができるので、連結先動線選択作業をより簡便に行える利点がある。
【0113】
同様に、本実施の形態では、連結元となる動線データが選択されると、その動線データの終点検出時間を検出し、動線データベース33に記憶された動線データ毎に、その動線データの始点検出時間と連結元となる動線データの終点検出時間との差分を算出して、この時間差が予め設定された閾値以内である動線データを連結先動線候補としてリストアップするようにしている。したがって、時間を条件に連結先動線候補をさらに絞ることもできるので、連結先動線選択作業をより簡便に行える利点がある。
【0114】
また、本実施の形態でよれば、連結元動線として選択された動線データの終点位置と、連結先動線として選択された動線データの始点位置とが一致しているか否かを判定し、終点と始点とが一致していないとき、その点間を自動的に補間するようにしている。したがって、入退場口から入場して店内を回り、退場する人物の動線を確実に1本の線で結ぶことができる。
【0115】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【0116】
また、前記実施の形態では装置内部に発明を実施する機能(動線編集プログラム)が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、CD−ROM等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のOS(オペレーティング・システム)等と協働してその機能を実現させるものであってもよい。
【0117】
この他、前記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を組合わせてもよい。
【図面の簡単な説明】
【0118】
【図1】本発明の一実施の形態におけるシステム構成を示すブロック図。
【図2】同実施の形態における店舗内レイアウトの説明図。
【図3】同実施の形態における動線データのデータ構造を示す模式図。
【図4】同実施の形態における動線編集レコードのデータ構造を示す模式図。
【図5】同実施の形態における動線編集画面の一例を示す模式図。
【図6】同実施の形態において動線編集プログラムによる動線編集装置の処理手順を示す流れ図。
【図7】図6における動線データ作成処理の要部処理手順を示す流れ図。
【図8】図6における動線状態定義処理の要部処理手順を示す流れ図。
【図9】図6における動線無効化処理の要部処理手順を示す流れ図。
【図10】図6における動線分離処理の要部処理手順を示す流れ図。
【図11】図6における動線再生処理の要部処理手順を示す流れ図。
【図12】図11における座標変換処理の要部処理手順を示す流れ図。
【図13】図6における連結先動線候補検索処理の要部処理手順を示す流れ図。
【図14】図6における連結定義処理の要部処理手順を示す流れ図。
【図15】図6における連結処理の要部処理手順を示す流れ図。
【符号の説明】
【0119】
10…動線データ生成システム、20…動線編集装置、21…データ主深部、22…記憶部、23…操作入力部、24…画面表示部、25…制御部、31…動線データベース、32…カメラ画像データベース、33…動線データベース、34…設定データベース、35…カメラパラメータデータベース、36…店内エリア定義データベース、37…店内マップデータベース、41…動線編集部、42…カメラ画像表示部、43…動線リスト表示部。
【技術分野】
【0001】
本発明は、監視領域内を移動する人物等の移動体の移動経路を示す動線を編集する動線編集装置及びその方法並びにコンピュータ読取り可能なプログラムに関する。
【背景技術】
【0002】
従来より、複数のカメラでそれぞれ撮影された複数のカメラ画像データを画像処理して人物等の移動体を特定し、この移動体の追跡を行って、移動体の位置座標データに、移動体の識別情報と時間情報とを紐付けした動線データを作成するシステムは、既に知られている。このようなシステムで作成された時系列の動線データをコンピュータが取込み、データ処理を行って、ディスプレイの画面に所望する移動体の動線を再生表示する技術がある。このような動線表示技術をコンビニエンスストア等の店舗に適用することによって、顧客の動線を把握することができる(例えば、特許文献1参照)。
【特許文献1】特開2006-350751号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、例えば店舗内には商品陳列棚等が置かれているため、人が棚の陰に隠れてしまったり、複数の人が重なってしまったりして、カメラ画像では途中で追跡できなくなる場合があった。このような場合、従来の動線データ生成システムでは、途絶える前までの移動体の軌跡と途絶えた後の移動体の軌跡とが別々の動線として管理されるため、例えば入店した人物が店舗内を回り、会計カウンタで会計を済ませて出店するまでを1本の動線で結ぶことはできないのが実情であった。
【0004】
本発明はこのような事情に基づいてなされたもので、その目的とするところは、簡単な作業により複数の動線を1本の動線に連結することができる動線編集装置、及びその方法、並びにコンピュータを本発明の動線編集装置として機能させるための動線編集プログラムを提供しようとするものである。
【課題を解決するための手段】
【0005】
本発明は、監視領域内を移動する複数の移動体それぞれの始点から終点までの軌跡を示す動線データを記憶する動線データベースに記憶された動線データの中から、第1の動線データが選択入力されると、その動線データの終点位置を検出する。そして、動線データベースに記憶された動線データ毎に、その動線データの始点位置から第1の動線データの終点位置までの距離を算出する。その結果、算出された距離が予め設定された閾値以内である動線データを第1の動線データと連結される第2の動線データの候補としてリストアップし、リストアップされた動線データの中から第2の動線データの選択入力を受付ける。かくして、第1の動線データと第2の動線データとが選択されると、第1の動線データの始点から第2の動線データの終点までの軌跡を示す動線データを生成するようにしたものである。
【発明の効果】
【0006】
かかる手段を講じた本発明によれば、簡単な作業により複数の動線を1本の動線に連結することができ、分断された移動体の軌跡を完全なものに容易に復元することができる効果を奏し得る。
【発明を実施するための最良の形態】
【0007】
以下、本発明を実施するための最良の形態について、図面を用いて説明する。
なお、この実施の形態は、コンビニエンスストア等の店舗において、周知の動線データ生成システム10により生成された動線データ(以下、動線生データと称する)を基に移動体である人物(客)の動線を編集する動線編集装置20に、本発明を適用した場合である。
【0008】
図1は本実施の形態のシステム構成を示すブロック図である。このシステムは、動線監視対象の施設、すなわち店舗内を撮影するための複数台(本実施の形態では6台)のカメラCA1〜CA6と、各カメラCA1〜CA6によってそれぞれ撮影されたカメラ画像データを画像処理して人物を特定し、この人物の追跡を行って、人物毎の動線データを生成する周知の動線データ生成システム10と、本発明に関わる動線編集装置20とから構成されている。
【0009】
各カメラCA1〜CA6は、図2の店舗内レイアウト図に示すように、店舗内中央部の天井に1台(CA1)、POS(Point Of Sales)端末P1,P2が置かれている会計カウンタCH近傍の天井に2台(CA2,CA3)、会計カウンタCHに対して店内奥側及び左右壁側の計3箇所の天井に3台(CA4,CA5,CA6)が取り付けられている。このうち、カメラCA1,CA2,CA3は魚眼カメラであり、カメラCA4,C5,CA6は全方位カメラである。
【0010】
このように配置された6台のカメラCA1〜CA6でそれぞれ撮影されたカメラ画像データにより、動線データ生成システム10は、店舗の入退場口IN/OUTから入店した人物を移動体のターゲットとして検出し、店舗内を移動する各ターゲットを個別に追跡して、そのターゲットの移動経路に沿った動線データを生成するものである。ただし、店舗内には商品陳列棚R等が置かれているため、人が棚の陰に隠れてしまったり、複数の人が重なってしまったりして、カメラ画像では途中で追跡できなくなる場合がある。
【0011】
動線データ生成システム10は、同一時刻に撮影された複数のカメラ画像データから新たなターゲット(移動体)を検出する毎に、そのターゲットに固有の識別子であるターゲットIDを付して追跡し、追跡が途絶えるまでを1本の動線データとして生成している。このため、同一人物に対して複数の動線データが生成される場合がある。動線編集装置20は、同一人物に対して生成された複数の動線データを抽出し、入店から出店までを結んだ完全動線を編集するためのコンピュータ機器である。別の言い方をすると、上記完全動線を編集するためのプログラムを実装したコンピュータである。
【0012】
なお、本実施の形態では、説明の便宜上、動線データ生成システム10で検出されたターゲットに付与されるターゲットIDは、“0”から1ずつ昇順に繰り上がる連続番号とする。
【0013】
動線編集装置20は、図1に示すように、動線データ生成システム10からデータを受信するインターフェイス機能を有したデータ受信部21、大容量の記憶部22、操作入力部23、画面表示部24、及びこれらを制御する制御部25等を備えている。記憶部22としては、例えばハードディスクやフラッシュメモリ等の不揮発性記憶媒体を用いている。操作入力部23としては、キーボード,マウス等の入力デバイスを用いている。画面表示部24としては、液晶ディスプレイ,有機ELディスプレイ等を用いている。制御部25は、CPU,ROM及びRAMのコンピュータ部品を主体に構成したものである。
【0014】
記憶部22には、特に動線生データベース31、カメラ画像データベース32、動線データベース33、設定データベース34、カメラパラメータデータベース35、店内エリア定義データベース36及び店内マップデータベース37を形成している。なお、記憶部22は、動線編集装置20に内蔵されていてもよいし、外付けされていてもよい。また、例えば後述する動線編集処理を開始する前に予め記憶しておく、もしくは処理の途中で追記される動線データベース33、設定データベース34、カメラパラメータデータベース35及び店内エリア定義データベース36については内蔵の記憶部で記憶し、動線編集処理を開始するに先立って動線データ生成システム10から取り込む必要がある動線生データベース31及びカメラ画像データベース32は、外付けの記憶部に記憶するようにしてもよい。
【0015】
動線生データベース31には、動線データ生成システム10で順次生成される動線生データが時系列に記憶される。動線生データベース31に記憶される動線生データのデータ構造を図3に示す。図示するように動線生データベース31には、動線データ生成システム10においてカメラ画像の1フレーム毎に生成される動線生データ(フレーム別動線生データ)が順次蓄積される。本実施の形態では1フレーム毎に生成される動線データは1/15秒毎の動線データとなる。なお、1フレームの間隔は変更が可能であり、より詳細な動線データが必要であれば1フレームの間隔を1/30秒毎等とすれば良いし、動線生データベース31のファイル容量を小さくする必要があれば1フレームの間隔を1/10秒毎等とすれば良い。
【0016】
ここで、1フレーム単位の動線生データブロックには、6台のカメラCA1〜CA6で撮影された同時点の各フレーム画像を保存したカメラ画像ファイルのファイル名、各フレーム画像をそれぞれ特定するオフセット値、各フレームの撮影日時情報、各フレーム画像の画像処理によって移動体として検出された人物すなわちターゲットの数及びそのターゲット数分のターゲット情報(ID,X,Y,H)が記憶される。
【0017】
ターゲット情報には、ターゲットを識別するためのターゲットID(識別子)と、そのターゲットの店舗内の位置を三次元の世界座標系で示す店舗内座標(X,Y,H)とが含まれる。本実施の形態では、図2の店内レイアウト図において、左奥の角をX軸及びY軸の原点(0,0)とし、その床面をH(Height)軸の原点としている。
【0018】
カメラ画像データベース32には、6台のカメラCA1〜CA6で撮影された同時点の各フレーム画像を記憶したカメラ画像ファイルのデータが順次蓄積記憶される。
【0019】
動線データベース33には、動線生データベース31に記憶された動線生データに基づいてターゲット毎に生成される動線データが記憶される。動線データの主要なデータ構造を図4に示す。図示するように、動線データは、固有の動線IDと、この動線IDで特定される動線の開始位置である始点を示す二次元座標(X0.Y0)と、同動線の終了位置である終点を示す二次元座標(Xn.Yn)と、同動線に関わる画像フレーム時間単位のインデックス情報と、状態ステータス,無効化ステータス及び部分動線ステータスと、[起点],[前連結ID],及び[後連結ID]の各定義情報とで構成される。インデックス情報には、店舗内座標(X,Y,H)と、画像フレームの撮影日時情報Tと、変化点フラグFとが含まれる。
【0020】
なお、状態ステータス,無効化ステータス,部分動線ステータス,各種定義情報及び変化点フラグFについては後述する。
【0021】
設定データベース34には、動線編集作業に必要な種々の設定データが予め格納されている。
【0022】
カメラパラメータデータベース35には、魚眼カメラCA1〜CA3に関する種々のパラメータデータと、全方位カメラCA4〜CA6に関する種々のパラメータデータとが予め格納されている。
【0023】
店内エリア定義データベース36には、店舗内のエリアを定義するためのデータが予め格納されている。本実施の形態では、図2のレイアウト図において、入退場口IN/OUTより店内側の図中破線で囲われた矩形の領域を入口エリアと設定し、この入口エリア内の二次元座標(X,Y)が入口エリア定義データとして記憶されている。また、客が買い回りすることができない店内の商品陳列棚設置エリアと会計カウンタCHより内側のエリアを無効エリアと設定し、この無効エリア内の二次元座標(X,Y)が無効エリア定義データとして記憶されている。さらに、入口エリアと無効エリアとを除く店内のエリア、つまり買物をする客が移動し得るエリアを監視対象の領域である店内エリアと設定し、この店内エリア内の二次元座標(X,Y)が店内エリア定義データとして記憶されている。因みに、無効エリアに対して残りの入口エリアと店内エリアは、ターゲットである客が存在し得る有効領域として区分される。
【0024】
店内マップデータベース37には、図2に示すレイアウト図と同様の店内マップ平面図のイメージデータが予め格納されている。
【0025】
かかる構成の動線編集装置20を用いて動線の編集作業を行うオペレータは、作業に先立ち動線データ生成システム10から作業対象である動線生データとその動線生データを生成するために用いたカメラ画像データとをデータ受信部21を介して取込む。そして、動線生データベース31とカメラ画像データベース32とにそれぞれ保存する。この状態で、操作入力部23を操作して、動線編集業務の開始を指令する。すると、動線編集プログラムが起動する。動線編集プログラムは、予め記憶部22にインストールされている。
【0026】
動線編集プログラムが起動すると、制御部25は、このプログラムに従い図6の流れ図に示す手順で各部を制御する。先ず、ST(ステップ)1として動線編集画面40を画面表示部24に表示させる。
【0027】
動線編集画面40の一レイアウト例を図5に示す。図示するように、動線編集画面40は、動線編集部41と、カメラ画像表示部42と、動線リスト表示部43と、座標表示部44とに区分されている。
【0028】
動線編集部41には、店内マップデータベース37に記憶されているイメージデータにより店内マップの平面図が表示される。また、スクロールバー45を画面に向かって左端から右端にスライドさせることによりカメラ画像の撮影時間が経過し、その時間に撮影されたカメラ画像から検出されたターゲットの動線が該店内マップに重ねて表示される。
【0029】
カメラ画像表示部42には、各カメラCA1〜CA6で撮影された画像が表示される。図示するように、6個のカメラ画像を並べて同時に表示することもできるし、その中から選択された1乃至複数のカメラ画像を拡大して表示することもできる。
【0030】
動線編集画面40を表示した後、制御部25は、ST2として動線データ作成処理を実行する。この作成処理の処理手順は、図7の流れ図によって示される。すなわち制御部25は、先ず、ST31として動線データベース33をクリアする。次に、ST32として番号カウンタのカウント値Nを“0”に初期設定する。この初期設定値“0”は、動線データ生成システム10において、新たなターゲットを検出する毎に付与されるターゲットIDの初期値である。
【0031】
番号カウンタのカウント値Nを“0”に初期設定した後、制御部25は、ST33として動線生データベース31を検索する。そして、ST34として各フレーム別動線生データの中からターゲットIDが番号カウンタのカウント値Nと一致するターゲット情報(ID,X,Y,H等)を有する動線生データを検出する。
【0032】
ターゲットIDが“N”のターゲット情報を有するフレーム別動線生データを1つでも検出できた場合には、制御部25は、ST35としてそのターゲットIDを動線IDとする動線編集レコード(動線データ)を生成する。そしてこの動線編集レコードに、ターゲットIDが“N”のターゲット情報を有するフレーム別動線生データの中で、フレーム日時情報が最も古い動線生データに記憶されている当該ターゲット情報の店舗内二次元座標(X,Y)を始点座標(X0,Y0)としてセットする。また、フレーム日時情報が最も新しいフレーム別動線生データに記憶されている当該ターゲット情報の店舗内二次元座標(X,Y)を終点座標(Xn,Yn)としてセットする。さらに、検出された全てのフレーム別動線生データからターゲットIDが“N”のターゲット情報をすべて抽出し、これらのターゲット情報の店舗内座標(X,Y,H)と、フレーム日時情報Tとを、動線インデックス情報として日時の古い順に動線編集レコードにセットする。
【0033】
こうして、動線IDが“N”の動線編集レコードを作成したならば、制御部25は、ST36としてこの動線編集レコードを動線データベース33に追加する。しかる後、ST37として番号カウンタを“1”だけカウントアップしたならば、ST33〜ST37の処理を再度実行する。以後、ターゲットIDが“N”のターゲット情報(ID,X,Y,H等)を有する動線生データを検出できなくなるまで、この処理を繰り返す。すなわち、動線生データベース31のフレーム別動線生データを基に、動線IDが1ずつ昇順する動線編集レコードを順次生成して、動線データベース33に追加する処理を繰り返す。
【0034】
ST34にてターゲットIDが“N”のターゲット情報を有する動線生データを検出できなかったならば、制御部25は、ST38として番号カウンタのカウント値Nから“1”を減算した値(N−1)を最終動線IDとしてメモリに記憶して、この動線データ作成処理を終了する。
【0035】
動線データ作成処理を終了すると、制御部25は、次に、ST3として動線の状態定義処理を実行する。この状態定義処理の処理手順は、図8の流れ図によって示される。すなわち制御部25は、動線データベース33から動線編集レコードを1データずつ抽出する。そして、動線編集レコードを抽出する毎に、以下の処理を実行する。
【0036】
先ず、ST41として抽出した動線編集レコードから動線始点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線始点座標が入口エリア定義データとして設定された座標であるか否かを判断する。入口エリア定義データの座標であった場合には、制御部25は、ST42として同動線編集レコードから動線終点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線終点座標も入口エリア定義データとして設定された座標か否かを判断する。
【0037】
動線終点座標も入口エリア定義データの座標であった場合には、制御部25は、ST43として同動線編集レコードの動線インデックス情報を日時の古い順に調べる。そして、入口エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を検出したならば、この動線編集レコードに対応するターゲットは、入口エリアから少なくとも一度出て、その後、再び入口エリアに戻ったので、この動線編集レコードの状態ステータスを「入口→入口」に設定する。これに対し、入口エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を1つも検出しなかった場合には、この動線編集レコードに対応するターゲットは、入口エリアから一度も出なかったので、この動線編集レコードの状態ステータスを「入口」に設定する。
【0038】
一方、ST42にて動線終点座標が入口エリア定義データの座標でなかった場合、すなわち店内エリア定義データまたは無効エリア定義データの座標である場合には、制御部25は、この動線編集レコードの状態ステータスを「入口→店内」に設定する。
【0039】
一方、ST41にて動線始点座標が入口エリア定義データとして設定された座標でなかった場合には、制御部25は、ST44としてこの動線始点座標が店内エリア定義データとして設定された座標であるか無効エリア定義データとして設定された座標であるかを判断する。無効エリア定義データの座標であった場合には、ST45として同動線編集レコードから動線終点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線終点座標が無効エリア定義データとして設定された座標か否かを判断する。
【0040】
動線終点座標が無効エリア定義データの座標であった場合には、制御部25は、ST46として同動線編集レコードの動線インデックス情報を日時の古い順に調べる。そして、無効エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を1つも検出しなかった場合には、この動線編集レコードに対応するターゲットは、無効エリアから一度も出なかったので、この動線編集レコードの状態ステータスを「無効」に設定する。これに対し、無効エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を検出したならば、この動線編集レコードに対応するターゲットは、無効エリアから少なくとも一度出て、その後、再び無効エリアに戻ったので、この動線編集レコードの状態ステータスを「店内→店内」に設定する。
【0041】
一方、ST45にて動線終点座標が無効エリア定義データの座標でなかった場合には、制御部25は、ST47にて店内エリア定義データベース36を参照してこの動線終点座標が店内エリア定義データとして設定された座標か否かを判断する。
【0042】
動線終点座標が店内エリア定義データの座標であった場合には、この動線編集レコードの状態ステータスを「店内→店内」に設定する。これに対し、店内エリア定義データの座標でなかった場合、すなわち、入口エリア定義データの座標である場合には、同状態ステータスを「店内→入口」に設定する。
【0043】
一方、ST44にて動線始点座標が無効エリア定義データの座標でなかった場合、すなわち、店内エリア定義データの座標であった場合には、制御部25は、ST48として同動線編集レコードから動線終点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線終点座標が入口エリア定義データとして設定された座標か否かを判断する。
【0044】
動線終点座標が入口エリア定義データの座標であった場合には、この動線編集レコードの状態ステータスを「店内→入口」に設定する。これに対し、入口エリア定義データの座標でなかった場合、すなわち、店内エリア定義データまたは無効エリア定義データの座標である場合には、同状態ステータスを「店内→店内」に設定する。
【0045】
制御部25は、動線データベース33の全ての動線編集レコードについて上記処理を実行する。こうして、全ての動線編集レコードに対して、「入口→入口」,「入口」,「入口→店内」,「店内→入口」,「店内→店内」,「無効」のなかのいずれかの状態ステータスを設定したならば、この状態定義処理を終了する(動線状態判定手段)。
【0046】
動線の状態定義処理を終了すると、制御部25は、次に、ST4として動線の無効化処理を実行する。この無効化処理の処理手順は、図9の流れ図によって示される。すなわち制御部25は、設定データベース34から無効化条件の設定データを取得する。無効化条件には、動線の開始または終了位置が無効エリアに存在する動線を無効化する条件、いわゆる領域条件と、動線の追跡時間が予め設定された閾値以下の動線を無効化する条件、いわゆる時間条件とがある。そして、これらの条件を有効とするか否かは、予めオペレータによって選択され、設定データベース34に設定されている。
【0047】
無効化条件設定データを取得した制御部25は、先ず、ST51として領域条件がオン(有効)かオフ(無効)かを判断する。領域条件がオンの場合には、動線データベース33の動線編集レコードを1データずつ抽出して、その状態ステータスを調べる。そして、状態ステータスが「無効」であったならば、その動線編集レコードの無効化ステータスを「オン」にして動線データベース33に戻す。すなわち、当該動線編集レコードを無効化する。因みに、無効化された動線編集レコードは、この後の編集処理において処理されることはない。状態ステータスが「無効」でなかった場合には、無効化ステータスを「オフ」のまま動線データベース33に戻す。
【0048】
動線データベース33の全ての動線編集レコードの状態ステータスを調べ終えるか、領域条件がオフであった場合には、制御部51は、ST52として時間条件がオン(有効)かオフ(無効)かを判断する。時間条件がオンの場合には、動線データベース33の動線編集レコードを1データずつ抽出して動線追跡時間を算出する。すなわち、この動線編集レコードの先頭の動線インデックス情報のフレーム日時情報Tから最終の動線インデックス情報のフレーム日時情報Tまでの経過時間を算出する。そして、この動線追跡時間がオペレータによって予め設定データベース34に設定された閾値以下であるか否かを判断する。そして、動線追跡時間が閾値以下であった場合には、その動線編集レコードの無効化ステータスを「オン」にして動線データベース33に戻す。閾値より長い場合には、無効化ステータスを「オフ」のまま動線データベース33に戻す。
【0049】
動線データベース33の全ての動線編集レコードの動線追跡時間を調べ終えるか、時間条件がオフであった場合には、この無効化処理を終了する。
【0050】
動線の無効化処理が終了すると、制御部25は、次に、ST5として動線の分割処理を実行する。この分割処理の処理手順は、図10の流れ図によって示される。すなわち制御部25は、動線データベース33から無効化ステータスが「オン」でない動線編集レコードを1データずつ抽出する。そして、抽出する毎に、以下の処理を実行する。
【0051】
先ず、ST61として動線追跡処理を実行する。すなわち、動線インデックス情報をフレーム日時の古い順に取得し、その三次元座標が、店内エリア定義データベース36において、入口エリア定義データまたは店内エリア定義データとして設定された座標から無効エリア定義データとして設定された座標に変化した動線インデックス情報、または無効エリア定義データとして設定された座標から入口エリア定義データまたは店内エリア定義データとして設定された座標に変化した動線インデックス情報を検出する。そして、該当する動線インデックス情報を検出したならば、制御部25は、ST62としてその動線インデックス情報の変化点フラグFをセットする。すなわち、変化点を記録する。
【0052】
抽出した動線編集レコードの先頭の動線インデックス情報から最終の動線インデックス情報まで変化点をチェックし終えたならば、制御部25は、ST63としてこの動線編集レコードで管理される動線に変化点があるか否か、すなわち、変化点フラグがセットされた動線インデックス情報が存在するか否かを調べる。そして、変化点フラグがセットされた動線インデックス情報を検出したならば、変化点を有する動線編集レコードなので、制御部25は、ST64としてその変化点での動線分割処理を実行する。
【0053】
すなわち制御部25は、この動線編集レコードのコピーを動線データベース33に追加し、このコピーした動線編集レコードの動線IDを、前記最終動線IDに“1”を加算した値に書き換える。このとき、記憶している最終動線IDにも“1”を加算する。また、コピーした動線編集レコードに関して、先頭の動線インデックス情報から変化点フラグがセットされている動線インデックス情報の直前のインデックス情報までを削除し、変化点フラグがセットされている動線インデックス情報を先頭のインデックス情報とする。そして、この先頭のインデックス情報の変化点フラグをリセットするともに、この先頭のインデックス情報の二次元座標を当該動線編集レコードの動線開始位置座標(X0,Y0)とする。さらに、この動線編集レコードについて前記状態定義処理と同様の処理を実行し、状態ステータスを更新する。しかる後、部分動線ステータスを「オン」して、部分動線編集レコードとする。
【0054】
一方、コピー元の動線編集レコードについては、変化点フラグがセットされている動線インデックス情報から以後の動線インデックス情報を削除し、残った動線インデックス情報のうち日時が最も新しい動線インデックス情報の二次元座標を、当該動線編集レコードの動線終点座標(Xn,Yn)とする。そして、この動線編集レコードについても前記状態定義処理と同様の処理を実行して状態ステータスを更新するとともに、部分動線ステータスを「オン」して、部分動線編集レコードとする。
【0055】
かくして、変化点を有する動線編集レコードが変化点より前の部分動線レコードと変化点以後の部分動線レコードとに自動的に分割されるので、次に、制御部25は、コピーした部分動線編集レコード(変化点以後の部分動線レコード)にさらに変化点フラグがセットされている動線インデックス情報が存在するか否かを調べる。そして、変化点フラグがセットされている動線インデックス情報を検出したならば、上記と同様な処理を実行して、変化点より前の部分動線レコードと変化点以後の部分動線レコードとに分割する(部分動線データ生成手段)。
【0056】
こうして、変化点を有する動線編集レコードを、変化点を有さない複数の部分動線編集レコードに分割し終えたならば、次に、制御部25は、ST65として各部分動線編集レコードから無効エリア内の部分動線に関するレコードを無効化する。
【0057】
すなわち、部分動線編集レコード毎に状態ステータスを調べ、「無効」であったならば、この部分動線編集レコードの無効化ステータスをセットする。
【0058】
上記ST61〜ST65までの処理を、全ての動線編集レコードについて実行したならば、制御部25は、ST66として無効化条件の中の時間条件がオンしているか否かを判断する。時間条件がオンされていない場合には、この分割処理を終了する。
【0059】
時間条件がオンされていた場合には、動線データベース33から部分動線ステータスがセットされているレコード、すなわち部分動線編集レコードで、無効化ステータスがセットされていないレコードを順次抽出する。そして、前述した動線無効化処理のときと同様に動線追跡時間を算出して、閾値以下であれば無効化ステータスをセットする。有効な全ての部分動線編集レコードについて上記処理を完了すると、この分割処理を終了する。
【0060】
上記分割処理を実行することによって、動線データベース33に記憶されている有効な動線編集レコードは、その定義情報が、「入口」,「入口→入口」,「入口→店内」,「店内→店内」または「店内→入口」のいずれかになる。
【0061】
動線の分割処理を終了すると、制御部25は、ST6として動線データベース33を検索して、無効化ステータスがセットされていない全ての動線編集レコードを抽出する。そして、抽出したレコードの動線ID、開始位置座標及び終了位置座標を一覧表にした動線リストを作成し、動線編集画面40の動線リスト表示部43に表示する。そして制御部25は、ST7としてオペレータにより動線リストからいずれかの動線が選択されるのを待機する。すなわち、動線データベース33に記憶された動線データの中から連結元となる第1の動線データの選択入力を受付ける(第1の動線選択手段)。
【0062】
操作入力部23の操作入力により動線リストからいずれかの動線IDが選択入力されたならば、制御部25は、ST8としてこの選択された動線IDを連結元動線のIDとして記憶する。そして、ST9として連結元動線再生処理を実行する。この再生処理の処理手順は、図11の流れ図によって示される。
【0063】
すなわち制御部25は、先ず、ST71として動線生データベース31を先頭フレームの動線生データから順に検索して、連結元動線IDをターゲットIDとするターゲット情報を含む動線生データを全て取込む。次に、ST72として取込んだ各動線生データから、それぞれカメラ画像ファイル名を取得する。そして、カメラ画像データベース32からこのカメラ画像ファイル名が設定されたカメラ画像ファイルを全て取込む。
【0064】
次に、制御部25は、ST73として取込んだ各動線生データのフレーム日時情報を比較する。そして、フレーム日時情報が古い順に動線生データを選択して、以下の処理を実行する。
【0065】
すなわち、ST74として選択した動線生データから連結元動線IDをターゲットIDとするターゲット情報の三次元座標を取得する。また、ST75として選択した動線生データのカメラ画像オフセット値で特定されるフレーム画像を、取込んだカメラ画像ファイルから抽出する。さらに、ST76として取得した世界座標系の三次元座標を、該当するカメラ画像系の座標に変換する。この変換処理は、カメラCA1〜CA6毎に、それぞれ図12の流れ図に示す手順で処理する。なお、この変換処理では、カメラパラメータデータベース35に予め設定されている以下のパラメータを使用する。
【0066】
・世界座標系の動線座標:x,y,h
・世界座標系のカメラの位置:Wx,Wy,Wz
・画像中心の座標:Cx,Cy
・世界座標系の座標軸周りのカメラ回転角:Rx,Ry,Rz
・全方位カメラのパラメータ:b,c,f
・魚眼カメラのパラメータ:k1,k3,k5,scale
先ず、制御部25は、ST81として変換対象の動線座標(x,y,h)を、カメラ位置を原点とした座標系(X0,Y0,Z0)に平行移動する。この処理は、次の演算式により実行される。
【数1】
【0067】
次に、制御部25は、ST82として平行移動した動線座標(X0,Y0,Z0)について、世界座標系の座標軸周りのカメラ回転角を使って回転処理し、世界座標系とカメラ座標系の軸を合せる。この処理は、次の演算式により実行される。
【0068】
[X軸周りの回転]
【数2】
【0069】
[Y軸周りの回転]
【数3】
【0070】
[Z軸周りの回転]
【数4】
【0071】
次に、制御部25は、ST83として処理対象のカメラの種類を判別する。魚眼カメラCA1,CA2,CA3に対しては、ST84として魚眼カメラのパラメータを使って、動線座標(Xz,Yz,Zz)を世界座標系からカメラ画像座標系に変換する。この処理は、次の演算により実行される。
【0072】
先ず、Xd=rcost:Yd=rsintとする。
【0073】
ただし、Yz≧0のとき、
【数5】
【0074】
Yz<0のとき、
【数6】
【0075】
である。ここで、上記rの値を、下記数式のニュートン法を用いて求める。
【数7】
【0076】
なお、この数式において、初期値r0を0.0、目標値をθとする。また、|rn+1−rn|<0.01で収束したとみなす。その時点でのrの値を使用する。
【0077】
一方、全方位カメラCA4,CA5,CA6に対しては、ST85として全方位カメラのパラメータを使って、動線座標(Xz,Yz,Zz)を世界座標系からカメラ画像座標系に変換する。この処理は、次の演算式により実行される。
【数8】
【0078】
こうして、動線座標を世界座標系からカメラ画像座標系に変換したならば、制御部25は、ST86として変換後の座標(Xd,Yd)をカメラ画像座標系の原点に平行移動する。この処理は、次の演算式により実行される。
【数9】
【0079】
以上、ST81〜ST86の処理を実行することにより、選択した動線生データから取得したターゲット情報の三次元座標が、各カメラCA1〜CA6のカメラ画像系の座標に変換される。
【0080】
かくして、三次元座標、フレーム画像及びカメラ画像系座標を取得したならば、制御部25は、ST77としてその三次元座標に基づいて動線編集画面40の動線編集部41に動線を表示する。また同時に、動線編集画面40のカメラ画像表示部42にフレーム画像を表示し、さらに、カメラ画像系座標に基づいてカメラ画像表示部42に連結元動線IDを表示する。
【0081】
しかる後、制御部25は、ST78として処理した動線生データの次に古い動線生データが取り込まれているか否かを判断する。次に古い動線生データが取り込まれている場合には、前記ST74〜ST78の処理を繰り返す。次に古い動線生データが取り込まれていない場合には、取り込んだフレーム別動線生データについてフレーム日時情報が古い順に前記ST74〜ST78の処理を実行したので、この再生処理を終了する。
【0082】
かかる手順の再生処理が実行されることにより、動線編集画面40の動線編集部41には、動線リストの中からオペレータが選択した動線IDの動線が表示される。また、この動線表示に同期して、同一時点のカメラ画像が動線編集画面40のカメラ画像表示部42に表示される。そして、このカメラ画像には、動線のターゲット位置に動線IDが表示される。
【0083】
したがってオペレータは、動線の動きとカメラ画像とを見比べて、その動線が1人の人物を追跡したものであるか否かを容易に判別することができる。また、前述したように、同一人物に対する動線は途中で途切れることが一般的であるので、途切れる前の動線と途切れた後の動線とが同一人物に対する動線なのか否かも容易に判別することできる。そして、同一人物に対する動線であると判別できた場合には、その途切れる前の動線と途切れた後の動線とを1つの動線に連結すればよい。そこで次に、この連結作業について述べる。
【0084】
なお、前述したように、動線データベース33に記憶されている有効な動線編集レコードは、その定義情報が、「入口」,「入口→入口」,「入口→店内」,「店内→店内」または「店内→入口」のいずれかである。このうち、定義情報が「入口→入口」及び「入口」のレコードは、入店から退店までを追跡した完全動線である。また、定義情報が「店内→入口」のレコードは、退店につながるレコードなので、連結先動線にはなり得るものの連結元動線にはなり得ない。
【0085】
そこで、前記連結元動線再生処理が終了すると、制御部25は、ST10としてこの再生した連結元動線が完全動線であるか否かを判断する。すなわち、動線データベース33を検索して、連結元動線IDを動線IDとする動線編集レコードを取得する。そして、この動線編集レコードの状態ステータスを調べる。ここで、状態ステータスが「入口→入口」または「入口」の場合は完全動線と判断し、その他の場合は不完全動線と判断する。
【0086】
完全動線の場合には、制御部25は、ST15の連結定義処理に進む。
不完全動線の場合には、制御部25は、ST11として連結先動線候補検索処理を実行する。この検索処理の処理手順は、図13の流れ図によって示される。すなわち制御部25は、先ず、ST91として設定データベース34から検索条件を取得する。検索条件には、「時間」と「距離」がある。
【0087】
検索条件として「時間」が設定されていた場合には、制御部25は、ST92として連結元動線の動線終了時刻を取得する。すなわち、連結元動線IDを動線IDとする動線編集レコードのなかから最終フレームに対応した動線インデックス情報のフレーム日時を動線終了時刻として取得する(終点時間検出手段)。
【0088】
次に、制御部25は、ST93として動線データベース33を検索して、連結先動線として完全動線以外の動線、すなわち状態ステータスが「入口→店内」,「店内→店内」,「店内→入口」の動線編集レコードを抽出する。そして、この抽出した連結先動線の動線開始時刻、すなわち当該動線編集レコードの先頭フレームに対応した動線インデックス情報のフレーム日時と、前記連結元動線の動線終了時刻との時間差を算出する(時間差算出手段)。そして、この時間差が予め設定された閾値以内であった場合には、この連結先動線を連結先候補の動線として残す。時間差が閾値を超える連結先動線は、連結先候補から外す。
【0089】
動線データベース33に設定されている全ての連結先動線について、上記ST93以降の処理を実行する。そして、この処理を終了したならば、制御部25は、ST94として連結先候補の動線を時間差の小さい順にリストアップして(連結先候補抽出手段)、動線リスト表示部43に表示する(連結先候補表示手段)。
【0090】
一方、検索条件として「距離」が設定されていた場合には、制御部25は、ST95として連結元動線の動線終点座標を取得する。すなわち、連結元動線IDを動線IDとする動線編集レコードから動線終点座標を取得する(終点位置検出手段)。
【0091】
次に、制御部25は、ST96として動線データベース33を検索して、連結先動線の動線編集レコードを抽出する。そして、この抽出した連結先動線の動線始点座標、すなわち当該動線編集レコードから動線始点座標を取得し、前記連結元動線の動線終点座標との距離を算出する(距離算出手段)。そして、この距離が予め設定された閾値以内であった場合には、この連結先動線を連結先候補の動線として残す。距離が閾値を超える連結先動線は、連結先候補から外す。
【0092】
動線データベース33に設定されている全ての連結先動線について、上記ST96以降の処理を実行する。そして、この処理を終了したならば、制御部25は、ST97として連結先候補の動線を距離の短い順にリストアップして(連結先候補抽出手段)、動線リスト表示部43に表示する(連結先候補表示手段)。
【0093】
こうして、連結先候補処理が終了すると、制御部25は、ST12として動線リスト表示部43に表示されている候補の中から連結先動線が選択されるのを待機する。すなわち、動線データベース33に記憶された動線データの中から連結先となる第2の動線データの選択入力を受付ける(第2の動線選択手段)。そして、操作入力部23の操作入力により連結先動線が選択されたならば、制御部25は、ST13として連結先動線再生処理を実行する。この再生処理は、図11に示した連結元動線再生処理と対象となる動線データが異なるだけで、その処理手順は同じである。したがって、ここでの説明は省略する。
【0094】
この再生処理が実行されることにより、動線編集画面40の動線編集部41には、連結先候補リストの中からオペレータが選択した連結先動線IDの動線が表示される。また、この動線表示に同期して、同一時点のカメラ画像が動線編集画面40のカメラ画像表示部42に表示される。そして、このカメラ画像には、動線のターゲット位置に動線IDが表示される。
【0095】
したがってオペレータは、動線の動きとカメラ画像とを見比べて、その動線が先に選択した連結元動線に連結される動線であるか否かを判断する。そして、操作入力部23を介してその判断結果を入力する。
【0096】
制御部25は、ST14として連結元動線に連結される動線でない旨の入力を受付けた場合には、ST12に戻り、次の連結先動線が選択されるのを待機する。これに対し、連結元動線に連結される動線である旨の入力を受付けた場合には、ST15の連結定義処理を実行する。
【0097】
この連結定義処理の処理手順は、図14の流れ図によって示される。すなわち制御部25は、先ず、ST101として連結元動線の状態ステータスを判定する。ここで、状態ステータスが「入口→入口」または「入口」の場合、すなわち完全動線の場合には、この連結元動線に対応した動線編集レコードの連結定義情報[起点]を「連結元動線ID」とし、連結定義情報[前連結ID]及び[後連結ID]をいずれも「設定なし」とする。
【0098】
これに対し、状態ステータスが「入口→店内」の場合には、ST102として、ST12の処理で選択された連結先動線の状態ステータスを判定する。連結先動線の状態ステータスが「店内→店内」であった場合には、この連結先動線及び連結元動線にそれぞれ対応した動線編集レコードの連結定義情報[起点]を「連結元動線ID」とする。また、連結元動線に対応した動線編集レコードの連結定義情報[前連結ID]を「設定なし」とし、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。これに対し、連結先動線の状態ステータスが「店内→入口」または「入口」であった場合には、この連結先動線及び連結元動線にそれぞれ対応した動線編集レコードの連結定義情報[起点]を「連結元動線ID」とする。また、連結元動線に対応した動線編集レコードの連結定義情報[前連結ID]を「設定なし」とし、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。さらに、連結先動線に対応した動線編集レコードの連結定義情報[後連結ID]を「設定なし」とする。
【0099】
一方、連結元動線の状態ステータスが「入口→入口」,「入口」及び「入口→店内」でない場合、すなわち「店内→店内」の場合には、ST103として、やはり連結先動線の状態ステータスを判定する。連結先動線の状態ステータスが「店内→店内」であった場合には、この連結先動線に対応した動線編集レコードの連結定義情報[起点]を「連結元動線の起点」とする。また、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。これに対し、連結先動線の状態ステータスが「店内→入口」であった場合には、この連結先動線に対応した動線編集レコードの連結定義情報[起点]を「連結元動線の起点」とする。また、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。さらに、連結先動線に対応した動線編集レコードの連結定義情報[後連結ID]を「設定なし」とする。
【0100】
こうして、連結定義処理が終了すると、制御部25は、ST16として連結元動線が退店まで定義されたか否かを判断する。連結元動線が完全動線であった場合には、退店まで定義されたと判断する。また、連結先動線として選択された動線の状態ステータスが「店内→入口」であった場合も、退店まで定義されたと判断する。それ以外の場合は、まだ退店まで定義されていないと判断する。そして、その場合は、ST17として連結先動線を連結元動線に置き換えて、ST9以降の処理を再度実行する。
【0101】
ST16にて、退店まで定義されたと判断した場合には、制御部25は、ST18として動線の選択が完了したか否かを判断する。ここで、操作入力部23の操作入力により選択継続が指示された場合には、ST6に戻り、動線リストをリスト表示部43に表示させて、次の動線が選択されるのを待機する。
【0102】
一方、操作入力部23の操作入力により選択終了が指示された場合には、制御部25は、ST19として連結処理を実行する。この連結処理の処理手順は、図15の流れ図によって示される。すなわち制御部25は、先ず、ST111として動線データベース33を検索して、連結定義情報が設定された動線編集レコードの中から定義情報[前連結ID]が「設定なし」の動線編集レコードを1つ選択する。この選択した動線編集レコードに対応する動線を動線Aと認識する。
【0103】
次に、制御部25は、ST112としてこの動線Aに対応した動線編集レコードの連結定義情報[後連結ID]が動線IDとして設定された動線編集レコードを動線データベース33から取得する。そして、この取得した動線編集レコードに対応する動線を動線Bと認識する。
【0104】
次に、制御部25は、ST113として動線Aに対応した動線編集レコードの連結定義情報[起点]と、動線Bに対応した動線編集レコードの連結定義情報[起点]とを比較する。その結果、一致していることを確認したならば、次に、制御部25は、ST114として動線Aの動線IDと、動線Bに対応した動線編集レコードの連結定義情報[前連結ID]とを比較する。
【0105】
その結果、一致していることを確認したならば、次に、制御部25は、ST115として動線Aに対応した動線編集レコードの最終フレームに対応した動線インデックス情報のフレーム日時と、動線Bに対応した動線編集レコードの先頭フレームに対応した動線インデックス情報のフレーム日時との時間差を算出する。そして、この時間差が、カメラ画像の1フレーム以内であるか否かを判断する(連結点判定手段)。
【0106】
1フレーム以内であった場合には、動線Aの終点位置と動線Bの始点位置とが一致していると判断し、制御部25は、ST116として動線Aと動線Bを連結する。すなわち、動線Bに対応した動線編集レコードの先頭フレームに対応した動線インデックス情報から最終フレームに対応した動線インデックス情報を抽出し、動線Aに対応した動線編集レコードの最終フレームに対応した動線インデックス情報の後に付加する。そして、この動線Aに対応した動線編集レコードの動線終点座標を、動線Bに対応した動線編集レコードから抽出した最終フレーム対応の動線インデックス情報の座標に置換する。さらに、動線Aに対応した動線編集レコードの状態ステータスを更新する。かくして、連結元となる動線データの始点から連結先となる動線データの終点までの軌跡を示す動線データが生成される(動線データ生成手段)。
【0107】
これに対し、時間差が1フレームより長かった場合には、動線Aの終点と動線Bの起点との間を補間処理する(補間手段)。補間処理としては、動線Aの終点と動線Bの起点との間を直線で結ぶ線形補間が挙げられる。店内での客の動きは、ゆったりとした歩行が主であるので、線形補間でも充分に補間処理が可能である。補間処理の後、制御部25は、ST116の連結処理を行う。
【0108】
その後、制御部25は、ST117として動線Bに対応した動線編集レコードの連結定義情報[後連結ID]を判定する。ここで、連結定義情報[後連結ID]が「設定なし」以外の場合には、動線Bを動線Aと置き換えて、ST112以降の処理を再度実行する。
【0109】
動線Bに対応した動線編集レコードの連結定義情報[後連結ID]が「設定なし」であった場合には、制御部25は、ST118として連結定義情報が設定された動線編集レコードを検索し終えたか否かを判断する。未だ検索し終えていない場合には、ST111以降の処理を再度実行する。検索し終えたならば、この連結処理を終了する。
【0110】
連結処理を終了すると、制御部25は、ST20として動線データベース33に記憶された動線編集レコードの中から、状態ステータスが「入口→入口」または「入口」の完全動線のレコードを検出する。そして、この完全動線のレコードを、記憶部22の出力ファイルに出力する。データ出力後、動線編集プログラムは終了する。
【0111】
このように本実施の形態によれば、動線データベース33に記憶された動線データの中から連結元となる第1の動線データの選択入力を受付けるとともに、同じく動線データの中から連結先となる第2の動線データの選択入力を受付け、連結元となる動線データと連結先となる動線データとが選択されると、連結元となる動線データの始点から連結先となる動線データの終点までの軌跡を示す動線データを自動的に生成するようにしたので、周知の動線データ生成システム10により生成された複数の動線を1本の動線に容易に連結することができる。その結果、入退場口IN/OUTから入店した人物が店舗内を回り、会計カウンタCHで会計を済ませて出店するまでを、1本の動線で結ぶことができる。
【0112】
この場合において、本実施の形態では、連結元となる動線データが選択されると、その動線データの終点位置を検出し、動線データベース33に記憶された動線データ毎に、その動線データの始点位置から連結元となる動線データの終点位置までの距離を算出して、この距離が予め設定された閾値以内である動線データを連結先動線候補としてリストアップするようにしている。したがって、距離を条件に連結先動線候補をさらに絞ることができるので、連結先動線選択作業をより簡便に行える利点がある。
【0113】
同様に、本実施の形態では、連結元となる動線データが選択されると、その動線データの終点検出時間を検出し、動線データベース33に記憶された動線データ毎に、その動線データの始点検出時間と連結元となる動線データの終点検出時間との差分を算出して、この時間差が予め設定された閾値以内である動線データを連結先動線候補としてリストアップするようにしている。したがって、時間を条件に連結先動線候補をさらに絞ることもできるので、連結先動線選択作業をより簡便に行える利点がある。
【0114】
また、本実施の形態でよれば、連結元動線として選択された動線データの終点位置と、連結先動線として選択された動線データの始点位置とが一致しているか否かを判定し、終点と始点とが一致していないとき、その点間を自動的に補間するようにしている。したがって、入退場口から入場して店内を回り、退場する人物の動線を確実に1本の線で結ぶことができる。
【0115】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【0116】
また、前記実施の形態では装置内部に発明を実施する機能(動線編集プログラム)が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、CD−ROM等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のOS(オペレーティング・システム)等と協働してその機能を実現させるものであってもよい。
【0117】
この他、前記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を組合わせてもよい。
【図面の簡単な説明】
【0118】
【図1】本発明の一実施の形態におけるシステム構成を示すブロック図。
【図2】同実施の形態における店舗内レイアウトの説明図。
【図3】同実施の形態における動線データのデータ構造を示す模式図。
【図4】同実施の形態における動線編集レコードのデータ構造を示す模式図。
【図5】同実施の形態における動線編集画面の一例を示す模式図。
【図6】同実施の形態において動線編集プログラムによる動線編集装置の処理手順を示す流れ図。
【図7】図6における動線データ作成処理の要部処理手順を示す流れ図。
【図8】図6における動線状態定義処理の要部処理手順を示す流れ図。
【図9】図6における動線無効化処理の要部処理手順を示す流れ図。
【図10】図6における動線分離処理の要部処理手順を示す流れ図。
【図11】図6における動線再生処理の要部処理手順を示す流れ図。
【図12】図11における座標変換処理の要部処理手順を示す流れ図。
【図13】図6における連結先動線候補検索処理の要部処理手順を示す流れ図。
【図14】図6における連結定義処理の要部処理手順を示す流れ図。
【図15】図6における連結処理の要部処理手順を示す流れ図。
【符号の説明】
【0119】
10…動線データ生成システム、20…動線編集装置、21…データ主深部、22…記憶部、23…操作入力部、24…画面表示部、25…制御部、31…動線データベース、32…カメラ画像データベース、33…動線データベース、34…設定データベース、35…カメラパラメータデータベース、36…店内エリア定義データベース、37…店内マップデータベース、41…動線編集部、42…カメラ画像表示部、43…動線リスト表示部。
【特許請求の範囲】
【請求項1】
監視領域内を移動する複数の移動体それぞれの始点から終点までの軌跡を示す動線データを記憶する動線データベースと、
前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付ける第1の動線選択手段と、
この第1の動線選択手段により第1の動線データが選択されると、その動線データの終点位置を検出する終点位置検出手段と、
前記動線データベースに記憶された動線データ毎に、その動線データの始点位置から前記終点位置検出手段により検出された終点位置までの距離を算出する距離算出手段と、
この距離算出手段により算出された距離が予め設定された閾値以内である動線データを前記第1の動線データと連結される第2の動線データの候補としてリストアップする候補抽出手段と、
この候補抽出手段によりリストアップされた動線データの中から前記第2の動線データの選択入力を受付ける第2の動線選択手段と、
前記第1の動線選択手段及び第2の動線選択手段により第1の動線データと第2の動線データとが選択されると、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成する動線データ生成手段と、
を具備したことを特徴とする動線編集装置。
【請求項2】
前記候補抽出手段によりリストアップされた動線データのリストを表示する候補表示手段をさらに具備したことを特徴とする請求項1記載の動線編集装置。
【請求項3】
前記監視領域を入退場の領域と監視対象の領域とに区分するための定義データを記憶するエリア定義データベースと、
このエリア定義データベースに記憶された定義データに基づいて前記動線データベースに記憶された動線データ毎にその始点と終点が存在する領域を判定し、その判定結果を示す動線状態情報を当該動線データと関連付けて記憶する動線状態判定手段と、
をさらに具備し、
前記候補抽出手段は、前記動線状態判定手段により始点と終点の少なくとも一方が監視対象領域にあると判定された動線データのなかから前記距離算出手段により算出された距離が予め設定された閾値以内である動線データを前記第2の動線データの候補としてリストアップすることを特徴とする請求項1または2記載の動線編集装置。
【請求項4】
監視領域内を移動する複数の移動体それぞれの始点から終点までの軌跡を示す動線データを少なくともその始点と終点が検出された時間データとともに記憶する動線データベースと、
前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付ける第1の動線選択手段と、
この第1の動線選択手段により第1の動線データが選択されると、その動線データの終点検出時間を検出する終点時間検出手段と、
前記動線データベースに記憶された動線データ毎に、その動線データの始点検出時間と前記終点時間検出手段により検出された終点検出時間との差分を算出する時間差算出手段と、
この時間差算出手段により算出された時間差が予め設定された閾値以内である動線データを前記第1の動線データと連結される第2の動線データとしてリストアップする候補抽出手段と、
この候補抽出手段によりリストアップされた動線データの中から前記第2の動線データの選択入力を受付ける第2の動線選択手段と、
前記第1の動線選択手段及び第2の動線選択手段により第1の動線データと第2の動線データとが選択されると、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成する動線データ生成手段と、
を具備したことを特徴とする動線編集装置。
【請求項5】
前記候補抽出手段によりリストアップされた動線データのリストを表示する候補表示手段をさらに具備したことを特徴とする請求項4記載の動線編集装置。
【請求項6】
前記監視領域を入退場の領域と監視対象の領域とに区分するための定義データを記憶するエリア定義データベースと、
このエリア定義データベースに記憶された定義データに基づいて前記動線データベースに記憶された動線データ毎にその始点と終点が存在する領域を判定し、その判定結果を示す動線状態情報を当該動線データと関連付けて記憶する動線状態判定手段と、
をさらに具備し、
前記候補抽出手段は、前記動線状態判定手段により始点と終点の少なくとも一方が監視対象領域にあると判定された動線データのなかから前記時間差算出手段により算出された時間差が予め設定された閾値以内である動線データを前記第2の動線データとしてリストアップすることを特徴とする請求項4または5記載の動線編集装置。
【請求項7】
前記第1の動線データは連結元となる動線の動線データであり、前記第2の動線データは連結先となる動線の動線データであることを特徴とする請求項1乃至6のいずれか1記載の動線編集装置。
【請求項8】
前記第1の動線選択手段により選択された動線データの終点位置と、前記第2の動線選択手段により選択された動線データの始点位置とが一致しているか否かを判定する連結点判定手段と、
この連結点判定手段により前記終点と始点とが一致していないとき、その点間を補間する補間手段と、
をさらに具備したことを特徴とする請求項1乃至7のうちいずれか1記載の動線編集装置。
【請求項9】
前記補間手段は、前記終点と始点の間を直線で結ぶ線形補間であることを特徴とする請求項8記載の動線編集装置。
【請求項10】
前記動線データ生成手段は、前記動線データベースに記憶された前記第2の動線データの始点から終点までのデータを取込み、前記動線データベースに記憶された前記第1の動線データの終点を示すデータの後に追加する手段であることを特徴とする請求項1乃至19のうちいずれか記載の動線編集装置。
【請求項11】
動線データベースに、複数の移動体それぞれの始点から終点までの軌跡を示す動線データを記憶し、
第1の動線選択手段により、前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付け、
第1の動線データが選択されると、終点位置検出手段により、その動線データの終点位置を検出し、
第1の動線データの終点位置が検出されると、距離算出手段により、前記動線データベースに記憶された動線データ毎に、その動線データの始点位置から前記終点位置までの距離を算出し、
前記動線データベースに記憶された動線データ毎に、その動線データの始点位置から前記終点位置までの距離が算出されると、候補抽出手段により、算出された距離が予め設定された閾値以内である動線データを前記第1の動線データと連結される第2の動線データの候補としてリストアップし、
このリストアップされた動線データの中から、第2の動線選択手段により、前記第2の動線データの選択入力を受付け、
前記第1の動線データと第2の動線データとが選択されると、動線データ生成手段により、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成することを特徴とする動線編集方法。
【請求項12】
前記候補抽出手段によりリストアップされた動線データのリストを表示するステップをさらに具備したことを特徴とする請求項11記載の動線編集方法。
【請求項13】
動線データベースに、複数の移動体それぞれの始点から終点までの軌跡を示す動線データを少なくともその始点と終点が検出された時間データとともに記憶し、
第1の動線選択手段により、前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付け、
第1の動線データが選択されると、終点時間検出手段により、その動線データの終点検出時間を検出し、
第1の動線データの終点時間が検出されると、時間差算出手段により、前記動線データベースに記憶された動線データ毎に、その動線データの始点検出時間と前記終点検出時間との差分を算出し、
前記動線データベースに記憶された動線データ毎に、その動線データの始点検出時間と前記終点検出時間との差分が算出されると、候補抽出手段により、その時間差が予め設定された閾値以内である動線データを前記第1の動線データと連結される第2の動線データとしてリストアップし、
このリストアップされた動線データの中から、第2の動線選択手段により、前記第2の動線データの選択入力を受付け、
前記第1の動線データと第2の動線データとが選択されると、動線データ生成手段により、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成することを特徴とする動線編集方法。
【請求項14】
前記候補抽出手段によりリストアップされた動線データのリストを表示するステップをさらに具備したことを特徴とする請求項13記載の動線編集方法。
【請求項15】
前記第1の動線選択手段により選択された動線データの終点位置と、前記第2の動線選択手段により選択された動線データの始点位置とが一致しているか否かを判定するステップと、
前記終点と始点とが一致していないと判定されたとき、その点間を補間するステップと、
をさらに設けたことを特徴とする請求項11乃至14のうちいずれか1記載の動線編集方法。
【請求項16】
複数の移動体それぞれの始点から終点までの軌跡を示す動線データを記憶する動線データベースを備えたコンピュータに、
前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付ける機能と、
第1の動線データが選択されると、その動線データの終点位置を検出する機能と、
第1の動線データの終点位置が検出されると、前記動線データベースに記憶された動線データ毎に、その動線データの始点位置から前記第1の動線データの終点位置までの距離を算出する機能と、
前記動線データベースに記憶された動線データ毎に、その動線データの始点位置から前記第1の動線データの終点位置までの距離が算出されると、その算出された距離が予め設定された閾値以内である動線データを前記第1の動線データと連結される第2の動線データの候補としてリストアップする機能と、
このリストアップされた動線データの中から、前記第2の動線データの選択入力を受付ける機能と、
前記第1の動線データと第2の動線データとが選択されると、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成する機能と、
を実現させることを特徴とする動線編集プログラム。
【請求項17】
前記第2の動線データの候補としてリストアップされた動線データのリストを表示部に表示させる機能、
をさらに実現させることを特徴とする請求項16記載の動線編集プログラム。
【請求項18】
複数の移動体それぞれの始点から終点までの軌跡を示す動線データを少なくともその始点と終点が検出された時間データとともに記憶する動線データベースを備えたコンピュータに、
前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付ける機能と、
第1の動線データが選択されると、その動線データの終点検出時間を検出する機能と、
第1の動線データの終点検出時間が検出されると、前記動線データベースに記憶された動線データ毎に、その動線データの始点検出時間と前記第1の動線データの終点検出時間との差分を算出する機能と、
前記動線データベースに記憶された動線データ毎に、その動線データの始点検出時間から前記第1の動線データの終点検出時間までの時間差が算出されると、この時間差が予め設定された閾値以内である動線データを第2の動線データの候補としてリストアップする機能と、
このリストアップされた動線データの中から、前記第2の動線データの選択入力を受付ける機能と、
前記第1の動線データと第2の動線データとが選択されると、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成する機能と、
を実現させることを特徴とする動線編集プログラム。
【請求項19】
前記第2の動線データの候補としてリストアップされた動線データのリストを表示部に表示させる機能、
をさらに実現させることを特徴とする請求項18記載の動線編集プログラム。
【請求項20】
連結元となる動線データの終点位置と、連結先となる動線データの始点位置とが一致しているか否かを判定する機能と、
前記終点と始点とが一致していないと判定されたとき、その点間を補間する機能と、
を前記コンピュータにさらに実現させることを特徴とする請求項16乃至19のうちいずれか1記載の動線編集プログラム。
【請求項1】
監視領域内を移動する複数の移動体それぞれの始点から終点までの軌跡を示す動線データを記憶する動線データベースと、
前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付ける第1の動線選択手段と、
この第1の動線選択手段により第1の動線データが選択されると、その動線データの終点位置を検出する終点位置検出手段と、
前記動線データベースに記憶された動線データ毎に、その動線データの始点位置から前記終点位置検出手段により検出された終点位置までの距離を算出する距離算出手段と、
この距離算出手段により算出された距離が予め設定された閾値以内である動線データを前記第1の動線データと連結される第2の動線データの候補としてリストアップする候補抽出手段と、
この候補抽出手段によりリストアップされた動線データの中から前記第2の動線データの選択入力を受付ける第2の動線選択手段と、
前記第1の動線選択手段及び第2の動線選択手段により第1の動線データと第2の動線データとが選択されると、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成する動線データ生成手段と、
を具備したことを特徴とする動線編集装置。
【請求項2】
前記候補抽出手段によりリストアップされた動線データのリストを表示する候補表示手段をさらに具備したことを特徴とする請求項1記載の動線編集装置。
【請求項3】
前記監視領域を入退場の領域と監視対象の領域とに区分するための定義データを記憶するエリア定義データベースと、
このエリア定義データベースに記憶された定義データに基づいて前記動線データベースに記憶された動線データ毎にその始点と終点が存在する領域を判定し、その判定結果を示す動線状態情報を当該動線データと関連付けて記憶する動線状態判定手段と、
をさらに具備し、
前記候補抽出手段は、前記動線状態判定手段により始点と終点の少なくとも一方が監視対象領域にあると判定された動線データのなかから前記距離算出手段により算出された距離が予め設定された閾値以内である動線データを前記第2の動線データの候補としてリストアップすることを特徴とする請求項1または2記載の動線編集装置。
【請求項4】
監視領域内を移動する複数の移動体それぞれの始点から終点までの軌跡を示す動線データを少なくともその始点と終点が検出された時間データとともに記憶する動線データベースと、
前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付ける第1の動線選択手段と、
この第1の動線選択手段により第1の動線データが選択されると、その動線データの終点検出時間を検出する終点時間検出手段と、
前記動線データベースに記憶された動線データ毎に、その動線データの始点検出時間と前記終点時間検出手段により検出された終点検出時間との差分を算出する時間差算出手段と、
この時間差算出手段により算出された時間差が予め設定された閾値以内である動線データを前記第1の動線データと連結される第2の動線データとしてリストアップする候補抽出手段と、
この候補抽出手段によりリストアップされた動線データの中から前記第2の動線データの選択入力を受付ける第2の動線選択手段と、
前記第1の動線選択手段及び第2の動線選択手段により第1の動線データと第2の動線データとが選択されると、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成する動線データ生成手段と、
を具備したことを特徴とする動線編集装置。
【請求項5】
前記候補抽出手段によりリストアップされた動線データのリストを表示する候補表示手段をさらに具備したことを特徴とする請求項4記載の動線編集装置。
【請求項6】
前記監視領域を入退場の領域と監視対象の領域とに区分するための定義データを記憶するエリア定義データベースと、
このエリア定義データベースに記憶された定義データに基づいて前記動線データベースに記憶された動線データ毎にその始点と終点が存在する領域を判定し、その判定結果を示す動線状態情報を当該動線データと関連付けて記憶する動線状態判定手段と、
をさらに具備し、
前記候補抽出手段は、前記動線状態判定手段により始点と終点の少なくとも一方が監視対象領域にあると判定された動線データのなかから前記時間差算出手段により算出された時間差が予め設定された閾値以内である動線データを前記第2の動線データとしてリストアップすることを特徴とする請求項4または5記載の動線編集装置。
【請求項7】
前記第1の動線データは連結元となる動線の動線データであり、前記第2の動線データは連結先となる動線の動線データであることを特徴とする請求項1乃至6のいずれか1記載の動線編集装置。
【請求項8】
前記第1の動線選択手段により選択された動線データの終点位置と、前記第2の動線選択手段により選択された動線データの始点位置とが一致しているか否かを判定する連結点判定手段と、
この連結点判定手段により前記終点と始点とが一致していないとき、その点間を補間する補間手段と、
をさらに具備したことを特徴とする請求項1乃至7のうちいずれか1記載の動線編集装置。
【請求項9】
前記補間手段は、前記終点と始点の間を直線で結ぶ線形補間であることを特徴とする請求項8記載の動線編集装置。
【請求項10】
前記動線データ生成手段は、前記動線データベースに記憶された前記第2の動線データの始点から終点までのデータを取込み、前記動線データベースに記憶された前記第1の動線データの終点を示すデータの後に追加する手段であることを特徴とする請求項1乃至19のうちいずれか記載の動線編集装置。
【請求項11】
動線データベースに、複数の移動体それぞれの始点から終点までの軌跡を示す動線データを記憶し、
第1の動線選択手段により、前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付け、
第1の動線データが選択されると、終点位置検出手段により、その動線データの終点位置を検出し、
第1の動線データの終点位置が検出されると、距離算出手段により、前記動線データベースに記憶された動線データ毎に、その動線データの始点位置から前記終点位置までの距離を算出し、
前記動線データベースに記憶された動線データ毎に、その動線データの始点位置から前記終点位置までの距離が算出されると、候補抽出手段により、算出された距離が予め設定された閾値以内である動線データを前記第1の動線データと連結される第2の動線データの候補としてリストアップし、
このリストアップされた動線データの中から、第2の動線選択手段により、前記第2の動線データの選択入力を受付け、
前記第1の動線データと第2の動線データとが選択されると、動線データ生成手段により、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成することを特徴とする動線編集方法。
【請求項12】
前記候補抽出手段によりリストアップされた動線データのリストを表示するステップをさらに具備したことを特徴とする請求項11記載の動線編集方法。
【請求項13】
動線データベースに、複数の移動体それぞれの始点から終点までの軌跡を示す動線データを少なくともその始点と終点が検出された時間データとともに記憶し、
第1の動線選択手段により、前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付け、
第1の動線データが選択されると、終点時間検出手段により、その動線データの終点検出時間を検出し、
第1の動線データの終点時間が検出されると、時間差算出手段により、前記動線データベースに記憶された動線データ毎に、その動線データの始点検出時間と前記終点検出時間との差分を算出し、
前記動線データベースに記憶された動線データ毎に、その動線データの始点検出時間と前記終点検出時間との差分が算出されると、候補抽出手段により、その時間差が予め設定された閾値以内である動線データを前記第1の動線データと連結される第2の動線データとしてリストアップし、
このリストアップされた動線データの中から、第2の動線選択手段により、前記第2の動線データの選択入力を受付け、
前記第1の動線データと第2の動線データとが選択されると、動線データ生成手段により、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成することを特徴とする動線編集方法。
【請求項14】
前記候補抽出手段によりリストアップされた動線データのリストを表示するステップをさらに具備したことを特徴とする請求項13記載の動線編集方法。
【請求項15】
前記第1の動線選択手段により選択された動線データの終点位置と、前記第2の動線選択手段により選択された動線データの始点位置とが一致しているか否かを判定するステップと、
前記終点と始点とが一致していないと判定されたとき、その点間を補間するステップと、
をさらに設けたことを特徴とする請求項11乃至14のうちいずれか1記載の動線編集方法。
【請求項16】
複数の移動体それぞれの始点から終点までの軌跡を示す動線データを記憶する動線データベースを備えたコンピュータに、
前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付ける機能と、
第1の動線データが選択されると、その動線データの終点位置を検出する機能と、
第1の動線データの終点位置が検出されると、前記動線データベースに記憶された動線データ毎に、その動線データの始点位置から前記第1の動線データの終点位置までの距離を算出する機能と、
前記動線データベースに記憶された動線データ毎に、その動線データの始点位置から前記第1の動線データの終点位置までの距離が算出されると、その算出された距離が予め設定された閾値以内である動線データを前記第1の動線データと連結される第2の動線データの候補としてリストアップする機能と、
このリストアップされた動線データの中から、前記第2の動線データの選択入力を受付ける機能と、
前記第1の動線データと第2の動線データとが選択されると、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成する機能と、
を実現させることを特徴とする動線編集プログラム。
【請求項17】
前記第2の動線データの候補としてリストアップされた動線データのリストを表示部に表示させる機能、
をさらに実現させることを特徴とする請求項16記載の動線編集プログラム。
【請求項18】
複数の移動体それぞれの始点から終点までの軌跡を示す動線データを少なくともその始点と終点が検出された時間データとともに記憶する動線データベースを備えたコンピュータに、
前記動線データベースに記憶された動線データの中から第1の動線データの選択入力を受付ける機能と、
第1の動線データが選択されると、その動線データの終点検出時間を検出する機能と、
第1の動線データの終点検出時間が検出されると、前記動線データベースに記憶された動線データ毎に、その動線データの始点検出時間と前記第1の動線データの終点検出時間との差分を算出する機能と、
前記動線データベースに記憶された動線データ毎に、その動線データの始点検出時間から前記第1の動線データの終点検出時間までの時間差が算出されると、この時間差が予め設定された閾値以内である動線データを第2の動線データの候補としてリストアップする機能と、
このリストアップされた動線データの中から、前記第2の動線データの選択入力を受付ける機能と、
前記第1の動線データと第2の動線データとが選択されると、前記第1の動線データの始点から前記第2の動線データの終点までの軌跡を示す動線データを生成する機能と、
を実現させることを特徴とする動線編集プログラム。
【請求項19】
前記第2の動線データの候補としてリストアップされた動線データのリストを表示部に表示させる機能、
をさらに実現させることを特徴とする請求項18記載の動線編集プログラム。
【請求項20】
連結元となる動線データの終点位置と、連結先となる動線データの始点位置とが一致しているか否かを判定する機能と、
前記終点と始点とが一致していないと判定されたとき、その点間を補間する機能と、
を前記コンピュータにさらに実現させることを特徴とする請求項16乃至19のうちいずれか1記載の動線編集プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2009−9395(P2009−9395A)
【公開日】平成21年1月15日(2009.1.15)
【国際特許分類】
【出願番号】特願2007−170706(P2007−170706)
【出願日】平成19年6月28日(2007.6.28)
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】
【公開日】平成21年1月15日(2009.1.15)
【国際特許分類】
【出願日】平成19年6月28日(2007.6.28)
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】
[ Back to top ]