以下、図面を参照して本発明の実施形態について詳しく説明する。
<第1の実施形態>
(1.商品販売装置の外観および内部構成)
図1は、本発明の第1の実施形態に係る商品販売装置の外観および内部構成の概略を示した図である。図1に示すように、商品販売装置1は、例えば、たばこなど小物商品の自動販売装置であり、その筐体の前面には、サンプル表示部20、商品ボタン12、入金口30、取出口40などが設けられ、また、その筐体の内部には、情報処理装置10、カメラ11、入金センサ13、取出口センサ14、距離センサ15、人感センサ16、タグリーダ17などが設けられている。
図1において、サンプル表示部20は、商品販売装置1の筐体の前面部に設けられ、商品販売装置1が販売中の商品の写真、絵、愛称などを表示した銘板などによって構成される。あるいは、サンプル表示部20の部分に、商品販売装置1の筐体内部に外側から透視可能なボックスが設けられ、そのボックス内に商品を識別可能なサンプル、模型、包装空箱、空瓶などが配置されていてもよい。以下、サンプル表示部20に配置される銘板やサンプルなどを総称して表示サンプルという。
商品ボタン12は、サンプル表示部20と対にして設けられており、顧客は、商品ボタン12を押すことによって、その商品ボタン12の対となっているサンプル表示部20に表示された商品の購買を指示する。商品販売装置1は、通常、複数の商品(本明細書では、同じ名称の商品でも銘柄や型式が異なる商品は異なる商品とみなす)を販売する必要があるため、このようなサンプル表示部20と商品ボタン12の対は、商品販売装置1に複数対設けられている。従って、商品ボタン12は、顧客が購買する商品の選択を検知する商品選択センサとして機能し、それが顧客により押されたときには、その押された検知信号を情報処理装置10へ入力する。
なお、図1の例では、商品販売装置1の筐体の前面上に、サンプル表示部20と商品ボタン12との対が上下方向に4段、各段それぞれに4対ずつ配列されている。すなわち、サンプル表示部20と商品ボタン12との対が、商品販売装置1の筐体の前面上に縦4段×横4列のマトリックス状に配列されている。
顧客は、商品販売装置1により販売されている商品を購入するとき、商品販売装置1の前に立って、サンプル表示部20を見て、購入商品を探し、その購入商品の対価に相当する貨幣を入金口30から入れ、購入商品の商品ボタン12を押す。そうすると、商品ボタン12により選択された商品が取出口40へ出てくるので、顧客はその商品を入手することができる。
カメラ11は、商品販売装置1の筐体内部の、例えば、サンプル表示部20がマトリックス状に配列された部分の中央あたりに設けられ、顧客の顔が含まれるように、顧客が商品を購入する様子を撮影する。なお、カメラ11は、少なくとも1つあればよいが、図1の例のように、複数のカメラ11(中央のカメラ11a、左上のカメラ11b、および、左下のカメラ11c)が設けられていてもよい。このとき、カメラ11は、顧客の顔が撮影可能であれば、どこに配置してもよい。
入金センサ13は、所定の金額の貨幣が入金口30から入金されたことを検出し、取出口センサ14は、取出口40から商品が取り出されたことを検出する。また、距離センサ15は、商品販売装置1から顧客までの距離を計測し、人感センサ16は、商品販売装置1の周りに顧客などがいるか否かを検知する。なお、後記するように、距離センサ15および人感センサ16は、設けなくてもよい場合もある。
以上のような商品販売装置1において、情報処理装置10は、カメラ11を介して顧客の顔を含む映像を取得し、その映像に含まれる顧客の顔の方向や瞳の位置から顧客の視線を検出し、その視線に基づき、顧客の視線が商品販売装置1の筐体前面の平面上で交わる位置(以下、視線位置という)を検出する。
本実施形態においては、それぞれのサンプル表示部20に配置する商品の銘板やサンプル(模型、包装空箱、空瓶などを含む)、つまり、表示サンプルには、商品を識別するための商品IDを記憶したRFID(Radio Frequency Identification)タグが貼付されている。そして、それぞれのサンプル表示部20に設けられた表示サンプルを収容する収容部には、タグリーダ17に接続されたアンテナ(図示省略)が1つの収容部ごとに1つずつ設けられている。
このとき、タグリーダ17は、そのアンテナを介して、サンプル表示部20の収容部に配置された商品の銘板やサンプルに貼付されたRFIDタグとの間で、微弱電波により、数cmオーダーの近接距離の無線通信を行い、RFIDタグから商品IDを読み出す。そして、タグリーダ17は、その読み出した商品IDと、その商品IDを受信したアンテナを識別するデータ(つまり、サンプル表示部20の配置位置を識別するデータで、後記するメッシュIDに相当する)と、を情報処理装置10へ入力する。
次に、図1および図2を参照して、商品販売装置1の筐体の前面上に仮想的に設けられるメッシュ19について説明する。ここで、図2は、メッシュの概念およびその位置データの定義を説明するための模式図である。
メッシュ19は、1つずつのサンプル表示部20に対応させて、そのサンプル表示部20を1つ含むように設けられた領域である。すなわち、メッシュ19は、サンプル表示部20、つまり、商品を配置する領域を定める領域ということができる。図1にはメッシュ19は、1つしか示されていないが、図1に示すようにサンプル表示部20が4×4のマトリックス状に設けられた商品販売装置1の場合には、メッシュ19も、図2に示すように4×4のマトリックス状に設けられる。
メッシュ19は、顧客がこれらのメッシュ19のうちいずれを見ているか、つまり、顧客の視線がいずれの商品に注がれているかを判定するための領域を定義するためのものである。従って、サンプル表示部20が設けられた領域と同じ領域であってもよく、また、図1のようにサンプル表示部20を含み、さらに、その周辺近傍領域や商品ボタン12が設けられた領域をも含めた領域であってもよい。そのときメッシュとメッシュの間は、互いに接していてもよく、互いに離れていて(スペースがあって)もよい。
メッシュ19の形状は、長方形であるとし、そのメッシュ19の位置データは、長方形の左辺位置、右辺位置、下辺位置および上辺位置の各データによって定義する。ここでは、商品販売装置1の筐体の前面上のある位置に基準点を設け、水平方向をx軸、垂直方向をy軸とし、メッシュの左辺位置および右辺位置を、そのx座標値で表し、下辺位置および上辺位置を、そのy座標値で表す。
例えば、図2の場合、左端最上部のメッシュ19の位置は、左辺位置が「10cm」、右辺位置が「15cm」、下辺位置が「140cm」、上辺位置が「148cm」として定義される。このようなメッシュの位置データは、それぞれのメッシュ19ごとに定義される。従って、メッシュの位置データは、そのメッシュ19を識別するデータ(以下、メッシュIDという)に対応付けられたデータとして、後記するメッシュ定義データを構成する。
なお、図2におけるxy座標系の基準点は、商品販売装置1の筐体の前面を含む平面上であれば、どこに設定してもよい。図2の例では、基準点は、商品販売装置1の筐体の前面の左下端点に設けられている。なお、なお、メッシュ19の位置がこの基準点を基準にして表されるので、その基準点は、通常、商品販売装置1の機種ごとに定められる。
(2.商品販売管理システムの機能ブロックの構成)
図3は、本発明の第1の実施形態に係る商品販売管理システムの機能ブロックの構成の例を示した図である。図3に示すように、商品販売管理システム100は、販売管理センタ装置5にネットワーク4を介して1つ以上の商品販売装置1が接続されて構成される。図3では、商品販売装置1は1つしか示されていないが、多くの場合は、複数の商品販売装置1がネットワーク4を介して1つの販売管理センタ装置5に接続される。
ここで、ネットワーク4は、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)、公衆交換電話網、携帯電話回線網など、または、それらの組み合わせのいずれであってもよい。
図3に示すように商品販売装置1に収納されている情報処理装置10には、カメラ11が接続されるほか、商品ボタン12、入金センサ13、取出口センサ14、距離センサ15、人感センサ16、タグリーダ17などが接続される。そして、情報処理装置10は、映像取得部21、視線判定部22、センサデータ取得部23、人流動線検出部24、購買動作判定部25、商品ID取得部26、データ送受信部27などの処理機能ブロックと、映像データ記憶部31、視線データ記憶部32、顧客購買データ記憶部33、商品配置データ記憶部34などの記憶機能ブロックと、を含んで構成される。なお、図3では、カメラ11や商品ボタン12は、代表して1つだけを示している。
ここで、情報処理装置10は、図示しないCPUと記憶装置とを少なくとも有する、いわゆる、コンピュータによって構成される。その場合、情報処理装置10における各処理機能ブロックの機能は、前記CPUが前記記憶装置に格納されている所定のプログラムを実行することにより実現される。また、情報処理装置10における各記憶機能ブロックは、前記記憶装置上に構成される。このとき、前記記憶装置は、半導体集積回路によるRAM(Random Access Memory)、フラッシュメモリ、あるいは、磁気記憶装置であるハードディスク装置などからなる。
また、情報処理装置10は、通信装置18を介してネットワーク4に接続される。このとき、通信装置18は、ネットワーク4に有線で接続されるネットワークインタフェースカード、あるいは、ネットワーク4に無線で接続されるIEEE802.11規格の無線LANの端末側通信装置、携帯電話機などによって構成される。なお、通信装置18がネットワーク4に無線で接続される場合には、ネットワーク4は、IEEE802.11規格の無線LANのアクセスポイント、携帯電話通信網の基地局などを含む。
さらに、図3に示すように、販売管理センタ装置5は、汎用のコンピュータである情報処理装置50に表示端末51が接続されて構成される。その場合、情報処理装置50は、データ収集部61、注視対象検出処理部62、商品別注視・販売データ集計部63、集計データ出力部64などの処理機能ブロックと、視線データ記憶部72、顧客購買データ記憶部73、商品配置データ記憶部74、注視履歴データ記憶部75、商品別注視・販売集計データ記憶部76、メッシュ定義データ記憶部77などの記憶機能ブロックと、を含んで構成される。
ここで、情報処理装置50は、図示しないCPUと記憶装置とを少なくとも備え、情報処理装置50における各処理機能ブロックの機能は、前記CPUが前記記憶装置に格納されている所定のプログラムを実行することにより実現される。また、情報処理装置50における各記憶機能ブロックは、前記記憶装置上に構成される。このとき、前記記憶装置は、半導体集積回路によるRAM、フラッシュメモリ、あるいは、磁気記憶装置であるハードディスク装置などからなる。
また、情報処理装置50は、通信装置52を介してネットワーク4に接続される。このとき、通信装置18は、通常、ネットワーク4に有線で接続される。従って、通信装置18は、ネットワークインタフェースカード、ルータなどによって構成される。
なお、図3の構成において、情報処理装置10における処理機能ブロックの一部または全部を、コンピュータではなく、半導体の集積回路などを用いた専用の処理回路によって構成してもよい。また、同様に、情報処理装置50における処理機能ブロックの一部または全部を、コンピュータではなく、半導体の集積回路などを用いた専用の処理回路によって構成してもよい。
(3.商品販売装置の機能の詳細)
商品販売装置1の機能は、その内部に含まれる情報処理装置10によって実現される。以下、情報処理装置10を構成する機能ブロックの機能について、図3および図4を参照して説明する。ここで、図4は、情報処理装置10の各記憶機能ブロックに蓄積されるデータのレコード構成の例を示した図である。
映像取得部21は、カメラ11から入力される動画像の映像データを1フレームごとに取得し、その1フレームごとの映像データに、時間情報などに基づく固有のフレームIDとカメラ番号などを付し(図4(a)参照)、映像データ記憶部31に蓄積する。なお、映像取得部21は、所定フレーム数の映像データバッファを有し、そのフレーム数分の映像データを一時記憶するとともに、その一時記憶している映像データを、適宜、視線判定部22などへ提供する。
視線判定部22は、その下位の機能ブロックとして移動体検知部221、顔検知部222、顔特徴量計算部223、視線検出部224、視線位置検出部225などを含んで構成され、映像取得部21によって取得される顧客の顔の映像データに基づき、顧客の視線を検出し、その視線が商品販売装置1の筐体の前面上で交わる視線位置を検出する。
視線判定部22において、移動体検知部221は、映像取得部21から提供される所定フレーム数の映像データを解析することにより、移動している物体を検知し、顧客が撮影対象領域に入ったことなどを検知する。また、顔検知部222は、移動体検知部221によって検知された移動体部分に顔、つまり、目、口、鼻などを有する円形状のものがあるか否かを検知する。
顔特徴量計算部223は、顔検知部222によって検知された顔の映像から、公知の方法を用いて、所定の顔の特徴量を求める。なお、ここで求めた顔の特徴量は、商品販売装置1を複数回にわたって利用する顧客の同一性を識別するのに利用することができる。ただし、その同一性の識別の程度は、情報セキュリティの分野で個人認証に用いられているような厳密なものである必要はない。
視線検出部224は、顔検知部222によって検知された顔の映像から、その顔の中心位置、顔が向いている方向、目の中における瞳の位置などを解析し、その解析結果に基づき、顧客の顔の視線方向を計算する。なお、具体的な視線方向の計算は、例えば、特許文献2に記載された公知の方法に従って行うものとし、その計算方法の詳細についての説明を省略する。
視線位置検出部225は、視線検出部224で求められた視線方向に基づき、その視線が指し示す商品販売装置1の筐体の前面上の視線位置を検出し、その視線位置を含むデータを視線データとして、視線データ記憶部32に蓄積する。なお、このような視線データは、1フレームごとの映像データに対応させて作成、蓄積される。
ここで、視線データのレコードは、図4(b)に示すように、商品販売装置を個々に識別する販売装置ID、顧客を識別する顧客識別キー、当該視線データのレコードを識別する視線データ識別キー、当該視線データが取得された映像データのフレームID、そのフレームIDの映像に含まれる人の顔の顔特徴量、当該視線データが検出された視線検出日、視線検出時刻、視線位置(x)、視線位置(y)などを含んで構成される。このとき、視線位置(x)および視線位置(y)は、図2に示したメッシュ19に位置を定義したときの座標系と同じ座標系の座標値で表される。
なお、顧客識別キーは、特定の顧客をユニークに識別するものではなく、ある顧客の購買動作の開始から終了までの視線データのレコードの同一性を識別するものであり、同じ顧客識別キーが付された視線データは、その顧客についての注視データの時系列のデータを構成する。また、当該商品販売装置1を複数回、または、繰り返し利用する顧客の同一性を識別する場合には、顔特徴量によって識別する。
再び、図3において、センサデータ取得部23は、商品ボタン12、入金センサ13、取出口センサ14、距離センサ15、人感センサ16などのセンサ類から入力されるデータを取得する。また、人流動線検出部24は、人感センサ16や距離センサ15などにより商品販売装置1の前面の所定の範囲内に顧客が存在することを検出し、商品販売装置1の前面近傍における顧客の出入りを監視する。
ここで、映像取得部21および移動体検知部221における処理は、人流動線検出部24が商品販売装置1の前に顧客の存在を検出した後に、開始されるようにしておく。その場合には、顧客が撮影されないような無駄な映像データを映像データ記憶部31に蓄積することがなくなり、また、情報処理装置10の処理負荷が軽減される。
また、人流動線検出部24は、人感センサ16から得られる情報でなく、映像取得部21で取得した映像に基づき、商品販売装置1の前面近傍における顧客の出入り監視するようにしてもよい。この場合には、情報処理装置10の処理負荷は大きくなるが、人感センサ16を設けなくても済むようになる。
また、人流動線検出部24は、センサデータ取得部23を介しての人感センサ16からの情報と、移動体検知部221からの情報とを併せて、顧客の出入りを監視するようにしてもよい。この場合には、より信頼性の高い顧客出入り監視が可能になる。
次に、購買動作判定部25は、顧客の購買動作の開始と終了とを判定する。ここでは、映像取得部21で取得された映像中に所定の大きさより大きい顔が検出されるようになったときを、購買動作の開始と判定し、前記映像中から所定の大きさより大きい顔が検出されなくなったときを、購買動作の終了と判定する。
なお、顧客の購買動作の開始と終了は、顔の検出に限らず、他の情報によって定義してもよい。例えば、人流動線検出部24の出力に基づき、商品販売装置1の前面近傍に顧客が検出されたときを購買動作の開始と判定し、商品販売装置1の前面近傍から顧客が検出されなくなったときを購買動作の終了と判定してもよい。また、商品ボタン12が押されたとき、あるいは、取出口センサ14が取出口40の窓の開閉を検知したときを、購買動作の終了と判定してもよい。
購買動作判定部25は、以上のような購買動作が終了したときには、センサデータ取得部23を介して、顧客によって押された商品ボタン12の識別番号を取得し、その識別番号に基づき、その商品ボタン12と対のサンプル表示部20が含まれるメッシュを識別するメッシュIDを取得する。そして、購買動作判定部25は、そのメッシュID(以下、販売メッシュIDという)を含んだ顧客購買データを作成し、作成した顧客購買データを顧客購買データ記憶部33に蓄積する。
ここで、顧客購買データのレコードは、図4(c)に示すように、販売装置ID、顧客識別キー、購買開始時刻、購買終了時刻、開始時視線データ識別キー、終了時視線データ識別キー、販売メッシュIDなどを含んで構成される。この顧客購買データは、顧客が商品販売装置1を利用して商品を購買するたびに作成され、顧客購買データ記憶部33に蓄積される。
次に、商品ID取得部26は、商品の表示サンプルがサンプル表示部20の収容部に配置されたとき、タグリーダ17を介して、その表示サンプルに貼付されているRFIDタグに記憶されている商品ID、および、その表示サンプルが配置されたメッシュの位置を識別するメッシュIDを取得し、その商品IDとそのメッシュIDとを対応付けたデータを商品配置データとして商品配置データ記憶部34に記憶する。
ここで、商品配置データのレコードは、図4(d)に示すように、販売装置ID、メッシュID、商品IDなどを含んで構成される。図1に示した情報処理装置10の場合、メッシュが16個あるので、商品配置データ記憶部34には、そのメッシュの数と同じ16のレコードが記憶される。
以上のように、情報処理装置10は、タグリーダ17を介して、それぞれのサンプル表示部20に配置された表示サンプルが表す商品の商品ID、および、その配置位置を表すメッシュIDを取得することができるので、商品販売装置1の管理者は、手動でデータ入力をすることなく、商品配置データ記憶部34に記憶される商品配置データを変更することができる。
次に、データ送受信部27は、視線データ記憶部32に蓄積された視線データ、および、顧客購買データ記憶部33に蓄積された顧客購買データを所定の期間ごとに(例えば、1日に1回)、または、販売管理センタ装置5から送信の指示を受信したときに、まとめて、通信装置18およびネットワーク4を介して販売管理センタ装置5へ送信する。その場合、データ送受信部27は、視線データや顧客購買データを所定のデータ圧縮方式(例えば、Zipなど)で圧縮し、その圧縮したデータ送信してもよい。
また、データ送受信部27は、商品配置データ記憶部34に記憶されている商品配置データについては、その商品配置データが新たに作成されたとき、または、変更されたときに販売管理センタ装置5へ送信する。
続いて、図5〜図8を参照して、以上に説明した商品販売装置1の機能ブロックについて、その主要な機能を実現するためのCPUの処理プログラムの処理フローの例について説明する。
図5は、購買動作判定部25における顧客購買動作判定処理の処理フロー例を示した図である。この顧客購買動作判定処理は、所定の時間ごとに、例えば、映像取得部21により、カメラ11から1フレームの映像が取得されるたびに実行される。
なお、図5において、販売中フラグは、商品販売装置1が商品を販売中、つまり、顧客が商品を購買中であることを示すフラグである。すなわち、販売中フラグは、初期状態でクリアされており、顧客が商品販売装置1の前に立って、その購買動作が開始したときセットされ、購買動作が終了したときクリアされる。ここで、販売中フラグは、記憶装置上に構成したテーブルまたはテキストファイルなどにより管理するものとする。
図5に示すように、情報処理装置10の図示しないCPU(以下、単にCPUという)は、映像取得部21を介して、カメラ11から1フレームの映像データを取得する(ステップS01)。次に、CPUは、移動体検知部221の移動体検知処理で検知した移動体領域を除外して背景領域を検出する(ステップS02)。次に、CPUは、販売中フラグがオンか否かを判定する(ステップS03)。
その判定の結果、販売中フラグがオンでなかったときには(ステップS03でNo)、CPUは、ステップS01で取得した映像データでその背景領域の面積が所定の閾値Aより小さいか否かを判定する(ステップS04)。そして、背景領域の面積が所定の閾値Aより小さいときには(ステップS04でYes)、CPUは、顔検知部222の顔検知処理の結果に基づき、前記取得した映像に顔を検知したか否かを判定する(ステップS05)。
次に、ステップS05の判定において、顔を検知したときには(ステップS05でYes)、CPUは、顧客が購買動作を開始したものと判断し、販売中フラグをセットして(ステップS06)、当該1フレームの映像データについての顧客購買動作判定処理を終了する。
また、ステップS04の判定で、背景領域の面積が所定の閾値Aより小さくなかったとき(ステップS04でNo)、または、ステップS05の判定で、顔を検知しなかったときには(ステップS05でNo)、CPUは、顧客が購買動作を未だ開始していないと判断して、当該1フレームの映像データについての顧客購買動作判定処理を終了する。
また、ステップS03の判定で、販売中フラグがオンであったときには(ステップS03でYes)、CPUは、前記顔検知処理の結果に基づき、ステップS01で取得した映像に顔を検知したか否かを判定する(ステップS07)。その判定の結果、顔を検出しなかったときには(ステップS07でNo)、CPUは、前記取得した映像データでその背景領域の面積が所定の閾値Bより小さいか否かを判定する(ステップS08)。
次に、ステップS08の判定において、背景領域の面積が所定の閾値Bより小さくなかったときには(ステップS08でNo)、CPUは、顧客が購買動作を終了したものと判断して、販売中フラグをクリアし(ステップS09)、顧客購買データを作成し、その作成した顧客購買データを顧客購買データ記憶部33に蓄積して(ステップS10)、当該1フレームの映像データについての顧客購買動作判定処理を終了する。
また、ステップS07の判定で、顔を検知したとき(ステップS07でYes)、または、ステップS08の判定で、背景領域の面積が所定の閾値Bより小さかったときには(ステップS08でYes)、CPUは、顧客が購買動作を未だ終了していないと判断して、当該1フレームの映像データについての顧客の購買動作判定処理を終了する。
なお、以上の処理において、閾値Aは、閾値Bよりも小さく設定するものとする。そうしておけば、販売中フラグがいったんセットされると、顧客の動きによって背景領域の面積が多少変動しても、販売中フラグがすぐにクリアされるようなことはなくなる。
図6は、視線検出部224における視線検出処理の処理フローの例を示した図である。図7に示すように、CPUは、顔検知処理により、まず、映像データの中に顔を検知する(ステップS11)。次に、CPUは、その顔の中で瞳(黒目)を探し、瞳を検出したときには(ステップS12でYes)、さらに、目領域を探す。そして、目領域を検出したときには(ステップS13でYes)、CPUは、さらに、両目を探す。
次に、CPUは、両目を検出したときには(ステップS14でYes)、両目についてそれぞれの目の視線方向を計算する(ステップS15)。このとき、その視線方向は、前記したように、例えば、特許文献2に記載されている方法に基づき計算する。両目の場合には、視線方向が2つ得られるので、CPUは、その両目の視線方向を加算して(ステップS16)、1つの視線方向にまとめる。一方、両目を検出しなかったときには(ステップS14でNo)、検出した片目の視線方向を計算する(ステップS17)。
なお、視線方向は、例えば、瞳の位置を始点とするベクトルとして表されるので、両目の場合、そのベクトル加算をすればよい。また、視線の始点の位置は、両目の平均の位置(中間の位置)に定める。その場合、ベクトル加算や始点の平均位置の計算に際しては、顔の向きや視線の方向に応じて、視線ベクトルの大きさなどに、適宜、加重を付してもよい。
以上のようにして、視線方向が得られると、CPUは、注視対象検出処理として、その視線方向の先にある視線位置を検出する(ステップS18)。ここで、視線位置とは、商品販売装置1の筐体の前面上で当該視線が指している位置をいう。なお、視線位置の検出処理については、次に、図7および図8を用いて詳しく説明する。
また、ステップS12で瞳を検出しなかったとき(ステップS12でNo)、または、ステップS13で目領域を検出しなかったときには(ステップS13でNo)、CPUは、そのまま何もせずに処理を終了する。
なお、以上の視線検出処理は、少なくとも顔が検知された映像について、1フレームごとに行われる。
続いて、図7および図8を参照して、視線位置検出処理の詳細について説明する。ここで、図7は、視線位置検出部225における視線位置を求める方法を説明するための図、図8は、視線位置検出部225における視線位置検出処理の処理フローの例を示した図である。
図7には、顧客が商品販売装置1の前面側に立って、その筐体の前面を見ている様子がその上面図として示されている。ここで、商品販売装置1の筐体内部には、カメラ11がその筐体の前面に垂直な方向を向いて設けられている。このとき、カメラ11の方向(カメラ視線)をz軸とし、商品販売装置1の筐体の前面上でz軸に交わる水平方向の直線をx軸とし、垂直方向の直線をy軸とする。このとき、z軸は、カメラ視線となるので、撮影された映像の中心になる。また、カメラ11が撮影可能な角度の範囲を画角と呼び、これをθで表す。
そこで、図8に示すように、情報処理装置10のCPUは、距離センサ15などを介して商品販売装置1の筐体の前面から顧客までの距離(d)を取得する(ステップS21)。次に、CPUは、カメラ11から得られる映像に基づき、x軸方向およびy軸方向それぞれについて、カメラ映像中心と顔中心位置との差分量(δx,δy)を計算する(ステップS22)。
なお、ここでいう顔中心とは、顧客の視線の始点をいい、両目の場合には、両目(瞳)の位置の平均位置(適宜、加重平均でもよい)であり、片目の場合には、その目(瞳)の位置をいう。また、その差分量(δx,δy)の計算に際しては、画角(θ)および顧客までの距離(d)を考慮するものとする。なお、商品販売装置1が一般的な自動販売機である場合には、顧客までの距離(d)は、顧客によらず概ね一定なので、距離センサ15から得られる値ではなく、所定の定数としてもよい。
次に、CPUは、視線検出処理(図6参照)で計算された視線方向、ステップS21で取得された顧客までの距離(d)、ステップS22で計算された差分量(δx,δy)に基づき、視線位置を計算する(ステップS23)。このとき、視線の始点位置は、座標点(δx,δy,d)と表すことができるので、求める視線位置は、視線方向と同じ方向の直線で、座標点(δx,δy,d)を通る直線がxy平面(z=0の平面)と交わる点のそのxy平面上での座標値(sx,sy)として求めることができる。
次に、CPUは、視線位置の座標値(Sx,Sy)を含んで構成される視線データ(図4(b)参照)を作成し、作成した視線データを視線データ記憶部32に蓄積する(ステップS24)。ここで、視線位置の座標値(Sx,Sy)は、ステップS23で求めた座標値(sx,sy)をメッシュ19の位置を表す座標系(図2参照)で表現し直したもの、つまり、座標変換したものである。なお、図4(b)の視線データでは、座標値Sxは視線位置(x)、座標値Syは視線位置(y)と表記されている。
(4.販売管理センタ装置の機能の詳細)
販売管理センタ装置5の機能は、その内部に含まれる情報処理装置50によって実現される。以下、情報処理装置50を構成する機能ブロックの機能について、図3および図9を参照して説明する。ここで、図9は、情報処理装置50の各記憶機能ブロックに蓄積されるデータのレコード構成の例を示した図である。
図3において、データ収集部61は、商品販売装置1の視線データ記憶部32、顧客購買データ記憶部33および商品配置データ記憶部34にそれぞれ蓄積された視線データ、顧客購買データおよび商品配置データを収集して、収集したデータを自らの記憶装置に構成された視線データ記憶部72、顧客購買データ記憶部73および商品配置データ記憶部74に蓄積する。
その場合、データ収集部61は、視線データおよび顧客購買データについては、所定の期間ごと、例えば、1日ごとに、商品販売装置1に対してポーリングすることにより収集する。また、商品配置データについては、商品販売装置1でそのデータの更新がされたときに、商品販売装置1から送信されるので、データ収集部61は、その送信されてくる商品配置データを受信すればよい。
なお、図9(a)、(b)に示すように、視線データ記憶部72および顧客購買データ記憶部73にそれぞれに蓄積される視線データおよび顧客購買データのレコード構成は、商品販売装置1の視線データ記憶部32および顧客購買データ記憶部33にそれぞれに蓄積された視線データおよび顧客購買データの構成と同じである。従って、データ収集部61は、商品販売装置1から収集した視線データおよび顧客購買データを、それぞれ、そのまま視線データ記憶部72および顧客購買データ記憶部73に蓄積すればよい。
また、図9(c)に示すように、商品配置データ記憶部74に蓄積される商品配置データは、商品販売装置1の商品配置データ記憶部34に蓄積されるデータに適用開始年月日および適用終了年月日が付加された構成となっている。従って、データ収集部61は、商品販売装置1から送信されてくる商品配置データに適用開始年月日および適用終了年月日を付加して商品配置データ記憶部74に蓄積する。このとき、適用開始年月日は、その商品配置データの受信日とし、また、適用終了年月日としては、あらかじめ期限日などが定められている場合には、それを用いてもよく、定められていない場合には、例えば、10年先の日付を設定する。この場合は、適用終了年月日はないものもみなされる。
なお、視線データ記憶部72、顧客購買データ記憶部73および商品配置データ記憶部74においては、複数の商品販売装置1からのデータが混在して蓄積されることになるが、各データには販売装置IDが付されているので、そのデータがいずれの商品販売装置1から収集されたものであるかの識別は容易である。
次に、図3において、注視対象検出処理部62は、適宜、商品販売装置1の販売装置IDと処理対象期間とを指定し、その指定した商品販売装置1で、さらに、指定した処理対象期間に蓄積された視線データを抽出し、その抽出した視線データについて顧客の視線位置の動きを解析することにより、顧客が商品の購買開始から購買終了に到るまでにどのメッシュを注視したかという注視履歴データをバッチ処理により作成する。そして、その作成した注視履歴データを注視履歴データ記憶部75に蓄積する。なお、注視とは、顧客の視線位置が、商品販売装置1の筐体の前面上のある領域(ここでは、いずれかのメッシュ19)に所定の時間以上、例えば、0.3秒以上留まることをいう。
注視履歴データのレコードは、図9(d)に示すように、商品販売装置1を識別する販売装置ID、顧客を識別する顧客識別キー、当該注視履歴データのレコードを識別する注視履歴識別キー、顧客がある商品(つまり、あるメッシュ)を注視したときの映像データのフレームID、当該注視履歴データが表す注視がされた注視年月日、その注視の注視時間、その注視の対象となったメッシュのメッシュID(注視メッシュID)などにより構成される。
注視対象検出処理部62は、この注視履歴データを作成し、蓄積するために、以下の処理を実行する。
注視対象検出処理部62は、まず、視線データ記憶部72から、販売装置IDと対象期間の年月日をキーとしてそのキーに該当する視線データを抽出する。そして、その抽出した視線データを顧客識別キーによって区分し、その区分した視線データを記憶装置に一時記憶する。この区分された視線データは、ある1人の顧客の購買開始から購買終了に到るまでの時系列の視線データに相当する。なお、視線データの時系列ソーティングは、視線データに含まれているフレームIDまたは視線検出時刻を用いることによって行うことができる。
次に、注視対象検出処理部62は、このある1人の顧客の時系列の視線データに対し、注視対象検出処理(次に、図10を用いて説明)を適用し、その顧客が購買開始から購買終了に到るまでに注視したメッシュ19のメッシュIDとその注視時間とを求め、そのメッシュ19のメッシュIDとに基づき、その顧客についての注視履歴データを作成し、作成した注視履歴データを注視履歴データ記憶部75に蓄積する。
次に、注視対象検出処理部62は、顧客識別キーによって区分された他のすべての顧客について同様の処理を行い、それぞれの顧客についての注視履歴データを作成し、作成した注視履歴データを注視履歴データ記憶部75に蓄積する。これで、販売装置IDと対象期間の年月日をキーとして抽出された視線データ、つまり、キーとした販売装置IDを有する商品販売装置1において取得された視線データについての注視履歴データの作成およびその蓄積が終了したことになる。
さらに、注視対象検出処理部62は、視線データ記憶部72から視線データを抽出するときの販売装置IDとして、販売管理センタ装置5にネットワーク4を介して接続された商品販売装置1が有する販売装置IDのいずれかを設定し、そのすべての商品販売装置1の販売装置IDについて、以上に説明した処理と同じ処理を繰り返し実行する。
以上の処理によって、販売管理センタ装置5にネットワーク4を介して接続されたすべての商品販売装置1によって、所定の対象期間に取得された全視線データを用いた注視履歴データの作成およびその蓄積が終了したことになる。
図10は、注視対象検出処理部62における注視対象検出処理の処理フローの例を示した図である。注視対象検出処理部62は、この注視対象検出処理を、一時記憶された顧客の時系列の視線データを1レコードずつ読み取りながら繰り返し実行する。なお、この視線データの1レコードは、カメラ11から得られる映像データの1フレームに対応している。そこで、注視対象検出処理部62は、顧客の注視を、顧客の視線位置が所定の時間以上、つまり、所定のフレーム数以上に渡って、特定のメッシュ19に連続して滞在したことを判定することによって検出する。
情報処理装置10のCPUは、まず、メッシュ定義データ記憶部77を参照して、当該視線データによって表される視線位置が含まれるメッシュのメッシュIDを取得する(ステップS31)。すなわち、顧客の視線位置がいずれのメッシュにあるかを判定する。
ここで、メッシュ定義データは、図9(f)に示すように、販売装置ID、メッシュID、メッシュ左辺位置、メッシュ右辺位置、メッシュ下辺位置、メッシュ上辺位置などのデータを含んで構成される。このとき、メッシュ左辺位置、メッシュ右辺位置、メッシュ下辺位置およびメッシュ上辺位置は、商品販売装置1におけるメッシュ19の配置位置を表すデータであり、その詳細については、図2を用いて説明した通りである。
本実施形態では、メッシュ定義データ記憶部77には、販売管理センタ装置5にネットワーク4を介して接続されたすべての商品販売装置1についてのメッシュ定義データが事前に設定され、格納される。そこで、ステップS31における処理では、CPUは、そのメッシュ定義データ記憶部77から、視線データに含まれる販売装置IDと同じ販売装置IDを有するメッシュ定義データを抽出する。こうして抽出されたメッシュ定義データは、当該販売装置IDを有する商品販売装置1に設けられたメッシュ19の配置位置を表すデータである。
そこで、CPUは、その抽出されたメッシュ定義データを参照して、当該視線データが表す視線位置(視線位置(x)、視線位置(y))が、いずれのメッシュ19の領域に含まれるかを判定し、その視線位置が含まれるメッシュ19のメッシュIDを取得する。なお、視線位置がいずれのメッシュ19にも含まれない場合には、例えば、「99999」など、実際上あり得ないメッシュIDを取得する(以下、実際に存在するメッシュ19のメッシュIDを「有意のメッシュID」という)。
続いて、CPUは、今回のメッシュIDが前回のメッシュIDと同じであるか否かを判定する(ステップS32)。ここで、今回のメッシュIDとは、そのとき実行中の処理により得られたメッシュIDをいい、前回のメッシュIDとは、今回の処理対象の視線データの1つ前の視線データについて行った処理により得られたメッシュIDをいう。
そこで、今回のメッシュIDが前回のメッシュIDと同じであった場合には(ステップS32でYes)、CPUは、視線位置がそのメッシュIDを有するメッシュ19に滞在する時間、つまり、注視時間をカウントアップして(ステップS39)、当該視線データに対する処理を終了する。また、今回のメッシュIDが前回のメッシュIDと同じでなかった場合には(ステップS32でNo)、CPUは、さらに、前回のメッシュIDが有意のメッシュIDであったか否かを判定する(ステップS33)。
そして、前回のメッシュIDが有意のメッシュIDであった場合には(ステップS33でYes)、視線位置は、前回まで含まれていたメッシュ19の外に移動したことになるので、CPUは、そのとき示されている注視時間が所定の閾値時間、例えば、0.3秒以上であるか否かを判定する(ステップS35)。
そこで、その注視時間が所定の閾値時間以上であった場合には(ステップS35でYes)、CPUは、前回のメッシュIDを注視メッシュIDとし(ステップS36)、その注視メッシュIDを含んだ注視履歴データを作成し、作成した注視履歴データを注視履歴データ記憶部75に蓄積(ステップS37)した後、注視時間をクリアして(ステップS38)、当該視線データに対する処理を終了する。また、注視時間が所定の閾値時間以上でなかった場合には(ステップS35でNo)、顧客がそのメッシュ19を注視したことにはならないので、CPUは、注視時間をクリアして(ステップS38)、当該視線データに対する処理を終了する。
一方、ステップS33で、前回のメッシュIDが有意のメッシュIDでなかった場合には(ステップS33でNo)、CPUは、さらに、今回のメッシュIDが有意のメッシュIDであるか否かを判定する(ステップS34)。その判定の結果、今回のメッシュIDが有意のメッシュIDであった場合には(ステップS34でYes)、注視時間をカウントアップして(ステップS39)、当該視線データに対する処理を終了する。また、今回のメッシュIDが有意のメッシュIDでなかった場合には(ステップS34でNo)、そのまま当該視線データに対する処理を終了する。
以上の処理により、CPUは、顧客が注視するメッシュ19のメッシュIDおよびその注視時間を得ることができ、さらに、ある1人の顧客が購買開始から購買終了までの間にメッシュ19を注視した注視履歴データを作成し、その作成した注視履歴データを注視履歴データ記憶部75に蓄積することができる。
なお、以上の処理においては、各フレームの映像から得られる視線位置が、一瞬、他の位置にぶれる場合がある。そのようなことが頻繁に生じると、顧客が注視するメッシュ19を定めることができなくなる。
それを防止するには、例えば、視線位置として移動平均の概念を利用するとよい。すなわち、視線データから得られる視線位置をそのまま使用せずに、当該視線データを含み、当該視線データに先行する数レコードの視線データから得られる視線位置について、その平均位置を計算し、その平均位置を当該視線データに対する視線位置として用いる。こうすることによって、視線位置が、一瞬、他の位置にぶれるようなことがあっても、顧客が注視するメッシュ19を適正に定めることができる。
なお、本実施形態では、メッシュ定義データは、販売管理センタ装置5にネットワーク4を介して接続されるすべての商品販売装置1について、それぞれ異なったデータを設定できるものとしているが、商品販売装置1の機種ごとに異なるように設定してもよい。その場合には、メッシュ定義データの第1フィールドは、販売装置IDに代えて、機種IDとなり、販売装置IDそれぞれについて機種IDを対応付けるテーブルが必要となる。
再び、図3を参照する。商品別注視・販売データ集計部63は、顧客購買データ記憶部73、商品配置データ記憶部74および注視履歴データ記憶部75にそれぞれ蓄積された顧客購買データ、商品配置データおよび注視履歴データに基づき、それぞれの商品販売装置1ごとに、その商品販売装置1に設けられたそれぞれのメッシュ19の1日分の注視時間の合計と、そのメッシュ19に対応するサンプル表示部20が表示する商品の1日分の販売個数を集計し、その集計したデータを含んだ商品別注視・販売集計データを作成し、その作成した商品別注視・販売集計データを商品別注視・販売集計データ記憶部76に蓄積する。
ここで、商品別注視・販売集計データは、図9(e)に示すように、販売装置ID、メッシュID、商品ID、注視合計時間、販売個数、販売日などのデータによって構成される。ここで、商品IDは、当該メッシュIDを有するメッシュ19に対応するサンプル表示部20が表示する商品の識別データであり、注視合計時間は、当該販売日に当該メッシュIDを有するメッシュ19が顧客によって注視された注視時間の合計であり、販売個数は、当該販売日に当該メッシュIDを有するメッシュ19に対応する商品ボタン12が押されることによって販売された商品の数である。
図11は、商品別注視・販売データ集計部63における商品別注視・販売データ集計処理の処理フローの例を示した図である。なお、この処理により、1レコードの商品別注視・販売集計データが作成される。
CPUは、まず、商品販売装置1の販売装置ID、その商品販売装置1に含まれるメッシュのメッシュID、年月日を指定する(ステップS41)。
次に、CPUは、ステップS41で指定された販売装置ID、メッシュ、年月日をキーとする検索により、注視履歴データ記憶部75から該当する注視履歴データを抽出し、抽出した注視履歴データに含まれる注視時間を集計し、1日分の注視合計時間を取得する(ステップS42)。
次に、CPUは、ステップS41で指定された販売装置ID、メッシュ、年月日をキーとする検索により、顧客購買データ記憶部73から該当する顧客購買データを抽出し、当該メッシュIDに対応する商品の販売個数を集計し、1日分のその商品の販売個数を取得する(ステップS43)。このとき、CPUは、商品配置データ記憶部74を参照して、当該メッシュIDに対応する商品の商品IDも併せて取得する。
次に、CPUは、ステップS42およびステップS43で取得された注視合計時間、注視時間および商品IDを含んだ商品別注視・販売集計データを作成し、作成した商品別注視・販売集計データを商品別注視・販売集計データ記憶部76に蓄積する(ステップS43)。
CPUは、ステップS41において販売管理センタ装置5にネットワーク4を介して接続されるすべての商品販売装置1の販売装置ID、および、その商品販売装置1に含まれるすべてのメッシュ19のメッシュIDをそれぞれ指定し、以上に説明した商品別注視・販売データ集計処理を繰り返し実行することにより、ある1日のすべての商品別注視・販売集計データを作成し、その作成した商品別注視・販売集計データを商品別注視・販売集計データ記憶部76に蓄積することができる。
以上のような処理を、商品別注視・販売データ集計部63が、例えば、毎日1回、販売日を前日に指定して実行するようにすれば、日ごとの商品別注視・販売集計データが商品別注視・販売集計データ記憶部76に、毎日、蓄積されていく。
再び、図3を参照する。集計データ出力部64は、表示端末51から入力される要求に応じて、商品別注視・販売集計データ記憶部76に蓄積されたデータをそのまま、または、さらに集計したデータを表示端末51に出力する。なお、さらに集計したデータの例としては、商品販売装置1の機種ごとにメッシュ19それぞれの注視合計時間の平均値や販売個数の平均値などがある。
以上、本実施形態によれば、商品販売装置1は、顧客の視線データを、単に取得、蓄積した後、販売管理センタ装置5からの指示のもとに、その蓄積した視線データをまとめて販売管理センタ装置5へ送信し、販売管理センタ装置5において、その視線データを解析し、顧客が注視するメッシュ19を検出するようにしている。
そのため、商品販売装置1は、自らのメッシュ19の配置位置データであるメッシュ定義データを保持する必要がない。このメッシュ定義データは、商品販売装置1の機種に依存するデータであるが、それを保持する必要がないので、商品販売装置1は、製造時や保守時などにおけるプログラムのインストールに際し、機種に依存するデータの設定が不要となる。従って、商品販売装置1の製造者、または、その保守管理者は、機種に依存しない商品販売装置1の1つのプログラムだけを準備しておけばよいので、そのインストールなどの手間を低減することができ、その結果、商品販売装置1の製造コストや保守コストを低減することができる。
<第2の実施形態>
図12は、本発明の第2の実施形態に係る商品販売管理システムの機能ブロックの構成の例を示した図である。商品販売管理システム100aは、販売管理センタ装置5aにネットワーク4を介して1つ以上の商品販売装置1aが接続されて構成される。ここで、第1の実施形態(図3参照)と同じ構成要素には、同じ符号を付している。
図12に示すように、商品販売装置1aおよび販売管理センタ装置5aの機能ブロックは、第1の実施形態の場合の商品販売装置1および販売管理センタ装置5(図3参照)の機能ブロックと、構成要素の差異は少ない。また、商品販売装置1aの外観の構成については、第1の実施形態の場合と全く同じである(図1参照)。以下、第1の実施形態の場合と同じ構成要素については、その説明を省略し、相違する部分についてのみ説明する。
第2の実施形態が第1の実施形態と相違する点は、第1の実施形態では販売管理センタ装置5で実行した注視対象検出処理(図10参照)を、第2の実施形態では商品販売装置1aで実行するようにしたことにある。
そこで、商品販売装置1aでは、視線判定部22(図3参照)に代えて注視判定部22aが設けられ、また、視線データ記憶部32(図3参照)に代えて注視履歴データ記憶部35およびメッシュ定義データ記憶部36が設けられている。このとき、注視判定部22aの内部では、視線位置検出部225(図3参照)が注視対象検出部226に入れ替えられている。
一方、商品販売装置1aでは、注視対象検出処理部62および視線データ記憶部72(図3参照)が削除され、また、データ収集部61(図3参照)に代えて、データ配信・収集部61aが設けられている。
従って、商品販売装置1aの注視対象検出部226は、視線位置検出部225(図3参照)が行っていた視線位置検出処理(図8参照)と、注視対象検出処理部62が行っていた注視対象検出処理(図10参照)に相当する処理と、を併せて実行する。すなわち、注視対象検出部226は、視線検出部224によって映像データ1フレームごとに検出される顧客の視線に基づき、視線位置を求め(図8参照)、その視線位置を解析して、顧客が注視するメッシュを検出することにより注視履歴データを作成し、作成した注視履歴データを注視履歴データ記憶部35に蓄積する。
なお、視線位置検出部225により実行される注視対象検出処理は、図10に示した注視対象検出処理とほぼ同じであるが、本実施形態の場合、図10の注視対象検出処理は、バッチ処理されるのではなく、カメラ11から1フレームの映像データが取得され、その視線が視線検出部224により検出するたびに実行される。
また、注視対象検出処理の実行には、商品販売装置1aに応じてメッシュの配置位置を定義したメッシュ定義データが必要となるが、本実施形態では、各商品販売装置1aにおけるメッシュ定義データは、販売管理センタ装置5aから配信されるものとする。
すなわち、販売管理センタ装置5aは、ネットワーク4を介して自らに接続された商品販売装置1aについてのすべてのメッシュ定義データを、メッシュ定義データのマスタデータとしてメッシュ定義データ記憶部77に保管する。そして、販売管理センタ装置5aは、例えば、新たな商品販売装置1aがネットワーク4を介して接続されたとき、あるいは、商品販売装置1aが保守されたときなどに、その商品販売装置1aの販売装置IDが付されたメッシュ定義データを商品販売装置1aへ配信する。一方、メッシュ定義データの配信を受けた商品販売装置1aは、そのメッシュ定義データをメッシュ定義データ記憶部36に格納する。
図12において、データ配信・収集部61aは、商品販売装置1aへ、その商品販売装置1aのために定義されたメッシュ定義データを配信するほか、第1の実施形態の場合と同様に、商品販売装置1aにおいて作成され、蓄積された注視履歴データ、顧客購買データ、商品配置データを収集する。
本実施形態では、データ配信・収集部61aは、商品販売装置1aからは視線データではなく注視履歴データを収集する。視線データは、映像データの1フレームごとに作成されるデータであるが、注視履歴データは、顧客が購買開始から購買終了までに注視したメッシュ19ごとに作成されるデータである。従って、商品販売装置1aから販売管理センタ装置5aへ送信されるデータ量が大幅に削減され、ネットワーク4における通信負荷が大幅に軽減される。ちなみに、視線データは、顧客の購買開始から購買終了まで20秒要したとすれば、20秒×30フレーム、つまり、600レコードのデータが作成され、送信される。一方、注視履歴データは、顧客が購買開始から購買終了までの間に10のメッシュを注視したとしても、10レコードのデータしか作成されず、従って、10レコードのデータしか送信されない。
また、本実施形態では、販売管理センタ装置5aは、商品販売装置1aのメッシュ定義データをメッシュ定義データ記憶部77にまとめて格納しておき、必要に応じて、商品販売装置1aへ配信する。従って、商品販売装置1aは、その機種に依存するメッシュ定義データを、プログラムインストール時などに併せて設定する必要がない。そのため、商品販売装置1aの製造者、または、その保守管理者は、機種を考慮せず、そのプログラムをインストールすることができるので、そのインストールなどの手間を低減することができ、その結果、商品販売装置1aの製造コストや保守コストを低減することができる。