(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024166565
(43)【公開日】2024-11-29
(54)【発明の名称】読取装置、読取プログラムおよび情報処理システム
(51)【国際特許分類】
G07G 1/00 20060101AFI20241122BHJP
G07G 1/12 20060101ALI20241122BHJP
【FI】
G07G1/00 311E
G07G1/12 301E
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023082747
(22)【出願日】2023-05-19
(71)【出願人】
【識別番号】000237639
【氏名又は名称】富士通フロンテック株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】宮崎 隆幸
【テーマコード(参考)】
3E142
【Fターム(参考)】
3E142CA12
3E142CA20
3E142GA02
3E142GA41
(57)【要約】
【課題】購入する商品の特定を容易にすることができる。
【解決手段】読取装置10は、撮影部11が撮影した画像2から第1コードと第2コードとを検出する。読取装置10は、第1コードが示す第1情報と、第2コードが示す第2情報とが一致する場合、第1コードが画像2から検出された第1検出位置2aと、第2コードが画像から検出された第2検出位置2bとを比較する。読取装置10は、第1検出位置2aと第2検出位置2bとの距離が所定値より大きい場合、第1情報および第2情報で示される商品が2つ購入されると特定する。読取装置10は、第1検出位置2aと第2検出位置2bとの距離が所定値以下である場合、第1情報および第2情報で示される商品が1つ購入されると特定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
画像を撮影する撮影部と、
前記画像からコードを検出し、検出された第1コードが示す第1情報と、検出された第2コードが示す第2情報とが一致する場合、前記第1コードが前記画像から検出された第1検出位置と、前記第2コードが前記画像から検出された第2検出位置とを比較し、前記第1検出位置と前記第2検出位置との距離が所定値より大きい場合、前記第1情報および前記第2情報で示される商品が2つ購入されると特定し、前記第1検出位置と前記第2検出位置との距離が前記所定値以下である場合、前記第1情報および前記第2情報で示される商品が1つ購入されると特定する処理部と、
を有する読取装置。
【請求項2】
前記処理部は、前記撮影部が撮影した第1画像から前記第1コードを検出し、前記撮影部が前記第1画像を撮影した後に撮影した第2画像から前記第2コードを検出し、前記第1情報と前記第2情報とが一致する場合、前記第1コードが前記第1画像から検出された前記第1検出位置と、前記第2コードが前記第2画像から検出された前記第2検出位置とを比較する、
請求項1記載の読取装置。
【請求項3】
前記処理部は、前記第1情報と前記第2情報とが一致する場合、前記第1検出位置を含む前記第1画像の第1範囲と、前記第2検出位置を含む前記第2画像の第2範囲とを比較し、前記第1範囲と前記第2範囲とが一致しない場合、前記第1情報および前記第2情報で示される商品が2つ購入されると特定し、前記第1範囲と前記第2範囲とが一致する場合、前記第1情報および前記第2情報で示される商品が1つ購入されると特定する、
請求項2記載の読取装置。
【請求項4】
コンピュータに、
撮影部が撮影した画像からコードを検出し、
検出された第1コードが示す第1情報と、検出された第2コードが示す第2情報とが一致する場合、前記第1コードが前記画像から検出された第1検出位置と、前記第2コードが前記画像から検出された第2検出位置とを比較し、
前記第1検出位置と前記第2検出位置との距離が所定値より大きい場合、前記第1情報および前記第2情報で示される商品が2つ購入されると特定し、
前記第1検出位置と前記第2検出位置との距離が前記所定値以下である場合、前記第1情報および前記第2情報で示される商品が1つ購入されると特定する、
処理を実行させる読取プログラム。
【請求項5】
商品の購入状況を管理するサーバと、
撮影部が撮影した画像からコードを検出し、検出された第1コードが示す第1情報と、検出された第2コードが示す第2情報とが一致する場合、前記第1コードが前記画像から検出された第1検出位置と、前記第2コードが前記画像から検出された第2検出位置とを比較し、前記第1検出位置と前記第2検出位置との距離が所定値より大きい場合、前記第1情報および前記第2情報で示される商品が2つ購入されると特定し、前記第1検出位置と前記第2検出位置との距離が前記所定値以下である場合、前記第1情報および前記第2情報で示される商品が1つ購入されると特定し、前記第1情報および前記第2情報で示される商品の購入状況を前記サーバに通知する読取装置と、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、読取装置、読取プログラムおよび情報処理システムに関する。
【背景技術】
【0002】
店舗のPOS(Point of Sales)端末は、スキャナでバーコードを読み取り、読み取ったバーコードの情報をサーバに通知する。例えば、POS端末は、商品のバーコードを1点ずつスキャナで読み取り、読み取ったバーコードに対応する商品を購入する商品としてサーバに登録する。
【0003】
バーコードを読み取る技術としては、例えば、全商品の合計会計額を即時に算出し、会計にかかる時間を短縮する商品会計システムが提案されている。また、例えば、レジ精算において、同一商品のバーコードを固定式のバーコードスキャナで読み取る際の誤読を自動的に防ぐことが可能なバーコードスキャナを提供する商品識別情報入力装置が提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2015-215779号公報
【特許文献2】特開2009-245136号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
POS端末が商品のバーコードを1点ずつスキャナで読み取る場合、POS端末の操作者は、商品の個数分の読取操作をすることとなる。すると、購入する商品の特定に時間がかかる。
【0006】
1つの側面では、本件は、購入する商品の特定を容易にすることを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、撮影部と処理部とを有する読取装置が提供される。撮影部は、画像を撮影する。処理部は、画像からコードを検出し、検出された第1コードが示す第1情報と、検出された第2コードが示す第2情報とが一致する場合、第1コードが画像から検出された第1検出位置と、第2コードが画像から検出された第2検出位置とを比較し、第1検出位置と第2検出位置との距離が所定値より大きい場合、第1情報および第2情報で示される商品が2つ購入されると特定し、第1検出位置と第2検出位置との距離が所定値以下である場合、第1情報および第2情報で示される商品が1つ購入されると特定する。
【発明の効果】
【0008】
1態様によれば、購入する商品の特定を容易にすることができる。
【図面の簡単な説明】
【0009】
【
図1】第1の実施の形態に係る情報処理システムの一例を示す図である。
【
図2】第2の実施の形態に係る情報処理システムの一例を示す図である。
【
図3】POS端末のハードウェアの一構成例を示す図である。
【
図4】POS端末の機能例を示すブロック図である。
【
図7】画像データの抽出処理の一例を示す図である。
【
図8】購入される商品の特定処理の一例を示す図(その1)である。
【
図9】購入される商品の特定処理の一例を示す図(その2)である。
【
図10】購入される商品の特定処理の一例を示す図(その3)である。
【
図11】購入される商品の特定処理の一例を示す図(その4)である。
【
図12】購入される商品の特定処理の一例を示す図(その5)である。
【
図13】購入時処理の手順の一例を示すフローチャートである。
【
図14】商品登録処理の手順の一例を示すフローチャート(その1)である。
【
図15】商品登録処理の手順の一例を示すフローチャート(その2)である。
【
図16】商品登録処理の手順の一例を示すフローチャート(その3)である。
【
図17】他の実施の形態に係る情報処理システムの一例を示す図である。
【発明を実施するための形態】
【0010】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。
【0011】
図1は、第1の実施の形態に係る情報処理システムの一例を示す図である。第1の実施の形態は、購入された商品を特定するものである。第1の実施の形態の情報処理システムは、サーバ1と読取装置10とを有する。サーバ1は、商品の購入状況を管理するサーバコンピュータである。例えば、サーバ1は、店舗内のPOS端末やレジから購入された商品の情報を収集するサーバコンピュータである。
【0012】
読取装置10は、商品に付与されているコードを読み取る装置である。読取装置10は、例えば、店舗に設置されたPOS端末、レジ、セルフレジ等である。また、読取装置10が読み取るコードは、例えば、バーコードである。読取装置10は、撮影部11と処理部12とを有する。
【0013】
撮影部11は、画像2を撮影する。撮影部11は、例えば、読取装置10が有するカメラやカメラスキャナ等である。処理部12は、読取装置10を制御し、所要の処理を実行可能である。処理部12は、例えば、読取装置10が有するプロセッサまたは演算回路である。処理部12は、撮影部11が撮影した画像2から顧客が購入した商品に付与されているコードを読み取る。例えば、処理部12は、コード読取開始の入力を受け付けると、撮影部11に撮影を開始させ、撮影部11から画像2を取得する。
【0014】
まず、処理部12は、画像2からコードを検出する。例えば、処理部12は、パターン認識によってバーコードのパターンを画像2から検出する。ここでは、処理部12は、第1コードおよび第2コードを画像2から検出したものとする。処理部12は、検出された第1コードが示す第1情報と、検出された第2コードが示す第2情報とを比較する。コードが示す情報は、例えば、バーコードの番号である。
【0015】
処理部12は、第1情報と第2情報とが一致しない場合、第1情報で示される商品と第2情報で示される商品とが1つずつ購入されると特定する。そして、処理部12は、第1情報で示される商品と第2情報で示される商品とが1つずつ購入されることをサーバ1に通知する。
【0016】
また、処理部12は、第1情報と第2情報とが一致する(第1情報=第2情報)場合、第1コードが画像2から検出された第1検出位置2aと、第2コードが画像2から検出された第2検出位置2bとを比較する。例えば、第1検出位置2aは、第1コードの中心の位置であり、第2検出位置2bは、第2コードの中心の位置である。処理部12は、第1検出位置2aと第2検出位置2bとの比較結果に応じて第1情報および第2情報で示される商品が購入される数を特定する。そして、処理部12は、第1情報および第2情報で示される商品の購入状況をサーバ1に通知する。
【0017】
処理部12は、第1検出位置2aと第2検出位置2bとの距離が所定値より大きい場合、第1情報および第2情報で示される商品が2つ購入されると特定する。そして、処理部12は、第1情報および第2情報で示される商品が2つ購入されることをサーバ1に通知する。また、処理部12は、第1検出位置2aと第2検出位置2bとの距離が所定値以下である場合、第1情報および第2情報で示される商品が1つ購入されると特定する。そして、処理部12は、第1情報および第2情報で示される商品が1つ購入されることをサーバ1に通知する。
【0018】
第1の実施の形態によれば、読取装置10の撮影部11は、画像2を撮影する。読取装置10の処理部12は、画像2からコードを検出する。処理部12は、検出された第1コードが示す第1情報と、検出された第2コードが示す第2情報とが一致する場合、第1コードが画像2から検出された第1検出位置2aと、第2コードが画像2から検出された第2検出位置2bとを比較する。処理部12は、第1検出位置2aと第2検出位置2bとの距離が所定値より大きい場合、第1情報および第2情報で示される商品が2つ購入されると特定する。処理部12は、第1検出位置2aと第2検出位置2bとの距離が所定値以下である場合、第1情報および第2情報で示される商品が1つ購入されると特定する。
【0019】
これにより、読取装置10は、複数の商品それぞれに付与されているコードをまとめて読み取ることができる。よって、読取装置10は、購入する商品の特定を容易にすることができる。
【0020】
なお、処理部12は、撮影部11が撮影した第1画像から第1コードを検出し、撮影部11が第1画像を撮影した後に撮影した第2画像から第2コードを検出してもよい。そして、処理部12は、第1情報と第2情報とが一致する場合、第1コードが第1画像から検出された第1検出位置2aと、第2コードが第2画像から検出された第2検出位置2bとを比較してもよい。これにより、読取装置10は、第1画像と第2画像とで近い位置にあるコードを同一のコードと判定することで、撮影部11の撮影範囲で移動する商品のコードを適切に読み取ることができる。
【0021】
また、処理部12は、第1情報と第2情報とが一致する場合、第1検出位置2aを含む第1画像の第1範囲と、第2検出位置2bを含む第2画像の第2範囲とを比較してもよい。そして、処理部12は、第1範囲と第2範囲とが一致しない場合、第1情報および第2情報で示される商品が2つ購入されると特定し、第1範囲と第2範囲とが一致する場合、第1情報および第2情報で示される商品が1つ購入されると特定してもよい。これにより、読取装置10は、第1画像と第2画像とで背景が近いコードを同一のコードと判定することで、撮影部11の撮影範囲で移動する商品のコードを適切に読み取ることができる。
【0022】
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。第2の実施の形態は、POS端末が商品のバーコードを読み取るものである。
【0023】
図2は、第2の実施の形態に係る情報処理システムの一例を示す図である。第2の実施の形態の情報処理システムは、POS端末100およびサーバ200を有する。POS端末100およびサーバ200は、ネットワーク20に接続されている。ネットワーク20は、例えば、第2の実施の形態の情報処理システムが設置された店舗のLAN(Local Area Network)である。
【0024】
POS端末100は、店舗において購入される商品の会計をする装置である。POS端末100は、顧客が購入する商品を店舗の係員がカメラスキャナにかざすと、カメラスキャナが撮影した画像から商品のバーコードを検出する。POS端末100は、検出したバーコードの番号で示される商品を顧客が購入すると特定する。そして、POS端末100は、特定した商品の合計金額の支払いを受け付ける。また、POS端末100は、特定した商品が購入されたことをサーバ200に通知する。なお、第2の実施の形態の情報処理システムは、POS端末100と同様のPOS端末を複数有していてもよい。
【0025】
サーバ200は、POS端末100から顧客が購入した商品の情報を収集するサーバコンピュータである。サーバ200は、POS端末100が商品の会計をすると、購入された商品の情報をPOS端末100から取得する。
【0026】
図3は、POS端末のハードウェアの一構成例を示す図である。POS端末100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス108を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等の電子回路で実現してもよい。
【0027】
メモリ102は、POS端末100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)等の揮発性の半導体記憶装置が使用される。
【0028】
バス108に接続されている周辺機器としては、ストレージ装置103、ネットワークインタフェース104、表示処理ユニット105、タッチパネル処理ユニット106およびI/O(Input/Output)制御ユニット107がある。
【0029】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、POS端末100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および取引履歴情報等を含む各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0030】
ネットワークインタフェース104は、ネットワーク20に接続されている。ネットワークインタフェース104は、ネットワーク20を介して、サーバ200との間でデータの送受信を行う。
【0031】
表示処理ユニット105には、ディスプレイ111a,111bが接続される。ディスプレイ111aは、POS端末100の操作画面として用いられるディスプレイである。ディスプレイ111bは、バーコードが読み取られた商品の情報が表示されるディスプレイである。ディスプレイ111a,111bとしては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置等がある。表示処理ユニット105は、プロセッサ101からの命令に従って、各種情報をディスプレイ111a,111bの画面に表示させる。
【0032】
タッチパネル処理ユニット106には、タッチパネル112a,112bが接続される。タッチパネル112aは、ディスプレイ111aの前面に配置される。また、タッチパネル112bは、ディスプレイ111bの前面に配置される。タッチパネル処理ユニット106は、操作者の指がタッチパネル112a,112bに接触あるいは接近した画面上の位置を検出し、プロセッサ101に通知する。
【0033】
I/O制御ユニット107には、キーボード113、自動釣銭機114、プリンタ115およびカメラスキャナ116が接続される。I/O制御ユニット107は、プロセッサ101の命令に従って、接続する各部にプロセッサ101からの指示を通知する。また、I/O制御ユニット107は、各部から取得した情報をバス108経由でプロセッサ101に通知する。
【0034】
キーボード113は、ディスプレイ111aに表示された画面に応じた操作をするための入力装置である。キーボード113は、押下されたキーに対応する信号をプロセッサ101に送信する。
【0035】
自動釣銭機114は、現金(硬貨、紙幣)の入出金を行う。自動釣銭機114は、プロセッサ101からの指令に従い、現金の受け入れおよび排出をする。また、自動釣銭機114は、投入された現金を計数し、プロセッサ101に通知する。
【0036】
プリンタ115は、商品の精算処理結果をロール紙に印字してレシートを発行する。プリンタ115は、プロセッサ101からの命令に従って、ロール紙に文字や図形を印刷する。
【0037】
カメラスキャナ116は、プロセッサ101からの命令に従って、カメラスキャナ116のレンズを向けた先の光景の静止画または動画のデータを生成し、メモリ102に格納する。
【0038】
また、I/O制御ユニット107は、可搬型記録媒体31からデータを読み込みまたは、可搬型記録媒体31にデータを書き込むことができる。可搬型記録媒体31は、例えば、DVD(Digital Versatile Disc)やCD(Compact Disc)等の記録媒体である。
【0039】
なお、第1の実施の形態に示した読取装置10も、
図3に示したPOS端末100と同様のハードウェアにより実現することができる。また、プロセッサ101は、第1の実施の形態に示した処理部12の一例である。また、カメラスキャナ116は、第1の実施の形態に示した撮影部11の一例である。
【0040】
POS端末100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。POS端末100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、POS端末100に実行させるプログラムを、ストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またPOS端末100に実行させるプログラムを、可搬型記録媒体31に記録しておくこともできる。可搬型記録媒体31に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体31から直接プログラムを読み出して実行することもできる。次に、POS端末100の機能について詳細に説明する。
【0041】
図4は、POS端末の機能例を示すブロック図である。POS端末100は、記憶部120、判定部130、通知部140および入出力制御部150を有する。記憶部120は、メモリ102またはストレージ装置103の記憶領域を用いて実現される。判定部130、通知部140および入出力制御部150は、メモリ102に記憶されたプログラムをプロセッサ101が実行することで実現される。
【0042】
記憶部120は、読取情報121および設定情報122を記憶する。読取情報121には、カメラスキャナ116によって撮影された画像から検出された各バーコードについての情報が登録される。設定情報122は、画像から検出された複数のバーコードが同一のバーコードであるか否かの判定に用いる値が登録される。
【0043】
判定部130は、カメラスキャナ116によって撮影された画像からバーコードを検出し、購入される商品を特定する。判定部130は、カメラスキャナ116が撮影した画像を繰り返し取得する。判定部130は、取得した画像からバーコードを検出する。例えば、判定部130は、パターン認識によって、取得した画像に含まれるバーコードのパターンを検出する。なお、判定部130は、取得した画像から複数のバーコードを検出してもよい。
【0044】
判定部130は、画像から検出されたバーコードの情報を読取情報121に登録する。例えば、判定部130は、検出されたバーコードの番号、バーコードの検出位置、検出したバーコードの検出位置から設定情報122で示される範囲を画像から抽出した画像データを読取情報121に登録する。ここで、判定部130は、検出したバーコードと番号が同一のバーコードが読取情報121に登録済みである場合、検出したバーコードの検出位置と、登録済みのバーコードの検出位置との距離が所定値以内であるか否かを判定する。また、判定部130は、検出したバーコードの画像データと、登録済みのバーコードの画像データとが一致するか否かを判定する。
【0045】
判定部130は、検出位置の距離が所定値より大きいかつ画像データが一致しないと判定した場合、検出したバーコードの番号で示される商品が購入されると特定する。なお、判定部130は、画像からバーコードが検出されなくなると、読取情報121を初期化する。
【0046】
通知部140は、判定部130が購入されると特定した商品の情報をサーバ200に通知する。入出力制御部150は、入出力装置の制御をする。入出力制御部150は、購入する商品の登録処理時に、カメラスキャナ116に読み取りを開始させる。そして、入出力制御部150は、バーコードの読み取りを終了することを示す入力をタッチパネル112bから受け付けると、カメラスキャナ116に読み取りを終了させる。そして、入出力制御部150は、支払登録処理を実行する。例えば、入出力制御部150は、判定部130が購入されると特定した商品の代金の入金を自動釣銭機114によって受け付ける。
【0047】
なお、
図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。次に、記憶部120に記憶される情報について詳細に説明する。
【0048】
図5は、読取情報の一例を示す図である。読取情報121には、カメラスキャナ116によって撮影された画像から検出された各バーコードについての情報が登録される。読取情報121には、判定部130によってバーコードが読み取られると、読み取られたバーコードに関するレコードが登録される。読取情報121は、項、BCD情報、X読取位置、Y読取位置、画像データ、BCD有効フラグおよびPOS通知フラグの項目を有する。
【0049】
項の項目には、レコードの番号が設定される。BCD情報の項目には、レコードに対応するバーコードの番号が設定される。X読取位置の項目には、レコードに対応するバーコードが画像から検出された位置のX座標が設定される。Y読取位置の項目には、レコードに対応するバーコードが画像から検出された位置のY座標が設定される。画像データの項目には、レコードに対応するバーコードが検出された位置から所定の範囲を抽出した画像データが設定される。なお、図では、画像データの類似度合いを画像データの項目の文字列の類似度合いで示す。
【0050】
BCD有効フラグの項目には、レコードに対応するバーコードで示される商品が購入されると特定されたか否かを示す情報が設定される。例えば、レコードに対応するバーコードで示される商品が購入されると特定された場合、BCD有効フラグの項目には1が設定される。また、レコードに対応するバーコードで示される商品が購入されると特定されなかった場合、BCD有効フラグの項目は、空欄に設定される。
【0051】
POS通知フラグの項目には、レコードに対応するバーコードで示される商品が購入されることをサーバ200に通知済みであるか否かを示す情報が設定される。例えば、レコードに対応するバーコードで示される商品が購入されることをサーバ200に通知済みである場合、POS通知フラグの項目には1が設定される。また、レコードに対応するバーコードで示される商品が購入されることをサーバ200に通知済みでない場合、POS通知フラグの項目は空欄に設定される。
【0052】
図6は、設定情報の一例を示す図である。設定情報122は、画像から検出された複数のバーコードが同一のバーコードであるか否かの判定に用いる値が登録される。設定情報122には、X読取座標範囲、Y読取座標範囲、画像データ範囲および画像データ一致率の値が設定される。X読取座標範囲は、同一のバーコードと判定するX座標の範囲である。例えば、X読取座標範囲の値が25であり、検出位置のX座標が400のバーコードが検出されている場合、当該バーコードと同じ番号で、X座標が375~425の範囲で検出されたバーコードは、検出済みのバーコードと同一のバーコードであると判定される。
【0053】
Y読取座標範囲は、同一のバーコードと判定するY座標の範囲である。例えば、Y読取座標範囲の値が25であり、検出位置のY座標が300のバーコードが検出されている場合、当該バーコードと同じ番号で、Y座標が275~325の範囲で検出されたバーコードは、検出済みのバーコードと同一のバーコードであると判定される。画像データ範囲は、画像データとして抽出される範囲である。例えば、画像データ範囲の値が50である場合、検出されたバーコードの中心からX座標とY座標がそれぞれ±50の範囲が画像データとして抽出される。画像データ一致率は、バーコードの画像データが一致すると判定される範囲である。例えば、画像データ一致率の値が70の場合、70%以上の画素が一致する画像データ同士は、一致すると判定される。次に、画像データの抽出処理について説明する。
【0054】
図7は、画像データの抽出処理の一例を示す図である。判定部130は、カメラスキャナ116によって撮影された画像41からバーコードの画像データを抽出する。画像41は、カメラスキャナ116によって撮影されたX方向800画素、Y方向600画素の画像である。画像41の左下の座標は、(0,0)である。画像41の左上の座標は、(0,600)である。画像41の右上の座標は、(800,600)である。画像41の右下の座標は、(800,0)である。
【0055】
判定部130は、画像41からバーコードを検出する。例えば、判定部130は、パターン認識によって、画像41に含まれるバーコードのパターンを検出する。判定部130は、バーコードの検出位置を特定する。例えば、判定部130は、検出されたバーコードの中心位置をバーコードの検出位置として特定する。そして、判定部130は、検出位置から設定情報122で設定された範囲を画像データとして抽出する。
【0056】
図7の例では、判定部130は、(450,200)が中心位置であるバーコードを検出したものとする。判定部130は、設定情報122に設定された画像データ範囲の値が50であるため、画像41のX=400~500、Y=150~250の範囲を画像データとして抽出する。次に、読み取ったバーコードを用いた購入される商品の特定処理について説明する。
【0057】
図8は、購入される商品の特定処理の一例を示す図(その1)である。判定部130は、カメラスキャナ116によって撮影された画像からバーコードを検出し、検出したバーコードの情報を読取情報121に登録する。そして、判定部130は、検出したバーコードが読取情報121に登録済みのバーコードと同一であるか否かを判定し、同一でないと判定した場合、検出したバーコードの番号で示される商品を購入される商品として特定する。
【0058】
図8の例では、判定部130は、カメラスキャナ116によって撮影された画像から(400,300)が中心位置である番号が49000123のバーコードを検出したものとする。すると、判定部130は、項の項目が1のレコードを読取情報121に追加し、追加したレコードのBCD情報の項目に49000123を設定する。また、判定部130は、追加したレコードのX読取位置の項目に400を設定し、Y読取位置の項目に300を設定する。また、判定部130は、追加したレコードの画像データの項目に、項の項目が1のレコードに対応するバーコードの検出位置から設定情報122で示される画像データ範囲を画像から抽出した画像データを設定する。
【0059】
判定部130は、BCD情報の項目が49000123であるレコードが読取情報121に登録済みでないため、項の項目が1のレコードに対応するバーコードと同一のバーコードが読取情報121に登録済みではないと判定する。そして、判定部130は、49000123で示される商品が1つ購入されることを特定し、項の項目が1のレコードのBCD有効フラグの項目を1に設定する。通知部140は、49000123で示される商品が1つ購入されることをサーバ200に通知し、項の項目が1のレコードのPOS通知フラグの項目を1に設定する。
【0060】
図9は、購入される商品の特定処理の一例を示す図(その2)である。
図9の例では、判定部130は、画像から(400,300)が中心位置である番号が49000123のバーコードと、(420,320)が中心位置である番号が49000456のバーコードとを検出したものとする。
【0061】
すると、判定部130は、項の項目が1のレコードを読取情報121に追加し、項の項目が1のレコードのBCD情報の項目に49000123を設定する。判定部130は、項の項目が1のレコードのX読取位置の項目に400を設定し、Y読取位置の項目に300を設定する。判定部130は、項の項目が1のレコードの画像データの項目に、項の項目が1のレコードに対応するバーコードの検出位置から設定情報122で示される画像データ範囲を画像から抽出した画像データを設定する。
【0062】
また、判定部130は、項の項目が2のレコードを読取情報121に追加し、項の項目が2のレコードのBCD情報の項目に49000456を設定する。また、判定部130は、項の項目が2のレコードのX読取位置の項目に420を設定し、Y読取位置の項目に320を設定する。また、判定部130は、項の項目が2のレコードの画像データの項目に、項の項目が2のレコードに対応するバーコードの検出位置から設定情報122で示される画像データ範囲を画像から抽出した画像データを設定する。
【0063】
判定部130は、BCD情報の項目が49000123であるレコードが読取情報121に登録済みでないため、項の項目が1のレコードに対応するバーコードと同一のバーコードが読取情報121に登録済みではないと判定する。また、判定部130は、BCD情報の項目が49000456であるレコードが読取情報121に登録済みでないため、項の項目が2のレコードに対応するバーコードと同一のバーコードが読取情報121に登録済みではないと判定する。
【0064】
そして、判定部130は、49000123で示される商品が1つ、49000456で示される商品が1つ購入されることを特定し、項の項目が1のレコードおよび項の項目が2のレコードのBCD有効フラグの項目を1に設定する。通知部140は、49000123で示される商品が1つ、49000456で示される商品が1つ購入されることをサーバ200に通知し、項の項目が1のレコードおよび項の項目が2のレコードのPOS通知フラグの項目を1に設定する。このようにして、判定部130は、画像から複数のバーコードをまとめて読み取ることができる。
【0065】
図10は、購入される商品の特定処理の一例を示す図(その3)である。
図10の例では、判定部130は、画像から(400,300)が中心位置である番号が49000123のバーコードと、(550,440)が中心位置である番号が49000123のバーコードとを検出したものとする。
【0066】
すると、判定部130は、項の項目が1のレコードを読取情報121に追加し、項の項目が1のレコードのBCD情報の項目に49000123を設定する。判定部130は、項の項目が1のレコードのX読取位置の項目に400を設定し、Y読取位置の項目に300を設定する。判定部130は、項の項目が1のレコードの画像データの項目に、項の項目が1のレコードに対応するバーコードの検出位置から設定情報122で示される画像データ範囲を画像から抽出した画像データを設定する。
【0067】
また、判定部130は、項の項目が2のレコードを読取情報121に追加し、項の項目が2のレコードのBCD情報の項目に49000123を設定する。判定部130は、項の項目が2のレコードのX読取位置の項目に550を設定し、Y読取位置の項目に440を設定する。判定部130は、項の項目が2のレコードの画像データの項目に、項の項目が2のレコードに対応するバーコードの検出位置から設定情報122で示される画像データ範囲を画像から抽出した画像データを設定する。
【0068】
判定部130は、BCD情報の項目が49000123であるレコードが読取情報121に登録済みでないため、項の項目が1のレコードに対応するバーコードと同一のバーコードが読取情報121に登録済みではないと判定する。次に、判定部130は、BCD情報の項目が49000123である項の項目が1のレコードが読取情報121に登録済みであるため、項の項目が2のレコードに対応するバーコードと項の項目が1のレコードに対応するバーコードとを比較する。
【0069】
判定部130は、項の項目が2のレコードに対応するバーコードの検出位置と、項の項目が1のレコードに対応するバーコードの検出位置との距離が所定値以内であるか否かを判定する。例えば、判定部130は、項の項目が2のレコードのX読取位置の項目に設定されたX座標と、項の項目が1のレコードのX読取位置の項目に設定されたX座標との距離が設定情報122で示されるX読取座標範囲以内であるか否かを判定する。また、判定部130は、項の項目が2のレコードのY読取位置の項目に設定されたY座標と、項の項目が1のレコードのY読取位置の項目に設定されたY座標との距離が設定情報122で示されるY読取座標範囲以内であるか否かを判定する。判定部130は、X座標の距離がX読取座標範囲以内かつY座標の距離がY読取座標範囲以内である場合、検出位置の距離が所定値以内であると判定する。
【0070】
また、判定部130は、項の項目が2のレコードの画像データの項目に設定された画像データと、項の項目が1のレコードの画像データの項目に設定された画像データとが一致するか否かを判定する。例えば、判定部130は、各画像データの位置、大きさ、角度を調整してバーコード部分が重なるようにし、重なった画素同士を比較する。そして、判定部130は、重なった画素のうち画素値が一致した画素の割合が、設定情報122で示される画像データ一致率以上である場合、画像データが一致すると判定する。
【0071】
図10の例では、判定部130は、検出位置の距離が所定値以内ではないかつ画像データが一致しないため、項の項目が2のレコードに対応するバーコードと同一のバーコードが読取情報121に登録済みではないと判定する。そして、判定部130は、49000123で示される商品が2つ購入されることを特定し、項の項目が1のレコードおよび項の項目が2のレコードのBCD有効フラグの項目を1に設定する。通知部140は、49000123で示される商品が2つ購入されることをサーバ200に通知し、項の項目が1のレコードおよび項の項目が2のレコードのPOS通知フラグの項目を1に設定する。
【0072】
このようにして、判定部130は、番号が同じ複数のバーコードをまとめて読み取ることができる。なお、バーコードを1点ずつ読み取るスキャナで番号が同じ複数のバーコードをまとめて読み取ろうとすると、二度読み防止機能によって1点のバーコードしか読み取ることができない。一方、第2の実施の形態のPOS端末100では、カメラスキャナ116の撮影範囲に番号が同じ複数のバーコードをかざすだけで、判定部130は、カメラスキャナ116の撮影した画像から複数のバーコードを読み取ることができる。よって、判定部130は、購入する商品の特定を容易にすることができる。
【0073】
図11は、購入される商品の特定処理の一例を示す図(その4)である。
図11の例では、判定部130は、画像から(400,300)が中心位置である番号が49000123のバーコードと、(410,310)が中心位置である番号が49000123のバーコードとを検出したものとする。また、判定部130は、画像から(550,440)が中心位置である番号が49000456のバーコードを検出したものとする。
【0074】
すると、判定部130は、項の項目が1のレコードを読取情報121に追加し、項の項目が1のレコードのBCD情報の項目に49000123を設定する。判定部130は、項の項目が1のレコードのX読取位置の項目に400を設定し、Y読取位置の項目に300を設定する。判定部130は、項の項目が1のレコードの画像データの項目に、項の項目が1のレコードに対応するバーコードの検出位置から設定情報122で示される画像データ範囲を画像から抽出した画像データを設定する。
【0075】
また、判定部130は、項の項目が2のレコードを読取情報121に追加し、項の項目が2のレコードのBCD情報の項目に49000123を設定する。判定部130は、項の項目が2のレコードのX読取位置の項目に410を設定し、Y読取位置の項目に310を設定する。判定部130は、項の項目が2のレコードの画像データの項目に、項の項目が2のレコードに対応するバーコードの検出位置から設定情報122で示される画像データ範囲を画像から抽出した画像データを設定する。
【0076】
また、判定部130は、項の項目が3のレコードを読取情報121に追加し、項の項目が3のレコードのBCD情報の項目に49000456を設定する。判定部130は、項の項目が3のレコードのX読取位置の項目に550を設定し、Y読取位置の項目に440を設定する。判定部130は、項の項目が3のレコードの画像データの項目に、項の項目が3のレコードに対応するバーコードの検出位置から設定情報122で示される画像データ範囲を画像から抽出した画像データを設定する。
【0077】
判定部130は、BCD情報の項目が49000123であるレコードが読取情報121に登録済みでないため、項の項目が1のレコードに対応するバーコードと同一のバーコードが読取情報121に登録済みではないと判定する。次に、判定部130は、BCD情報の項目が49000123である項の項目が1のレコードが読取情報121に登録済みであるため、項の項目が2のレコードに対応するバーコードと項の項目が1のレコードに対応するバーコードとを比較する。
【0078】
判定部130は、項の項目が2のレコードに対応するバーコードの検出位置と、項の項目が1のレコードに対応するバーコードの検出位置との距離が所定値以内であるか否かを判定する。また、判定部130は、項の項目が2のレコードの画像データの項目に設定された画像データと、項の項目が1のレコードの画像データの項目に設定された画像データとが一致するか否かを判定する。
【0079】
図11の例では、判定部130は、検出位置の距離が所定値以内であるため、項の項目が2のレコードに対応するバーコードと同一のバーコードが読取情報121に登録済みであると判定する。また、判定部130は、BCD情報の項目が49000456であるレコードが読取情報121に登録済みでないため、項の項目が3のレコードに対応するバーコードと同一のバーコードが読取情報121に登録済みではないと判定する。
【0080】
そして、判定部130は、49000123で示される商品が1つ、49000456で示される商品が1つ購入されることを特定し、項の項目が1のレコードおよび項の項目が3のレコードのBCD有効フラグの項目を1に設定する。通知部140は、49000123で示される商品が1つ、49000456で示される商品が1つ購入されることをサーバ200に通知し、項の項目が1のレコードおよび項の項目が3のレコードのPOS通知フラグの項目を1に設定する。
【0081】
このようにして、判定部130は、複数のバーコードをまとめて読み取ることができる。ここで、撮影時のぶれによって1つのバーコードが複数のバーコードとして画像に写ってしまうことがある。そこで、判定部130は、番号が同一で検出位置の距離が所定値以内のバーコードが読取情報121に登録済みである場合、同一のバーコードを検出済みであると判定し、当該バーコードの番号で示される商品の購入数を追加しない。これにより、判定部130は、バーコードを適切に読み取ることができる。
【0082】
図12は、購入される商品の特定処理の一例を示す図(その5)である。
図12の例では、判定部130は、1枚目の画像から(400,300)が中心位置である番号が49000123のバーコードと、(550,440)が中心位置である番号が49000456のバーコードとを検出したものとする。また、判定部130は、1枚目の画像の撮影後に撮影された2枚目の画像から(200,100)が中心位置である番号が49000123のバーコードを検出したものとする。
【0083】
すると、判定部130は、項の項目が1のレコードを読取情報121に追加し、項の項目が1のレコードのBCD情報の項目に49000123を設定する。判定部130は、項の項目が1のレコードのX読取位置の項目に400を設定し、Y読取位置の項目に300を設定する。判定部130は、項の項目が1のレコードの画像データの項目に、項の項目が1のレコードに対応するバーコードの検出位置から設定情報122で示される画像データ範囲を1枚目の画像から抽出した画像データを設定する。
【0084】
また、判定部130は、項の項目が2のレコードを読取情報121に追加し、項の項目が2のレコードのBCD情報の項目に49000456を設定する。判定部130は、項の項目が2のレコードのX読取位置の項目に550を設定し、Y読取位置の項目に440を設定する。判定部130は、項の項目が2のレコードの画像データの項目に、項の項目が2のレコードに対応するバーコードの検出位置から設定情報122で示される画像データ範囲を1枚目の画像から抽出した画像データを設定する。
【0085】
また、判定部130は、項の項目が3のレコードを読取情報121に追加し、項の項目が3のレコードのBCD情報の項目に49000123を設定する。判定部130は、項の項目が3のレコードのX読取位置の項目に200を設定し、Y読取位置の項目に100を設定する。判定部130は、項の項目が3のレコードの画像データの項目に、項の項目が3のレコードに対応するバーコードの検出位置から設定情報122で示される画像データ範囲を2枚目の画像から抽出した画像データを設定する。
【0086】
判定部130は、BCD情報の項目が49000123であるレコードが読取情報121に登録済みでないため、項の項目が1のレコードに対応するバーコードと同一のバーコードが読取情報121に登録済みではないと判定する。また、判定部130は、BCD情報の項目が49000456であるレコードが読取情報121に登録済みでないため、項の項目が2のレコードに対応するバーコードと同一のバーコードが読取情報121に登録済みではないと判定する。
【0087】
判定部130は、BCD情報の項目が49000123である項の項目が1のレコードが読取情報121に登録済みであるため、項の項目が3のレコードに対応するバーコードと項の項目が1のレコードに対応するバーコードとを比較する。判定部130は、項の項目が3のレコードに対応するバーコードの検出位置と、項の項目が1のレコードに対応するバーコードの検出位置との距離が所定値以内であるか否かを判定する。また、判定部130は、項の項目が3のレコードの画像データの項目に設定された画像データと、項の項目が1のレコードの画像データの項目に設定された画像データとが一致するか否かを判定する。
【0088】
図12の例では、判定部130は、画像データが一致するため、項の項目が3のレコードに対応するバーコードと同一のバーコードが読取情報121に登録済みであると判定する。そして、判定部130は、49000123で示される商品が1つ、49000456で示される商品が1つ購入されることを特定し、項の項目が1のレコードおよび項の項目が2のレコードのBCD有効フラグの項目を1に設定する。通知部140は、49000123で示される商品が1つ、49000456で示される商品が1つ購入されることをサーバ200に通知し、項の項目が1のレコードおよび項の項目が2のレコードのPOS通知フラグの項目を1に設定する。
【0089】
このようにして、判定部130は、複数のバーコードをまとめて読み取ることができる。ここで、カメラスキャナ116が一定時間おきに画像を撮影し、バーコードがカメラスキャナ116にかざされると、同一のバーコードがカメラスキャナ116が撮影した画像に複数回写ることがある。同一のバーコードが複数回カメラスキャナ116が撮影した画像に写る場合、商品の包装のしわ、商品を持つ手の位置、商品を持つ手の服装等のバーコードの周囲の情報が一致することが多い。
【0090】
そこで、判定部130は、バーコードの検出位置から所定の範囲の画像データが一致するバーコードが読取情報121に登録済みである場合、同一のバーコードを検出済みであると判定し、当該バーコードの番号で示される商品の購入数を追加しない。これにより、判定部130は、バーコードを適切に読み取ることができる。以下、POS端末100が実行する処理について詳細に説明する。
【0091】
図13は、購入時処理の手順の一例を示すフローチャートである。以下、
図13に示す処理をステップ番号に沿って説明する。
[ステップS11]判定部130、通知部140および入出力制御部150は、商品登録処理を実行する。商品登録処理の詳細については後述する(
図14~16参照)。
【0092】
[ステップS12]入出力制御部150は、支払登録処理を実行する。例えば、入出力制御部150は、ステップS11で購入されると特定された商品の代金の入金を自動釣銭機114によって受け付ける。なお、入出力制御部150は、クレジットカードや電子マネー等による支払いを受け付けてもよい。
【0093】
図14は、商品登録処理の手順の一例を示すフローチャート(その1)である。以下、
図14に示す処理をステップ番号に沿って説明する。
[ステップS21]判定部130は、設定情報122を読み込む。
【0094】
[ステップS22]判定部130は、読取情報121を初期化する。
[ステップS23]入出力制御部150は、カメラスキャナ116に読み取りを開始させる。
【0095】
[ステップS24]判定部130は、カメラスキャナ116が撮影した画像を取得する。
[ステップS25]判定部130は、ステップS24で取得した、カメラスキャナ116が撮影した画像からバーコードを検出する。例えば、判定部130は、パターン認識によって、ステップS24で取得した画像に含まれるバーコードのパターンを検出する。なお、判定部130は、ステップS24で取得した画像から複数のバーコードを検出してもよい。
【0096】
[ステップS26]判定部130は、ステップS24で取得した、カメラスキャナ116が撮影した画像にバーコードが存在するか否かを判定する。例えば、判定部130は、ステップS25でバーコードが検出された場合、カメラスキャナ116が撮影した画像にバーコードが存在すると判定する。判定部130は、カメラスキャナ116が撮影した画像にバーコードが存在すると判定した場合、処理をステップS27に進める。また、判定部130は、カメラスキャナ116が撮影した画像にバーコードが存在しないと判定した場合、処理をステップS24に進める。
【0097】
[ステップS27]判定部130は、ステップS25で検出されたバーコードを1つ選択し、読取情報121に登録する。例えば、判定部130は、ステップS25で検出されたバーコードを選択し、選択したバーコードの番号を読み取る。判定部130は、項の項目が1のレコードを読取情報121に追加し、項の項目が1のレコードのBCD情報の項目に、選択したバーコードから読み取った番号を設定する。判定部130は、項の項目が1のレコードのX読取位置の項目に選択したバーコードの検出位置のX座標を設定し、Y読取位置の項目に選択したバーコードの検出位置のY座標を設定する。判定部130は、項の項目が1のレコードの画像データの項目に、選択したバーコードの検出位置から設定情報122で示される画像データ範囲をステップS24で取得した画像から抽出した画像データを設定する。
【0098】
[ステップS28]判定部130は、ステップS27で選択したバーコードの番号で示される商品が購入されると特定する。そして、判定部130は、ステップS27で読取情報121に追加したレコードのBCD有効フラグの項目を1に設定する。
【0099】
[ステップS29]判定部130は、ステップS24で取得した、カメラスキャナ116が撮影した画像に他のバーコードが存在するか否かを判定する。例えば、判定部130は、ステップS25で複数のバーコードが検出された場合、カメラスキャナ116が撮影した画像に他のバーコードが存在すると判定する。判定部130は、カメラスキャナ116が撮影した画像に他のバーコードが存在すると判定した場合、処理をステップS30に進める。また、判定部130は、カメラスキャナ116が撮影した画像に他のバーコードが存在しないと判定した場合、処理をステップS36に進める。
【0100】
[ステップS30]判定部130は、ステップS25またはステップS39で検出された、未選択のバーコードを1つ選択し、読取情報121に登録する。例えば、判定部130は、検出された未選択のバーコードを選択し、選択したバーコードの番号を読み取る。判定部130は、項の項目が登録済みのレコードの連番となるレコードを読取情報121に追加し、追加したレコードのBCD情報の項目に、選択したバーコードから読み取った番号を設定する。判定部130は、追加したレコードのX読取位置の項目に選択したバーコードの検出位置のX座標を設定し、Y読取位置の項目に選択したバーコードの検出位置のY座標を設定する。判定部130は、追加したレコードの画像データの項目に、選択したバーコードの検出位置から設定情報122で示される画像データ範囲をステップS24またはステップS38で取得した画像から抽出した画像データを設定する。
【0101】
図15は、商品登録処理の手順の一例を示すフローチャート(その2)である。以下、
図15に示す処理をステップ番号に沿って説明する。
[ステップS31]判定部130は、ステップS30で選択したバーコードと番号が同一のバーコードが読取情報121に存在するか否かを判定する。例えば、判定部130は、ステップS30で追加したレコード以外の、BCD情報の項目にステップS30で選択したバーコードの番号が設定されたレコードを読取情報121から検索する。判定部130は、レコードが検索された場合、番号が同一のバーコードが読取情報121に存在すると判定する。判定部130は、番号が同一のバーコードが読取情報121に存在すると判定した場合、処理をステップS32に進める。また、判定部130は、番号が同一のバーコードが読取情報121に存在しないと判定した場合、処理をステップS34に進める。
【0102】
[ステップS32]判定部130は、ステップS30で選択したバーコードの検出位置と、選択したバーコードと番号が同一のバーコードの検出位置との距離が所定値以内であるか否かを判定する。例えば、判定部130は、ステップS31で検索されたレコードそれぞれのX読取位置の項目に設定されたX座標と、ステップS30で追加したレコードのX読取位置の項目に設定されたX座標との距離を比較する。また、判定部130は、ステップS31で検索されたレコードそれぞれのY読取位置の項目に設定されたY座標と、ステップS30で追加したレコードのY読取位置の項目に設定されたY座標との距離を比較する。そして、判定部130は、X座標の距離が設定情報122で示されるX読取座標範囲以内かつY座標の距離が設定情報122で示されるY読取座標範囲以内であるレコードがある場合、検出位置の距離が所定値以内であると判定する。
【0103】
判定部130は、検出位置の距離が所定値以内であると判定した場合、処理をステップS35に進める。また、判定部130は、検出位置の距離が所定値以内ではないと判定した場合、処理をステップS33に進める。
【0104】
[ステップS33]判定部130は、ステップS30で選択したバーコードの画像データと、選択したバーコードと番号が同一のバーコードの画像データとが一致するか否かを判定する。例えば、判定部130は、ステップS31で検索されたレコードそれぞれの画像データの項目に設定された画像データと、ステップS30で追加したレコードの画像データの項目に設定された画像データとを比較する。ここで、判定部130は、比較する画像データの位置、大きさ、角度を調整してバーコード部分が重なるようにし、重なった画素同士を比較する。そして、判定部130は、重なった画素のうち画素値が一致した画素の割合が、設定情報122で示される画像データ一致率以上である場合、画像データが一致すると判定する。判定部130は、ステップS30で選択したバーコードの画像データと、比較したいずれかの画像データとが一致する場合、画像データが一致すると判定する。
【0105】
判定部130は、画像データが一致すると判定した場合、処理をステップS35に進める。また、判定部130は、画像データが一致しないと判定した場合、処理をステップS34に進める。
【0106】
[ステップS34]判定部130は、ステップS30で選択したバーコードの番号で示される商品が購入されると特定する。そして、判定部130は、ステップS30で読取情報121に追加したレコードのBCD有効フラグの項目を1に設定する。
【0107】
[ステップS35]判定部130は、ステップS24またはステップS38で取得した、カメラスキャナ116が撮影した画像に未選択のバーコードが存在するか否かを判定する。判定部130は、カメラスキャナ116が撮影した画像に未選択のバーコードが存在すると判定した場合、処理をステップS30に進める。また、判定部130は、カメラスキャナ116が撮影した画像に未選択のバーコードが存在しないと判定した場合、処理をステップS36に進める。
【0108】
[ステップS36]通知部140は、読取情報121に登録された、BCD有効フラグの項目が1かつPOS通知フラグが1以外のレコードのBCD情報に登録された番号をサーバ200に通知する。
【0109】
[ステップS37]通知部140は、ステップS36で通知したレコードのPOS通知フラグの項目を1に設定する。
[ステップS38]判定部130は、カメラスキャナ116が撮影した画像を取得する。
【0110】
[ステップS39]判定部130は、ステップS38で取得した、カメラスキャナ116が撮影した画像からバーコードを検出する。例えば、判定部130は、パターン認識によって、ステップS38で取得した画像に含まれるバーコードのパターンを検出する。なお、判定部130は、ステップS38で取得した画像から複数のバーコードを検出してもよい。
【0111】
[ステップS40]判定部130は、ステップS38で取得した、カメラスキャナ116が撮影した画像にバーコードが存在するか否かを判定する。例えば、判定部130は、ステップS39でバーコードが検出された場合、カメラスキャナ116が撮影した画像にバーコードが存在すると判定する。判定部130は、カメラスキャナ116が撮影した画像にバーコードが存在すると判定した場合、処理をステップS30に進める。また、判定部130は、カメラスキャナ116が撮影した画像にバーコードが存在しないと判定した場合、処理をステップS41に進める。
【0112】
図16は、商品登録処理の手順の一例を示すフローチャート(その3)である。以下、
図16に示す処理をステップ番号に沿って説明する。
[ステップS41]判定部130は、読取情報121を初期化する。
【0113】
[ステップS42]入出力制御部150は、残り商品があるか否かを判定する。例えば、入出力制御部150は、バーコードの読み取りを終了することを示す入力をタッチパネル112bから受け付けなかった場合、残り商品があると判定する。入出力制御部150は、残り商品があると判定した場合、処理をステップS24に進める。また、入出力制御部150は、残り商品がないと判定した場合、処理をステップS43に進める。
【0114】
[ステップS43]入出力制御部150は、カメラスキャナ116に読み取りを終了させる。
このように、入出力制御部150は、カメラスキャナ116に画像を撮影させ、判定部130は、カメラスキャナ116が撮影した画像からバーコードを検出する。判定部130は、検出したバーコードの番号が読取情報121に登録済みのバーコードの番号と一致する場合、検出したバーコードの検出位置と登録済みのバーコードの検出位置とを比較する。そして、判定部130は、検出位置の距離が所定値より大きい場合、検出されたバーコードが読取情報121に登録済みのバーコードと同一ではないと特定し、検出されたバーコードの番号で示される商品の購入数を追加する。また、判定部130は、検出位置の距離が所定値以内である場合、検出されたバーコードが読取情報121に登録済みのバーコードと同一であると特定し、検出されたバーコードの番号で示される商品の購入数を追加しない。
【0115】
これにより、判定部130は、複数のバーコードをまとめて読み取ることができる。また、判定部130は、登録済みのバーコードと検出位置が近いバーコードの番号で示される商品の購入数を追加しないことで、撮影時のぶれによって1つのバーコードが複数のバーコードとして画像に写ってしまった場合でも、適切に読み取ることができる。よって、判定部130は、購入する商品の特定を容易にすることができる。
【0116】
また、判定部130は、カメラスキャナ116が撮影した画像を繰り返し取得し、取得した画像からバーコードを検出するため、画像から検出したバーコードの検出位置を、当該画像よりも前に撮影された画像から検出されたバーコードの検出位置とも比較する。そして、判定部130は、検出位置の距離が所定値より大きい場合、検出されたバーコードの番号で示される商品の購入数を追加し、検出位置の距離が所定値以内である場合、検出されたバーコードの番号で示される商品の購入数を追加しない。
【0117】
ここで、カメラスキャナ116に撮影させるため、商品がカメラスキャナ116の撮影範囲で移動する。カメラスキャナ116が画像を繰り返し撮影している場合、画像に写った商品が、次の画像でも近い位置に写る。そこで、判定部130は、以前の画像で検出されたバーコードと番号が同じで検出位置が近いバーコードの番号で示される商品の購入数を追加しないことで、カメラスキャナ116の撮影範囲で移動する商品のバーコードを適切に読み取ることができる。
【0118】
また、判定部130は、検出したバーコードの番号が読取情報121に登録済みのバーコードの番号と一致する場合、検出したバーコードの検出位置から所定の範囲の画像データと登録済みのバーコードの画像データとを比較する。そして、判定部130は、画像データが一致しない場合、検出されたバーコードの番号で示される商品の購入数を追加し、画像データが一致する場合、検出されたバーコードの番号で示される商品の購入数を追加しない。これにより、判定部130は、バーコードの周囲の情報が以前の画像で検出されたバーコードと一致するバーコードの番号で示される商品の購入数を追加しないことで、カメラスキャナ116の撮影範囲で移動する商品のバーコードを適切に読み取ることができる。
【0119】
〔その他の実施の形態〕
第2の実施の形態では、POS端末100がバーコードを読み取り、購入される商品を特定する商品登録処理を実行していたが、他の装置が商品登録処理を実行してもよい。例えば、セルフレジが商品登録処理を実行してもよい。
【0120】
図17は、他の実施の形態に係る情報処理システムの一例を示す図である。他の実施の形態の情報処理システムは、セルフレジ100aおよびサーバ200aを有する。セルフレジ100aおよびサーバ200aは、ネットワーク20aに接続されている。ネットワーク20aは、例えば、店舗のLANである。
【0121】
セルフレジ100aは、店舗の顧客が操作して商品の会計をする装置である。セルフレジ100aは、顧客が購入する商品をカメラスキャナにかざすと、第2の実施の形態の商品登録処理と同様に、カメラスキャナが撮影した画像から購入される商品を特定する。そして、セルフレジ100aは、特定した商品の合計金額の支払いを受け付ける。また、セルフレジ100aは、特定した商品が購入されたことをサーバ200aに通知する。サーバ200aは、セルフレジ100aから顧客が購入した商品の情報を収集する。
【0122】
このように、セルフレジ100aは、複数のバーコードをまとめて読み取ることで、購入する商品の特定を容易にすることができる。よって、セルフレジ100aは、会計にかかる時間を短縮することができる。
【0123】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0124】
1 サーバ
2 画像
2a 第1検出位置
2b 第2検出位置
10 読取装置
11 撮影部
12 処理部