(57)【特許請求の範囲】
【請求項１】
複数個からなる全ての物品が配置される範囲を含む撮影範囲を撮影した撮影画像を取得する画像取得部と、
前記撮影画像における物品を特定する特定パターンを全て検出し、検出した各特定パターンにより各物品を認識する認識部と、
前記撮影画像における全物品の画像領域を検出する領域検出部と、
前記認識部が認識対象とする物品毎に物品の画像領域に対する基準面積を含む物品情報を記憶する記憶部と、
前記記憶部が記憶する各物品の画像領域に対する基準面積に基づいて算出する前記認識部が認識した全物品の基準面積の合計値と前記領域検出部が検出した全物品の画像領域の総面積とが整合しない場合に前記認識部が認識できていない未認識物品があると判定する判定部と、
を有する物品認識装置。
【請求項２】
さらに、前記撮影範囲における距離画像を取得する距離画像取得部を有し、
前記領域検出部は、前記距離画像における物品の画像領域をする、
請求項１に記載の物品認識装置。
【請求項３】
物品が配置される範囲を含む撮影範囲を撮影した撮影画像を取得する画像取得部と、
前記撮影画像における物品を特定する特定パターンを全て検出し、検出した各特定パターンにより各物品を認識する認識部と、
前記撮影範囲における距離画像を取得する距離画像取得部と、
前記距離画像における物品の画像領域を検出する領域検出部と、
前記認識部が認識対象とする物品毎に基準高さを含む物品情報を記憶する記憶部と、
前記記憶部が記憶する前記認識部が認識した各物品の基準高さと前記領域検出部が検出した物品の画像領域における物品の高さとが整合しない場合に前記認識部が認識できていない未認識物品があると判定する判定部と、
を有する物品認識装置。
【請求項４】
複数個からなる全ての物品が配置される範囲を含む撮影範囲を撮影した撮影画像を取得し、
前記撮影画像における物品を特定する特定パターンを全て検出し、検出した各特定パターンにより各物品を認識し、
前記撮影画像における全物品の画像領域を検出し、
各物品の画像領域に対する基準面積に基づいて前記認識した全物品の基準面積の合計値を算出し、
前記全物品の基準面積の合計値と前記検出した全物品の画像領域の総面積とが整合しない場合に、前記認識できていない未認識物品があると判定する、
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、物品認識装置および画像処理方法に関する。
【背景技術】
【０００２】
決済装置は、カメラが撮影した画像において、決済対象の全商品を認識し、認識した全商品を決済する。決済装置は、バーコード等の特定パターンにより商品を認識する物品認識装置として機能を有する。決済装置は、特定パターンが認識可能な状態で撮影されていない商品を認識できない。例えば、バーコードにより商品を認識する決済装置は、バーコードがカメラに向いていない商品を認識できない。決済対象の全商品が認識できたかを確認する方法としては、実測する全商品の総重量と認識した全商品の商品情報から算出する総重量とが一致するかを確認する方法がある。しかし、上記の確認方法は、商品の重量を実測する構成が必要となるため、決済装置のコストが高くなる。また、上記の確認方法は、どの商品が認識できていないかを検知できない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１０１７０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、高精度で物品を認識できる物品認識装置および画像処理方法を提供することにある。
【課題を解決するための手段】
【０００５】
実施形態によれば、物品認識装置は、画像取得部と、認識部と、領域検出部と、記憶部と、判定部と、を有する。画像取得部は、複数個からなる全ての物品が配置される範囲を含む撮影範囲を撮影した撮影画像を取得する。認識部は、撮影画像における物品を特定する特定パターンを全て検出し、検出した各特定パターンにより各物品を認識する。領域検出部は、撮影画像における全物品の画像領域を検出する。記憶部は、認識部が認識対象とする物品毎に物品の画像領域に対する基準面積を含む物品情報を記憶する。判定部は、前記記憶部が記憶する各物品の画像領域に対する基準面積に基づいて算出する前記認識部が認識した全物品の基準面積の合計値と前記領域検出部が検出した全物品の画像領域の総面積とが整合しない場合に前記認識部が認識できていない未認識物品があると判定する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態に係る決済装置の外観構成を概略的に示す図である。
【図２】図２は、第１の実施形態に係る決済装置の制御系の構成例を示すブロック図である。
【図３】図３は、第１の実施形態に係る決済装置における処理機能の構成例を示す図である。
【図４】図４（Ａ）は、第１の実施形態に係る決済装置が決済対象とする複数の商品の配置例を示す。図４（Ｂ）は、図４（Ｂ）に示す複数の商品を撮影した撮影画像の例を示す。
【図５】図５は、第１の実施形態に係る決済装置による第１の決済処理の流れを説明するためのフローチャートである。
【図６】図６は、第２の実施形態に係る決済装置における処理機能の構成例を示す図である。
【図７】図７（Ａ）は、第２の実施形態に係る決済装置が決済対象とする２つの商品の第１配置例を示す。図７（Ｂ）は、図７（Ａ）に示す第１配置例の２つの商品を撮影した撮影画像の例を示す。
【図８】図８（Ａ）は、第２の実施形態に係る決済装置が決済対象とする２つの商品の第２配置例を示す。図８（Ｂ）は、図８（Ａ）に示す第２配置例の２つの商品を撮影した撮影画像の例を示す。
【図９】図９（Ａ）は、第２の実施形態に係る決済装置が決済対象とする２つの商品の第３配置例を示す。図９（Ｂ）は、図９（Ａ）に示す第３配置例の２つの商品を撮影した撮影画像の例を示す。
【図１０】図１０は、第２の実施形態に係る決済装置における第２の決済処理の流れを説明するためのフローチャートである。
【図１１】図１１は、第３の実施形態に係る決済装置の外観の構成例を概略的に示す図である。
【図１２】図１２は、第３の実施形態に係る決済装置の制御系の構成例を示すブロック図である。
【図１３】図１３は、第３の実施形態に係る決済装置の処理機能の構成例を示すブロック図である。
【図１４】図１４（Ａ）は、第３の実施形態に係る決済装置が決済対象とする２つの商品が重ねられた状態を示す。図１４（Ｂ）は、図１４（Ａ）に示す２つの商品のうち上側の商品が正しくセットされた状態を示す。
【図１５】図１５は、第３の実施形態に係る決済装置における第３の決済処理の流れを説明するためのフローチャートである。
【図１６】図１６は、第４の実施形態に係る決済装置の処理機能の構成例を示すブロック図である。
【図１７】図１７（Ａ）は、第３の実施形態に係る決済装置が決済対象とする高さの異なる２つの商品を隣接した状態で配置した例を示す。図１７（Ｂ）は、図１７（Ａ）に示す配置状態の２つの商品を撮影した撮影画像を示す。図１７（Ｃ）は、図１７（Ａ）に示す配置状態の２つの商品に対する距離画像を示す。
【図１８】図１８は、第４の実施形態に係る決済装置における第４の決済処理の流れを説明するためのフローチャートである。
【図１９】図１９は、第５の実施形態に係る決済装置の処理機能の構成例を示すブロック図である。
【図２０】図２０は、第５の実施形態に係る決済装置における第５の決済処理の流れを説明するためのフローチャートである。
【図２１】図２１は、第６の実施形態に係る決済装置の処理機能の構成例を示すブロック図である。
【図２２】図２２は、第６の実施形態に係る決済装置における第６の決済処理の流れを説明するためのフローチャートである。
【図２３】図２３は、第７の実施形態に係る決済装置の処理機能の構成例を示すブロック図である。
【図２４】図２４は、第７の実施形態に係る決済装置における第７の決済処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
以下、第１乃至第７の実施形態について、図面を参照して説明する。  
（第１の実施形態）
まず、第１実施形態に係る決済装置（物品認識装置）１Ａについて説明する。  
図１は、第１実施形態に係る決済装置１Ａの外観の構成例を概略的に示す図である。  
決済装置１Ａは、物品としての商品を認識する物品認識装置としての機能と商品の代金を決済する決済機能とを有する。決済装置１Ａは、決済対象となる商品を認識し、認識した商品の代金を決済する。決済装置１Ａは、例えば、商品を販売する店舗などに設置される。決済装置１Ａは、利用者が自ら操作するセルフレジとして設置されてもよい。また、決済装置１Ａは、店舗の店員が操作するレジとして設置されてもよい。決済装置１Ａは、所定位置の商品に対する決済処理を実行する。例えば、決済対象となる商品は、商品載置台３に載置されても良いし、カゴなどに入れられた状態で商品載置台３に置かれても良い。
【０００８】
決済装置１Ａは、所定方向から所定の撮影範囲を撮影した画像（撮影画像）に基づいて商品を認識する。決済装置１Ａは、全商品の認識結果に基づいて決済処理を実行する。決済対象となる商品は、商品を特定する特定パターン（特定情報）を有する。例えば、特定パターンは、バーコード、二次元コード、文字、数字又はマークなどである。バーコード、二次元コード、文字、数字又はマークなどの特定パターンは、商品の少なくとも１つの面に付与される。また、決済装置１Ａは、オブジェクト認識（商品を撮影した商品画像のパターンの認識）により商品を認識しても良い。オブジェクト認識では、特定パターンは、商品を特定の方向から撮影した商品画像のパターンである。以下、決済装置１Ａは、決済対象の商品の１面に付与（例えば、印刷、又は貼付）される特定パターンとしてのバーコードにより商品を認識するものを想定して説明する。
【０００９】
図１が示す構成例において、決済装置１Ａは、筐体２、商品載置台３、カメラ４、操作部５、表示部６および決済部７などを有する。  
筐体２は、決済装置１Ａの外形を形成する。筐体２は、各部を設置できる形状であれば良く、特定の形状に限定されるものではない。図１が示す例において、筐体２は、商品載置台３の上方にカメラ４が設置される形状を有する。また、筐体２は、内部にプロセッサおよび記憶部などの制御部を格納する。
【００１０】
カメラ４は、決済対象の商品が配置される領域を撮影範囲として撮影する。図１が示す構成例において、カメラ４は、決済対象の商品が載置される商品載置台３全体を含む撮影範囲の画像を取得する。また、カメラ４は、商品載置台３を上方から撮影する。カメラ４は、商品載置台３上の商品、或いは、商品載置台３上のカゴ内の商品に付与されたバーコードを認識可能な状態で撮影できるものであれば良い。例えば、カメラ４は、ＣＣＤカメラなどで構成する。また、カメラ４は、不可視光を撮影するものであってもよい。カメラ４は、複数個のカメラであっても良い。カメラ４は、特定の構成に限定されるものではない。
【００１１】
操作部５は、決済装置１Ａを操作する操作者が種々の操作指示を入力するためのユーザインターフェースである。操作部５は、操作者に入力された操作指示のデータを制御部へ送信する。操作部５は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。また、操作部５は、利用者からジェスチャーの入力を受け付けるものであっても良い。表示部６は、種々の情報を表示する表示装置である。表示部６は、例えば、液晶表示装置である。また、操作部５及び表示部６は、タッチパネルを有する表示装置であっても良い。
【００１２】
決済部７は、商品の決済処理を実行する。例えば、決済部７は、クレジットカードで商品の代金を決済するものであって良いし、現金で商品の代金を決済するものであっても良いし、電子マネーで商品の代金を決済するものであっても良い。また、決済部７は、決済処理に限らず、決済に関連する処理を実行する機能を有しても良い。例えば、決済部７は、会員証などによる会員認証処理を実行しても良いし、利用者が所持する記憶媒体（カードなど）にポイントを付与する処理を実行しても良い。
【００１３】
なお、操作部５、表示部６および決済部７は、任意の位置に設置して良い。例えば、操作部５、表示部６又は決済部７は、筐体２と一体的に形成しても良い。決済装置１Ａは、操作部５、表示部６、決済部７の何れか又は全てを省略した構成であっても良い。  
また、決済装置１Ａは、照明などの他の構成を備えても良い。また、決済装置１Ａは、商品載置台３に商品（又はカゴ）が載置されたことを検知する検知部を有しても良い。決済装置１Ａは、商品載置台３に商品（又はカゴ）が載置されたことを検知した場合、自動的に決済処理（商品認識処理）を開始するようにしても良い。
【００１４】
次に、決済装置１Ａの制御系の構成例について説明する。  
図２は、決済装置１Ａの制御系の構成例を示すブロック図である。  
図２が示すように、決済装置１Ａは、カメラ４、操作部５、表示部６、決済部７、プロセッサ２１、ＲＯＭ２２、ＲＡＭ２３、不揮発性メモリ２４、商品データベース（ＤＢ）２５、および画像取得部２６などを備える。  
プロセッサ２１は、例えば、ＣＰＵである。プロセッサ２１は、決済装置１Ａ全体の制御を司る。プロセッサ２１は、記憶部２２に記憶されているプログラム及び制御データに基づいて種々の処理を実現する。例えば、プロセッサ２１は、記憶部２２に記憶されているプログラムを実行することにより、決済装置１Ａの動作制御あるいは決済装置１Ａの運用形態に応じた種々の処理を行う。  
なお、後述するプロセッサ２１が実現する各種の機能のうちの一部は、ハードウエアにより実現しても良い。
【００１５】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態で決済装置１Ａに組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予め決済装置１Ａの仕様に応じて組み込まれる。
【００１６】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ワーキングメモリとして機能する。ＲＡＭ２３は、例えば、プロセッサ２１が処理中のデータを一時的に格納する。ＲＡＭ２３は、プロセッサ２１からの命令に基づきアプリケーションプログラムを格納する。また、ＲＡＭ２３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００１７】
不揮発性メモリ２４は、データの書き込み及び書換えが可能な不揮発性のメモリにより構成される。例えば、不揮発性メモリ２４、ＨＤＤ（ハードディスクドライブ）、ＳＳＤ（ソリッドステートドライブ）、ＥＥＰＲＯＭ（登録商標）あるいはフラッシュＲＯＭなどで構成される。不揮発性メモリ２４は、決済装置１Ａの運用用途に応じた制御プログラム、アプリケーション、及び種々のデータを格納する。
【００１８】
また、商品データベース（ＤＢ）２５は、認識対象となる商品に関する情報（商品情報）を記憶する。商品ＤＢ２５は、不揮発性メモリ２４内に設けても良い。また、商品ＤＢ２５は、通信インターフェースを介して通信可能なサーバに設けても良い。商品ＤＢ２５は、各商品の商品情報として、商品コード、商品名、価格、基準面積などを記憶する。商品コードは、商品を一意に特定するための識別情報である。価格は、当該商品の決済に必要な代金を示す情報である。
【００１９】
基準面積は、物品領域情報に対する基準値である。基準面積は、撮影画像における物品の画像領域から判定する物品領域情報が面積である場合の物品領域情報に対する基準値である。基準面積は、商品を商品載置台３に正しくセット（重なり無しでバーコード面を上方に向けてセット）した状態でカメラ４が撮影した画像における当該商品の画像領域の面積である。なお、商品情報は、商品載置台３に正しくセット（重なり無しでバーコード面を上方に向けてセット）した状態における商品の高さとしての基準高さ（物品領域情報に対する基準値）を含むものであっても良い。
【００２０】
画像取得部２６は、カメラ４と接続するためのインターフェースである。画像取得部２６は、カメラ４が撮影した画像を取得する。例えば、プロセッサ２１は、カメラインターフェースとしての画像取得部２６を介して、カメラ４に画像の撮影を指示し、カメラ４が撮影した画像を取得する。
【００２１】
次に、決済装置１Ａの処理機能について説明する。  
図３は、決済装置１Ａの処理機能の構成例を示すブロック図である。  
図３に示す処理部３０は、決済装置１Ａのプロセッサ２１が不揮発性メモリ２４或いはＲＯＭ２２に記憶したプログラムを実行することにより実現する処理機能を示す。処理部３０は、全商品の領域検出部３１、全商品の面積判定部３２、パターン検出部３３、パターン認識部３４、整合判定部３５および通知部３６などを有する。これらの処理部３０内の各部３１−３６は、プロセッサ２１がプログラムを実行することにより実現する。ただし、処理部３０内の各部３１−３６は、一部又は全部をそれぞれ別のプロセッサなどのハードウエアで実現しても良い。
【００２２】
全商品の領域検出部３１及び全商品の面積判定部３２は、プロセッサ２１が実行する商品領域検出部として機能する。全商品の領域検出部３１は、画像取得部２６が取得するカメラ４の撮影画像における全ての商品の画像領域を検出する。全商品の領域検出部３１は、例えば、背景画像（商品が載置されていない画像）と入力画像（商品が載置された画像）との差分により全商品の画像領域を検出する。全商品の領域検出部３１に適用される全商品の画像領域を検出する方法は、特定の方法に限定されない。
【００２３】
全商品の面積判定部３２は、領域検出部３１が検出した全商品の画像領域の面積を判定する。全商品の面積判定部３２は、例えば、検出した全ての商品の画像領域の総画素数を全商品領域の面積として算出する。全商品の面積判定部３２に適用される全商品の画像領域の面積を判定する方法は、特定の方法に限定されない。
【００２４】
パターン検出部３３及びパターン認識部３４は、プロセッサ２１が実行する商品認識部（認識部）として機能する。パターン検出部３３は、画像取得部２６により取得したカメラ４の撮影画像に含まれる全てのバーコード（特定パターン）を検出する。パターン検出部３３は、例えば、高周波成分の強い領域を特定することによりバーコードを検出しても良い。パターン検出部３３に適用するバーコードの検出方法は、特定の方法に限定されない。
【００２５】
パターン認識部３４は、パターン検出部３３により検出した各バーコード（特定パターン）により各商品を認識する。例えば、パターン認識部３４は、検出したパーコードをデコードした情報と商品ＤＢ２５が記憶する商品情報とを照合することにより商品を特定（認識）する。なお、パターン認識部３４は、濃度勾配あるいは色ヒストグラムなどの画像特徴量（特定パターン）を用いて商品を特定（認識）する方法を採用しても良い。
【００２６】
整合判定部３５は、商品の認識結果に対して撮影画像における商品の画像領域の状態が整合するかを判定する。整合判定部３５は、撮影画像における商品の画像と認識結果とが整合するかを判定する。整合判定部３５は、撮影画像から検出した全商品領域の面積と認識した全商品の商品ＤＢ２５に登録された面積の合算値（認識した全商品の総面積）とが同程度かを判定する。例えば、整合判定部３５は、撮影画像から検出した全商品の画像領域の面積と認識した全商品の総面積との差分が所定範囲内であるか否かにより、同程度であるか否かを判定する。
【００２７】
通知部３６は、整合判定部３５による判定結果を出力する。通知部３６は、全商品の画像領域の面積と認識した全商品の総面積とが同程度であると判定した場合には未認識商品がない旨を出力する。また、通知部３６は、全商品の画像領域の面積と認識した全商品の総面積とが同程度でないと判定した場合には未認識商品がある旨を出力する。例えば、通知部３６は、全商品の画像領域の面積と認識した全商品の総面積とが同程度でないと判定した場合、アラートとして未認識商品がある旨を表示部６に表示させる。
【００２８】
次に、カメラ４による撮影画像と商品認識処理との関係について説明する。  
カメラ４は、商品載置台３の上方から商品載置台３全体を含む撮影範囲を撮影する。プロセッサ２１は、カメラ４が撮影した撮影画像から各商品のバーコード（特定パターン）を抽出し、抽出したバーコードにより各商品を認識する。決済装置１Ａは、決済対象となる全ての商品がバーコードを上方に向けて（カメラ４に向けて）商品載置台３に載置されることを前提とする。
【００２９】
全商品が正しい向きでセットされている場合（全商品のバーコードがカメラに向けてセットされている場合）、カメラ４は、全商品のバーコードの画像を含む画像を撮影できる。プロセッサ２１は、全商品のバーコードの画像を含む撮影画像をカメラ４から取得すると、当該撮影画像から全商品を認識できる。全商品が認識できると、プロセッサ２１は、全商品に対する決済処理を正しく行える。
【００３０】
一部の商品のバーコードがカメラに向けてセットされていない場合、カメラ４は、前記一部の商品のバーコードを撮影できない。プロセッサ２１は、一部の商品のバーコードが撮影できていない場合、バーコードが撮影されていない商品を認識できないため、全商品に対する決済処理を正しく行えない。
【００３１】
図４（Ａ）は、商品載置台３における複数の商品の配置例を示す図である。  
図４（Ａ）は、４つの商品（Ａ１、Ｂ１、Ｃ１、Ｄ１）が商品載置台３に載置された状態を示す。各商品Ａ１、Ｂ１、Ｃ１、Ｄ１は、それぞれバーコードｂ（ｂａ１、ｂｃ１、ｂｃ１、ｂｄ１）が付与された面を有する。各バーコードｂａ１、ｂｃ１、ｂｃ１、ｂｄ１は、各商品Ａ１、Ｂ１、Ｃ１、Ｄ１を特定するための特定パターン（商品を認識するための情報）である。図４（Ａ）に示す状態において、商品Ａ１と商品Ｃ１とは、バーコードｂａ１、ｂｃ１が付与された面がカメラ４に向いている（上方に向いている）。商品Ｂ１と商品Ｄ１とは、バーコードｂｂ１、ｂｃ１が付与された面がカメラ４に向いていない。
【００３２】
図４（Ｂ）は、図４（Ａ）に示す配置状態でカメラ４が撮影した画像（撮影画像）を示す。  
図４（Ｂ）に示す撮影画像は、各商品Ａ１、Ｂ１、Ｃ１、Ｄ１の画像Ｒａ１、Ｒｂ１、Ｒｃ１、Ｒｄ１を含む。図４（Ｂ）に示す撮影画像における商品Ａ１の画像Ｒａ１は、商品Ａ１であることを示すバーコードｂａ１の画像を含む。商品Ｂ１の画像Ｒｂ１は、商品Ｂ１に付与されているバーコードｂａ１の画像を含まない。商品Ｃ１の画像Ｒｃ１は、商品Ｃ１であることを示すバーコードｂｃ１の画像を含む。商品Ｄ１の画像Ｒｄ１は、商品Ｄ１に付与されているバーコードｂｃ１４の画像を含まない。
【００３３】
プロセッサ２１は、図４（Ｂ）に示す撮影画像から画像Ｒａ１中のバーコードｂａ１を抽出し、抽出したバーコードｂａ１により商品Ａ１を認識できる。また、プロセッサ２１は、撮影画像から画像Ｒｃ１中のバーコードｂｃ１を抽出し、抽出したバーコードｂｃ１により商品Ｃ１を認識できる。図４（Ｂ）に示す撮影画像における商品Ｂ１の画像Ｒｂ１および商品Ｄ１の画像Ｒｄ１には、バーコードの画像が存在しない。このため、プロセッサ２１は、図４（Ｂ）に示す撮影画像から商品Ｂ１および商品Ｄ１を認識することはできない。
【００３４】
一方、プロセッサ２１は、図４（Ｂ）に示す撮影画像における各商品の画像Ｒａ１、Ｒｂ１、Ｒｃ１及びＲｄ１を全商品の画像領域として抽出できる。例えば、プロセッサ２１は、背景画像（例えば、商品載置台３の画像）との差分により全商品の画像領域（画像Ｒａ１、Ｒｂ１、Ｒｃ１及びＲｄ１）を抽出する。図４（Ｂ）に示す撮影画像では、商品Ａ１と商品Ｂ１とが接した状態で載置されているため、プロセッサ２１は、商品Ａ１の画像Ｒａ１と商品Ｂの画像Ｒｂ１とを１つの画像領域として抽出する。また、プロセッサ２１は、商品Ｃ１の画像Ｒｃ１の領域と商品Ｄ１の画像Ｒｄ１の画像領域とをそれぞれ抽出する。プロセッサ２１は、これらの画像領域の大きさを全て合算することにより、全商品の画像領域の大きさを算出する。
【００３５】
プロセッサ２１は、バーコードの有無に関わらず、各商品の画像領域を抽出する。このため、撮影画像における全商品の画像領域の大きさ（全商品の画像領域の総面積）は、バーコードが撮影されていない商品の画像領域を含む。これに対して、プロセッサ２１は、認識できた全商品の面積を合算した値（認識した全商品の総面積）を商品ＤＢ２５に記憶された商品情報により算出できる。商品ＤＢ２５には、各商品について、基準面積（バーコードが付与されている面を撮影した場合の画像の面積）が記憶される。プロセッサ２１は、認識できた全商品の基準面積を合算することにより、認識した全商品の総面積を算出する。
【００３６】
すなわち、撮影画像における全商品の画像領域の総面積は、未認識商品の画像領域の面積分が、認識できた全商品の基準面積を合算した総面積（認識した全商品の総面積）よりも大きくなる。従って、撮影した全商品の総面積と認識した全商品の総面積とが同程度であるか否かにより、未認識商品があるか否かを判定できる。
【００３７】
次に、第１の実施形態に係る決済装置１Ａにおける第１の決済処理について説明する。  
図５は、第１の実施形態に係る決済装置１Ａにおける第１の決済処理の例を説明するためのフローチャートである。  
待機状態において、プロセッサ２１は、決済処理の開始指示を受け付ける（ＡＣＴ１１）。例えば、プロセッサ２１は、スタートボタンの指示に応じて決済処理を開始する。スタートボタンは、商品載置台３上にセットした商品に対する決済処理の開始を指示するボタンである。スタートボタンは、表示部６が表示するアイコンであっても良いし、操作部５として設けたハードキーなどであっても良い。また、プロセッサ２１は、センサにより商品載置台３に商品あるいはカゴがセットされたことを検知したことに応じて決済処理を開示しても良い。
【００３８】
プロセッサ２１は、開始指示に応じて決済処理を開始すると（ＡＣＴ１１、ＹＥＳ）、カメラ４に対して撮影を指示する。カメラ４は、プロセッサ２１の指示に応じて商品載置台３を含む撮影範囲を撮影する。プロセッサ２１は、画像取得部２６によりカメラ４が撮影した撮影画像を取得する（ＡＣＴ１２）。プロセッサ２１は、カメラ４から取得する撮影画像をＲＡＭ２３などのメモリに記憶する。
【００３９】
撮影画像を取得した後、プロセッサ２１は、商品を認識する商品認識処理と全商品の画像領域を判定する領域判定処理とを実行する。商品認識処理は、撮影画像における全ての商品を特定パターン（バーコード）によって認識する処理である。全商品の領域判定処理は、撮影画像における全商品の画像領域の面積（大きさ）を算出する処理である。プロセッサ２１は、商品認識処理と領域判定処理とを並行して実行しても良いし、順番に実行しても良い。
【００４０】
商品認識処理として、プロセッサ２１は、撮影画像に対する商品認識処理を実行する（ＡＣＴ１３）。プロセッサ２１は、画像取得部２６により取得したカメラ４の撮影画像に含まれる全てのバーコード（特定パターン）を検出する。バーコードを検出すると、プロセッサ２１は、検出した各バーコードにより各商品を認識する。例えば、プロセッサ２１は、バーコードをデコードして得た情報（例えば、商品コード）と商品ＤＢ２５に登録されている商品に関する情報とを照合することにより商品を特定（認識）する。
【００４１】
なお、商品認識処理は、濃度勾配あるいは色ヒストグラムなどの画像特徴量（特定パターン）を用いて、商品を特定する方法で実現しても良い。この場合、商品データベース２５には、各商品における画像特徴量として、商品の被撮影面における濃度勾配あるいは色ヒストグラムなどを登録する。
【００４２】
商品認識処理により撮影画像中の商品が認識できた場合、プロセッサ２１は、認識した商品のバーコードが付与された面（バーコード面）の面積（基準面積）を商品ＤＢ２５から取得する。商品認識処理が完了すると、プロセッサ２１は、商品ＤＢ２５から取得する認識した各商品の基準面積を合算することにより認識した全商品の総面積を算出する（ＡＣＴ１４）。例えば、プロセッサ２１は、算出した全商品の総面積をＲＡＭ２３に保持する。
【００４３】
また、プロセッサ２１は、全商品の領域判定処理として、撮影画像における全ての商品の画像領域を検出する（ＡＣＴ１５）。撮影画像から全商品の画像領域を検出すると、プロセッサ２１は、全ての商品の画像領域を合算した総面積（撮影画像中における全商品領域の面積）を判定する（ＡＣＴ１６）。例えば、プロセッサ２１は、検出した全ての商品の画像領域の総画素数を全商品領域の面積として算出しても良い。
【００４４】
プロセッサ２１は、撮影画像中の全商品領域の面積と認識できた全商品の基準面積を合算した面積（認識した全商品の総面積）とを比較する（ＡＣＴ１７）。この比較により、プロセッサ２１は、撮影画像中の全商品領域の面積と認識した全商品の総面積とが同程度であるか判定する（ＡＣＴ１８）。例えば、プロセッサ２１は、撮影画像中の全商品領域の面積と認識した全商品の総面積との差分が所定範囲内であるか否かにより、同程度であるか否かを判定する。
【００４５】
撮影画像中の全商品領域の面積と認識した全商品の総面積とが同程度であると判定した場合（ＡＣＴ１８、ＹＥＳ）、プロセッサ２１は、未認識商品がないと判断する。未認識商品がないと判断すると、プロセッサ２１は、認識した全商品に対する決済処理を行う（ＡＣＴ１９）。例えば、プロセッサ２１は、商品ＤＢ２５を参照して認識した全商品の代金の合計金額を算出する。全商品の代金の合計金額を算出すると、プロセッサ２１は、決済部７により算出した合計金額の精算処理を実行する。
【００４６】
また、撮影画像中の全商品領域の面積と認識した全商品の総面積とが同程度でないと判定した場合（ＡＣＴ１８、ＮＯ）、プロセッサ２１は、未認識商品があると判断する。未認識商品があると判断すると、プロセッサ２１は、操作者にエラー発生を報知するアラートを発生させる（ＡＣＴ２０）。例えば、プロセッサ２１は、アラートとして、未認識商品がある旨、或いは、決済不可である旨などの表示部６に表示する。また、プロセッサ２１は、アラートとして、決済装置１Ａに設けたスピーカなどでアラームを鳴らすようにしても良い。
【００４７】
アラートを発生させた後、プロセッサ２１は、決済処理（商品認識処理）のリトライの指示を受け付ける（ＡＣＴ２１）。例えば、プロセッサ２１は、リトライボタンへの指示に応じて決済処理をリトライする。リトライボタンは、表示部６が表示するアイコンであっても良いし、操作部５に設けたハードキーなどであっても良い。プロセッサ２１は、リトライが指示された場合（ＡＣＴ２１、ＹＥＳ）、上記ＡＣＴ１２へ戻り、上述の処理を再び実行する。また、プロセッサ２１は、リトライが指示されない場合（ＡＣＴ２１、ＮＯ）、決済処理を中止し、待機状態に移行する。
【００４８】
上記のように、第１の実施形態に係る決済装置１Ａは、撮影画像における全商品の画像領域の面積と認識した各商品の商品ＤＢに登録された基準面積を合算した総面積とが同程度かを判定する。決済装置１Ａは、撮影画像における全商品の画像領域の総面積と認識した全商品の総面積とが同程度でない場合、未認識の商品が存在すると判断する。すなわち、決済装置１Ａは、撮影画像から検出する全商品の画像領域の総面積により未認識商品を検出できる。結果として、決済装置１Ａは、簡易な構成で実際より安い価格で決済処理が行われるのを防ぐことができる。
【００４９】
（第２の実施形態）
第２の実施形態に係る決済装置（物品認識装置）１Ｂは、決済装置１Ａと同様な図１及び図２に示すハードウエア構成により実現できる。ただし、第２の実施形態に係る決済装置１Ｂのプロセッサ２１が実行する第２の決済処理は第１の実施形態の第１の決済処理とは異なる。
【００５０】
図６は、決済装置１Ｂの処理機能の構成例を示すブロック図である。  
図６に示す処理部４０は、決済装置１Ｂのプロセッサ２１が不揮発性メモリ２４或いはＲＯＭ２２に記憶したプログラムを実行することにより実現する処理機能を示す。処理部４０は、個別商品の領域検出部４１、個別商品の面積判定部４２、パターン検出部３３、パターン認識部３４、整合判定部４５および通知部４６などを有する。これらの処理部４０内の各部４１、４２、３３、３４、４５、４６は、プロセッサ２１がプログラムを実行することにより実現する。ただし、処理部４０内の各部は、一部又は全部をそれぞれ別のプロセッサなどのハードウエアで実現しても良い。なお、パターン検出部３３及びパターン認識部３４は、図３と同様なもので実現できるための詳細な説明を省略する。
【００５１】
個別商品の領域検出部４１及び個別商品の面積判定部４２は、プロセッサ２１が実行する商品領域検出部として機能する。個別商品の領域検出部４１は、画像取得部２６が取得するカメラ４の撮影画像における個別の商品の画像領域を検出する。個別商品の領域検出部４１は、例えば、背景画像（商品が載置されていない画像）と入力画像（商品が載置された画像）との差分を取ったのち、ラベリング処理（各独立領域に番号を振り分ける処理）により個別の商品領域を検出する。個別の商品の領域検出部４１に適用される商品毎の画像領域を検出する方法は、特定の方法に限定されない。
【００５２】
個別商品の面積判定部４２は、領域検出部４１が検出した個別の商品の画像領域の面積（各商品画像の面積）を判定する。個別商品の面積判定部４２は、例えば、検出した商品毎の画像領域における画素数を各商品領域の面積として算出する。個別商品の面積判定部４２に適用される各商品領域の面積を判定する方法は、特定の方法に限定されない。
【００５３】
整合判定部４５は、商品の認識結果に対して撮影画像における商品の画像領域の状態が整合するかを判定する。整合判定部４５は、撮影画像から検出した各商品領域の面積と認識した各商品の面積とが同程度か否かを判定する。整合判定部４５は、撮影画像から検出した各商品領域の面積と、認識した各商品の商品ＤＢ２５に登録された面積とが同程度かを判定する。例えば、整合判定部４５は、各商品領域の面積と認識した各商品の面積との差分が所定範囲内であるか否かにより同程度であるか否かを判定する。
【００５４】
通知部４６は、整合判定部４５による判定結果を出力する。通知部４６は、各商品領域の面積と認識した各商品の面積とが同程度であると判定した場合には未認識商品がない旨を出力する。また、通知部４６は、各商品領域の面積と認識した各商品の面積とが同程度でないと判定した場合には未認識商品がある旨を出力する。例えば、通知部４６は、撮影画像中の商品の画像領域の面積が認識した商品の面積と同程度でないと判定した場合、当該画像領域に未認識商品が存在する事をアラートとして表示部６に表示させる。
【００５５】
次に、複数の商品の配置と複数の商品の撮影画像とについて説明する。  
図７（Ａ）は、２つの商品Ａ２と商品Ｂ２との配置例を示す。図７（Ｂ）は、図７（Ａ）に示す２つの商品Ａ２、Ｂ２を撮影した撮影画像の例を示す。  
図７（Ａ）に示す配置例では、商品Ａ２と商品Ｂ２とが隣接して配置されている。このため、図７（Ｂ）に示す撮影画像において、商品Ａ２の領域Ｒａ２と商品Ｂ２の領域Ｒｂ２とは、１つの商品の領域として抽出される可能性がある。さらに、領域Ｒａ２と領域Ｒｂ２とには商品Ａ２のバーコードｂａ２しか存在しないため、領域Ｒａ２と領域Ｒｂ２とを合わせた領域は、商品Ａ２の面積として算出される。領域Ｒａ２と領域Ｒｂ２とを合わせた領域の面積は、商品ＤＢ２５に登録される商品Ａ２の面積よりも大きい。決済装置１Ｂは、撮影画像における商品の面積と認識した商品の商品ＤＢ２５に登録されている基準面積との比較によって、図７（Ａ）に示すような配置による未認識商品を判定できる。さらに、決済装置１Ｂは、未認識商品が図７（Ｂ）の撮影画像における領域Ｒａ２及び領域Ｒｂ２中に存在することも判定できる。
【００５６】
また、図８（Ａ）は、２つの商品Ｃ２と商品Ｄ２との配置例を示す。図８（Ｂ）は、図８（Ａ）に示す２つの商品Ｃ２、Ｄ２を撮影した撮影画像の例を示す。  
図８（Ａ）に示す配置例では、商品Ｃ２が商品Ｄ２の上に配置されている。このため、図８（Ｂ）に示す撮影画像において、商品Ｄ２の領域Ｒｄ２は、商品Ｃ２の領域Ｒｃ２に隠れる。商品Ｃ２の被撮影面は、商品Ｄ２の上に載せられた分（商品Ｄ２の高さの分）だけ、カメラ４までの距離が近くなる。この結果、図８（Ｂ）の撮影画像における商品Ｃ２の領域Ｒｃ２の面積は、商品Ｃ２のみを所定位置に置いた状態で撮影した撮影画像における商品Ｃ２の面積よりも大きい。また、商品ＤＢ２５は、商品Ｃ２のみを所定位置に置いた状態で撮影した撮影画像における商品Ｃ２の面積を記憶する。
【００５７】
すなわち、図８（Ｂ）の撮影画像における商品Ｃ２の領域Ｒｃ２の面積は、商品ＤＢ２５に登録される商品Ｃ２の基準面積よりも大きい。決済装置１Ｂは、撮影画像における商品の面積と認識した商品の商品ＤＢ２５に登録されている基準面積との比較によって、図８（Ａ）に示すような商品の重なりによる未認識商品を判定できる。さらに、決済装置１Ｂは、未認識商品が図８（Ｂ）の撮影画像における領域Ｒｃ２中に存在することも判定できる。
【００５８】
また、図９（Ａ）は、２つの商品Ｅ２と商品Ｆ２との配置例を示す。図９（Ｂ）は、図９（Ａ）に示す２つの商品Ｅ２、Ｆ２を撮影した撮影画像の例を示す。  
図９（Ａ）に示す配置例では、商品Ｅ２が商品Ｆ２の上に配置されている。このため、図９（Ｂ）に示す撮影画像において、商品Ｅ２の領域Ｒｅ２は商品Ｆ２の領域Ｒｆ２中に存在する。このため、図９（Ｂ）に示す撮影画像からは、商品Ｅ２の領域Ｒｅ２が検出できず、商品Ｆ２の領域Ｒｆ２が、１つの商品の領域として抽出される可能性がある。さらに、領域Ｒｆ２中（領域ＲＦ２中の領域Ｒｅ２）には商品Ｅ２のバーコードｂｅ２しか存在しないため、領域Ｒｆ２の面積は、商品Ｅ２の面積として算出される。領域Ｒｆ２の面積は、商品ＤＢ２５に登録される商品Ｅ２の面積よりも大きい。決済装置１Ｂは、撮影画像における商品の面積と認識した商品の商品ＤＢに登録されている面積との比較によって、図９（Ａ）に示すような商品の重なりによる未認識商品を判定できる。さらに、決済装置１Ｂは、未認識商品が図９（Ｂ）の撮影画像における領域Ｒｆ２中に存在することも判定できる。
【００５９】
なお、カメラ４から商品の被撮影面までの撮影距離が変動すると、商品全体の画像だけでなく、商品に付与されているバーコードの領域の大きさも変動する。従って、決済装置１Ｂは、バーコード領域の大きさによって未認識商品を判定しても良い。この場合、商品データベース２５は、商品ごとにバーコード領域の大きさを記憶する。決済装置１Ｂは、撮影画像におけるバーコード領域の面積が認識した商品のバーコード領域の面積よりも大きければ、未認識商品があると判定すれば良い。
【００６０】
次に、第２の実施形態に係る決済装置１Ｂにおける第２の決済処理について説明する。  
図１０は、第２の実施形態に係る決済装置１Ｂにおける第２の決済処理の例を説明するためのフローチャートである。  
待機状態において、プロセッサ２１は、決済処理の開始指示を受け付ける（ＡＣＴ３１）。プロセッサ２１は、決済処理の開示指示に応じて決済処理を開始すると（ＡＣＴ３１、ＹＥＳ）、カメラ４に対して撮影を指示する。カメラ４は、プロセッサ２１の指示に応じて商品載置台３を含む所定の撮影範囲を撮影する。プロセッサ２１は、画像取得部２６によりカメラ４が撮影した撮影画像を取得する（ＡＣＴ３２）。プロセッサ２１は、カメラ４から取得する撮影画像をＲＡＭ２３などのメモリに記憶する。
【００６１】
撮影画像を記憶した後、プロセッサ２１は、商品認識処理と商品ごとの領域判定処理とを実行する。商品認識処理は、商品ごとの画像領域から抽出するバーコードによって各商品を認識する処理である。商品ごとの領域判定処理は、撮影画像において、個別の商品ごとの画像領域を検出する処理である。プロセッサ２１は、商品認識処理と商品ごとの領域判定処理とを並行して実行しても良いし、順番に実行しても良い。
【００６２】
商品認識処理として、プロセッサ２１は、撮影画像に対する特定パターンによる商品の認識を行う（ＡＣＴ３３）。プロセッサ２１は、撮影画像に含まれるバーコード（特定パターン）を検出する。なお、商品毎の領域判定処理を商品認識処理よりも先に実行する場合、プロセッサ２１は、各商品の画像領域ごとにバーコードを検出するようにしても良い。バーコードの検出方法は、特定の方法に限定されない。
【００６３】
バーコードを抽出すると、プロセッサ２１は、抽出した各バーコードにより商品を認識する。例えば、プロセッサ２１は、各バーコードに対するデコード処理により得られた情報（例えば、商品コード）と商品ＤＢ２５の情報とを照合することにより商品を特定（認識）する。なお、商品の認識方法は、特定の方法に限定されない。例えば、商品認識処理は、濃度勾配あるいは色ヒストグラムなどの画像特徴量（特定パターン）を用いて、商品を特定する方法を用いて実現しても良い。
【００６４】
撮影画像における商品が認識できた場合、プロセッサ２１は、認識した商品のバーコードが付与された面の面積（基準面積）を商品ＤＢ２５の商品情報により判定する（ＡＣＴ３４）。例えば、プロセッサ２１は、認識した商品の面積（基準面積）を商品コードに対応づけてＲＡＭ２３に保持する。また、プロセッサ２１は、認識した商品のバーコードを検出した撮影画像中の位置を示す位置情報も商品コードに対応づけてＲＡＭ２３に保持する。
【００６５】
また、商品毎の領域判定処理として、プロセッサ２１は、撮影画像における個別の商品の画像領域を検出する（ＡＣＴ３５）。例えば、プロセッサ２１は、撮影画像と背景画像との差分を取ったのち、ラベリング処理により個別の商品領域を検出する。なお、商品認識処理を先に実行する場合、プロセッサ２１は、検出されるバーコード毎に１つの商品の画像領域の検出を試みても良い。各商品の画像領域の検出方法は、特定の方法に限定されない。撮影画像から各商品の画像領域を検出すると、プロセッサ２１は、検出した各商品の画像領域（各商品領域）の面積を判定する（ＡＣＴ３６）。例えば、プロセッサ２１は、検出した個別の商品の画像領域における画素数を各商品領域の面積として判定しても良い。
【００６６】
プロセッサ２１は、商品毎に、認識した商品の基準面積と撮影画像における当該商品領域の面積とを比較する（ＡＣＴ３７）。つまり、プロセッサ２１は、バーコードにより認識した商品の商品ＤＢ２５に登録された基準面積と認識できたバーコードを含む画像領域の面積とを比較する。この比較により、プロセッサ２１は、比較した面積が同程度であるか判定する（ＡＣＴ３８）。例えば、プロセッサ２１は、ある商品領域の面積と認識した商品の基準面積との差分が所定範囲内であるか否かにより同程度であるか否かを判定する。この比較は、全ての商品の画像領域について実行する。
【００６７】
撮影画像における各商品領域の面積と認識した商品の基準面積とが同程度であると判定した場合（ＡＣＴ３８、ＹＥＳ）、プロセッサ２１は、未認識商品がないと判断する。未認識商品がないと判断すると、プロセッサ２１は、認識した全商品に対する決済処理を行う（ＡＣＴ３９）。例えば、プロセッサ２１は、各商品の代金を合算し、合算した代金の精算処理を実行する。
【００６８】
また、撮影画像における商品領域の面積と認識した商品の基準面積とが同程度でない商品があると判定した場合（ＡＣＴ３８、ＮＯ）、プロセッサ２１は、未認識商品があると判断する。また、プロセッサ２１は、認識した商品の基準面積に対して面積が同程度でない商品の画像領域に未認識商品があると判断する。未認識商品がある判断すると、プロセッサ２１は、操作者にエラーを報知するためのアラートを発生させる（ＡＣＴ４０）。例えば、プロセッサ２１は、アラートとして、未認識商品がある画像領域を報知する。また、プロセッサ２１は、未認識商品がある旨、或いは、決済不可である旨を示すアラートを発生させても良い。また、プロセッサ２１は、アラートとして、決済装置１Ｂに設けたスピーカなどでアラームを鳴らすようにしても良い。
【００６９】
なお、プロセッサ２１は、未認識商品があると判断した画像領域に対して、上記ＡＣＴ３３で実行した商品認識手法とは異なる商品認識手法により商品認識処理を再度実行しても良い。プロセッサ２１は、再度実行した商品認識処理により実行済みのＡＣＴ３３の処理結果とは異なる認識結果が得られた場合、上記ＡＣＴ３４以降の処理を再度実行すれば良い。
【００７０】
アラートを発生された後、プロセッサ２１は、決済処理（商品認識処理）のリトライの指示を受け付ける（ＡＣＴ４１）。例えば、プロセッサ２１は、リトライボタンへの指示に応じて決済処理をリトライする。リトライボタンは、表示部６が表示するアイコンであっても良いし、操作部５に設けたハードキーなどであっても良い。プロセッサ２１は、リトライが指示された場合（ＡＣＴ４１、ＹＥＳ）、上記ＡＣＴ３２へ戻り、上述の処理を再び実行する。また、プロセッサ２１は、リトライが指示されない場合（ＡＣＴ４１、ＮＯ）、決済処理を中止し、待機状態に移行する。
【００７１】
上記のように、第２の実施形態に係る決済装置１Ｂは、個別の商品毎に、撮影画像における商品の画像領域の面積と認識した商品の商品ＤＢに登録された基準面積とが同程度か否かを判定する。決済装置１Ｂは、認識した商品の基準面積と撮影画像における当該商品の画像領域の面積とが同程度でない場合、当該商品の画像領域に未認識商品があると判断する。
【００７２】
すなわち、決済装置１Ｂは、撮影画像から未認識商品を検出できるだけでなく、未認識商品が存在する領域を判断できる。決済装置１Ｂは、実際より安い価格での決済を防ぐだけでなく、認識できなかった商品が存在する領域を報知できる。
【００７３】
（第３の実施形態）
次に、第３実施形態に係る決済装置（物品認識装置）１Ｃについて説明する。  
図１１は、第３実施形態に係る決済装置１Ｃの外観の構成例を概略的に示す図である。  
決済装置１Ｃは、筐体２、商品載置台３、カメラ４、操作部５、表示部６、決済部７、および距離センサ８を有する。筐体２、商品載置台３、カメラ４、操作部５、表示部６および決済部７は、決済装置１Ａと同様なもので実現可能である。すなわち、決済装置１Ｃは、決済装置１Ａの構成に距離センサ８を追加したもので実現可能である。
【００７４】
距離センサ８は、距離画像を撮影するためのセンサである。距離センサ８は、設置位置から物体までの距離を計測する。図１１が示す構成例において、距離センサ８は、商品載置台３の上方に設置される。距離センサ８は、商品載置台３全体を含むカメラ４の撮影範囲を計測範囲とする。例えば、距離センサ８は、複数個のセンサであっても良い。決済装置１Ｃは、距離センサ８による撮影範囲における距離の計測結果に基づいて距離画像を取得する。
【００７５】
次に、決済装置１Ｃの制御系の構成例について説明する。  
図１２は、決済装置１Ｃの制御系の構成例を示すブロック図である。  
図１２に示すように、決済装置１Ｃは、カメラ４、操作部５、表示部６、決済部７、距離センサ８、プロセッサ２１、ＲＯＭ２２、ＲＡＭ２３、不揮発性メモリ２４、商品データベース（ＤＢ）２５、画像取得部２６、距離画像取得部２７などを備える。
【００７６】
決済装置１Ｃのカメラ４、操作部５、表示部６、決済部７、プロセッサ２１、ＲＯＭ２２、ＲＡＭ２３、不揮発性メモリ２４、商品ＤＢ２５、画像取得部２６は、決済装置１Ａと同様なハードウエアで実現できる。ただし、プロセッサ２１は、後述する決済装置１Ｃとしての第３の決済処理を実現する機能を有する。すなわち、プロセッサ２１は、不揮発性メモリ２４に記憶する第３の決済処理を実現するためのプログラムを実行する。
【００７７】
また、決済装置１Ｃの商品ＤＢ２５は、第３の決済処理を行うための商品情報を記憶する。決済装置１Ｃの商品ＤＢ２５は、各商品の商品情報として、商品コード、商品名、価格、基準高さなどを記憶する。基準高さは、物品領域情報に対する基準値である。つまり、基準高さは、物品の画像領域における物品の高さを物品領域情報とする場合に、物品領域情報に対する基準値として商品ＤＢ２５に登録される。基準高さは、商品載置台３に正しくセット（重なり無しでバーコード面を上方に向けてセット）した状態における当該商品の高さである。なお、商品ＤＢ２５は、基準面積を含む商品情報を記憶しても良い。
【００７８】
距離画像取得部２７は、距離センサ８と接続するためのインターフェースである。距離画像取得部２７は、距離センサ８が計測する距離に基づく距離画像を取得する。距離画像は、カメラ４の撮影範囲における距離の分布を示す画像である。例えば、距離画像は、距離センサ８が計測する距離に応じて色を変化された画像であっても良い。
【００７９】
決済装置１Ｃのプロセッサ２１は、距離画像取得部２７が取得する距離画像に基づいて商品の高さを判定する。プロセッサ２１は、距離センサ８が計測する商品が置かれる面（背景面）までの距離と商品の被撮影面までの距離との差分により商品の高さを判定する。例えば、プロセッサ２１は、距離センサ８が計測する商品載置台３までの高さと商品載置台３上の商品面までの高さとの差分により商品の高さを判定する。また、プロセッサ２１は、距離センサ８が計測する商品載置台３上のカゴの底面までの高さとカゴ内の商品面までの高さとの差分により商品の高さを判定しても良い。また、商品の高さの判定は、距離画像取得部２７が実行しても良い。
【００８０】
商品の高さとしての商品面までの高さは、商品におけるバーコード面全体の高さ（例えば、被撮影面の平均高さ）であっても良いし、バーコードの位置の高さであっても良い。また、バーコードの位置の高さとしては、バーコード領域の所定位置（例えば中心位置付近）の高さであっても良いし、バーコード領域全体の平均の高さであっても良い。商品の高さをバーコードの位置の高さとする場合、商品ＤＢ２５は、バーコードの位置の高さを基準高さとして記憶する。
【００８１】
図１３は、決済装置１Ｃの処理機能の構成例を示すブロック図である。  
図１３に示す処理部５０は、決済装置１Ｃのプロセッサ２１が不揮発性メモリ２４或いはＲＯＭ２２に記憶したプログラムを実行することにより実現する処理機能を示す。処理部５０は、個別商品の領域検出部４１、個別商品の面積判定部４２、パターン検出部３３、パターン認識部３４、個別商品の高さ判定部５２、整合判定部５５および通知部５６などを有する。これらの処理部５０内の各部４１、４２、３３、３４、５２、５５、５６は、プロセッサ２１がプログラムを実行することにより実現する。ただし、処理部５０内の各部は、一部又は全部をそれぞれ別のプロセッサなどのハードウエアで実現しても良い。
【００８２】
なお、パターン検出部３３及びパターン認識部３４は、図３と同様なもので実現できるため詳細な説明を省略する。また、個別商品の領域検出部４１及び個別商品の面積判定部４２は、図６と同様なもので実現できるため詳細な説明を省略する。
【００８３】
個別商品の高さ判定部５２は、個別商品の領域検出部４１が検出する個別の商品の画像領域における商品の高さを判定する。個別商品の高さ判定部５２は、例えば、距離画像取得部２７が取得する距離センサ８の計測値に基づく距離画像において、撮影画像から検出した商品の画像領域における商品の高さ（実測した商品の高さ）を判定する。個別商品の高さ判定部５２は、背景（例えば商品載置台又はカゴの底）までの距離と当該商品領域の商品までの距離との差分などにより商品の高さを判定する。個別商品の高さ判定部５２に適用される商品の高さを判定する方法は、特定の方法に限定されない。また、プロセッサ２１は、商品領域中のバーコードが検出された位置の高さを判定するようにしても良い。
【００８４】
整合判定部５５は、商品の認識結果に対して、撮影画像における商品の画像領域の状態と距離画像における商品の状態（実測する各商品の高さ）とが整合するかを判定する。整合判定部５５は、実測する各商品の面積及び高さが商品ＤＢ２５に登録された面積及び高さと同程度かを判定する。整合判定部５５は、認識した商品毎に、撮影画像から検出した商品領域の面積が商品ＤＢ２５に登録された基準面積と同程度かを判定する。さらに、整合判定部５５は、実測した商品の高さが商品ＤＢ２５に登録された基準高さと同程度かを判定する。例えば、整合判定部５５は、各商品領域の面積と認識した各商品の商品ＤＢ２５に登録された基準面積との差分が所定範囲内であるか否かにより面積が同程度であるか否かを判定する。また、整合判定部５５は、認識した商品の商品ＤＢ２５に登録された基準高さと実測した当該商品の高さとの差分が所定範囲内であるか否かにより高さが同程度であるか否かを判定する。
【００８５】
通知部５６は、整合判定部５５による判定結果を出力する。通知部５６は、各商品領域の面積及び高さが商品ＤＢ２５に登録された値と同程度であると判定した場合には未認識商品がない旨を出力する。また、通知部５６は、各商品領域の面積又は高さの何れかが商品ＤＢ２５に登録された値と同程度でないと判定した場合には未認識商品がある旨を出力する。例えば、通知部５６は、面積又は高さが商品ＤＢに登録された値と同程度でないと判定した商品の画像領域に、未認識商品がある旨をアラートとして表示部６に表示させる。
【００８６】
次に、距離画像と商品の配置との関係について説明する。  
距離センサ８は、商品載置台３の上方から商品載置台３又は商品載置台３上の物体までの距離を計測する。距離画像は、カメラ４の撮影範囲において、距離センサ８が計測する距離を示す画像である。従って、商品が正しくセットされている場合、距離センサ８が計測する商品の高さは、当該商品に固有の高さ（基準高さ）となる。商品が重ねてセットされている場合、距離センサ８は、重なった状態の商品の高さを計測する。
【００８７】
図１４（Ａ）は、２つの商品が重ねられた配置例を示す。図１４（Ｂ）は、図１４（Ａ）に示す２つの商品のうち上側の商品が正しくセットされた状態を示す。  
図１４（Ａ）に示す配置状態では、商品Ａ３の被撮影面（バーコード面）の高さｈ１（ｄ１−ｄ２）は、商品Ａ３の高さｈａと商品Ｂ３の高さｈｂとを足し合わせた値となる。つまり、図１４（Ａ）に示す状態では、商品Ａ３のバーコード面の高さｈ１は、商品ＤＢ２５に登録されている商品Ａ３の高さ（基準高さ）ｈａよりも商品Ｂ３の高さｈｂ分だけ高くなる。これに対して、図１４（Ｂ）に示す配置状態では、商品Ａ３のバーコード面の高さｈ２（ｄ１−ｄ３）は、商品ＤＢ２５に登録されている商品Ａ３の高さ（基準高さ）ｈａと同程度となる。
【００８８】
プロセッサ２１は、各商品のバーコード面の高さが商品ＤＢ２５に登録されている当該商品の基準高さと同程度であるか否かを判定する。プロセッサ２１は、距離画像により判定するバーコード面の高さが当該商品の基準高さと同程度であれば、商品の重なり（未認識商品）が無いと判断する。また、プロセッサ２１は、距離センサ８が計測するバーコード面の高さが当該商品の基準高さと同程度でなければ商品の重なり（未認識商品）があると判断する。
【００８９】
上記のような決済装置１Ｃは、撮影画像中の商品領域の面積と商品ＤＢに登録済みの商品の面積とを比較し、実測する商品の高さと商品ＤＢに登録済みの商品の高さとを比較する。決済装置１Ｃは、面積と高さとで他の商品との重なりの有無を判定（確認）する。このような判定によって、決済装置１Ｃは、高さが低い商品が重なっている場合であっても、商品の重なりを高精度で検出できる。
【００９０】
次に、第３の実施形態に係る決済装置１Ｃにおける第３の決済処理について説明する。  
図１５は、第３の実施形態に係る決済装置１Ｃにおける第３の決済処理の流れを説明するためのフローチャートである。  
待機状態において、プロセッサ２１は、決済処理の開始指示を受け付ける（ＡＣＴ６１）。例えば、プロセッサ２１は、スタートボタンの指示に応じて決済処理を開始する。プロセッサ２１は、決済処理を開始すると（ＡＣＴ６１、ＹＥＳ）、カメラ４に撮影を指示するともに、距離センサ８に距離の計測を指示する。
【００９１】
カメラ４は、プロセッサ２１の指示に応じて商品載置台３を含む撮影範囲を撮影する。カメラ４は、撮影した撮影画像を画像取得部２６へ出力する。プロセッサ２１は、画像取得部２６によりカメラ４が撮影した撮影画像を取得する（ＡＣＴ６２）。プロセッサ２１は、カメラ４から取得する撮影画像をＲＡＭ２３などのメモリに記憶する。
【００９２】
撮影画像を取得した後、プロセッサ２１は、撮影画像中の各商品を認識する商品認識処理を実行する。商品認識処理として、プロセッサ２１は、撮影画像に含まれる全てのバーコード（特定パターン）を抽出する。バーコードの検出方法は、特定の方法に限定されない。バーコードを抽出すると、プロセッサ２１は、抽出した各バーコードにより各商品を認識する（ＡＣＴ６３）。商品認識処理により商品が認識できた場合、プロセッサ２１は、認識した商品の面積（基準面積）と高さ（基準高さ）とを商品ＤＢ２５の商品情報により特定する（ＡＣＴ６４）。プロセッサ２１は、認識した商品の基準面積と高さとを商品コードに対応づけてＲＡＭ２３に保持する。また、プロセッサ２１は、認識した商品のバーコードを検出した撮影画像中の位置を示す位置情報も商品コードに対応づけてＲＡＭ２３に保持する。
【００９３】
また、商品ごとの領域判定処理として、プロセッサ２１は、撮影画像における個別の商品の画像領域を検出する（ＡＣＴ６５）。例えば、プロセッサ２１は、撮影画像と背景画像との差分を取った後、ラベリング処理により個別の商品領域を検出する。なお、商品認識処理を先に実行する場合、プロセッサ２１は、検出されるバーコード毎に１つの商品領域の検出を試みても良い。各商品の画像領域の検出方法は、特定の方法に限定されない。撮影画像から商品領域を検出するごとに、プロセッサ２１は、検出した商品領域に対応するフラグをセットする（ＡＣＴ６６）。また、撮影画像から商品領域を検出すると、プロセッサ２１は、検出した商品領域の面積を判定する（ＡＣＴ６７）。プロセッサ２１は、撮影画像から検出される全ての商品領域についてＡＣＴ６６及び６７の処理を実行する。
【００９４】
プロセッサ２１は、検出した商品領域に対するフラグと当該商品領域の面積とをＲＡＭ２３に保持する。また、プロセッサ２１は、検出した商品領域の撮影画像中の位置を示す位置情報もＲＡＭ２３に保持する。なお、プロセッサ２１は、検出した商品領域のフラグ及び面積を当該商品領域中のバーコードによって認識した商品の商品コードに対応づけてＲＡＭ２３に保持しても良い。
【００９５】
また、距離センサ８は、プロセッサ２１の指示に応じて商品載置台を含む撮影範囲における距離を計測する。距離センサ８は、距離の計測結果を示す信号を距離画像取得部２７へ出力する。処理画像取得部２７は、距離センサ８からの信号に基づいて距離画像を取得する。プロセッサ２１は、距離画像取得部２７により距離センサ８による計測結果に基づく距離画像を取得する（ＡＣＴ６８）。プロセッサ２１は、取得した距離画像をＲＡＭ２３などのメモリに記憶する。
【００９６】
なお、距離画像を取得した後、プロセッサ２１は、距離画像を取得する処理中の商品毎の領域を判定する領域判定処理を実行する。プロセッサ２１は、商品認識処理と領域判定処理とを並行して実行しても良いし、順番に実行しても良い。
【００９７】
距離画像を取得すると、プロセッサ２１は、商品毎の領域判定処理により検出した商品領域に対応するフラグの有無を判定する（ＡＣＴ６９）。フラグが有ると判定した場合（ＡＣＴ６９、ＹＥＳ）、プロセッサ２１は、検出したフラグに対応する商品領域に対し、距離画像に基づいて高さを判定する（ＡＣＴ７０）。例えば、プロセッサ２１は、距離画像における背景（例えば商品載置台又はカゴの底）の距離と商品領域の距離との差分などにより商品の高さを判定する。商品の高さの判定方法は、特定の方法に限定されない。また、プロセッサ２１は、商品領域中のバーコードが検出された位置の高さを判定するようにしても良い。  
商品領域に対応するフラグが無いと判定した場合（ＡＣＴ６９、ＮＯ）、プロセッサ２１は、距離画像に基づく高さ判定の処理を終了するか否かを判断する（ＡＣＴ７２）。
【００９８】
なお、プロセッサ２１は、ＡＣＴ６２−６７の処理とＡＣＴ６８−７２の処理とを並行して実行しても良いし、図１３に示す通りに順番に実施しても良い。本実施形態では、プロセッサ２１は、ＡＣＴ６２−６７の処理とＡＣＴ６８−７２の処理とを並行して実行するものを想定する。ＡＣＴ６２−６７とＡＣＴ６８−７２とを並行して実行する場合、プロセッサ２１は、ＡＣＴ７２の処理として、所定時間だけ新たなフラグがセットされるのを待つようにしても良い。この場合、プロセッサ２１は、フラグが無いと判定した後、所定時間（例えば、５秒間）内に新たなフラグがセットされなければ、距離画像に基づく高さ判定処理を終了する。
【００９９】
距離画像に基づく高さ判定の処理を終了すると（ＡＣＴ７２、ＹＥＳ）、プロセッサ２１は、認識した各商品の面積及び高さと、各商品領域の面積及び高さと、を比較する（ＡＣＴ７３）。プロセッサ２１は、認識した商品毎に、基準面積と撮影画像から算出した商品領域の面積とを比較すると共に、基準高さと距離画像から判定した商品の高さとを比較する（ＡＣＴ７３）。プロセッサ２１は、認識した全商品について面積及び高さが同程度であるとことが確認できた場合（ＡＣＴ７４、ＹＥＳ）、未認識商品が無いと判断する。未認識商品が無いと判断すると、プロセッサ２１は、認識した全商品に対する決済処理を行う（ＡＣＴ７５）。例えば、プロセッサ２１は、商品ＤＢ２５を参照して認識した全商品の代金の合計金額を算出し、算出した合計金額の精算処理を実行する。
【０１００】
少なくとも１つの商品について面積又は高さの何れかが同程度でないと判定した場合（ＡＣＴ７４、ＮＯ）、プロセッサ２１は、未認識商品があると判断する。また、プロセッサ２１は、面積又は高さが同程度でないと判定した商品領域に未認識商品があると判断する。未認識商品があると判断すると、プロセッサ２１は、操作者にエラーを報知するアラートを発生する（ＡＣＴ７６）。例えば、プロセッサ２１は、アラートとして、未認識商品があると判定した領域を示す情報などを表示部に表示する。また、プロセッサ２１は、商品の重なりがある旨、決済不可である旨をアラートとして報知しても良い。また、プロセッサ２１は、アラートとして、決済装置１Ｃに設けたスピーカなどでアラームを鳴らすようにしても良い。
【０１０１】
なお、プロセッサ２１は、未認識商品があると判断した画像領域に対して、上記ＡＣＴ６３で実行した商品認識手法とは異なる商品認識手法により商品認識処理を再度実行しても良い。プロセッサ２１は、再度実行した商品認識処理により実行済みのＡＣＴ６３の処理結果とは異なる認識結果が得られた場合、上記ＡＣＴ６４以降の処理を再度実行すれば良い。
【０１０２】
アラートを発生させた後、プロセッサ２１は、決済処理（商品認識処理）のリトライを受け付ける（ＡＣＴ７７）。例えば、プロセッサ２１は、リトライボタンへの指示に応じて決済処理をリトライする。リトライボタンは、表示部６が表示するアイコンであっても良いし、操作部５に設けたハードキーなどであっても良い。プロセッサ２１は、リトライが指示された場合（ＡＣＴ７７、ＹＥＳ）、上記ＡＣＴ６２へ戻り、上述の処理を再び実行する。また、プロセッサ２１は、リトライが指示されない場合（ＡＣＴ７７、ＮＯ）、決済処理を中止し、待機状態に移行する。
【０１０３】
なお、上述した第３の決済処理は、図１５に示す手順に限定されるものではない。例えば、認識した商品の基準高さと距離画像に基づく高さとの比較は、認識した商品の基準面積と撮影画像から算出する面積とが同程度であると判定（確認）した後に実施しても良い。また、認識した商品の基準面積と撮影画像から算出する面積との比較は、認識した商品の基準高さと距離画像に基づく高さとが同程度であると判定（確認）した後に実施しても良い。
【０１０４】
上記のように、第３の実施形態に係る決済装置１Ｃは、認識した商品の商品ＤＢに登録された基準面積と撮影画像における商品領域の面積とが同程度であるかを判定（確認）する。これと共に、決済装置１Ｃは、認識した商品の商品ＤＢに登録された基準高さと撮影画像における商品領域中の商品に対して実測した高さとが同程度であるかを判定（確認）する。決済装置１Ｃは、基準面積と商品領域の面積とが同程度でない商品の画像領域、又は、基準高さと実測した高さとが同程度でない商品の画像領域に未認識商品が存在すると判断する。
【０１０５】
すなわち、決済装置１Ｃは、撮影画像における商品領域の面積の妥当性だけでなく、実測する商品の高さの妥当性によって未認識商品が存在する領域を判断できる。決済装置１Ｃは、商品領域の面積では未認識商品の検出が困難な場合も、実測する高さにより未認識商品の存在を高精度で判定でき、ロバスト性が向上する。例えば、決済装置１Ｃは、面積の妥当性により横に接して配置された複数商品を検出でき、高さの妥当性により重なった状態の複数商品を検出できる。結果として、決済装置１Ｃは、実際より安い価格で決済が行われるのを確実に防ぐことができる。
【０１０６】
（第４の実施形態）
次に、第４実施形態に係る決済装置（物品認識装置）１Ｄについて説明する。  
第４実施形態に係る決済装置１Ｄは、図１１及び図１２に示す決済装置１Ｃと同様なハードウエア構成により実現できる。ただし、決済装置１Ｄのプロセッサ２１が実行する第４の決済処理は、第３の決済処理とは異なる。
【０１０７】
図１６は、決済装置１Ｄの処理機能の構成例を示すブロック図である。  
図１６に示す処理部６０は、決済装置１Ｄのプロセッサ２１が不揮発性メモリ２４或いはＲＯＭ２２に記憶したプログラムを実行することにより実現する処理機能を示す。処理部６０は、個別商品の領域検出部６１、個別商品の高さ判定部６２、パターン検出部３３、パターン認識部３４、整合判定部６５および通知部６６などを有する。これらの処理部６０内の各部６１、６２、３３、３４、６５、６６は、プロセッサ２１がプログラムを実行することにより実現する。ただし、処理部６０内の各部は、一部又は全部をそれぞれ別のプロセッサなどのハードウエアで実現しても良い。なお、パターン検出部３３及びパターン認識部３４は、図３と同様なもので実現できるための詳細な説明を省略する。
【０１０８】
個別商品の領域検出部６１及び個別商品の高さ判定部６２は、プロセッサ２１が実行する商品領域検出部として機能する。個別商品の領域検出部６１は、距離画像取得部２７が取得する距離画像に基づいて個別の商品の画像領域を検出する。個別商品の領域検出部６１は、例えば、距離の異なる領域ごとに個別の商品の画像領域を検出する。個別商品の領域検出部６１は、例えば、背景までの距離とは異なる距離の領域について、個々の商品の高低差により距離が異なる領域（個別の商品の画像領域）を検出する。個別の商品の領域検出部６１に適用される商品毎の画像領域を検出する方法は、特定の方法に限定されない。
【０１０９】
個別商品の高さ判定部６２は、個別商品の領域検出部６１が検出する個別の商品の画像領域における商品の高さを判定する。個別商品の高さ判定部６２は、例えば、距離画像取得部２７が取得する距離センサ８の計測値に基づく距離画像により商品の高さ（実測した商品の高さ）を判定する。個別商品の高さ判定部６２は、背景（例えば商品載置台又はカゴの底）までの距離と当該商品領域の商品までの距離との差分などにより商品の高さを判定する。個別商品の高さ判定部６２に適用される商品の高さを判定する方法は、特定の方法に限定されない。また、プロセッサ２１は、商品領域中のバーコードが検出された位置の高さを判定するようにしても良い。
【０１１０】
整合判定部５５は、商品の認識結果に対して距離画像における商品の状態（実測する商品の高さ）が整合するかを判定する。整合判定部６５は、実測する各商品の高さが商品ＤＢ２５に登録された高さと同程度かを判定する。整合判定部６５は、認識した商品毎に、実測した商品の高さが商品ＤＢ２５に登録された基準高さと同程度かを判定する。例えば、整合判定部６５は、認識した商品の商品ＤＢ２５に登録された基準高さと実測した商品の高さとの差分が所定範囲内であるか否かにより高さが同程度であるか否かを判定する。
【０１１１】
通知部６６は、整合判定部６５による判定結果を出力する。通知部６６は、各商品の高さが商品ＤＢ２５に登録された値と同程度であると判定した場合には未認識商品がない旨を出力する。また、通知部６６は、少なくとも１つの商品の高さが商品ＤＢ２５に登録された値と同程度でないと判定した場合には未認識商品がある旨を出力する。例えば、通知部６６は、高さが商品ＤＢに登録された値と同程度でないと判定した商品の画像領域に、未認識商品がある旨をアラートとして表示部６に表示させる。
【０１１２】
次に、距離画像において個別の商品の領域を特定する方法について説明する。  
図１７（Ａ）は、高さの異なる２つの商品を隣接した状態で配置した例を示す。図１７（Ｂ）は、図１７（Ａ）の配置状態の２つの商品をカメラ４が撮影した撮影画像を模式的に示す図である。図１７（Ｃ）は、図１７（Ａ）の配置状態の商品に対する距離センサ８の計測値による距離画像を模式的に示す図である。
【０１１３】
図１７（Ａ）は、商品Ｃ３と商品Ｄ３とが隣接して配置された状態を示す。図１７（Ａ）に示す配置状態では商品Ａ４と商品Ｂ４とが接する。このため、図１７（Ｂ）に示す撮影画像では、商品Ａ４の画像領域Ｒａ４と商品Ｂ４の画像領域Ｒｂ４とを区分けすることが容易ではない。図１７（Ａ）に示す例では、商品Ａ４と商品Ｂ４とは高さが異なる。このため、図１７（Ｃ）に示す距離画像では、商品Ａ４の画像領域Ｒａ４と商品Ｂ４の画像領域Ｒｂ４とは、高低差（距離画像における距離の差分）が現れる。従って、プロセッサ２１は、図１７（Ｃ）に示す距離画像において、商品Ａ４の画像領域Ｒａ４と商品Ｂ４の画像領域Ｒｂ４とを明確に区分けできる。
【０１１４】
すなわち、第４の実施形態に係る決済装置１Ｄは、距離画像において、個別の商品の画像領域を特定する。これにより、決済装置１Ｄは、複数の商品同士が接して配置されていても、各商品の高低差により個々の商品の画像領域を検出できる。決済装置１Ｄは、距離画像から特定した各商品領域における実測した商品の高さと商品ＤＢに登録済みの商品の高さとが同程度か否かを判定する。決済装置１Ｄは、実測した商品の高さが商品ＤＢ２５に登録済みの商品の高さと同程度でないと判定した場合に、商品の重なりがあると判断できる。
【０１１５】
次に、第４の実施形態に係る決済装置１Ｄにおける第４の決済処理について説明する。  
図１８は、第４の実施形態に係る決済装置１Ｄにおける第４の決済処理の例を説明するためのフローチャートである。  
待機状態において、プロセッサ２１は、決済処理の開始指示を受け付ける（ＡＣＴ１０１）。例えば、プロセッサ２１は、スタートボタンの指示に応じて決済処理を開始する。プロセッサ２１は、決済処理を開始すると（ＡＣＴ１０１、ＹＥＳ）、カメラ４に撮影を指示するともに、距離センサ８に距離の計測を指示する。
【０１１６】
カメラ４は、プロセッサ２１の指示に応じて商品載置台３を含む撮影範囲を撮影する。カメラ４は、撮影した撮影画像を画像取得部２６へ出力する。プロセッサ２１は、画像取得部２６によりカメラ４が撮影した撮影画像を取得する（ＡＣＴ１０２）。プロセッサ２１は、カメラ４から取得する撮影画像をＲＡＭ２３などのメモリに記憶する。
【０１１７】
撮影画像を取得した後、プロセッサ２１は、商品認識処理部の機能により撮影画像中の各商品を認識する商品認識処理を実行する。プロセッサ２１は、撮影画像に含まれる全てのバーコード（特定パターン）を検出する。バーコードを検出すると、プロセッサ２１は、検出した各バーコードにより各商品を認識する（ＡＣＴ１０３）。撮影画像から検出したバーコードによる商品が認識できた場合、プロセッサ２１は、認識した商品の高さ（基準高さ）を商品ＤＢ２５から特定する（ＡＣＴ１０４）。
【０１１８】
一方、距離センサ８は、プロセッサ２１の指示に応じて商品載置台を含む撮影範囲における距離を計測する。距離センサ８は、距離の計測結果を示す信号を距離画像取得部２７へ出力する。処理画像取得部２７は、距離センサ８からの信号に基づいて距離画像を取得する。プロセッサ２１は、距離画像取得部２７により距離センサ８による計測結果に基づく距離画像を取得する（ＡＣＴ１０５）。プロセッサ２１は、取得した距離画像をＲＡＭ２３などのメモリに記憶する。
【０１１９】
距離画像を取得した後、プロセッサ２１は、商品領域検出部の機能により距離画像における各商品の高さを判定する処理を実行する。プロセッサ２１は、距離画像に基づいて個別の商品の領域を検出する（ＡＣＴ１０６）。プロセッサ２１は、例えば、距離画像における各商品の高低差により個別の商品の領域を検出する。距離画像から個別の商品の領域を検出すると、プロセッサ２１は、距離画像中の各商品領域における商品の高さを判定する（ＡＣＴ１０７）
なお、プロセッサ２１は、ＡＣＴ１０２−１０４とＡＣＴ１０５−１０７とを並行して実施しても良いし、順番に実行しても良い。本実施形態では、プロセッサ２１は、ＡＣＴ１０２−１０４とＡＣＴ１０５−１０７とを並行して実施するものとする。
【０１２０】
プロセッサ２１は、商品認識処理で認識した商品毎に、商品ＤＢ２５に登録されている高さ（基準高さ）と距離画像から判定した商品の高さ（実測した商品の高さ）とを比較する（ＡＣＴ１０８）。この比較により、プロセッサ２１は、認識した各商品の基準高さに対して実測した商品（商品領域）の高さが同程度であるか判定する（ＡＣＴ１０９）。例えば、プロセッサ２１は、認識した商品毎に、基準高さと実測した高さとの差分が所定の範囲内であるか否かにより、同程度か否かを判定する。
【０１２１】
全ての商品について基準高さと実測した高さとが同程度であると判定した場合（ＡＣＴ１０９、ＹＥＳ）、プロセッサ２１は、商品の重なりが無いと判断する。商品の重なりがないと判断すると、プロセッサ２１は、認識した全商品に対する決済処理を行う（ＡＣＴ１１０）。例えば、プロセッサ２１は、商品ＤＢ２５を参照して認識した全商品の代金の合計金額を算出し、算出した合計金額の精算処理を実行する。
【０１２２】
基準高さと実測した高さとが同程度でない商品があると判定した場合（ＡＣＴ１０９、ＮＯ）、プロセッサ２１は、商品の重なりがあると判断する。また、プロセッサ２１は、実測した高さが商品の基準高さと同程度でないと商品の画像領域に、商品の重なり（商品の重なりの疑い）があると判断する。商品の重なりがあると判断すると、プロセッサ２１は、操作者にエラーを報知するアラートを発生させる（ＡＣＴ１１１）。例えば、プロセッサ２１は、アラートとして、商品の重なりがある旨、決済不可である旨、或いは、重なりがあると判定した領域を示す情報などを表示部６に表示する。また、プロセッサ２１は、アラートとして、決済装置１に設けたスピーカなどでアラームを鳴らすようにしても良い。
【０１２３】
なお、プロセッサ２１は、未認識商品があると判断した画像領域に対して、上記ＡＣＴ１０３で実行した商品認識手法とは異なる商品認識手法により商品認識処理を再度実行しても良い。プロセッサ２１は、再度実行した商品認識処理により実行済みのＡＣＴ１０３の処理結果とは異なる認識結果が得られた場合、上記ＡＣＴ１０４以降の処理を再度実行すれば良い。
【０１２４】
アラートを発生させた後、プロセッサ２１は、決済処理（商品認識処理）のリトライを受け付ける（ＡＣＴ１１２）。例えば、プロセッサ２１は、リトライボタンへの指示に応じて決済処理をリトライする。リトライボタンは、表示部６が表示するアイコンであっても良いし、操作部５に設けたハードキーなどであっても良い。プロセッサ２１は、リトライが指示された場合（ＡＣＴ１１２、ＹＥＳ）、上記ＡＣＴ１０２へ戻り、上述の処理を再び実行する。また、プロセッサ２１は、リトライが指示されない場合（ＡＣＴ１１２、ＮＯ）、決済処理を中止し、待機状態に移行する。
【０１２５】
上記のように、第４の実施形態に係る決済装置１Ｄは、認識した各商品の商品ＤＢに登録された基準高さと実測した当該商品の高さとが同程度であるかを判定（確認）する。決済装置１Ｄは、基準高さと実測した高さとが同程度でないと判定した商品領域に、商品の重なりがあると判断する。すなわち、決済装置１Ｄは、距離センサで実測する商品の高さにより商品の重なりを高精度に判定することができる。結果として、決済装置１Ｄは、商品が重なった状態で決済が行われることを防止でき、実際より安い価格で決済が行われるのを防ぐことができる。
【０１２６】
（第５の実施形態）
次に、第５の実施形態に係る決済装置（物品認識装置）１Ｅについて説明する。  
第５の実施形態に係る決済装置１Ｅは、図１１及び図１２に示す決済装置１Ｃと同様なハードウエア構成により実現できる。ただし、決済装置１Ｅのプロセッサ２１が実行する第５の決済処理は、第３の決済処理とは異なる。
【０１２７】
図１９は、決済装置１Ｅの処理機能の構成例を示すブロック図である。  
図１９に示す処理部７０は、決済装置１Ｅのプロセッサ２１が不揮発性メモリ２４或いはＲＯＭ２２に記憶したプログラムを実行することにより実現する処理機能を示す。処理部７０は、全商品の領域検出部７１、全商品の面積判定部７２、パターン検出部３３、パターン認識部３４、整合判定部７５および通知部７６などを有する。これらの処理部７０内の各部７１、７２、３３、３４、７５、７６は、プロセッサ２１がプログラムを実行することにより実現する。ただし、処理部７０内の各部は、一部又は全部をそれぞれ別のプロセッサなどのハードウエアで実現しても良い。なお、パターン検出部３３及びパターン認識部３４は、図３と同様なもので実現できるための詳細な説明を省略する。
【０１２８】
全商品の領域検出部７１及び全商品の面積判定部７２は、プロセッサ２１が実行する商品領域検出部として機能する。全商品の領域検出部７１は、距離画像取得部２７が取得する距離画像に基づいて全ての商品の画像領域を検出する。全商品の領域検出部７１は、例えば、背景までの距離とは異なる距離の領域を全商品の画像領域を検出する。全商品の領域検出部７１は、背景までの距離との差分により全商品の画像領域を検出しても良い。全商品の領域検出部７１に適用される商品毎の画像領域を検出する方法は、特定の方法に限定されない。
【０１２９】
全商品の面積判定部７２は、全商品の領域検出部７１が検出した全商品の画像領域の面積を判定する。全商品の面積判定部７２は、例えば、検出した全ての商品の画像領域の総画素数を全商品領域の面積として算出する。全商品の面積判定部７２に適用される全商品の画像領域の面積を判定する方法は、特定の方法に限定されない。
【０１３０】
整合判定部７５は、商品の認識結果に対して距離画像における商品の画像領域の状態が整合するかを判定する。整合判定部７５は、距離画像から検出した全商品の画像領域の面積と認識した全商品の商品ＤＢ２５に登録された面積の合算値（認識した全商品の総面積）とが同程度か否かを判定する。例えば、整合判定部７５は、撮影画像から検出した全商品の画像領域の面積と認識した全商品の総面積との差分が所定範囲内であるか否かにより、同程度であるか否かを判定する。
【０１３１】
通知部７６は、整合判定部７５による判定結果を出力する。通知部７６は、全商品の画像領域の面積と認識した全商品の総面積とが同程度であると判定した場合には未認識商品がない旨を出力する。また、通知部７６は、全商品の画像領域の面積と認識した全商品の総面積とが同程度でないと判定した場合には未認識商品がある旨を出力する。例えば、通知部７６は、全商品の画像領域の面積と認識した全商品の総面積とが同程度でないと判定した場合、アラートとして未認識商品がある旨を表示部６に表示させる。
【０１３２】
次に、第５の実施形態に係る決済装置１Ｅにおける第５の決済処理について説明する。  
図２０は、第５の実施形態に係る決済装置１Ｅにおける第５の決済処理の例を説明するためのフローチャートである。  
待機状態において、プロセッサ２１は、決済処理の開始指示を受け付ける（ＡＣＴ１２１）。例えば、プロセッサ２１は、スタートボタンの指示に応じて決済処理を開始する。プロセッサ２１は、決済処理を開始すると（ＡＣＴ１２１、ＹＥＳ）、カメラ４に撮影を指示するともに、距離センサ８に距離の計測を指示する。
【０１３３】
カメラ４は、プロセッサ２１の指示に応じて商品載置台３を含む撮影範囲を撮影する。カメラ４は、撮影した撮影画像を画像取得部２６へ出力する。プロセッサ２１は、画像取得部２６によりカメラ４が撮影した撮影画像を取得する（ＡＣＴ１２２）。プロセッサ２１は、カメラ４から取得する撮影画像をＲＡＭ２３などのメモリに記憶する。
【０１３４】
撮影画像を取得した後、プロセッサ２１は、商品認識処理部の機能により撮影画像中の各商品を認識する商品認識処理を実行する。プロセッサ２１は、撮影画像に含まれる全てのバーコード（特定パターン）を検出する。バーコードを検出すると、プロセッサ２１は、検出した各バーコードにより各商品を認識する（ＡＣＴ１２３）。撮影画像から検出したバーコードによる商品が認識できた場合、プロセッサ２１は、認識した各商品のバーコード面の面積（基準面積）を商品ＤＢ２５から取得する。商品認識処理が完了すると、プロセッサ２１は、商品ＤＢ２５から取得する認識した各商品の基準面積を合算することにより認識した全商品の総面積を算出する（ＡＣＴ１２４）。例えば、プロセッサ２１は、算出した全商品の総面積をＲＡＭ２３に保持する。
【０１３５】
一方、距離センサ８は、プロセッサ２１の指示に応じて商品載置台を含む撮影範囲における距離を計測する。距離センサ８は、距離の計測結果を示す信号を距離画像取得部２７へ出力する。処理画像取得部２７は、距離センサ８からの信号に基づいて距離画像を取得する。プロセッサ２１は、距離画像取得部２７により距離センサ８による計測結果に基づく距離画像を取得する（ＡＣＴ１２５）。プロセッサ２１は、取得した距離画像をＲＡＭ２３などのメモリに記憶する。
【０１３６】
距離画像を取得した後、プロセッサ２１は、商品領域検出部の機能により距離画像における全商品の画像領域を検出する処理を実行する。プロセッサ２１は、距離画像に基づいて全商品の領域を検出する（ＡＣＴ１２６）。プロセッサ２１は、例えば、距離画像における背景までの距離との差分により全商品の画像領域を検出する。距離画像から全商品の領域を検出すると、プロセッサ２１は、距離画像における全商品の画像領域の面積を判定する（ＡＣＴ１２７）。  
なお、プロセッサ２１は、ＡＣＴ１２２−１２４とＡＣＴ１２５−１２７とを並行して実施しても良いし、順番に実行しても良い。本実施形態では、プロセッサ２１は、ＡＣＴ１２２−１２４とＡＣＴ１２５−１２７とを並行して実施するものとする。
【０１３７】
商品認識処理と全商品の領域検出処理とが終了すると、プロセッサ２１は、距離画像における全商品の画像領域の面積と認識した全商品の総面積とを比較する（ＡＣＴ１２８）。この比較により、プロセッサ２１は、距離画像における全商品の画像領域の面積と認識した全商品の総面積とが同程度であるか判定する（ＡＣＴ１２９）。例えば、プロセッサ２１は、距離画像における全商品の画像領域の面積と認識した全商品の総面積との差分が所定範囲内であるか否かにより、同程度であるか否かを判定する。
【０１３８】
距離画像における全商品の画像領域の面積と認識した全商品の総面積とが同程度であると判定した場合（ＡＣＴ１２９、ＹＥＳ）、プロセッサ２１は、未認識商品がないと判断する。未認識商品がないと判断すると、プロセッサ２１は、認識した全商品に対する決済処理を行う（ＡＣＴ１３０）。例えば、プロセッサ２１は、商品ＤＢ２５を参照して認識した全商品の代金の合計金額を算出する。全商品の代金の合計金額を算出すると、プロセッサ２１は、決済部７により算出した合計金額の精算処理を実行する。
【０１３９】
また、距離画像における全商品の画像領域の面積と認識した全商品の総面積とが同程度でないと判定した場合（ＡＣＴ１２９、ＮＯ）、プロセッサ２１は、未認識商品があると判断する。未認識商品があると判断すると、プロセッサ２１は、操作者にエラーを報知するアラートを発生させる（ＡＣＴ１３１）。例えば、プロセッサ２１は、アラートとして、未認識商品がある旨、或いは、決済不可である旨などの表示部６に表示する。また、プロセッサ２１は、アラートとして、決済装置１Ａに設けたスピーカなどでアラームを鳴らすようにしても良い。
【０１４０】
アラートを発生させた後、プロセッサ２１は、決済処理（商品認識処理）のリトライの指示を受け付ける（ＡＣＴ１３２）。例えば、プロセッサ２１は、リトライボタンへの指示に応じて決済処理をリトライする。プロセッサ２１は、リトライが指示された場合（ＡＣＴ１３２、ＹＥＳ）、上記ＡＣＴ１２２へ戻り、上述の処理を再び実行する。また、プロセッサ２１は、リトライが指示されない場合（ＡＣＴ１３２、ＮＯ）、決済処理を中止し、待機状態に移行する。
【０１４１】
上記のように、第５の実施形態に係る決済装置１Ｅは、認識した全商品の基準面積を合算した総面積と距離画像から検出した全商品の画像領域の面積とが同程度であるかを判定（確認）する。決済装置１Ｅは、認識した全商品の総面積と距離画像から検出した全商品の画像領域の面積とが同程度でない場合、未認識商品が存在すると判断する。決済装置１Ｅは、撮影画像ではなく、距離画像により全商品の画像領域の面積を判定できる。例えば、距離画像は、撮影画像よりも背景と物体（商品）とが明確に分離できるため、商品の画像領域を高精度で検出できる。結果として、決済装置１Ｅは、未認識商品を高精度で検出でき、実際より安い価格で決済が行われるのを確実に防ぐことができる。
【０１４２】
（第６の実施形態）
次に、第６の実施形態に係る決済装置（物品認識装置）１Ｆについて説明する。  
第６の実施形態に係る決済装置１Ｆは、図１１及び図１２に示す決済装置１Ｃと同様なハードウエア構成により実現できる。ただし、決済装置１Ｆのプロセッサ２１が実行する第６の決済処理は、第３の決済処理とは異なる。
【０１４３】
図２１は、決済装置１Ｆの処理機能の構成例を示すブロック図である。  
図２１に示す処理部８０は、決済装置１Ｆのプロセッサ２１が不揮発性メモリ２４或いはＲＯＭ２２に記憶したプログラムを実行することにより実現する処理機能を示す。処理部８０は、個別商品の領域検出部８１、個別商品の面積判定部８２、パターン検出部３３、パターン認識部３４、整合判定部８５および通知部８６などを有する。これらの処理部８０内の各部８１、８２、３３、３４、８５、８６は、プロセッサ２１がプログラムを実行することにより実現する。ただし、処理部８０内の各部は、一部又は全部をそれぞれ別のプロセッサなどのハードウエアで実現しても良い。なお、パターン検出部３３及びパターン認識部３４は、図３と同様なもので実現できるための詳細な説明を省略する。
【０１４４】
個別商品の領域検出部８１及び個別商品の面積判定部８２は、プロセッサ２１が実行する商品領域検出部として機能する。個別商品の領域検出部８１は、距離画像取得部２７が取得する距離画像に基づいて個別の商品の画像領域を検出する。個別商品の領域検出部８１は、例えば、背景までの距離との差分と各商品間の高低差とにより個別の商品の画像領域を検出する。個別の商品の領域検出部８１に適用される商品毎の画像領域を検出する方法は、特定の方法に限定されない。
【０１４５】
個別商品の面積判定部８２は、個別商品の領域検出部８１が検出した個別の商品の画像領域の面積（各商品画像の面積）を判定する。個別商品の面積判定部８２は、距離画像における商品毎の画像領域の画素数を各商品領域の面積として算出する。個別商品の面積判定部８２に適用される各商品領域の面積を判定する方法は、特定の方法に限定されない。
【０１４６】
整合判定部８５は、商品の認識結果に対して、距離画像における商品の画像領域の状態が整合するかを判定する。整合判定部８５は、距離画像から検出した各商品領域の面積と認識した各商品の商品ＤＢ２５に登録された面積とが同程度かを判定する。例えば、整合判定部８５は、各商品領域の面積と認識した各商品の面積との差分が所定範囲内であるか否かにより同程度であるか否かを判定する。
【０１４７】
通知部８６は、整合判定部８５による判定結果を出力する。通知部８６は、各商品領域の面積と認識した各商品の面積とが同程度であると判定した場合には未認識商品がない旨を出力する。また、通知部８６は、商品領域の面積と認識した商品の面積とが同程度でない商品があると判定した場合には未認識商品がある旨を出力する。例えば、通知部８６は、認識した商品の面積と同程度でないと判定された商品の画像領域に未認識商品が存在する事をアラートとして表示部６に表示させる。
【０１４８】
次に、第６の実施形態に係る決済装置１Ｆにおける第６の決済処理について説明する。  
図２２は、第６の実施形態に係る決済装置１Ｆにおける第６の決済処理の例を説明するためのフローチャートである。  
待機状態において、プロセッサ２１は、決済処理の開始指示を受け付ける（ＡＣＴ１４１）。例えば、プロセッサ２１は、スタートボタンの指示に応じて決済処理を開始する。プロセッサ２１は、決済処理を開始すると（ＡＣＴ１４１、ＹＥＳ）、カメラ４に撮影を指示するともに、距離センサ８に距離の計測を指示する。
【０１４９】
カメラ４は、プロセッサ２１の指示に応じて商品載置台３を含む撮影範囲を撮影する。カメラ４は、撮影した撮影画像を画像取得部２６へ出力する。プロセッサ２１は、画像取得部２６によりカメラ４が撮影した撮影画像を取得する（ＡＣＴ１４２）。プロセッサ２１は、カメラ４から取得する撮影画像をＲＡＭ２３などのメモリに記憶する。
【０１５０】
撮影画像を取得した後、プロセッサ２１は、商品認識処理部の機能により撮影画像中の各商品を認識する商品認識処理を実行する。プロセッサ２１は、撮影画像に含まれる全てのバーコード（特定パターン）を検出する。バーコードを検出すると、プロセッサ２１は、検出した各バーコードにより各商品を認識する（ＡＣＴ１４３）。撮影画像から検出したバーコードによる商品が認識できた場合、プロセッサ２１は、認識した各商品のバーコード面の面積（基準面積）を商品ＤＢ２５により特定する（ＡＣＴ１４４）。認識した商品の商品ＤＢにより基準面積を特定すると、プロセッサ２１は、認識した各商品の基準面積をＲＡＭ２３に保持する。
【０１５１】
一方、距離センサ８は、プロセッサ２１の指示に応じて商品載置台３を含む撮影範囲における距離を計測する。距離センサ８は、距離の計測結果を示す信号を距離画像取得部２７へ出力する。処理画像取得部２７は、距離センサ８からの信号に基づいて距離画像を取得する。プロセッサ２１は、距離画像取得部２７により距離センサ８による計測結果に基づく距離画像を取得する（ＡＣＴ１４５）。プロセッサ２１は、取得した距離画像をＲＡＭ２３などのメモリに記憶する。
【０１５２】
距離画像を取得した後、プロセッサ２１は、商品領域検出部の機能により距離画像における個別の商品の画像領域を検出する処理を実行する。プロセッサ２１は、距離画像に基づいて個別の商品の画像領域（商品領域）を検出する（ＡＣＴ１４６）。  
距離画像から個別の商品の画像領域を検出すると、プロセッサ２１は、距離画像における個別の商品の画像領域の面積を判定する（ＡＣＴ１４７）。プロセッサ２１は、距離画像から判定した各商品領域の面積をＲＡＭ２３に保持する。
【０１５３】
なお、プロセッサ２１は、ＡＣＴ１４２−１４４とＡＣＴ１４５−１４７とを並行して実施しても良いし、順番に実行しても良い。本実施形態では、プロセッサ２１は、ＡＣＴ１４２−１４４とＡＣＴ１４５−１４７とを並行して実施するものとする。
【０１５４】
商品認識処理と各商品の領域検出処理とが終了すると、プロセッサ２１は、距離画像における各商品領域の面積と認識した各商品の面積（基準面積）とを比較する（ＡＣＴ１４８）。この比較により、プロセッサ２１は、距離画像における各商品領域の面積と認識した各商品の基準面積とが同程度であるか判定する（ＡＣＴ１４９）。例えば、プロセッサ２１は、距離画像における各商品の画像領域の面積と認識した各商品の基準面積との差分が所定範囲内であるか否かにより、同程度であるか否かを判定する。
【０１５５】
距離画像における各商品領域の面積と認識した各商品の基準面積とが同程度であると判定した場合（ＡＣＴ１４９、ＹＥＳ）、プロセッサ２１は、未認識商品がないと判断する。未認識商品がないと判断すると、プロセッサ２１は、認識した全商品に対する決済処理を行う（ＡＣＴ１５０）。例えば、プロセッサ２１は、商品ＤＢ２５を参照して認識した全商品の代金の合計金額を算出する。全商品の代金の合計金額を算出すると、プロセッサ２１は、決済部７により算出した合計金額の精算処理を実行する。
【０１５６】
また、距離画像における商品領域の面積と認識した商品の基準面積とが同程度でない商品があると判定した場合（ＡＣＴ１４９、ＮＯ）、プロセッサ２１は、未認識商品があると判断する。また、プロセッサ２１は、認識した商品の基準面積に対して面積が同程度でない商品の画像領域に未認識商品があると判断する。未認識商品がある判断すると、プロセッサ２１は、操作者にエラーを報知するためのアラートを発生させる（ＡＣＴ１５１）。例えば、プロセッサ２１は、アラートとして、未認識商品がある画像領域を報知する。また、プロセッサ２１は、未認識商品がある旨、或いは、決済不可である旨を示すアラートを発生させても良い。また、プロセッサ２１は、アラートとして、決済装置１Ｂに設けたスピーカなどでアラームを鳴らすようにしても良い。
【０１５７】
なお、プロセッサ２１は、未認識商品があると判断した画像領域に対して、上記ＡＣＴ１４３で実行した商品認識手法とは異なる商品認識手法により商品認識処理を再度実行しても良い。プロセッサ２１は、再度実行した商品認識処理により実行済みのＡＣＴ１４３の処理結果とは異なる認識結果が得られた場合、上記ＡＣＴ１４４以降の処理を再度実行すれば良い。
【０１５８】
アラートを発生させた後、プロセッサ２１は、決済処理（商品認識処理）のリトライの指示を受け付ける（ＡＣＴ１５２）。例えば、プロセッサ２１は、リトライボタンへの指示に応じて決済処理をリトライする。プロセッサ２１は、リトライが指示された場合（ＡＣＴ１５２、ＹＥＳ）、上記ＡＣＴ１４２へ戻り、上述の処理を再び実行する。また、プロセッサ２１は、リトライが指示されない場合（ＡＣＴ１５２、ＮＯ）、決済処理を中止し、待機状態に移行する。
【０１５９】
上記のように、第６の実施形態に係る決済装置１Ｆは、認識した各商品の基準面積と距離画像から検出した個別の商品の画像領域の面積とが同程度であるかを判定（確認）する。決済装置１Ｆは、認識した商品の基準面積に対して面積が同程度でない商品の画像領域に、未認識商品が存在すると判断する。決済装置１Ｆは、撮影画像では特定が難しい個別の商品の画像領域を距離画像により高精度に検出でき、未認識商品が存在する画像領域を特定できる。結果として、決済装置１Ｆは、未認識商品が存在する領域を高精度で検出でき、実際より安い価格で決済が行われるのを確実に防ぐことができる。
【０１６０】
（第７の実施形態）
次に、第７の実施形態に係る決済装置（物品認識装置）１Ｇについて説明する。  
第７の実施形態に係る決済装置１Ｇは、図１１及び図１２に示す決済装置１Ｃと同様なハードウエア構成により実現できる。ただし、決済装置１Ｇのプロセッサ２１が実行する第７の決済処理は、第３の決済処理とは異なる。
【０１６１】
図２３は、決済装置１Ｇの処理機能の構成例を示すブロック図である。  
図２３に示す処理部９０は、決済装置１Ｇのプロセッサ２１が不揮発性メモリ２４或いはＲＯＭ２２に記憶したプログラムを実行することにより実現する処理機能を示す。処理部９０は、個別商品の領域検出部８１、個別商品の面積判定部８２、パターン検出部３３、パターン認識部３４、個別商品の高さ判定部９２、整合判定部９５および通知部９６などを有する。これらの処理部９０内の各部８１、８２、３３、３４、９２、９５、９６は、プロセッサ２１がプログラムを実行することにより実現する。ただし、処理部９０内の各部は、一部又は全部をそれぞれ別のプロセッサなどのハードウエアで実現しても良い。
【０１６２】
なお、パターン検出部３３及びパターン認識部３４は、図３と同様なもので実現できるための詳細な説明を省略する。また、個別商品の領域検出部８１及び個別商品の面積判定部８２は、図２１と同様なもので実現できるための詳細な説明を省略する。
【０１６３】
個別商品の高さ判定部９２は、個別商品の領域検出部８１が検出する個別の商品の画像領域における商品の高さを判定する。個別商品の高さ判定部９２は、距離画像取得部２７が取得する距離画像中の商品の画像領域における商品の高さ（実測した商品の高さ）を判定する。個別商品の高さ判定部９２は、背景（例えば商品載置台又はカゴの底）までの距離と当該商品領域の商品までの距離との差分などにより商品の高さを判定する。個別商品の高さ判定部９２に適用される商品の高さを判定する方法は、特定の方法に限定されない。また、プロセッサ２１は、商品領域中のバーコードが検出された位置の高さを判定するようにしても良い。
【０１６４】
整合判定部９５は、商品の認識結果に対して距離画像における商品の高さと商品の画像領域の状態とが整合するかを判定する。整合判定部９５は、認識した商品毎に、実測する各商品の面積及び高さが認識した各商品の商品ＤＢ２５に登録された面積及び高さと同程度かを判定する。例えば、整合判定部９５は、認識した各商品の基準面積と各商品領域の面積との差分が所定範囲内であるか否かにより面積が同程度であるか否かを判定する。また、整合判定部９５は、認識した商品の基準高さと実測した当該商品の高さとの差分が所定範囲内であるか否かにより高さが同程度であるか否かを判定する。
【０１６５】
通知部９６は、整合判定部９５による判定結果を出力する。通知部９６は、各商品領域の面積及び高さが商品ＤＢ２５に登録された値と同程度であると判定した場合には未認識商品がない旨を出力する。また、通知部９６は、各商品領域の面積又は高さの何れかが商品ＤＢ２５に登録された値と同程度でないと判定した場合には未認識商品がある旨を出力する。例えば、通知部９６は、面積又は高さが商品ＤＢ２５に登録された値と同程度でないと判定した商品の画像領域に、未認識商品がある旨をアラートとして表示部６に表示させる。
【０１６６】
次に、第７の実施形態に係る決済装置１Ｇにおける第７の決済処理について説明する。  
図２４は、第６の実施形態に係る決済装置１Ｇにおける第７の決済処理の例を説明するためのフローチャートである。  
待機状態において、プロセッサ２１は、決済処理の開始指示を受け付ける（ＡＣＴ１６１）。例えば、プロセッサ２１は、スタートボタンの指示に応じて決済処理を開始する。プロセッサ２１は、決済処理を開始すると（ＡＣＴ１６１、ＹＥＳ）、カメラ４に撮影を指示するともに、距離センサ８に距離の計測を指示する。
【０１６７】
カメラ４は、プロセッサ２１の指示に応じて商品載置台３を含む撮影範囲を撮影する。カメラ４は、撮影した撮影画像を画像取得部２６へ出力する。プロセッサ２１は、画像取得部２６によりカメラ４が撮影した撮影画像を取得する（ＡＣＴ１６２）。プロセッサ２１は、カメラ４から取得する撮影画像をＲＡＭ２３などのメモリに記憶する。
【０１６８】
撮影画像を取得した後、プロセッサ２１は、商品認識処理部の機能により撮影画像中の各商品を認識する商品認識処理を実行する。プロセッサ２１は、撮影画像に含まれる全てのバーコード（特定パターン）を検出する。バーコードを検出すると、プロセッサ２１は、検出した各バーコードにより各商品を認識する（ＡＣＴ１６３）。撮影画像から検出したバーコードによる商品が認識できた場合、プロセッサ２１は、認識した各商品のバーコード面の面積（基準面積）を商品ＤＢ２５から特定する（ＡＣＴ１６４）。プロセッサ２１は、認識した各商品の基準面積をＲＡＭ２３に保持する。
【０１６９】
一方、距離センサ８は、プロセッサ２１の指示に応じて商品載置台３を含む撮影範囲における距離を計測する。距離センサ８は、距離の計測結果を示す信号を距離画像取得部２７へ出力する。処理画像取得部２７は、距離センサ８からの信号に基づいて距離画像を取得する。プロセッサ２１は、距離画像取得部２７により距離センサ８による計測結果に基づく距離画像を取得する（ＡＣＴ１６５）。プロセッサ２１は、取得した距離画像をＲＡＭ２３などのメモリに記憶する。
【０１７０】
距離画像を取得した後、プロセッサ２１は、商品領域検出部の機能により距離画像における個別の商品の画像領域を検出する処理を実行する。プロセッサ２１は、距離画像に基づいて個別の商品の画像領域（商品領域）を検出する（ＡＣＴ１６６）。プロセッサ２１は、例えば、距離画像における背景までの距離との差分と商品間の高低差とにより距離画像から個別の商品の画像領域を検出する。距離画像から個別の商品の画像領域を検出すると、プロセッサ２１は、距離画像における個別の商品の画像領域の面積を判定する（ＡＣＴ１６７）。プロセッサ２１は、検出した各商品領域の面積をＲＡＭに保持する。
【０１７１】
さらに、距離画像を取得すると、プロセッサ２１は、距離画像から検出した商品毎の画像領域における商品の高さ（実測した商品の高さ）を判定する（ＡＣＴ１６８）プロセッサ２１は、判定した各商品領域における商品の高さをＲＡＭに保持する。  
なお、プロセッサ２１は、ＡＣＴ１６２−１６４とＡＣＴ１６５−１６８とを並行して実施しても良いし、順番に実行しても良い。本実施形態では、プロセッサ２１は、ＡＣＴ１６２−１６４とＡＣＴ１６５−１６８とを並行して実施するものとする。
【０１７２】
ＡＣＴ１６８までの処理が終了すると、プロセッサ２１は、各商品領域の面積及び実測した商品の高さと、認識した各商品の基準面積及び基準高さとを比較する（ＡＣＴ１６９）。この比較により、プロセッサ２１は、距離画像における各商品領域の面積及び実測した商品の高さと認識した各商品の基準面積及び基準高さとが同程度であるか判定する（ＡＣＴ１７０）。例えば、プロセッサ２１は、各商品領域の面積と認識した各商品の基準面積との差分が所定範囲内であるか否かにより面積が同程度であるか否かを判定する。これとともに、プロセッサ２１は、実測した各商品の高さと認識した各商品の基準高さとの差分が所定範囲内であるか否かにより高さが同程度であるか否かを判定する。
【０１７３】
各商品領域の面積及び実測した商品の高さと認識した各商品の基準面積及び高さとが同程度である場合（ＡＣＴ１７０、ＹＥＳ）、プロセッサ２１は、未認識商品がないと判断する。未認識商品がないと判断すると、プロセッサ２１は、認識した全商品に対する決済処理を行う（ＡＣＴ１７１）。例えば、プロセッサ２１は、商品ＤＢ２５を参照して認識した全商品の代金の合計金額を算出する。全商品の代金の合計金額を算出すると、プロセッサ２１は、決済部７により算出した合計金額の精算処理を実行する。
【０１７４】
また、商品領域の面積又は実測した商品の高さの何れが認識した商品の基準面積又は基準高さと同程度でない商品がある場合（ＡＣＴ１７０、ＮＯ）、プロセッサ２１は、未認識商品があると判断する。また、プロセッサ２１は、認識した商品の基準面積又は基準高さに対して面積又は基準高さが同程度でない商品の画像領域に未認識商品があると判断する。未認識商品がある判断すると、プロセッサ２１は、操作者にエラーを報知するためのアラートを発生させる（ＡＣＴ１７２）。例えば、プロセッサ２１は、アラートとして、未認識商品がある画像領域を報知する。また、プロセッサ２１は、未認識商品がある旨、或いは、決済不可である旨を示すアラートを発生させても良い。また、プロセッサ２１は、アラートとして、スピーカなどでアラームを鳴らすようにしても良い。
【０１７５】
なお、プロセッサ２１は、未認識商品があると判断した画像領域に対して、上記ＡＣＴ１６３で実行した商品認識手法とは異なる商品認識手法により商品認識処理を再度実行しても良い。プロセッサ２１は、再度実行した商品認識処理により実行済みのＡＣＴ１６３の処理結果とは異なる認識結果が得られた場合、上記ＡＣＴ１６４以降の処理を再度実行すれば良い。
【０１７６】
アラートを発生させた後、プロセッサ２１は、決済処理（商品認識処理）のリトライの指示を受け付ける（ＡＣＴ１７３）。例えば、プロセッサ２１は、リトライボタンへの指示に応じて決済処理をリトライする。プロセッサ２１は、リトライが指示された場合（ＡＣＴ１７３、ＹＥＳ）、上記ＡＣＴ１６２へ戻り、上述の処理を再び実行する。また、プロセッサ２１は、リトライが指示されない場合（ＡＣＴ１７３、ＮＯ）、決済処理を中止し、待機状態に移行する。
【０１７７】
上記のように、第７の実施形態に係る決済装置１Ｇは、認識した各商品の基準面積と距離画像から検出した各商品領域の面積とが同程度であるかを判定（確認）する。これと共に、決済装置１Ｇは、認識した各商品の基準高さと距離画像から検出した商品領域中の商品に対して実測した高さとが同程度であるかを判定（確認）する。決済装置１Ｇは、基準面積と商品領域の面積とが同程度でない商品の画像領域、又は、基準高さと実測した高さとが同程度でない商品の画像領域に未認識商品が存在すると判断する。
【０１７８】
すなわち、決済装置１Ｇは、距離画像から検出した商品領域の面積の妥当性だけでなく、距離画像に基づく実測した商品の高さの妥当性によって未認識商品が存在する領域を判断できる。決済装置１Ｇは、商品領域の面積では未認識商品の検出が困難な場合も、実測する高さにより未認識商品の存在を高精度で判定でき、ロバスト性が向上する。例えば、決済装置１Ｇは、面積の妥当性により横に接して配置された複数商品を検出でき、高さの妥当性により重なった状態の複数商品を検出できる。結果として、決済装置１Ｇは、実際より安い価格で決済が行われるのを確実に防ぐことができる。
【０１７９】
なお、上述した各実施形態では、装置内のメモリにプロセッサが実行するプログラムが予め記憶されている場合で説明をした。しかし、プロセッサが実行するプログラムは、ネットワークから装置にダウンロードしても良いし、記憶媒体から装置にインストールしてもよい。記憶媒体としては、ＣＤ−ＲＯＭ等のプログラムを記憶でき、かつ装置が読み取り可能な記憶媒体であれば良い。また、予めインストールやダウンロードにより得る機能は、装置内部のＯＳ（オペレーティング・システム）等と協働して実現させるものであってもよい。
【０１８０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。  
以下、本願の出願当初の特許請求の範囲に記載した内容を付記する。  
［１］
認識すべき全ての物品が配置される範囲を含む撮影範囲を撮影した撮影画像を取得する画像取得部と、
前記撮影画像における物品を特定する特定パターンを全て検出し、検出した各特定パターンにより各物品を認識する認識部と、
前記撮影画像における物品の画像領域を検出し、検出した物品の画像領域から物品領域情報を判定する領域検出部と、
前記認識部が認識対象とする物品毎に前記領域検出部が物品の画像領域から判定する物品領域情報に対する基準値を含む物品情報を記憶する記憶部と、
前記認識部が認識した各物品の物品領域情報に対する基準値と前記領域検出部が前記撮影画像における物品の画像領域から判定した物品領域情報とが整合しない場合に前記認識部が認識できていない未認識物品があると判定する判定部と、
を有する物品認識装置。
［２］
認識すべき全ての物品が配置される範囲を含む撮影範囲を撮影した撮影画像を取得する画像取得部と、
前記撮影画像における物品を特定する特定パターンを全て検出し、検出した各特定パターンにより各物品を認識する認識部と、
前記撮影範囲における距離画像を取得する距離画像取得部と、
前記距離画像における物品の画像領域を検出し、検出した物品の画像領域から物品領域情報を判定する領域検出部と、
前記認識部が認識対象とする物品毎に前記領域検出部が物品の画像領域から判定する物品領域情報に対する基準値を含む物品情報を記憶する記憶部と、
前記記憶部が記憶する前記認識部が認識した各物品の物品領域情報の基準値と前記領域検出部が前記撮影画像における物品の画像領域から判定した物品領域情報とが整合しない場合に前記認識部が認識できていない未認識物品があると判定する判定部と、
を有する物品認識装置。
［３］
前記記憶部は、前記物品領域情報に対する基準値として物品の画像領域に対する基準面積を含む物品情報を記憶し、
前記領域検出部は、前記距離画像から個別の物品毎に物品の画像領域を検出し、検出した各物品の画像領域の面積を判定し、
前記判定部は、前記認識部が認識した物品の基準面積に対して面積が整合しない前記物品の画像領域に未認識物品があると判断する、
［２］に記載の物品認識装置。
［４］
前記記憶部は、前記物品領域情報に対する基準値として物品の基準高さを含む物品情報を記憶し、
前記判定部は、前記認識部が認識した物品の基準面積に対して面積が整合しない物品の画像領域、又は、前記認識部が認識した物品の基準高さに対してセンサが計測する高さが整合しない物品の画像領域に未認識物品があると判定する、
［３］に記載の物品認識装置。
［５］
認識すべき全ての物品が配置される範囲を含む撮影範囲を撮影した撮影画像を取得し、
前記撮影画像における物品を特定する特定パターンを全て検出し、検出した各特定パターンにより各物品を認識し、
前記撮影画像における物品の画像領域を検出し、検出した物品の画像領域から物品領域情報を判定し、
前記認識した各物品の物品領域情報に対する基準値と前記撮影画像における物品の画像領域から判定した物品領域情報とが整合しない場合に、前記認識できていない未認識物品があると判定する、
画像処理方法。
【符号の説明】
【０１８１】
１（１Ａ、１Ｂ、１Ｃ、１Ｄ、１Ｅ、１Ｇ）…決済装置（物品認識装置）、２…筐体、３…商品載置台、４…カメラ、５…操作部、６…表示部、７…決済部、８…距離センサ、２１…プロセッサ、２２…記憶部、２４…不揮発性メモリ、２５…商品データベース、２６…画像取得部、２７…距離画像取得部、２７…処理画像取得部、３０、４０、５０、６０、７０、８０、９０…処理部、３１、４１、６１、７１、８１…領域検出部、３２、４２、５２、６２、７２、８２、９２…面積判定部、３３…パターン検出部、３４…パターン認識部、３５、４５、５５、６５、７５、８５、９５…整合判定部、３６、４６、５６、６６、７６、８６、９６…通知部。
【図１】
0006785578.tif 000002
【図２】
0006785578.tif 000003
【図３】
0006785578.tif 000004
【図４】
0006785578.tif 000005
【図５】
0006785578.tif 000006
【図６】
0006785578.tif 000007
【図７】
0006785578.tif 000008
【図８】
0006785578.tif 000009
【図９】
0006785578.tif 000010
【図１０】
0006785578.tif 000011
【図１１】
0006785578.tif 000012
【図１２】
0006785578.tif 000013
【図１３】
0006785578.tif 000014
【図１４】
0006785578.tif 000015
【図１５】
0006785578.tif 000016
【図１６】
0006785578.tif 000017
【図１７】
0006785578.tif 000018
【図１８】
0006785578.tif 000019
【図１９】
0006785578.tif 000020
【図２０】
0006785578.tif 000021
【図２１】
0006785578.tif 000022
【図２２】
0006785578.tif 000023
【図２３】
0006785578.tif 000024
【図２４】
0006785578.tif 000025