(57)【要約】  実施形態によれば、動画像認識装置は、動物体検出部とデータコード読み取り部とラベル認識部と関連付け部と出力部とを具備する。動物体検出部は、バッファ部に格納された動画像から動物体を検出してその各々を識別する。データコード読み取り部は、前記動画像のフレームの各々からデータコードを検出し、デコードする。ラベル認識部は、前記動画像のフレームの各々からラベルを検出し、認識する。関連付け部は、前記認識されたラベルと前記デコードされたデータコードとが同一物体上にある場合、両者を関連付ける。出力部は、前記データコードのデコード結果と当該デコード結果に関連付けられた前記ラベルの認識結果とを併せて出力する。
2014049729.tif 000002
【特許請求の範囲】
【請求項１】
動画像を入力する動画像入力部と、
前記入力された動画像を格納するバッファ部と、
前記バッファ部に格納された前記動画像から動物体を検出してその各々を識別する動物体検出部と、
前記動画像のフレームの各々からデータコードを検出して、当該検出されたデータコードをデコードするデータコード読み取り部と、
前記動画像のフレームの各々からラベルを検出して、当該検出されたラベルに記されたシンボルを認識するラベル認識部と、
前記認識されたラベルと前記デコードされたデータコードとが、前記識別された動物体のうちの同一物体上にある場合に、前記ラベルの認識結果を前記データコードのデコード結果に関連付ける関連付け部と、
前記データコードのデコード結果と当該デコード結果に関連付けられた前記ラベルの認識結果とを併せて出力する出力部と
を具備する動画像認識装置。
【請求項２】
前記出力部は、前記データコードが検出されてから、予め定められた時間またはフレーム数が経過した後に、前記データコードのデコード結果及び前記ラベルの認識結果を出力する請求項１記載の動画像認識装置。
【請求項３】
前記出力部は、前記検出されたデータコードを含む動物体が前記動物体検出部によって検出されなくなった後に、前記データコードのデコード結果及び前記ラベルの認識結果を出力する請求項１記載の動画像認識装置。
【請求項４】
前記動物体検出部によって検出された動物体のうちの同一物体について認識結果の異なるラベルが検出された場合に、多数決により認識結果を決定する決定部を更に具備する請求項１記載の動画像認識装置。
【請求項５】
前記ラベルが、値引き額を表すシンボルが記された値引きラベル、割引率を表すシンボルが記された割引ラベル、または付与されるポイント数を表すポイント付与ラベルであり、
前記ラベルの認識結果は、前記ラベルの種別と、前記引き額、前記割引率または前記ポイント数とを含み、
前記決定部は、前記ラベルの前記種別と、前記引き額、前記割引率または前記ポイント数とを、前記異なる認識結果に基づき多数決により決定する
請求項４記載の動画像認識装置。
【請求項６】
前記動物体検出部によって検出された動物体のうちの同一物体についてデコード結果の異なるデータコードが検出された場合に、多数決によりデコード結果を選択する多数決選択部を更に具備する請求項１記載の動画像認識装置。
【請求項７】
動画像を入力し、
前記入力された動画像をバッファ部に格納し、
前記バッファ部に格納された前記動画像から動物体を検出し、
前記検出された動物体の各々を識別し、
前記動画像のフレームの各々からデータコードを検出し、
前記検出されたデータコードをデコードし、
前記動画像のフレームの各々からラベルを検出し、
前記検出されたラベルに記されたシンボルを認識し、
前記認識されたラベルと前記デコードされたデータコードとが、前記識別された動物体のうちの同一物体上にある場合に、前記ラベルの認識結果を前記データコードのデコード結果に関連付け、
前記データコードのデコード結果と当該デコード結果に関連付けられた前記ラベルの認識結果とを併せて出力する
動画像認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、入力された動画像中のデータコードと値引きラベルのようなラベルとを関連付けて認識する動画像認識装置及び動画像認識方法に関する。
【背景技術】
【０００２】
商品に記されたデータコード（例えばバーコード）を処理するシステムとして、販売時点管理（ＰＯＳ）システムが知られている。ＰＯＳシステムは、スーパーマーケットのような小売店で用いられるのが一般的である。ＰＯＳシステムは、顧客が購入した商品それぞれに記されたデータコードを読み取って（デコードして）得られる商品コードに基づき、当該ＰＯＳシステムに登録された当該商品の商品単価を取得して、その合計金額を算出する。【０００３】
小売店で扱われる商品の中に、例えば値引き額が記されたラベル（以下、値引きラベルと称する）が貼付された商品が含まれることがある。このためＰＯＳシステムには、値引きラベルが貼付された商品の値引き処理を効率的に行うことが要求される。そこで近年は、このような要求に応える技術が提案されている。この技術は、データコードが記された商品の面を撮影することにより取得される画像を利用する。つまり、この技術は、取得された同一画像内からデータコードと値引きラベルとが検出された場合に、前記データコードのデコード結果と前記値引きラベルの認識結果とを併せて出力する。【０００４】
このような技術（以下、従来技術と称する）を適用するＰＯＳシステムによれば、データコードのデコード結果と併せてラベルの認識結果が出力される場合に、前記値引きラベルに記された値引き額で商品単価を自動的に減額することができる。つまり、オペレータの操作を要することなく値引き操作ができる。また、値引きラベルに代えて、割引率が記された割引ラベルまたは付与されるポイント数が記されたポイント付与ラベルを用いる場合にも、ＰＯＳシステムは同様に処理できる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４４２２７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の従来技術は、値引きラベルのようなラベルが商品のデータコードと同時に撮影できる面に貼付されている必要がある。もし、商品のデータコードとは同時に撮影できない面にラベルが貼付されている場合、当該ラベルは、当該データコードを撮影することにより取得される画像に含まれない。例えば、牛乳パックの表側（第１の面）にデータコードが印刷され、当該牛乳パックの裏側（第１の面とは異なる第２の面）にラベルが貼付されている場合、同一画像内にデータコードとラベルの両方を含めることはできない。このように、ラベルが、商品のデータコードと一緒に同一画像に収まらないような配置で当該商品に貼付されている場合、従来技術では、データコードとラベルとを関連付けることは難しい。もし、このような関連付けができないならば、値引き処理（または割引処理またはポイント付与処理）を正しく行うことは難しい。【０００７】
本発明が解決しようとする課題は、データコードとラベルとが、同一物体の異なる面に配置されている場合でも、動画像から両者の関連付けを行うことができる動画像認識装置及び動画像認識方法を提供することにある。
【課題を解決するための手段】
【０００８】
実施形態によれば、動画像認識装置は、動画像入力部と、バッファ部と、動物体検出部と、データコード読み取り部と、ラベル認識部と、関連付け部と、出力部とを具備する。動画像入力部は、動画像を入力する。バッファ部は、前記入力された動画像を格納する。前記動物体検出部は、前記バッファ部に格納された前記動画像から動物体を検出してその各々を識別する。前記データコード読み取り部は、前記動画像のフレームの各々からバーコードや二次元バーコード等のデータコードを検出して、当該検出されたデータコードをデコードする。前記ラベル認識部は、前記動画像のフレームの各々からラベルを検出して、当該検出されたラベルに記されたシンボルを認識する。前記関連付け部は、前記認識されたラベルと前記デコードされたデータコードとが、前記識別された動物体のうちの同一物体上にある場合に、前記ラベルの認識結果を前記データコードのデコード結果に関連付ける。前記出力部は、前記データコードのデコード結果と当該デコード結果に関連付けられた前記ラベルの認識結果とを併せて出力する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る動画像認識装置の典型的なハードウェア構成を示すブロック図である。
【図２】図２は、前記動画像認識装置の機能構成を主として示すブロック図である。
【図３】図３は、図１に示される動画像領域におけるＮ個のポインタとＮ個のバッファとの対応関係の例を示す図である。
【図４】図４は、図３の状態から１フレーム後の、動画像領域におけるＮ個のポインタとＮ個のバッファとの対応関係の例を示す図である。
【図５】図５は、動画像のフレームを格納するバッファの大きさと当該バッファ内の座標系の例を示す図である。
【図６】図６は、フレームと小区画との関係の例を示す図である。
【図７】図７は、フレーム内の小区画の大きさと座標の例を示す図である。
【図８】図８は、動物体の番号を格納する２次元配列の例を模式的に示す図である。
【図９】図９は、同実施形態で適用されるブロックマッチングの様子を示す図である。
【図１０】図１０は、同実施形態で適用されるラベル辞書の典型的なデータ構造を模式的に示す図である。
【図１１】図１１は、バーコードに関連付けられたラベルが無い場合の出力内容の例を示す図である。
【図１２】図１２は、バーコードに関連付けられたラベルが有る場合の出力内容の例を示す図である。
【図１３】図１３は、修正されたラベル認識結果の入力を促すための第１の要求メッセージの例を示す図である。
【図１４】図１４は、前記第１の要求メッセージに対応する第１の応答メッセージの例を示す図である。
【図１５】図１５は、修正されたデコード結果の入力を促すための第２の要求メッセージの例を示す図である。
【図１６】図１６は、前記第２の要求メッセージに対応する第２の応答メッセージの例を示す図である。
【発明を実施するための形態】
【００１０】
以下、実施の形態につき図面を参照して説明する。  
図１は、実施形態に係る動画像認識装置１０の典型的なハードウェア構成を示すブロック図である。本実施形態において動画像認識装置１０は、ＰＯＳシステムの一要素として動作する。動画像認識装置１０は、例えば、パーソナルコンピュータ（ＰＣ）１１を用いて実現される。ＰＣ１１は、ＣＰＵ１２、記憶装置１３、入出力コントローラ１４及びシステムバス１５を備えている。ＣＰＵ１２、記憶装置１３及び入出力コントローラ１４は、システムバス１５によって相互接続されている。ＰＣ１１はまた、ビデオ端子１６を備えている。
【００１１】
ＣＰＵ１２は、動物体の検出、データコードの読み取り（デコード）及びラベルの認識を含む情報処理を実行する。本実施形態では、データコードはバーコード（１次元バーコード）であるものとする。また、動物体は例えば商品である。この商品が動物体として検出されるためには、例えば、ＰＯＳシステム内のＰＯＳ端末のオペレータには、次のような操作が要求される。この操作は、オペレータが前記商品をつかんで、後述するカメラ１７の撮像範囲に移動する（つまりカメラ１７にかざす）ことである。なお、セルフレジの場合には、顧客自身が上述の操作を行うことになる。
【００１２】
商品は、一般にバーコードが記されたバーコード面を有する。バーコードが記されたバーコード面は、バーコードが印刷された商品の面だけでなく、バーコードシールが貼付された商品の面をも指す。バーコードシールには、バーコードが印刷されている。また前記商品には、値引きラベル、割引ラベルまたはポイント付与ラベルのようなラベルが貼付されることもある。値引きラベルには値引き額が記され、割引ラベルには割引率が記され、ポイント付与ラベルには、付与されるポイント数が記される。
【００１３】
記憶装置１３は、ＲＡＭ部、ＲＯＭ部及びフラッシュメモリ部から構成される。ＲＡＭ部は少なくとも１つのＲＡＭを用いて構成され、ＲＯＭ部は少なくとも１つのＲＯＭを用いて構成され、フラッシュメモリ部は少なくとも１つのフラッシュメモリ（つまり、書き換え可能な不揮発性メモリ）を用いて構成される。
【００１４】
記憶装置１３は、ソフトウェア領域１３ａ、動画像領域１３ｂ、作業データ領域１３ｃ、設定データ領域１３ｄ及びラベル辞書領域１３ｅを備えている。ソフトウェア領域１３ａは、例えばＲＯＭ部内に確保される。動画像領域１３ｂ及び作業データ領域１３ｃは、例えばＲＡＭ部内に確保される。設定データ領域１３ｄ及びラベル辞書領域１３ｅは、例えばフラッシュメモリ部内に確保される。ＲＯＭ部、ＲＡＭ部及びフラッシュメモリ部の記憶領域は、ＣＰＵ１２によって認識される同一のアドレス空間内に割り当てられる。これによりＣＰＵ１２は、ＲＯＭ部、ＲＡＭ部またはフラッシュメモリ部を意識することなく、用途に応じてソフトウェア領域１３ａ、動画像領域１３ｂ、作業データ領域１３ｃ、設定データ領域１３ｄ及びラベル辞書領域１３ｅにアクセスする。
【００１５】
ソフトウェア領域１３ａは、前記情報処理のためのソフトウェアを格納するのに用いられる。このソフトウェアは、命令コード、定数、各種テーブル、変数の初期値を含む。動画像領域１３ｂは、動画像を格納するのに用いられる。動画像は、例えばビデオ端子１６及び入出力コントローラ１４を介して入力される。
【００１６】
作業データ領域１３ｃは、前記情報処理のための作業データを格納するのに用いられる。作業データは、バーコードのデコード結果及びラベルの認識結果を含む。設定データ領域１３ｄは、後述する設定データを格納するのに用いられる。ラベル辞書領域１３ｅは、後述するラベル辞書を格納するのに用いられる。
【００１７】
入出力コントローラ１４は、動画像を取得する撮像装置、例えばカメラ１７と、ビデオ端子１６を介して接続されている。入出力コントローラ１４は、カメラ１７によって取得された動画像を入力して、当該動画像を例えばダイレクトメモリアクセス（ＤＭＡ）により記憶装置１３に転送する。入出力コントローラ１４はまた、入出力インタフェース、例えばシリアル入出力インタフェース１８を介して、ＰＯＳ端末と接続されている。入出力コントローラ１４は、ＣＰＵ１２（ＣＰＵ１２によって実行されるソフトウェア）の制御の下で、動画像認識装置１０の処理結果を、シリアル入出力インタフェース１８を介して出力する。動画像認識装置１０の処理結果は、バーコードのデコード結果、ラベルの認識結果及び領域検出結果を含む。入出力コントローラ１４はまた、ＰＯＳ端末から転送されるデータ（例えば、修正データ）を、シリアル入出力インタフェース１８を介して入力する。入出力コントローラ１４は更にスピーカ１９と接続されている。入出力コントローラ１４は、メッセージまたは警告音をスピーカ１９から出力する。
【００１８】
図２は、動画像認識装置１０の機能構成を主として示すブロック図である。この機能構成は、図１に示されるＰＣ１１のＣＰＵ１２が前記ソフトウェアを実行することにより実現されるものとする。動画像認識装置１０は、動画像入力部２０１、バッファ部２０２、動物体検出部２０３、データコード読み取り部２０４、ラベル認識部２０５、関連付け部２０６、更新部２０７、出力部２０８、警告部（第１の警告部）２０９（＃１）、警告部（第２の警告部）２１０（＃２）、修正入力部２１１、決定部２１２、警告部（第３の警告部）２１３（＃３）、修正部２１４及び多数決選択部２１５を備えている。本実施形態では、これらの要素２０１乃至２１５のうち、バッファ部２０２を除く要素は、ソフトウェアモジュールにより構成される。しかし、これらのソフトウェアモジュールの一部または全部がハードウェアモジュールに置き換えられても構わない。バッファ部２０２は、記憶装置１３の動画像領域１３ｂを用いて構成される。
【００１９】
動画像入力部２０１は、入出力コントローラ１４によって転送された動画像２２１を入力する。バッファ部２０２は、動画像２２１を格納するのに用いられる。より詳細に述べるならば、バッファ部２０２は、動画像２２１のフレームのうちの連続するＮ個のフレームを時系列順に一時格納するのに用いられる。動物体検出部２０３は、動画像２２１から動物体を検出して、当該動物体をそれぞれ識別する。これにより動物体検出部２０３は、動物体の検出結果２２２を取得する。動物体検出部２０３は、物体番号決定部２０３ａを含む。物体番号決定部２０３ａは、検出された動物体を識別するため番号を決定する。
【００２０】
データコード読み取り部２０４は、動画像２２１のフレームの各々からデータコードを検出して、当該データコードをデコードする。本実施形態においてデータコード読み取り部２０４で検出しデコードするデータコードはバーコードであるものとする。従って、本実施形態におけるデータコード読み取り部２０４は、動画像２２１のフレームの各々からバーコードを検出して、当該バーコードをデコードする。つまりデータコード読み取り部２０４は、動画像２２１のフレームの各々からバーコードを読み取る。これによりデータコード読み取り部２０４は、バーコードのデコード結果２２３を取得する。
【００２１】
ラベル認識部２０５は、動画像２２１のフレームの各々からラベルを検出して、当該ラベルに記された（例えば印刷された）シンボルを認識する。これによりラベル認識部２０５は、ラベル認識結果２２４を取得する。ラベル認識結果２２４は、ラベルが値引きラベル、割引ラベルまたはポイント付与ラベルのいずれであるかを示す種別（ラベル種別）と、値引き額、割引率またはポイント数とを含む。
【００２２】
関連付け部２０６は、ラベル認識結果２２４によって認識されたラベルとデータコード読み取り部２０４によってデコードされたバーコードとが同一物体上に存在するかを、動物体の検出結果２２２に基づいて判定する。この判定の手法については後述する。前記ラベル及び前記バーコードが同一物体上に存在する場合、関連付け部２０６は、前記ラベルに対応するラベル認識結果２２４を前記バーコードに対応するデコード結果２２３に関連付ける。これにより関連付け部２０６は、ラベル認識結果２２４がデコード結果２２３に関連付けられた関連付けデータ２２５を取得する。
【００２３】
更新部２０７は、履歴更新部２０７ａ及びリスト更新部２０７ｂを含む。履歴更新部２０７ａは、関連付け部２０６による関連付けが完了する度に、作業データ２２６の一部を更新する。作業データ２２６については後述する。リスト更新部２０７ｂは、関連付け部２０６による関連付けが完了する度に、バーコードのデコード結果２２３のリストの配列Λ、及びラベル認識結果２２３のリストの配列Γを更新する。配列Λ及びΓについては後述する。
【００２４】
出力部２０８は、前記バーコードのデコード結果２２３と、当該デコード結果２２３に関連付けられたラベル認識結果２２４とを併せて出力する。警告部２０９は、デコード結果２２３、ラベル認識結果２２４及び関連付けデータ２２５に基づいて、第１の警告条件が成立しているかを判定する。第１の警告条件とは、動物体検出部２０３によって検出された動物体上でラベルが検出されているにも拘わらず、当該動物体が検出されなくなるまでに当該動物体上のバーコードが検出されなかった状態を指す。このため警告部２０９は、動物体検出部２０３によって検出されていた動物体が検出されなくなった際に、前記第１の警告条件が成立しているかを判定する。前記第１の警告条件が成立している場合、警告部２０９は、入出力コントローラ１４を介してメッセージまたは警告音を発する。
【００２５】
警告部２１０は、ラベル認識結果２２４及び関連付けデータ２２５に基づいて、第２の警告条件が成立しているかを判定し、当該第２の警告条件が成立している場合に、入出力コントローラ１４を介してメッセージまたは警告音を発する。第２の警告条件は、動物体検出部２０３によって検出された動物体のうちの同一物体について、ラベル認識部２０５によって認識結果の異なるラベル（つまり異なるラベル認識結果２２４）が検出された状態を指す。
【００２６】
修正入力部２１１は、前記第２の警告条件が成立している場合に、ＰＯＳ端末のオペレータに修正されたラベル認識結果の入力を要求する。決定部２１２は、前記第２の警告条件が成立している場合に、前記ラベル種別と、値引き額または割引率またはポイント数とを、多数決により決定する。
【００２７】
警告部２１３は、デコード結果２２３及び関連付けデータ２２５に基づいて、第３の警告条件が成立しているかを判定し、当該第３の警告条件が成立している場合に、入出力コントローラ１４を介してメッセージまたは警告音を発する。第３の警告条件は、動物体検出部２０３によって検出された動物体のうちの同一物体について、データコード読み取り部２０４によってデコード結果２２３の異なるバーコード（つまり異なるデコード結果２２３）が検出された状態を指す。
【００２８】
修正部２１４は、前記第３の警告条件が成立している場合に、ＰＯＳ端末のオペレータにデコード結果（デコード内容）の修正を求める。多数決選択部２１５は、前記第３の警告条件が成立している場合に、多数決でデコード結果２２３を選択する。
【００２９】
次に本実施形態の動作を説明する。まず、ＰＯＳ端末のオペレータは、顧客が購入した商品を例えば買い物かごから取り出して、当該商品をカメラ１７の撮像範囲に移動する。カメラ１７は、前記商品（つまり動物体）を含む撮像範囲内の対象物の動画像を取得する。そこでオペレータは、前記商品のバーコード面に記されたバーコード及び前記商品に貼付されたラベルがカメラ１７で撮像されるように、前記商品をカメラ１７に向ける。もし、ラベルがバーコード面とは異なる面に貼付されているならば、バーコード面及びラベルが順次カメラ１７の撮像範囲に入るように、オペレータは前記商品のカメラ１７に対する向きを適宜変える。
【００３０】
入出力コントローラ１４は、カメラ１７によって取得された動画像を、ビデオ端子１６を介して受け取る。入出力コントローラ１４は、受け取った動画像を例えばＤＭＡにより記憶装置１３に転送する。動画像入力部２０１は、入出力コントローラ１４によって転送された動画像が動画像領域１３ｂ内のバッファ部２０２にフレーム単位で格納されるように、入出力コントローラ１４を制御する。
【００３１】
図３は図１に示される動画像領域１３ｂの一例を示す。動画像領域１３ｂには、バッファ部２０２が確保される。バッファ部２０２は、Ｎ個のバッファ（フレームバッファ）Ａ１，Ａ２，Ａ３，…，ＡＮ−１，ＡＮから構成される。バッファＡ１乃至ＡＮは、動画像のフレームのうちの連続するＮ個のフレームを時系列順に一時格納するのに用いられる。このためバッファＡ１乃至ＡＮは、リングバッファとして用いられる。
【００３２】
動画像領域１３ｂにはまた、Ｎ個のポインタＰ１，Ｐ２，Ｐ３，…，ＰＮ−１，ＰＮの領域が確保される。ポインタＰ１は、動画像の最新のフレームが格納されるバッファの位置（例えば先頭アドレス）を指し示す。ポインタＰ２は、最新のフレームよりも１フレームだけ前のフレームが格納されるバッファの位置を指し示す。同様に、ポインタＰＮ−１は、最新のフレームよりもＮ−１フレームだけ前のフレームが格納されるバッファの位置を指し示す。ポインタＰＮは、現在読み込み中のフレームが格納されるバッファの位置を指し示す。
【００３３】
このように図３は、動画像領域１３ｂにおけるポインタＰ１乃至ＰＮとバッファＡ１乃至ＡＮとの対応関係を示す。ポインタＰ１乃至ＰＮは、動画像入力部２０１によって更新される。なお、ポインタＰ１乃至ＰＮが、動画像領域１３ｂ以外の記憶領域、例えば作業データ領域１３ｃに格納されていても構わない。
【００３４】
今、ポインタＰ１が、バッファＡｉ（ｉは１乃至Ｎのいずれか）を指し示しているものとする。このとき、ポインタＰ２はＡｉ＋１  ＭＯＤ  Ｎを指し示す。ただし、ｘ  ＭＯＤ  ｙ  はｘをｙで割った剰余を示す。
【００３５】
動画像入力部２０１は、動画像の入力が１フレーム完了する毎にポインタＰ１乃至ＰＮを更新する。このような入力フレームの完了は、ビデオ端子１６を通して得られる垂直同期信号でトリガーされる入出力コントローラ１４からの割り込みによって、動画像入力部２０１に通知される。動画像入力部２０１は、入出力コントローラ１４からの割り込みの都度、ポインタＰ１乃至ＰＮを更新する。動画像入力部２０１はまた、ポインタＰ１乃至ＰＮを更新する都度、入出力コントローラ１４によるＤＭＡ転送のための設定を行う。つまり動画像入力部２０１は、ビデオ端子１６を介して入力される動画像を１フレームだけポインタＰＮの指し示すバッファに、入出力コントローラ１４によってＤＭＡにより転送させる。動画像入力部２０１はまた、ポインタＰ１乃至ＰＮを更新する都度、後述するフレーム処理を行うスレッドを生成し、ＣＰＵ１２に実行させる。
【００３６】
ここで、ポインタＰ１乃至ＰＮの更新においては、１乃至Ｎの各々について、以下の規則でポインタＰｊを更新する。ポインタＰｊが指しているバッファの番号をｉとすると（ポインタＰｊがバッファＡｉを指しているものとすると）、更新後のバッファの番号はｉ＋１  ＭＯＤ  Ｎである。ただし、ｘ  ＭＯＤ  ｙはｘをｙで割った場合の剰余を表すものとする。
【００３７】
ここで、ポインタＰ１乃至ＰＮとバッファＡ１乃至ＡＮとの関係の具体例について、図３及び図４を参照して説明する。図３は、前述の説明から明らかなように、バッファＡＮが現在読み込み中のフレームの格納に用いられている状態における、ポインタＰ１乃至ＰＮとバッファＡ１乃至ＡＮとの対応関係の例を示す。図４は、図３の状態から１フレーム後の、ポインタＰ１乃至ＰＮとバッファＡ１乃至ＡＮとの対応関係の例を示す。
【００３８】
図３の例では、ポインタＰ１はバッファＡ１を、ポインタＰ２はバッファＡ２を、そしてポインタＰ３はバッファＡ３を、それぞれ指し示している。同様に、ポインタＰＮ−１はバッファＡＮ−１を、そしてポインタＰＮはバッファＡＮを、それぞれ指し示している。このとき、ポインタＰＮの指し示すバッファＡＮは、現在読み込み中のフレームを格納するのに用いられている。このバッファＡＮへのフレームの読み込みが完了したものとする。
【００３９】
この場合、動画像入力部２０１は、ポインタＰ１を、図４に示すように、バッファＡ１を示すアドレスからバッファＡＮを示すアドレスに更新する。この更新されたポインタＰ１により、バッファＡＮ（つまり直前に読み込みの完了したバッファＡＮ）が、最新のフレームを格納するバッファであることが示される。また動画像入力部２０１は、ポインタＰ２を、バッファＡ２を示すアドレスからバッファＡ１を示すアドレスに更新し、ポインタＰ３を、バッファＡ３を示すアドレスからバッファＡ２を示すアドレスに更新する。同様に動画像入力部２０１は、図４では省略されているが、ポインタＰ４乃至ＰＮ−２を、それぞれバッファＡ３乃至ＡＮ−３を示すアドレスに更新する。動画像入力部２０１はまた、ポインタＰＮ−１を、バッファＡＮ−１を示すアドレスからバッファＡＮ−２を示すアドレスに更新し、ポインタＰＮを、バッファＡＮを示すアドレスからバッファＡＮ−１を示すアドレスに更新する。これにより、バッファＡＮ−１は、新たなフレームの読み込みに用いられる。バッファＡＮ−１は、バッファＡＮへのフレームの読み込みが完了した時点で最も古いフレームを格納していたバッファである。
【００４０】
上述のポインタＰ１乃至ＰＮの更新により、バッファＡ１乃至ＡＮ−２に格納されているフレームは、バッファＡＮに読み込まれた最新のフレームよりも、それぞれ１フレーム乃至Ｎ−２フレーム前となる。このように本実施形態では、バッファＡ１乃至ＡＮはリング状に順番に用いられ、フレーム入力に応じて更新されるポインタＰ１によって指し示されるバッファを起点に時間的に連続するフレームがバッファ部２０２に格納される。つまりバッファＡ１乃至ＡＮはリングバッファとして用いられる。
【００４１】
図５は、動画像のフレーム（つまりフレーム画像）を格納するバッファＡｉ（ｉ＝１，２，…，Ｎ）の大きさと当該バッファＡｉ内の座標系の例を示す。バッファＡｉは、横幅がＷ画素、高さがＨ画素の２次元バッファである。ここでは、バッファＡｉは、フレームと同サイズであるものとする。つまりバッファＡｉに格納されるフレームのサイズは、横幅がＷ画素、高さがＨ画素である。バッファＡｉ（フレーム）の左上角の画素（画素位置）の座標は（０，０）であり、当該バッファＡｉ（フレーム）の右下角の画素（画素位置）の座標は（Ｗ−１、Ｈ−１）であるものとする
ここで、設定データ領域１３ｄに格納される設定データについて説明する。動画像認識装置１０では、前記設定データの内容に応じて動作が切り替えられる。前記設定データは、変数Ｃ１，Ｃ２及びＣ３を含む。変数Ｃ１は、出力部２０８による出力のタイミングを切り替えるのに用いられる。変数Ｃ２は、同一物体についてラベル認識結果２２４の異なるラベルが検出された場合の動作を切り替えるのに用いられる。変数Ｃ３は、同一物体についてデコード結果２２３の異なるバーコードが検出された場合の動作を切り替えるのに用いられる。
【００４２】
変数Ｃ１，Ｃ２及びＣ３は前記設定データとして例えばフラッシュメモリ部内に格納され、本発明に基づく動画像認識装置の製造時にフラッシュメモリに書き込まれる他のデータと共に設定される。
【００４３】
出力部２０８による出力を、バーコードの検出から一定の時間またはフレーム数が経過した後に行わせる場合、変数Ｃ１には例えば１を設定する。また、出力部２０８による出力を、バーコードを含む物体が検出されなくなるまで待ってから行わせる場合、変数Ｃ１には例えば２を設定する。また、出力部２０８による出力を、バーコードの検出から一定の時間またはフレーム数が経過するか、或いはバーコードを含む物体が検出されなくなくなってから行わせる場合、変数Ｃ１には例えば３を設定する。
【００４４】
また、前記第２の警告条件が成立したために警告部２１０によりメッセージまたは警告音を発行させた上で、修正された認識結果の入力を修正入力部２１１によりオペレータに求めさせる場合、変数Ｃ２には例えば１を設定する。また、前記第２の警告条件が成立したために、ラベルの種別と値引き額または割引率またはポイント数を決定部２１２により多数決で決定させる場合、変数Ｃ２には例えば２を設定する。
【００４５】
また、前記第３の警告条件が成立したために警告部２１３によりメッセージまたは警告音を発行させた上で、デコード内容の修正を修正部２１４によりオペレータに求めさせる場合、変数Ｃ３には例えば１を設定する。また、前記第３の警告条件が成立したために多数決選択部２１５により多数決でデコード結果２２３を選択させる場合、変数Ｃ３には例えば２を設定する。
【００４６】
以上の説明では、変数Ｃ１，Ｃ２及びＣ３を製造時に設定するものとしたが、フラッシュメモリを取り出してフラッシュライターでこれらの変数を再設定するなどして、本装置の動作を変更しても良い。
【００４７】
次に、記憶装置１３の作業データ領域１３ｃに格納される作業データについて説明する。前記作業データは、予め定められたサイズＫの配列（配列データ）Ｅを含む。配列Ｅは、物体番号決定部２０３ａによって決定される動物体の番号に対応する当該動物体の有無を記録するのに用いられる。動物体の番号は、番号ｊに対応する動物体が有る場合、配列Ｅのｊ番目の要素Ｅ［ｊ］には、例えば１が設定される。そうでない場合、要素Ｅ［ｊ］には、例えば０が設定される。
【００４８】
前記作業データは、サイズＫの配列Ｐ及びＱを更に含む。配列Ｐ及びＱは、動物体の番号に対応するバーコードの番号及びラベルの番号を格納するのに用いられる。番号ｊの動物体が存在し、且つ当該動物体上にバーコードが存在する場合、配列Ｐのｊ番目の要素Ｐ［ｊ］には、当該バーコードの番号が設定される。そうでない場合、要素Ｐ［ｊ］には、例えば０が設定される。また、番号ｊの動物体が存在し、且つ当該動物体上にラベルが存在する場合、配列Ｑのｊ番目の要素Ｑ［ｊ］には、当該ラベルの番号が設定される。そうでない場合、要素Ｑ［ｊ］には、例えば０が設定される。
【００４９】
前記作業データは、配列ｄを更に含む。配列ｄは、バーコードの番号に対応するデコード結果を収めるのに用いられる。  
前記作業データは、変数Ｌと、配列（配列変数）ｓ及びｔとを更に含む。変数Ｌは、ラベル認識部２０５によって検出されたラベルの個数を表すのに用いられる。配列ｓ及びｔは、検出されたラベルの座標を格納するのに用いられる。配列ｓ及びｔのｉ番目の要素ｓ［ｉ］及びｔ［ｉ］には、ｉ番目（ｉ＝１，…，Ｌ）のラベルのＸ座標及びＹ座標が格納される。ここでは、ｉ番目のラベルのＸ座標及びＹ座標として、当該ラベルの外接矩形の中心の座標が用いられる。
【００５０】
前記作業データは、配列（配列変数）α及びβとを更に含む。配列αは、ラベルの番号に対応するラベルの種別を表す番号を格納するのに用いられる。ラベルの種別を表す番号は、値引きラベルの場合１、割引ラベルの場合２、そしてポイント付与ラベルの場合３である。配列αのｉ番目の要素α［ｉ］には、ｉ番目（ｉ＝１，…，Ｌ）のラベルの種別の番号が格納される。配列βは、ラベルの番号に対応する値引き額または割引率またはポイント数を格納するのに用いられる。配列βのｉ番目の要素β［ｉ］には、ｉ番目のラベルの値引き額または割引率またはポイント数が格納される。
【００５１】
前記作業データは、配列（配列変数）Ｅ２，Ｐ２，ｄ２，α２及びβ２を更に含む。配列Ｅ２，Ｐ２，ｄ２，α２及びβ２は、１フレーム前における、前述の配列Ｅ，Ｐ，ｄ，α及びβの内容を保持するのに用いられる。
【００５２】
前記作業データは、配列ｇを更に含む。配列ｇは、動物体毎に最初に検出されたバーコードのデコード結果を示す文字列変数の配列である。番号ｊの動物体が存在し、且つ当該動物体上に存在するバーコードが以前のフレームから検出されている場合、配列ｇのｊ番目の要素ｇ［ｊ］には、当該動物体について最初に検出されたバーコードのデコード結果が設定される。そうでない場合、要素ｇ［ｊ］には、例えば空文字列が設定される。
【００５３】
前記作業データは、配列（配列変数）ｈ，ｆ及びｇ２を更に含む。配列ｈは、動物体毎に最初に検出されたバーコードが、何フレーム前で検出されたかを示す。番号ｊの動物体が存在し、且つ当該動物体上のバーコードが以前のフレームで検出されている場合、配列ｈのｊ番目の要素ｈ［ｊ］には、正の整数が設定される。そうでない場合、要素ｈ［ｊ］には、例えば、−１が設定される。ｈ［ｊ］に正の整数が設定されている場合、数値ｈ［ｊ］は、番号ｊの動物体上のバーコードがｈ［ｊ］フレーム前で検出されたことを示す。
【００５４】
配列ｆは、動物体上のバーコードが既に出力されたか否かを示す。番号ｊの動物体上のバーコードが出力済みの場合、配列ｆのｊ番目の要素ｆ［ｊ］には、例えば１が設定される。そうでない場合、要素ｆ［ｊ］には、例えば０が設定される。
【００５５】
配列ｇ２は、動物体上でラベルが既に検出されているか否かを示す。番号ｊの動物体が存在し、且つ当該動物体上のラベルが以前のフレームで検出されている場合、配列ｇ２のｊ番目の要素ｇ２［ｊ］には、例えば１が設定される。そうでない場合、要素ｇ２［ｊ］には、例えば０が設定される。
【００５６】
前記作業データは、配列（配列変数）Λ及Γを更に含む。配列Λは、動物体上で検出されたバーコードの認識結果のリストを格納するのに用いられるリスト（リスト変数）の配列である。リストの配列Λにおけるｊ番目のリスト（リスト変数）Λ［ｊ］の各要素は、番号ｊの動物体上で検出されたバーコードのデコード結果を格納した構造体である。配列Γは、動物体上で検出されたラベルの認識結果のリストを格納するのに用いられるリスト（リスト変数）の配列である。リストの配列Γにおけるｊ番目のリスト（リスト変数）Γ［ｊ］の各要素は、番号ｊの動物体上で検出されたラベルの種別を表す番号と値引き額または割引率またはポイント数とを格納した構造体である。前記作業データは、配列（配列変数）Λ２及びΓ２を更に含む。配列Λ２及びΓ２は、１フレーム前における、上述の配列Λ及びΓの内容を格納するのに用いられる。
【００５７】
次に、本実施形態の動作について、動画像認識装置１０によって実行される動画像認識処理を例に説明する。まず、動画像認識装置１０の起動時には、作業データ領域１３ｃ内の配列Ｅ，Ｐ，Ｑ，α，β，ｄ，ｇ，ｈ，ｆ及びｇ２の要素は全て初期化される。具体的には、配列Ｅ，Ｐ，Ｑ，α及びβの全要素に０が設定され、配列ｄ及びｇの全要素に空文字列が設定される。また配列ｈの全要素に−１が設定され、配列ｆ及びｇ２の全要素に０が設定される。同様に、リストの配列Λ，Γ，Λ２及びΓ２の全要素も初期化される。具体的には、配列Λ，Γ，Λ２及びΓ２の全要素に空リストが設定される。
【００５８】
以下に続く本実施形態の残りの記述では、動画像入力部２０１が、入出力コントローラ１４によって動画像２２１を１フレームだけ転送し、ポインタＰ１乃至ＰＮを更新する毎に本実施形態に基づく動画像認識装置１０で行うフレーム処理について説明する。
【００５９】
フレーム処理では、配列Ｅ，Ｐ，ｄ，α，β，Λ及びΓの内容を配列Ｅ２，Ｐ２，ｄ２，α２，β２，Λ２及びΓ２にそれぞれ複写する。  
フレーム処理では次に、動物体検出部２０３、データコード読み取り部２０４、ラベル認識部２０５、関連付け部２０６、更新部２０７、出力部２０８、警告部２０９、警告部２１０、修正入力部２１１、決定部２１２、警告部２１３、修正部２１４及び多数決選択部２１５が、以下に述べるように動作する。
【００６０】
説明を簡略化するため以降の説明では、ポインタＰ１が指し示すバッファに格納された最新のフレームをフレームＦ１、ポインタＰ２が指し示すバッファに格納され、前記最新のフレームに先行して格納されたフレームをフレームＦ２と称するものとする。
【００６１】
フレーム処理では次に、後述する方法で、動物体検出部２０３による動画像２２１からの動物体の検出、データコード読み取り部２０４による、フレームＦ１からのバーコードの検出、ラベル認識部２０５によるフレームＦ１からのラベル画像の検出と認識を行う。
【００６２】
動物体検出部２０３は、バッファ部２０２に格納された動画像２２１から動物体を検出する。動物体検出部２０３は、検出された動物体の各々を識別する。この動物体検出部２０３の動作の詳細を、以下で説明する。
【００６３】
動物体検出部２０３は、フレームＦ１（フレーム画像）を間隔Ｚ画素の格子状の小区画に分割する。そして動物体検出部２０３は、前記小区画の各々について、フレームＦ２（フレーム画像）から前記小区画と最も類似した（つまりマッチングした）領域を探索するための、いわゆるブロックマッチングを行う。
【００６４】
図６は、フレームと小区画との関係の例を示す。図６の例では、フレームは、間隔がＺ画素のＡ×Ｂ個の格子状の小区画に分割される。つまりフレームは、Ａ列、Ｂ行のマトリクス状に、Ａ×Ｂ個の小区画に分割される。各小区画の位置は、列番号ａ及び行番号ｂによって表される。列番号ａは、フレームの左端の小区画を起点の番号（＝０）として横方向（つまりフレームの右側の方向）に小区画毎にシーケンシャルに付与される番号である。行番号ｂは、フレームの上端の小区画を起点の番号（＝０）として縦方向（つまりフレームの下側の方向）に小区画毎にシーケンシャルに付与される番号である。例えば、フレームの左上角において、小区画の位置（ａ，ｂ）は（０，０）、フレームの右上角の小区画において（ａ，ｂ）は（Ａ−１，０）である。また、フレームの左下角の小区画において（ａ，ｂ）は（０，Ｂ−１）、フレームの右下角の小区画において（ａ，ｂ）は（Ａ−１，Ｂ−１）である。
【００６５】
図７は、フレーム内の位置（ａ，ｂ）の小区画の大きさと座標の例を示す。ここでは、フレームの左上角の画素の座標が、図５に示したように（０，０）であるものとする。この場合、フレーム内の位置（ａ，ｂ）に存在する小区画の左上角の画素の座標は、図７に示されるように（ａＺ，ｂＺ）で表される。この小区画の右下角の画素の座標は、図７に示されるように（（ａ＋１）Ｚ−１，（ｂ＋１）Ｚ−１）で表される。
【００６６】
作業データ領域１３ｃに格納される作業データは、前述のような種々の配列に加えて、２つの２次元配列Ｍ１及びＭ２を含む。２次元配列Ｍ１及びＭ２は、前記小区画の各々について動物体の番号を格納するのに用いられる。より具体的に述べるならば、２次元配列Ｍ１は、ポインタＰ１の指し示すバッファに格納されたフレームＦ１から検出された動物体の番号を小区画毎に格納するのに用いられる。一方、２次元配列Ｍ２は、ポインタＰ２の指し示すバッファに格納された一つ前のフレーム（フレームＦ２）から検出された動物体の番号を小区画毎に格納するのに用いられる。
【００６７】
図８は、動物体の番号を格納する２次元配列Ｍｒ（ｒ＝１，２）の例を模式的に示す。図８において、数値０が記載された領域８１及び８２は、数値０が設定された２次元配列Ｍｒの要素の集合である。位置（ａ，ｂ）の小区画に対応する動物体が無い場合、当該小区画に対応する２次元配列Ｍｒの要素には０が設定される。したがって、領域８１及び８２は、当該領域８１及び８２に対応する小区画の集合に動物体が無いことを示す。本実施形態において動物体検出部２０３は、動画像認識装置１０の起動時に、２次元配列Ｍ１及びＭ２の全要素を０に初期化する。したがって２次元配列Ｍ１及びＭ２は、初期状態では、動物体が検出されていないことを示す。以下の説明では、位置（ａ，ｂ）の小区画を、小区画（ａ，ｂ）と表記することもある。
【００６８】
図８において、数値１，２及び３が記載された領域８３，８４及び８５は、それぞれ数値１，２及び３が設定された２次元配列Ｍｒの要素の集合である。小区画（ａ，ｂ）に対応する動物体が有る場合、当該小区画（ａ，ｂ）に対応する２次元配列Ｍｒの要素には、当該動物体の番号が設定される。したがって、領域８３，８４及び８５は、当該領域８３，８４及び８５に対応する小区画の集合に、それぞれ番号が１，２及び３の動物体が有ることを示す。なお、領域８５は、フレーム内の背景画像に対応する。本実施形態では、背景画像は動物体として検出されるものとする。
【００６９】
動物体検出部２０３はポインタＰ１の指し示すバッファに格納されたフレームＦ１及びポインタＰ２の指し示すバッファに格納されたフレームＦ２に基づいてブロックマッチングを行う。つまり動物体検出部２０３は、フレームＦ１内の小区画（ａ，ｂ）の各々について、当該小区画（ａ，ｂ）がマッチングするフレームＦ２内の領域を探索する。
【００７０】
図９は、本実施形態で適用されるブロックマッチングの様子を示す。図９の例では、動物体検出部２０３は、フレームＦ１内の小区画（ａ，ｂ）について、矢印９０によって示されるフレームＦ２内の領域がマッチングしているかを、フレームＦ２内を探索することにより調べる。もし、フレームＦ１内の小区画（ａ，ｂ）にマッチングする領域をフレームＦ２から見つけられなかった場合、動物体検出部２０３は、変数Ｍへ値０を設定する。これに対し、マッチングする領域が見つかった場合、動物体検出部２０３は、前記変数Ｍへ値１を設定し、且つ変数Ｘ［ａ，ｂ］及びＹ［ａ，ｂ］へ当該領域の左上角のＸ座標及びＹ座標をそれぞれ設定する。変数Ｍと変数Ｘ［ａ，ｂ］及びＹ［ａ，ｂ］は、前記作業データの一部である。
【００７１】
前記ブロックマッチングにおいて動物体検出部２０３は、フレームＦ２内の変数Ｘの値（つまりＸ座標）の候補ｘ（ｘ＝０，…，Ｗ−Ｚ）及びフレームＦ２内の変数Ｙの値（つまりＹ座標）の候補ｙ（ｙ＝０，…，Ｈ−Ｚ）の組み合わせ（ｘ，ｙ）の各々について、次の処理を実行する。即ち動物体検出部２０３は、フレームＦ１内の小区画（ａ，ｂ）とフレームＦ２内の左上角の画素の座標が（ｘ，ｙ）で且つ横幅と高さがＺの矩形領域とを重ねて画素値の平均二乗誤差を算出する。動物体検出部２０３は、算出された平均二乗誤差を、小区画（ａ，ｂ）と前記矩形領域（つまり、組み合わせの座標（ｘ，ｙ）に対応する矩形領域）とのマッチングのコストとする。
【００７２】
もし、前記コストが予め定められた閾値θ以下となる座標（ｘ，ｙ）が存在する場合、動物体検出部２０３は、小区画（ａ，ｂ）にマッチングする領域が見つかったと判定する。この場合、動物体検出部２０３は、変数Ｆ［ａ，ｂ］へ値１を設定する。変数Ｆ［ａ，ｂ］は前記作業データの一部であり、変数Ｆ［ａ，ｂ］が１の場合、小区画（ａ，ｂ）にマッチングする領域が存在することを示す。一方、前記コストが閾値θ以下となる座標（ｘ，ｙ）が存在しない場合、動物体検出部２０３は、小区画（ａ，ｂ）にマッチングする領域が見つからなかったと判定する。この場合、動物体検出部２０３は、Ｆ［ａ，ｂ］へ値０を設定する。これにより、小区画（ａ，ｂ）にマッチングする領域が存在しないことが示される。前記コストが閾値θ以下となる座標（ｘ，ｙ）が存在する場合、動物体検出部２０３は、これらの座標（ｘ，ｙ）のうち、前記コストが最小となる座標を、変数（Ｘ［ａ，ｂ］，Ｙ［ａ，ｂ］）に設定する。
【００７３】
動物体検出部２０３は、前記ブロックマッチングでマッチングする領域が見つからなかった小区画（ａ，ｂ）、つまりＦ［ａ，ｂ］＝０の小区画について、２次元配列Ｍ１中の対応する要素Ｍ１［ａ，ｂ］に０を設定する。また動物体検出部２０３は、マッチングする領域が見つかった小区画（ａ，ｂ）、つまりＦ［ａ，ｂ］≠０の小区画については、動物体の番号を要素Ｍ１［ａ，ｂ］に設定する。そのため動物体検出部２０３の物体番号決定部２０３ａは、動物体の番号を次のように決定する。
【００７４】
物体番号決定部２０３ａは、前記ブロックマッチングで求められた座標（Ｘ［ａ，ｂ］，Ｙ［ａ，ｂ］）に基づき、次式
ａ０＝ＦＬＯＯＲ（Ｘ［ａ，ｂ］／Ｚ）
ａ１＝ＭＡＸ（０，ａ０−Ｓ）
ａ２＝ＭＩＮ（Ａ−１，ａ０＋Ｓ）
ｂ０＝ＦＬＯＯＲ（Ｙ［ａ，ｂ］／Ｚ）
ｂ１＝ＭＡＸ（０，ｂ０−Ｓ）
ｂ２＝ＭＩＮ（Ｂ−１，ｂ０＋Ｓ）
により、ａ０乃至ａ２及びｂ０乃至ｂ２を取得する。ここで、ＦＬＯＯＲ（ξ）はξ以下の最大の整数を返す関数、ＭＡＸ（ｘ，ｙ）は引数ｘとｙを比較して大きい方を返す関数、ＭＩＮ（ｘ，ｙ）は引数ｘとｙを比較して小さい方を返す関数、Ｓは予め任意に定めた定数とする。
【００７５】
次に物体番号決定部２０３ａは２次元配列Ｍ２を参照して、ａ＝ａ１，…，ａ２で且つｂ＝ｂ１，…，ｂ２の範囲の小区画の集合の中に、Ｍ２［ａ，ｂ］≠０の小区画が有るか否かを判定する。もし、Ｍ２［ａ，ｂ］≠０の小区画が無い場合、物体番号決定部２０３ａは、配列Ｅから値が０の要素を検索する。もし、値が０の要素が見つかった場合、物体番号決定部２０３ａは、配列Ｅの当該値が０の要素の番号を、小区画（ａ，ｂ）に対応する動物体の番号としてＭ１［ａ，ｂ］に設定する。これに対し、配列Ｅに値が０の要素が無い場合、物体番号決定部２０３ａは０をＭ１［ａ，ｂ］に設定する。
【００７６】
一方、Ｍ２［ａ，ｂ］≠０の小区画が有る場合、物体番号決定部２０３ａは、当該Ｍ２［ａ，ｂ］≠０の小区画の集合における動物体の番号Ｍ２［ａ，ｂ］の最頻値を求める。動物体検出部２０３は、この最頻値を、小区画（ａ，ｂ）に対応する動物体の番号としてＭ１［ａ，ｂ］に代入する。
【００７７】
その後、物体番号決定部２０３ａは、配列Ｅの要素全てに０を設定する。そして物体番号決定部２０３ａは、ａ＝ａ１，…，ａ２で且つｂ＝ｂ１，…，ｂ２の範囲の小区画の各々について、Ｅ［Ｍ１［ａ，ｂ］］に１を設定する。
【００７８】
上述した動物体検出部２０３（つまり物体番号決定部２０３ａを含む動物体検出部２０３）の一連の動作により、２次元配列Ｍ１に動物体の検出結果２２２が格納される。しかし、動物体を検出して、前記小区画に相当する場所毎に対応する動物体が特定できるのであれば、本実施形態で適用されたのとは異なる方法で動物体が検出されても良い。
【００７９】
次に、データコード読み取り部２０４及びラベル認識部２０５の動作について説明する。  
データコード読み取り部２０４は、フレームＦ１からバーコードを検出する。データコード読み取り部２０４は、検出されたバーコードの個数を変数Ｍに代入する。またデータコード読み取り部２０４は、検出されたバーコードの各々について、当該バーコードの外接矩形の中心のＸ座標及びＹ座標を変数ｕ［ｉ］及びｖ［ｉ］に設定する。変数ｕ［ｉ］及びｖ［ｉ］は、前記作業データの一部である。
【００８０】
また、データコード読み取り部２０４は、検出されたバーコードの各々の画像を解析することで、当該バーコードに記録された情報をデコードする（つまり読み取る）。データコード読み取り部２０４は、デコード結果２２３を配列ｄの要素（文字列変数）ｄ［ｉ］に代入する。但し、ｉは検出されたバーコードの識別に用いられる番号である。
【００８１】
ラベル認識部２０５は、記憶装置１３のラベル辞書領域１３ｅに格納されているラベル辞書を用いたテンプレートマッチングにより、フレームＦ１から当該ラベル辞書に登録されたラベル画像を検出し且つ認識する。図１０は、本実施形態で適用されるラベル辞書の典型的なデータ構造を模式的に示す。図１０に示すように、ラベル辞書は、認識対象のラベルの各々について、当該ラベルの基準となる画像（つまり参照画像）と当該ラベルの種別を表す番号と、値引き額または割引率またはポイント数とを予め格納している。
【００８２】
ここで、上述のテンプレートマッチングにより、ラベル認識部２０５が、フレームＦ１から参照画像とマッチングする領域を検出したものとする。即ちラベル認識部２０５が、ラベルを検出したものとする。この場合、ラベル認識部２０５は、検出されたラベルの各々について、当該ラベルに関するラベル認識結果２２４を取得する。ラベル認識結果２２４は、検出されたラベルの種別（より詳細には、種別を表す番号）と値引き額または割引率またはポイント数との組を含む。またラベル認識結果２２４は、検出されたラベルの座標、例えば当該ラベルの中心座標を更に含む。本実施形態において、ラベルの中心座標は、当該ラベルの外接矩形の中心のＸ座標及びＹ座標である。
【００８３】
ラベル認識部２０５は、検出されたラベルの個数及び取得されたラベル認識結果２２４を作業データ領域１３ｃに次のように格納する。まずラベル認識部２０５は、検出されたラベルの個数を、変数Ｌに設定する。またラベル認識部２０５は、検出されたラベルの各々について、当該ラベルの外接矩形の中心のＸ座標及びＹ座標を、配列ｓ及びｔの要素（変数）ｓ［ｉ］，ｔ［ｉ］に設定する。但し、ｉは、前述のデータコード読み取り部２０４の動作の場合と異なり、検出されたラベルの識別に用いられる番号である。またラベル認識部２０５は、検出されたラベルの各々について、当該ラベルの種別を表す番号を配列αの要素α［ｉ］に、当該ラベルの値引き額または割引率またはポイント数を配列βの要素β［ｉ］に、それぞれ設定する。
【００８４】
以上で述べた、動物体検出部２０３による動画像２２１からの動物体の検出、データコード読み取り部２０４による、フレームＦ１からのバーコードの検出、ラベル認識部２０５によるフレームＦ１からのラベル画像の検出と認識は同一スレッド上で逐次実行しても良いし、複数のスレッドやＣＰＵコアで並行して実行しても良く、それらの実行順序は任意に定めて良い。
【００８５】
フレーム処理では次に、後述する方法で関連付け部２０６により、動物体検出部２０３による動物体の検出結果２２２と、データコード読み取り部２０４によるデコード結果２２３と、ラベル認識部２０５によるラベル認識部２０５とに基づき、次のような関連付けを実行する。即ち関連付け部２０６は、ラベル認識部２０５によって認識されたラベル、データコード読み取り部２０４によってデコードされたバーコード、及び動物体検出部２０３によって検出された動物体の位置関係を調べる。そして関連付け部２０６は、バーコードと同一物体上のラベルを認識して得られたラベル認識結果を、当該バーコードのデコード結果に関連付ける。
【００８６】
次に関連付け部２０６の動作の詳細について説明する。まず関連付け部２０６は、配列Ｐ及びＱの要素を全て０に初期化する。次に関連付け部２０６は、データコード読み取り部２０４によって検出されたバーコードの各々について、つまりｉ＝１，…，Ｍについて、当該バーコードの中心座標（ｕ［ｉ］，ｖ［ｉ］）が位置する動物体の番号Ｍ１［ｕ［ｉ］／Ｚ，ｖ［ｉ］／Ｚ］を取得する。次に関連付け部２０６は、配列Ｐの要素Ｐ［Ｍ１［ｕ［ｉ］／Ｚ，ｖ［ｉ］／Ｚ］］にｉを設定する。次に関連付け部２０６は、ラベル認識部２０５によって認識されたラベルの各々について、つまりｉ＝１，…，Ｌについて、当該ラベルの中心座標（ｓ［ｉ］，ｔ［ｉ］）が位置する動物体の番号Ｍ１［ｓ［ｉ］／Ｚ，ｔ［ｉ］／Ｚ］を取得する。そして関連付け部２０６は、配列Ｑの要素Ｑ［Ｍ１［ｓ［ｉ］／Ｚ，ｔ［ｉ］／Ｚ］］にｉを設定する。
【００８７】
上述の関連付け部２０６による配列Ｐ及びＱの操作によって、関連付けデータ２２５が作業データ領域１３ｃに格納される。このように関連付け部２０６は、配列Ｐ及びＱの操作により、検出された動物体の各々に、当該動物体上で検出されたバーコードのデコード結果と当該動物体上で検出されたラベルの認識結果とを関連付ける。これにより、バーコードのデコード結果が、当該バーコードが記された物体（つまり同一物体）上で検出されたラベルの認識結果と関連付けられる。ここで、バーコードが記された物体の面（つまりバーコード面）と、ラベルが貼付された当該物体の面が同一面である必要はないことに注意されるべきである。
【００８８】
フレーム処理では次に、後述する方法で更新部２０７により次のような作業データ更新処理（履歴更新処理）を行う。  
以降では、更新部２０７の動作について説明する。更新部２０７の履歴更新部２０７ａは、関連付け部２０６による関連付けが完了する度に、次のような作業データ更新処理（履歴更新処理）を行う。まず履歴更新部２０７ａは、ｊ＝１，…，Ｋについて、Ｅ［ｊ］が１（Ｅ［ｊ］＝１）で、且つＰ［ｊ］が０以外（Ｐ［ｊ］≠０）で、且つｇ［ｊ］が空文字列ならば、ｇ［ｊ］にｄ［Ｐ［ｊ］］を、ｆ［ｊ］に０を、それぞれ設定する。またＥ［ｊ］が０（Ｅ［ｊ］＝０）ならば、履歴更新部２０７ａは、ｇ［ｊ］に空文字列を設定する。
【００８９】
履歴更新部２０７ａはまた、ｊ＝１，…，Ｋについて、ｇ［ｊ］が空文字列でないならば、ｈ［ｊ］の値を１増やす。一方、ｇ［ｊ］が空文字列ならば、履歴更新部２０７ａはｈ［ｊ］に−１を設定する。履歴更新部２０７ａは更に、ｊ＝１，…，Ｋについて、Ｅ［ｊ］が１（Ｅ［ｊ］＝１）で、且つＱ［ｊ］が０以外（Ｑ［ｊ］≠０）ならば、ｇ２［ｊ］に１を設定する。
【００９０】
動画像入力部２０１による動画像２２１からのフレームの入力が一定の時間間隔で行われる場合、前述の履歴更新処理におけるｈ［ｊ］の増分が１（一定値）であることから、ｈ［ｊ］は予め定められた時間の後に一定の値に達する。また、動画像２２１からのフレームの入力が一定間隔でない場合でも、履歴更新部２０７ａが、ｈ［ｊ］の増分をフレーム間の時間間隔に比例させるように調整するならば、前記予め定められた時間の後に、ｈ［ｊ］を一定の値に達するようにすることができる。
【００９１】
一方、更新部２０７のリスト更新部２０７ｂも、関連付け部２０６による関連付けが完了する度に、作業データ更新処理を行う。この作業データ更新処理では、リストの配列Λ（つまり、バーコードのデコード結果２２３のリストの配列Λ）及びリストの配列Γ（つまり、ラベル認識結果２２４のリストの配列Γ）が更新される。そこで、リスト更新部２０７ｂによって実行される作業データ更新処理をリスト更新処理と呼ぶ。このリスト更新処理は次のように行われる。
【００９２】
まずリスト更新部２０７ｂは、動物体の番号ｊ＝１，…，Ｋについて、Ｐ［ｊ］が０以外（Ｐ［ｊ］≠０）ならば、リスト更新部２０７ｂは、デコード結果ｄ［Ｐ［ｊ］］をリストΛ［ｊ］に追加する。
【００９３】
またリスト更新部２０７ｂは、動物体の番号ｊ＝１，…，Ｋについて、Ｑ［ｊ］が０以外（Ｑ［ｊ］≠０）ならば、ｊ番目の動物体上で検出されたラベルの種別番号α［Ｑ［ｊ］］と値引き額または割引率またはポイント数β［Ｑ［ｊ］］との組からなるラベル認識結果をリストΓ［ｊ］に追加する。
【００９４】
フレーム処理では次に、後述する方法で出力部２０８による前記バーコードのデコード結果２２３とラベル認識結果２２４の出力を行う。
【００９５】
以降では、出力部２０８の動作について説明する。出力部２０８は、変数Ｃ１の値によって決定されるタイミングで、前記バーコードのデコード結果２２３と、関連付けデータ２２５によって当該デコード結果２２３に関連付けられたラベル認識結果２２４とを併せて、入出力コントローラ１４及びシリアル入出力インタフェース１８を介してＰＯＳ端末に出力する。この出力部２０８の動作を更に詳細に説明する。
【００９６】
まず出力部２０８は、Ｃ１＝２またはＣ１＝３の場合、ｊ＝１，…，Ｋについて、Ｅ２［ｊ］＝１で且つＥ［ｊ］＝０であるかを判定する。即ち出力部２０８は、現在のフレームを境にｊ番目の動物体が検出されなくなったかを判定する。この判定の結果に基づき、出力部２０８は、現在のフレームを境に検出されなくなったｊ番目の動物体の各々について、リストの配列Λ（つまり、バーコードのデコード結果２２３のリストの配列Λ）におけるｊ番目のリストΛ［ｊ］の最初の要素を入出力コントローラ１４及びシリアル入出力インタフェース１８を介して出力する。
【００９７】
次に出力部２０８は、リストの配列Γ（つまりラベル認識結果２２４のリストの配列Γ）におけるｊ番目のリストΓ［ｊ］が空リストであるかを判定する。もし、リストΓ［ｊ］が空リストでなく、したがってｊ番目の動物体に関連付けられたラベル（つまりバーコードに関連付けられたラベル）が有るならば、出力部２０８は、当該リストΓ［ｊ］の最初の要素に格納されたラベルの種別の番号と値引き額または割引率またはポイント数とから構成される情報（つまりラベル認識結果２２４）を入出力コントローラ１４及びシリアル入出力インタフェース１８を介して出力する。
【００９８】
図１１は、バーコードに関連付けられたラベルが無い場合の出力内容の例を示す。図１２は、バーコードに関連付けられたラベルが有る場合の出力内容の例を示す。図１１及び図１２における「ＢＡＲＣＯＤＥ＝０１２３４５６７８」はバーコードのデコード結果が０１２３４５６７８であることを示す。図１２の例では、ラベル認識結果が「ＬＡＢＥＬ＝１，１０」のように表されている。この「ＬＡＢＥＬ＝１，１０」は、ラベルの種別の番号が１であること（つまり当該ラベルが値引きラベルであること）、及び値引き額が１０円であることを示す。
【００９９】
出力部２０８は、Ｃ１＝１またはＣ１＝３の場合、ｊ＝１，…，Ｋについて、予め任意に定められた定数（閾値）θに基づき、ｈ［ｊ］＞θで且つｆ［ｊ］＝０であるかを判定する。即ち出力部２０８は、ｊ番目の動物体上でバーコードが検出されてから予め定められた時間またはフレーム数が経過し、且つ当該検出されたバーコードのデコード結果２２３が未出力であるかを判定する。この判定の結果、バーコードのデコード結果２２３が未出力であると判定したならば、出力部２０８は、該当するｊ番目の動物体の各々について、バーコードのデコード結果２２３のリストΛ［ｊ］の最初の要素を入出力コントローラ１４及びシリアル入出力インタフェース１８を介して出力する。
【０１００】
次に出力部２０８は、リストの配列Γ（つまりラベル認識結果２２４のリストの配列Γ）におけるｊ番目のリストΓ［ｊ］が空リストであるかを判定する。もし、リストΓ［ｊ］が空リストでなく、したがってｊ番目の動物体に関連付けられたラベル（つまりバーコードに関連付けられたラベル）が有るならば、出力部２０８は、当該リストΓ［ｊ］の最初の要素に格納されたラベルの種別の番号と値引き額または割引率またはポイント数とから構成される情報を入出力コントローラ１４及びシリアル入出力インタフェース１８を介して出力する。このとき出力部２０８は、ｆ［ｊ］に１を設定する。これにより、同じ動物体（同一物体）のバーコードのデコード結果、更には同じ動物体のラベルの認識結果が２回以上出力されるのを防止できる。
【０１０１】
次に、警告部２０９及び２１０の動作について説明する。警告部２０９は、動物体検出部２０３によって検出されていた動物体が検出されなくなった際に、当該動物体上でラベルは検出されていたにも拘わらず、当該動物体上でバーコードが検出されていない状態を、第１の警告条件を満たす状態として検出する。具体的には、警告部２０９は、Ｅ［ｊ］＝０、且つＥ２［ｊ］＝１、且つｇ［ｊ］＝空文字列、且つｇ２［ｊ］＝１となるｊをｊ＝１，…，Ｋについて検索する。このようなｊを検索できた場合、警告部２０９は、第１の警告条件が成立したと判定する。この場合、警告部２０９は、メッセージまたは警告音をスピーカ１９から出力する。本実施形態では、例えば「バーコードをかざして下さい。」など、商品のバーコード面をカメラ１７にかざすようにＰＯＳ端末のオペレータ（または顧客）に促す音声メッセージが用いられるものとする。しかし、メッセージが文字列から構成されており、シリアル入出力インタフェース１８を介してＰＯＳ端末に送出されて、当該ＰＯＳ端末の表示画面に表示されても良い。
【０１０２】
一方、警告部２１０は、動物体検出部２０３によって検出された動物体のうちの同一物体について、認識結果の異なるラベルが検出された状態を、第２の警告条件を満たす状態として検出する。具体的には、警告部２１０は、リストΓ［ｊ］の相異なる要素の数が２以上の場合に、第２の警告条件が成立したと判定する。この場合、警告部２１０は、メッセージまたは警告音をスピーカ１９から出力する。ここで、スピーカ１９からメッセージまたは警告音が出力される状態が不必要に続くのを防止するため、上述の判定が、リストΓ［ｊ］及びΓ２［ｊ］の両方に基づいて、次のように行われても良い。つまり警告部２１０は、１フレーム前の認識結果のリストΓ２［ｊ］と現在の認識結果のリストΓ［ｊ］とを比較し、相異なる要素の数が１から２に変わったフレームが検出された場合だけ、第２の警告条件が成立したと判定しても良い。
【０１０３】
次に修正入力部２１１の動作について説明する。修正入力部２１１は、Ｃ２＝１で、且つ警告部２１０によって前記第２の警告条件が成立したと判定された場合、修正されたラベル認識結果の入力を求める。即ち修正入力部２１１は、動物体検出部２０３によって検出された動物体のうちの同一物体について、ラベル認識結果の異なるラベルが検出された場合、ＰＯＳ端末のオペレータに修正されたラベル認識結果の入力を要求する。具体的には、修正入力部２１１は、修正されたラベル認識結果の入力を促すための第１の要求メッセージを、シリアル入出力インタフェース１８を介してＰＯＳ端末に送出する。この第１の要求メッセージはＰＯＳ端末の表示画面に表示される。
【０１０４】
ＰＯＳ端末のオペレータは、前記第１の要求メッセージに応じて、当該ＰＯＳ端末を操作することにより修正されたラベル認識結果を入力する。修正されたラベル認識結果は、修正されたラベルの種別を表す番号と修正された値引き額または割引率またはポイント数の組を含む。ＰＯＳ端末は、修正されたラベル認識結果を含む第１の応答メッセージを、シリアル入出力インタフェース１８を介して動画像認識装置１０に返す。修正入力部２１１は、このＰＯＳ端末から返された第１の応答メッセージを、入出力コントローラ１４を介して受信する。すると修正入力部２１１は、第１の応答メッセージを解読することにより、修正されたラベル認識結果、即ち修正されたラベルの種別を表す番号と修正された値引き額または割引率またはポイント数の組を取得する。修正入力部２１１は、取得されたラベル認識結果を収めた構造体一つのみが含まれたリストで、該当する物体（番号がｊの物体）のラベル認識結果のリストΓ［ｊ］を置き換える。
【０１０５】
図１３は、前記第１の要求メッセージの例を示し、図１４は前記第１の応答メッセージの例を示す。図１３及び図１４における「ＯＢＪＥＣＴ＝１」は動物体の番号ｊが１であることを示す。図１４における「ＬＡＢＥＬ＝１，１０」は、図１２の例と同様に、ラベルの種別の番号が１であること（つまり当該ラベルが値引きラベルであること）、及び値引き額が１０円であることを示す。
【０１０６】
さて、修正されたラベル認識結果の入力の要求が不必要に繰り返されるのを防止するため、該当する動物体に関するバーコードのデコード結果とラベル認識結果の組を出力部２０８が出力する直前に、警告部２１０が上述の判定を行っても良い。また、このタイミングでの前記判定を、修正入力部２１１が行っても良い。但し、このタイミングでの判定は、Γ［ｊ］の相異なる要素の数ではなくてΓ２［ｉ］の相異なる要素の数に基づいて行われる必要がある。つまり、Γ２［ｉ］の相異なる要素の数が２以上の場合に、修正されたラベル認識結果の入力が要求されれば良い。
【０１０７】
次に決定部２１２の動作について説明する。決定部２１２は、Ｃ２＝２で、且つ前述の第２の警告条件が成立している場合、前記種別と値引き額または割引率またはポイント数とを多数決により決定する。つまり決定部２１２は、Ｃ２＝２で、且つ検出部２０３によって検出された動物体のうちの同一物体について、ラベル認識結果２２４の異なるラベルが検出された場合、上述の多数決による決定を行う。この多数決による決定は、例えば、出力部２０８が前記同一物体に関するバーコードのデコード結果とラベル認識結果とを出力する直前のタイミングで行われる。このタイミングで決定部２１２は、リストΓ２［ｉ］内で最多数のラベル認識結果を、新しいラベル認識結果として決定する。そして決定部２１２は、この新しいラベル認識結果のみを含むリストをΓ［ｉ］及びΓ２［ｉ］に設定する。
【０１０８】
次に警告部２１３の動作について説明する。警告部２１３は、リストΛ［ｊ］の相異なる要素の数が２以上の場合に、前記第３の警告条件が成立していると判定する。即ち警告部２１３は、リストΛ［ｊ］の相異なる要素の数が２以上の場合に、動物体検出部２０３によって検出された動物体のうちの同一物体について、データコード読み取り部２０４によってデコード結果２２３の異なるバーコードが検出された判定する。この場合、警告部２１３は、メッセージまたは警告音をスピーカ１９から出力する。ここで、スピーカ１９からメッセージまたは警告音が出力される状態が不必要に続くのを防止するため、上述の判定が、リストΛ［ｊ］及びΛ２［ｊ］の両方に基づいて、次のように行われても良い。つまり警告部２１０は、１フレーム前の認識結果のリストΛ２［ｊ］と現在の認識結果のリストΛ［ｊ］とを比較し、相異なる要素の数が１から２に変わったフレームが検出された場合だけ、第２の警告条件が成立したと判定しても良い。
【０１０９】
次に、修正部２１４の動作について説明する。修正部２１４は、Ｃ３＝１で、且つ警告部２１３によって前記第３の警告条件が成立したと判定された場合、修正されたデコード結果の入力を求める。即ち修正部２１４は、Ｃ３＝１で、且つ検出された動物体のうちの同一物体についてデコード結果２２３の異なるバーコードが検出された場合（つまり、リストΛ［ｊ］の相異なる要素の数が２以上の場合）、ＰＯＳ端末のオペレータに修正されたデコード結果の入力を要求する。具体的には、修正部２１４は、修正されたデコード結果の入力を促すための第２の要求メッセージを、シリアル入出力インタフェース１８を介してＰＯＳ端末に送出する。この第２の要求メッセージはＰＯＳ端末の表示画面に表示される。
【０１１０】
ＰＯＳ端末のオペレータは、前記第２の要求メッセージに応じて、当該ＰＯＳ端末を操作することにより修正されたデコード結果（つまり単一のバーコードのデコード結果）を入力する。ＰＯＳ端末は、修正されたデコード結果を含む第２の応答メッセージを、シリアル入出力インタフェース１８を介して動画像認識装置１０に返す。修正部２１４は、このＰＯＳ端末から返された第２の応答メッセージを、入出力コントローラ１４を介して受信する。すると修正部２１４は、第２の応答メッセージを解読することにより、修正されたデコード結果を取得する。修正部２１４は、取得されたデコード結果を収めた構造体一つのみが含まれたリストで、該当する物体のバーコードのデコード結果のリストを置き換える。
【０１１１】
図１５は、前記第２の要求メッセージの例を示し、図１６は前記第２の応答メッセージの例を示す。図１５及び図１６における「ＯＢＪＥＣＴ＝１」は動物体の番号ｊが１であることを示す。図１５における「ＢＡＲＣＯＤＥ＝９８７６５４３２１」は入力されたデコード結果が９８７６５４３２１であることを示す。
【０１１２】
さて、修正されたデコード結果の入力の要求が不必要に繰り返されるのを防止するため、該当する動物体に関するバーコードのデコード結果とラベル認識結果の組を出力部２０８が出力する直前に、警告部２１３が上述の判定を行っても良い。また、このタイミングでの前記判定を、修正部２１４が行っても良い。但し、このタイミングでの判定は、はΛ［ｊ］の相異なる要素の数ではなくてΛ２［ｉ］の相異なる要素の数に基づいて行われる必要がある。つまり、Λ２［ｉ］の相異なる要素の数が２以上の場合に、修正されたデコード結果の入力が要求されれば良い。
【０１１３】
次に、多数決選択部２１５の動作について説明する。多数決選択部２１５は、Ｃ３＝２で、且つ前述の第３の警告条件が成立している場合、多数決でデコード内容を選択する。即ち多数決選択部２１５は、Ｃ３＝２で、且つ検出された動物体のうちの同一物体についてデコード結果２２３の異なるバーコードが検出された場合（つまり、Γ［ｊ］の相異なる要素の数が２以上の場合）、に多数決でデコード内容を選択する。この多数決によるデコード内容の選択は、例えば、出力部２０８が前記同一物体に関するバーコードのデコード結果とラベル認識結果とを出力する直前のタイミングで行われる。このタイミングで多数決選択部２１５は、リストΛ２［ｉ］で最多数のデコード結果を新しいデコード結果とする。そして多数決選択部２１５は、この新しいデコード結果のみを含むリストをΛ［ｉ］およびΛ２［ｉ］に設定する。
【０１１４】
本実施形態によれば、次に列挙されるような効果を得ることできる。  
ａ）関連付け部２０６は、動物体検出部２０３によって検出された動物体のうちの同一物体上から検出されたバーコードのデコード結果とラベルの認識結果とを関連付ける。これにより、バーコード及びラベル（つまり値引きラベルのようなラベル）の両者が同一フレーム内に収まらないような箇所に配置されている場合でも、その両者を関連付けることができる。
【０１１５】
ｂ）警告部２０９は、動物体が検出されなくなった時点で、当該動物体上でラベルは検出されているにも拘わらず、当該動物体上のバーコードが検出されていない場合に、当該バーコード（バーコード面）をカメラ１７（動画像撮像装置）にかざすのをオペレータに促すメッセージまたは警告音を発する。これにより、オペレータがバーコードをカメラ１７にかざすのを忘れる頻度を減らすことができる。
【０１１６】
ｃ）警告部２１０（修正入力部２１１）は、動物体検出部２０３によって検出された動物体のうちの同一物体について認識結果の異なるラベルが検出された場合に、メッセージまたは警告音（修正されたラベル認識結果の入力を促すためのメッセージまたは警告音）を発する。このメッセージまたは警告音により、オペレータに対して修正されたラベル認識結果の入力が促される。これにより、ラベルに関する正しい情報（より詳細には、ラベルに示されたシンボルの表す正しい情報）が入力されることが期待される。よって、ラベルの誤認識があっても、金額またはポイントの計算への悪影響を防止できる。
【０１１７】
ｄ）決定部２１２は、前記同一物体について認識結果の異なるラベルが検出された場合に、多数決により認識結果を決定する。これにより、ラベルの誤認識の影響を低減することができる。
【０１１８】
ｅ）警告部２１３（入力部２１４）は、前記同一物体についてデコード結果の異なるバーコードが検出された場合に、メッセージまたは警告音（修正されたデコード結果の入力を促すためのメッセージまたは警告音）を発する。これにより、バーコードに関する正しい情報が入力されることが期待される。よって、バーコードのデコード誤りの影響を低減することができる。
【０１１９】
ｆ）多数決選択部２１４は、前記同一物体についてデコード結果の異なるバーコードが検出された場合に、多数決でデコード内容を選択する。これにより、バーコードのデコード誤りの影響を低減することができる。  
前記実施形態では、データコードとしてバーコード（１次元バーコード）が適用されている。しかし、他のデータコード、例えばＱＲコード（登録商標）のような２次元バーコードが適用されても良い。
【０１２０】
以上説明した少なくとも１つの実施形態によれば、データコードとラベルとが、同一フレーム内に収まらないような配置となっている場合でも、動画像から両者の関連付けを行うことができる動画像認識装置及び動画像認識方法を提供することができる。
【０１２１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
2014049729.tif 000003
【図２】
2014049729.tif 000004
【図３】
2014049729.tif 000005
【図４】
2014049729.tif 000006
【図５】
2014049729.tif 000007
【図６】
2014049729.tif 000008
【図７】
2014049729.tif 000009
【図８】
2014049729.tif 000010
【図９】
2014049729.tif 000011
【図１０】
2014049729.tif 000012
【図１１】
2014049729.tif 000013
【図１２】
2014049729.tif 000014
【図１３】
2014049729.tif 000015
【図１４】
2014049729.tif 000016
【図１５】
2014049729.tif 000017
【図１６】
2014049729.tif 000018
【手続補正書】
【提出日】平成26年10月31日(2014.10.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動画像を入力する動画像入力部と、
前記入力された動画像を格納するバッファ部と、
前記バッファ部に格納された前記動画像から動物体を検出してその各々を識別する動物体検出部と、
前記動画像のフレームの各々からデータコードを検出して、当該検出されたデータコードをデコードするデータコード読み取り部と、
前記動画像のフレームの各々からラベルを検出して、当該検出されたラベルに記されたシンボルを認識するラベル認識部と、
前記認識されたラベルと前記デコードされたデータコードとが、前記識別された動物体のうちの同一物体上にある場合に、前記ラベルの認識結果を前記データコードのデコード結果に関連付ける関連付け部と、
前記データコードのデコード結果と当該デコード結果に関連付けられた前記ラベルの認識結果とを併せて出力する出力部と
を具備し、
前記出力部は、前記データコードが検出されてから、予め定められた時間またはフレーム数が経過した後に、前記データコードのデコード結果及び前記ラベルの認識結果を出力する動画像認識装置。
【請求項２】
前記出力部は、前記検出されたデータコードを含む動物体が前記動物体検出部によって検出されなくなった後に、前記データコードのデコード結果及び前記ラベルの認識結果を出力する請求項１記載の動画像認識装置。
【請求項３】
前記動物体検出部によって検出された動物体のうちの同一物体について認識結果の異なるラベルが検出された場合に、多数決により認識結果を決定する決定部を更に具備する請求項１記載の動画像認識装置。
【請求項４】
前記ラベルが、値引き額を表すシンボルが記された値引きラベル、割引率を表すシンボルが記された割引ラベル、または付与されるポイント数を表すポイント付与ラベルであり、
前記ラベルの認識結果は、前記ラベルの種別と、前記引き額、前記割引率または前記ポイント数とを含み、
前記決定部は、前記ラベルの前記種別と、前記引き額、前記割引率または前記ポイント数とを、前記異なる認識結果に基づき多数決により決定する
請求項３記載の動画像認識装置。
【請求項５】
前記動物体検出部によって検出された動物体のうちの同一物体についてデコード結果の異なるデータコードが検出された場合に、多数決によりデコード結果を選択する多数決選択部を更に具備する請求項１記載の動画像認識装置。
【請求項６】
動画像を入力する工程と、
前記入力された動画像をバッファ部に格納する工程と、
前記バッファ部に格納された前記動画像から動物体を検出してその各々を識別する動物体検出工程と、
前記動画像のフレームの各々からデータコードを検出する工程と、
前記検出されたデータコードをデコードする工程と、
前記動画像のフレームの各々からラベルを検出する工程と、
前記検出されたラベルに記されたシンボルを認識する工程と、
前記認識されたラベルと前記デコードされたデータコードとが、前記識別された動物体のうちの同一物体上にある場合に、前記ラベルの認識結果を前記データコードのデコード結果に関連付ける工程と、
前記データコードのデコード結果と当該デコード結果に関連付けられた前記ラベルの認識結果とを併せて出力する出力工程と
を具備し、
前記出力工程は、前記データコードが検出されてから、予め定められた時間またはフレーム数が経過した後に、前記データコードのデコード結果及び前記ラベルの認識結果を出力する動画像認識方法。
【請求項７】
前記出力工程は、前記検出されたデータコードを含む動物体が前記動物体検出工程によって検出されなくなった後に、前記データコードのデコード結果及び前記ラベルの認識結果を出力する請求項６記載の動画像認識方法。
【請求項８】
前記動物体検出工程によって検出された動物体のうちの同一物体について認識結果の異なるラベルが検出された場合に、多数決により認識結果を決定する決定工程を更に具備する請求項６記載の動画像認識方法。
【請求項９】
前記ラベルが、値引き額を表すシンボルが記された値引きラベル、割引率を表すシンボルが記された割引ラベル、または付与されるポイント数を表すポイント付与ラベルであり、
前記ラベルの認識結果は、前記ラベルの種別と、前記引き額、前記割引率または前記ポイント数とを含み、
前記決定工程は、前記ラベルの前記種別と、前記引き額、前記割引率または前記ポイント数とを、前記異なる認識結果に基づき多数決により決定する
請求項８記載の動画像認識方法。
【請求項１０】
前記動物体検出工程によって検出された動物体のうちの同一物体についてデコード結果の異なるデータコードが検出された場合に、多数決によりデコード結果を選択する多数決選択工程を更に具備する請求項６記載の動画像認識方法。
【国際調査報告】
2014049729.tif 000019
2014049729.tif 000020
2014049729.tif 000021
2014049729.tif 000022