(57)【特許請求の範囲】
【請求項１】
顧客との商取引の内容を示すトランザクションデータを記憶するトランザクションデータベースと、
売場領域を撮影したカメラ画像から人物の軌跡を示す動線を生成する動線生成手段と、
前記動線生成手段により生成された動線のデータを記憶する動線データベースと、
前記動線データベースに記憶された動線データに基づいて、前記売場領域で買物をする顧客毎に、その売場領域における所定範囲内での全軌跡である完全動線を編集する完全動線編集手段と、
前記完全動線編集手段により顧客別に編集された完全動線データに基づいて、前記売場領域内を移動する顧客の軌跡を再生する動線再生手段と、
前記動線再生手段により前記売場領域内を移動する軌跡が再生されている顧客の商取引決済に関する情報の入力を受け付ける決済情報受付手段と、
前記決済情報受付手段により入力を受け付けた商取引決済に関する情報をその顧客の完全動線データに付加して記憶する完全動線データベースと、
前記完全動線データベースに記憶された完全動線データに、その完全動線データに付加されている商取引決済に関する情報に該当する前記トランザクションデータベース内のトランザクションデータを紐付ける動線紐付け手段と、
前記動線紐付け手段により紐付けられた完全動線データとトランザクションデータとの組合せを示すデータを記憶する紐付けテーブルと、
前記売場領域を細分化して形成される複数のサブエリアをそれぞれ特定する情報を記憶するサブエリア情報記憶部と、
フィルタ条件として少なくとも前記サブエリアの指定入力を受付けるフィルタ条件受付手段と、
このフィルタ条件受付手段によりいずれかのサブエリアの指定入力を受付けると、前記サブエリア情報記憶部内の当該指定サブエリアを特定する情報と前記完全動線データベース内の各完全動線データとから、当該指定サブエリアを通過した顧客の完全動線データを抽出する完全動線データ抽出手段と、
前記紐付けテーブルを参照して、前記完全動線データ抽出手段により抽出された完全動線データに組み合わされたトランザクションデータを特定し、特定されたトランザクションデータを前記トランザクションデータベースから読み込むトランザクションデータ読込手段と、
を具備したことを特徴とする動線解析装置。
【請求項２】
前記フィルタ条件受付手段は、特定の商品または商品群の指定入力を受付ける手段をさらに含み、
前記トランザクションデータ読込手段により読込んだトランザクションデータの中から前記フィルタ条件受付手段により指定入力を受け付けた特定の商品または商品群を含むトランザクションデータを選択するトランザクションデータ選択手段、
をさらに具備したことを特徴とする請求項１記載の動線解析装置。
【請求項３】
前記完全動線編集手段は、前記動線データベースに記憶された動線データの中から連結元となる動線データと連結先となる動線データとの選択入力を受け付け、選択された連結元動線データの始点から、選択された連結先動線データの終点までの軌跡を示す動線データを編集することを特徴とする請求項１または２記載の動線解析装置。
【請求項４】
前記動線再生手段は、再生中の動線の動きに連動して、その動線が生成されるカメラ画像を再生するカメラ画像再生手段を含むことを特徴とする請求項１または２記載の動線解析装置。
【請求項５】
前記トランザクションデータは、商取引が決済された日時データを含み、
前記決済情報受付手段は、取引決済に関する情報として決済された日時データの入力を受け付け、
前記動線紐付け手段は、前記日時データの差が最小となるトランザクションデータと完全動線データとを紐付けることを特徴とする請求項１または２記載の動線解析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばコンビニエンスストア，スーパーマーケット等の店舗において、顧客の移動経路を示す動線データと、その顧客との商取引の内容を示すトランザクションデータとから、顧客の店舗内での行動を解析する動線解析装置に関する。
【背景技術】
【０００２】
従来、特許文献１記載の動線解析システムが知られている。このシステムは、映像データベースと、販売情報データベースと、動線変換処理部と、動線データベースとを有する。映像データベースには、店舗内に設置された複数のカメラで撮影された映像が時間情報と紐付けられて記録される。販売情報データベースには、販売情報入力装置から入力された販売情報が購入時刻と紐付けられて記憶される。動線変換処理部は、映像データベースに記録された映像を取り込んで画像処理を行い、動線データを作成する。動線データベースには、動線変換処理部で作成された動線データが記録される。
【０００３】
動線解析担当者は、販売情報データベースから販売情報を指定する。そうすると、その販売情報の購入時刻から動線データベースの動線データが特定される。そして、この動線データに基づいた動線がディスプレイに表示される。かくして担当者は、顧客の動線を解析することができる。
【特許文献１】特開２００６−３５０７５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の動線解析システムでは、カメラ画像で撮影された映像の画像処理技術によって、顧客の抽出と、抽出された顧客の追跡を行い、動線データを得ると記述されている。しかし、現状の画像処理技術では、たとえ店内の全エリアを死角なく撮影したとしても、一人の顧客の店内全域の動きを１つの動線として追跡することはきわめて困難である。例えば、動線が途切れたり、他の顧客と入れ替わったりする。その要因としては、顧客の移動経路の交錯、同じ顧客を見る角度の差異による人物特徴量の変化、手を上げたり腰を曲げたりする顧客自身の動きなどが考えられる。従来の技術では、このような不具合が頻発するという問題に対し、何等解決策が提示されていない。
【０００５】
本発明は、このような事情に基づいてなされたもので、その目的とするところは、顧客の動線を精度よく解析できる動線解析装置を提供しようとするものである。
【課題を解決するための手段】
【０００６】
本発明は、顧客との商取引の内容を示すトランザクションデータを記憶するトランザクションデータベースと、売場領域を撮影したカメラ画像から人物の軌跡を示す動線を生成する動線生成手段と、動線生成手段により生成された動線のデータを記憶する動線データベースと、動線データベースに記憶された動線データに基づいて、売場領域で買物をする顧客毎に、その売場領域における所定範囲内での全軌跡である完全動線を編集する完全動線編集手段と、完全動線編集手段により顧客別に編集された完全動線データに基づいて、売場領域内を移動する顧客の軌跡を再生する動線再生手段と、動線再生手段により売場領域内を移動する軌跡が再生されている顧客の商取引決済に関する情報の入力を受け付ける決済情報受付手段と、決済情報受付手段により入力を受け付けた商取引決済に関する情報をその顧客の完全動線データに付加して記憶する完全動線データベースと、完全動線データベースに記憶された完全動線データに、その完全動線データに付加されている商取引決済に関する情報に該当する前記トランザクションデータベース内のトランザクションデータを紐付ける動線紐付け手段と、動線紐付け手段により紐付けられた完全動線データとトランザクションデータとの組合せを示すデータを記憶する紐付けテーブルと、売場領域を細分化して形成される複数のサブエリアをそれぞれ特定する情報を記憶するサブエリア情報記憶部と、フィルタ条件として少なくともサブエリアの指定入力を受付けるフィルタ条件受付手段と、このフィルタ条件受付手段によりいずれかのサブエリアの指定入力を受付けると、サブエリア情報記憶部内の当該指定サブエリアを特定する情報と完全動線データベース内の各完全動線データとから、当該指定サブエリアを通過した顧客の完全動線データを抽出する完全動線データ抽出手段と、紐付けテーブルを参照して、完全動線データ抽出手段により抽出された完全動線データと組み合わされたトランザクションデータを特定し、特定されたトランザクションデータをトランザクションデータベースから読み込むトランザクションデータ読込手段とを備えたものである。
【発明の効果】
【０００７】
かかる手段を講じた本発明によれば、顧客の動線を精度よく解析できる動線解析装置を提供できる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明を実施するための最良の形態について説明する。なお、この実施の形態は、店舗内を移動する顧客の経路を示す動線データと、その顧客と店舗との間の商取引の内容を示すトランザクションデータとから、顧客の店舗内での行動を解析する場合である。
【０００９】
本実施の形態の動線管理システムは、図１のブロック図に示すように、販売管理装置１と、動線管理装置２と、動線解析装置３とから構成されている。販売管理装置１と、動線管理装置２及び動線解析装置３とは、コンピュータ間ネットワークで双方向通信自在に接続されている。
【００１０】
販売管理装置１は、複数台のＰＯＳ端末１１と、１台のＰＯＳサーバ１２とから構成されている。各ＰＯＳ端末１１は、ＬＡＮ（Local Area Network）等の通信回線１３を介して、ＰＯＳサーバ１２に接続されている。ＰＯＳサーバ１２は、各ＰＯＳ端末１１の上位機として機能する。本実施の形態では、説明の便宜上、ＰＯＳ端末の台数を２台とする。一方のＰＯＳ端末を符号１１ａで示し、他方のＰＯＳ端末を符号１１ｂで示す。このような販売管理装置１は、一般に、ＰＯＳシステムと称される。
【００１１】
各ＰＯＳ端末１１ａ，１１ｂは、顧客が買上げる商品の販売データとその顧客の支払データとを処理して、顧客毎にトランザクションデータを生成する。生成されたトランザクションデータは、通信回線１３を介して、ＰＯＳサーバ１２に送信される。ＰＯＳサーバ１２は、各ＰＯＳ端末１１ａ，１１ｂから受信したトランザクションデータを、トランザクションデータベース１４に順次保存する。
【００１２】
トランザクションデータのデータ構造を図２に示す。図示するように、トランザクションデータには、顧客が買上げた商品の明細情報（アイテムＩＤ、商品名、分類ＩＤ、分類名、単価）と、取引一連番号と、端末番号と、取引日時と、合計金額と、支払区分と、客層とが含まれる。アイテムＩＤは、各商品を識別するために商品毎に異なるコードが設定される。端末番号は、各ＰＯＳ端末１１ａ，１１ｂを識別するために端末毎に異なる数値が設定される。取引日時は、商取引が開始されたときの日付と時刻である。各ＰＯＳ端末１１ａ，１１ｂには、ＲＴＣ（Real-Time Clock）が実装されており、顧客の１品目の商品データが入力されたときにＲＴＣが計時している日時データが取引日時としてセットされる。なお、商取引が終了したとき、すなわち、チェックアウトキーが操作された時点の日付と時刻を取引日時としてもよい。支払区分は、代金の支払い方法、例えば現金、クレジットカード等を区分するデータである。客層は、顧客の性別及び年齢層を区分するデータである。
【００１３】
トランザクションデータは、端末番号と取引日時と取引一連番号との組合せによって一意に識別される。すなわち、端末番号、取引日時及び取引一連番号からなるデータは、トランザクションデータのＩＤとなる。
【００１４】
動線管理装置２は、複数台のカメラＣＡと動線サーバ２０とから構成されている。各カメラＣＡは、図３の店舗内レイアウト図に示すように、店舗内中央部の天井に１台（ＣＡ１）、ＰＯＳ（Point Of Sales）端末１１ａ，１１ｂが置かれている会計カウンタＣＨ近傍の天井に２台（ＣＡ２，ＣＡ３）、会計カウンタＣＨに対して店内奥側及び左右壁側の計３箇所の天井に３台（ＣＡ４，ＣＡ５，ＣＡ６）が取り付けられている。このうち、カメラＣＡ１，ＣＡ２，ＣＡ３は魚眼カメラであり、カメラＣＡ４，Ｃ５，ＣＡ６は全方位カメラである。
【００１５】
動線サーバ２０は、図４のブロック図に示すように、動線データ生成部２１と記憶部２２とから構成されている。
【００１６】
動線データ生成部２１は、各カメラＣＡ１〜ＣＡ６でそれぞれ撮影された映像から、一定の周期でカメラ別フレーム画像を抽出する。そして、抽出された同一タイミングのカメラ別フレーム画像を解析する。その結果、移動体を検出したならば、動線データ生成部２１は、その移動体をターゲットとして追跡する。また、動線データ生成部２１は、新たなターゲットを検出する毎に、そのターゲットに固有の識別子であるターゲットＩＤを付す。動線データ生成部２１は、これらの情報を基に、フレーム単位のオリジナル動線データを生成する。
【００１７】
本実施の形態では、説明の便宜上、ターゲットＩＤは、“０”から１ずつ昇順に繰り上がる連続番号とする。また、フレーム画像を抽出する周期は１／１５秒とする。この周期は変更できる。例えば、より詳細な動線データが必要な場合には、例えば１／３０秒というように周期を短くすればよい。オリジナル動線データベース４１のファイル容量を小さくする必要がある場合には、例えば１／１０秒というように周期を長くすればよい。
【００１８】
記憶部２２は、例えばハードディスクやフラッシュメモリ等の不揮発性記憶媒体である。記憶部２２には、オリジナル動線データベース４１、カメラ画像データベース４２、編集動線データベース４３、設定データベース４４、カメラパラメータデータベース４５、店内エリア定義データベース４６及び店内マップデータベース４７が形成されている。
【００１９】
オリジナル動線データベース４１には、図５に示すように、動線データ生成部２１で生成されるフレーム単位のオリジナル動線データが順に記憶される。オリジナル動線データは、カメラ画像ファイルのファイル名と、オフセット値と、撮影日時情報と、ターゲット数と、ターゲット数分のターゲット情報（ＩＤ，Ｘ，Ｙ，Ｈ）とによって構成される。
【００２０】
各カメラＣＡ１〜ＣＡ６で撮影された映像から同一のタイミングで抽出された各フレーム画像は、１つのカメラ画像ファイルに保存される。このとき、各フレーム画像には、それぞれ異なるオフセット値が付される。このカメラ画像ファイルのファイル名と各フレーム画像のオフセット値とが、そのフレームに基づいたオリジナル動線データに組み込まれる。
【００２１】
動線データ生成部２１では、各フレーム画像からターゲットが検出される。ターゲットには固有のＩＤが付される。また、ターゲットの位置が三次元の世界座標系（Ｘ，Ｙ，Ｈ）で算出される。本実施の形態では、図３の店内レイアウト図において、左奥の角をＸ軸及びＹ軸の原点（０，０）とし、その床面をＨ（Height）軸の原点としている。同一タイミングのフレーム画像から検出されたターゲットの数と、そのフレーム画像の撮影日時と、ターゲット毎のターゲット情報（ＩＤ，Ｘ，Ｙ，Ｈ）とが、そのフレームに基づいたオリジナル動線データに組み込まれる。
【００２２】
カメラ画像データベース４２には、各カメラＣＡ１〜ＣＡ６でそれぞれ撮影された映像からカメラＣＡ１〜ＣＡ６毎に抽出された同一時刻の各フレーム画像を格納したカメラ画像ファイルのデータが順に記憶される。
【００２３】
編集動線データベース４３には、編集動線データが記憶される。編集動線データは、オリジナル動線データに基づいてターゲット毎に生成される。編集動線データのデータ構造を図６に示す。図示するように、編集動線データは、固有の動線ＩＤと、始点座標と、終点座標と、複数のインデックス情報と、各種のステータス情報と、各種の連結定義情報とから構成される。始点座標は、動線ＩＤで特定される動線の始点を示す二次元座標である。終点座標は、その動線の終点を示す二次元座標である。インデックス情報は、画像のフレーム単位に生成される。動線ＩＤで特定される動線の店舗内座標（Ｘ，Ｙ，Ｈ）と、撮影日時情報Ｔと、変化点フラグＦとが、１つのインデックス情報に含まれる。ステータス情報には、状態ステータス，無効化ステータス及び部分動線ステータスがある。連結定義情報には、起点情報，前連結ＩＤ及び後連結ＩＤがある。
【００２４】
設定データベース４４には、動線編集作業に必要な種々の設定データが予め格納されている。
【００２５】
カメラパラメータデータベース４５には、魚眼カメラＣＡ１〜ＣＡ３に関する種々のパラメータデータと、全方位カメラＣＡ４〜ＣＡ６に関する種々のパラメータデータとが予め格納されている。
【００２６】
店内エリア定義データベース４６には、店舗のエリアを定義するためのデータが予め格納されている。本実施の形態では、店舗を入口エリアと無効エリアと売場エリアとに区分している。入口エリアは、図３において、入退場口ＩＮ／ＯＵＴより店内側の破線で囲われた矩形のエリアである。この入口エリア内の二次元座標（Ｘ，Ｙ）が、入口エリア定義データとして店内エリア定義データベース４６に記憶されている。無効エリアは、客が買い回りをすることができないエリアである。図３において、商品陳列棚Ｒが設置されているエリアと会計カウンタＣＨより内側のエリアが無効エリアに該当する。この無効エリア内の二次元座標（Ｘ，Ｙ）が、無効エリア定義データとして店内エリア定義データベース４６に記憶されている。売場エリアは、客が買い回りをするエリアである。店内から入口エリアと無効エリアとを除いたエリアが売場エリアに該当する。この売場エリア内の二次元座標（Ｘ，Ｙ）が売場エリア定義データとして店内エリア定義データベース４６に記憶されている。
【００２７】
店内マップデータベース４７には、図３に示すレイアウト図と同様の店内マップ平面図のイメージデータが予め格納されている。
【００２８】
動線解析装置３は、入力部３１、表示部３２、通信部３３、プログラム記憶部３４、データ記憶部３５、出力ファイル３６及び制御部３７で構成されている。入力部３１としては、キーボード，マウス等の入力デバイスが用いられる。表示部３２としては、液晶ディスプレイ，ＣＲＴディスプレイ等の表示デバイスが用いられる。通信部３３は、ＰＯＳサーバ１２及び動線サーバ２０とのインターフェイス機能を有する。プログラム記憶部３４は、ＲＯＭ（Read Only Memory）で構成されている。データ記憶部３５は、ＲＡＭ（Random Access Memory）で構成されている。出力ファイル３６は、ハードディスクや光磁気ディスク等の記録媒体で構成されている。制御部３７は、ＣＰＵ（Central Processing Unit）を主体に構成されている。動線解析装置３は、パーソナルコンピュータ等のコンピュータ機器によって実現される。
【００２９】
プログラム記憶部３４には、動線編集プログラムＰ１と動線解析プログラムＰ２が記憶されている。
【００３０】
店舗内には商品陳列棚Ｒ等が置かれている。このため、ターゲットが棚の陰に隠れてしまって、ターゲットを途中で追跡できなくなる場合がある。また、複数のターゲットが重なってしまって、ターゲットを追跡できなくなる場合もある。動線管理装置２では、ターゲットの追跡が一旦途絶えると、同一人物でも別の動線ＩＤが付されて管理される。
【００３１】
動線解析装置３は、同一人物に対して生成された複数の動線データを抽出し、入店から出店までを結んだ完全動線を編集する機能を有する。また、動線解析装置３は、客の入店から出店までの行動等を分析する機能を有する。前者の機能は、動線編集プログラムＰ１によって実現される。後者の機能は、動線解析プログラムＰ２によって実現される。
【００３２】
オペレータが動線編集業務の開始を指令すると、動線編集プログラムＰ１が起動する。動線編集プログラムＰ１が起動すると、制御部３７は、通信部３３を介して動線サーバ２０に接続する。そして、動線編集プログラムＰ１に従い、動線サーバ２０の記憶部２２に設けられた各データベース４１〜４７を適宜アクセスして、図８の流れ図に示す手順の動線編集処理を実行する。
【００３３】
制御部３７は、ＳＴ（ステップ）１として動線編集画面５０を表示部３２に表示させる。動線編集画面５０の一例を図７に示す。図示するように、動線編集画面５０は、動線表示部５１と、カメラ画像表示部５２と、動線リスト表示部５３と、座標表示部５４とに区分されている。
【００３４】
動線表示部５１には、店内マップデータベース４７に記憶されているイメージデータに基づいて、店内マップの平面図が表示される。動線表示部５１には、スクロールバー５５が設けられている。スクロールバー５５は、カメラＣＡ１〜ＣＡ６の撮影時間に同期している。オペレータが、スクロールバー５５を画面に向かって左端から右端にスライドさせると、撮影時間が経過する。そして、その時間に各カメラＣＡ１〜ＣＡ６で撮影された画像から検出されたターゲットの動線が、該店内マップに重ねて表示される。
【００３５】
カメラ画像表示部５２には、スクロールバー５５で指定された時間に各カメラＣＡ１〜ＣＡ６で撮影された画像が表示される。図示するように、６台のカメラＣＡ１〜ＣＡ６の画像を並べて同時に表示することができる。また、その中から選択された１乃至複数のカメラの画像を拡大して表示することもできる。
【００３６】
動線編集画面５０を表示した後、制御部３７は、ＳＴ２として動線データ作成処理を実行する。この作成処理の処理手順は、図９の流れ図によって示される。すなわち制御部３７は、先ず、ＳＴ３１として編集動線データベース４３をクリアする。次に、制御部３７は、ＳＴ３２として番号カウンタのカウント値Ｎを“０”にプリセットする。このプリセット値“０”は、動線データ生成部２１において、新たなターゲットを検出する毎に付与されるターゲットＩＤの初期値である。
【００３７】
番号カウンタのカウント値Ｎを“０”にプリセットした後、制御部３７は、ＳＴ３３としてＮと一致するターゲットＩＤが“Ｎ”（Ｎは番号カウンタの値）のターゲット情報を有するオリジナル動線データをオリジナル動線データベース４１から検索する。
【００３８】
ＳＴ３４として該当オリジナル動線データを１つ以上検出できた場合には、制御部３７は、ＳＴ３５としてそのターゲットＩＤ“Ｎ”を動線ＩＤとする編集動線データを生成する。そして、この編集動線データに、始点座標（Ｘ０，Ｙ０）、終点座標（Ｘｎ，Ｙｎ）及びインデックス情報（Ｘ，Ｙ，Ｈ，Ｔ，Ｆ）をセットする。
【００３９】
すなわち制御部３７は、オリジナル動線データベース４１から検出された全てのオリジナル動線データから、ターゲットＩＤが“Ｎ”のターゲット情報を取得する。そして、撮影日時が最も古いオリジナル動線データから取得したターゲット情報の二次元座標（Ｘ，Ｙ）を、編集動線データの始点座標（Ｘ０，Ｙ０）としてセットする。また、撮影日時が最も新しいオリジナル動線データから取得したターゲット情報の二次元座標（Ｘ，Ｙ）を、編集動線データの終点座標（Ｘｎ，Ｙｎ）としてセットする。さらに、各オリジナル動線データから取得したターゲット情報の三次元座標（Ｘ，Ｙ，Ｈ）と、撮影日時情報Ｔとを、編集動線データのインデックス情報として、撮影日時の古い順にセットする。なお、各インデックス情報の変化点フラグＦは、リセットされている。
【００４０】
動線ＩＤが“Ｎ”の編集動線データが作成されたならば、制御部３７は、ＳＴ３６としてこの編集動線データを編集動線データベース４３に保存する。しかる後、制御部３７は、ＳＴ３７として番号カウンタを“１”だけカウントアップする。そして、ＳＴ３３〜ＳＴ３７の処理を再度実行する。
【００４１】
制御部３７は、ターゲットＩＤが“Ｎ”のターゲット情報（ＩＤ，Ｘ，Ｙ，Ｈ）を有するオリジナル動線データを検出できなくなるまで、ＳＴ３３〜ＳＴ３７の処理を繰り返す。その結果、オリジナル動線データベース４１のオリジナル動線データを基に、動線ＩＤが“１”ずつ昇順する編集動線データが生成され、編集動線データベース４３に保存される。
【００４２】
ＳＴ３４としてターゲットＩＤが“Ｎ”のターゲット情報を有するオリジナル動線データを１つも検出できなかった場合には、制御部３７は、ＳＴ３８として番号カウンタのカウント値Ｎから“１”を減算した値“Ｎ−１”を、最終動線ＩＤとしてデータ記憶部３５に記憶する。以上で、動線データ作成処理が終了する（動線生成手段）。
【００４３】
動線データ作成処理が終了すると、制御部３７は、次に、ＳＴ３として動線の状態定義処理を実行する。この状態定義処理の処理手順は、図１０の流れ図によって示される。すなわち制御部３７は、編集動線データベース４３から編集動線データを、例えば動線ＩＤが小さい順に１つずつ抽出する。そして、抽出した編集動線データに対して、制御部３７は、以下の処理ルーチンに従い状態ステータスを設定する。
【００４４】
先ず、制御部３７は、ＳＴ４１として編集動線データから始点座標（Ｘ０，Ｙ０）を取得する。そして、店内エリア定義データベース４６を参照して、この始点座標（Ｘ０，Ｙ０）が入口エリアとして定義された座標であるか否かを判断する。入口エリアの座標であった場合には、制御部３７は、ＳＴ４２として編集動線データから終点座標（Ｘｎ，Ｙｎ）を取得する。そして、店内エリア定義データベース４６を参照して、この終点座標（Ｘｎ，Ｙｎ）も入口エリアの座標であるか否かを判断する。
【００４５】
終点座標（Ｘｎ，Ｙｎ）も入口エリアの座標であった場合には、制御部３７は、ＳＴ４３として同編集動線データのインデックス情報を撮影日時の古い順に調べる。その結果、入口エリアの座標以外の座標を含むインデックス情報を検出した場合には、この編集動線データに対応するターゲットは、入口エリアから一旦出た後、入口エリアに戻っている。この場合、制御部３７は、状態ステータスを「入口→入口」に設定する。
【００４６】
ＳＴ４３にて入口エリアの座標以外の座標を含むインデックス情報を１つも検出しなかった場合には、この編集動線データに対応するターゲットは、入口エリアから一度も出ていない。この場合、制御部３７は、状態ステータスを「入口」に設定する。
【００４７】
ＳＴ４２にて終点座標（Ｘｎ，Ｙｎ）が入口エリアの座標でなかった場合には、終点座標（Ｘｎ，Ｙｎ）は、売場エリアまたは無効エリアとして定義されている。この場合、制御部３７は、状態ステータスを「入口→店内」に設定する。
【００４８】
ＳＴ４１にて始点座標（Ｘ０，Ｙ０）が入口エリアの座標でなかった場合には、制御部３７は、ＳＴ４４としてこの始点座標（Ｘ０，Ｙ０）が無効エリアとして定義された座標であるか否かを判断する。無効エリアの座標であった場合には、制御部３７は、ＳＴ４５として同編集動線データから終点座標（Ｘｎ，Ｙｎ）を取得する。そして、店内エリア定義データベース４６を参照して、この終点座標（Ｘｎ，Ｙｎ）が無効エリアの座標であるか否かを判断する。
【００４９】
終点座標（Ｘｎ，Ｙｎ）が無効エリアの座標であった場合には、制御部３７は、ＳＴ４６として同編集動線データのインデックス情報を撮影日時の古い順に調べる。その結果、無効エリアの座標以外の座標を含むインデックス情報を１つも検出しなかった場合には、この編集動線データに対応するターゲットは、無効エリアから一度も出ていない。この場合、制御部３７は、状態ステータスを「無効」に設定する。
【００５０】
ＳＴ４６にて無効エリアの座標以外の座標を含むインデックス情報を検出した場合には、この編集動線データに対応するターゲットは、無効エリアから一旦出た後、無効エリアに戻っている。この場合、制御部３７は、状態ステータスを「店内→店内」に設定する。
【００５１】
ＳＴ４５にて終点座標（Ｘｎ，Ｙｎ）が無効エリアの座標でなかった場合には、制御部３７は、ＳＴ４７にて店内エリア定義データベース４６を参照してこの終点座標（Ｘｎ，Ｙｎ）が売場エリアの座標であるか否かを判断する。
【００５２】
終点座標（Ｘｎ，Ｙｎ）が売場エリアの座標であった場合には、制御部３７は、状態ステータスを「店内→店内」に設定する。これに対し、売場エリアの座標でなかった場合には、終点座標（Ｘｎ，Ｙｎ）は入口エリアの座標である。この場合、制御部３７は、状態ステータスを「店内→入口」に設定する。
【００５３】
ＳＴ４４にて始点座標（Ｘ０，Ｙ０）が無効エリアの座標でなかった場合には、始点座標（Ｘ０，Ｙ０）は売場エリアの座標である。この場合には、制御部３７は、ＳＴ４８として編集動線データから終点座標（Ｘｎ，Ｙｎ）を取得する。そして、店内エリア定義データベース４６を参照して、この終点座標（Ｘｎ，Ｙｎ）が入口エリアの座標であるか否かを判断する。
【００５４】
終点座標（Ｘｎ，Ｙｎ）が入口エリアの座標であった場合には、制御部３７は、状態ステータスを「店内→入口」に設定する。これに対し、入口エリアの座標でなかった場合には、終点座標（Ｘｎ，Ｙｎ）は、売場エリアまたは無効エリアの座標である。この場合、制御部３７は、状態ステータスを「店内→店内」に設定する。
【００５５】
制御部３７は、編集動線データベース４３の全ての編集動線データについて、上述した処理ルーチンを実行する。かくして、各編集動線データには、「入口→入口」，「入口」，「入口→店内」，「店内→入口」，「店内→店内」，「無効」のなかのいずれかの状態ステータスが設定される。
【００５６】
動線の状態定義処理を終了すると、制御部３７は、次に、ＳＴ４として動線の無効化処理を実行する。この無効化処理の処理手順は、図１１の流れ図によって示される。すなわち制御部３７は、設定データベース４４から無効化条件の設定データを取得する。無効化条件には、領域条件と時間条件とがある。領域条件は、動線の開始位置（始点）または終了位置（終点）が無効エリアに存在する動線を無効化する。時間条件は、動線の追跡時間が予め設定された閾値以下の動線を無効化する。これらの条件を有効とするか否かは、予めオペレータによって条件毎に選択され、設定データベース４４に設定されている。
【００５７】
無効化条件設定データを取得した制御部３７は、先ず、ＳＴ５１として領域条件が有効であるか否かを判断する。領域条件が有効でない場合には、制御部３７は、ＳＴ５４の処理に進む。
【００５８】
ＳＴ５１にて領域条件が有効であった場合には、制御部３７は、ＳＴ５２として編集動線データベース４３の編集動線データを１データずつ抽出して、その状態ステータスを調べる。その結果、状態ステータスが「無効」であった場合には（ＳＴ５３のＹＥＳ）、制御部３７は、その編集動線データの無効化ステータスを「オン」とする。状態ステータスが「無効」でなかった場合には（ＳＴ５３のＮＯ）、無効化ステータスは「オフ」のままである。無効化ステータスが「オン」となった編集動線データは無効化される。無効化された編集動線データは、この後の編集処理の手順の中で処理されることはない。
【００５９】
こうして、編集動線データベース４３の全ての編集動線データについて、状態ステータスを調べ終えたならば、制御部３７は、ＳＴ５４の処理に進む。すなわち、制御部３７は、時間条件が有効であるか否かを判断する。時間条件が有効でない場合には、無効化処理が終了する。
【００６０】
ＳＴ５４にて時間条件が有効であった場合には、制御部３７は、ＳＴ５５として編集動線データベース４３の編集動線データを１データずつ抽出する。そして、ＳＴ５７として動線追跡時間を算出する。すなわち制御部３７は、編集動線データの先頭のインデックス情報の撮影日時情報Ｔから最終のインデックス情報の撮影日時情報Ｔまでの経過時間を算出する。そして、ＳＴ５７としてこの動線追跡時間がオペレータによって予め設定データベース４４に設定された閾値以下であるか否かを判断する。
【００６１】
動線追跡時間が閾値以下であった場合には（ＳＴ５７のＹＥＳ）、制御部３７は、その編集動線データの無効化ステータスを「オン」とする。動線追跡時間が閾値より長い場合には（ＳＴ５７のＮＯ）、無効化ステータスは「オフ」のままである。
【００６２】
こうして、編集動線データベース４３の全ての編集動線データについて、動線追跡時間を調べ終えたならば、無効化処理が終了する。
【００６３】
動線の無効化処理が終了すると、制御部３７は、次に、ＳＴ５として動線の分割処理を実行する。この分割処理の処理手順は、図１２の流れ図によって示される。すなわち制御部３７は、編集動線データベース４３から無効化ステータスが「オン」でない編集動線データを１データずつ抽出する。そして、抽出した編集動線データに対して、制御部３７は、以下の処理ルーチンに従い分割処理を行う。
【００６４】
先ず、制御部３７は、ＳＴ６１として動線追跡処理を実行する。この処理は、先ず、編集動線データからインデックス情報を撮影日時の古い順に取得する。インデックス情報を取得する毎に、制御部３７は、そのインデックス情報の三次元座標（Ｘ．Ｙ，Ｈ）を、店内エリア定義データベース４６に定義されているエリア別の座標と照合する。そして、入口エリアまたは売場エリアの座標から無効エリアの座標に変化したインデックス情報、または無効エリアの座標から入口エリアまたは売場エリアの座標に変化したインデックス情報を検出する。該当するインデックス情報を検出したならば、制御部３７は、ＳＴ６２としてそのインデックス情報に変化点フラグＦをセットする。すなわち、編集動線データに変化点が記録される。
【００６５】
次に、制御部３７は、ＳＴ６３として編集動線データに変化点が記録されたか否かを判断する。変化点フラグがセットされたインデックス情報がある場合は、変化点が記録されている。変化点が記録されていた場合には、制御部３７は、ＳＴ６４としてその変化点での動線分割処理を実行する。この分割処理は、以下の手順で実行される。
【００６６】
先ず、制御部３７は、編集動線データのコピーを編集動線データベース４３に追加する。次に、制御部３７は、前記動線データ作成処理でデータ記憶部３５に記憶した最終動線ＩＤに“１”を加算する。そして、この最終動線ＩＤを、コピーされた編集動線データ（以下、コピー先動線データと称する）の動線ＩＤとする。
【００６７】
次に、制御部３７は、コピー先動線データのインデックス情報を先頭から順にチェックする。そして、変化点フラグがセットされているインデックス情報を検出したならば、先頭のインデックス情報から、変化点フラグがセットされているインデックス情報の直前のインデックス情報までを削除する。その結果、変化点フラグがセットされているインデックス情報がコピー先動線データの先頭のインデックス情報となる。制御部３７は、この先頭となったインデックス情報の変化点フラグをリセットする。また、この先頭となったインデックス情報の二次元座標（Ｘ，Ｙ）を、コピー先動線データの始点座標（Ｘ０，Ｙ０）とする。
【００６８】
次に、制御部３７は、コピー先動線データについて前記状態定義処理と同様の処理を実行して、コピー先動線データの状態ステータスを定義し直す。状態定義処理を終えたならば、制御部３７は、コピー先動線データの部分動線ステータスを「オン」する。すなわち、コピー先動線データを部分動線データと定義する。
【００６９】
また、制御部３７は、コピー元の編集動線データについても以下の処理を実行する。先ず、制御部３７は、コピー元動線データのインデックス情報を先頭から順にチェックする。そして、変化点フラグがセットされているインデックス情報を検出したならば、このインデックス情報以降のインデックス情報を全て削除する。次に、制御部３７は、削除して残ったインデックス情報のうち撮影日時が最も新しいインデックス情報の二次元座標を、コピー元編集動線データの終点座標（Ｘｎ，Ｙｎ）とする。
【００７０】
次に、制御部３７は、コピー元編集動線データについて前記状態定義処理と同様の処理を実行して、コピー元編集動線データの状態ステータスを定義し直す。状態定義処理を終えたならば、制御部３７は、コピー元動線データの部分動線ステータスを「オン」する。すなわち、コピー元動線データを部分動線データと定義する。
【００７１】
以上の処理により、変化点を有する編集動線データは、変化点より前の部分動線データ（コピー元動線データ）と変化点から後の部分動線データ（コピー先動線データ）とに分割される。
【００７２】
次に、制御部３７は、コピー先動線データにさらに変化点があるか否かを判断する。そして、変化点がある場合には、上述した変化点での動線分割処理を再度実行する。
【００７３】
以後、制御部３７は、コピー先動線データに変化点がなくなるまで、その変化点での動線分割処理を繰り返す。かくして、変化点を有する編集動線データは、変化点を有さない複数の部分動線データに分割される。
【００７４】
動線分割処理が終了すると、制御部３７は、ＳＴ６５として各部分動線データから無効エリア内の部分動線データを無効化する。すなわち、制御部３７は、部分動線データ毎に状態ステータスを調べる。そして、状態ステータスが「無効」の部分動線データを検出したならば、この部分動線データの無効化ステータスを「オン」とする。
【００７５】
編集動線データベース４３から抽出した全ての編集動線データに対して、上記ＳＴ６１〜ＳＴ６５の処理が実行されたならば、制御部３７は、ＳＴ６６として無効化条件として時間条件が有効か否かを判断する。時間条件が有効でない場合には、この分割処理が終了する。
【００７６】
時間条件が有効な場合には、制御部３７は、編集動線データベース４３から無効化ステータスが「オン」でない部分動線データを１データずつ抽出する。そして、抽出した部分動線データに対して、制御部３７は、時間条件の無効化処理を実行する。すなわち、制御部３７は、部分動線データの動線追跡時間を算出する。そして、動線追跡時間が閾値以下であるか否かを判断する。閾値以下の場合には、制御部３７は、その部分動線データの無効化ステータスを「オン」とする。
【００７７】
編集動線データベース４３から抽出した全ての部分動線データについて上記処理が実行されると、動線の分割処理が終了する。
【００７８】
上記分割処理が実行されることによって、編集動線データベース４３内に記憶されている無効化されていない編集動線データは、その定義情報が、「入口」，「入口→入口」，「入口→店内」，「店内→店内」または「店内→入口」のいずれかになる。
【００７９】
動線の分割処理が終了すると、制御部３７は、ＳＴ６として編集動線データベース４３から、無効化ステータスが「オン」されていない有効な編集動線データを全て抽出する。そして、抽出した編集動線データの動線ＩＤ、始点座標及び終点座標を一覧にした動線リストを作成する。動線リストは、動線リスト表示部５３に表示される。
【００８０】
次に、制御部３７は、ＳＴ７として連結元動線が選択されるのを待機する。
【００８１】
オペレータは、入力部３１を操作して動線リストの中から連結元動線とする動線のＩＤを選択する。動線ＩＤが選択されると、制御部３７は、ＳＴ８としてこの選択された動線ＩＤを連結元動線のＩＤとしてデータ記憶部３５に記憶する。
【００８２】
次に、制御部３７は、ＳＴ９として連結元動線再生処理を実行する。この再生処理の処理手順は、図１３の流れ図によって示される。すなわち制御部３７は、先ず、ＳＴ７１としてオリジナル動線データベース４１を先頭フレームのオリジナル動線データから順に検索する。そして、ターゲットＩＤが連結元動線ＩＤと一致するターゲット情報を有するオリジナル動線データを全て取得する。
【００８３】
次に、制御部３７は、ＳＴ７２として取得した各オリジナル動線データから、それぞれカメラ画像ファイル名を取得する。そして、カメラ画像データベース４２からこのファイル名が設定されたカメラ画像ファイルを全て取得する。
【００８４】
次に、制御部３７は、ＳＴ７３として取得した各オリジナル動線データの撮影日時情報を比較する。そして、撮影日時情報が古い順にオリジナル動線データを選択して、以下の処理を実行する。
【００８５】
すなわち制御部３７は、ＳＴ７４として選択したオリジナル動線データからターゲットＩＤが連結元動線ＩＤと一致するターゲット情報の三次元座標を取得する。また、ＳＴ７５として選択したオリジナル動線データのオフセット値で特定されるフレーム画像をカメラ画像ファイルから抽出する。さらに、ＳＴ７６として取得した三次元座標（世界座標系）をカメラ画像系の座標に変換する。この変換処理は、カメラＣＡ１〜ＣＡ６毎に、図１４の流れ図に示す手順で実行される。
【００８６】
なお、この変換処理では、カメラパラメータデータベース４５に予め設定されている以下のパラメータを使用する。
【００８７】
・世界座標系の動線座標：ｘ，ｙ，ｈ
・世界座標系のカメラの位置：Ｗｘ，Ｗｙ，Ｗｚ
・画像中心の座標：Ｃｘ，Ｃｙ
・世界座標系の座標軸周りのカメラ回転角：Ｒｘ，Ｒｙ，Ｒｚ
・全方位カメラのパラメータ：ｂ，ｃ，ｆ
・魚眼カメラのパラメータ：ｋ１，ｋ３，ｋ５，scale
先ず、制御部３７は、ＳＴ８１として変換対象の動線座標（ｘ，ｙ，ｈ）を、カメラ位置を原点とした座標系（Ｘ０，Ｙ０，Ｚ０）に平行移動する。この処理は、次の演算式により実行される。
【数１】
0004510112.tif 000002
【００８８】
次に、制御部３７は、ＳＴ８２として平行移動した動線座標（Ｘ０，Ｙ０，Ｚ０）について、世界座標系の座標軸周りのカメラ回転角を使って回転処理し、世界座標系とカメラ座標系の軸を合せる。この処理は、次の演算式により実行される。
【００８９】
［Ｘ軸周りの回転］
【数２】
0004510112.tif 000003
【００９０】
［Ｙ軸周りの回転］
【数３】
0004510112.tif 000004
【００９１】
［Ｚ軸周りの回転］
【数４】
0004510112.tif 000005
【００９２】
次に、制御部３７は、ＳＴ８３として処理対象のカメラの種類を判別する。魚眼カメラＣＡ１，ＣＡ２，ＣＡ３に対しては、ＳＴ８４として魚眼カメラのパラメータを使って、動線座標（Ｘｚ，Ｙｚ，Ｚｚ）を世界座標系からカメラ画像座標系に変換する。この処理は、次の演算により実行される。
【００９３】
先ず、Ｘｄ＝ｒcosｔ：Ｙｄ＝ｒsinｔとする。
【００９４】
ただし、Ｙｚ≧０のとき、
【数５】
0004510112.tif 000006
【００９５】
Ｙｚ＜０のとき、
【数６】
0004510112.tif 000007
【００９６】
である。ここで、上記ｒの値を、下記数式のニュートン法を用いて求める。
【数７】
0004510112.tif 000008
【００９７】
なお、この数式において、初期値ｒ0を0.0、目標値をθとする。また、｜ｒn+1−ｒｎ｜＜0.01で収束したとみなす。その時点でのｒの値を使用する。
【００９８】
一方、全方位カメラＣＡ４，ＣＡ５，ＣＡ６に対しては、ＳＴ８５として全方位カメラのパラメータを使って、動線座標（Ｘｚ，Ｙｚ，Ｚｚ）を世界座標系からカメラ画像座標系に変換する。この処理は、次の演算式により実行される。
【数８】
0004510112.tif 000009
【００９９】
こうして、動線座標を世界座標系からカメラ画像座標系に変換したならば、制御部３７は、ＳＴ８６として変換後の座標（Ｘｄ，Ｙｄ）をカメラ画像座標系の原点に平行移動する。この処理は、次の演算式により実行される。
【数９】
0004510112.tif 000010
【０１００】
以上、ＳＴ８１〜ＳＴ８６の処理を実行することにより、選択したオリジナル動線データから取得したターゲット情報の三次元座標が、各カメラＣＡ１〜ＣＡ６のカメラ画像系の座標に変換される。
【０１０１】
三次元座標、フレーム画像及びカメラ画像系座標を取得したならば、制御部３７は、ＳＴ７７としてその三次元座標に基づいて動線編集画面５０の動線表示部５１に動線を表示する。また同時に、カメラ画像表示部５２にフレーム画像を表示し、さらに、カメラ画像系座標に基づいてカメラ画像表示部５２に連結元動線ＩＤを表示する。
【０１０２】
しかる後、制御部３７は、ＳＴ７８として処理したオリジナル動線データの次に撮影日時が古いオリジナル動線データを取得しているか否かを判断する。オリジナル動線データを取得している場合には、そのオリジナル動線データに対して、前記ＳＴ７４〜ＳＴ７８の処理を繰り返す。オリジナル動線データを取得していない場合には、この再生処理を終了する。
【０１０３】
連結元動線再生処理が実行されることにより、動線編集画面５０の動線表示部５１には、動線リストの中からオペレータによって選択された動線が表示される。また、カメラ画像表示部５２には、動線に同期して同一時点のカメラ画像が表示される。そして、カメラ画像には、動線のターゲット位置に動線ＩＤが表示される。
【０１０４】
したがってオペレータは、動線の動きとカメラ画像とを見比べることによって、その動線が１人の客を追跡したものであるか否かを容易に確認することができる。また、動線が途中で途切れた場合には、その途切れた後の客の行動を追跡している動線があるか否かを容易に確認することできる。そして、途切れた後の客の行動を追跡している動線を確認できた場合には、その動線と途切れる前の動線とを１つの動線に連結することによって、一人の客の完全な動線を作成することができる。そこで次に、この連結作業について説明する。
【０１０５】
なお、前述したように、編集動線データベース４３に記憶されている有効な編集動線データは、その定義情報が、「入口」，「入口→入口」，「入口→店内」，「店内→店内」または「店内→入口」のいずれかである。このうち、定義情報が「入口→入口」及び「入口」の編集動線データは、入店から退店までを追跡した完全動線である。また、定義情報が「店内→入口」の編集動線データは、退店を示すので連結元動線にはなり得ない。
【０１０６】
連結元動線再生処理が終了すると、制御部３７は、ＳＴ１０としてこの再生した連結元動線が完全動線であるか否かを判断する。具体的には、編集動線データベース４３を検索して、連結元動線ＩＤを動線ＩＤとする編集動線データを取得する。そして、この編集動線データの状態ステータスを調べる。ここで、状態ステータスが「入口→入口」または「入口」の場合は完全動線とみなす。状態ステータスがそれ以外の場合は不完全動線とみなす。完全動線の場合には、制御部３７は、ＳＴ１５の連結定義処理に進む。
【０１０７】
不完全動線の場合には、制御部３７は、ＳＴ１１として連結先動線候補検索処理を実行する。この検索処理の処理手順は、図１５の流れ図によって示される。すなわち制御部３７は、ＳＴ９１として設定データベース４４から検索条件を取得する。検索条件には、「時間」と「距離」があり、どちらか一方が設定されている。
【０１０８】
検索条件として「時間」が設定されていた場合には、制御部３７は、ＳＴ９２として連結元動線の終了時刻を取得する。すなわち、連結元動線ＩＤを動線ＩＤとする編集動線データのなかから最終フレームに対応したインデックス情報の撮影日時を終了時刻として取得する。
【０１０９】
次に、制御部３７は、ＳＴ９３として編集動線データベース４３を検索して、連結先動線の候補となる編集動線データを抽出する。状態ステータスが「入口→店内」，「店内→店内」または「店内→入口」の編集動線データが、連結先動線の候補となる。連結先動線の候補となる編集動線データを抽出したならば、制御部３７は、その先頭フレームに対応したインデックス情報の撮影日時を連結先動線の開始日時として取得する。そして、この連結先動線の開始時刻と連結元動線の終了時刻との時間差を算出する。時間差を算出したならば、制御部３７は、その時間差が予め設定された閾値以内であるか否かを判断する。時間差が閾値以内である場合には、この編集動線データを連結先候補の動線として残す。時間差が閾値を超える場合には、この編集動線データを連結先候補から外す。
【０１１０】
編集動線データベース４３から抽出した全ての編集動線データについて、上記ＳＴ９３以降の処理を実行したならば、制御部３７は、ＳＴ９４として連結先候補として残った編集動線データの動線ＩＤ、始点座標及び終点座標を一覧にした連結先候補リストを作成する。リストの順番は、上記時間差が小さい順とする。連結先候補リストは、動線リスト表示部５３に表示される。
【０１１１】
検索条件として「距離」が設定されていた場合には、制御部３７は、ＳＴ９５として連結元動線の終了位置を取得する。すなわち、連結元動線ＩＤを動線ＩＤとする編集動線データから終点座標を取得する。
【０１１２】
次に、制御部３７は、ＳＴ９６として編集動線データベース４３を検索して、連結先動線の候補となる編集動線データを抽出する。連結先動線の候補となる編集動線データを抽出したならば、制御部３７は、その始点座標を連結先動線の始点として取得する。そして、この連結先動線の始点と連結元動線の動線終点座標との距離を算出する。距離を算出したならば、制御部３７は、その距離が予め設定された閾値以内である否かを判断する。距離が閾値以内である場合には、この編集動線データを連結先候補の動線として残す。距離が閾値を超える場合には、この編集動線データを連結先候補から外す。
【０１１３】
編集動線データベース４３から抽出した全ての編集動線データについて、上記ＳＴ９６以降の処理を実行したならば、制御部３７は、ＳＴ９７として連結先候補として残った編集動線データの動線ＩＤ、始点座標及び終点座標を一覧にした連結先候補リストを作成する。リストの順番は、上記距離が短い順とする。連結先候補リストは、表示部３２に表示される。
【０１１４】
連結先候補検索処理が終了すると、制御部３７は、ＳＴ１２として連結先候補リストの中から連結先動線が選択されるのを待機する。
【０１１５】
オペレータは、入力部３１を操作して連結先候補リストの中から連結先動線とする動線のＩＤを選択する。動線ＩＤが選択されると、制御部３７は、ＳＴ１３として連結先動線再生処理を実行する。この再生処理は、図１３に示した連結元動線再生処理と対象となる動線データが異なるだけで、その処理手順は同じである。よって、説明は省略する。
【０１１６】
連結先動線再生処理が実行されることにより、動線編集画面５０の動線表示部５１には、連結先候補リストの中からオペレータによって選択された動線が表示される。また、カメラ画像表示部５２には、動線に同期して同一時点のカメラ画像が表示される。そして、カメラ画像には、動線のターゲット位置に動線ＩＤが表示される。
【０１１７】
したがってオペレータは、動線の動きとカメラ画像とを見比べることによって、その動線が連結元動線に連結される連結先動線として正しいか否かを容易に判別することができる。オペレータは、入力部３１を操作して、連結先動線として正しいか否かを入力する。
【０１１８】
ＳＴ１４として連結先動線として正しくない旨の入力を受付けた場合には、制御部３７は、ＳＴ１２に戻り、次の連結先動線が選択されるのを待機する。連結先動線として正しい旨の入力を受付けた場合には、制御部３７は、ＳＴ１５の連結定義処理を実行する。この連結定義処理の処理手順は、図１６の流れ図によって示される。すなわち制御部３７は、ＳＴ１０１として連結元動線として選択された編集動線データの状態ステータスを判定する。
【０１１９】
連結元動線の状態ステータスが「入口→入口」または「入口」の場合には、連結元動線は完全動線である。この場合、制御部３７は、連結元動線として選択された編集動線データの起点情報を「連結元動線ＩＤ」とする。前連結ＩＤ及び後連結ＩＤは、いずれも「設定なし」とする。
【０１２０】
連結元動線の状態ステータスが「入口→店内」の場合には、連結元動線は追跡の開始時点を含む。この場合、制御部３７は、ＳＴ１０２として連結先動線として選択された編集動線データの状態ステータスを判定する。
【０１２１】
連結先動線の状態ステータスが「店内→店内」の場合には、連結先動線は追跡の途中である。この場合、制御部３７は、連結元動線及び連結先動線としてそれぞれ選択された２つの動線編集データの起点情報を「連結元動線ＩＤ」とする。また、連結元動線として選択された編集動線データの前連結ＩＤは「設定なし」とし、後連結ＩＤは「連結先動線ＩＤ」とする。一方、連結先動線として選択された編集動線データの前連結ＩＤは「連結元動線ＩＤ」とし、後連結ＩＤは未設定とする。
【０１２２】
連結先動線の状態ステータスが「店内→入口」または「入口」の場合には、連結先動線は追跡の終了時点を含む。この場合、制御部３７は、連結元動線及び連結先動線としてそれぞれ選択された２つの動線編集データの起点情報を「連結元動線ＩＤ」とする。また、連結元動線として選択された編集動線データの前連結ＩＤは「設定なし」とし、後連結ＩＤは「連結先動線ＩＤ」とする。一方、連結先動線として選択された編集動線データの前連結ＩＤは「連結元動線ＩＤ」とし、後連結ＩＤは「設定なし」とする。
【０１２３】
連結元動線の状態ステータスが「店内→店内」の場合には、連結元動線は追跡の途中である。この場合、制御部３７は、ＳＴ１０３として連結先動線として選択された編集動線データの状態ステータスを判定する。
【０１２４】
連結先動線の状態ステータスが「店内→店内」の場合には、連結先動線も追跡の途中である。この場合、制御部３７は、連結先動線として選択された動線編集データの起点情報を「連結元動線の起点」とする。また、連結先動線として選択された編集動線データの前連結ＩＤは「連結元動線ＩＤ」とし、後連結ＩＤは未設定とする。さらに、連結元動線として選択された編集動線データの後連結ＩＤは「連結先動線ＩＤ」とする。
【０１２５】
連結先動線の状態ステータスが「店内→入口」であった場合には、連結先動線は、追跡終了時点を含む。この場合、制御部３７は、連結先動線として選択された編集動線データの起点情報を「連結元動線の起点」とする。また、連結先動線として選択された編集動線データの前連結ＩＤは「連結元動線ＩＤ」とし、後連結ＩＤは「設定なし」とする。さらに、連結元動線として選択された編集動線データの後連結ＩＤは、「連結先動線ＩＤ」とする。
【０１２６】
連結定義処理が終了すると、制御部３７は、ＳＴ１６として連結元動線が退店まで定義されたか否かを判断する。連結元動線として選択された編集動線データが完全動線であった場合には、退店まで定義されたとみなす。また、連結先動線として選択された編集動線データの状態ステータスが「店内→入口」であった場合も、退店まで定義されたとみなす。それ以外の場合は、まだ退店まで定義されていないとみなす。退店まで定義されていない場合には、制御部３７は、ＳＴ１７として連結先動線として選択された編集動線データを連結元動線として置き換える。そして制御部３７は、ＳＴ９以降の処理を再度実行する。
【０１２７】
ＳＴ１６にて退店まで定義されたと判断された場合には、制御部３７は、ＳＴ１８として動線の選択完了が指示されたか否かを判断する。
【０１２８】
動線確認作業を継続する場合、オペレータは、入力部３１を操作して動線の選択継続を指示する。動線確認作業を終了する場合、オペレータは、入力部３１を操作して動線の選択完了を指示する。
【０１２９】
動線の選択継続が指示された場合には、制御部３７は、ＳＴ６の処理に戻る。すなわち制御部３７は、動線リストを動線リスト表示部５３に表示させて、次の連結元動線が選択されるのを待機する。
【０１３０】
動線の選択完了が指示された場合には、制御部３７は、ＳＴ１９として連結処理を実行する。この連結処理の処理手順は、図１７の流れ図によって示される。すなわち制御部３７は、先ず、ＳＴ１１１として編集動線データベース４３を検索して、前連結ＩＤが「設定なし」の編集動線データを１つ選択する。制御部３７は、選択した編集動線データを第１の動線データＡと認識する。
【０１３１】
次に、制御部３７は、ＳＴ１１２としてこの第１の動線データＡに対する編集動線データの後連結ＩＤを取得する。そして、この後連結ＩＤが動線ＩＤとして設定された編集動線データを、編集動線データベース４３から取得する。制御部３７は、取得した編集動線データを第２の動線データＢと認識する。
【０１３２】
次に、制御部３７は、ＳＴ１１３として第１の動線データＡの起点情報と、第２の動線データＢの起点情報とを比較する。起点情報が一致している場合には、制御部３７は、ＳＴ１１４として第１の動線データＡの動線ＩＤと、第２の動線データＢの前連結ＩＤとを比較する。ＩＤが一致している場合には、制御部３７は、ＳＴ１１５として第１の動線データＡの最終フレームに対応したインデックス情報の撮影日時と、第２の動線データＢの先頭フレームに対応したインデックス情報の撮影日時との時間差を算出する。そして、この時間差が、カメラ画像の１フレーム以内であるか否かを判断する。
【０１３３】
１フレーム以内であった場合には、制御部３７は、第１の動線データＡの終点と第２の動線データＢの始点とが一致しているとみなす。制御部３７は、ＳＴ１１６として第１の動線データＡと第２の動線データＢとを連結する。具体的には、制御部３７は、第２の動線データＢの先頭フレームから最終フレームまでのインデックス情報を全て読み込む。そして、この読み込んだインデックス情報を第１の動線データＡの最終フレームに対応したインデックス情報の後に追加する。また、制御部３７は、第１の動線データＡの終点座標を、第２の動線データＢから読み込んだ、最終フレームに対応したインデックス情報の二次元座標に置換する。さらに、制御部３７は、第１の動線データＡについて前記状態定義処理と同様の処理を実行して、状態ステータスを定義し直す。かくして、連結元動線の始点から連結先動線の終点までの軌跡を示す新たな編集動線データが生成される（完全動線編集手段）。
【０１３４】
撮影日時の時間差が１フレームより長かった場合には、第１の動線データＡの終点と第２の動線データＢの始点とは一致していない。この場合、制御部３７は、補間処理を実行する。補間処理としては、第１の動線データＡの終点と第２の動線データＢの始点との間を直線で結ぶ線形補間が挙げられる。店内での客の動きは、ゆったりとした歩行が主であるので、線形補間でも充分に補間処理が可能である。補間処理の後、制御部３７は、ＳＴ１１６の連結処理を行う。
【０１３５】
その後、制御部３７は、ＳＴ１１７として第２の動線データＢの後連結ＩＤを調べる。後連結ＩＤが「設定なし」以外の場合には、制御部３７は、第２の動線データＢを第１の動線データＡと置き換えて、ＳＴ１１２以降の処理を再度実行する。
【０１３６】
第２の動線データＢの後連結ＩＤが「設定なし」であった場合には、制御部３７は、ＳＴ１１８として前連結ＩＤが「設定なし」の編集動線データが他にあるか否かを判断する。他にある場合には、制御部３７は、ＳＴ１１１以降の処理を再度実行する。他にない場合には、連結処理が終了する。連結処理が終了すると、動線編集プログラムＰ１は終了する。
【０１３７】
このように、オペレータが動線解析装置３の入力部３１を操作して、編集動線データベース４３から連結元となる動線データと連結先となる動線データとを選択すると、連結元となる動線データの始点から連結先となる動線データの終点までの軌跡を示す完全動線データが自動的に生成される。したがって、入退場口ＩＮ／ＯＵＴから入店した客が店舗内を回り、会計カウンタＣＨで会計を済ませて出店するまでの経路を、１本の動線で結ぶことができる。
【０１３８】
オペレータが動線解析業務の開始を指令すると、動線解析プログラムＰ２が起動する。動線解析プログラムＰ２が起動すると、表示部３２に動線解析メニューが表示される。動線解析メニューには、会計入力業務、取引紐付け業務、行動分析業務及び条件検索業務がある。
【０１３９】
オペレータが会計入力業務を選択すると、制御部３７は、通信部３３を介して動線サーバ２０に接続して、各データベース４１〜４７をアクセス可能とする。そして、動線解析プログラムＰ２に従い、図２０の流れ図に示す手順の会計入力処理を実行する。
【０１４０】
制御部３７は、ＳＴ２０１として動線解析画面を表示部３２に表示させる。この動線解析画面は、前記動線編集画面５０と同じように、動線表示部、カメラ画像表示部、動線リスト表示部及び座標表示部に区分されている。
【０１４１】
制御部３７は、ＳＴ２０２として編集動線データベース４３に記憶された編集動線データの中から、完全動線データを検出する。すなわち、状態ステータスが「入口→入口」または「入口」の編集動線データを検出する。完全動線データを全て検出したならば、制御部３７は、ＳＴ２０３としてこの完全動線データを蓄積した完全動線データベース３８を出力ファイル３６に作成する。
【０１４２】
完全動線データのデータ構造を図１８に示す。図示するように、完全動線データは、管理番号と、固有の動線ＩＤと、始点座標と、終点座標と、始点から終点までの各フレーム画像に対応した複数のインデックス情報と、状態ステータスと、取引日時情報と、端末番号とから構成される。管理番号は、１からＭまでの連続する整数である。Ｍは、完全動線データベース３８に蓄積された完全動線データのデータ数に一致する。
【０１４３】
次に、制御部３７は、ＳＴ２０４として完全動線データの動線ＩＤ、開始時刻、終了時刻を一覧にした完全動線リストを作成する。開始時刻は、始点座標のフレーム画像に対応したインデックス情報の撮影日時である。終了時刻は、終点座標のフレーム画像に対応したインデックス情報の撮影日時である。リストの順番は、開始時刻の早い順とする。完全動線リストは、動線リスト表示部に表示される。
【０１４４】
オペレータは、入力部３１を操作して完全動線リストのなかから所望の完全動線のＩＤを選択する。例えば、リストの上から順番に動線ＩＤを選択する。動線ＩＤが選択されると（ＳＴ２０５のＹＥＳ）、制御部３７は、ＳＴ２０６として完全動線再生処理を実行する（動線再生手段）。この再生処理は、図１３に示した連結元動線再生処理と対象となる動線データが異なるだけで、その処理手順は同じである。よって、説明は省略する。
【０１４５】
完全動線再生処理が実行されることにより、動線解析画面の動線表示部には、完全動線リストの中からオペレータによって選択された動線が表示される。また、カメラ画像表示部には、動線に同期して同一時点のカメラ画像が表示される。そして、カメラ画像には、動線のターゲット位置に動線ＩＤが表示される。
【０１４６】
そこでオペレータは、カメラ画像と動線画像から顧客の移動経路を確認する。そして、顧客が会計カウンタＣＨに到達し、商取引の決済を開始したと思われる時点で、その会計カウンタＣＨに設置されているＰＯＳ端末１１ａまたは１１ｂの端末番号を入力する（決済情報受付手段）。端末番号の入力は、商取引の決済開始時点であると確信が持てるまで何度でもやり直すことができる。確信を持てたならば、オペレータは、再生終了を指示する。なお、顧客が商取引の決済を行うことなく店を出た場合は、再生終了の指示のみ行う。
【０１４７】
制御部３７は、入力部３１を介して端末番号が入力されたならば（ＳＴ２０８のＹＥＳ）、ステップＳＴ２０９としてその入力時点に再生しているフレーム画像の撮影日時情報を取得する。そして、この日時情報と端末番号とを、再生中の完全動線データに上書きする。
【０１４８】
なお、端末番号を入力するタイミングは、商取引の決済を開始した時点でなく決済を終えた時点、すなわちＰＯＳ端末のチェックアウトキーが操作されたと思われる時点であってもよい。
【０１４９】
制御部３７は、入力部３１を介して再生終了が指示された場合には（ＳＴ２０７のＹＥＳ）、ＳＴ２１０として完全動線再生処理を終了する。そして、制御部３７は、次の動線ＩＤが選択されるのを待機する。次の動線ＩＤが選択されたならば（ＳＴ２０５のＹＥＳ）、制御部３７は、上記ＳＴ２０６〜ＳＴ２１０の処理を繰り返す。次の動線ＩＤが選択されることなく、処理終了が宣言された場合には（ＳＴ２１１のＹＥＳ）、制御部３７は、この会計入力処理を終了する。
【０１５０】
このように、オペレータは、動線の動きとそれに連動したカメラ画像とから、顧客が会計カウンタで商取引の決済を開始又は終了した時点の時刻とＰＯＳ端末１１の番号とを、その顧客の完全動線データに付加することができる。
【０１５１】
オペレータが取引紐付け業務を選択すると、制御部３７は、出力ファイル３６に完全動線データベース３８が作成されているか否かを判断する。完全動線データベース３８が作成されていない場合には、取引紐付け業務を中止する。
【０１５２】
完全動線データベース３８が作成されている場合には、制御部３７は、通信部３３を介してＰＯＳサーバ１２に接続して、トランザクションデータベース１４をアクセス可能とする。そして、動線解析プログラムＰ２に従い、図２１の流れ図に示す手順の取引紐付け処理を実行する。
【０１５３】
制御部３７は、ＳＴ２２１として取引紐付け処理に使用されるワークテーブルをクリアする。ワークテーブルには、図１９に示すように、トランザクションＩＤリストテーブル６１と、動線ＩＤリストテーブル６２と、紐付けテーブル６３とがある。
【０１５４】
制御部３７は、ＳＴ２２２として紐付け期間が入力されるのを待機する。オペレータは、入力部３１を操作して、紐付け期間として適当な開始日時と終了日時を入力する。終了日時は、開始日時よりも後の日時である。開始日時のみを入力し、終了日時は現在の日時としてもよい。
【０１５５】
紐付け期間が入力されると、制御部３７は、以下の手順により、この期間内に発生したトランザクションデータと完全動線データとの紐付けを行う。すなわち、制御部３７は、ＳＴ２２３として紐付け期間内のトランザクションＩＤリスト取得処理を実行する。この処理の手順は、図２２の流れ図によって具体的に示される。
【０１５６】
すなわち制御部３７は、ＳＴ２３１として指定された紐付け期間内のトランザクションＩＤを抽出するためのＳＱＬ（Structured Query Language）を作成する。そして、ＳＴ２３２としてこのＳＱＬを、通信部３３を介してＰＯＳサーバ１２に送信する。
【０１５７】
上記ＳＱＬの一例を図２３に示す。このＳＱＬは、トランザクションデータベース１４から端末番号，取引日時及び取引一連番号からなるトランザクションＩＤを取得し、取引日時の順に昇順に整列してトランザクションＩＤリストを作成するためのものである。
【０１５８】
上記ＳＱＬを受信したＰＯＳサーバ１２では、トランザクションデータベース１４が検索されて、指定期間内を取引日時とするトランザクションデータが全て抽出される。そして、これらのトランザクションデータの端末番号，取引日時及び取引一連番号からなるトランザクションＩＤリストが作成される。トランザクションＩＤリストは、動線解析装置３に送信される。
【０１５９】
制御部３７は、ＰＯＳサーバ１２からトランザクションＩＤリストを受信したならば、ＳＴ２３３としてこのトランザクションＩＤリストをトランザクションＩＤリストテーブル６１に格納する。トランザクションＩＤリストテーブル６１の一例を図２６に示す。
【０１６０】
トランザクションＩＤリスト取得処理が終了すると、制御部３７は、ＳＴ２２４として紐付け期間内の動線ＩＤリスト取得処理を実行する。この処理の手順は、図２４の流れ図によって具体的に示される。
【０１６１】
すなわち制御部３７は、ＳＴ２４１としてカウンタＮを一旦“０”にリセットする。次に、ＳＴ２４２として上記カウンタＮを“１”だけカウントアップする。そして、ＳＴ２４３として、完全動線データベース３８から管理番号がＮの完全動線データを取得する。
【０１６２】
管理番号Ｎの完全動線データを取得できた場合（ＳＴ２４４のＮＯ）、制御部３７は、ＳＴ２４５としてその完全動線データが取引客のデータか否かを判断する。完全動線データに端末番号と取引日時のデータが付加されていた場合には、そのデータは商取引を行った顧客の完全動線データである。この場合、制御部３７は、ＳＴ２４６として完全動線データから動線ＩＤ、端末番号，取引日時の各データを取得し、動線ＩＤリストテーブル６２に格納する。しかる後、ＳＴ２４２に戻る。
【０１６３】
完全動線データに端末番号と取引日時のデータが付加されていなかった場合には、商取引を行わずに店から出て行った顧客の完全動線データである。この場合、制御部３７は、ＳＴ２４６の処理を行わずにＳＴ２４２に戻る。
【０１６４】
制御部３７は、完全動線データベース３８に記憶されている完全動線データの数ＭだけＳＴ２４２〜ＳＴ２４６の処理を繰り返す。その結果、動線ＩＤリストテーブル６２には、商取引を行った顧客に関する完全動線データの動線ＩＤと、その顧客が決済に立ち寄った会計カウンタに設置されているＰＯＳ端末の端末番号及び決済を行った時点の取引日時とからなる動線ＩＤリストが格納される。
【０１６５】
管理番号Ｎの完全動線データを取得できなかった場合（ＳＴ２４４のＹＥＳ）、制御部３７は、ＳＴ２４７として動線ＩＤリストテーブル６２のデータを取引日時の昇順にソートする。以上で、この動線ＩＤリスト取得処理は終了する。動線ＩＤリストテーブル６２の一例を図２７に示す。
【０１６６】
動線ＩＤリスト取得処理を終了すると、制御部３７は、ＳＴ２２５として動線自動紐付け処理を実行する（動線紐付け手段）。この処理の手順は、図２５の流れ図によって具体的に示される。なお、図２５において、Ｔｒａｃｋ（ｉ）は、動線ＩＤデータ（動線ＩＤ、端末番号、取引日時）を示し、その添え字ｉは１からｎ（ｎは動線ＩＤリストテーブル６２に格納された動線ＩＤデータの数）までの整数である。Ｔｒａｎ（ｊ）は、トランザクションＩＤ（端末番号、取引日時、取引一連番号）を示し、その添え字ｊは１からｍ（ｍはトランザクションＩＤリストテーブル６１に格納されたトランザクションＩＤの数）までの整数である。θは、紐付けを行う取引日時の許容幅（−θ〜＋θ）であり、θは業務開始前にユーザによって任意に設定される。δは、紐付けを行う取引日時の差の絶対値である。Δは、δの最小値である。j_minは、Δが最小のときのｊである。j_startは、取引日時の比較開始位置におけるｊである。
【０１６７】
制御部３７は、先ず、ＳＴ２５１として整数ｉと比較開始位置における整数j_startをそれぞれ“１”に初期設定する。続いて、ＳＴ２５２として最小値Δを無限大に、整数ｊを比較開始位置における整数j_startに、Δが最小のときの整数j_minを“０”に設定する。
【０１６８】
次に、制御部３７は、ＳＴ２５３として動線ＩＤリストテーブル６２を検索して動線ＩＤデータＴｒａｃｋ（ｉ）から取引日時Ｔｉを取得する。また、ＳＴ２５４としてトランザクションＩＤリストテーブル６１を検索してトランザクションＩＤデータＴｒｎ（ｊ）から取引日時Ｔｊを取得する。そして、ＳＴ２５５としてトランザクションＩＤデータＴｒｎ（ｊ）の取引日時Ｔｊが、動線ＩＤデータＴｒａｃｋ（ｉ）の取引日時Ｔｉから許容幅θを減じた日時に達したか否かを判断する。
【０１６９】
達していない場合には、制御部３７は、ＳＴ２５６として整数ｊを“１”だけカウントアップする。そして、ＳＴ２５７としてカウントアップ後の整数ｊがトランザクションＩＤリストテーブル６１に格納されたトランザクションＩＤの数ｍを超えたか否かを判断する。越えていない場合には、ＳＴ２５４の処理に戻る。すなわち、制御部３７は、トランザクションＩＤリストテーブル６１から次のトランザクションＩＤデータＴｒｎ（ｊ）の取引日時Ｔｊを取得し、Ｔｉ−θの日時と比較する。
【０１７０】
以上の処理により、整数ｊがデータ数ｍを超える前に、トランザクションＩＤデータＴｒｎ（ｊ）の取引日時Ｔｊが、動線リストデータＴｒａｃｋ（ｉ）の取引日時Ｔｉから許容幅θを減じた日時に達するか否かが判断される。達した場合には、制御部３７は、ＳＴ２５８として比較開始位置における整数j_startに、現時点の整数ｊをセットする。
【０１７１】
次に、制御部３７は、ＳＴ２５９として動線ＩＤリストテーブル６２を検索して動線ＩＤデータＴｒａｃｋ（ｉ）から端末番号Ｒｉを取得する。また、ＳＴ２６０としてトランザクションＩＤリストテーブル６１を検索してトランザクションＩＤデータＴｒｎ（ｊ）から端末番号Ｒｊを取得する。そして、ＳＴ２６１として動線ＩＤデータＴｒａｃｋ（ｉ）の端末番号ＲｉとトランザクションＩＤデータＴｒｎ（ｊ）の端末番号Ｒｊとが一致するか否かを判断する。一致しない場合、制御部３７は、ＳＴ２６２として整数ｊを“１”だけカウントアップする。そして、ＳＴ２６３としてカウントアップ後の整数ｊがデータ数ｍを超えたか否かを判断する。
【０１７２】
越えていない場合には、ＳＴ２６０の処理に戻る。すなわち制御部３７は、トランザクションＩＤリストテーブル６１から次のトランザクションＩＤデータＴｒｎ（ｊ）の端末番号Ｒｊを取得し、動線ＩＤデータＴｒａｃｋ（ｉ）の端末番号Ｒｉと比較する。
【０１７３】
以上の処理により、整数ｊがデータ数ｍを超える前に、トランザクションＩＤデータＴｒｎ（ｊ）の端末番号Ｒｊが、動線リストデータＴｒａｃｋ（ｉ）の端末番号Ｒｉと一致するか否かチェックされる。一致した場合には、制御部３７は、ＳＴ２６４としてトランザクションＩＤデータＴｒｎ（ｊ）の取引日時Ｔｊと動線リストデータＴｒａｃｋ（ｉ）の取引日時Ｔｉとを取得し、これら取引日時Ｔｊ，Ｔｉの差の絶対値δを算出する。
【０１７４】
次に、制御部３７は、ＳＴ２６５として絶対値δと最小値Δとを比較する。その結果、絶対値δが最小値Δより小さいときには、ＳＴ２６６として最小値Δを絶対値δに置き換える。また、最小値Δの整数j_minを現時点の整数ｊとする。絶対値δが最小値Δ以上のときには、ＳＴ２６６の処理は行わない。
【０１７５】
その後、制御部３７は、ＳＴ２６７として整数ｊをさらに“１”だけカウントアップする。そして、ＳＴ２６８としてトランザクションＩＤリストテーブル６１を検索してトランザクションＩＤデータＴｒｎ（ｊ）から取引日時Ｔｊを取得し、この取引日時Ｔｊが、動線ＩＤデータＴｒａｃｋ（ｉ）の取引日時Ｔｉに許容幅θを加算した日時に達したか否かを判断する。達していない場合、制御部３７は、ＳＴ２６９として現時点の整数ｊがデータ数ｍを超えたか否かを判断する。越えていない場合には、ＳＴ２６０の処理に戻る。
【０１７６】
以上の処理により、動線リストデータＴｒａｃｋ（ｉ）の取引日時Ｔｉに対し、Ｔｉ−θ〜Ｔｉ＋θの期間内の日時を取引日時ＴｊとするトランザクションＩＤリストデータＴｒａｎ（ｊ）が選択される。さらに、その中から、端末番号Ｒｊが動線リストデータＴｒａｃｋ（ｉ）の端末番号Ｒｉと一致するトランザクションＩＤリストデータＴｒａｎ（ｊ）が選択される。次いで、各々の取引日時Ｔｉ，Ｔｊの時間差（絶対値）δが算出される。そして、この時間差（絶対値）δが最小となるトランザクションＩＤリストデータＴｒａｎ（ｊ）の整数ｊが、最小値Δの整数j_minとして記憶される。
【０１７７】
ＳＴ２６８にて取引日時Ｔｊが取引日時Ｔｉに許容幅θを加算した日時に達した場合、ＳＴ２７０の処理に進む。ＳＴ２５７，ＳＴ２６３またはＳＴ２６９にて現時点の整数ｊがデータ数ｍを超えた場合も、ＳＴ２７０の処理に進む。すなわち制御部３７は、最小値Δの整数j_minが、初期値“０”のままか否かを判断する。
【０１７８】
整数j_minが“０”でない場合には、ＳＴ２７１の処理が実行される。すなわち、制御部３７は、動線ＩＤリストテーブル６２を検索して動線ＩＤデータＴｒａｃｋ（ｉ）から動線ＩＤを取得する。また、トランザクションＩＤリストテーブル６１を検索して、トランザクションＩＤデータＴｒｎ（j_min）から端末番号、取引日時及び取引一連番号を取得する。そして、紐付けテーブル６３に、動線ＩＤとトランザクションＩＤの端末番号、取引日時、取引一連番号とを関連付けて格納する。整数j_ｍｉｎが “０”のままであった場合には、ＳＴ２７１の処理は実行しない。
【０１７９】
しかる後、制御部３７は、ＳＴ２７２として整数ｉを“１”だけカウントアップする。そして、ＳＴ２７３としてカウントアップ後の整数ｉが動線ＩＤリストテーブル６２に格納された動線ＩＤデータの数ｎを超えたか否かを判断する。越えていない場合には、ＳＴ２５２の処理に戻る。すなわち制御部３７は、最小値Δを無限大に、整数ｊを前回のＳＴ２５８の処理にて設定された整数j_startに、整数j_minを“０”に再設定した後、次の動線ＩＤデータＴｒａｃｋ（ｉ）についてＳＴ２５３〜ＳＴ２７３の各処理を実行する。
【０１８０】
かくして、紐付けテーブル６３には、各動線ＩＤに対してトランザクションＩＤが紐付けられる。そのトランザクションＩＤは、動線ＩＤで識別される動線データに付加された端末番号と一致し、かつその動線データに付加された取引日時に最も近い日時を取引日時とするトランザクションデータのＩＤである。紐付けテーブル６３の一例を図２８に示す。この例は、図２６に示したトランザクションＩＤリストテーブル６１と、図２７に示した動線ＩＤリストテーブル６２のデータとに対応している。
【０１８１】
ＳＴ２７３にて整数ｉがデータ数ｎを超えると、制御部３７は、この紐付け処理を終了する。
【０１８２】
上記紐付け処理を終了すると、制御部３７は、ＳＴ２２６としてトランザクションＩＤが紐付けされていない動線ＩＤが存在するか否かを判断する。存在する場合には、制御部３７は、ＳＴ２２７として動線手動紐付け処理を実行する。この処理の手順は、図２９の流れ図によって具体的に示される。なお、図２９において、ｋは繰返し回数であり、ｋＭＡＸは繰返し回数ｋの最大値である。これらｋ及びｋＭＡＸも、θと同様に業務開始前にユーザによって任意に設定される。
【０１８３】
制御部３７は、先ず、ＳＴ２８１としてトランザクションＩＤが紐付けされていない動線ＩＤのデータから取引日時Ｔｉと端末番号Ｒｉとを取得する。また、ＳＴ２８２として繰返し回数ｋを“１”に初期設定する。
【０１８４】
次に、制御部３７は、ＳＴ２８３として現時点の許容幅θに、該許容幅θに繰返し回数ｋを乗算した値を加算する。すなわち、繰返し回数ｋが“１”であれば許容幅θを２倍し、繰返し回数ｋが“２”であれば許容幅θを３倍する。
【０１８５】
次に、制御部３７は、ＳＴ２８４としてトランザクションＩＤリストテーブル６１を検索する。そして、取引日時Ｔｊが、上記動線ＩＤの取引日時Ｔｉより許容幅θを減じた日時から該取引日時Ｔｉに許容幅θを加算した日時の期間内のトランザクションＩＤを取得する。
【０１８６】
次に、制御部３７は、ＳＴ２８５としてトランザクションＩＤリストテーブル６１から取得した該当期間内のトランザクションＩＤのうち、既に動線ＩＤと紐付けされているトランザクションＩＤを取り除く。すなわち、紐付けテーブル６３に既にセットされているトランザクションＩＤを取り除く。また、ＳＴ２８６として動線ＩＤの端末番号Ｒｉと異なる端末番号Ｒｊを有するトランザクションＩＤを取り除く。その後、制御部３７は、ＳＴ２８７として紐付け候補として残ったトランザクションＩＤが有るか否かを判断する。
【０１８７】
ここで、少なくとも１つのトランザクションＩＤが残った場合には、制御部３７は、ＳＴ２８８として上記動線ＩＤで識別される動線データを、データ記憶部３５にダウンロードされている動線データベースから取得する。そして、この動線データに基づく動線を表示部３２に表示させる。また、制御部３７は、ＳＴ２８９として紐付け候補として残ったトランザクションＩＤの一覧、すなわち候補トランザクションリストを表示部３２に表示させる。このとき、表示部３２の画面を２つに分割し、一方の領域に動線を表示し、他方の領域に候補トランザクションリストを表示させる。
【０１８８】
制御部３７は、ＳＴ２９０として候補トランザクションリストのなかからいずれか１つのトランザクションＩＤが選択されるのを待機する。オペレータは、入力部３１を操作して、いずれか１つのトランザクションＩＤを選択する。トランザクションＩＤが選択されたならば、制御部３７は、ＰＯＳサーバ１２にそのトランザクションＩＤを問合せる。
【０１８９】
ＰＯＳサーバ１２では、問合せのあったトランザクションＩＤに対応するトランザクションデータをトランザクションデータベース１４から読み出す。そして、このトランザクションデータを動線解析装置３に送信する。制御部３７は、ＳＴ２９１としてＰＯＳサーバ１２から受信したトランザクションデータの内容を表示部３２に表示する。すなわち、商取引で販売された商品の名称等が表示部３２に表示される。
【０１９０】
オペレータは、動線によって示される顧客の店内の移動状況から当該顧客が購入した商品を推測する。そして、その推測とトランザクションデータの内容とが一致しているか否かを判断して、当該動線ＩＤにトランザクションＩＤを紐付けるか否かを決定する。紐付ける場合には実行キーを、紐付けない場合には取消キーを操作する。
【０１９１】
制御部３７は、ＳＴ２９２として実行キーが操作されるか取消キーが操作されるのを待機する。取消キーが操作された場合には（ＳＴ２９２のＮＯ）、制御部３７は、ＳＴ２９３として他に紐付け候補のトランザクションＩＤが有るか否かを判断する。紐付け候補のトランザクションＩＤが有る場合には、ＳＴ２８９に戻る。
【０１９２】
実行キー操作された場合には（ＳＴ２９２のＹＥＳ）、制御部３７は、ＳＴ２９４として当該動線ＩＤにトランザクションＩＤを紐付ける。すなわち制御部３７は、紐付けテーブル６３に、紐付け無し動線として検出された動線ＩＤと、紐付け候補として決定されたトランザクションＩＤの端末番号，取引日時及び取引一連番号とを関連付けて格納する。以上で、トランザクションＩＤが紐付けされていない動線ＩＤに対する紐付け処理が終了する。
【０１９３】
ＳＴ２８７にて紐付け候補としてのトランザクションＩＤがなかった場合、またはＳＴ２９３にて紐付け候補としてのトランザクションＩＤがなくなった場合には、ＳＴ２９５の処理に進む。すなわち制御部３７は、繰返し回数ｋを“１”だけカウントアップする。そして、ＳＴ２９６としてカウントアップ後の繰返し回数ｋがその最大値ｋＭＡＸを超えたか否かを判断する。繰返し回数ｋがその最大値ｋＭＡＸを超えていない場合には、ＳＴ２８３の処理に戻る。すなわち、許容幅θの範囲を広げてＳＴ２８４以降の処理を繰り返す。繰返し回数ｋがその最大値ｋＭＡＸを超えたならば、今回の紐付け処理を終了する。この場合は、当該動線ＩＤにはトランザクションＩＤが紐付けされない。
【０１９４】
ＳＴ２２６にて紐付け無し動線が無いと判断すると、制御部３７は、ＳＴ２２８として紐付けテーブル６３に格納された動線ＩＤとトランザクションＩＤとの紐付けリストを出力ファイル３６に出力する。以上で、動線解析プログラムが終了する。
【０１９５】
このように、動線解析装置３は、トランザクションＩＤリストを作成する処理と、動線ＩＤリストを作成する処理と、動線ＩＤリストの各動線ＩＤとトランザクションＩＤリストの各トランザクションＩＤとについて、各々の取引日時データの差が最小となる組合せを形成する処理と、前記動線ＩＤとトランザクションＩＤとの組合せリストを出力する処理とを実行することができる。
【０１９６】
したがって、顧客の動線データに、その顧客の商取引内容を示すトランザクションデータを精度よく紐付けることができる。したがって、紐付け作業に要する手間と時間が大幅に短縮される。
【０１９７】
動線解析装置３は、動線ＩＤリストの各動線ＩＤとトランザクションＩＤリストの各トランザクションＩＤとについて、ＰＯＳ端末１１の端末番号が一致しかつ各々の取引日時データの差が最小となる組合せを形成するようにしている。したがって、複数台のＰＯＳ端末１１ａ．１１ｂを使用している店舗でも、動線データにトランザクションデータを精度よく紐付けることができる。
【０１９８】
動線解析装置３は、動線ＩＤリストから動線ＩＤを選択する毎に、その動線ＩＤに対応した取引日時データの時刻に対して、一定の許容幅θの時間内の取引日時データを有するトランザクションＩＤを、トランザクションＩＤリストから検索している。そして、時間差δを算出し、この時間差δが最小となるトランザクションＩＤを、選択した動線ＩＤと組み合わせるようにしている。このように、動線データの取引日時を中心にその前後の許容幅の範囲内を取引時刻とするトランザクションデータについてのみ紐付け可否をチェックしている。したがって、チェックに要する処理時間が短く、効率的である。
【０１９９】
動線解析装置３は、動線ＩＤリストから組合せが形成されていない動線ＩＤを抽出する。そして、動線ＩＤに対応した取引日時データを含みかつ一定の許容幅θより広い幅ｋθの時間内の取引日時データを有するトランザクションＩＤをトランザクションＩＤリストから検索する。そのうち、組合せが形成されていないトランザクションＩＤを、表示部３２に表示するようにしている。したがって、組合せが形成されていない動線ＩＤについては、候補として残ったトランザクションＩＤの中から適当なものを手動で紐付けることができ、その紐付け作業も簡便なものである。
【０２００】
オペレータが行動分析業務を選択すると、制御部３７は、出力ファイル３６に完全動線データベース３８が作成されているか否かを判断する。完全動線データベース３８が作成されていない場合には、行動分析業務を中止する。
【０２０１】
完全動線データベース３８が作成されている場合には、制御部３７は、出力ファイル３６にサブエリア設定テーブル３９が作成されているか否かを判断する。サブエリア設定テーブル３９が作成されていない場合には、行動分析業務を中止する。
【０２０２】
サブエリア設定テーブル３９は、図３０に示すように、一意のサブエリアＩＤに対応して、サブエリア名、エリアコーナ座標及び滞在判定条件を記憶する領域である。動線データの追跡範囲である店舗エリア内を細分化したときの１つの領域をサブエリアと称する。
【０２０３】
店舗エリア内の細分化の一例について、図３１及び図３２を用いて説明する。図３１には、店舗エリア７０のレイアウトが示されている。店舗エリア７０は、客が出入する入口部７１と、ＰＯＳ端末１１がそれぞれ設置される２つのカウンタ７２，７３と、各商品が陳列される商品陳列部７４とに区分されている。商品陳列部７４は、飲料，弁当，菓子，雑誌，デザート，文具等の商品分類（商品群）毎に区分されている。図では、同一分類に属する商品群を同一のアルファベット符号で示している。
【０２０４】
このような店舗エリア７０に対しては、図３２の破線で示すように細分化する。すなわち入口部５１とカウンタ７２，７３とは、それぞれ区分して、サブエリアＳ１，Ｓ２，Ｓ３とする。商品陳列部７４は、商品分類（商品群Ａ〜Ｐ）別に区分して、それぞれサブエリアＳ４〜Ｓ１９とする。各サブエリアＳ１〜Ｓ１９の形状は矩形とする。そして、それぞれその左上角の二次元座標（ｘｉ，ｙｉ）と右下角の二次元座標（ｘｊ，ｙｊ）とを、そのサブエリアのエリアコーナ座標とする。
【０２０５】
サブエリア設定テーブル３９において、滞在判定条件は、対応するサブエリアＩＤで特定されるサブエリア内に人物が滞在したのか通過しただけなのか判定するための閾値である。本実施の形態では、時間データを閾値と設定している。すなわち制御部３７は、滞在判定条件として設定された時間以上、動線データが対応するサブエリア内に留まっていた場合には、この動線データに該当する人物が当該サブエリア内に滞在していたと判定する。設定時間未満の時間で動線データが対応するサブエリア内から離脱した場合には、この動線データに該当する人物が当該サブエリア内を通過したと判定する。この滞在判定手段については後述する。
【０２０６】
制御部３７は、プログラム記憶部３４に記憶されたサブエリア設定プログラムが起動すると、データ記憶部３５にサブエリア設定テーブル３９のワークテーブルが形成される。また、表示部３２に図３１に示すような店舗エリア７０のレイアウト画面を表示させる。オペレータは、入力部３１を操作して、画面上の店舗エリア７０内に矩形状のサブエリアを描画する。また、このサブエリアを特定する名称と，そのサブエリアでの滞在判定条件を入力する。オペレータは、店舗エリア７０の全域を複数のサブエリアで区分し終わるまで、上記の作業を繰り返す。
【０２０７】
サブエリアが描画されると、制御部３７は、描画された領域の左上角と右下角のエリアコーナ座標を算出する。そして、このエリアコーナ座標と、入力されたサブエリア名及び滞在判定条件と、一意のサブエリアＩＤとをワークテーブルに書き込む。
【０２０８】
店舗エリア７０の全域が複数のサブエリアで区分されると、制御部３７は、ワークテーブルをサブエリア設定テーブル３９として出力ファイルに保存する。ここに、サブエリア設定テーブル３９は、店舗エリア内を細分化して形成される複数のサブエリアをそれぞれ特定する情報、すなわちエリアコーナ座標を記憶するサブエリア情報記憶部として機能する。なお、サブエリアを特定する情報はエリアコーナ座標に限定されるものではなく、店舗エリアに対して各サブエリアの位置を特定できる情報であればよい。
【０２０９】
サブエリア設定テーブル３９が作成されると、行動分析業務が実行可能となる。制御部３７は、出力ファイル３６に完全動線データベース３８とサブエリア設定テーブル３９とが作成されていることを確認すると、動線解析プログラムＰ２に従い、図３３，図３４の流れ図に示す手順の行動分析処理を実行する。
【０２１０】
制御部３７は、ＳＴ３０１として表示部３２に分析条件の入力画面を表示させる。分析条件には、サブエリアを指定するサブエリアＩＤ、特定の商品または商品群を指定するアイテムＩＤまたは分類ＩＤ、取引期間，取引時間帯，客層等の項目がある。これらの項目のうち、サブエリアＩＤは必須である。他の項目は任意である。
【０２１１】
例えば、２００７年７月１日から同年７月３１日の期間内において、午前１１時から午後１時の間に弁当エリアに滞在し、から揚げ弁当を購入した男性客の行動の特徴を分析する場合には、サブエリア名「弁当」のサブエリアＩＤ、商品名「から揚げ弁当」のアイテムＩＤ、期間「２００７０７０１〜２００７０７３１」、時間帯「１１：００〜１３：００」、客層「男性」を入力する。また、期間や時間帯に関わらず弁当エリアに滞在し、また飲料エリアにていずれかの飲料を購入した客の行動の特徴を分析する場合には、サブエリア名「弁当」のサブエリアＩＤと商品分類名「飲料」の分類ＩＤとを入力する。期間，時間帯及び客層は「−（未入力）」とする。なお、サブエリア，商品及び商品分類に関しては、それぞれＩＤを入力するのでなく名称を入力してもよい。
【０２１２】
制御部３７は、ＳＴ３０２として分析条件入力画面から分析条件項目が入力されるのを待機する（フィルタ条件受付手段）。そして、入力部３１を介して分析条件項目が入力されたならば、制御部３７は、ＳＴ３０３として分析条件として必須の入力項目であるサブエリアＩＤを取得する。そして、このサブエリアＩＤでサブエリア設定テーブル３９を検索して、対応するサブエリア名、エリアコーナ座標及び滞在判定条件データを読み出す。
【０２１３】
次に、制御部３７は、ＳＴ３０４としてカウンタｎを“０”に初期化する。続いて、ＳＴ３０５としてこのカウンタｎを“１”だけカウントアップする。しかる後、制御部３７は、ＳＴ３０６として動線ＩＤリストテーブル６２からテーブル番号ｎ（ｎはカウンタｎの値）に記憶されている動線ＩＤを取り込む。
【０２１４】
ここで、ＳＴ３０７として動線ＩＤリストテーブル６２からテーブル番号ｎの動線ＩＤを取り込めた場合には、制御部３７は、ＳＴ３０８としてデータ記憶部３５上に出力リストテーブル８０を作成する。
【０２１５】
出力リストテーブル８０は、図３５に示すように、分析条件項目エリア８１、動線ＩＤエリア８２、トランザクションＩＤエリア８３、サブエリア別行動データエリア８４、進入元サブエリアＩＤエリア８５及び離脱先サブエリアＩＤエリア８５によって構成されている。分析条件項目エリア８１は、サブエリアＩＤ、取引期間，取引時間帯，客層及びアイテムＩＤまたは商品分類ＩＤの各エリアに区分されている。サブエリア別行動データエリア８４は、各サブエリアＳ１〜Ｓ１９のサブエリアＩＤ毎に、滞在時間、動線長、平均移動速度及び滞在判定フラグの各エリアに区分されている。
【０２１６】
出力リストテーブル８０を作成した後、制御部３７は、ＳＴ３０９としてこの出力リストテーブル８０の分析条件項目エリア８１に、分析条件入力画面を介して入力された分析条件項目のデータをセットする。
【０２１７】
また、制御部３７は、ＳＴ３１０として完全動線データベース３８を検索して、ＳＴ３０６の処理で動線ＩＤリストテーブル６２から取り込んだ動線ＩＤで特定される動線データを読み込む。
【０２１８】
次に、制御部３７は、ＳＴ３１１として完全動線データベース３８から読み込んだ動線データから、この動線に対応した人物が、分析条件として指定されたサブエリアＩＤの指定サブエリア内を通過したか否かを判断する。すなわち、指定サブエリアに対するエリアコーナ座標（ｘｉ，ｙｉ），（ｘｊ，ｙｊ）を、サブエリア設定テーブル３９から取得する。そして、当該動線データのインデックス情報を構成する各３次元座標のうちのｘｙ座標に、このエリアコーナ座標によって特定される矩形領域、すなわち座標（ｘｉ，ｙｉ），（ｘｉ，ｙｊ），（ｘｊ，ｙｉ），（ｘｊ，ｙｊ）で囲われる領域内の座標（ｘｐ，ｙｐ）｛ｉ≦ｐ≦ｊかつｉ≦ｑ≦ｊ｝が存在するか調べる。１つも存在しない場合には、当該動線データの人物は指定サブエリア内を通過していないと判断する。この場合は、制御部３７は、この動線データを破棄する。そして、ＳＴ３０５の処理に戻って、カウンタｎをカウントアップし、完全動線データベース３８からテーブル番号ｎの動線データを読み込む。
【０２１９】
これに対し、動線データのインデックス情報を構成する各３次元座標のうちのｘｙ座標に、当該エリアコーナ座標によって特定される矩形領域で囲われる領域内の座標が１つでも存在する場合には、当該動線データの人物は指定サブエリア内を通過したと判断する。この場合、制御部３７は、ＳＴ３１２としてこの動線データを分析対象候補としてデータ記憶部３５に保持する（動線データ抽出手段）。
【０２２０】
次に、制御部３７は、ＳＴ３１３として紐付けテーブル４３を検索して、この動線データの動線ＩＤに対してトランザクションＩＤが紐付けされているか否かを判断する。
【０２２１】
トランザクションＩＤが紐付けされている場合には、制御部３７は、ＳＴ３１４として通信部３３を介してＰＯＳサーバ１２にアクセスする。そして、トランザクションデータベース１４を検索して、このトランザクションＩＤで特定されるトランザクションデータを読み込む。これに対し、トランザクションＩＤが紐付けされていない場合には、制御部３７は、ＳＴ１５として取引一連番号，端末番号，取引日時，合計金額，支払区分及び買上商品データが全て「なし」で、客層データが「不明」のトランザクションデータを作成する。
【０２２２】
その後、制御部３７は、ＳＴ３１６としてトランザクションデータベース１４から読み込んだトランザクションデータまたは購入アイテム無しとして作成したトランザクションデータのレコードを、分析対象候補としてデータ記憶部３５に保持する（商取引データ特定手段）。
【０２２３】
次に、制御部３７は、ＳＴ３１７として分析対象候補の動線データ及びトランザクションデータが、サブエリア以外の分析条件も満足するか否かを判断する。
【０２２４】
すななち、分析条件として特定の商品または商品群を指定するアイテムＩＤまたは分類ＩＤが指定されていた場合には、制御部３７は、分析対象候補のトランザクションデータを検索して、指定されたアイテムＩＤまたは分類ＩＤを含む買上商品データが含まれているか否かを判断する。含まれている場合は分析条件を満足し、含まれていない場合には分析条件を満足しない。満足しない場合には、分析対象候補の動線データ及びトランザクションデータを破棄する。そして、ＳＴ３０５の処理に戻って、完全動線データベース３８から次の動線データを読み込む。
【０２２５】
分析条件として取引期間または取引時間帯の少なくとも一方が指定されていた場合には、制御部３７は、分析対象候補の動線データを検索して、取引日時が、指定された取引期間内または時間帯内であるか否かを判断する。取引期間内または時間帯内である場合は分析条件を満足し、取引期間内または時間帯内でない場合は分析条件を満足しない。満足しない場合には、分割対象の動線データ及びトランザクションデータを破棄する。そして、ＳＴ３０５の処理に戻って、完全動線データベース３８から次の動線データを読み込む。
【０２２６】
分析条件として客層が指定されていた場合には、分割対象のトランザクションデータを検索して、客層が、指定された客層条件に合致するか否かを判断する。合致する場合は分析条件を満足し、合致しない場合は分析条件を満足しない。満足しない場合には、分割対象のトランザクションデータ及び動線データを破棄する。そして、ＳＴ３０５の処理に戻って、完全動線データベース３８から次の動線データを読み込む。
【０２２７】
このように、分析対象候補の動線データ及びトランザクションデータがサブエリア以外の分析条件を１つでも満足しない場合には、制御部３７は、この動線データ及びトランザクションデータを破棄する。そして、次の動線データを読み込む。
【０２２８】
一方、指定された分析条件を全て満足する場合には、制御部３７は、ＳＴ３１８として分析対象候補の動線データにおける動線ＩＤを、出力リストテーブル８０の動線ＩＤエリア８２にセットする。また、分析対象候補のトランザクションデータにおけるトランザクションＩＤを、出力リストテーブル８０のトランザクションＩＤエリア８３にセットする。
【０２２９】
次に、制御部３７は、ＳＴ３１９として分析対象候補の動線データを基に、この動線データに該当する人物の各サブエリアにおける滞在時間、動線長及び平均移動速度を、人物行動データとして算出する。
【０２３０】
人物行動データの算出方法について、図３６を用いて説明する。図３６は、エリアコーナ座標（ｘｉ，ｙｉ），（ｘｊ，ｙｊ）で特定される１つのサブエリアＳｋ内を通過した１本の動線データＤ１を示している。動線データ上の各点Ｐ１〜Ｐｎは、時刻ｔ（１≦ｔ≦ｎ）の時点で観測された人物の二次元空間座標（ｘｔ，ｙｔ）を示している。
【０２３１】
初めに、滞在時間は、サブエリアＳｋに進入する直前の点Ｐ１の時刻ｔ１から離脱した最初の点Ｐｎの時刻ｔｎまでの時間差である。すなわち、滞在時間は、［ｔｎ−ｔ１］として算出される。
【０２３２】
次に、動線データ上の２点Ｐｉ，Ｐi+1間の移動距離は、ユーグリッド距離関数で定義すると、下記（１０）式で表わされる。
【数１０】
0004510112.tif 000011
【０２３３】
したがって、サブエリアＳｋ内の動線長は、サブエリアＳｋ内で時系列に観測された各２点間の移動距離の総和であるから、下記（１１）で表わされる。
【数１１】
0004510112.tif 000012
【０２３４】
次に、サブエリアＳｋ内の平均移動速度は、このサブエリアＳｋ内の動線長を滞在時間で除算することによって算出される。すなわち、下記（１２）式で表わされる。
【数１２】
0004510112.tif 000013
【０２３５】
ここで、右辺の［ｖi,i+1］は時系列に観測された２点間の移動速度である。速度ｖが区間Δｔ内で定速であると仮定すると、２点間の移動速度は、下記（１３）式で表わされる。
【数１３】
0004510112.tif 000014
【０２３６】
したがって、サブエリアＳｋ内の平均移動速度は、下記（１４）式によって算出される。
【数１４】
0004510112.tif 000015
【０２３７】
こうして、サブエリア毎に滞在時間、動線長及び平均移動速度の人物行動データが算出されると、制御部３７は、ＳＴ３２０として分析条件として指定されたサブエリア内の人物行動データを検出する。そして、この人物行動データにより、この人物が当該指定サブエリア内に滞在したか否かを判定する。
【０２３８】
先ず、制御部３７は、指定サブエリア内の人物行動データのなかから滞在時間データを検出する。また、サブエリア設定テーブル３９を検索して、指定サブエリアＩＤに対応して記憶されている滞在判定条件データを取得する。そして、滞在時間データと滞在判定条件データとを比較する。滞在時間データが滞在判定条件データ以上の場合には、人物は指定サブエリア内に滞在している。滞在時間データが滞在判定条件データより小さい場合には、人物は指定サブエリア内を通過しただけで、滞在していない。
【０２３９】
人物が当該指定サブエリア内に滞在していないと判断した場合には、制御部３７は、ＳＴ３０５の処理に戻り、完全動線データベース３８から次の動線データを読み込む。
【０２４０】
人物が当該指定サブエリア内に滞在していたと判断した場合には、制御部３７は、ＳＴ３２１としてＳＴ３１９の処理で算出したサブエリア別人物行動データを出力リストテーブル８０のサブエリア別行動データエリア８４にセットする。また、サブエリア毎に同様の滞在判定を行う。そして、滞在していたと判定されたサブエリアに対しては滞在判定フラグを“１”にセットし、滞在していないと判定されたサブエリアに対しては滞在判定フラグを“０”にリセットする。
【０２４１】
次に、制御部３７は、ＳＴ３２２として分析対象候補の動線データから、当該動線データの人物が指定サブエリアに進入する手前のサブエリア、すなわち進入元サブエリアを特定する。具体的には、指定サブエリアに進入する直前の座標でサブエリア設定テーブル３９を検索し、この座標を内包するエリアコーナ座標が設定されたサブエリアＩＤを進入元サブエリアのＩＤとして特定する。そして、この進入元サブエリアＩＤを出力リストテーブル８０の進入元サブエリアＩＤエリア８５にセットする。
【０２４２】
同様に、制御部３７は、ＳＴ３２３として分析対象候補の動線データレコードに含まれる動線データから、当該動線データの人物が指定サブエリアより離脱した先のサブエリア、すなわち離脱先サブエリアを特定する。具体的には、指定サブエリアから離脱した直後の座標でサブエリア設定テーブル３９を検索し、この座標を内包するエリアコーナ座標が設定されたサブエリアＩＤを離脱先サブエリアのＩＤとして特定する。そして、この離脱先サブエリアＩＤを出力リストテーブル８０の離脱先サブエリアＩＤエリア８６にセットする。
【０２４３】
その後、ＳＴ３０５の処理に戻って、完全動線データベース３８から次の動線データを読み込む。
【０２４４】
以後、完全動線データベース３８から動線データを読み込む毎に、ＳＴ３０８〜ＳＴ３２３の各処理を繰返し実行する。ＳＴ３０７にて動線ＩＤリストテーブル６２からテーブル番号ｎの動線ＩＤを取り込めなかった場合には、全ての動線データについてＳＴ３０８〜ＳＴ３２３の処理が実行された。制御部３７は、ＳＴ３２４として出力リストテーブル８０を出力ファイル３６に書込み、保存する。
【０２４５】
動線解析装置３は、分析条件として少なくともサブエリアを指定することによって、完全動線データベース３８に記憶されている動線データの中から、この指定サブエリアにて滞在した人物の動線データを抽出することができる。また、この動線データの人物が商品を買上げた際に生成されるトランザクションデータがトランザクションデータベース１４に記憶されている。さらに、当該動線データと当該トランザクションデータのとの紐付けが紐付けテーブル４３上で設定されている。したがって、当該トランザクションデータのトランザクションＩＤが特定される。その結果、当該動線データの動線ＩＤと当該トランザクションデータのトランザクションＩＤとがセットされた出力リストテーブル８０が作成され、出力ファイル３６に保存される。
【０２４６】
したがって、出力リストテーブル８０の内容から、指定サブエリア内で滞在した人物の動線データと、この人物のトランザクションデータとを特定できる。すなわち、指定サブエリア内に滞在した人物はどのような商品を購入するのかというような分析を容易に行うことができる。
【０２４７】
また、分析条件として特定の商品または商品群を指定できるようになっている。そして、特定の商品または商品群を指定した場合には、指定サブエリアにて滞在した人物のうち、指定商品または商品群を購入した人物の動線ＩＤとトランザクションＩＤとがセットされた出力リストテーブル８０が作成される。
【０２４８】
したがって、出力リストテーブル８０の内容から、指定サブエリア内で滞在し、かつ特定の商品または商品群を購入した客の行動の特徴を容易に分析することができる。
【０２４９】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【０２５０】
例えば前記実施の形態では、動線解析装置３の外部に、トランザクションデータベース１４を備えたＰＯＳサーバ１２と、オリジナル動線データベース４１、カメラ画像データベース４２、編集動線データベース４３、設定データベース４４、カメラパラメータデータベース４５、店内エリア定義データベース４６及び店内マップデータベース４７を備えた動線サーバ２０とを設け、動線解析装置３とＰＯＳサーバ１２及び動線サーバ２０とを、通信インターフェイスを介して接続したが、各データベースの全部または一部を動線解析装置３の内部に設けて、本発明を実現してもよい。
【０２５１】
また、前記実施の形態では、完全動線データのフィルタ処理を施すための条件として、売場内を細分化したサブエリアを通過したか否かに加え、特定の商品または商品群を指定するアイテムＩＤまたは分類ＩＤを含む買上商品データが含まれているか否か、または取引日時が指定された取引期間内または時間帯内であるか否か、または客層が指定された客層条件に合致するか否か、を例示したが、条件はこれに限定されるものではない。例えばＰＯＳデータに関しては購買金額、購買点数などであってもよい。属性データに関しては、購買回数、会員・非会員などであってもよい。動線データとしては滞在時間、動線長、平均速度、入店時間などであってもよい。
【０２５２】
本実施の形態では装置内部に発明を実施する機能である動線編集プログラムＰ１と動線解析プログラムＰ２が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、ＣＤ−ＲＯＭ等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のＯＳ（オペレーティング・システム）等と協働してその機能を実現させるものであってもよい。
【０２５３】
この他、前記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を組合わせてもよい。
【図面の簡単な説明】
【０２５４】
【図１】本発明の一実施の形態におけるシステム構成を示すブロック図。
【図２】同実施の形態において、トランザクションデータベースに記憶されるトランザクションデータの構造を示す模式図。
【図３】同実施の形態における店舗内レイアウトの説明図。
【図４】同実施の形態における動線サーバの要部構成を示すブロック図。
【図５】同実施の形態において、オリジナル動線データベースに記憶されるオリジナル動線データの構造を示す模式図。
【図６】同実施の形態において、編集動線データベースに記憶される編集動線データの構造を示す模式図。
【図７】同実施の形態において、動線編集画面の一例を示す模式図。
【図８】同実施の形態において、動線編集プログラムが起動したときの制御部の処理手順を示す流れ図。
【図９】図８における動線データ作成処理の手順を示す流れ図。
【図１０】図８における動線状態定義処理の手順を示す流れ図。
【図１１】図８における動線無効化処理の手順を示す流れ図。
【図１２】図８における動線分離処理の手順を示す流れ図。
【図１３】図８における連結元動線再生処理の手順を示す流れ図。
【図１４】図１３における座標変換処理の手順を示す流れ図。
【図１５】図８における連結先動線候補検索処理の手順を示す流れ図。
【図１６】図８における連結定義処理の手順を示す流れ図。
【図１７】図８における連結処理の手順を示す流れ図。
【図１８】同実施の形態において、完全動線データベースに記憶される完全動線データの構造を示す模式図。
【図１９】同実施の形態において、動線解析装置のデータ記憶部に形成される主要なテーブルを示す図。
【図２０】同実施の形態において、動線解析メニューの会計入力業務が選択されたときの制御部の処理手順を示す流れ図。
【図２１】同実施の形態において、動線解析メニューの取引紐付け業務が選択されたときの制御部の処理手順を示す流れ図。
【図２２】図２１におけるトランザクションＩＤリスト取得処理の手順を具体的に示す流れ図。
【図２３】同実施の形態において、指定された紐付け期間内のトランザクションＩＤを抽出するためのＳＱＬの一例を示す図。
【図２４】図２１における動線ＩＤリスト取得処理の手順を具体的に示す流れ図。
【図２５】図２１における動線自動紐付け処理の手順を具体的に示す流れ図。
【図２６】同実施の形態におけるトランザクションＩＤリストテーブルの一例を示す図。
【図２７】同実施の形態における動線ＩＤリストテーブルの一例を示す図。
【図２８】同実施の形態における紐付けテーブルの一例を示す図。
【図２９】図２１における動線手動紐付け処理の手順を具体的に示す流れ図。
【図３０】同実施の形態において用いられるサブエリア設定テーブルのデータ例を示す模式図。
【図３１】同実施の形態における店舗エリアの他のレイアウト例を示す図。
【図３２】図３１に示す店舗エリアを細分化する一例を示す図。
【図３３】同実施の形態において、動線解析メニューの行動分析業務が選択されたときの制御部の処理手順を示す流れ図。
【図３４】同実施の形態において、動線解析メニューの行動分析業務が選択されたときの制御部の処理手順を示す流れ図。
【図３５】同実施の形態において、動線解析装置で作成される出力リストテーブルのエリア構成を示す図。
【図３６】同実施の形態において、人物行動データの算出方法を説明するために用いる模式図。
【符号の説明】
【０２５５】
１…販売管理装置、２…動線管理装置、３…動線解析装置、１１ａ，１１ｂ…ＰＯＳ端末、１２…ＰＯＳサーバ、１４…トランザクションデータベース、２０…動線サーバ、２１…動線データ生成部、２２…記憶部、３１…入力部、３２…表示部、３３…通信部、３４…プログラム記憶部、３５…データ記憶部、３６…出力ファイル、３７…制御部、３８…完全動線データベース、４１…オリジナル動線データベース、４２…カメラ画像データベース、４３…編集動線データベース、４４…設定データベース、４５…カメラパラメータデータベース、４６…店内エリア定義データベース、４７…店内マップデータベース、６１…トランザクションＩＤリストテーブル、６２…動線ＩＤリストテーブル、６３…紐付けテーブル、８０…出力リストテーブル。
【図１】
0004510112.tif 000016
【図２】
0004510112.tif 000017
【図３】
0004510112.tif 000018
【図４】
0004510112.tif 000019
【図５】
0004510112.tif 000020
【図６】
0004510112.tif 000021
【図７】
0004510112.tif 000022
【図８】
0004510112.tif 000023
【図９】
0004510112.tif 000024
【図１０】
0004510112.tif 000025
【図１１】
0004510112.tif 000026
【図１２】
0004510112.tif 000027
【図１３】
0004510112.tif 000028
【図１４】
0004510112.tif 000029
【図１５】
0004510112.tif 000030
【図１６】
0004510112.tif 000031
【図１７】
0004510112.tif 000032
【図１８】
0004510112.tif 000033
【図１９】
0004510112.tif 000034
【図２０】
0004510112.tif 000035
【図２１】
0004510112.tif 000036
【図２２】
0004510112.tif 000037
【図２３】
0004510112.tif 000038
【図２４】
0004510112.tif 000039
【図２５】
0004510112.tif 000040
【図２６】
0004510112.tif 000041
【図２７】
0004510112.tif 000042
【図２８】
0004510112.tif 000043
【図２９】
0004510112.tif 000044
【図３０】
0004510112.tif 000045
【図３１】
0004510112.tif 000046
【図３２】
0004510112.tif 000047
【図３３】
0004510112.tif 000048
【図３４】
0004510112.tif 000049
【図３５】
0004510112.tif 000050
【図３６】
0004510112.tif 000051