以下、商品分類と価格との入力によって登録された商品の売上データを、品目毎の管理に反映させることができる商品登録装置の実施形態について、図面を用いて説明する。なお、実施形態では、商品登録装置の一態様として、POS(Point Of Sales)端末100(図1を参照)を例示する。
[第1の実施形態]
始めに、POS端末100の構成について、図1〜図7を用いて説明する。
図1は、POS端末100の要部回路構成を示すブロック図である。POS端末100は、プロセッサ101、メインメモリ102、補助記憶デバイス103及び通信インターフェース104を備える。そしてPOS端末100は、プロセッサ101と、メインメモリ102、補助記憶デバイス103及び通信インターフェース104とを、システムバス105で接続することによって、コンピュータを構成する。
プロセッサ101は、上記コンピュータの中枢部分に相当する。プロセッサ101は、オペレーティングシステムやアプリケーションプログラムに従って、POS端末100としての各種の機能を実現するべく各部を制御する。
メインメモリ102は、上記コンピュータの主記憶部分に相当する。メインメモリ102は、不揮発性のメモリ領域と揮発性のメモリ領域とを含む。メインメモリ102は、不揮発性のメモリ領域ではオペレーティングシステムやアプリケーションプログラムを記憶する。またメインメモリ102は、プロセッサ101が各部を制御するための処理を実行する上で必要なデータを不揮発性または揮発性のメモリ領域で記憶する場合もある。メインメモリ102は、揮発性のメモリ領域を、プロセッサ101によってデータが適宜書き換えられるワークエリアとして使用する。
補助記憶デバイス103は、上記コンピュータの補助記憶部分に相当する。例えばHDD(Hard Disc Drive)、SSD(Solid State Drive)、EEPROM(Electric Erasable Programmable Read-Only Memory)等が補助記憶デバイス103として使用される。補助記憶デバイス103は、プロセッサ101が各種の処理を行う上で使用するデータや、プロセッサ101での処理によって生成されたデータを保存する。補助記憶デバイス103は、上記のアプリケーションプログラムを記憶する場合もある。
通信インターフェース104は、LAN等のネットワークを介して接続されたストアサーバと、予め設定された通信プロトコルに従いデータ通信を行う。ストアサーバは、店舗内のPOS端末100をネットワークで一元的に接続する。そしてストアサーバは、各POS端末100からネットワークを介して収集したトランザクションデータを基に、各商品の売上を品目別又は部門別に集計する機能を有する。このようなストアサーバは、周知のものなので、ここでの説明は省略する。
システムバス105は、アドレスバス、データバス、制御信号線等を含む。POS端末100は、システムバス105を介して種々の入出力デバイスをコンピュータに接続する。入出力デバイスは、タッチパネル106、キーボード107、スキャナ108、プリンタ109、客面ディスプレイ110、リーダライタ111、カメラ112等を含む。
タッチパネル106は、オペレータへの情報提供画面を表示するものである。またタッチパネル106は、オペレータによるタッチ操作での入力デバイスとして機能する。
キーボード107は、商品登録に必要な種々のキーを配設したものである。商品登録に必要なキーの一例を図2に示す。図示するようにキーボード107には、置数キー(テンキー)K1、クリアキーK2、複数(図では4つ)の部門キーK3、乗算(×)キーK4、金額キーK5、締めキーJ6等が配設されている。
置数キーK1は、商品の価格、客からの預り金額等の数値データを入力するためのキーである。クリアキーK2は、置数キーK1で入力された数値データのクリアを指令するためのキーである。部門キーK3は、各商品をその属性で分類した商品分類、いわゆる部門を入力するためのキーである。複数の部門キーK3には、それぞれ異なる部門を特定するための部門コードが割り当てられている。乗算キーK4は、置数キーK1により入力された数値が乗数であることを宣言するためのキーである。金額キーK5は、置数キーK1により入力された数値が金額であることを宣言するためのキーである。締めキーK6は、商取引の締めを宣言するためのキーである。一般に商取引の締めには現金締め、クレジット締め、金券締め等がある。現金締めは、現金支払いで商取引を締めることをいう。クレジット締めはクレジットカードで商取引を締めることをいう。金券締めは、商品券等の金券で商取引を締めることをいう。通常、キーボード107には、締めの種類別に締めキーが用意されている。しかしこの実施形態では、締めの種類は関係ないので、1つの締めキーK6として説明する。
スキャナ108は、バーコードをスキャニングして読み取るものである。スキャナ108は、定置式スキャナであってもよいし、ハンディ式のスキャナであってもよい。スキャナ108で読取りが可能なバーコードは、1段バーコードに限定されるものではない。例えば2段バーコードや2次元バーコード(又は、2次元データコード)等もスキャナ108で読み取ることができる。
プリンタ109は、レシート用紙にレシートデータを印刷して発行するものである。プリンタ109は、レシートデータ以外のプリントデータをレシート用紙に印刷することも可能である。なお、POS端末100は、レシートデータを電子データとして客に提供する、いわゆる電子レシートシステムに対応したものであってもよい。
客面ディスプレイ110は、客への情報提供画面を表示するものである。客面ディスプレイ110には、客が購入した商品の名称、価格等が表示される。また、その客が購入した商品の合計金額等も表示される。客面ディスプレイ110は、タッチパネルを用いてもよい。
リーダライタ111は、会員カード、ポイントカード、クレジットカード等のカード媒体に対するデータの読取り及び書込みを行うものである。カード媒体が磁気カードの場合、リーダライタ11は磁気カードリーダライタとなる。カード媒体がICカードの場合、リーダライタ11はICカードリーダライタとなる。ICカードリーダライタは、接触式であってもよいし、非接触式であってもよい。磁気カードとICカードとが混在する運用の場合には、POS端末100は、磁気カードリーダライタとICカードリーダライタとを備えることとなる。なお、カードへの書込みが不要な場合には、カードリーダ専用機であってもよい。
カメラ112は、バーコードが付されていない商品の撮影に用いられる。カメラ112は、例えばCCD(Charge Coupled Sensor)カメラである。オペレータが商品をカメラ112の撮影領域に翳すことによって、その商品の外観画像がPOS端末100に取り込まれる。
かかる構成のPOS端末100は、補助記憶デバイス103の記憶領域の一部を、商品マスタ121、部門マスタ122、認識辞書マスタ123及び購買履歴マスタ124の領域として使用する。
商品マスタ121は、商品の品目に関する種々のデータを記憶するものである。この商品マスタ121に記憶される1商品当たりのデータレコードの要部を図3に示す。図示するように商品マスタ121は、商品コード、商品名、部門コード、価格等を含む商品レコード121Rを商品の品目数分記憶する。すなわち商品マスタ121は、バーコードが付されている商品だけでなく、バーコードが付されていない商品の分も含めて商品レコード121Rを記憶する。商品コードは、商品の品目毎に設定された一意のコードである。商品に付されているバーコードは、商品コードをバーコード化したものである。商品名は、商品コードで特定される商品の品名である。部門コードは、商品コードで特定される商品が属する部門のコードである。価格は、商品コードで特定される商品1点当たりの価格(単価)である。ここに、商品マスタは、商品記憶部として機能する。
部門マスタ122は、類似品目の集合体(商品分類)である部門に関する種々のデータを記憶するものである。この部門マスタ122に記憶される1部門当たりのデータレコードの要部を図4に示す。図示するように部門マスタ122は、部門コード及び部門名を含む部門レコード122Rを記憶する。部門コードは、各部門を識別するために部門毎に一意に割り当てられたコードである。部門名は、部門コードで特定される部門の総称である。ここに、部門マスタ122は、分類記憶部として機能する。
認識辞書マスタ123は、商品の画像認識に必要な特徴量データを記憶する。この認識辞書マスタ123に記憶される1商品当たりのデータレコードの要部を図5に示す。図示するように認識辞書マスタ123は、商品コード及び商品名と、プリセット画像と、多数の特徴量データとを含む認識辞書レコード123Rを記憶する。プリセット画像は、対応する商品コードによって特定される商品を表わす画像である。特徴量データは、対応する商品コードで特定される商品の外観上の特徴(外観形状、色合い、模様、凹凸具合等)をパラメータで表わしたものである。ここに、認識辞書マスタ123は、特徴量記憶部として機能する。
購買履歴マスタ124は、会員となった客の購買履歴に関するデータを記憶する。この購買履歴マスタ124に記憶される1会員当たりのデータコードの要部を図6に示す。図示するように購買履歴マスタ124は、会員IDと、多数の購買履歴データとを含む履歴レコード124Rを記憶する。会員IDは、会員を識別するための会員毎に割り当てられた一意のコードである。会員は、会員IDが記録された会員カードを所有している。あるいは会員は、会員IDのバーコードを画面に表示させるためのアプリケーションプログラムを保存した情報端末を所有している。情報端末は、例えばスマートフォン、タブレット端末等である。購買履歴データは、購買日時、購買商品のコード、名称、価格、点数、金額等を含む。コードは、PLU登録された商品の場合は、商品コードであり、部門登録された商品の場合は部門コードとなる。名称は、PLU登録された商品の場合は商品名であり、部門登録された商品の場合は部門名である。なお、PLU登録された商品の場合は、購買履歴データにその商品が属する部門の部門コードも含まれる。ここに、購買履歴マスタ124は、履歴記憶部として機能する。
また、POS端末100は、メインメモリ102の揮発性領域に、取引メモリ131と候補メモリ132とを形成する。
図7は、取引メモリ131及び候補メモリ132のデータ構造を示す模式図である。取引メモリ131は、1商取引の購買商品のコード、名称、価格、点数及び金額をそれぞれ関連付けて記憶する明細領域131Aと、点数及び金額の合計領域131Bとを有する。候補メモリ132は、候補商品の商品コード、商品名、価格及び類似度をそれぞれ関連付けて記憶する領域を有する。候補商品及び類似度については、後述する。
次に、POS端末100の動作について、図8〜図12を用いて説明する。
図8〜図10は、POS端末100のプロセッサ101が、商品登録プログラムに従って実行する情報処理の要部手順を示す流れ図である。商品登録プログラムは、メインメモリ102又は補助記憶デバイス103に記憶されているアプリケーションプログラムの一種である。なお、図8〜図10に示すとともに以下に説明する処理の内容は一例である。同様な結果を得ることが可能であればその処理手順及び処理内容は特に限定されるものではない。
さて、本実施形態では、商品の売場と会計場(レジ)とが区別された小売店舗を想定する。このような店舗では、客は売場を回って購入する商品を集め、最後に会計場に行って会計を行う、という流れとなる。POS端末100は会計場に設置されており、店員いわゆるキャッシャが、オペレータとなる。
キャッシャは、客が会計場に来ると先ず、店舗の会員、例えばポイント会員であるか否かを問い合わせる。そして会員である場合、キャッシャは、その客の会員IDをPOS端末100に入力する。例えば客が会員カードを提示した場合には、その会員カードのデータをリーダライタ111で読み取らせる。例えば客が会員カードのバーコードが表示された情報端末を提示した場合には、そのバーコードをスキャナ108で読み取らせる。
次にキャッシャは、客が購入する商品の登録を行う。すなわちキャッシャは、バーコードが付されている商品については、そのバーコードをスキャナ108で読み取らせて、PLU登録を行う。これに対し、バーコードが付されていなかったり、例えばバーコードが汚れていて読み取ることができなかったりした商品については、キャッシャは、キーボード107を操作してその商品が属する部門の部門コードと価格とを入力して、部門登録を行う。
このような操作に対応するために、POS端末100のプロセッサ101は、図8のAct1として、商品登録が開始されたか否かを判断する。商品登録が開始されていない場合(Act1、NO)、プロセッサ101は、Act2として会員IDが入力されたか否かを判断する。会員IDが入力されていない場合(Act2、NO)、プロセッサ101は、再び商品登録が開始されたか否かを判断する。ここにプロセッサ101は、Act1及びAct2の処理により、商品登録が開始されるか会員IDが入力されるのを待ち受ける。
前述したように、リーダライタ111で会員カードのデータが読み取られるか、スキャナ108で会員カードのバーコードが読み取られると、プロセッサ101は、会員IDが入力されたとみなす(Act2、YES)。プロセッサ101は、Act3として、入力された会員IDを会員IDメモリに書き込む。会員IDメモリは、メインメモリ102に確保されたワークエリアの一部である。その後、プロセッサ101は、再び商品登録が開始されたか否かを判断する。
スキャナ108で商品に付されたバーコードが読み取られるか、キーボード107を介して商品が属する部門の部門コードと当該商品の価格とが入力されると、プロセッサ101は、商品登録が開始されたとみなす(Act1、YES)。プロセッサ101は、Act4として初期化を行う。この初期化により、取引メモリ131と候補メモリ132とがクリアされる。プロセッサ101は、Act5として、一意の取引IDを発行し、取引IDメモリに書き込む。取引IDメモリは、メインメモリ102に確保されたワークエリアの一部である。
プロセッサ101は、Act6として、商品登録がPLU登録なのか部門登録なのかを判断する。スキャナ108で商品のバーコードが読み取られた場合、プロセッサ101は、PLU登録とみなす(Act6、YES)。プロセッサ101は、Act7として、バーコードを解析して商品コードを取得する。プロセッサ101は、Act8として、商品マスタ121を検索して、Act7で取得した商品コードを含む商品レコード121Rを読み出す。プロセッサ101は、Act9として、その商品レコード121Rから商品名と価格とを取得し、商品コード、商品名及び価格を登録メモリに書き込む。すなわちプロセッサ101は、PLU登録された商品の商品コード、商品名及び価格を登録メモリに書き込む。登録メモリは、メインメモリ102に確保されたワークエリアの一部である。その後、プロセッサ101は、Act14の処理へと進む。
Act6において、キーボード107から部門コードと価格とが入力された場合、プロセッサ101は、部門登録とみなす(Act6、NO)。プロセッサ101は、Act10として、推定モードが有効であるか否かを確認する。推定モードは、部門登録された商品について、商品推定処理を実行するモードである。商品推定処理は、部門登録された商品の品目を推定する処理である。POS端末100は、推定モードを有効にするか無効にするかのオプションフラグを補助記憶デバイス103で記憶している。このオプションフラグは、POS端末の設定業務において、有効または無効に設定される。例えば商品推定処理を実行する運用の店舗では、予めオプションフラグが有効な状態に設定される。例えば商品推定処理を実行しない運用の店舗では、予めオプションフラグが無効な状態に設定される。
推定モードが有効でない場合、すなわちオプションフラグが無効な状態に設定されている場合には(Act10、NO)、プロセッサ101は、Act11として部門マスタ122を検索して、キーボード107を介して入力された部門コードを含む部門レコード122Rを読み出す。プロセッサ101は、Act12として、その部門レコード122Rから部門名を取得し、さらにキーボード107を介して入力された価格を取得して、部門コード、部門名及び価格を登録メモリに書き込む。すなわちプロセッサ101は、部門登録された商品の部門コード、部門名及び価格を登録メモリに書き込む。その後、プロセッサ101は、Act14の処理へと進む。
推定モードが有効な場合、すなわちオプションフラグが有効な状態に設定されている場合には(Act10、YES)、プロセッサ101は、Act13として商品推定処理を実行する。
図9は、商品推定処理の主要な手順を示す流れ図である。商品推定処理に入ると、プロセッサ101は、Act31として部門登録の際にキーボード107を介して入力された部門コードと価格とを取得し、比較メモリに書き込む。比較メモリは、メインメモリ102に確保されたワークエリアの一部である。
プロセッサ101は、Act32として商品マスタ121を検索して1つの商品レコード121Rを検出する。そしてプロセッサ101は、検出した商品レコード121Rの部門コードが比較メモリに記憶された部門コードと一致するか否かを判断する。部門コードが一致しない場合(Act33、NO)、プロセッサ101は、Act36の処理に進む。
部門コードが一致する場合には(Act33、YES)、プロセッサ101は、Act34として検出した商品レコード121Rの価格が比較メモリに記憶された価格と一致するか否かを判断する。価格が一致しない場合(Act34、NO)、プロセッサ101は、Act36の処理に進む。
価格が一致する場合には(Act34、YES)、プロセッサ101は、Act35としてこの部門コード及び価格が比較メモリのデータと一致した商品レコードで特定される商品を候補商品とする。すなわちプロセッサ101は、当該商品レコードに含まれる商品コード、商品名及び価格を、デフォルト値の類似度と関連付けて候補メモリ132に格納する。類似度のデフォルト値は、たとえば“0”である。その後、プロセッサ101は、Act36の処理に進む。
Act36では、プロセッサ101は、商品マスタ121の検索を終了したか否かを判断する。商品マスタ121にまだ検出していない商品レコード121Rが残っている場合、商品マスタ121の検索は終了していない。商品マスタ121の検索を終了していない場合(Act36、NO)、プロセッサ101は、Act32に戻る。すなわち、プロセッサ101は、未検出の商品レコード121Rの中から1つの商品レコード121Rを検出して、Act33〜Act35の処理を前述したのと同様に実行する。
ここにプロセッサ101は、Act31〜Act36の処理を実行することにより、検索手段を構成する。
商品マスタ121に記憶されている全ての商品レコード121Rを順次検出して、Act33〜Act35の処理を実行し終えると、プロセッサ101は、商品マスタ121の検索を終了したと認識する。商品マスタ121の検索が終了すると(Act36、YES)、プロセッサ101は、Act37として候補数が“0”であるか否かを判断する。候補メモリ132にデータが1つも記憶されていない場合、候補数は“0”である。候補数が“0”の場合(Act37、YES)、プロセッサ101は、図8のAct12の処理へと進む。すなわちプロセッサ101は、部門マスタ122を検索して、比較メモリに記憶された部門コードを含む部門レコード122Rを読み出す。そしてプロセッサ101は、その部門レコード122Rから部門名を取得し、さらに比較メモリに記憶された価格を取得して、部門コード、部門名及び価格を登録メモリに書き込む。
候補メモリ132にデータが記憶されている場合、候補数は“0”ではない。候補数が“0”でない場合(Act37、NO)、プロセッサ101は、Act38として候補数が“1”であるか否かを判断する。候補メモリ132にデータが1つしか記憶されていない場合、候補数は“1”である。候補数が“1”の場合(Act38、YES)、プロセッサ101は、Act39としてその候補メモリ132に記憶されている唯一のデータの商品コード、商品名及び価格を登録メモリに書き込む。すなわちプロセッサ101は、商品推定処理によって唯一検索された候補商品の商品コード、商品名及び価格を登録メモリに書き込む。
候補メモリ132に2以上のデータが記憶されている場合、すなわち候補数が“0”でも“1”でもない場合(Act37、Act38、いずれもNO)、プロセッサ101は、Act40として候補絞り込み処理を実行する。
図10は、候補絞り込み処理の具体的に手順を示す流れ図である。候補絞り込み処理に入ると、プロセッサ101は、Act51として、タッチパネル106に商品の撮影をキャッシャに要求するメッセージ、例えば「部門登録を行った商品をカメラに翳してください」を表示させる。このメッセージを確認したキャッシャは、直前にキーボード107を操作して部門コードと価格とを入力した商品をカメラ112の撮影領域に翳す。商品がカメラ112の撮影領域に翳されることにより、この商品の外観画像がカメラ112で撮影される。カメラ112で撮影されたフレーム画像は、メインメモリ102の画像メモリに順次記憶される。
プロセッサ101は、Act52として画像メモリに記憶されたフレーム画像に商品が撮像されているか否かを確認する。商品が撮像されていない場合(Act52、NO)、プロセッサ101は、画像メモリから次のフレーム画像を取り込む。そしてプロセッサ101は、このフレーム画像に商品が撮像されているか否かを確認する。
こうして、画像メモリに順次記憶されるフレーム画像をチェックした結果、商品が撮像されたフレーム画像を検出したならば(Act52、YES)、プロセッサ101は、Act53としてそのフレーム画像から商品の輪郭線を検出し、その輪郭線に沿って画像を切り出す。そしてプロセッサ101は、切り出した画像、つまりは商品の画像から当該商品の形状、表面の色合い、模様、凹凸状況等の外観特徴量を抽出する。
商品の外観特徴量を抽出できたならば、プロセッサ101は、Act54として候補メモリ132に記憶されている候補商品のデータから1つの商品コードを検出する。そしてプロセッサ101は、Act55として認識辞書マスタ123を検索して、当該商品コードに関連付けて記憶されている特徴量データを取得する。
プロセッサ101は、Act56として、Act53の処理で商品画像から抽出した特徴量データが、Act55の処理で認識辞書マスタ123から取得した各特徴量データに対してどの程度類似しているかを示す類似度Rを算出する。そしてプロセッサ101は、候補メモリ132の当該商品コードに関連付けて記憶されている類似度を、算出された類似度Rに書き換える。類似度Rは、例えばハミング距離によって“0”から“100”の範囲内で算出され、類似している率が高い程大きい値をとる。
プロセッサ101は、Act57として類似度Rが所定の閾値よりも小さいか否かを判断する。類似度Rが所定の閾値よりも小さい商品は、部門登録された商品の候補から外す。プロセッサ101は、類似度Rが閾値よりも小さい場合(Act57、YES)、Act58として、候補メモリ132から当該商品コードと、それに関連付けられた商品名,価格及び類似度の各データを削除する。類似度Rが閾値以上である場合には(Act57、YES)、プロセッサ101は、Act58の処理を実行しない。
その後、プロセッサ101は、Act59として、候補メモリ132にまだ検出していない商品コードがあるか否かを確認する。未検出の商品コードがある場合(Act59、YES)、プロセッサ101は、Act54に戻る。すなわちプロセッサ101は、候補メモリ132に記憶されている候補商品のデータからその未検出の商品コードを1つ検出する。そしてプロセッサ101は、Act55〜Act58の処理を前述したのと同様に実行する。
Act59において、候補メモリ132に未検出の商品コードが無いと判断した場合(Act59、NO)、プロセッサ101は、Act60として、候補数が“0”であるか否かを判断する。候補メモリ132にデータが1つも記憶されていない場合、候補数は“0”である。候補数が“0”の場合(Act60、YES)、プロセッサ101は、図8のAct12の処理へと進む。すなわちプロセッサ101は、部門マスタ122を検索して、比較メモリに記憶した部門コードを含む部門レコード122Rを読み出す。そしてプロセッサ101は、その部門レコード122Rから部門名を取得し、さらに比較メモリに記憶された価格を取得して、部門コード、部門名及び価格を登録メモリに書き込む。
候補メモリ132にデータが記憶されている場合、候補数は“0”ではない。候補数が“0”でない場合(Act60、NO)、プロセッサ101は、Act61として候補数が“1”であるか否かを判断する。候補メモリ132にデータが1つしか記憶されていない場合、候補数は“1”である。候補数が“1”の場合(Act61、YES)、プロセッサ101は、Act64としてその候補メモリ132に記憶されている唯一のデータの商品コード、商品名及び価格を登録メモリに書き込む。すなわちプロセッサ101は、商品絞り込み処理によって1つに絞り込まれた候補商品の商品コード、商品名及び価格を登録メモリに書き込む。
候補メモリ132に2以上のデータが記憶されている場合、すなわち候補数が“0”でも“1”でもない場合(Act60、Act61、いずれもNO)、プロセッサ101は、Act62として候補メモリ132に記憶されたデータを基に、候補商品の選択画面SC1(図11を参照)をタッチパネル106に表示させる。
選択画面SC1の一例を図11に示す。図示するように、選択画面SC1は、画像の表示領域A1と、候補商品の表示領域A2とに区分される。また、「その他」ボタンB1が選択画面SC1に表示される。表示領域A1には、カメラ112で撮影された画像から切出された商品の画像が表示される。表示領域A2は、画面の上下方向にさらに3つの領域A21,A22,A23に細分化されており、上の領域A21から類似度の大きい順に候補商品のプリセット画像と商品名とが表示される。候補商品とは、候補メモリ132に記憶されている商品コードで特定される商品である。プリセット画像と商品名は、認識辞書マスタ123に記憶されている。プロセッサ101は、候補メモリ132に記憶されている商品コードで認識辞書マスタ123を検索して、当該商品コードを含む認識辞書レコード123Rからプリセット画像と商品名とを読出し、領域A2に表示させる。
因みに、Act62の処理において最初に表示される選択画面SC1の表示領域A2には、類似度が1位から3位までの候補商品のプリセット画像と商品名とが画面の上から順に表示される。この状態で、「その他」ボタンB1がタッチ操作されると、表示領域A2は、類似度が4位から6位までの商品のプリセット画像と商品名とに切り替わる。以後、「その他」ボタンB1がタッチ操作される毎に、表示領域A2の画像は、類似度がより下位の商品のプリセット画像と商品名との表示に切り替わり、最下位まで表示されると、1位に戻る。
選択画面SC1を確認したキャッシャは、表示領域A2のなかからカメラ112の撮影領域に翳した商品のプリセット画像と商品名とが表示された領域A21,A22またはA23を探す。そして、該当する領域A21,A22またはA23を見つけたならば、キャッシャは、この領域A21,A22またはA23をタッチ操作する。
プロセッサ101は、Act63として、領域A21,A22またはA23がタッチ操作されるのを待機する。領域A21,A22またはA23がタッチ操作されたならば、プロセッサ101は、Act64としてその領域A21,A22またはA23にプリセット画像等が表示されている商品の商品コード、商品名及び価格を登録メモリに書き込む。商品名及び価格は、当該商品コードと関連付けて候補メモリ132に記憶されているデータである。すなわちプロセッサ101は、複数の候補商品の中から選択された候補商品の商品コード、商品名及び価格を登録メモリに書き込む。以上で、プロセッサ101は、候補絞り込み処理を抜ける。
ここにプロセッサ101は、図9のAct39、Act40及びAct41の処理を実行することにより、決定手段を構成する。またプロセッサ101は、図10のAct51〜Act59の処理を実行することにより、決定手段に含まれる絞り込み手段を構成する。
図9のAct39の処理、あるいは図10のAct64の処理により、登録メモリに商品コード、商品名及び価格のデータが書き込まれると、商品推定処理が終了する。商品推定処理が終了すると、プロセッサ101は、図8のAct14の処理へと進む。
Act14では、プロセッサ101は、販売データ処理を行う。すなわちプロセッサ101は、登録メモリに記憶された価格に販売点数を乗算して販売金額を算出する。販売点数は、置数キーK1と乗算キーK4との入力により乗数が入力されている場合にはその乗数であり、乗数が入力されていない場合には“1”である。プロセッサ101は、登録メモリに記憶されたコード(商品コード又は部門コード)、名称(商品名又は部門名)及び価格と、販売点数及び販売金額とをそれぞれ関連付けて、取引メモリ131の明細領域131Aに格納する。またプロセッサ101は、取引メモリ131の合計領域131Bのデータを更新する。さらにプロセッサ101は、名称(商品名又は部門名)及び価格と、販売点数及び販売金額とをタッチパネル106及び客面ディスプレイ110に表示させる。
以上のような販売データ処理を終えると、プロセッサ101は、Act15として次の商品登録が行われたか否かを確認する。商品登録が行われていない場合(Act15、NO)、プロセッサ101は、Act16として締めキーK6が入力されたか否かを判断する。締めキーK6が入力されていない場合(Act16、NO)、プロセッサ101は、再び次の商品登録が行われたか否かを確認する。ここにプロセッサ101は、Act15及びAct16の処理により、次の商品登録が行われるか締めキーK6が入力されるのを待ち受ける。
プロセッサ101は、次の商品登録(PLU登録又は部門登録)が行われると(Act15、YES)、Act6に戻る。このときプロセッサ101は、候補メモリ132、登録メモリ及び比較メモリをクリアする。そしてプロセッサ101は、Act6〜Act14の処理を前述したのと同様に実行する。
ここに、プロセッサ101は、スキャナ108又はキーボード107等の入力デバイスと協働して、Act1又はAct15の処理を実行することにより、入力手段を構成する。
Act15及びAct16の待ち受け状態において、締めキーK6が入力されたことを検知すると(Act16、YES)、プロセッサ101は、Act17として登録締め処理を実行する。例えば現金締めの場合、置数キーK1と金額キーK5とにより入力された金額を預り金額とし、この預り金額から取引メモリ131の合計領域131Bに記憶された合計金額を減じて釣銭額を算出する、いわゆる現金締めの登録締め処理を行う。このような登録締め処理は、現金締め以外にもクレジット締めの登録締め処理、金券締めの登録締め処理等がある。これらの処理内容はいずれも周知であるので、ここでの説明は省略する。
登録締め処理を終えると、プロセッサ101は、Act18として、取引メモリ131に記憶されたデータを基にレシートデータを作成する。そしてプロセッサ101は、プリンタ109を制御して、レシートを印字発行させる。
またプロセッサ101は、Act19として、会員取引であるか否かを判断する。会員IDメモリに会員IDが記憶されている場合、プロセッサ101は、会員取引であるとみなす(Act19、YES)。プロセッサ101は、Act20として、購買履歴の更新を行う。すなわちプロセッサ101は、取引メモリ131に記憶されたデータで商品毎に購買履歴データを作成する。そしてプロセッサ101は、会員IDメモリに記憶された会員IDで購買履歴マスタ124を検索して、同一の会員IDを含む履歴レコード124Rに商品の購買履歴データを追加する。
会員IDメモリに会員IDが記憶されていない、すなわち会員取引でない場合には(Act19、NO)、プロセッサ101は、Act20の処理を実行しない。
プロセッサ101は、Act21として、トランザクションデータの送信を行う。すなわちプロセッサ101は、取引IDメモリに記憶された取引IDと、取引メモリ131に記憶されたデータとでトランザクションデータを作成する。そしてプロセッサ101は、このトランザクションデータをストアサーバに送信出力するように通信インターフェース104を制御する。
ここにプロセッサ101は、プリンタ109又は通信インターフェース104と協働して、Act18又はAct21の処理を実行することにより、出力手段を構成する。
以上で、プロセッサ101は、客との商取引に対する処理を終了する。その後、プロセッサ101は、次の客との商取引を制御するために、Act1からの処理を再開する。
図12は、Act18の処理において発行されるレシートの一例である。同図において、レシートR1は、推定モードが有効でないときの発行例であり、レシートR2は、推定モードが有効なときの発行例である。いずれの場合も、バーコードが付されている商品として「ハム」を購入し、バーコードが付されていない商品として「りんご(ふじ)」を購入した客を想定している。
キャッシャは、「ハム」を登録する場合、スキャナ108にその「ハム」のバーコードを読み取らせる。そうすると、取引メモリ131には、「ハム」の商品コード「123460」、名称「ハム」、価格「200円」、点数「1」、金額「200円」が記憶される。
キャッシャは、「りんご(ふじ)」を登録する場合、キーボード107を操作して部門コード「青果」と価格「100円」を入力する。このとき、推定モードが有効でない場合には、取引メモリ131には、「りんご(ふじ)」の部門コード「1」、部門名「青果」、価格「100円」、点数「1」、金額「100円」が記憶される。
この段階で、締めキーが操作されると、レシートR1が発行される。また、取引メモリ131のデータに基づいて作成されるトランザクションデータがストアサーバに送信される。その結果、PLU登録を行った「ハム」については、品目の単位で売り上げが管理される。これに対し、部門登録を行った「りんご(ふじ)」については、部門「青果」の単位で売り上げが管理される。
一方、推定モードが有効な場合には、商品推定処理が実行される。ここで、商品マスタ121には、部門コードが「1」で価格が「100円」の商品として、「りんご(王林)」、「りんご(ふじ)」、「梨(豊水)」、「グレープフルーツ」の4品目が存在していたとする。その場合、Act32〜Act36の処理で商品マスタ121の検索を終えた段階では、上記4品目のデータが候補メモリ132に記憶される。したがって、候補数が“4”なので、候補絞り込み処理が実行される。
そこでキャッシャは、「りんご(ふじ)」をカメラ112の撮影領域に翳す。そうすると、この「りんご(ふじ)」を撮影した画像から得られる商品の外観特徴量と、「りんご(王林)」、「りんご(ふじ)」、「梨(豊水)」及び「グレープフルーツ」の各品目の特徴量データとから、品目毎に類似度Rが算出される。ここで、「りんご(王林)」、「りんご(ふじ)」及び「梨(豊水)」の3品目については、類似度Rが閾値以上であったが、「グレープフルーツ」だけは類似度Rが閾値未満であったと仮定する。その場合、候補メモリ132から「グレープフルーツ」のデータが削除される。そしてタッチパネル106に、図11に示す内容の選択画面SC1が表示される。
選択画面SC1を確認したキャッシャは、「りんご(ふじ)」が表示されている領域A22にタッチする。そうすると、取引メモリ131には、「りんご(ふじ)」の商品コード「123456」、名称「りんご(ふじ)」、価格「100円」、点数「1」、金額「100円」が記憶される。
この段階で、締めキーが操作されると、レシートR2が発行される。また、取引メモリ131のデータに基づいて作成されるトランザクションデータがストアサーバに送信される。その結果、PLU登録を行った「ハム」については、品目の単位で売り上げが管理される。また、部門登録を行った「りんご(ふじ)」についても、品目の単位で売り上げが管理される。
ところで、客が会員であった場合、キャッシャは、会員から提示を受けた会員IDをPOS端末100に入力する。そうすることにより、「ハム」と「りんご(ふじ)」の購買履歴データが、当該客の会員IDに関連付けられて、購買履歴マスタ124に保存される。
このように本実施形態によれば、推定モードを有効にすることによって、部門コードと価格との入力によって部門登録された商品の売上を、部門の売上ではなく、品目の売上として管理することができる。その結果、商品の購買データをより詳細に分析することができる。
また、推定モードが有効でないときのレシートR1には、部門登録された商品、例えば「りんご(ふじ)」の名称が部門名「青果」で印字されるのに対し、推定モードが有効なときのレシートR2には、商品名「りんご(ふじ)」で印字される。したがって、推定モードを有効にすることによって、部門登録せざるを得なかった商品についても、具体的な商品名をレシートに印字することができる。その結果、レシートR2を確認した客は、PLU登録された商品と同様に部門登録された商品についても商品名を知ることができる。また、タッチパネル106及び客面ディスプレイ110に表示される名称も、部門名ではなく商品名で表示されるので、どの商品を登録したのかを容易に判別できる。
ところで本実施形態では、部門登録した商品と同一部門に属し、価格が同一の商品を一次的な候補商品とする。そして、部門登録した商品を撮像した画像から得られる外観特徴量と、一次候補の商品に対してプリセットされている特徴量データとの類似度を求め、所定の閾値以上の類似度を有する商品を最終的な候補商品として選択画面SC1に表示させるようにしている。したがって、選択画面SC1に表示される候補商品は、同一部門及び同一価格の商品のうち、外観の特徴が部門登録した商品と近似した商品だけに絞られるので、外観の特徴が似通っていない商品が候補商品として選択画面SC1に表示されることはない。一般に、外観の特徴が似通っていない商品が部門登録した商品であるということは考えられないので、候補商品を効果的に絞り込むことができる。
また、推定モードを無効にした場合には、商品推定処理がキャンセルされる。商品推定処理を実行した場合、大抵は選択画面SC1から該当する商品を選択するという操作が発生するため、処理に時間を要する。そこで、例えば夕方などのようにレジが混雑している時間帯では、推定モードを無効にすることで、混雑の緩和を図ることができる。
[第2の実施形態]
次に、第2の実施形態について説明する。
第2の実施形態において、POS端末100は、カメラ112を省略できる。また、認識辞書マスタ123も不要である。それ以外の図1に示す構成要素は、第1の実施形態と同様である。ただし、候補メモリ132のデータ構造が異なる。
図13は、第2の実施形態における候補メモリ132のデータ構造を示す模式図である。図示するように候補メモリ132は、候補商品の商品コード、商品名及び価格に加えて、重複フラグを記憶する領域を有する。重複フラグについては、後述する。
また第2の実施形態において、POS端末100は、候補絞り込み処理の動作が第1の実施形態と異なる。それ以外の図8及び図9を用いて説明したPOS端末100の動作は、第1の実施形態と同様であるので、ここでの説明は省略する。
POS端末100のプロセッサ101は、商品推定処理(図9を参照)のAct38において、候補メモリ132に2以上のデータが記憶されている場合、図14の流れ図に示す候補絞り込み処理に入る。なお、図14に示すとともに以下に説明する処理の内容は一例である。同様な結果を得ることが可能であればその処理手順及び処理内容は特に限定されるものではない。
先ず、プロセッサ101は、Act71として会員取引であるか否かを判断する。会員IDメモリに会員IDが記憶されている場合、プロセッサ101は、会員取引であるとみなす(Act71、YES)。プロセッサ101は、Act72として候補メモリ132に記憶されている候補商品のデータから1つの商品コードを検出する。
プロセッサ101は、Act73として会員IDメモリに記憶された会員IDで購買履歴マスタ124を検索する。そしてプロセッサ101は、Act74として当該会員IDが関連付けられた履歴レコード124Rの中に、Act72において検出した商品コードの購買履歴データが存在するか否かを確認する。当該購買履歴データが履歴レコード124Rの中に存在する場合(Act74、YES)、プロセッサ101は、Act75として、候補メモリ132に記憶されている候補商品のデータのうち当該商品コードに関連付けられたデータの重複フラグをセットする。当該購買履歴データが履歴レコード124Rの中に存在しない場合には(Act74、NO)、プロセッサ101は、重複フラグをセットしない。
その後、プロセッサ101は、Act76として、候補メモリ132にまだ検出していない商品コードがあるか否かを確認する。未検出の商品コードがある場合(Act76、YES)、プロセッサ101は、Act72に戻る。すなわちプロセッサ101は、候補メモリ132に記憶されている候補商品のデータからその未検出の商品コードを1つ検出する。そしてプロセッサ101は、Act73〜Act75の処理を前述したのと同様に実行する。
Act76において、候補メモリ132に未検出の商品コードが無いと判断した場合(Act76、NO)、プロセッサ101は、Act77として、候補メモリ132に記憶されたデータを基に、候補商品の選択画面SC2(図15を参照)をタッチパネル106に表示させる。また、Act71において、会員取引でないと判断した場合も(Act71、NO)、プロセッサ101は、Act72乃至Act76の処理を行うことなく、Act77の処理に進み、候補商品の選択画面SC2をタッチパネル106に表示させる。
選択画面SC2の一例を図15に示す。図示するように、選択画面SC2は、候補商品の表示領域A31、A32、A33と、「その他」ボタンB2と表示される。表示領域A31、A32、A33には、候補商品の商品名が表示される。候補商品とは、候補メモリ132に記憶されている商品コードで特定される商品である。商品名は、候補メモリ132に記憶されている。プロセッサ101は、候補メモリ132に記憶されている商品名を順に読出し、表示領域A31、A32、A33に表示させる。
このときプロセッサ101は、重複フラグがセットされているデータの商品名を優先的に表示領域A31、A32、A33に表示させる。そして、重複フラグがセットされているデータの商品名を表示させた表示領域(図15では表示領域A31と表示領域A32)には、識別マークM1を表示させる。
なお、図15の表示例では、識別マークM1を破線の枠としたが、識別マークM1の種類は特に限定されるものではない。また、識別マークM1を表示させるのではなく、重複フラグがセットされているデータの商品名を表示させた表示領域の背景色を変更したり、商品名を点滅表示させたりしてもよい。要は、重複フラグがセット、つまりは候補商品のうち購買履歴がある商品と、重複フラグがリセット、つまりは購買履歴が無い商品とを、キャッシャが区別できればよい。
選択画面SC2を確認したキャッシャは、部門登録した商品の商品名が表示されている表示領域A31、A32又はA33をタッチ操作する。
プロセッサ101は、Act78として、領域A31,A32またはA33がタッチ操作されるのを待機する。領域A31,A32またはA33がタッチ操作されたならば、プロセッサ101は、Act79としてその領域A31,A32またはA33に商品名が表示されている商品の商品コード、商品名及び価格を登録メモリに書き込む。商品名及び価格は、当該商品コードと関連付けて候補メモリ132に記憶されているデータである。すなわちプロセッサ101は、複数の候補商品の中から選択された候補商品の商品コード、商品名及び価格を登録メモリに書き込む。以上で、プロセッサ101は、候補絞り込み処理を抜ける。
このように動作する第2の実施形態においても、推定モードを有効にすることによって、部門コードと価格との入力によって部門登録された商品の売上を、部門の売上ではなく、品目の売上として管理することができる。また、タッチパネル106及び客面ディスプレイ110に表示される名称やレシートに印字される名称も、部門名ではなく商品名とすることができる。
その上、第2の実施形態では、部門登録された商品と部門及び価格が一致する一次的な候補商品のうち、購買履歴が有る商品を優先的に選択画面SC2に表示するようにしている。同じ客が同じ商品を繰り返し購入することはよくある事象である。したがって、購買履歴が有る商品を優先的に選択画面SC2に表示させることで、キャッシャが選択画面SC2から部門登録された商品を見つけやすくなるメリットがある。
なお、これまで説明した実施形態は、以下のような変形実施が可能である。
前記実施形態では、推定モードの有効、無効を設定可能とし、無効の場合には図8のAct11及びAct12の処理を実行するようにした。他の実施形態としては、推定モードを省略してもよい。すなわち、図8のAct6において、部門登録であると判断した場合には、Act13に進んで、商品推定処理を実行するようにしてもよい。
前記実施形態では、商品推定処理において、部門登録された商品と部門コード及び価格が一致する商品を候補商品として候補メモリ132に記憶した。他の実施形態としては、部門コードは一致しているが、価格が許容範囲内において異なる商品も候補商品として候補メモリ132に記憶するようにしてもよい。バーコードが付されていない商品の場合、その大きさ、重さなどから価格が変動する場合がある。このような場合でも、価格が許容範囲内において異なる商品も候補商品とすることによって、候補商品を検出する精度を高めることができる。
第1の実施形態では、商品絞り込み処理として、登録対象の商品を撮影した画像から当該登録対象の商品の特徴量を求め、商品毎に基本となる特徴量を記憶した特徴量記憶部から候補商品の特徴量を検出して登録対象の商品の特徴量との類似度を求め、所定の閾値以上の類似度を有する候補商品を選択することで絞り込むようにした。
他の商品絞り込み処理としては、画像の中からオブジェクトを検出する方法として知られているハフ変換の原理を利用して、商品を絞り込む方法が考えられる。
また、分光器を使った分子センサで商品の成分を検出して絞り込む方法や、3Dスキャナを使用して商品を分析することで、商品を絞り込む方法も考えられる。
第2の実施形態では、商品推定処理によって検出した候補商品のなかから購買履歴のある商品を検索し、購買履歴のある商品は購買履歴が無い商品と識別可能に選択画面SC2に表示させた。他の実施形態としては、先ず、購買履歴の有る候補商品だけを選択画面SC2に表示させ、部門登録された商品が確定されない場合に、購買履歴のない候補商品を選択画面SC2に表示させるようにしてもよい。因みに、購買履歴の検索範囲は、購買履歴マスタ124に記憶されている全ての購買履歴レコードを検索しなくてもよい。例えばかの1年間、あるいは過去6か月という期限を定めて、購買履歴レコードを検索してもよい。
なお、商品登録装置の譲渡は一般に、商品登録プログラム等のプログラムがメインメモリ又は補助記憶デバイスに記憶された状態にて行われる。しかしこれに限らず、この種のプログラムがメインメモリ等に記憶されていない状態で、譲渡されてもよい。そしてこの場合は、商品登録装置が備える書き込み可能な記憶デバイスに、この商品登録装置とは個別に譲渡された制御プログラム等がユーザなどの操作に応じて書き込まれるか、上記の別の制御プログラムを書き替えてもよい。商品登録プログラム等の譲渡は、リムーバブルな記録媒体に記録して、あるいはネットワークを介した通信により行うことができる。記録媒体は、CD−ROM,メモリカード等のようにプログラムを記憶でき、かつ装置が読み取り可能であれば、その形態は問わない。また、プログラムのインストールやダウンロードにより得る機能は、装置内部のOS(オペレーティング・システム)等と協働してその機能を実現させるものであってもよい。
この他、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]登録対象の商品が属する商品分類と当該商品の価格との入力を受け付ける入力手段と、前記入力手段を介して入力された商品分類と価格とを基に、商品毎にその商品固有のコード、商品名、価格、及びその商品が属する商品分類を記憶した商品記憶部を検索して、候補商品を検出する検索手段と、前記検索手段により検出された前記候補商品から前記登録対象の商品を決定する決定手段と、を具備する商品登録装置。
[2]前記決定手段は、前記検索手段により前記候補商品が複数検出された場合に、その複数の候補商品の中から前記登録対象の商品と推定される候補商品を絞り込む絞り込み手段を含み、前記絞り込み手段により絞り込まれた前記候補商品の中から前記登録対象の商品を決定する、付記[1]記載の商品登録装置。
[3]前記絞り込み手段は、前記登録対象の商品を撮影した画像に基づいて前記候補商品を絞り込む、付記[2]記載の商品登録装置。
[4]前記絞り込み手段は、客の購買履歴を記憶した履歴記憶部を検索して前記候補商品の購買有無を判定し、購買有の候補商品を選択することで絞り込む、付記[2]記載の商品登録装置。
[5]前記決定手段により決定された商品の商品名及び価格を関連付けて出力する出力手段、をさらに具備する付記[1]乃至[4]のうちいずれか1項記載の商品登録装置。
[6]登録対象の商品が属する商品分類と当該商品の価格との入力を受け付ける入力手段、を備えた商品登録装置のコンピュータに、前記入力手段を介して入力された商品分類と価格とを基に、商品毎にその商品固有のコード、商品名、価格、及びその商品が属する商品分類を記憶した商品記憶部を検索して、候補商品を検出する機能、前記検出された前記候補商品から前記登録対象の商品を決定する機能、を実現させるためのプログラム。