以下、客数処理装置及びプログラムの実施形態について、図面を用いて説明する。
なお、この実施形態は、来店した客が店内買物用のカゴを持って売場を回り、買い上げる商品をカゴに入れた後、会計場所で会計を行う販売形態の小売店において、会計を行う客数を類推する場合である。
[第1の実施形態]
図1は、第1の実施形態における客数処理システム100の要部回路構成を示すブロック図である。客数処理システム100は、複数の無線タグリーダ10a,10b,10cと、客数処理装置20と、を備える。
客数処理装置20は、制御部としてのコントローラ200と、システム伝送路28を介して当該コントローラ200に接続された各ユニットとを備える。コントローラ200は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)からなるプロセッサ21と、メインメモリ22とを含む。各ユニットは、補助記憶デバイス23、時計24、デバイスインターフェース(デバイスI/F)25、通信インターフェース(通信I/F)26、第1乃至第3のリーダインターフェース(リーダI/F)27a、27b、27cを含む。システム伝送路28は、アドレスバス、データバス等を含む。客数処理装置20は、コントローラ200と上記の各ユニットとを、システム伝送路28で接続することによって、コンピュータとして機能する。
プロセッサ21は、上記コンピュータの中枢部分に相当する。プロセッサ21は、オペレーティングシステムやアプリケーションソフトウェアに従って、客数処理装置20としての各種の機能を実現するべく各部を制御する。
メインメモリ22は、上記コンピュータの主記憶部分に相当する。メインメモリ22は、不揮発性のメモリ領域と揮発性のメモリ領域とを含む。メインメモリ22は、不揮発性のメモリ領域ではオペレーティングシステムやアプリケーションソフトウェアを記憶する。メインメモリ22は、揮発性のメモリ領域を、プロセッサ21によってデータが適宜書き換えられるワークエリア等として使用する。
補助記憶デバイス23は、上記コンピュータの補助記憶部分に相当する。例えばEEPROM(Electric Erasable Programmable Read-Only Memory)、HDD(Hard Disc Drive)、SSD(Solid State Drive)等が補助記憶デバイス23として使用される。
時計24は、現在の日付及び時刻を計時する。
デバイスインターフェース25は、種々のデバイス機器を接続し、そのデバイス機器と通信を行う。本実施形態では、デバイス機器の一例として、ディスプレイ30がデバイスインターフェース25に接続されている。ディスプレイ30以外のデバイス機器、例えばキーボード、タッチパネル、プリンタ、マウス等がデバイスインターフェース25に接続されていてもよい。
通信インターフェース26は、LAN(Local Area Network)等のネットワークを介して外部機器を接続し、その外部機器と通信を行う。本実施形態では、外部機器の一例として、POS(Point Of Sales)サーバ40が通信インターフェース26に接続されている。POSサーバ40は、店舗の会計場所に設置されている複数台のPOS端末等とともにPOSシステムを構成する周知のものである。
第1乃至第3のリーダインターフェース(リーダI/F)27a、27b、27cは、例えば、ネットワークを介して無線タグリーダ10a、10b、10cと接続する。詳しくは、第1のリーダインターフェース27aは、アンテナA1を接続してなる少なくとも1つの無線タグリーダ(以下、第1の無線タグリーダと称する)10aを接続し、当該第1の無線タグリーダ10aと通信を行う。第2のリーダインターフェース27bは、アンテナA2を接続してなる複数の無線タグリーダ(以下、第2の無線タグリーダと称する)10bを接続し、各第2の無線タグリーダ10bと通信を行う。第3のリーダインターフェース27cは、アンテナA3を接続してなる複数の無線タグリーダ(以下、第3の無線タグリーダと称する)10cを接続し、各第3の無線タグリーダ10cと通信を行う。
第1乃至第3の無線タグリーダ10a、10b及び10cは、同一構成の周知のものである。すなわち第1乃至第3の無線タグリーダ10a、10b及び10cは、アンテナA1、A2、A3の通信領域内に存在する1以上の無線タグと非接触通信を行い、当該無線タグから発信される情報を受信して読み取る。より詳しくは、第1乃至第3の無線タグリーダ10a、10b及び10cは、一定の間隔で周期的に問合せ信号の電波をアンテナA1、A2、A3から放射する。この電波を受信した無線タグは励起し、メモリチップに記憶された情報を含む応答波を返す。第1乃至第3の無線タグリーダ10a、10b及び10cは、この応答波をアンテナA1、A2、A3で受信して、応答波に含まれる情報を読み取る。
本実施形態では、図3に示すように、店内買物用のカゴBに無線タグ(RFID、RFタグ、電子タグ等とも称される)Tを付す。なお、図3では、無線タグTをカゴBの底面に付しているが、無線タグTが付される場所は底面に限定されるものではない。無線タグTは、メモリチップとアンテナ素子とを備えた既存のものであり、メモリチップにはカゴID(identification)が記憶されている。カゴIDは、当該無線タグTが付されたカゴBを個々に識別するためのカゴ識別情報である。カゴIDは、無線タグTの製造時にメモリチップに記憶されるタグ固有のIDでもよいし、当該タグ固有のIDとは別にメモリチップに書き込まれた一意の情報であってもよい。無線タグTは、第1乃至第3の無線タグリーダ10a、10b及び10cとの非接触通信により、メモリチップに記憶したカゴIDを発信する。カゴBは、客とともに売場PL1内を移動する。すなわちカゴBに付された無線タグTは、客とともに移動する発信機の一例である。そして、それぞれアンテナA1、A2及びA3を接続してなる第1乃至第3の無線タグリーダ10a、10b及び10cは、発信機から発信されるカゴIDを示す第1情報を受信する受信部を構成する。
図2は、客数処理システム100が導入された店舗STのレイアウトを示す模式図である。なお、図2はあくまでも一例であり、店舗STのレイアウトは、図2に示すものに限定されないのは言うまでもない。
店舗STは、売場PL1と、会計場所PL2とに区分される。また、店舗STへの入口INと、店舗STからの出口OUTとが、会計場所PL2の両側に設けられている。なお、倉庫、作業場等を兼ねるバックヤードについては図示を省略している。
会計場所PL2には、袋詰め台Eと、複数(図2では5つ)のチェックアウトカウンタCとが配置されている。各チェックアウトカウンタCは、入口INと出口OUTとを結ぶ方向と同じ方向に所定の間隔をあけて設置されており、チェックアウトカウンタCに沿った出口OUT側の空間を、会計を行う客の通路としている。各チェックアウトカウンタCには、会計装置として、スキャナSとPOS端末Pとがそれぞれ設けられている。スキャナSは、客が買い上げる商品に付されているバーコードを読み取るための機器である。POS端末Pは、スキャナSで読み取られたバーコードのデータを基に客が買い上げる商品の販売データを登録処理し、合計金額等を算出するための機器である。
入口INの近傍には、無線タグTを付した店内買物用のカゴBが多数積み上げられている。アンテナA1は、第1の無線タグリーダ10aが入口INの近傍に積み上げられたカゴBに付された各無線タグTの情報を一括して読み取れるように、例えば積み上げられたカゴBに沿って配置されている。
入口INから入店した客は、カゴBを持って売場PL1へ行く。そして客は、棚Dの間の通路を通って売場PL1内を回り、買い上げる商品をカゴBに入れる。複数のアンテナA2は、それぞれ第2の無線タグリーダ10bが客とともに売場の通路を移動するカゴBに付された無線タグTの情報を異なる場所で読み取れるように、例えば通路の床に分散して配置されている。
買い上げる商品をカゴBに入れ終えた客は、売場PL1から会計場所PL2へと移動する。そして客は、いずれかのチェックアウトカウンタCにカゴBを置く。チェックアウトカウンタCにはキャッシャが居り、キャッシャは、スキャナS又はPOS端末Pを操作して、カゴBに入れられた商品の会計を行う。会計を終えた客は、袋詰め台5を利用して商品の袋詰めを行った後、出口OUTから店外へ出る。このとき、カゴBは一旦回収され、その後、再び入口INの近傍に積み上げられる。複数のアンテナA3は、それぞれ第3の無線タグリーダ10cが各チェックアウトカウンタCに置かれたカゴBに付された無線タグTの情報を読み取れるように、例えばチェックアウトカウンタCの天板に配置されている。
ところで、チェックアウトカウンタCに設置されている会計装置(スキャナS及びPOS端末P)は、常に全台が稼働しているというわけではない。会計場所PL2が混雑していない時間帯は、稼働台数を減らして省力化を図っている。逆に、会計場所PL2が混雑し始めた場合には、稼働台数を増やすことで客の待ち時間を減らしている。このように店舗STでは、会計場所PL2の混雑度を予測して、会計装置の稼働台数を増減している。すなわち会計装置は、客数を基に稼働台数が決定される機器の一例である。
会計場所PL2の混雑度は、売場PL1に居る客の数から予測できる。ただし、客がそれぞれ1個のカゴBを持って買物をするというのであれば、売場PL1内のカゴBの数から客数を把握できるが、一人の客が持つカゴBの数は1個とは限らない。例えばショッピングカートを利用することで、一人が2個以上のカゴを持って売場PL1を回る場合がある。あるいは夫婦、子供連れ等のように複数名で来店した客がそれぞれカゴBを持って売場PL1を回ることもある。そして、これらの客は大抵、複数のカゴBに入れられた商品をまとめて会計場所PL2へ持ち込み、一括して会計を行う。つまり、会計場所PL2の混雑度を予測する場合、2個以上のカゴBを持って売場PL1を回っている個人客またはグループ客も一人の客としてカウントすることで精度が向上する。
そこで本実施形態の客数処理システム100は、2個以上のカゴBを持って売場PL1を回っている個人客またはグループ客も一人の客としてカウントする処理ために、客数処理装置20の補助記憶デバイス23に、カゴ状態テーブル231と組合せデータファイル232とを有する。また、情報処理ユニット10のメインメモリ22は、第1メモリ221と第2メモリ222とを形成する。また、メインメモリ22は、後述するレジスタPおよびレジスタQを形成する。
図4は、カゴ状態テーブル231のデータ構造を示す模式図である。図示するようにカゴ状態テーブル231は、各カゴBにそれぞれ付された無線タグTから発信されるカゴIDに関連付けて、カゴBの状態を識別するステータスを記憶する。カゴBの状態には、入口INの近傍に積み上げられた状態の「待機中」と、客とともに売場PL1を移動している状態の「買物中」と、会計場所PL2での会計を終えた客から回収された状態の「回収済」とがある。本実施形態では、「待機中」の状態を示すステータスを“0”、「買物中」の状態を示すステータスを“1”、「回収済」の状態を示すステータスを“2”とする。
図5は、組合せデータファイル232のデータ構造を示す模式図である。図示するように組合せデータファイル(第2情報)232は、2以上のカゴIDを組み合わせた組データ(ファミリーデータ)を、第1の値及び第2の値のカウント値と、抽出フラグの値とともに1レコードとして保存する。1つのレコードの組データは、複数のカゴIDを記憶する。ここで、レコードの組データを構成するカゴIDの数は任意である。組データは、一つの第2の無線タグリーダ10bで所定の期間内(例えば、1回の読取処理)で読み取られた2以上の発信機のカゴIDを記憶する。第1の値は、同一レコードの組データを構成する2以上のカゴIDと同じ2以上のカゴIDを、1つの第2の無線タグリーダ10bで一括して読み取った回数である。第2の値は、同一レコードの組データを構成する2以上のカゴIDの中のいずれか1つを第2の無線タグリーダ10bで読み取った回数である。なお、組合せファイル232の各レコードは、例えば、第1の値が多い順にソートされてよい。抽出フラグは、後述する第4の信号に応じてプロセッサ21が実行する処理において、抽出の対象となるか否かを識別する1ビットの情報である。本実施形態では、抽出フラグが“1”のとき抽出の対象となり、“0”のとき抽出の対象とならない。
第1の値が所定の回数K(Kは複数)以上の場合、組データを構成する2以上のカゴIDでそれぞれ識別される2以上のカゴBは、一人の客又はグループ客ととともに移動していると推測できる。しかしながら、第2の値が所定の回数L(Lは複数)以上になると、その2以上のカゴBは、一人の客が持ったカゴではない。また、その2以上のカゴBは、会計をまとめて行うグループ客が持つカゴでもない。すなわち、そのレコードのデータは、別行動をする複数名がそれぞれ持ったカゴBが、たまたま同一の第2の無線タグリーダ10Bで読み取られたと考えられる。そこで本実施形態では、第1の値が所定の回数K以上であり、尚且つ、第2の値が所定の回数L未満であるレコードの組データを、2個以上のカゴBを持って売場PL1を回っている個人客またはグループ客に対するデータとして処理する。なお、回数K及び回数Lは任意であり、売場PL1内のアンテナA2の数又はアンテナA2の位置等を基に適切な値が設定される。
図6は、第1メモリ221と第2メモリ222のエリア構成を示す模式図である。図示するように第1メモリ221と第2メモリ222は、いずれも複数のカゴIDを記憶可能なエリアを有している。
そして本実施形態の客数処理システム100は、客数処理装置20のプロセッサ21が、図7乃至図10の流れ図に示す手順の処理を実行するように、メインメモリ22または補助記憶デバイス23に所定のプログラム(アプリケーションソフトウェア)をインストールしている。なお、図7乃至図10に示すとともに以下に説明する処理の内容は一例である。同様な結果を得ることが可能であるならば、その処理手順及び処理内容は特に限定されるものではない。
図7は、所定の時間間隔(例えば3秒)で発生する第1の信号に応じてプロセッサ21が実行する処理の手順を示す流れ図である。プロセッサ21は先ず、第2メモリ222をクリアし、第1メモリ221のデータを第2メモリ222に移す(Act1)。次いでプロセッサ21は、第1のリーダインターフェース27aを介して第1の無線タグリーダ10aに対して無線タグの読取りを指令する(Act2)。
この指令を受けて、第1のリーダインターフェース27aに接続された第1の無線タグリーダ10aが動作し、アンテナA1の通信領域内に存在する無線タグTのデータを一括して読み取る。前述したように、アンテナA1の通信領域内には、入口INの近傍に積み上げられたカゴBにそれぞれ付されている無線タグTが存在しており、第1の無線タグリーダ10aが各無線タグTから発信されるカゴIDを一括して読み取る。なお、第1の無線タグリーダ10aが自動で定期的に無線タグTのデータを読み取ってもよい。第1の無線タグリーダ10aは、各無線タグTから読み取った複数のカゴIDを客数処理装置20へ送信する。プロセッサ21は、第1のリーダインターフェース27aを介して受信したカゴIDを第1メモリ221に記憶させる(Act3)。なお、プロセッサ21は、各第1の無線タグリーダ10aから無線タグリーダの識別情報を取得してもよい。
かくして第1メモリ221には、現時点で入口INの近傍に積み上げられているカゴBのカゴIDが記憶される。一方、第2メモリ222には、1つ前のタイミングで取得した前回入口INの近傍に積み上げられていたカゴBのカゴIDが記憶されている。
プロセッサ21は、第1メモリ221に記憶されたカゴIDと第2メモリ222に記憶されたカゴIDとを比較する(Act4)。そしてプロセッサ21は、第1メモリ221には記憶されていないが、第2メモリ222には記憶されているカゴIDの有無を判断する(Act5)。そして、第2メモリ222には記憶されているが、第1メモリ221には記憶されていないカゴIDが存在する場合(Act5、YES)、プロセッサ21は、第2メモリ222にのみ記憶されたカゴIDを抽出する。そしてプロセッサ21は、抽出したカゴIDに基づいてカゴ状態テーブル231を検索して、該当するカゴIDに対応したステータスを“1”とする(Act6)。第2メモリ222には記憶されているが、第1メモリ221には記憶されていないカゴIDが存在しない場合(Act5、NO)、プロセッサ21は、Act6の処理を実行しない。またプロセッサ21は、第1メモリ221には記憶されているが、第2メモリ222には記憶されていないカゴIDの有無を判断する(Act7)。そして第1メモリ221には記憶されているが、第2メモリ222には記憶されていないカゴIDが存在する場合(Act7、YES)、プロセッサ21は、第1メモリ221にのみ記憶されたカゴIDを抽出する。そしてプロセッサ21は、抽出したカゴIDに基づいてカゴ状態テーブル231を検索して、該当するカゴIDに対応したステータスを“0”とする(Act8)。第1メモリ221には記憶されているが、第2メモリ222には記憶されていないカゴIDが存在しない場合(Act7、NO)、プロセッサ21は、Act8の処理を実行しない。
以上で、プロセッサ21は、第1の信号に応じた処理を終了する。以後、第1の信号が発生する毎に、プロセッサ21は、図7に示したAct1乃至Act8の処理を繰り返し実行する。
このように第1の無線タグリーダ10aは、第1の信号が発生する間隔で繰り返し無線タグTの読取り動作を行う。ここで、前回の第1の信号が発生した時点から今回の第1の信号が発生した時点までの間にカゴBが売場PL1へと持ち出された場合、そのカゴBに付された無線タグTから発信されるカゴIDは、前回は読み取られたが今回は読み取られない。したがって、Act5及びAct6の処理により、売場PL1へ持ち出されたカゴBのカゴIDに関連付けられたステータスが“0”から“1”に変更される。また、前回の第1の信号が発生した時点から今回の第1の信号が発生した時点までの間に新たなカゴBが積み上げられた場合、そのカゴBに付された無線タグTから発信されるカゴIDは、前回は読み取られなかったが今回は読み取られる。したがって、Act7及びAct8の処理により、新たに積み上げられたカゴBのカゴIDに関連付けられたステータスが“2”または“1”から“0”に変更される。
図8は、所定の時間間隔(例えば3秒、ただし第1の信号とはタイミングが異なる)で発生する第2の信号に応じてプロセッサ21が実行する処理の手順を示す流れ図である。プロセッサ21は先ず、第2のリーダインターフェース27bを介して第2の無線タグリーダ10bに対して無線タグの読取りを指令する(Act11)。
この指令を受けて、第2のリーダインターフェース27bに接続された複数の第2の無線タグリーダ10bがそれぞれ動作し、アンテナA2の通信領域内に存在する無線タグTのデータを一括して読み取る。前述したように、アンテナA2の通信領域内には、売場PL1で買い回り中の客が持っているカゴBに付されている無線タグTが存在する場合がある。したがって、アンテナA2の通信領域内にカゴBを持った客が存在する場合には、それぞれの第2の無線タグリーダ10bが各無線タグTから発信されるカゴIDを読み取る。なお、第2の無線タグリーダ10bは、定期的に自動で無線タグTのデータを読み取ってもよい。第2の無線タグリーダ10bは、各無線タグTから読み取った複数のカゴIDを含む第1情報を客数処理装置20へ送信する。プロセッサ21は、第2のリーダインターフェース27bを介して受信した第1情報に基づいて、いずれかの第2の無線タグリーダ10bによってカゴIDが読み取られたか否かを確認する(Act12)。なお、プロセッサ21は、各第2の無線タグリーダ10bから無線タグリーダの識別情報を取得してもよい。
プロセッサ21は、カゴIDが読み取られた場合(Act12、YES)、1つの第2の無線タグリーダ10bによって2以上のカゴIDが読み取られたか否かを確認する(Act13)。プロセッサ21は、1つの第2の無線タグリーダ10bによって2以上のカゴIDが読み取られた場合(Act13、YES)、同じ第2の無線タグリーダ10bによって読み取られた2以上のカゴIDを組み合わせた組データを作成する(Act14)。
プロセッサ21は、組データを作成し終えると、組合せデータファイル232を検索して、同一の組データを含むレコードが存在するか否かを確認する(Act15)。プロセッサ21は、該当するレコードが存在しない場合(Act15、NO)、その組データを含むレコードを作成し、組合せデータファイル232に追加する(Act16)。またプロセッサ21は、この追加したレコードの第1の値を“1”とし、第2の値を“0”とする(Act17)。
プロセッサ21は、該当するレコードが組合せデータファイル232に存在する場合には(Act15、YES)、そのレコードの第1の値を“1”だけ増加する(Act18)。
プロセッサ21は、1つの第2の無線タグリーダ10bによって読み取られたカゴIDが1つだけであった場合には(Act13、NO)、組合せデータファイル232を検索して、そのカゴIDを含む組データのレコードが存在するか確認する(Act19)。そしてプロセッサ21は、該当するレコードが存在する場合(Act19、YES)、そのレコードの第2の値を“1”だけ増加する(Act20)。
プロセッサ21は、該当するレコードが存在しない場合(Act19、NO)、またはAct17、Act18又はAct20の処理を終えると、Act12に戻る。すなわちプロセッサ21は、別の無線タグリーダ10bによってカゴIDが読み取られているか否かを確認する。そしてプロセッサ21は、カゴIDが読み取られている場合(Act12、YES)、前述したAct13〜Act20の処理を再度実行する。
こうして、第2のリーダインターフェース27bに接続された第2の無線タグリーダ10bで読み取られたカゴIDに対する処理がすべて終わると、Act12において、カゴIDを読取った第2の無線タグリーダ10bが無しと判定される(Act12、NO)。続いてプロセッサ21は、第2の信号に応じた処理を終了する。以後、プロセッサ21は、第2の信号が発生する毎に、図8に示したAct11乃至Act20の処理を繰り返し実行する。
このように複数の第2の無線タグリーダ10bは、それぞれ第2の信号が発生する間隔で繰り返し無線タグTの読取り動作を行う。そして、いずれかの第2の無線タグリーダ10bが複数の無線タグTから発信されるカゴIDを同時に読み取ったならば、それらのカゴIDを組み合わせた組データの第1の値が「+1」される。またいずれかの第2の無線タグリーダ10bが、組データに含まれるカゴIDを単独で読み取ったならば、そのカゴIDを含む組データの第2の値が「+1」される。
図9は、所定の時間間隔(例えば3秒、ただし第1及び第2の信号とはタイミングか異なる)で発生する第3の信号に応じてプロセッサ21が実行する処理の手順を示す流れ図である。プロセッサ21は先ず、第3のリーダインターフェース27cを介して第3の無線タグリーダ10cに対して無線タグの読取りを指令する(Act31)。
この指令を受けて、第3のリーダインターフェース27cに接続された複数の第3の無線タグリーダ10cがそれぞれ動作し、アンテナA3の通信領域内に存在する無線タグTのデータを読み取る。前述したように、アンテナA3の通信領域内には、チェックアウトカウンタCに置かれたカゴBに付されている無線タグTが存在する場合がある。したがって、アンテナA3の通信領域内にカゴBが存在する場合には、それぞれの第3の無線タグリーダ10cが各無線タグTから発信されるカゴIDを読み取る。なお、第3の無線タグリーダ10cは、定期的に自動で無線タグTのデータを読み取ってもよい。第3の無線タグリーダ10cは、各無線タグTから読み取った複数のカゴIDを情報処理装置(客数処理装置)20へ送信する。プロセッサ21は、いずれかの第3の無線タグリーダ10cによってカゴIDが読み取られたか否かを確認する(Act32)。なお、プロセッサ21は、各第3の無線タグリーダ10cから無線タグリーダの識別情報を取得してもよい。
プロセッサ21は、カゴIDが読み取られた場合(Act32、YES)、カゴ状態テーブル231を検索して、読み取ったカゴIDに対応したステータスを“2”とする(Act33)。またプロセッサ21は、組合せデータファイル232を検索して、読み取ったカゴIDを含む組データのレコードが存在するか確認する(Act34)。そしてプロセッサ21は、該当するレコードが存在する場合(Act34、YES)、そのレコードを組合せデータファイル232から削除する(Act35)。
プロセッサ21は、該当するレコードが存在しない場合(Act34、NO)、またはAct35の処理を終えると、Act32に戻る。すなわちプロセッサ21は、別の無線タグリーダ10cによってカゴIDが読み取られているか否かを確認する。そしてプロセッサ21は、カゴIDが読み取られている場合(Act32、YES)、前述したAct33〜Act35の処理を再度実行する。
こうして、第3のリーダインターフェース27cに接続された各無線タグリーダ10cで読み取られたカゴIDに対する処理がすべて終わると、Act32において、カゴIDを読取った無線タグリーダ10bが無しと判定される。プロセッサ21は、カゴIDを読取った無線タグリーダ10bが無しと判定すると(Act32、NO)、第3の信号に応じた処理を終了する。以後、プロセッサ21は、第3の信号が発生する毎に、図9に示したAct31乃至Act35の処理を繰り返し実行する。
このように複数の第3の無線タグリーダ10bは、それぞれ第3の信号が発生する間隔で繰り返し無線タグTの読取り動作を行う。そして、いずれかの第3の無線タグリーダ10bが無線タグTから発信されるカゴIDを読み取ったならば、そのカゴIDに関連付けられたステータスが“1”から“2”に変更される。また、そのカゴIDを含む組データのレコードが組合せデータファイル232から削除される。
図10は、所定の時間間隔(例えば30秒)で発生する第4の信号に応じてプロセッサ21が実行する処理の手順を示す流れ図である。なおプロセッサ21は、第1乃至第3の信号のうちいずれか1つの信号と第4の信号とが同時に発生した場合、図7、図8または図9に示す処理と図10に示す処理とを並列的に実行する。あるいは、図10に示す処理を優先的に実行してもよい。
プロセッサ21は先ず、組合せデータファイル232に記憶されている全レコードの抽出フラグを“1”とする(Act41)。またプロセッサ41は、カゴ状態テーブル231を参照してステータスが“1”に設定されているカゴIDの数を計数し、その数をレジスタPに格納する(Act42)。レジスタPは、例えばメインメモリ22に形成されている。
次にプロセッサ21は、カウンタnを“0”にリセットする(Act43)。カウンタnは、例えばメインメモリ22に形成されている。次にプロセッサ21は、カウンタnを“1”だけ増加する(Act44)。そしてプロセッサ21は、組合せデータファイル232から、そのカウンタnの値に一致するn番目のレコードを抽出する(Act45)。
プロセッサ21は、組合せデータファイル232からn番目のレコードを抽出できたか否かを確認する(Act46)。n番目のレコードを抽出できた場合(Act46、YES)、プロセッサ21は、その抽出したレコードに含まれる抽出フラグを調べる(Act47)。プロセッサ21は、抽出フラグが“0”である場合、抽出したレコードに対する処理を行うことなくAct44の処理に戻る。
プロセッサ21は、抽出フラグが“1”である場合、その抽出したレコードに含まれる第1の値が所定の回数K以上であるか否かを判断する(Act48)。第1の値が回数K未満である場合(Act48、NO)、プロセッサ21は、Act44の処理に戻る。
プロセッサ21は、第1の値が回数K以上である場合(Act48、YES)、そのレコードに含まれる第2の値が所定の回数L以上であるか否かを判断する(Act49)。第2の値が回数L以上である場合(Act49、YES)、プロセッサ21は、Act44の処理に戻る。
プロセッサ21は、第2の値が回数L未満である場合(Act49、NO)、そのレコードの組データを構成するカゴIDの数をレジスタQに格納する(Act50)。レジスタQは、例えばメインメモリ32に形成される。
プロセッサ21は、レジスタPの数から、レジスタQの数よりも“1”だけ小さい数を減算した数を、新たにレジスタPに格納する(Act51)。その後、プロセッサ21は、n+1番目以降のレコードのなかに、n番目レコードに含まれるカゴIDの少なくとも1つを含むレコードが存在するか否かを判断する(Act52)。該当するレコードが存在する場合(Act52、YES)、プロセッサ21は、該当するレコードの抽出フラグをすべて“0”とする(Act53)。該当するレコードが存在しない場合には(Act52、NO)、プロセッサ21は、Act53の処理を行わない。その後、プロセッサ21は、Act44の処理に戻る。
したがってプロセッサ21は、カウンタnを“1”ずつカウントアップする毎に、Act45乃至Act53の処理を繰り返し実行する。すなわちプロセッサ21は、組合せデータファイル232から抽出フラグが“1”であるレコードを順次抽出して、Act48乃至Act53の処理を実行する。そしてプロセッサ21は、組合せデータファイル232からn番目のレコードを抽出できなくなると(Act46、NO)、レジスタPの数を、会計前の客数、すなわち売場PL1に居る客のうち、会計場所PL2で会計を行う客数を記憶するメモリエリアに格納する(Act54)。当該メモリエリアは、メインメモリ22に形成される。
ここで、カゴ状態テーブル231のステータスが“1”に設定されているカゴIDを記憶した無線タグTは、売場PL1で買い回り中の客が持っているカゴBに付されたものである。すなわち、Act42においてレジスタPに格納された数は、売場PL1で買い回り中の客が持っているカゴBの総数に相当する。一方、Act50においてレジスタQに格納される数は、一人の客が複数のカゴBを持って売場PL1に居る場合には、そのカゴBの総数となる。売場PL1にて行動を共にする家族等の場合には、各人が持っているカゴの数となる。前者の場合、当然に、複数のカゴBに入った商品の会計を一人がまとめて行う。後者の場合も、通常はそれぞれのカゴBに入った商品の会計を一人がまとめて行う。そこで、Act52において、プロセッサ21は、レジスタPの数、すなわち売場PL1で買い回り中の客が持っているカゴBの総数から、レジスタQの数よりも“1”だけ小さい数、すなわち会計を伴わないカゴBの数を減算する。
上記のように、プロセッサ21は、少なくとも2以上の無線タグT(カゴB)が移動を伴う場合に、2以上の無線タグT(カゴB)を1つのグループ(一群)とし、2以上の無線タグT(カゴB)を1つのグループとしたことに基づいて、客とともに移動する無線タグ(カゴB)の数より少ない数を客数として導出する。すなわちプロセッサ21は、取得したカゴIDに基づいて、同一の2以上のカゴIDの組み合わせが、1つの無線タグリーダで読み取られた回数が所定の回数以上である場合に、当該2以上のカゴIDを1つのグループ(一群)とし、このグループに含まれる無線タグ(カゴB)の数(第1の数)と、レジスタPに格納された数(第2の数)とに基づいて、商品の会計が行われる回数としての客数(第3の数)を算出する。したがって、会計が行われる回数としての客数(第3の数)は、レジスタPに格納された数(第2の数)よりも少なくなる。このような演算により、会計前の客数が正しく導き出される。会計前の客数は、レジスタPに格納される。
なお、商品の会計が行われる回数としての客数、すなわち、会計前の客数の算出方法は、図10で説明したものに限定されない。例えば、プロセッサ21は、1つのグループ(一群)として判断された組み合わせの数を、例えば、組合せデータファイル232に基づいて算出し、1つのグループとして判断された組み合わせの数と、1つのグループ(一群)として判断されなかった無線タグ(カゴID)の数とに基づいて、商品の会計が行われる回数としての客数を算出してもよい。1つのグループ(一群)として判断されなかった無線タグ(カゴID)の数は、1つのグループとして判断された無線タグ(カゴID)の数およびレジスタPに格納された数とに基づいて算出できる。上記の算出方法は一例であり、様々な算出法が適用可能である。
プロセッサ21は、会計前客数のメモリエリアに格納された値から、その会計前客数に適した会計装置の推奨稼働台数を決定する(Act55)。例えば補助記憶デバイス23には、客数が10人までは推奨稼働台数が「1」、20人までは推奨稼働台数が「2」、というように段階的に推奨稼働台数を設定したデータテーブルが用意されている。プロセッサ21は、このデータテーブルを参照して、会計前の客数から推奨稼働台数を決定する。
プロセッサ21は、通信インターフェース26を介してPOSサーバ40にアクセスし、現時点における会計装置の稼働台数を取得する(Act56)。POSサーバ40は、ネットワークを介して各チェックアウトカウンタCに設置されているPOS端末Cと接続されており、各POS端末Cの稼働状況を管理している。したがってプロセッサ21は、POSサーバ40に問い合わせることで、現時点で稼働しているPOS端末Cの数、つまりは会計装置の稼働台数を取得できる。
プロセッサ21は、会計装置の稼働台数を変更すべきか否かを判定する(Act57)。すなわちプロセッサ21は、現時点における会計装置の稼働台数が推奨稼働台数と一致するか否かを判定する。一致する場合、稼働台数は変更する必要がない。しかし一致しない場合には、会計装置の稼働台数が推奨稼働台数と一致するように変更する必要がある。プロセッサ21は、会計装置の稼働台数を変更すべきと判定した場合(Act57、YES)、変更内容の通知を行う(Act58)。
通知は、一例としてはディスプレイ30を用いて行う。例えばプロセッサ21は、デバイスインターフェース25を介して、推奨稼働台数を示すメッセージのデータをディスプレイ30に出力する。この制御により、ディスプレイ30には、会計装置の推奨稼働台数を示すメッセージが表示される。したがって、このメッセージを確認した店舗管理者は、店員に会計装置の稼働台数が推奨稼働台数となるように指示することができる。
通知は、POSサーバ40を介して行ってもよい。例えばプロセッサ21は、通信インターフェース26を介して、推奨稼働台数を示すメッセージのデータをPOSサーバ40に出力する。この制御により、POSサーバ40に接続されたPOS端末Pのディスプレイに、推奨稼働台数を示すメッセージが表示される。したがって、このメッセージを確認したキャッシャは、他の店員に会計装置の稼働台数が推奨稼働台数となるように指示することができる。なお、メッセージの内容は、上記のものに限定されるものではない。例えば現在の稼働台数と推奨稼働台数との差分を通知する内容であってもよい。
プロセッサ21は、Act58の処理を終えるか、会計装置の稼働台数を変更する必要がないと判断した場合(Act57、NO)、第4の信号に応じた処理を終了する。
このようにプロセッサ21は、第4の信号が発生する間隔で繰り返し図10の流れ図に示す手順の処理を実行する。したがって客数処理システム100によれば、略リアルタイムに正確な会計前の客数を導出することができる。その結果、会計場所PL2の混雑度を精度よく予測することができる。
また客数処理システム100によれば、第4の信号が発生する毎に導出される会計前の客数により、会計装置の推奨稼働台数を自動的に決定することができる。さらに客数処理システム100によれば、その推奨稼働台数を、ディスプレイ30への表示、あるいはPOSサーバ40への出力等によって、外部に通知することができる。したがって、常に適正な台数で会計装置を稼働できるので、会計場所PL2の混雑によって客が不満に感じたり、会計装置の無駄な稼働によってコストがかかったりするのを、未然に防ぐことができる。
[第2の実施形態]
第1の実施形態では、2個以上のカゴBを持って売場PL1を回る個人客または複数名で来店した客がそれぞれカゴBを持って一緒に売場PL1を回るグループ客を検出する方法として、売場PL1においてその2個以上のカゴBのカゴIDを同時に読み取った回数(第1の値)を利用した。第2の実施形態では、売場PL1を移動するカゴBの動線を利用する。すなわち、2個以上のカゴBを持って売場PL1を回る個人客の場合、各々のカゴBの動線は略一致する。また、複数名で来店した客がそれぞれカゴBを持って一緒に売場PL1を回るグループ客の場合も、各々が持つカゴBの動線は類似する。このように第2の実施形態では、複数のカゴBの動線が一致若しくは類似する場合に、上記の個人客またはグループ客として検出する。
以下、第2の実施形態について、図11及び図12を用いて説明する。なお、客数処理システム100の回路構成及び店舗STのレイアウトは第1の実施形態と共通とし、同一部分に同一符号を付してその詳しい説明は省略する。
図11は、カゴ動線ファイル51のデータ構造を示す模式図である。カゴ動線ファイル51は、補助記憶デバイス23に保存される。カゴ動線ファイル51は、一連の番号順に、カゴIDと動線情報と済フラグとを記憶する。
動線情報は、対応するカゴIDで識別されるカゴBの売場PL1内の動線を表す。無線タグから発信されるIDを、複数の無線タグリーダのアンテナで一定の時間間隔を開けて継続的に受信することにより、無線タグの動線情報(位置座標、時間、移動距離等)を生成する技術は周知である。本実施形態では、この周知の技術を利用して、客数処理装置20が、カゴIDを読み取った第2の無線タグリーダ10bの情報とその読取時刻とに基づき、売場PL1内を移動する無線タグTの動線情報、つまりはこの無線タグTが付されたカゴBの動線情報を生成する。生成された動線情報は、未処理を表す済フラグ(例えば“0”)とともに、当該無線タグTから発信されるカゴIDと関連付けて、カゴ動線ファイル51に保存される。
図12は、所定の時間間隔(例えば60秒)で発生する第5の信号に応じてプロセッサ21が実行する処理の手順の一部を示す流れ図である。なお、説明は省略するが、第2の実施形態においてもプロセッサ21は、図7及び図9に示す手順の処理については同様に実行する。因みに、図12に示すとともに以下に説明する処理の内容は一例である。同様な結果を得ることが可能であるならば、その処理手順及び処理内容は特に限定されるものではない。
プロセッサ21は先ず、カゴ状態テーブル231を参照して、ステータスが“1”に設定されているカゴIDの数を計数し、その数をレジスタPに格納する(Act61)。次にプロセッサ21は、カウンタmを“0”にリセットする(Act62)。カウンタmは、例えばメインメモリ22に形成されている。次にプロセッサ21は、カウンタmを“1”だけ増加する(Act63)。そしてプロセッサ21は、カゴ動線ファイル51から、そのカウンタmの値に一致するm番目の動線情報を抽出する(Act64)。
プロセッサ21は、カゴ動線ファイル51からm番目の動線情報を抽出できたか否かを確認する(Act65)。m番目の動線情報を抽出できた場合(Act65、YES)、プロセッサ21は、そのm番目の動線情報が判定対象か否かを確認する(Act66)。例えば、m番目の動線情報に関連付けられた済フラグが処理済を示す状態(例えば“1”)であるとき、m番目の動線情報は判定対象ではない。また、m番目の動線情報で表わされる動線の長さが一定長に達していない場合、m番目の動線情報は判定対象ではない。
m番目の動線情報が判定対象である場合(Act66、YES)、プロセッサ21は、レジスタQに初期値“1”を格納する(Act67)。またプロセッサ21は、カウンタnをカウンタmの値とする(Act68)。次にプロセッサ21は、カウンタnを“1”だけ増加する(Act69)。そしてプロセッサ21は、カゴ動線ファイル51からそのカウンタnの値に一致するn番目の動線情報を抽出する(Act70)。
プロセッサ21は、カゴ動線ファイル51からn番目の動線情報を抽出できたか否かを確認する(Act71)。n番目の動線情報を抽出できた場合(Act71、YES)、プロセッサ21は、そのn番目の動線情報が判定対象か否かを確認する(Act72)。例えばn番目の動線情報に関連付けられた済フラグが処理済を示す状態(例えば“1”)であるとき、n番目の動線情報は判定対象ではない。また、n番目の動線情報で表わされる動線の長さが一定長に達していない場合、n番目の動線情報は判定対象ではない。
n番目の動線情報が判定対象である場合(Act72、YES)、プロセッサ21は、そのn番目の動線情報で表わされる動線とm番目の動線情報で表わされる動線とを比較する(Act73)。そしてプロセッサ21は、両動線が類似しているか否かを確認する(Act74)。例えば両動線が同じ時間帯にほぼ同じ方向へと移動していることが確認された場合、プロセッサ21は、両動線が類似していると判定する。両動線が同じ時間帯に異なる方向へと移動していることが確認された場合、プロセッサ21は、両動線が類似していないと判定する。
両動線が類似していると判定した場合(Act74、YES)、プロセッサ21は、レジスタQの値を“1”だけ増加する(Act75)。またプロセッサ21は、m番目の動線情報と比較されたn番目の動線情報に関連付けられた済フラグを、処理済を示す状態(例えば“1”)にする(Act76)。これに対し、両動線が類似していないと判定した場合には(Act74、NO)、プロセッサ21は、Act75及びAct76の処理を実行しない。その後、プロセッサ21は、Act69の処理に戻る。
したがってプロセッサ21は、カウンタnを“1”ずつカウントアップする毎に、Act70乃至Act76の処理を繰り返し実行する。その結果、m番目の動線情報で表わされる動線と類似する動線が検出される毎に、レジスタQの値が“1”ずつ増加する。そしてプロセッサ21は、カゴ動線ファイル51からn番目の動線情報を抽出できなくなると(Act71、NO)、レジスタQの値が“2”以上か否かを確認する(Act77)。レジスタQの値が“1”の場合、m番目の動線情報の動線に類似する動線が存在しない。この場合(Act77、NO),プロセッサ21は、Act63の処理に戻る。
レジスタQの値が“2”の場合には、m番目の動線情報の動線に類似する動線が1つ存在する。同様に、レジスタQの値が“3”の場合には、m番目の動線情報の動線に類似する動線が2つ存在する。そこでプロセッサ21は、レジスタQの値が“2”以上の場合(Act77、YES)、レジスタPの数から、レジスタQの数よりも“1”だけ小さい数を減算した数を、新たにレジスタPに格納する(Act78)。その後、プロセッサ21は、Act63の処理に戻る。
一方、プロセッサ21は、m番目の動線情報が判定対象でない場合には(Act66、NO)、Act67以降の処理を実行することなく、Act63の処理に戻る。
したがってプロセッサ21は、カウンタmを“1”ずつカウントアップする毎に、Act64〜Act78の処理を繰り返し実行する。すなわちプロセッサ21は、カゴ動線ファイル51から動線情報を順次抽出して、Act66〜Act78の処理を実行する。そしてプロセッサ21は、カゴ動線ファイル51からm番目の動線情報を抽出できなくなると、第1の実施形態で説明した図10のAct50の処理に進む。以後、プロセッサ21は、Act50乃至Act54の処理を実行して、第5の信号に応じた処理を終了する。
このように、カゴBの動線を利用した第2の実施形態においても、第1の実施形態と同様の効果を奏することができる。
[第3の実施形態]
次に、第3の実施形態について説明する。
第1の実施形態では、カゴBに無線タグTを取り付け、この無線タグTから発信されるカゴIDを、売場PL1内に配置したアンテナA2を介して第2の無線タグリーダ12bで読み取るようにした。第3の実施形態では、カゴBに、図13に示す回路構成の無線機60を取り付ける。
すなわち無線機60は、IDメモリ61と、ID発信機62と、ID受信機63と、送信機64と、これらを制御するコントローラ65とを含む。IDメモリ61は、当該無線機60が取り付けられたカゴBのカゴID(以下、自カゴIDと称する)を記憶する。ID発信機62は、Bluetooth(登録商標)等の近距離無線通信規格を利用して、自カゴIDを周期的に発信する。ID受信機63は、Bluetooth(登録商標)等の近距離無線通信規格を利用して他の無線機60から発信されるカゴID(以下、他カゴIDと称する)を受信する。送信機64は、Wi−Fi(登録商標)等の無線通信規格を利用して、コントローラ65で作成されたデータを送信する。
コントローラ65は、図14の流れ図に示す手順の処理を実行するようにプログラム構成されている。すなわちコントローラ65は、ID受信機63で、他カゴIDを受信するのを待機する(Act81)。コントローラ65は、他カゴIDを受信したならば(Act81、YES)、当該他カゴIDと、IDメモリ61で記憶している自カゴIDとを組み合わせた組データを作成する(Act82)。なお、Act81において、2以上の他カゴIDを受信した場合には、コントローラ65は、その受信した全ての他カゴIDと自カゴIDとを組み合わせた組データを作成する。
コントローラ65は、組データを作成したならば、送信機64を制御してその組データを送信する(Act83)。その後コントローラ65は、Act81の処理に戻る。すなわちコントローラ65は、再び他カゴIDを受信するのを待機する。
したがって、このような無線機60を全てのカゴBに取り付けることによって、近距離無線通信規格の通信距離内に2以上のカゴBが存在する場合、各カゴBにそれぞれ取り付けた無線機60は、自カゴIDと他カゴIDとの組データを繰り返し送信機64から無線送信する。
そこで第3の実施形態では、店舗STの売場PL1に、無線機60から無線送信される組データを受信するための中継器を設ける。中継器は、受信した組データを客数処理装置20に転送する。
客数処理装置20のプロセッサ21は、図15の流れ図に示す手順の処理を実行するようにプログラム構成されている。すなわちプロセッサ21は、中継器を介して組データを受信するのを待機する(Act91)。組データを受信したならば(Act91、YES)、組合せデータファイル232を検索して、同一の組データを含むレコードが存在するか否かを確認する(Act92)。プロセッサ21は、該当するレコードが存在しない場合(Act92、NO)、その組データを含むレコードを作成し、組合せデータファイル232に追加する(Act93)。またプロセッサ21は、この追加したレコードの第1の値を“1”とする(Act94)。その後プロセッサ21は、Act91の処理に戻る。すなわちプロセッサ21は、再び組データを受信するのを待機する。
プロセッサ21は、該当するレコードが組合せデータファイル232に存在する場合には(Act92、YES)、そのレコードの第1の値を“1”だけ増加する(Act95)。その後プロセッサ21は、Act91の処理に戻る。すなわちプロセッサ21は、再び組データを受信するのを待機する。
このように、近距離無線通信規格の通信距離内に2以上のカゴBが存在する状況が継続した場合、各々のカゴBに取り付けられている無線機60からは繰り返し同一の組データが送信される。したがって、この組データに対応する第1の値は大きく増加する。
そこでプロセッサ21は、第1の値が所定数Kになったことを検知すると、その組データを構成する複数のカゴIDで識別される2以上のカゴBは、一人の客が持っているか、行動を共にする家族が持っていると判定する。
このように第3の実施形態によれば、売場PL1に多くのアンテナA2を配置しなくても、2個以上のカゴBを持って売場PL1を回る個人客または複数名で来店した客がそれぞれカゴBを持って一緒に売場PL1を回るグループ客を検出することができる。
以下、実施形態の変形例について説明する。
前記第1又は第2の実施形態では、客とともに移動する発信機として無線タグをカゴBに取り付けた。この点に関しては、ビーコン信号の発信機をカゴBに取り付けてもよい。
前記第1又は第2の実施形態では、図10のAct49又は図12のAct78において説明した手順で会計前の客数を算出した。会計前の客数を算出する手順はこれに限定されるものではない。例えば、ステータスが“1”に設定されているカゴIDのなかから、組合せデータファイル232に組データとして記憶されているカゴIDを除き、残ったカゴIDの数をXとする。また、第1の値が所定の回数K以上であり、尚且つ、第2の値が所定の回数L未満である組データの数をYとする。そしてこのカゴIDの数Xと組データの数Yとを加算した数(X+Y)を会計前の客数としてもよい。
前記第3の実施形態では、無線機60を図13に示す構成のものとした。無線機60は、図13に示すものに限定されるものではない。例えばIDの発信及び受信と組データの送信とを1つの送受信機が行ってもよい。この場合、IDを発信する際には出力を小さくし、組データを発信する際には出力を大きくする。そうすることにより、無線機60は、近くにある他の無線機とのIDの組データを生成し、その組データを店舗内の中継器まで送信することができる。
前記第1乃至第3実施形態では、会計を行う客数を類推する場合を例示した。例えば遊園地では、個人客であるかグループ客であるかを確認し、グループ客の場合はその人数も確認して、アトラクションに並ぶ列を仕分けることで、混雑の緩和を図っている。このような場面にも、各実施形態で開示した技術は適用可能である。例えば遊園地への入場チケットに無線タグを付す。そして、当該無線タグから発信されるID信号をセンシングすることで、グループ客であるか否か、また何人組のグループなのかということを類推することができる。あるいは、客が携帯するスマートフォンから発せられるBluetooth信号又はWi−Fi信号をセンシングすることで、同様の類推を行うこともできる。
なお、客数処理システム100における客数処理装置20の譲渡は一般に、各実施形態で説明したプログラムがメインメモリ22または補助記憶デバイス23に記憶された状態にて行われる。しかしこれに限らず、同プログラムがメインメモリ22または補助記憶デバイス23に記憶されていない状態で譲渡されてもよい。そしてこの場合は、客数処理装置20が備える書き込み可能な記憶デバイスに、この客数処理装置20とは個別に譲渡された同プログラムがユーザなどの操作に応じて書き込まれることとなる。同プログラム等の譲渡は、リムーバブルな記録媒体に記録して、あるいはネットワークを介した通信により行うことができる。記録媒体は、CD−ROM,メモリカード等のようにプログラムを記憶でき、かつ装置が読み取り可能であれば、その形態は問わない。
この他、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。