(57)【要約】【課題】認識処理中に変更された対象物を認識することができる画像認識装置、商品情報処理装置及び画像認識方法を提供する。【解決手段】実施形態によれば、画像認識装置は、取得部と、制御部と、を備える。取得部は、対象物を示すパターンを撮影した画像を取得する。制御部は、前記取得部が取得した第１画像からパターン領域を特定し、特定された前記パターン領域が含むパターンを認識し、前記取得部から第２画像を取得し、前記第１画像の対象物の配置と前記第２画像の対象物の配置とが一致するか判定し、前記第１画像の前記対象物の前記配置と前記第２画像の前記対象物の前記配置とが一致しないと判定した場合に、前記第２画像からパターン領域を特定し、特定された前記パターン領域が含むパターンを認識する。【選択図】図１
2016119053.tif 000002
【特許請求の範囲】
【請求項１】
パターンを認識する画像認識装置であって、
対象物を示すパターンを撮影した画像を取得する取得部と、
前記取得部が取得した第１画像からパターン領域を特定し、
特定された前記パターン領域が含むパターンを認識し、
前記取得部から第２画像を取得し、
前記第１画像の対象物の配置と前記第２画像の対象物の配置とが一致するか判定し、
前記第１画像の前記対象物の前記配置と前記第２画像の前記対象物の前記配置とが一致しないと判定した場合に、前記第２画像からパターン領域を特定し、特定された前記パターン領域が含むパターンを認識する、
制御部と、
を備える画像認識装置。
【請求項２】
前記制御部は、
対象物の配置が変更された変更領域において、前記第２画像からパターン領域を特定し、特定された前記パターン領域が含むパターンを認識する、
前記請求項１に記載の画像認識装置。
【請求項３】
前記制御部は、
前記取得部から所定の間隔で第２画像を取得し、
前記第２画像を取得する度に、前記第１画像と前記第２画像とが一致するか判定する、
前記請求項１又は２に記載の画像認識装置。
【請求項４】
前記制御部は、
前記第１画像と前記第２画像とが不一致である場合、前記取得部が取得した第１画像からパターン領域を特定した後に、又は、特定された前記パターン領域が含むパターンを認識した後に、第２画像からパターン領域を特定し、特定された前記パターン領域が含むパターンを認識する、
前記請求項１乃至３の何れか１項に記載の画像認識装置。
【請求項５】
パターンを認識する商品情報処理装置であって、
対象物を示すパターンを撮影した画像を取得する取得部と、
前記取得部が取得した第１画像からパターン領域を特定し、
特定された前記パターン領域が含むパターンを認識し、
前記取得部から第２画像を取得し、
前記第１画像の対象物の配置と前記第２画像の対象物の配置とが一致するか判定し、
前記第１画像の前記対象物の前記配置と前記第２画像の前記対象物の前記配置とが一致しないと判定した場合に、前記第２画像からパターン領域を特定し、特定された前記パターン領域が含むパターンを認識し、
認識された前記パターンに対応する商品情報を取得し、
取得された前記商品情報に基づいて決済処理を行う、
制御部と、
を備える商品情報処理装置。
【請求項６】
パターンを認識する画像認識方法であって、
対象物を示すパターンを撮影した第１画像を取得することと、
取得された第１画像からパターン領域を特定することと、
特定された前記パターン領域が含むパターンを認識することと、
前記対象物を示すパターンを撮影した第２画像を取得することと、
前記第１画像の対象物の配置と前記第２画像の対象物の配置とが一致するか判定することと、
前記第１画像の前記対象物の前記配置と前記第２画像の前記対象物の前記配置とが一致しないと判定した場合に、前記第２画像からパターン領域を特定し、特定された前記パターン領域が含むパターンを認識することと、
を備える画像認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像認識装置、商品情報処理装置及び画像認識方法に関する。
【背景技術】
【０００２】
カメラが撮影する画像から商品を認識する画像認識装置は、所定の位置に商品がセットされた後に画像を撮影し、撮影された画像を用いて商品を認識する。画像認識装置が認識処理を実行する間に、利用者は商品を追加したり商品を動かすことがある。この場合、従来、画像認識装置は、変更後の商品を認識することができないという課題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２８９２８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するために、認識処理中に変更された対象物を認識することができる画像認識装置、商品情報処理装置及び画像認識方法を提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、画像認識装置は、取得部と、制御部と、を備える。取得部は、対象物を示すパターンを撮影した画像を取得する。制御部は、前記取得部が取得した第１画像からパターン領域を特定し、特定された前記パターン領域が含むパターンを認識し、前記取得部から第２画像を取得し、前記第１画像の対象物の配置と前記第２画像の対象物の配置とが一致するか判定し、前記第１画像の前記対象物の前記配置と前記第２画像の前記対象物の前記配置とが一致しないと判定した場合に、前記第２画像からパターン領域を特定し、特定された前記パターン領域が含むパターンを認識する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係る商品情報処理装置の構成例を概略的に示す図である。
【図２】図２は、第１実施形態に係る商品情報処理装置の構成例を示すブロック図である。
【図３】図３は、第１実施形態に係る商品情報処理装置が撮影した画像の例を示す図である。
【図４】図４は、第１実施形態に係る商品情報処理装置の動作例を示すフローチャートである。
【図５】図５は、第１実施形態に係る商品情報処理装置の動作例を示すフローチャートである。
【図６】図６は、第２実施形態に係る商品情報処理装置の動作例を示すフローチャートである。
【図７】図７は、第３実施形態に係る商品情報処理装置の動作例を示すフローチャートである。
【図８】図８は、第３実施形態に係る商品情報処理装置の動作例を示すフローチャートである。
【図９】図９は、第３実施形態に係る商品情報処理装置の動作例を示すフローチャートである。
【図１０】図１０は、第４実施形態に係る商品情報処理装置が撮影した画像の例を示す図である。
【図１１】図１１は、第４実施形態に係る商品情報処理装置の動作例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、図面を参照しながら実施形態について説明する。
（第１実施形態）
まず、第１実施形態に係る商品情報処理装置（画像認識装置）について説明する。  
図１は、第１実施形態に係る商品情報処理装置１の構成例を概略的に示す。
【０００８】
商品情報処理装置１は、カゴ１０内の商品について決済処理する。商品情報処理装置１は、商品を販売する店舗などに設置される。商品情報処理装置１は、カゴ１０が所定の位置に配置された場合に、カゴ１０内の商品について決済処理を実行する。商品情報処理装置１は、利用者が自ら決済処理を行うセルフレジとして設置されてもよい。また、商品情報処理装置１は、店舗の店員が決済処理をする通常のレジとして設置されてもよい。
【０００９】
商品情報処理装置１は、商品（対象物）を特定するパターンに基づいて、商品を認識する。カゴ１０内の商品は、商品を特定するパターンを備える。たとえば、商品を特定するパターンは、バーコード、ＱＲコード（登録商標）、文字、数字又はマークなどである。また、商品情報処理装置１は、オブジェクト認識（商品そのもののパターンの認識）により商品を認識しても良い。ここでは、商品を特定するパターンは、バーコードであるものとする。
【００１０】
図１が示すように、商品情報処理装置１は、筐体２、カメラ３、表示部５、及び、操作部６などを備える。
【００１１】
筐体２は、商品情報処理装置１の外形を形成するフレームである。筐体２は、カゴ１０を設置することができるように形成される。図１が示す例においては、筐体２は、コの字型であり、カゴ１０を積載することができるように形成される。  
また、筐体２は、内部にＣＰＵなどの制御部を格納する。
【００１２】
カメラ３は、カゴ１０内の商品を撮影する。図１が示す例においては、カメラ３は、カゴ１０を上方から撮影するように設置される。カメラ３は、斜め上方からカゴ１０内を撮影するように設置されてもよい。カメラ３が設置される位置及び向きは、特定の構成に限定されるものではない。
【００１３】
なお、商品情報処理装置１は、複数個のカメラ３を備えてもよい。この場合、複数のカメラ３は、それぞれ異なる位置及び角度でカゴ１０内の商品を撮影するように設置されてもよい。
【００１４】
たとえば、カメラ３は、ＣＣＤカメラなどである。また、カメラ３は、不可視光を撮影するものであってもよい。カメラ３の構成は、特定の構成に限定されるものではない。
【００１５】
表示部５は、制御部の制御により種々の情報を表示する表示装置である。表示部５は、たとえば、液晶モニタなどである。
【００１６】
操作部６は、商品情報処理装置１の利用者によって、種々の操作指示が入力される。操作部６は、操作者に入力された操作指示のデータを制御部へ送信する。操作部６は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。また、操作部６は、利用者からジェスチャーの入力を受け付けてもよい。
【００１７】
ここでは、操作部６は、タッチパネルであり、表示部５と一体的に形成されているものとする。
【００１８】
なお、カメラ３、表示部５又は操作部６は、筐体２と一体的に形成されてもよい。  
また、商品情報処理装置１は、必要に応じて、適宜照明などの他の構成を備え、又は、上記の構成を欠いてもよい。たとえば、利用者がカゴ１０を置くと自動的に認識処理を開始し予め登録したクレジットカード情報で決済する場合、商品情報処理装置１は、表示部５又は／及び操作部６を欠いてもよい。
【００１９】
次に、商品情報処理装置１の構成例について説明する。  
図２は、商品情報処理装置１の構成例を示すブロック図である。  
図２が示すように、商品情報処理装置１は、カメラ３、表示部５、操作部６、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４、及び、カメラインターフェース２５などを備える。  
カメラ３、表示部５、及び、操作部６は、上記の通りである。
【００２０】
ＣＰＵ２１は、商品情報処理装置１全体の制御を司る制御部である。ＣＰＵ２１は、ＲＯＭ２２あるいはＮＶＭ２４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、ＣＰＵ２１は、ＲＯＭ２２に記憶されているプログラムを実行することにより、商品情報処理装置１の動作制御あるいは商品情報処理装置１の運用形態に応じた種々の処理を行う。
【００２１】
なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００２２】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態で商品情報処理装置１に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予め商品情報処理装置１の仕様に応じて組み込まれる。
【００２３】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。ＲＡＭ２３は、ＣＰＵ２１からの命令に基づき種々のアプリケーションプログラムを格納している。また、ＲＡＭ２３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００２４】
ＮＶＭ２４は、例えば、ＥＥＰＲＯＭ（登録商標）あるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。ＮＶＭ２４は、商品情報処理装置１の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、ＮＶＭ２４では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【００２５】
カメラインターフェース２５は、ＣＰＵ２１がカメラ３と通信するためのインターフェースである。カメラインターフェース２５（取得部に対応）は、カメラ３が撮影した画像を取得する。即ち、ＣＰＵ２１は、カメラインターフェース２５を通じて、カメラ３が撮影した画像を取得する。
【００２６】
次に、ＣＰＵ２１が実現する機能について説明する。  
まず、ＣＰＵ２１は、カゴ１０内の商品を示すバーコード（パターン）を含む商品画像（第１画像）を取得する機能を有する。商品画像は、商品を特定するためのバーコード（パターン）を含む。たとえば、ＣＰＵ２１は、カメラ３を用いてカゴ１０内の商品を撮影し、商品画像（第１画像）を取得する。なお、ＣＰＵ２１は、外部装置から商品画像（第１画像）を取得してもよい。
【００２７】
図３は、ＣＰＵ２１が取得する商品画像の例を示す。  
図３が示すように、商品画像は、カゴ１０内を、カゴ１０の上方から撮影した画像である。また、商品画像に含まれる商品のバーコードは、カメラ３が撮影することができるように上面を向いている。
【００２８】
図３が示す例では、カゴ１０は、３つの商品を含んでいるが、カゴ１０内の商品の個数は、所定の個数に限定されるものではない。また、商品画像は、カゴ１０に格納されていない商品のバーコードを含んでもよい。
【００２９】
また、ＣＰＵ２１は、商品画像（第１画像）から、商品を特定するバーコード（パターン）が写るバーコード領域（パターン領域）を特定する機能を有する。たとえば、ＣＰＵ２１は、商品画像に対してパターンマッチングなどを用いるラスタスキャンを実行し、バーコード領域を特定する。なお、ＣＰＵ２１がバーコード領域を特定する方法は、特定の方法に限定されるものではない。
【００３０】
また、ＣＰＵ２１は、バーコード領域（パターン領域）が含むバーコード（パターン）を認識する機能を有する。たとえば、ＣＰＵ２１は、バーコード領域が含むバーコードをデコードする。また、パターン領域がパターンとして文字列を含む場合、ＣＰＵ２１は、パターン領域に対してＯＣＲ処理などを実行して、パターンを認識する。ＣＰＵ２１がパターンを認識する方法は、特定の方法に限定されるものではない。
【００３１】
また、ＣＰＵ２１は、バーコード（パターン）を認識した後に、再度、カゴ１０内の商品を示すバーコード（パターン）を含む商品画像（第２画像）を取得する機能を有する。たとえば、ＣＰＵ２１は、カメラ３を用いてカゴ１０内の商品を撮影し、商品画像（第２画像）を取得する。なお、ＣＰＵ２１は、外部装置から商品画像（第２画像）を取得してもよい。
【００３２】
また、ＣＰＵ２１は、第１画像の商品の配置と第２画像の商品の配置とが一致するか判定する機能を有する。
【００３３】
たとえば、ＣＰＵ２１は、第１画像と第２画像とが一致するか判定する。たとえば、ＣＰＵ２１は、相似画素又は相違画素に基づいて、第１画像と第２画像とが一致するか判定する。ここでは、ＣＰＵ２１は、以下の様に第１画像と第２画像とが一致するか判定する。
【００３４】
まず、ＣＰＵ２１は、各座標における第１画像の画素値と第２画像の画素値との差の絶対値を算出する。ＣＰＵ２１は、算出された絶対値が閾値以下なら、当該座標の画素を相似画素と判定する。また、ＣＰＵ２１は、画素において算出された絶対値が閾値以下でなければ、当該画素を相違画素と判定する。ＣＰＵ２１は、第１画像又は第２画像の画素数に対して相違画素の割合が所定の閾値以下なら、第１画像と第２画像とが一致すると判定する。また、ＣＰＵ２１は、第１画像又は第２画像の画素数に対して相違画素の割合が所定の閾値以下でないなら、第１画像と第２画像とが不一致すると判定する。
【００３５】
なお、ＣＰＵ２１が第１画像の商品の配置と第２画像の商品の配置とが一致するか判定する方法は、特定の方法に限定されるものではない。
【００３６】
また、ＣＰＵ２１は、第１画像の商品の配置と第２画像の商品の配置とが不一致である判定した場合に、第２画像から、商品を特定するバーコードが写るバーコード領域を特定し、特定されたバーコード領域が含むバーコードを認識する機能を有する。ＣＰＵ２１が第２画像からバーコード領域を特定する方法は、ＣＰＵ２１が第１画像からバーコード領域を特定する方法と同様である。また、ＣＰＵ２１が第２画像のバーコード領域が含むバーコードを認識する方法は、ＣＰＵ２１が第１画像のバーコード領域が含むバーコードを認識する方法と同様である。
【００３７】
また、ＣＰＵ２１は、バーコード領域が含むバーコードをデコードしたデコード結果に対応する商品情報を取得する機能を有する。たとえば、ＣＰＵ２１は、バーコードをデコードして、デコード結果として商品コードを取得する。ＣＰＵ２１は、バーコードからデコードされた商品コードに対応する商品情報を取得する。
【００３８】
たとえば、ＮＶＭ２４が商品コードと商品情報とを対応付けた商品テーブルを格納し、ＣＰＵ２１は、当該商品テーブルを参照して、商品情報を取得してもよい。また、商品情報処理装置１の上位装置が商品テーブルを格納し、ＣＰＵ２１は、通信部などを通じて、上位装置から商品コードに対応する商品情報を取得してもよい。
【００３９】
商品情報は、商品名及び価格などを備える。商品情報の構成は、特定の構成に限定されるものではない。
【００４０】
また、ＣＰＵ２１は、取得された商品情報に基づいて決済処理をする機能を有する。たとえば、ＣＰＵ２１は、商品情報に基づいて決済金額を算出し、利用者から決済処理を受け付ける。たとえば、ＣＰＵ２１は、クレジットカードを用いて決済処理を行ってもよいし、現金を用いて決済処理を行ってもよい。
【００４１】
次に、商品情報処理装置１の動作例について説明する。  
図４は、商品情報処理装置１の動作例を説明するためのフローチャートである。  
ここでは、利用者は、バーコード領域が上面を向くようにカゴ１０内に商品を投入しているものとする。また、利用者は、カメラ３がカゴ１０内の商品を撮影することが可能な所定の位置にカゴ１０を設置しているものとする。
【００４２】
まず、ＣＰＵ２１は、スタートボタンが押下されたか判定する（ＡＣＴ１１）。スタートボタンは、カゴ１０内の商品について決済処理を開始するボタンである。スタートボタンは、表示部５に表示されたアイコンであってもよいし、他の操作部であってもよい。
【００４３】
スタートボタンが押下されていないと判定すると（ＡＣＴ１１、ＮＯ）、ＣＰＵ２１は、ＡＣＴ１１へ戻る。
【００４４】
スタートボタンが押下されたと判定すると（ＡＣＴ１１、ＹＥＳ）、ＣＰＵ２１は、カメラ３を用いてカゴ１０内を撮影し、第１画像を取得する（ＡＣＴ１２）。
【００４５】
第１画像を取得すると、ＣＰＵ２１は、取得された第１画像からバーコード領域を特定する（ＡＣＴ１３）。バーコード領域を特定すると、ＣＰＵ２１は、特定されたバーコード領域が含むバーコードをデコードする（ＡＣＴ１４）。
【００４６】
バーコードをデコードすると、ＣＰＵ２１は、カメラ３を用いてカゴ１０内を撮影し、第２画像を取得する（ＡＣＴ１５）。
【００４７】
第２画像を取得すると、ＣＰＵ２１は、ＡＣＴ１２で取得された第１画像とＡＣＴ１５で取得された第２画像とが一致するか判定する（ＡＣＴ１６）。
【００４８】
第１画像と第２画像とが一致しないと判定すると（ＡＣＴ１６、ＮＯ）、ＣＰＵ２１は、ＡＣＴ１３に戻る。この場合、ＣＰＵ２１は、ＡＣＴ１３で第２画像に対してバーコード領域を特定する。また、ＣＰＵ２１は、ＡＣＴ１４で第２画像から特定されたバーコード領域が含むバーコードをデコードする。また、ＣＰＵ２１は、ＡＣＴ１５で第３画像を取得する。また、ＣＰＵ２１は、ＡＣＴ１６で第２画像と第３画像とが一致するか判定する。第２画像と第３画像とが一致しない場合は、ＣＰＵ２１は、ＡＣＴ１３に戻り、同様の動作を繰り返す。
【００４９】
なお、ＣＰＵ２１は、ＡＣＴ１２へ戻って、再度第２画像を取得し直してもよい。
【００５０】
第１画像と第２画像とが一致すると判定すると、（ＡＣＴ１６、ＹＥＳ）、ＣＰＵ２１は、バーコードをデコードしたデコード結果に対応する商品情報を取得する（ＡＣＴ１７）。即ち、ＣＰＵ２１は、第１画像又は第２画像のバーコード領域が含むバーコードに対応する商品情報を取得する。
【００５１】
商品情報を取得すると、ＣＰＵ２１は、取得された商品情報に基づいて決済処理を行う（ＡＣＴ１８）。  
決済処理を行うと、ＣＰＵ２１は、動作を終了する。
【００５２】
なお、ＣＰＵ２１は、商品情報を取得してから、第１画像と第２画像とが一致するか判定してもよい。
【００５３】
また、第２画像と第３画像とが一致しない場合、ＣＰＵ２１は、バーコードの認識処理に失敗した旨を通知してもよい。
【００５４】
また、ＣＰＵ２１は、ＡＣＴ１６で所定の回数、画像が不一致であると判定した場合に、バーコードを検出できない旨を通知してもよい。
【００５５】
次に、ＣＰＵ２１が第１画像と第２画像とが一致するか判定する判定処理（ＡＣＴ１６）について説明する。  
図５は、判定処理の動作例を説明するためのフローチャートである。
【００５６】
ここでは、ＣＰＵ２１は、ＲＡＭ２３に、相似画素の数をカウントする相似画素カウンタと、相違画素の数をカウントする相違画素カウンタと、を設定するものとする。
【００５７】
まず、ＣＰＵ２１は、第１画像と第２画像とにおいて比較される画素の座標を設定する（ＡＣＴ２１）。即ち、ＣＰＵ２１は、未比較の画素を示す座標を設定する。
【００５８】
座標を設定すると、ＣＰＵ２１は、設定された座標において第１画像の画素と第２画像の画素とが一致するか判定する（ＡＣＴ２２）。即ち、ＣＰＵ２１は、両画素値の差の絶対値が所定の閾値以下であるか判定する。
【００５９】
両画素が一致すると判定すると（ＡＣＴ２２、ＹＥＳ）、ＣＰＵ２１は、相似画素カウンタをカウントアップする（ＡＣＴ２３）。両画素が一致しないと判定すると（ＡＣＴ２２、ＮＯ）、ＣＰＵ２１は、相違画素カウンタをカウントアップする（ＡＣＴ２４）。
【００６０】
相似画素カウンタをカウントアップした場合（ＡＣＴ２３）、又は、相違画素カウンタをカウントアップした場合（ＡＣＴ２４）、ＣＰＵ２１は、すべての座標において画素が一致するかの判定を終了したか判定する（ＡＣＴ２５）。
【００６１】
すべての座標において画素が一致するかの判定を終了していないと判定すると（ＡＣＴ２５、ＮＯ）、ＣＰＵ２１は、ＡＣＴ２１に戻る。
【００６２】
すべての座標において画素が一致するかの判定を終了したと判定すると（ＡＣＴ２５、ＹＥＳ）、ＣＰＵ２１は、相似画素カウンタ又は相違画素カウンタに基づいて、相違画素の割合を計算する（ＡＣＴ２６）。
【００６３】
相違画素の割合を計算すると、ＣＰＵ２１は、計算された相違画素の割合が所定の閾値以下であるか判定する（ＡＣＴ２７）。
【００６４】
相違画素の割合が所定の閾値以下であると判定すると（ＡＣＴ２７、ＹＥＳ）、ＣＰＵ２１は、第１画像と第２画像とが一致すると判定する（ＡＣＴ２８）。
【００６５】
相違画素の割合が所定の閾値以下でないと判定すると（ＡＣＴ２７、ＮＯ）、ＣＰＵ２１は、第１画像と第２画像とが不一致であると判定する（ＡＣＴ２９）。
【００６６】
第１画像と第２画像とが一致すると判定した場合（ＡＣＴ２８）、第１画像と第２画像とが不一致であると判定した場合（ＡＣＴ２９）、ＣＰＵ２１は、動作を終了する。
【００６７】
なお、ＣＰＵ２１は、相似画素又は相違画素のいずれかを数をカウントしてもよい。
【００６８】
以上のように構成された商品情報処理装置は、バーコードの認識処理の後に、商品配置の変更又は商品の追加の有無を判定することができる。商品配置の変更又は商品の追加があった場合、商品情報処理装置は、再度、バーコードの認識処理を行うことができる。その結果、商品情報処理装置は、利用者が意図するバーコード認識結果を得ることができる。
（第２実施形態）
次に、第２実施形態について説明する。  
第２実施形態に係る商品情報処理装置１は、第１画像と第２画像との不一致箇所に対してバーコード認識処理を行う点で、第１実施形態に係る商品情報処理装置１と異なる。従って、その他の点については、同一の符号を付して詳細な説明を省略する。
【００６９】
まず、ＣＰＵ２１が実現する機能について説明する。  
ＣＰＵ２１は、商品の配置が変更された変更領域において、第２画像からバーコード領域を特定し、特定されたバーコード領域が含むバーコードを認識する機能を有する。
【００７０】
たとえば、ＣＰＵ２１は、第１画像と第２画像とが不一致である領域を変更領域と特定する。たとえば、ＣＰＵ２１は、相似画素又は相違画素に基づいて変更領域を決定する。たとえば、ＣＰＵ２１は、第１画像と第２画像とにおいて相違画素の密度が高い領域を矩形で囲うことで、変更領域を決定してもよい。  
また、ＣＰＵ２１は、膨張処理により相違画素間を埋めラベリング処理を実行することにより、変更領域を特定してもよい。  
ＣＰＵ２１が変更領域を特定する方法は、特定の方法に限定されるものではない。
【００７１】
次に、第２実施形態に係る商品情報処理装置１の動作例について説明する。  
図６は、第２実施形態に係る商品情報処理装置１の動作例を説明するためのフローチャートである。
【００７２】
ここでは、ＣＰＵ２１は、ＲＡＭ２３に、第１画像と第２画像とが不一致であることを示す不一致フラグを格納するレジスタを設定する。
【００７３】
まず、ＣＰＵ２１は、スタートボタンが押下されたか判定する（ＡＣＴ３１）。  
スタートボタンが押下されていないと判定すると（ＡＣＴ３１、ＮＯ）、ＣＰＵ２１は、ＡＣＴ３１へ戻る。
【００７４】
スタートボタンが押下されたと判定すると（ＡＣＴ３１、ＹＥＳ）、ＣＰＵ２１は、レジスタを初期化する（ＡＣＴ３２）。即ち、ＣＰＵ２１は、不一致フラグを立てない。
【００７５】
レジスタを初期化すると、ＣＰＵ２１は、カメラ３を用いてカゴ１０内を撮影し、第１画像を取得する（ＡＣＴ３３）。
【００７６】
第１画像を取得すると、ＣＰＵ２１は、レジスタを参照し、不一致フラグが立っているか判定する（ＡＣＴ３４）。不一致フラグが立っていないと判定すると（ＡＣＴ３４、ＮＯ）、ＣＰＵ２１は、第１画像からバーコード領域を特定する（ＡＣＴ３５）。
【００７７】
バーコード領域を特定すると、ＣＰＵ２１は、特定されたバーコード領域が含むバーコードをデコードする（ＡＣＴ３６）。バーコードをデコードすると、ＣＰＵ２１は、カメラ３を用いてカゴ１０内を撮影し、第２画像を取得する（ＡＣＴ３７）。
【００７８】
第２画像を取得すると、ＣＰＵ２１は、第１画像と第２画像とが一致するか判定する（ＡＣＴ３８）。第１画像と第２画像とが一致しないと判定すると（ＡＣＴ３８、ＮＯ）、ＣＰＵ２１は、レジスタに不一致フラグを立てる（ＡＣＴ３９）。不一致フラグを立てると、ＣＰＵ２１は、ＡＣＴ３６におけるデコード結果をＲＡＭ２３に格納する（ＡＣＴ４０）。
【００７９】
デコード結果を格納すると、ＣＰＵ２１は、ＡＣＴ３４に戻る。
【００８０】
不一致フラグが立っていると判定すると（ＡＣＴ３４、ＹＥＳ）、ＣＰＵ２１は、変更領域においてバーコード領域を特定する（ＡＣＴ４１）。変更領域においてバーコード領域を特定すると、ＣＰＵ２１は、ＡＣＴ３６へ進む。この場合、ＣＰＵ２１は、ＡＣＴ３６で、変更領域のバーコード領域が含むバーコードをデコードする。また、ＣＰＵ２１は、ＡＣＴ３７で第３画像を取得する。また、ＣＰＵ２１は、ＡＣＴ３８で第２画像と第３画像とが一致するか判定する。第２画像と第３画像とが一致しない場合、ＣＰＵ２１は、ＡＣＴ３９に進み、同様の動作を行う。
【００８１】
第１画像と第２画像とが一致すると判定すると（ＡＣＴ３８、ＹＥＳ）、ＣＰＵ２１は、レジスタを参照し、不一致フラグが立っているか判定する（ＡＣＴ４２）。不一致フラグが立っていると判定すると（ＡＣＴ４２、ＹＥＳ）、ＣＰＵ２１は、ＲＡＭ２３から、ＡＣＴ３９で格納されたデコード結果を取得する（ＡＣＴ４３）。
【００８２】
不一致フラグが立っていないか判定した場合（ＡＣＴ４２、ＹＥＳ）、又は、ＡＣＴ３９で格納されたデコード結果を取得した場合（ＡＣＴ４３）、ＣＰＵ２１は、ＡＣＴ３６のデコード結果又は／及びＡＣＴ４３のデコード結果に対応する商品情報を取得する（ＡＣＴ４４）。
【００８３】
商品情報を取得すると、ＣＰＵ２１は、取得された商品情報に基づいて決済処理を行う（ＡＣＴ４５）。決済処理を行うと、ＣＰＵ２１は、動作を終了する。
【００８４】
なお、ＣＰＵ２１は、商品情報を取得してから、第１画像と第２画像とが一致するか判定してもよい。
【００８５】
また、第２画像と第３画像とが一致しない場合、ＣＰＵ２１は、バーコードの認識処理に失敗した旨を通知してもよい。
【００８６】
なお、ＣＰＵ２１は、ＡＣＴ３８で所定の回数、画像が不一致であると判定した場合に、バーコードを検出できない旨を通知してもよい。
【００８７】
以上のように構成された商品情報処理装置は、バーコード認識処理後に商品が変更された場合に、変更領域に対してバーコード認識処理を実行する。その結果、商品情報処理装置は、変動のあった商品に対してバーコード認識処理を行うことができる。そのため、商品情報処理装置は、より高速にバーコード認識処理を行うことができる。
（第３実施形態）
次に、第３実施形態について説明する。  
第３実施形態に係る商品情報処理装置１は、バーコードを認識する認識処理と、第１画像と第２画像とを比較する比較判定処理とを平行して行う点で、第１実施形態に係る商品情報処理装置１と異なる。従って、他の構成については同一の符号を付して詳細な説明を省略する。
【００８８】
まず、ＣＰＵ２１が実現する機能について説明する。  
ＣＰＵ２１は、所定の間隔で、第２画像を取得する機能を有する。たとえば、ＣＰＵ２１は、１秒ごとに、第２画像を取得し直す。たとえば、ＣＰＵ２１は、所定の間隔で、カメラ３を用いてカゴ１０内の商品を撮影し、第２画像を取得する。なお、ＣＰＵ２１は、所定の間隔で、外部装置から第２画像を取得してもよい。
【００８９】
また、ＣＰＵ２１は、第２画像を取得する度に、第１画像と第２画像とが一致するか判定する機能を有する。
【００９０】
また、ＣＰＵ２１は、第１画像と第２画像とが不一致である場合に、第１画像からバーコード領域を特定した後に、第２画像からバーコード領域を特定し、特定された前記バーコード領域が含むバーコードを認識する機能を有する。
【００９１】
また、ＣＰＵ２１は、第１画像と第２画像とが不一致である場合に、第１画像からバーコード領域が含むバーコードをデコードした後に、第２画像からバーコード領域を特定し、特定された前記バーコード領域が含むバーコードを認識する機能を有する。
【００９２】
次に、第３実施形態に係る商品情報処理装置１の動作例について説明する。  
図７は、第３実施形態に係る商品情報処理装置１の動作例を説明するためのフローチャートである。
【００９３】
まず、ＣＰＵ２１は、スタートボタンが押下されたか判定する（ＡＣＴ５１）。  
スタートボタンが押下されていないと判定すると（ＡＣＴ５１、ＮＯ）、ＣＰＵ２１は、ＡＣＴ５１へ戻る。
【００９４】
スタートボタンが押下されたと判定すると（ＡＣＴ５１、ＹＥＳ）、ＣＰＵ２１は、カメラ３を用いてカゴ１０内を撮影し、第１画像を取得する（ＡＣＴ５２）。
【００９５】
第１画像を取得すると、ＣＰＵ２１は、バーコードを認識する認識処理（ＡＣＴ５３）と、第１画像と第２画像とを比較する比較判定処理（ＡＣＴ５４）とを並行して実行する。認識処理と比較判定処理とについては、後に詳述する。
【００９６】
認識処理と比較判定処理とを実行すると、ＣＰＵ２１は、デコード結果に対応する商品情報を取得する（ＡＣＴ５５）。
【００９７】
商品情報を取得すると、ＣＰＵ２１は、取得された商品情報に基づいて決済処理を行う（ＡＣＴ５６）。決済処理を行うと、ＣＰＵ２１は、動作を終了する。
【００９８】
なお、認識処理と比較判定処理とは、異なるハードウエアによって実行されてもよい。
【００９９】
次に、認識処理及び比較判定処理の動作例について説明する。  
ここでは、ＣＰＵ２１は、ＲＡＭ２３に、第１画像と第２画像とが一致することを示す一致フラグ、又は、不一致であることを示す不一致フラグを格納するレジスタＡを設定する。また、ＣＰＵ２１は、ＲＡＭ２３に、認識処理が終了したことを示す終了フラグを格納するレジスタＢを設定する。初期状態において、レジスタＡは、一致フラグを格納するものとする。また、初期状態において、レジスタＢは、終了フラグを格納していないものとする。
【０１００】
まず、認識処理の動作例について説明する。  
図８は、認識処理の動作例を説明するためのフローチャートである。  
まず、ＣＰＵ２１は、第１画像においてバーコード領域を特定する（ＡＣＴ６１）。バーコード領域を特定すると、ＣＰＵ２１は、レジスタＡに一致フラグがセットされているか判定する（ＡＣＴ６２）。
【０１０１】
レジスタＡに一致フラグがセットされていると判定すると（ＡＣＴ６２、ＹＥＳ）、ＣＰＵ２１は、特定されたバーコード領域が含むバーコードをデコードする（ＡＣＴ６３）。バーコードをデコードすると、ＣＰＵ２１は、レジスタＡに一致フラグがセットされているか判定する（ＡＣＴ６４）。
【０１０２】
レジスタＡに一致フラグがセットされていない（不一致フラグがセットされている）と判定した場合（ＡＣＴ６２、ＮＯ）、又は、レジスタＡに一致フラグがセットされていない（不一致フラグがセットされている）と判定した場合（ＡＣＴ６４、ＮＯ）、ＣＰＵ２１は、第２画像を取得する（ＡＣＴ６５）。
【０１０３】
第２画像を取得すると、ＣＰＵ２１は、ＡＣＴ６１へ戻る。この場合、ＣＰＵ２１は、ＡＣＴ６１で、第２画像からバーコード領域を特定する。また、ＣＰＵ２１は、ＡＣＴ６３で、第２画像から特定されたバーコード領域が含むバーコードを認識する。
【０１０４】
レジスタＡに一致フラグがセットされていると判定すると（ＡＣＴ６４、ＹＥＳ）、ＣＰＵ２１は、レジスタＢに終了フラグをセットする（ＡＣＴ６６）。
【０１０５】
終了フラグをセットすると、ＣＰＵ２１は、動作を終了する。
【０１０６】
次に、比較判定処理の動作例について説明する。  
図９は、比較判定処理の動作例について説明するためのフローチャートである。  
まず、ＣＰＵ２１は、第２画像を取得する（ＡＣＴ７１）。第２画像を取得すると、ＣＰＵ２１は、第１画像と第２画像とが一致するか判定する（ＡＣＴ７２）。
【０１０７】
第１画像と第２画像とが一致すると判定すると（ＡＣＴ７２、ＹＥＳ）、ＣＰＵ２１は、レジスタＡに一致フラグをセットする（ＡＣＴ７３）。第１画像と第２画像とが一致しないと判定すると（ＡＣＴ７２、ＮＯ）、ＣＰＵ２１は、レジスタＡに不一致フラグをセットする（ＡＣＴ７４）。
【０１０８】
レジスタＡに一致フラグをセットした場合（ＡＣＴ７３）、又は、レジスタＡに不一致フラグをセットした場合（ＡＣＴ７４）、ＣＰＵ２１は、レジスタＢに終了フラグがセットされているか判定する（ＡＣＴ７５）。
【０１０９】
レジスタＢに終了フラグがセットされていないと判定すると（ＡＣＴ７５、ＮＯ）、ＣＰＵ２１は、所定の時間待機する（ＡＣＴ７６）。所定の時間待機すると、ＣＰＵ２１は、ＡＣＴ７１に戻る。
【０１１０】
レジスタＢに終了フラグがセットされていると判定すると（ＡＣＴ７５、ＹＥＳ）、ＣＰＵ２１は、動作を終了する。
【０１１１】
なお、ＣＰＵ２１は、ＡＣＴ７４でレジスタＡに不一致フラグをセットした場合、ＣＰＵ２１は、ＡＣＴ７１で、第３画像を取得する。  
また、ＣＰＵ２１は、ＡＣＴ７２で第２画像と第３画像とが一致するか判定する。即ち、ＣＰＵ２１は、認識処理に使用されている第２画像と、ＡＣＴ７１で所定の間隔で取得される第３画像とが一致するか判定する。
【０１１２】
ＣＰＵ２１は、第２画像と第３画像とが一致しないと判定した場合、ＡＣＴ７４へ進み、同様の動作を繰り返す。
【０１１３】
なお、ＣＰＵ２１は、第２画像と第３画像とが一致しないと判定した場合、バーコードを検出できない旨を通知してもよい。
【０１１４】
また、ＣＰＵ２１は、ＡＣＴ７２で、所定の回数、画像が不一致であると判定した場合に、バーコードを検出できない旨を通知してもよい。
【０１１５】
また、ＣＰＵ２１は、認識処理において、割り込み処理などにより、所定の間隔（たとえば、１秒）で、レジスタＡに一致フラグがセットされているか判定してもよい。
【０１１６】
また、第３実施形態に係る商品情報処理装置１は、第２実施形態の商品情報処理装置１の特徴を備えてもよい。
【０１１７】
以上のように構成された商品情報処理装置は、認識処理の間に商品が変更されたかを判定することができる。その結果、商品情報処理装置は、より早く商品を再認識することができる。よって、商品情報処理装置は、より高速に商品を認識することができる。
（第４実施形態）
次に、第４実施形態について説明する。  
第４実施形態に係る商品情報処理装置１は、第２画像が平行移動又は回転した第１画像である場合には、第１画像と第２画像とが一致すると判定する点で、第１実施形態に係る商品情報処理装置１と異なる。従って、他の構成については、同一の符号を付して詳細な説明を説明する。
【０１１８】
まず、ＣＰＵ２１が実現する機能について説明する。  
ＣＰＵ２１は、第２画像が２次元的に平行移動又は回転した第１画像である場合には第１画像と第２画像が一致する判定する機能を有する。たとえば、ＣＰＵ２１は、特徴点マッチングなどを用いて、第２画像が２次元的に回転又は平行移動した第１画像であるか判定する。
【０１１９】
ＣＰＵ２１は、第２画像が左右上下に平行移動した第１画像である場合には、第１画像と第２画像とが一致すると判定する。また、ＣＰＵ２１は、第２画像が斜めに平行移動した第１画像である場合にも第１画像と第２画像とが一致すると判定する。
【０１２０】
また、ＣＰＵ２１は、第２画像がいずれの角度で回転した第１画像であっても、第１画像と第２画像とが一致すると判定する。
【０１２１】
また、ＣＰＵ２１は、第２画像が平行移動しかつ回転した第１画像である場合にも、第１画像と第２画像とが一致すると判定してもよい。
【０１２２】
図１０は、図３が示す第１画像が２次元的に回転又は平行移動した第２画像の例を示す。  
図１０（ａ）は、第１画像が２次元的に平行移動した第２画像の例を示す。  
図１０（ａ）が示す第２画像は、第１画像を右に平行移動した画像である。
【０１２３】
図１０（ｂ）は、第１画像が２次元的に回転した第２画像の例を示す。
【０１２４】
図１０（ｂ）が示す第２画像は、第１画像を右に回転した画像である。
【０１２５】
次に、第４実施形態に係る商品情報処理装置１の動作例について説明する。  
図１１は、第４実施形態に係る商品情報処理装置１の動作例を説明するためのフローチャートである。
【０１２６】
第４実施形態に係る商品情報処理装置１の動作例は、ＡＣＴ８１が追加されている点で、図５が示すフローチャートと異なる。従って、他のステップについては、同一の符号を付して詳細な説明を省略する。
【０１２７】
相違画素の割合が所定の閾値以下でないと判定すると（ＡＣＴ２７、ＮＯ）、ＣＰＵ２１は、第２画像が平行移動又は回転した第１画像であるか判定する（ＡＣＴ８１）。
【０１２８】
相違画素の割合が所定の閾値以下であると判定した場合（ＡＣＴ２７、ＹＥＳ）、又は、第２画像が平行移動又は回転した第１画像であると判定した場合（ＡＣＴ８１、ＹＥＳ）、ＣＰＵ２１は、第１画像と第２画像とが一致すると判定する（ＡＣＴ２８）。
【０１２９】
第２画像が平行移動又は回転した第１画像でないと判定すると（ＡＣＴ８１、ＮＯ）、ＣＰＵ２１は、第１画像と第２画像とが不一致であると判定する（ＡＣＴ２９）。
【０１３０】
なお、第４実施形態に係る商品情報処理装置１は、第２実施形態の商品情報処理装置１の特徴、又は、第３実施形態に係る商品情報処理装置１の特徴を備えてもよい。
【０１３１】
以上のように構成された商品情報処理装置は、認識処理中にカゴ１０が平行移動又は回転した場合には、認識処理をし直さない。カゴ１０が単に平行移動又は回転した場合には、認識結果は変化しないため、商品情報処理装置は、不要な認識処理を行うことを防止することができる。
【０１３２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３３】
１…商品情報処理装置、３…カメラ、５…表示部、６…操作部、２１…ＣＰＵ、２３…ＲＡＭ、２５…カメラインターフェース。
【図１】
2016119053.tif 000003
【図２】
2016119053.tif 000004
【図３】
2016119053.tif 000005
【図４】
2016119053.tif 000006
【図５】
2016119053.tif 000007
【図６】
2016119053.tif 000008
【図７】
2016119053.tif 000009
【図８】
2016119053.tif 000010
【図９】
2016119053.tif 000011
【図１０】
2016119053.tif 000012
【図１１】
2016119053.tif 000013