説明

動線編集装置及び動線編集プログラム

【課題】同一移動体の追跡に失敗しているため削除せざるを得なかった動線データを活用して、分断された移動体の軌跡を完全なものに容易に復元できるようにする。
【解決手段】編集対象とする動線が選択されると、この選択された動線を第1の表示部で表示する。また、この動線の軌跡と同期させて、この動線に該当する移動体が検出されたカメラ画像を第2の表示部に表示する。第1の表示部に表示されている動線上の分割点指示入力を受付け、分割点指示入力を受付けると、編集対象となる動線を分割点で分割する。そして、分割された各動線のデータを動線データベースに登録する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、監視領域内を移動する人物等の移動体の移動経路を示す動線を編集する動線編集装置及びコンピュータを上記動線編集装置として機能させるためのコンピュータ読取り可能な動線編集プログラムに関する。
【背景技術】
【0002】
従来より、複数のカメラでそれぞれ撮影された複数のカメラ画像データを画像処理して人物等の移動体を特定し、この移動体の追跡を行って、移動体の位置座標データに、移動体の識別情報と時間情報とを紐付けした動線データを作成するシステムは、既に知られている。このようなシステムで作成された時系列の動線データをコンピュータが取込み、データ処理を行って、ディスプレイの画面に所望する移動体の軌跡を示す動線を再生表示する技術がある。このような動線表示技術をコンビニエンスストア等の店舗に適用することによって、顧客の店舗内の動向を把握することができる(例えば、特許文献1参照)。
【特許文献1】特開2006-350751号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、例えば店舗内には商品陳列棚や商品の広告ポスター,POP等が置かれており、人がそれらの陰に隠れてしまうことがある。このような場合、カメラ画像では途中で同一人物を追跡できなくなる。また、複数の人のすれ違いや密集等により複数の人が重なってしまうことがある。このような場合も、同一人物の追跡が困難となるおそれがある。
【0004】
従来、同一人物の追跡が途中で途絶えた場合には、カメラ画像から生成される動線データは不完全なものとなるために分析対象から外し、エラーデータとして削除するしかなかった。このため、例えば入店した人物が店舗内を回り、会計カウンタで会計を済ませて出店するまでを1本の動線で結ぶことは困難であるのが実情であった。
【0005】
本発明はこのような事情に基づいてなされたもので、その目的とするところは、同一移動体の追跡に失敗しているため削除せざるを得なかった動線データを活用して、分断された移動体の軌跡を完全なものに容易に復元できる動線編集装置、及びコンピュータを本発明の動線編集装置として機能させるための動線編集プログラムを提供しようとするものである。
【課題を解決するための手段】
【0006】
本発明の動線編集装置は、監視領域を撮影したカメラ画像から検出された移動体の始点から終点までの軌跡を示す動線のデータが蓄積される動線データベースから選択された2本以上の動線を1本に連結された動線に編集するものであって、編集対象とする動線を選択する動線選択手段と、この動線選択手段により選択された動線を表示する動線表示手段と、この動線表示手段により表示される動線の軌跡と同期させて、この動線に該当する移動体が検出されたカメラ画像を表示するカメラ画像表示手段と、前記動線表示手段により表示されている動線上の分割点指示入力を受付ける分割点受付手段と、前記動線選択手段により選択された動線を前記分割点受付手段により受付けた分割点で分割する動線分割手段と、この動線分割手段により分割された各動線のデータを前記動線データベースに登録する動線登録手段と、を備えたものである。
【0007】
本発明の動線編集プログラムは、監視領域を撮影したカメラ画像から検出された移動体の始点から終点までの軌跡を示す動線のデータが蓄積される動線データベースを備えたコンピュータに、選択された2本以上の動線を1本に連結された動線に編集する機能を実現させるものであって、コンピュータに、編集対象とする動線を選択する機能と、選択された動線を第1の表示部に表示させる機能と、第1の表示部に表示される動線の軌跡と同期させて、この動線に該当する移動体が検出されたカメラ画像を第2の表示部に表示させる機能と、第1の表示部に表示されている動線上の分割点指示入力を受付ける機能と、選択された動線を分割点で分割する機能と、分割点で分割された各動線のデータを動線データベースに登録する機能と、を実現させるものである。
【発明の効果】
【0008】
かかる手段を講じた本発明によれば、同一移動体の追跡に失敗しているため削除せざるを得なかった動線データを活用して、分断された移動体の軌跡を完全なものに容易に復元することができる効果を奏し得る。
【発明を実施するための最良の形態】
【0009】
以下、本発明を実施するための最良の形態について、図面を用いて説明する。
なお、この実施の形態は、コンビニエンスストア等の店舗において、周知の動線データ生成システム10により生成された動線データ(以下、動線生データと称する)を基に移動体である人物(客)の動線を編集する動線編集装置20に、本発明を適用した場合である。
【0010】
図1は本実施の形態のシステム構成を示すブロック図である。このシステムは、動線監視対象の施設、すなわち店舗内を撮影するための複数台(本実施の形態では6台)のカメラCA1〜CA6と、各カメラCA1〜CA6によってそれぞれ撮影されたカメラ画像データを画像処理して人物を特定し、この人物の追跡を行って、人物毎の動線データを生成する周知の動線データ生成システム10と、本発明に関わる動線編集装置20とから構成されている。
【0011】
各カメラ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は全方位カメラである。
【0012】
このように配置された6台のカメラCA1〜CA6でそれぞれ撮影されたカメラ画像データにより、動線データ生成システム10は、店舗の入退場口IN/OUTから入店した人物を移動体のターゲットとして検出し、店舗内を移動する各ターゲットを個別に追跡して、そのターゲットの移動経路に沿った動線データを生成するものである。
【0013】
ただし、店舗内に置かれている商品陳列棚Rや商品の広告ポスター,POP等の陰に人が隠れてしまったり、複数の人のすれ違いや密集等により複数の人が重なってしまったりして、カメラ画像では途中で追跡できなくなる場合がある。動線データ生成システム10は、同一時刻に撮影された複数のカメラ画像データから新たなターゲット(移動体)を検出する毎に、そのターゲットに固有の識別子であるターゲットIDを付して追跡し、追跡が途絶えるまでを1本の動線として生成する。このため、同一人物に対して複数の動線が生成される場合がある。
【0014】
動線編集装置20は、同一人物に対して生成された複数の動線を抽出し、入店から出店までを結んだ完全動線を編集するためのコンピュータ機器である。別の表現をすると、上記完全動線を編集するためのプログラムを実装したコンピュータである。
【0015】
なお、本実施の形態では、説明の便宜上、動線データ生成システム10で検出されたターゲットに付与されるターゲットIDは、“0”から1ずつ昇順に繰り上がる連続番号とする。
【0016】
動線編集装置20は、図1に示すように、動線データ生成システム10からデータを受信するインターフェイス機能を有したデータ受信部21、大容量の記憶部22、操作入力部23、画面表示部24、及びこれらを制御する制御部25等を備えている。記憶部22としては、例えばハードディスクやフラッシュメモリ等の不揮発性記憶媒体を用いている。操作入力部23としては、キーボード,マウス等の入力デバイスを用いている。画面表示部24としては、液晶ディスプレイ,有機ELディスプレイ等を用いている。制御部25は、CPU,ROM及びRAMのコンピュータ部品を主体に構成したものである。
【0017】
記憶部22には、特に動線生データベース31、カメラ画像データベース32、動線データベース33、設定データベース34、カメラパラメータデータベース35、店内エリア定義データベース36及び店内マップデータベース37を形成している。なお、記憶部22は、動線編集装置20に内蔵されていてもよいし、外付けされていてもよい。また、例えば後述する動線編集処理を開始する前に予め記憶しておく、もしくは処理の途中で追記される動線データベース33、設定データベース34、カメラパラメータデータベース35及び店内エリア定義データベース36については内蔵の記憶部で記憶し、動線編集処理を開始するに先立って動線データ生成システム10から取り込む必要がある動線生データベース31及びカメラ画像データベース32は、外付けの記憶部に記憶するようにしてもよい。
【0018】
動線生データベース31には、動線データ生成システム10で順次生成される動線生データが時系列に記憶される。動線生データベース31に記憶される動線生データのデータ構造を図3に示す。図示するように動線生データベース31には、動線データ生成システム10においてカメラ画像の1フレーム毎に生成される動線生データ(フレーム別動線生データ)が順次蓄積される。本実施の形態では1フレーム毎に生成される動線データは1/15秒毎の動線データとなる。なお、1フレームの間隔は変更が可能であり、より詳細な動線データが必要であれば1フレームの間隔を1/30秒毎等とすれば良いし、動線生データベース31のファイル容量を小さくする必要があれば1フレームの間隔を1/10秒毎等とすれば良い。
【0019】
ここで、1フレーム単位の動線生データには、6台のカメラCA1〜CA6で撮影された同じ時点の各フレーム画像を保存したカメラ画像ファイルのファイル名、各フレーム画像をそれぞれ特定するオフセット値、各フレームの撮影日時情報、各フレーム画像の画像処理によって移動体として検出された人物すなわちターゲットの数及びそのターゲット数分のターゲット情報(ID,X,Y,H)が記憶される。
【0020】
ターゲット情報には、ターゲットを識別するためのターゲットID(識別子)と、そのターゲットの店舗内の位置を三次元の世界座標系で示す店舗内座標(X,Y,H)とが含まれる。本実施の形態では、図2の店内レイアウト図において、左奥の角をX軸及びY軸の原点(0,0)とし、その床面をH(Height)軸の原点としている。
【0021】
カメラ画像データベース32には、6台のカメラCA1〜CA6で撮影された同時点の各フレーム画像を記憶したカメラ画像ファイルのデータが順次蓄積記憶される。
【0022】
動線データベース33には、動線生データベース31に記憶された動線生データに基づいてターゲット毎に生成される動線データが記憶される。動線データの主要なデータ構造を図4に示す。図示するように、動線データは、固有の動線IDと、この動線IDで特定される動線の開始位置である始点を示す二次元座標(X0.Y0)と、同動線の終了位置である終点を示す二次元座標(Xn.Yn)と、同動線に関わる画像フレーム時間単位のインデックス情報と、状態ステータス,無効化ステータス及び部分動線ステータスと、[起点],[前連結ID],及び[後連結ID]の各定義情報とで構成される。インデックス情報には、店舗内座標(X,Y,H)と、画像フレームの撮影日時情報Tと、変化点フラグFと、分割点フラグSとが含まれる。
【0023】
なお、状態ステータス,無効化ステータス,部分動線ステータス,各種定義情報,変化点フラグF及び分割点フラグSについては後述する。
【0024】
設定データベース34には、動線編集作業に必要な種々の設定データが予め格納されている。
【0025】
カメラパラメータデータベース35には、魚眼カメラCA1〜CA3に関する種々のパラメータデータと、全方位カメラCA4〜CA6に関する種々のパラメータデータとが予め格納されている。
【0026】
店内エリア定義データベース36には、店舗内のエリアを定義するためのデータが予め格納されている。本実施の形態では、図2のレイアウト図において、入退場口IN/OUTより店内側の図中破線で囲われた矩形の領域を入口エリアと設定し、この入口エリア内の全ての二次元座標(X,Y)が入口エリア定義データとして記憶されている。また、客が買い回りすることができない店内の商品陳列棚設置エリアと会計カウンタCHより内側のエリアを無効エリアと設定し、この無効エリア内の全ての二次元座標(X,Y)が無効エリア定義データとして記憶されている。さらに、入口エリアと無効エリアとを除く店内のエリア、つまり買物をする客が移動し得るエリアを監視対象の領域である店内エリアと設定し、この店内エリア内の全ての二次元座標(X,Y)が店内エリア定義データとして記憶されている。因みに、無効エリアに対して残りの入口エリアと店内エリアは、ターゲットである客が存在し得る有効領域として区分される。
【0027】
店内マップデータベース37には、図2に示すレイアウト図と同様の店内マップ平面図のイメージデータが予め格納されている。
【0028】
かかる構成の動線編集装置20を用いて動線の編集作業を行うオペレータは、作業に先立ち動線データ生成システム10から作業対象である動線生データとその動線生データを生成するために用いたカメラ画像データとをデータ受信部21を介して取込む。そして、動線生データベース31とカメラ画像データベース32とにそれぞれ保存する。この状態で、操作入力部23を操作して、動線編集業務の開始を指令する。すると、動線編集プログラムが起動する。動線編集プログラムは、予め記憶部22にインストールされている。
【0029】
動線編集プログラムが起動すると、制御部25は、このプログラムに従い図6の流れ図に示す手順で各部を制御する。先ず、ST(ステップ)1として動線編集画面40を画面表示部24に表示させる。
【0030】
動線編集画面40の一レイアウト例を図5に示す。図示するように、動線編集画面40は、第1の表示部である動線編集部41と、第2の表示部であるカメラ画像表示部42と、動線リスト表示部43と、座標表示部44とに区分されている。また、後述するマーカ登録用のアイコン45が表示されている。
【0031】
動線編集部41には、店内マップデータベース37に記憶されているイメージデータにより店内マップの平面図が表示される。また、スクロールバー46を画面に向かって左端から右端にスライドさせることによりカメラ画像の撮影時刻が経過し、その時刻に撮影されたカメラ画像から検出されたターゲットの動線画像が該店内マップに重ねて表示される。
【0032】
カメラ画像表示部42には、前記スクロールバー46のスライド位置によって決定される撮影時刻に各カメラCA1〜CA6で撮影された画像が表示される。図示するように、6個のカメラ画像を並べて同時に表示することもできるし、その中から選択された1乃至複数のカメラ画像を拡大して表示することもできる。
【0033】
動線編集画面40を表示した後、制御部25は、ST2として動線データ作成処理を実行する。この作成処理の処理手順は、図7の流れ図によって示される。すなわち制御部25は、先ず、ST31として動線データベース33をクリアする。次に、ST32として番号カウンタのカウント値Nを“0”に初期設定する。この初期設定値“0”は、動線データ生成システム10において、新たなターゲットを検出する毎に付与されるターゲットIDの初期値である。
【0034】
番号カウンタのカウント値Nを“0”に初期設定した後、制御部25は、ST33として動線生データベース31を検索する。そして、ST34として各フレーム別動線生データの中からターゲットIDが番号カウンタのカウント値Nと一致するターゲット情報(ID,X,Y,H等)を有する動線生データを検出する。
【0035】
ターゲットIDが“N”のターゲット情報を有するフレーム別動線生データを1つでも検出できた場合には、制御部25は、ST35としてそのターゲットIDを動線IDとする動線編集レコード(動線データ)を生成する。そしてこの動線編集レコードに、ターゲットIDが“N”のターゲット情報を有するフレーム別動線生データの中で、フレーム日時情報が最も古い動線生データに記憶されている当該ターゲット情報の店舗内二次元座標(X,Y)を動線始点座標(X0,Y0)としてセットする。また、フレーム日時情報が最も新しいフレーム別動線生データに記憶されている当該ターゲット情報の店舗内二次元座標(X,Y)を動線終点座標(Xn,Yn)としてセットする。さらに、検出された全てのフレーム別動線生データからターゲットIDが“N”のターゲット情報をすべて抽出し、これらのターゲット情報の店舗内座標(X,Y,H)と、フレーム日時情報Tとを、動線インデックス情報として日時の古い順に動線編集レコードにセットする。なお、このとき、各動線インデックス情報の変化点フラグF及び分割点フラグSは、いずれも“0”にリセットされている。
【0036】
こうして、動線IDが“N”の動線編集レコードを作成したならば、制御部25は、ST36としてこの動線編集レコードを動線データベース33に追加する。しかる後、ST37として番号カウンタを“1”だけカウントアップしたならば、ST33〜ST37の処理を再度実行する。以後、ターゲットIDが“N”のターゲット情報(ID,X,Y,H等)を有する動線生データを検出できなくなるまで、この処理を繰り返す。すなわち、動線生データベース31のフレーム別動線生データを基に、動線IDが1ずつ昇順する動線編集レコードを順次生成して、動線データベース33に追加する処理を繰り返す。
【0037】
ST34にてターゲットIDが“N”のターゲット情報を有する動線生データを検出できなかったならば、制御部25は、ST38として番号カウンタのカウント値Nから“1”を減算した値(N−1)を最終動線IDとしてメモリに記憶して、この動線データ作成処理を終了する。
【0038】
動線データ作成処理を終了すると、制御部25は、次に、ST3として動線の状態定義処理を実行する。この状態定義処理の処理手順は、図8の流れ図によって示される。すなわち制御部25は、動線データベース33から動線編集レコードを1データずつ抽出する。そして、動線編集レコードを抽出する毎に、以下の処理を実行する。
【0039】
先ず、ST41として抽出した動線編集レコードから動線始点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線始点座標が入口エリア定義データとして設定された座標であるか否かを判断する。入口エリア定義データの座標であった場合には、制御部25は、ST42として同動線編集レコードから動線終点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線終点座標も入口エリア定義データとして設定された座標か否かを判断する。
【0040】
動線終点座標も入口エリア定義データの座標であった場合には、制御部25は、ST43として同動線編集レコードの動線インデックス情報を日時の古い順に調べる。そして、入口エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を検出したならば、この動線編集レコードに対応するターゲットは、入口エリアから少なくとも一度出て、その後、再び入口エリアに戻ったので、この動線編集レコードの状態ステータスを「入口→入口」に設定する。これに対し、入口エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を1つも検出しなかった場合には、この動線編集レコードに対応するターゲットは、入口エリアから一度も出なかったので、この動線編集レコードの状態ステータスを「入口」に設定する。
【0041】
一方、ST42にて動線終点座標が入口エリア定義データの座標でなかった場合、すなわち店内エリア定義データまたは無効エリア定義データの座標である場合には、制御部25は、この動線編集レコードの状態ステータスを「入口→店内」に設定する。
【0042】
一方、ST41にて動線始点座標が入口エリア定義データとして設定された座標でなかった場合には、制御部25は、ST44としてこの動線始点座標が店内エリア定義データとして設定された座標であるか無効エリア定義データとして設定された座標であるかを判断する。無効エリア定義データの座標であった場合には、ST45として同動線編集レコードから動線終点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線終点座標が無効エリア定義データとして設定された座標か否かを判断する。
【0043】
動線終点座標が無効エリア定義データの座標であった場合には、制御部25は、ST46として同動線編集レコードの動線インデックス情報を日時の古い順に調べる。そして、無効エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を1つも検出しなかった場合には、この動線編集レコードに対応するターゲットは、無効エリアから一度も出なかったので、この動線編集レコードの状態ステータスを「無効」に設定する。これに対し、無効エリア定義データとして設定された座標以外の座標を含む動線インデックス情報を検出したならば、この動線編集レコードに対応するターゲットは、無効エリアから少なくとも一度出て、その後、再び無効エリアに戻ったので、この動線編集レコードの状態ステータスを「店内→店内」に設定する。
【0044】
一方、ST45にて動線終点座標が無効エリア定義データの座標でなかった場合には、制御部25は、ST47にて店内エリア定義データベース36を参照してこの動線終点座標が店内エリア定義データとして設定された座標か否かを判断する。
【0045】
動線終点座標が店内エリア定義データの座標であった場合には、この動線編集レコードの状態ステータスを「店内→店内」に設定する。これに対し、店内エリア定義データの座標でなかった場合、すなわち、入口エリア定義データの座標である場合には、同状態ステータスを「店内→入口」に設定する。
【0046】
一方、ST44にて動線始点座標が無効エリア定義データの座標でなかった場合、すなわち、店内エリア定義データの座標であった場合には、制御部25は、ST48として同動線編集レコードから動線終点座標を取得する。そして、店内エリア定義データベース36を参照してこの動線終点座標が入口エリア定義データとして設定された座標か否かを判断する。
【0047】
動線終点座標が入口エリア定義データの座標であった場合には、この動線編集レコードの状態ステータスを「店内→入口」に設定する。これに対し、入口エリア定義データの座標でなかった場合、すなわち、店内エリア定義データまたは無効エリア定義データの座標である場合には、同状態ステータスを「店内→店内」に設定する。
【0048】
制御部25は、動線データベース33の全ての動線編集レコードについて上記処理を実行する。こうして、全ての動線編集レコードに対して、「入口→入口」,「入口」,「入口→店内」,「店内→入口」,「店内→店内」,「無効」のなかのいずれかの状態ステータスを設定したならば、この状態定義処理を終了する。
【0049】
動線の状態定義処理を終了すると、制御部25は、次に、ST4として動線の無効化処理を実行する。この無効化処理の処理手順は、図9の流れ図によって示される。すなわち制御部25は、設定データベース34から無効化条件の設定データを取得する。無効化条件には、動線の開始または終了位置が無効エリアに存在する動線を無効化する条件、いわゆる領域条件と、動線の追跡時間が予め設定された閾値以下の動線を無効化する条件、いわゆる時間条件とがある。そして、これらの条件を有効とするか否かは、予めオペレータによって選択され、設定データベース34に設定されている。
【0050】
無効化条件設定データを取得した制御部25は、先ず、ST51として領域条件がオン(有効)かオフ(無効)かを判断する。領域条件がオンの場合には、動線データベース33の動線編集レコードを1データずつ抽出して、その状態ステータスを調べる。そして、状態ステータスが「無効」であったならば、その動線編集レコードの無効化ステータスを「オン」にして動線データベース33に戻す。すなわち、当該動線編集レコードを無効化する。因みに、無効化された動線編集レコードは、この後の編集処理において処理されることはない。状態ステータスが「無効」でなかった場合には、無効化ステータスを「オフ」のまま動線データベース33に戻す。
【0051】
動線データベース33の全ての動線編集レコードの状態ステータスを調べ終えるか、領域条件がオフであった場合には、制御部25は、ST52として時間条件がオン(有効)かオフ(無効)かを判断する。時間条件がオンの場合には、動線データベース33の動線編集レコードを1データずつ抽出して動線追跡時間を算出する。すなわち、この動線編集レコードの先頭の動線インデックス情報のフレーム日時情報Tから最終の動線インデックス情報のフレーム日時情報Tまでの経過時間を算出する。そして、この動線追跡時間がオペレータによって予め設定データベース34に設定された閾値以下であるか否かを判断する。そして、動線追跡時間が閾値以下であった場合には、その動線編集レコードの無効化ステータスを「オン」にして動線データベース33に戻す。閾値より長い場合には、無効化ステータスを「オフ」のまま動線データベース33に戻す。
【0052】
動線データベース33の全ての動線編集レコードの動線追跡時間を調べ終えるか、時間条件がオフであった場合には、この無効化処理を終了する。
【0053】
動線の無効化処理が終了すると、制御部25は、次に、ST5として動線の自動分割処理を実行する。この自動分割処理の処理手順は、図10の流れ図によって示される。すなわち制御部25は、動線データベース33から無効化ステータスが「オン」でない動線編集レコードを1データずつ抽出する。そして、抽出する毎に、以下の処理を実行する。
【0054】
先ず、ST61として動線追跡処理を実行する。すなわち、動線インデックス情報をフレーム日時の古い順に取得し、その三次元座標が、店内エリア定義データベース36において、入口エリア定義データまたは店内エリア定義データとして設定された座標から無効エリア定義データとして設定された座標に変化した動線インデックス情報、または無効エリア定義データとして設定された座標から入口エリア定義データまたは店内エリア定義データとして設定された座標に変化した動線インデックス情報を検出する。そして、該当する動線インデックス情報を検出したならば、制御部25は、ST62としてその動線インデックス情報の変化点フラグFをセットする。すなわち、変化点を記録する。
【0055】
抽出した動線編集レコードの先頭の動線インデックス情報から最終の動線インデックス情報まで変化点をチェックし終えたならば、動線追跡を終了したので、制御部25は、ST63としてこの動線編集レコードで管理される動線に変化点があるか否か、すなわち、変化点フラグFがセットされた動線インデックス情報が存在するか否かを調べる。そして、変化点フラグFがセットされた動線インデックス情報を検出したならば、変化点を有する動線編集レコードなので、制御部25は、ST64としてその変化点での動線分割処理を実行する。
【0056】
すなわち制御部25は、この動線編集レコードのコピーを動線データベース33に追加し、このコピーした動線編集レコードの動線IDを、前記最終動線IDに“1”を加算した値に書き換える。このとき、記憶している最終動線IDにも“1”を加算する。また、コピーした動線編集レコードに関して、先頭の動線インデックス情報から変化点フラグがセットされている動線インデックス情報の直前のインデックス情報までを削除し、変化点フラグFがセットされている動線インデックス情報を先頭のインデックス情報とする。そして、この先頭のインデックス情報の変化点フラグFをリセットするともに、この先頭のインデックス情報の二次元座標を当該動線編集レコードの動線開始位置座標(X0,Y0)とする。さらに、この動線編集レコードについて前記状態定義処理と同様の処理を実行し、状態ステータスを更新する。しかる後、部分動線ステータスを「オン」して、部分動線編集レコードとする。
【0057】
一方、コピー元の動線編集レコードについては、変化点フラグFがセットされている動線インデックス情報から以後の動線インデックス情報を削除し、残った動線インデックス情報のうち日時が最も新しい動線インデックス情報の二次元座標を、当該動線編集レコードの動線終点座標(Xn,Yn)とする。そして、この動線編集レコードについても前記状態定義処理と同様の処理を実行して状態ステータスを更新するとともに、部分動線ステータスを「オン」して、部分動線編集レコードとする。
【0058】
かくして、変化点を有する動線編集レコードが変化点より前の部分動線レコードと変化点以後の部分動線レコードとに自動的に分割されるので、次に、制御部25は、コピーした部分動線編集レコード(変化点以後の部分動線レコード)にさらに変化点フラグFがセットされている動線インデックス情報が存在するか否かを調べる。そして、変化点フラグFがセットされている動線インデックス情報を検出したならば、上記と同様な処理を実行して、変化点より前の部分動線レコードと変化点以後の部分動線レコードとに分割する。
【0059】
こうして、変化点を有する動線編集レコードを、変化点を有さない複数の部分動線編集レコードに分割し終えたならば、次に、制御部25は、ST65として各部分動線編集レコードから無効エリア内の部分動線に関するレコードを無効化する。すなわち、部分動線編集レコード毎に状態ステータスを調べ、「無効」であったならば、この部分動線編集レコードの無効化ステータスをオンにする。
【0060】
上記ST61〜ST65までの処理を、全ての動線編集レコードについて実行する。そして、実行し終えたならば、制御部25は、ST66として無効化条件の中の時間条件がオンしているか否かを判断する。時間条件がオンされていない場合には、この自動分割処理を終了する。
【0061】
これに対し、時間条件がオンされていた場合には、動線データベース33から部分動線ステータスがセットされているレコード、すなわち部分動線編集レコードで、無効化ステータスがセットされていないレコードを順次抽出する。そして、前述した動線無効化処理のときと同様に動線追跡時間を算出して、閾値以下であれば無効化ステータスをオンにする。有効な全ての部分動線編集レコードについて上記処理を完了すると、この自動分割処理を終了する。
【0062】
上記自動分割処理を実行することによって、動線データベース33に記憶されている有効な動線編集レコードは、その定義情報が、「入口」,「入口→入口」,「入口→店内」,「店内→店内」または「店内→入口」のいずれかになる。
【0063】
動線の自動分割処理を終了すると、制御部25は、ST6として動線データベース33を検索して、無効化ステータスがセットされていない全ての動線編集レコードを抽出する。そして、抽出したレコードの動線ID、開始位置座標及び終了位置座標を一覧表にした動線リストを作成し、動線編集画面40の動線リスト表示部43に表示する。そして制御部25は、ST7としてオペレータにより動線リストからいずれかの動線が選択されるのを待機する。すなわち、動線データベース33に記憶された動線データの中から連結元となる第1の動線データの選択入力を受付ける(動線選択手段)。
【0064】
操作入力部23の操作入力により動線リストからいずれかの動線IDが選択入力されたならば(ST7のYES)、制御部25は、ST8としてこの選択された動線IDを連結元動線のIDとして記憶する。そして、ST9として連結元動線再生処理を実行する。この再生処理の処理手順は、図11の流れ図によって示される。
【0065】
すなわち制御部25は、先ず、ST71として動線データベース33から連結元動線IDが設定された動線編集レコードを読み出す。そして、この動線編集レコードから先頭の動線インデックス情報を取得する。
【0066】
次に、制御部25は、ST72として動線生データベース31を検索して、取得した動線インデックス情報のフレーム日時Tが設定された動線生データを取得する。また、ST73として取得した動線インデックス情報の店舗内座標(X,Y,H)を取得する。さらに、ST74として取得した動線生データのカメラ画像オフセット値で特定されるフレーム画像を、カメラ画像データベース32から抽出する。
【0067】
次に、制御部25は、ST75として取得した店舗内座標(X,Y,H)、つまりは世界座標系の三次元座標を、該当するカメラ画像系の座標に変換する。この変換処理は、カメラCA1〜CA6毎に、それぞれ図12の流れ図に示す手順の処理を実行することにより行われる。なお、この変換処理では、カメラパラメータデータベース35に予め設定されている以下のパラメータを使用する。
【0068】
・世界座標系の動線座標: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】

【0069】
次に、制御部25は、ST82として平行移動した動線座標(X0,Y0,Z0)について、世界座標系の座標軸周りのカメラ回転角を使って回転処理し、世界座標系とカメラ座標系の軸を合せる。この処理は、次の演算式により実行される。
【0070】
[X軸周りの回転]
【数2】

【0071】
[Y軸周りの回転]
【数3】

【0072】
[Z軸周りの回転]
【数4】

【0073】
次に、制御部25は、ST83として処理対象のカメラの種類を判別する。魚眼カメラCA1,CA2,CA3に対しては、ST84として魚眼カメラのパラメータを使って、動線座標(Xz,Yz,Zz)を世界座標系からカメラ画像座標系に変換する。この処理は、次の演算により実行される。
【0074】
先ず、Xd=rcost:Yd=rsintとする。
【0075】
ただし、Yz≧0のとき、
【数5】

【0076】
Yz<0のとき、
【数6】

【0077】
である。ここで、上記rの値を、下記数式のニュートン法を用いて求める。
【数7】

【0078】
なお、この数式において、初期値r0を0.0、目標値をθとする。また、|rn+1−r|<0.01で収束したとみなす。その時点でのrの値を使用する。
【0079】
一方、全方位カメラCA4,CA5,CA6に対しては、ST85として全方位カメラのパラメータを使って、動線座標(Xz,Yz,Zz)を世界座標系からカメラ画像座標系に変換する。この処理は、次の演算式により実行される。
【数8】

【0080】
こうして、動線座標を世界座標系からカメラ画像座標系に変換したならば、制御部25は、ST86として変換後の座標(Xd,Yd)をカメラ画像座標系の原点に平行移動する。この処理は、次の演算式により実行される。
【数9】

【0081】
以上、ST81〜ST86の処理を実行することにより、取得した動線インデックス情報の店舗内座標(X,Y,H)、各カメラCA1〜CA6のカメラ画像系の座標に変換される。
【0082】
かくして、店舗内座標(X,Y,H)、フレーム画像及びカメラ画像系座標を取得したならば、制御部25は、ST76としてその店舗内座標(X,Y,H)に基づいて動線編集画面40の動線編集部41に動線を表示する(動線表示手段)。また同時に、動線編集画面40のカメラ画像表示部42にフレーム画像を表示し(カメラ画像表示手段)、さらに、カメラ画像系座標に基づいてカメラ画像表示部42に連結元動線IDを表示する。
【0083】
次に、制御部25は、ST77として操作入力部23の操作入力により再生停止が指示されたか否かを判断する。例えば停止ボタンが操作入力されると、再生停止が指示される。再生停止が指示されていない場合には、続いて、ST78として同じく操作入力部23の操作入力により動線分割が指示されたか否かを判断する(分割点受付手段)。例えば分割ボタンが操作入力されると、動線分割が指示される。動線分割も指示されていない場合には、制御部25は、ST710の処理に進む。
【0084】
動線分割が指示された場合には、制御部25は、ST79として取得した動線インデックス情報の分割点フラグSを“1”にセットする。その後、ST710の処理に進む。
【0085】
ST710では、制御部25は、連結元動線IDが設定された動線編集レコードに、次の動線インデックス情報が存在するか否かを判断する。存在する場合には、制御部25は、ST711としてそのインデックス情報を取得する。そして、この取得したインデックス情報に対し、前記ST72〜ST79の処理を実行する。
【0086】
一方、連結元動線IDが設定された動線編集レコードから最終の動線インデックス情報を取得した場合には、ST710にて次の動線インデックス情報が存在しないと判断されるので、制御部25は、ST712として当該動線編集レコードの全ての動線インデックス情報のなかに分割点フラグSがセットされている情報があるか否かを判断する。分割点フラグSがセットされている動線インデックス情報が存在しない場合には、この連結元動線再生処理を終了する。
【0087】
これに対し、分割点フラグSがセットされている動線インデックス情報が1つでも存在する場合には、制御部25は、ST713としてその分割点での動線分割処理を実行する(動線分割手段)。この処理は、前記変化点での分割処理と同様に実行される。
【0088】
すなわち制御部25は、この連結元動線IDが設定された動線編集レコードのコピーを動線データベース33に追加し、このコピーした動線編集レコードの動線IDを、前記最終動線IDに“1”を加算した値に書き換える。このとき、記憶している最終動線IDにも“1”を加算する。また、コピーした動線編集レコードに関して、先頭の動線インデックス情報から分割点フラグSがセットされている動線インデックス情報の直前のインデックス情報までを削除し、分割点フラグSがセットされている動線インデックス情報を先頭のインデックス情報とする。そして、この先頭のインデックス情報の分割点フラグSをリセットするともに、この先頭のインデックス情報の二次元座標を当該動線編集レコードの動線開始位置座標(X0,Y0)とする。さらに、この動線編集レコードについて前記状態定義処理と同様の処理を実行し、状態ステータスを更新する。しかる後、部分動線ステータスを「オン」して、部分動線編集レコードとする(動線登録手段)。
【0089】
一方、コピー元の動線編集レコードについては、分割点フラグSがセットされている動線インデックス情報から以後の動線インデックス情報を削除し、残った動線インデックス情報のうち日時が最も新しい動線インデックス情報の二次元座標を、当該動線編集レコードの動線終点座標(Xn,Yn)とする。そして、この動線編集レコードについても前記状態定義処理と同様の処理を実行して状態ステータスを更新するとともに、部分動線ステータスを「オン」して、部分動線編集レコードとする(動線登録手段)。
【0090】
かくして、分割点を有する動線編集レコードが分割点より前の部分動線レコードと分割点以後の部分動線レコードとに自動的に分割されるので、次に、制御部25は、コピーした部分動線編集レコード(分割点以後の部分動線レコード)にさらに分割点フラグSがセットされている動線インデックス情報が存在するか否かを調べる。そして、分割点フラグSがセットされている動線インデックス情報を検出したならば、上記と同様な処理を実行して、分割点より前の部分動線レコードと分割点以後の部分動線レコードとに分割する。
【0091】
こうして、分割点を有する動線編集レコードを、分割点を有さない複数の部分動線編集レコードに分割し終えたならば、次に、制御部25は、ST715として今回の動線分割処理で分割して得られた複数の部分動線レコードのリストを、動線編集画面40の動線リスト表示部43に表示させる。そして、操作入力部43の操作入力により部分動線レコード毎に無効化が指示されるか否かを判断する(無効化受付手段)。例えば、部分動線レコードのリストの中から少なくとも1つの部分動線レコードが選択され、無効化ボタンが操作入力されると、この選択された部分動線レコードの無効化が指示される。
【0092】
無効化が指示された場合には、制御部25は、ST716としてその無効化が指示された部分動線レコードの無効化ステータスをオンにする(データ無効化手段)。その後、あるいは無効化が指示されなかった場合は、制御部25は、ST717として部分動線レコードのリストを消去して、動線編集画面40の動線リスト表示部43を元の動線リスト表示に戻す。以上で、連結元動線再生処理を終了する。
【0093】
なお、ST77にて再生停止が指示されたことを検知した場合には、制御部25は、ST718として連結元動線IDが設定された動線編集レコードの全ての動線インデックス情報の分割点フラグSを“0”にリセットして、連結元動線再生処理を終了する。
【0094】
かかる手順の連結元動線再生処理が実行されることにより、動線編集画面40の動線編集部41には、動線リストの中からオペレータが選択した動線IDの動線が表示される。また、この動線表示に同期して、同一時点のカメラ画像が動線編集画面40のカメラ画像表示部42に表示される。そして、このカメラ画像には、動線のターゲット位置に動線IDが表示される。
【0095】
したがって、オペレータは、動線の動きとカメラ画像とを見比べることによって、その動線が1人の人物を追跡したものであるか否かを容易に判別することができる。
【0096】
ところで、図示しないが、連結元動線IDが設定された動線編集レコードから最終の動線インデックス情報が取得されるまでの間に、操作入力部23の操作入力により動線編集部41のスクロールバー46が手動操作された場合には、制御部25は、このスクロールバーの停止位置によって定まるフレーム日時を判別する。そして、取得した動線インデックスの中から当該フレーム日時が設定された動線生データを取得して、ST73以降の処理を実行する。
【0097】
したがってオペレータは、連結元動線の再生中にスクロールバー46を操作することによって、連結元動線の画像とそれに同期したカメラ画像とを、手動で戻したり進めたりすることができる。そして、所望のフレーム日時の動線インデックス情報に分割点フラグをセットすることができる。
【0098】
そこでオペレータは、再生中の動線が同一人物の追跡に失敗して、途中から別の人物の軌跡となっていた場合には、手動操作で1本の動線を人物毎の動線に分割する。また、分割によって不要となった動線データについては、手動操作で無効化する。このように、必要に応じて分割及び無効化の動線修正作業を行うことにより、連結元動線を1人の人物の動線とすることができる。
【0099】
ところで、前述したように、同一人物に対する動線は、途中で途切れることが一般的である。そこで次に、途切れる前の動線と途切れた後の動線とを1つの動線に連結する連結手順について述べる。
【0100】
因みに、動線データベース33に記憶されている有効な動線編集レコードは、その定義情報が、「入口」,「入口→入口」,「入口→店内」,「店内→店内」または「店内→入口」のいずれかである。このうち、定義情報が「入口→入口」及び「入口」のレコードは、入店から退店までを追跡した完全動線である。また、定義情報が「店内→入口」のレコードは、退店につながるレコードなので、連結先動線にはなり得るものの連結元動線にはなり得ない。
【0101】
制御部25は、ST10として前記連結元動線再生処理が終了したことを検知すると、ST11としてこの再生した連結元動線が完全動線であるか否かを判断する。すなわち、動線データベース33を検索して、連結元動線IDを動線IDとする動線編集レコードの状態ステータスを調べる。ここで、状態ステータスが「入口→入口」または「入口」の場合は完全動線と判断し、その他の場合は不完全動線と判断する。
【0102】
完全動線の場合には、制御部25は、ST18の連結定義処理に進む。
不完全動線の場合には、制御部25は、ST12として連結先動線候補検索処理を実行する。この検索処理の処理手順は、図13の流れ図によって示される。すなわち制御部25は、先ず、ST91として設定データベース34から検索条件を取得する。検索条件には、「時間」と「距離」がある。
【0103】
検索条件として「時間」が設定されていた場合には、制御部25は、ST92として連結元動線の動線終了時刻を取得する。すなわち、連結元動線IDを動線IDとする動線編集レコードのなかから最終フレームに対応した動線インデックス情報のフレーム日時を動線終了時刻として取得する。
【0104】
次に、制御部25は、ST93として動線データベース33を検索して、連結先動線として完全動線以外の動線、すなわち状態ステータスが「入口→店内」,「店内→店内」,「店内→入口」の動線編集レコードを抽出する。そして、この抽出した連結先動線の動線開始時刻、すなわち当該動線編集レコードの先頭フレームに対応した動線インデックス情報のフレーム日時と、前記連結元動線の動線終了時刻との時間差を算出する。そして、この時間差が予め設定された閾値以内であった場合には、この連結先動線を連結先候補の動線として残す。時間差が閾値を超える連結先動線は、連結先候補から外す。
【0105】
動線データベース33に設定されている全ての連結先動線について、上記ST93以降の処理を実行する。そして、この処理を終了したならば、制御部25は、ST94として連結先候補として選択された動線がある場合、その動線を時間差の小さい順にリストアップして、動線リスト表示部43に表示する。
【0106】
一方、検索条件として「距離」が設定されていた場合には、制御部25は、ST95として連結元動線の動線終点座標を取得する。すなわち、連結元動線IDを動線IDとする動線編集レコードから動線終点座標(Xn,Yn)を取得する。
【0107】
次に、制御部25は、ST96として動線データベース33を検索して、連結先動線の動線編集レコードを抽出する。そして、この抽出した連結先動線の動線始点座標、すなわち当該動線編集レコードから動線始点座標(X0,Y0)を取得し、前記連結元動線の動線終点座標(Xn,Yn)との距離を算出する。そして、この距離が予め設定された閾値以内であった場合には、この連結先動線を連結先候補の動線として残す。距離が閾値を超える連結先動線は、連結先候補から外す。
【0108】
動線データベース33に設定されている全ての連結先動線について、上記ST96以降の処理を実行する。そして、この処理を終了したならば、制御部25は、ST97として連結先候補として選択された動線がある場合、その動線を距離の短い順にリストアップして、動線リスト表示部43に表示する。
【0109】
こうして、連結先候補検索処理が終了すると、制御部25は、ST13として連結先候補として動線がリストアップされたか否かを判断する。そして、連結先候補として動線がリストアップされ、その動線リストが動線リスト表示部43に表示されている場合には、そのリストの中から連結先動線が選択されるのを待機する。すなわち、動線データベース33に記憶された動線データの中から連結先となる第2の動線データの選択入力を受付ける(動線選択手段)。そして、操作入力部23の操作入力により連結先動線が選択されたならば、制御部25は、ST14として連結先動線再生処理を実行する。この再生処理は、図11に示した連結元動線再生処理と対象となる動線データが異なるだけで、その処理手順は同じである。したがって、ここでの説明は省略する。
【0110】
この連結先動線再生処理が実行されることにより、動線編集画面40の動線編集部41には、連結先候補リストの中からオペレータが選択した連結先動線IDの動線が表示される(動線表示手段)。また、この動線表示に同期して、同一時点のカメラ画像が動線編集画面40のカメラ画像表示部42に表示される(カメラ画像表示手段)。そして、このカメラ画像には、動線のターゲット位置に動線IDが表示される。
【0111】
そこでオペレータは、動線の動きとカメラ画像とを見比べて、その動線が先に選択した連結元動線に連結される動線であるか、すなわち、連結元動線のIDで特定される人物の動線であるか否かを判断する。そして、操作入力部23を介してその判断結果を入力する。連結先動線が連結元動線のIDで特定される人物の動線であり、連結元動線に連結することを指示する場合は、例えば連結ボタンを操作し、連結しないことを指示する場合は、例えば取消ボタンを操作する。
【0112】
制御部25は、ST15として連結先動線を連結元動線に連結するか否かを判断する。連結する旨の指示入力を受付けた場合には、制御部25は、ST18の連結定義処理に進む。これに対し、連結しない旨の指示入力を受付けた場合には、制御部25は、ST16のマーカ登録判断処理に進む。また、ST13の処理において、連結先候補として動線がリストアップされなかった場合も、ST16のマーカ登録判断処理に進む。
【0113】
ST16では、制御部25は、操作入力部23の操作入力によりマーカ登録が宣言されたか否かを判断する。マーカ登録とは、動線編集画面40の動線編集部41を使用して、ユーザが任意の動線を描くことによって連結先候補となる動線を作成し、その動線データ(動線編集レコード)を動線データベース33に登録する処理である。マーカ登録が宣言されていないときには、制御部25は、ST13に戻り、次の連結先候補が選択されるのを待機する。
【0114】
ST16にて、動線編集画面40のマーカ登録用アイコン45がクリックされたならば、制御部25は、マーカ登録が宣言されたものと判断する。この場合、制御部25は、ST17としてマーカ登録処理を実行する。このマーカ登録処理の処理手順は、図14の流れ図によって示される。すなわち制御部25は、ST101として動線編集画面40の動線編集部41内にドットマーキング用のツールを表示させる。また、ST102としてマーキング数カウンタPを“0”にリセットする。さらに、ST103として連結元動線IDを動線IDとする動線編集レコードから動線終点座標(Xn,Yn)を取得する。
【0115】
次に、制御部25は、ST104として動線編集部41内にドットがマーキングされるのを待機する(動線入力受付手段)。そして、前記ツールが操作されてドットがマーキングされたならば、制御部25は、ST105としてそのドットの店舗内座標(x,y)を取得し、この店舗内座標(x,y)と連結元動線の動線終了座標(Xn,Yn)との距離を算出する(差算出手段)。そして、ST106としてこの距離が候補検索処理によって使用される閾値以内であるか否かを判断する(比較手段)。閾値を越える場合には、制御部25は、ST107としてマーキングされたドットをクリアする(受付拒否手段)。そして、ST104に戻り、再度ドットがマーキングされるのを待機する。
【0116】
ST106にて距離が閾値以内の場合には、制御部25は、ST108としてマーキング数カウンタPを“1”だけカウントアップする。そして、ST109としてこのマーキング数カウンタPの値をアドレスとし、このアドレスと関連付けてマーキングされたドットの店舗内座標(x1,y1)を記憶する。
【0117】
しかる後、制御部25は、マーキング終了が指示されるまでの間、ST110として次のドットがマーキングされるのを待機する(動線入力受付手段)。そして、次のドットがマーキングされる毎に、制御部25は、ST108及びST109の処理を繰り返す。すなわち、マーキング数カウンタPを“1”だけカウントアップし、このマーキング数カウンタPの値をアドレスとしてマーキングされたドットの店舗内座標(xp,yp)を記憶する。
【0118】
ST111として操作入力部23の操作入力によりマーキング終了が指示された場合には、制御部25は、ST112として記憶している最終動線IDに“1”を加算する。また、ST113としてアドレス=1に関連付けられて記憶されている店舗内座標(x1,y1)を動線始点座標とする。また、ST114としてアドレスPに関連付けられて記憶されている店舗内座標(xp,yp)を動線終点座標とする。さらに、ST115として各アドレス1〜Pにそれぞれ関連付けられて記憶されている各店舗内座標と、予め固定として設定されている高さH(Height:例えば160cm)と、連結元動線IDが設定された動線編集レコードの最終の動線インデックス情報にセットされたフレーム日時情報とから動線インデックス情報を作成する。そして、ST116としてこの最終動線ID、動線始点座標、動線終点座標及び各動線インデックス情報がセットされた動線編集レコードを作成し(動線生成手段)、動線データベース33に追加する(動線登録手段)。
【0119】
しかる後、制御部25は、ST117としてこの追加した動線編集レコードについて前記状態定義処理を実行する。そして、この状態定義処理を終了したならば、制御部25は、ST118としてマーキング用ツールを消去して、このマーカ登録処理を終了する。
【0120】
なお、図示しないが、このマーカ登録処理が実行されている期間中に、操作入力部23の操作入力により動線編集部41のスクロールバー46が手動操作された場合には、制御部25は、このスクロールバーの位置によって定まるフレーム日時のカメラ画像をカメラ画像表示部42に表示するようになっている。
【0121】
そこで、連結元動線に対して適当な連結先動線が存在しない場合には、オペレータは、マーカ登録を行う。この際、スクロールバーを操作してカメラ画像を進めたり戻したりすることによって、連結元動線の動線IDによって特定される人物(ターゲット)の行動を目視する。そして、例えば商品陳列棚に隠れてしまったためにターゲットを追跡できなかった区間を特定する。この区間を特定できたならば、オペレータは、この区間内のターゲットの行動に相当する動線を、ドットマーキング操作によって動線編集部41上に作成する。そうすることにより、このマーカ登録された動線の動線データが動線データベース3に登録される。この動線データは、連結元動線に対する連結先動線として決定される。
【0122】
すなわち制御部25は、上記マーカ登録処理を終了すると、ST15の判断処理で「YES」と判断したときと同様に連結先動線が決定されたので、ST18の連結定義処理に進む。
【0123】
連結定義処理の処理手順は、図15の流れ図によって示される。すなわち制御部25は、先ず、ST121として連結元動線の状態ステータスを判定する。ここで、状態ステータスが「入口→入口」または「入口」の場合、すなわち完全動線の場合には、この連結元動線に対応した動線編集レコードの連結定義情報[起点]を「連結元動線ID」とし、連結定義情報[前連結ID]及び[後連結ID]をいずれも「設定なし」とする。
【0124】
これに対し、状態ステータスが「入口→店内」の場合には、ST122として連結先動線の状態ステータスを判定する。連結先動線の状態ステータスが「店内→店内」であった場合には、この連結先動線及び連結元動線にそれぞれ対応した動線編集レコードの連結定義情報[起点]を「連結元動線ID」とする。また、連結元動線に対応した動線編集レコードの連結定義情報[前連結ID]を「設定なし」とし、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。これに対し、連結先動線の状態ステータスが「店内→入口」または「入口」であった場合には、この連結先動線及び連結元動線にそれぞれ対応した動線編集レコードの連結定義情報[起点]を「連結元動線ID」とする。また、連結元動線に対応した動線編集レコードの連結定義情報[前連結ID]を「設定なし」とし、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。さらに、連結先動線に対応した動線編集レコードの連結定義情報[後連結ID]を「設定なし」とする。
【0125】
一方、連結元動線の状態ステータスが「入口→入口」,「入口」及び「入口→店内」でない場合、すなわち「店内→店内」の場合には、ST123として、やはり連結先動線の状態ステータスを判定する。連結先動線の状態ステータスが「店内→店内」であった場合には、この連結先動線に対応した動線編集レコードの連結定義情報[起点]を「連結元動線の起点」とする。また、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。これに対し、連結先動線の状態ステータスが「店内→入口」であった場合には、この連結先動線に対応した動線編集レコードの連結定義情報[起点]を「連結元動線の起点」とする。また、連結先動線に対応した動線編集レコードの連結定義情報[前連結ID]を「連結元動線ID」とし、連結元動線に対応した動線編集レコードの連結定義情報[後連結ID]を「連結先動線ID」とする。さらに、連結先動線に対応した動線編集レコードの連結定義情報[後連結ID]を「設定なし」とする。
【0126】
こうして、連結定義処理が終了すると、制御部25は、ST19として連結元動線が退店まで定義されたか否かを判断する。連結元動線が完全動線であった場合には、退店まで定義されたと判断する。また、連結先動線として選択された動線の状態ステータスが「店内→入口」であった場合も、退店まで定義されたと判断する。それ以外の場合は、まだ退店まで定義されていないと判断する。そして、その場合は、ST20として連結先動線を連結元動線に置き換えて、ST9以降の処理を再度実行する。
【0127】
ST19にて、退店まで定義されたと判断した場合には、制御部25は、ST21として連結元動線となる動線の選択が完了したか否かを判断する。ここで、操作入力部23の操作入力により選択継続が指示された場合には、ST6に戻り、動線リストをリスト表示部43に表示させて、次の連結元動線が選択されるのを待機する。
【0128】
一方、操作入力部23の操作入力により選択終了が指示された場合には、制御部25は、ST22として連結処理を実行する。この連結処理の処理手順は、図16の流れ図によって示される。すなわち制御部25は、先ず、ST131として動線データベース33を検索して、連結定義情報が設定された動線編集レコードの中から定義情報[前連結ID]が「設定なし」の動線編集レコードを1つ選択する。この選択した動線編集レコードに対応する動線を動線Aと認識する。
【0129】
次に、制御部25は、ST132としてこの動線Aに対応した動線編集レコードの連結定義情報[後連結ID]が動線IDとして設定された動線編集レコードを動線データベース33から取得する。そして、この取得した動線編集レコードに対応する動線を動線Bと認識する。
【0130】
次に、制御部25は、ST133として動線Aに対応した動線編集レコードの連結定義情報[起点]と、動線Bに対応した動線編集レコードの連結定義情報[起点]とを比較する。その結果、一致していることを確認したならば、次に、制御部25は、ST134として動線Aの動線IDと、動線Bに対応した動線編集レコードの連結定義情報[前連結ID]とを比較する。
【0131】
その結果、一致していることを確認したならば、次に、制御部25は、ST135として動線Aに対応した動線編集レコードの最終フレームに対応した動線インデックス情報のフレーム日時と、動線Bに対応した動線編集レコードの先頭フレームに対応した動線インデックス情報のフレーム日時との時間差を算出する。そして、この時間差が、カメラ画像の1フレーム以内であるか否かを判断する。
【0132】
1フレーム以内であった場合には、動線Aの終点位置と動線Bの始点位置とが一致していると判断し、制御部25は、ST136として動線Aと動線Bを連結する。すなわち、動線Bに対応した動線編集レコードの先頭フレームに対応した動線インデックス情報から最終フレームに対応した動線インデックス情報を抽出し、動線Aに対応した動線編集レコードの最終フレームに対応した動線インデックス情報の後に付加する。そして、この動線Aに対応した動線編集レコードの動線終点座標を、動線Bに対応した動線編集レコードから抽出した最終フレーム対応の動線インデックス情報の座標に置換する。さらに、動線Aに対応した動線編集レコードの状態ステータスを更新する。かくして、連結元となる動線データの始点から連結先となる動線データの終点までの軌跡を示す動線データが生成される。
【0133】
これに対し、時間差が1フレームより長かった場合には、動線Aの終点と動線Bの起点との間を補間処理する。補間処理としては、動線Aの終点と動線Bの起点との間を直線で結ぶ線形補間が挙げられる。店内での客の動きは、ゆったりとした歩行が主であるので、線形補間でも充分に補間処理が可能である。補間処理の後、制御部25は、ST136の連結処理を行う。
【0134】
その後、制御部25は、ST137として動線Bに対応した動線編集レコードの連結定義情報[後連結ID]を判定する。ここで、連結定義情報[後連結ID]が「設定なし」以外の場合には、動線Bを動線Aと置き換えて、ST132以降の処理を再度実行する。
【0135】
動線Bに対応した動線編集レコードの連結定義情報[後連結ID]が「設定なし」であった場合には、制御部25は、ST138として連結定義情報が設定された動線編集レコードを検索し終えたか否かを判断する。未だ検索し終えていない場合には、ST131以降の処理を再度実行する。検索し終えたならば、この連結処理を終了する。
【0136】
連結処理を終了すると、制御部25は、ST23として動線データベース33に記憶された動線編集レコードの中から、状態ステータスが「入口→入口」または「入口」の完全動線のレコードを検出する。そして、この完全動線のレコードを、記憶部22の出力ファイルに出力する。データ出力後、動線編集プログラムは終了する。
【0137】
このように本実施の形態によれば、動線データベース33に記憶された動線データの中から連結元となる動線データの選択入力を受付けるとともに、同じく動線データの中から連結先となる動線データの選択入力を受付け、連結元となる動線データと連結先となる動線データとが選択されると、連結元となる動線データの始点から連結先となる動線データの終点までの軌跡を示す動線データを自動的に生成するようにしたので、周知の動線データ生成システム10により生成された複数の動線を1本の動線に容易に連結することができる。その結果、入退場口IN/OUTから入店した人物が店舗内を回り、会計カウンタCHで会計を済ませて出店するまでを、1本の動線で結ぶことができる。
【0138】
この場合において、動線データベース33に記憶された動線データに基づいて移動体の動線を表示する動線表示手段を備えているので、オペレータは、連結元動線と連結先動線とを目視しながら連結することができる。しかも、動線表示手段により表示されている動線の移動体を撮影した画像もカメラ画像再生手段によって再生表示されるので、連結元動線の人物と連結先動線の人物とが同一人物であるか否かを目視によって確認することができる。
【0139】
また、複数の人のすれ違いや密集等により複数の人が重なってしまったために、同一人物の追跡に失敗して、動線が途中から別の人物の軌跡となる場合があるが、このような場合も、本実施の形態では、動線とそれに同期したカメラ画像とを見比べながら、動線の分割及び無効化の修正作業を容易に行うことができるので、このような動線もエラー動線として削除してしまうことはなく、有効に活用することができる。
【0140】
また、店舗内に置かれた商品陳列棚や商品の広告ポスター,POP等によって、人物が隠れてしまい、カメラ画像からは動線を追跡できなかった場合でも、本実施の形態では、マーカ登録機能によって追跡できなかった区間の動線を手動で作成することができるので、入退場口から入場して店内を回り、退場する人物の動線を確実に1本の線で結ぶことができる。
【0141】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【0142】
例えば、前記実施の形態では、動線インデックス情報に変化点フラグFと分割点フラグSとを設けたが、変化点フラグFは自動分割処理で使用され、分割点フラグSは手動分割処理で使用されるフラグなので、いずれか一方に共通化してもよい。
【0143】
また、前記実施の形態では装置内部に発明を実施する機能(動線編集プログラム)が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、CD−ROM等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のOS(オペレーティング・システム)等と協働してその機能を実現させるものであってもよい。
【0144】
この他、前記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を組合わせてもよい。
【図面の簡単な説明】
【0145】
【図1】本発明の一実施の形態におけるシステム構成を示すブロック図。
【図2】同実施の形態における店舗内レイアウトの説明図。
【図3】同実施の形態における動線データのデータ構造を示す模式図。
【図4】同実施の形態における動線編集レコードのデータ構造を示す模式図。
【図5】同実施の形態における動線編集画面の一例を示す模式図。
【図6】同実施の形態において動線編集プログラムによる動線編集装置の処理手順を示す流れ図。
【図7】図6における動線データ作成処理の要部処理手順を示す流れ図。
【図8】図6における動線状態定義処理の要部処理手順を示す流れ図。
【図9】図6における動線無効化処理の要部処理手順を示す流れ図。
【図10】図6における動線分割処理の要部処理手順を示す流れ図。
【図11】図6における動線再生処理の要部処理手順を示す流れ図。
【図12】図11における座標変換処理の要部処理手順を示す流れ図。
【図13】図6における連結先動線候補検索処理の要部処理手順を示す流れ図。
【図14】図6におけるマーカ登録処理の要部処理手順を示す流れ図。
【図15】図6における連結定義処理の要部処理手順を示す流れ図。
【図16】図6における連結処理の要部処理手順を示す流れ図。
【符号の説明】
【0146】
10…動線データ生成システム、20…動線編集装置、21…データ主深部、22…記憶部、23…操作入力部、24…画面表示部、25…制御部、31…動線データベース、32…カメラ画像データベース、33…動線データベース、34…設定データベース、35…カメラパラメータデータベース、36…店内エリア定義データベース、37…店内マップデータベース、41…動線編集部、42…カメラ画像表示部、43…動線リスト表示部。

【特許請求の範囲】
【請求項1】
監視領域を撮影したカメラ画像から検出された移動体の始点から終点までの軌跡を示す動線のデータが蓄積される動線データベースから選択された2本以上の動線を1本に連結された動線に編集する動線編集装置において、
編集対象とする動線を選択する動線選択手段と、
この動線選択手段により選択された動線を表示する動線表示手段と、
この動線表示手段により表示される動線の軌跡と同期させて、この動線に該当する移動体が検出されたカメラ画像を表示するカメラ画像表示手段と、
前記動線表示手段により表示されている動線上の分割点指示入力を受付ける分割点受付手段と、
前記動線選択手段により選択された動線を前記分割点受付手段により受付けた分割点で分割する動線分割手段と、
この動線分割手段により分割された各動線のデータを前記動線データベースに登録する動線登録手段と、
を具備したことを特徴とする動線編集装置。
【請求項2】
前記動線分割手段により分割された各動線のうち少なくとも1つの動線の無効化指示入力を受付ける無効化受付手段と、
この無効化受付手段により無効化が指示された動線のデータを、編集対象とする動線として選択不能な無効データとするデータ無効化手段と、
をさらに具備したことを特徴とする請求項1記載の動線編集装置。
【請求項3】
監視領域を撮影したカメラ画像から検出された移動体の始点から終点までの軌跡を示す動線のデータが蓄積される動線データベースから選択された2本以上の動線を1本に連結された動線に編集する動線編集装置において、
編集対象とする動線を選択する動線選択手段と、
この動線選択手段により選択された動線を表示する動線表示手段と、
この動線表示手段により表示される動線の軌跡と同期させて、この動線に該当する移動体が検出されたカメラ画像を表示するカメラ画像表示手段と、
前記動線表示手段により表示されている動線に連結させる動線の生成入力を受付ける動線入力受付手段と、
この動線入力受付手段により入力を受付けた動線を生成する動線生成手段と、
この動線生成手段により生成された動線のデータを前記動線データベースに登録する動線登録手段と、
を具備したことを特徴とする動線編集装置。
【請求項4】
前記動線表示手段により表示されている動線の終点から前記動線入力受付手段により入力を受付けた動線の始点までの差を算出する差算出手段と、
この差算出手段により算出された差を予め設定されている閾値と比較する比較手段と、
この比較手段により前記差が前記閾値を超えると判定されると、前記動線入力受付手段により入力を受付けた動線を破棄する受付拒否手段と、
をさらに具備したことを特徴とする請求項3記載の動線編集装置。
【請求項5】
前記動線表示手段により動線が表示される第1の表示部と、前記カメラ画像表示手段によりカメラ画像が表示される第2の表示部とを、1つの画面の異なる領域に形成してなることを特徴とする請求項1乃至4のうちいずれか1記載の動線編集装置。
【請求項6】
監視領域を撮影したカメラ画像から検出された移動体の始点から終点までの軌跡を示す動線のデータが蓄積される動線データベースを備えたコンピュータに、選択された2本以上の動線を1本に連結された動線に編集する機能を実現させる動線編集プログラムであって、
前記コンピュータに、
編集対象とする動線を選択する機能と、
この選択機能により選択された動線を第1の表示部に表示させる機能と、
前記第1の表示部に表示される動線の軌跡と同期させて、この動線に該当する移動体が検出されたカメラ画像を第2の表示部に表示させる機能と、
前記第1の表示部に表示されている動線上の分割点指示入力を受付ける機能と、
前記選択機能により選択された動線を前記指示入力受付機能により指示入力を受付けた分割点で分割する機能と、
この分割機能により分割された各動線のデータを前記動線データベースに登録する機能と、
を実現させることを特徴とする動線編集プログラム。
【請求項7】
前記コンピュータに、
前記分割機能により分割された各動線のうち少なくとも1つの動線の無効化指示入力を受付ける機能と、
この無効化指示入力受付機能により無効化指示入力を受付けた動線のデータを、編集対象とする動線として選択不能な無効データとする機能と、
をさらに実現させることを特徴とする請求項6記載の動線編集プログラム。
【請求項8】
監視領域を撮影したカメラ画像から検出された移動体の始点から終点までの軌跡を示す動線のデータが蓄積される動線データベースを備えたコンピュータに、選択された2本以上の動線を1本に連結された動線に編集する機能を実現させる動線編集プログラムであって、
前記コンピュータに、
編集対象とする動線を選択する機能と、
この選択機能により選択された動線を第1の表示部に表示させる機能と、
前記第1の表示部に表示される動線の軌跡と同期させて、この動線に該当する移動体が検出されたカメラ画像を第2の表示部に表示させる機能と、
前記第1の表示部に表示されている動線に連結させる動線の生成入力を受付ける機能と、
この生成入力受付機能により生成入力を受付けた動線を生成する機能と、
この生成機能により生成された動線のデータを前記動線データベースに登録する機能と、
を実現させることを特徴とする動線編集プログラム。
【請求項9】
前記コンピュータに、
前記第1の表示部に表示されている動線の終点から前記生成入力受付機能により生成入力を受付けた動線の始点までの差を算出する機能と、
この差算出機能により算出された差を予め設定されている閾値と比較する機能と、
この比較機能により前記差が前記閾値を超えると判定されると、前記生成入力受付機能により生成入力を受付けた動線を破棄する機能と、
をさらに実現させることを特徴とする請求項8記載の動線編集プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2009−110408(P2009−110408A)
【公開日】平成21年5月21日(2009.5.21)
【国際特許分類】
【出願番号】特願2007−283727(P2007−283727)
【出願日】平成19年10月31日(2007.10.31)
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】