以下図面を参照し、チェックアウトシステムを例に本実施形態にかかる商品コード読取装置及びプログラムを説明する。なお、本実施形態では、飲食店やスーパーマーケット等の店舗に導入されたチェックアウトシステムに適用した例について説明する。
図1は、本実施形態に係るチェックアウトシステムの構成を概略的に示す斜視図である。図1に示すように、チェックアウトシステムは、POS端末100と商品コード読取装置200とを備える。
POS端末100は、顧客が購入する商品の販売登録を行うための商品情報処理装置であって、チェックアウト台11に載置されている。POS端末100は、キーボード101と、オペレータ用の表示器102と、顧客用の表示器103と、プリンタ104と、ドロワ105とを備えている。なお、POS端末100が備える各部については後述する。
また、チェックアウト台11とL字を形成するようにして、横長テーブル状のカウンタ台12が配置されている。カウンタ台12の上面には、荷受面13が形成されている。商品コード読取装置200は、この荷受面13に載置され、有線又は無線によりPOS端末100との間で通信可能に接続されている。
商品コード読取装置200は、商品に貼付されたバーコードを読み取り、該バーコードが保持する商品コードをPOS端末100に送信(出力)するための装置である。図1に示すように、商品コード読取装置200は、読取窓201と、キーボード202と、オペレータ用の表示器203と、顧客用の表示器204とを備えている。なお、商品コード読取装置200が備える各部については後述する。
荷受面13には、後述するコードラベルやサービス表示ラベルが貼付された各商品Gを収納する買物カゴ14が載置される。買物カゴ14は、顧客によって持ち込まれる第1の買物カゴ14aと、第1の買物カゴ14aから商品コード読取装置200を挟んだ位置に載置される第2の買物カゴ14bとに分別される。
顧客によって持ち込まれた第1の買物カゴ14aには、一取引にかかる商品Gが収納されている。商品Gには、バーコードや二次元コード等のコードシンボルを表したコードラベルや、値引やポイント付加等を表した後述するサービス表示ラベルが貼付されている。コードシンボルには、商品Gに関する商品コードが符号化された状態で保持されている。ここで商品コードは、商品Gを特定するために各商品に割り当てられたコードであり、一例としてJANコードがある。
第1の買物カゴ14a内の商品Gは、商品コード読取装置200を操作するオペレータにより第2の買物カゴ14bへと移動される。この移動過程で、コードラベル及びサービス表示ラベルが商品コード読取装置200の読取窓201に向けられる。この際、読取窓201内に設けられた後述する撮像部216(図2参照)は、コードラベルやサービス表示ラベルを撮像する。
商品コード読取装置200では、撮像部216により撮像された画像に含まれるコードシンボルを検出しデコード(復号)することで、商品Gに関する商品コードを読み取る。なお、本実施形態ではコードシンボルとしてバーコードを用いた例を説明するが、これに限らず二次元コードを用いる形態としてもよい。
次に、図2を参照して、チェックアウトシステムの構成について説明する。ここで、図2は、POS端末100及び商品コード読取装置200の構成を示すブロック図である。
図2に示すように、POS端末100は、情報処理を実行するマイクロコンピュータとして、CPU(Central Processing Unit)111、ROM(Read Only Memory)112及びRAM(Random Access Memory)113を備えている。
CPU111は、ROM112や後述する記憶部114に記憶された各種プログラムを実行することにより、POS端末100を統括的に制御する。ROM112は、基本動作を行うためのプログラムが記憶される。RAM113は、POS端末100の主記憶装置であって、CPU111のワークエリアとして機能する。
また、CPU111には、各種の入出力回路(図示せず)を介して、上述したキーボード101、表示器102、表示器103、プリンタ104及びドロワ105が接続されている。
キーボード101は、POS端末100を操作するオペレータから入力されたキーの情報(以下、キー情報という)をCPU111に通知する入力デバイスである。このキーボード101には、数字や演算子を入力するためのテンキーや、商品代金の決済に必要な締めキー等の各種操作キーが配設されている。
表示器102及び表示器103は、LCD(Liquid Crystal Display)等の表示デバイスを有し、CPU111の指示に基づいて商品の名称や価格等の各種の情報を表示する。ここで、表示器102は、POS端末100を操作するオペレータ用の表示器であって、その表示面がオペレータに向けて配置されている(図1参照)。また、表示器103は、顧客用の表示器であって、その表示面が顧客に向けて配置されている(図1参照)。なお、表示器102をタッチパネル構成とすることで、キーボード101の全てのキー又は一部のキーをタッチパネル上に実現する形態としてもよい。
プリンタ104は、サーマルプリンタ等の印刷装置であって、CPU111の制御に従い、レシートやジャーナル等を印字する。ドロワ105は、現金等を収容するためのキャッシュドロワであって、CPU111の制御に従い開閉する。
また、CPU111には、各種の入出力回路(図示せず)を介して、記憶部114及び通信I/F115が接続されている。
記憶部114は、HDD(Hard Disk Drive)やフラッシュメモリ等の記憶媒体であって、CPU111が実行可能なプログラム114aや各種ファイルを記憶している。記憶部114に記憶されるプログラム114aの例としては、商品の販売登録処理用のプログラムが挙げられる。また、記憶部114に記憶されるファイルの例としては、PLUファイル114b等が挙げられる。ここで、PLUファイル114bは、各商品にユニークに割り当てられた商品コードと、その商品の名称、価格、商品分類等の商品に関する情報とを対応付けて管理するためのファイルである。
通信I/F115は、商品コード読取装置200とデータ通信を行うためのインタフェースである。CPU111は、この通信I/F115を介し、商品コード読取装置200との間で種々のデータを送受信する。
一方、商品コード読取装置200も、情報処理を実行するマイクロコンピュータとして、CPU211、ROM212及びRAM213を備えている。
CPU211は、ROM212や後述する記憶部217に記憶された各種プログラムを実行することにより、商品コード読取装置200を統括的に制御する。ROM212は、基本動作を行うためのプログラムが記憶される。RAM213は、商品コード読取装置200の主記憶装置であって、CPU211のワークエリアとして機能する。
また、CPU211には、各種の入出力回路(図示せず)を介して、上述したキーボード202、表示器203及び表示器204が接続されている。
キーボード202は、商品コード読取装置200を操作するオペレータから入力されたキー情報をCPU211に通知する入力デバイスである。このキーボード202は、販売個数の入力や、バーコードを読み取ることができない商品の商品コードの入力を行う場合等に用いられる。
表示器203及び表示器204は、LCD等の表示デバイスを有し、CPU211の指示に基づいて商品の名称や価格等の各種の情報を表示する。ここで、表示器203は、商品コード読取装置200を操作するオペレータ用の表示器であって、その表示面がオペレータに向けて配置されている(図1参照)。また、表示器204は、顧客用の表示器であって、その表示面が顧客に向けて配置されている(図1参照)。なお、表示器203をタッチパネル構成とすることで、キーボード202の全てのキー又は一部のキーを該タッチパネル上に実現する形態としてもよい。
また、CPU211には、各種の入出力回路(図示せず)を介して、通信I/F214、計時部215、撮像部216及び記憶部217が接続されている。
通信I/F214は、POS端末100とデータ通信を行うためのインタフェースである。CPU211は、この通信I/F214を介し、POS端末100との間で種々のデータを送受信する。計時部215は、RTC等の計時装置であって、現在日時(時間)をCPU211に出力する。
撮像部216は、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等のイメージセンサであって、図1に示した読取窓201内に設けられている。また、撮像部216は、CPU211の制御に従い、商品に付されたコードシンボルやサービス表示ラベルを撮像する。
ここで、図3を参照して、撮像部216の撮像領域と商品Gとの関係について説明する。図3は、撮像部216の撮像領域と商品Gとの関係の一例を示す図である。図中2点鎖線で囲った領域は、撮像部216が1フレームで撮像できる領域である撮像領域216aである。また、図3に示す商品Gには、コードラベルCLに加えて、サービス表示ラベルの一例である値引ラベルSL1が貼付されている。
コードラベルCLには、商品名「豚バラうす切り」や商品価格「200円」の他、コードシンボルとしてバーコードBC等が表されている。また、バーコードBCの下部には、このバーコードBCに組み込まれている商品コードの数値「2101234567890」が表されている。
また、値引ラベルSL1には、商品Gに関する値引額を示す文字情報「表示価格より50円引き」が表示されている。なお、サービス表示ラベルとしては、商品Gに付され、商品Gの購入時に付与されるサービスに関するサービスを表示しているものであればよい。サービス表示ラベルの他の例としては、図4に示すように、商品Gの値引率を表示した値引ラベルSL2や、図5に示すように、割増して付与するポイント数を表示したポイント割増ラベルSL3等が挙げられる。なお、サービス表示ラベルをロゴタイプ(logotype)等で表す形態としてもよい。
図2に戻り、記憶部217は、HDDやフラッシュメモリ等の記憶媒体であって、CPU211が実行可能なプログラム217aや、各種ファイルを記憶している。ここで、記憶部217に記憶されるプログラム217aの例としては、撮像部216の制御用プログラムや、コードシンボル読取用のプログラム、OCRやパターンマッチング等の画像や文字認識用のプログラム等が挙げられる。また、記憶部217は、商品コード読取装置200の動作に必要なファイルとして、ラベル特徴ファイル217bと、貼付位置定義ファイル217cとを保持している。
ラベル特徴ファイル217bは、サービス表示ラベルの特徴と、サービス表示ラベルが示すサービスの内容とを対応付けたデータテーブルである。ここで、図6は、ラベル特徴ファイル217bを説明するための図である。同図に示すように、ラベル特徴ファイル217bは、サービス表示ラベルが含む文字やシンボルの特徴を示したラベル特徴データと、当該サービス表示ラベルに対応するラベル情報として、このサービス表示ラベルによって商品に付与されるサービス内容を示したサービス情報と、を対応付けて記憶している。
より詳細には、ラベル特徴データとは、サービス表示ラベルからパターン認識やOCR等の認識処理によって抽出される情報である。即ち、図3に示すように、「表示価格より50円引き」と記載された値引ラベルSL1については、図6のラベル特徴ファイル217bにおいてNo.1のラベル特徴データに示すように、「50、円、引」という情報がパターン認識や文字認識処理によって抽出される。同様に、図4、図5に示す値引ラベルSL2、ポイント割増ラベルSL3に対しても、図6のNo.2、No.3のラベル特徴データに示すように、「10、%、引」や「10、ポイント」という値引やポイント付与に関する情報が抽出される。
また、サービス情報とは、サービス表示ラベルから読み取った値引やポイント付与等のサービス内容に関する情報を、POS端末100の販売登録処理において使用できるよう英数値に変換した情報のことである、即ち、図6に示すように、ラベル特徴データ「50、円、引」に対しては、50円の値引を意味するサービス情報「−50YEN」が対応付けて記憶されている。また、ラベル特徴データ「10、%、引」に対しては、10%の値引を意味するサービス情報「−10%」が対応付けて記憶されている。さらに、ラベル特徴データ「10、ポイント」に対しては、10ポイントのポイント割増を意味するサービス情報「+10P」が対応付けて記憶されている。
貼付位置定義ファイル217cは、商品Gに付されるコードシンボル(バーコード)と、サービス表示ラベルとの相対的な位置関係を定義したデータを保持するファイルである。貼付位置定義ファイル217cに定義されるコードシンボルとサービス表示ラベルとの位置関係は、サービス表示ラベルの正規の貼付位置を定めるためのものであって、後述する貼付位置判定部224は、この貼付位置定義ファイル217cに定義された位置関係に基づいてサービス表示ラベルが正規の位置に貼付されているか否かを判定する。
ここで、図7は、貼付位置定義ファイル217cが保持するデータの一例を模式的に示した図である。同図では、コードシンボルの存在位置(以下、コード位置CPという)と、サービス表示ラベルの存在位置(以下、ラベル位置LPという)との相対的な位置関係を示しており、コード位置CPとラベル位置LPとが略並列に所定の間隙を隔てて配置されている。なお、同図では、実際のコードシンボルの大きさに準じてコード位置CP(斜線範囲)を定めているため、当該コード位置CPの大きさからラベル位置LPとの離間距離を特定することができる。
次に、商品コード読取装置200が有する特徴的な機能について説明する。CPU211は、ROM212や記憶部217が記憶するプログラムとの協働により、図2に示すように、画像データ取込部221、コード読取部222、ラベル読取部223、貼付位置判定部224及び情報出力部225を実現させる。
画像データ取込部221は、撮像部216に撮像オン信号を出力することで撮像部216に撮像動作を開始させる。画像データ取込部221は、撮像部216が撮像した撮像領域216a内の画像データを取り込んで、RAM213に格納する。また、画像データ取込部221は、ラベル読取部223の指示を受けた場合に、撮像部216が撮像した撮像領域216a内の画像データを取り込んで、RAM213に格納する。
コード読取部222は、画像データ取込部221がRAM213に格納した画像データから、バーコードの画像を検出し、該バーコードが保持する商品コードを読み取るバーコード読取処理を行う。具体的に、コード読取部222は、RAM213に格納された1フレームの画像データを二値化し、この二値化したデータ内にバーコードに関するデータ領域が存在するか否かを検出する。コード読取部222は、バーコードに関するデータ領域を検出した場合には、そのバーコードをデコードし、デコードしたデータを商品Gの商品コードとして読み取る。そして、コード読取部222は、読み取った商品コードをRAM213に格納する。
ラベル読取部223は、画像データ取込部221がRAM213の画像ワークエリアに格納した1フレームの画像データから、サービス表示ラベルの画像を検出するラベル読取処理を行う。このラベル読取処理では、ラベル読取部223は、パターン認識やOCR文字認識によりサービス表示ラベルが含む文字や絵やシンボル等の特徴と、ラベル特徴ファイル217bのラベル特徴データ(図6参照)とを照合し、一致度の高いラベル特徴データを検出した場合に、サービス表示ラベルを検出したと判定する。そして、ラベル読取部223は、サービス表示ラベルの画像を検出すると、この検出したラベル特徴データに該当するサービス情報を貼付位置定義ファイル217cから読み取り、この読み取ったサービス情報をRAM213に格納する。
貼付位置判定部224は、画像データ取込部221により取り込まれた1フレームの画像データからコード読取部222が検出したバーコードの検出位置と、当該画像データかたラベル読取部223が検出したサービス表示ラベルの検出位置とに基づいて、バーコードとサービス表示ラベルとの相対的な位置関係と特定する。
また、貼付位置判定部224は、特定したバーコードとサービス表示ラベルとの相対的な位置関係と、貼付位置定義ファイル217cに定義されたコード位置CPとラベル位置LPとの位置関係とを比較し、両位置関係が一致(又は略一致)するか否かを判定する。そして、貼付位置判定部224は、両位置関係が一致すると判定した場合に、サービス表示ラベルが正規の位置に貼付されていると判断し、このサービス表示ラベルのサービス情報を情報出力部225からPOS端末100に送信させる。
一方、貼付位置判定部224は、両位置関係が不一致と判定した場合に、サービス表示ラベルが正規の位置に貼付されていないと判断し、その旨を報知するメッセージをオペレータ用の表示器203に表示する。そして、貼付位置判定部224は、サービス情報の送信を行うか否かをオペレータに確認する画面を表示器203に表示し、オペレータからの指示に応じて、このサービス表示ラベルのサービス情報を情報出力部225からPOS端末100に送信させる。
以下、図8及び図9を参照して、貼付位置判定部224の動作について説明する。ここで、図8及び図9は、商品Gに付されたバーコードBC及び値引ラベルSL1の位置関係と、貼付位置定義ファイル217cに定義されたコード位置CP及びラベル位置LPの位置関係とを説明するための図である。なお、バーコードBC及び値引ラベルSL1は、同一の撮像領域216a内に含まれているものとする。
図8において、バーコードBCと値引ラベルSL1との位置関係は、貼付位置定義ファイル217cに定義されたコード位置CPとラベル位置LPとの位置関係と一致している。この場合、貼付位置判定部224は、撮像領域216a内でのバーコードBCと値引ラベルSL1との相対的な位置関係と、コード位置CPとラベル位置LPとの位置関係との比較結果から両位置関係が一致と判定する。そのため、貼付位置判定部224は、この値引ラベルSL1から読み取られたサービス情報(−50YEN)を、情報出力部225からPOS端末100に送信させる。
一方、図9では、バーコードBCと値引ラベルSL1との位置関係は、貼付位置定義ファイル217cに定義されたコード位置CPとラベル位置LPとの位置関係と一致していない。この場合、貼付位置判定部224は、撮像領域216a内でのバーコードBCと値引ラベルSL1との相対的な位置関係と、コード位置CPとラベル位置LPとの位置関係との比較結果から両位置関係が不一致と判定し、サービス情報の送信を抑制する。
なお、貼付位置判定部224は、貼付位置定義ファイル217cに定義されたコード位置CPとラベル位置LPとの相対的な位置関係を維持しつつ、コード位置CP及びラベル位置LP全体の回転や拡大/縮小を行うことで、実際に撮像されたバーコードBC及び値引ラベルSL1の位置関係と比較可能な状態に、コード位置CP及びラベル位置LPを調整するものとする。
図2に戻り、情報出力部225は、RAM213に格納された商品コードを、通信I/F214を介しPOS端末100に送信(出力)する。また、情報出力部225は、貼付位置判定部224の制御に従い、RAM213に格納されたサービス情報を、商品コードとともにPOS端末100に送信する。
例えば、図3に示すように、商品Gに50円引きの値引ラベルSL1が貼付されていた場合、ラベル読取部223は、値引ラベルSL1に該当するサービス情報「−50YEN」を図6に示したラベル特徴ファイル217bから読み取り、サービス情報をRAM213に格納する。従って、商品コード読取装置200は、貼付位置判定部224からサービス情報の送信が指示された場合、バーコードBCから読み取られた「2101234567890」を表わす商品コードと、「−50YEN」を表わすサービス情報との組をPOS端末100に送信することになる。
一方、POS端末100のCPU111では、商品コード読取装置200から商品コードを受け付けると、PLUファイル114bを参照して、その商品コードに対応する商品の価格等を読み込む。さらにPOS端末100は、商品コードとともにサービス情報を受け付けた場合には、そのサービス情報が表わすサービス内容に応じた処理を施す。例えば、サービス情報が「−50YEN」を表わす場合には、商品マスタに基づいて読み込んだ価格から50円を値引して商品の販売登録を行う。
次に、図10を参照して、本実施形態のチェックアウトシステムの動作について説明する。ここで、図10は、商品コード読取装置200が行う情報出力処理の手順を示すフローチャートである。
商品コード読取装置200のCPU211は、POS端末100から入力される所定の信号により業務起動が指示されると、情報出力処理を開始する。画像データ取込部221は、撮像部216に撮像オン信号を出力し、撮像部216による撮像動作を開始する(ステップS11)。画像データ取込部221は、撮像部216が撮像した画像データをRAM213に取り込む(ステップS12)。そして、コード読取部222は、上述したバーコード読取処理を開始する(ステップS13)。
コード読取部222は、ステップS13のバーコード読取処理においてバーコードを検出したか否かを判定する(ステップS14)。バーコードを検出することができない場合には(ステップS14;No)、ステップS12に再び戻り、コード読取部222は撮像部216による撮像を継続する。
バーコードを検出した場合(ステップS14:Yes)、ラベル読取部223は、ステップS12でRAM213に取り込まれた画像データに対して、ラベル読取処理を開始する(ステップS15)。そして、ラベル読取部223は、ステップS13のラベル読取処理においてサービス表示ラベルを検出したか否かを判定する(ステップS16)。ここで、ラベル読取部223がサービス表示ラベルを検出できない場合(ステップS16;No)、ステップS22に直ちに移行する。
また、ラベル読取部223がサービス表示ラベルを検出すると(ステップS16:Yes)、貼付位置判定部224は、ステップS13のバーコード読取処理で検出されたバーコードの画像と、ステップS15のラベル読取処理で検出されたサービス表示ラベルの画像との相対的な位置関係と、貼付位置定義ファイル217cに定義されたコード位置CPとラベル位置LPとの位置関係とを比較する(ステップS17)。ここで、両位置関係が一致と判定すると(ステップS18;No)、貼付位置判定部224は、サービス表示ラベルが正規の位置に貼付されていると判断し、ステップS23に移行する。
一方、両位置関係が不一致と判定すると(ステップS18;No)、貼付位置判定部224は、サービス表示ラベルが正規の位置に貼付されていないと判断し、その旨を報知するメッセージを表示器203に表示する(ステップS19)。続いて、貼付位置判定部224は、サービス情報の送信を行うか否かを商品コード読取装置200のオペレータに確認する画面を表示し(ステップS20)、オペレータからの入力を待機する(ステップS21)。
ここで、図11は、ステップS19及びS20で表示される表示画面の一例を示す図である。同図に示すように、サービス表示ラベルが非正規の位置に貼付されていることを報知するメッセージが表示器203に表示される。これにより、商品コード読取装置200を操作するオペレータは、表示器203に表示されたこのメッセージにより、サービス表示ラベルが正規の位置に貼付されていないことを容易に把握することができる。
また、図11において、選択ボタンB11及びB12は、サービス情報の送信を行うか否かを指示するためのボタンである。ここで、選択ボタンB11は、サービス情報を送信することを指示するためのボタンであり、選択ボタンB12は、サービス情報を送信しないことを指示するためのボタンである。なお、選択ボタンB11、B12の選択は、キーボード202やタッチパネル操作により行われるものとする。
図10に戻り、貼付位置判定部224がサービス情報の非送信が指示されたと判定すると(ステップS21;No)、ステップS22に移行する。ステップS22において、情報出力部225は、RAM213に格納された商品コードを、通信I/F214を介してPOS端末100に送信し(ステップS22)、ステップS24に移行する。
一方、サービス情報の送信が指示されたと判定すると(ステップS21;Yes)、貼付位置判定部224は、情報出力部225に対しサービス情報の送信を指示する。次いで、情報出力部225は、RAM213に格納された商品コード及びサービス情報を、通信I/F214を介してPOS端末100に送信し(ステップS23)、ステップS24に移行する。
ステップS24において、CPU211は、POS端末100から入力される所定の信号により取引の終了が指示されたか否かを判定する(ステップS24)。ここで、取引終了が指示されない場合には(ステップS24;No)、ステップS12に再び戻り、ステップS12〜S23を全ての商品の販売登録が完了するまで繰り返し実行する。また、取引の終了が指示された場合(ステップS24;Yes)、画像データ取込部221は、撮像部216に撮像オフ信号を出力し、撮像部216による撮像動作を停止した後(ステップS25)、本処理を終了する。
以上のように、本実施形態の商品コード読取装置200によれば、撮像部216が撮像した画像データに含まれるコードシンボル及びサービス表示ラベルの相対的な位置関係と、貼付位置定義ファイル217cに定義された位置関係とを比較することで、サービス表示ラベルが正規の位置に貼付されているか否かを判定するため、非正規の位置に貼付されたサービス表示ラベルを検出することができる。
また、位置関係が不一致と判定した場合に、サービス情報の送信を行うか否かをオペレータに確認し、送信を行う旨の指示を受け付けた場合に、商品コードとサービス情報との送信を行うことで、当該サービス情報に応じたサービスを提供することができる。これにより、顧客に対するサービスの提供を柔軟且つ円滑に進めることができる。
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、本発明の主旨を逸脱しない範囲での種々の変更、置換、追加等が可能である。
例えば、上記実施形態では、コードシンボル及びサービス表示ラベルの相対的な位置関係が、貼付位置定義ファイル217cに定義された位置関係と一致しない場合、このサービス表示ラベルに対応するサービス情報の送信を商品コード読取装置200のオペレータに確認する形態としたが、これに限らず、ステップS19の後直ちにステップS22に移行することで、オペレータへの確認を省略する形態としてもよい。
また、上記実施形態のPOS端末100及び商品コード読取装置200で実行されるプログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
また、上記実施形態のPOS端末100及び商品コード読取装置200で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上記実施形態のPOS端末100及び商品コード読取装置200で実行されるプログラムを、インターネット等のネットワーク経由で提供又は配布するように構成してもよい。