以下、認識辞書作成装置に係る実施形態を、図面を用いて説明する。なお、本実施形態は、店舗会計システム(POSシステム)で利用される商品読取装置1に、認識辞書作成装置の機能を持たせた場合である。
(第1の実施形態)
始めに,第1の実施形態について、図1〜図9を用いて説明する。
図1は、店舗会計システムの外観図である。このシステムは、顧客が買い上げる商品を登録する登録部としての商品読取装置1と、顧客の代金支払いを処理する決済部としてのPOS(Point Of Sales)端末2とを含む。商品読取装置1は、会計カウンタ3の上に取り付けられる。POS端末2は、レジ台4の上にドロワ5を介して設置される。商品読取装置1とPOS端末2とは、図示しない通信ケーブルによって電気的に接続される。
商品読取装置1は、キーボード11、タッチパネル12及び客用ディスプレイ13を備える。これらの表示・操作デバイス(キーボード11、タッチパネル12、客用ディスプレイ13)は、商品読取装置1の本体を構成する薄型矩形形状のハウジング1Aに取り付けられる。
ハウジング1Aには、撮像手段としての撮像部14が内蔵される。また、矩形状の読取窓1Bが、ハウジング1Aの正面に形成される。撮像部14は、エリアイメージセンサであるCCD(Charge Coupled Device)撮像素子及びその駆動回路と、撮像領域の画像をCCD撮像素子に結像させるための撮像レンズとを備える。撮像領域とは、読取窓1Bから撮像レンズを通してCCD撮像素子のエリアに結像するフレーム画像の領域を指す。撮像部14は、撮像レンズを通ってCCD撮像素子に結像した撮像領域の画像を出力する。
POS端末2は、決済に必要なデバイスとしてキーボード21、オペレータ用ディスプレイ22、客用ディスプレイ23及びレシートプリンタ24を備える。
会計カウンタ3は、その奥側の顧客通路に沿って細長い形状である。レジ台4は、会計カウンタ3に沿って移動する顧客の移動方向に対して下流側の会計カウンタ3の端部手前側に、会計カウンタ3に対して略垂直に置かれる。そして、この会計カウンタ3の手前側とレジ台4の手前側が、会計担当の店員いわゆるキャッシャのスペースとなる。
会計カウンタ3の略中央には、商品読取装置1のハウジング1Aが、キーボード11、タッチパネル12及び読取窓1Bをそれぞれ手前側のキャッシャ側に向けて立設される。商品読取装置1の客用ディスプレイ13は、顧客通路側を向いてハウジング1Aに取り付けられる。
会計カウンタ3の商品読取装置1を挟んで顧客移動方向上流側の荷受面は、買物客が購入する未登録の商品Mが入れられた買物カゴ6を置くためのスペースとなる。また、下流側の荷受面は、商品読取装置1により登録された商品Mを入れるための買物カゴ7を置くためのスペースとなる。
図2は、商品読取装置1とPOS端末2とのハードウェア構成を示すブロック図である。商品読取装置1は、制御部本体としてCPU(Central Processing Unit)101を搭載する。そしてこのCPU101に、アドレスバス,データバス等のバスライン102を介して、ROM103とRAM104とが接続される。ROM103には、CPU101によって実行されるプログラムが記憶される。
この他、バスライン102には、入出力回路(不図示)を介して前記撮像部14が接続される。また、接続インターフェース105及び接続インターフェース106を介して、表示・操作デバイスであるキーボード11、タッチパネル12及び客用ディスプレイ13が、バスライン102に接続される。タッチパネル12は、例えば液晶ディスプレイを用いたパネル表示部121と、この表示部の画面上に重ねて配置されたタッチパネルセンサ122とを備える。
POS端末2も、制御部本体としてCPU201を搭載する。そしてこのCPU201に、バスライン202を介して、ROM203、RAM204、HDD(Hard Disk Drive)装置205、通信インターフェース206及び接続インターフェース207が接続される。また、バスライン202には、前記キーボード21、オペレータ用ディスプレイ22、客用ディスプレイ23、プリンタ24及びドロワ5の各部も、それぞれ入出力回路(不図示)を介して接続される。
通信インターフェース206は、LAN(Local Area Network)等のネットワークを介して、店舗の中枢を担うストアコンピュータSCと接続される。この接続により、POS端末2は、ストアコンピュータSCとデータの送受信が可能となる。例えばPOS端末2は、ストアコンピュータSCから商品データファイル(不図示)や認識辞書ファイル8を受信する。受信した商品データファイル及び認識辞書ファイル8は、HDD装置205に保存される。
接続インターフェース207は、通信ケーブルを介して、商品読取装置1の両接続インターフェース105,106と接続される。この接続により、POS端末2は、商品読取装置1で読み取られた商品情報を受信する。また、商品読取装置1は、HDD装置205に保存された商品データファイルや認識辞書ファイル8へのアクセスが可能となる。
図3は、認識辞書ファイル8に保存される辞書データの構造を示す模式図である。図3に示すように、認識辞書ファイル8には、認識対象である商品毎に、その商品を識別する商品ID及び商品名と関連付けて、N(Nは複数)個の特徴量データが保存される。特徴量データは、対応する商品IDで識別される商品の表面情報の特徴量をパラメータで表わしたものである。
店舗で販売される各商品には、固有の商品IDが割当てられている。商品データファイルには、各商品の商品IDと関連付けて、商品名、単価、分類コード等の商品情報がプリセットされている。
商品読取装置1は、業務モードとして少なくとも商品認識モードと認識辞書作成モードとを有する。商品認識モードは、顧客が買い上げる商品を認識し、その認識結果をPOS端末2に出力するモードである。認識辞書作成モードは、認識辞書ファイル8に未登録の新規商品の特徴量データを追加したり、認識辞書ファイル8に登録済の既存商品の特徴量データを更新したりすることで、認識辞書ファイル8を作成(編集)するモードである。これらの業務モードは、例えばタッチパネル12に表示されるメニュー画面から選択可能である。なお、認識辞書作成モードについては、パスワード入力等の認証手段を設けることによって、選択できるオペレータを制限することが好ましい。
商品認識モードが選択された場合、CPU101は、撮像部14に撮像オン信号を出力して撮像領域を撮像させる。そしてCPU101は、この撮像領域の画像データから商品の画像を取り込み、取り込んだ商品画像から当該商品の表面情報に関わる特徴量を抽出する。さらにCPU101は、抽出された特徴量を、認識辞書ファイル8に登録されている特徴量データと照合して類似度を算出する。そして、類似度が所定の閾値を超える特徴量データが認識辞書ファイル8に登録されていたならば、CPU101は、その特徴量データに関連付けられた商品IDを顧客の買上商品として認識して、POS端末2に出力する。
一方、認識辞書作成モードが選択された場合には、CPU101は、図4のブロック図で示される各機能、すなわち角度受付手段41、記憶手段42、加工手段43、抽出手段44及びデータ登録手段45を実現する。これらの機能は皆、プログラム記憶部であるROM103に格納された認識辞書作成プログラム(不図示)に従って実現される。
角度受付手段41は、キーボード11やタッチパネル12等の入力部31を介して回転角度の入力を受け付ける。記憶手段42は、撮像部14で撮像された商品の画像を記憶部32に記憶させる。加工手段43は、記憶部32で記憶された商品の画像を、当該画像に含まれる商品を撮像部14で異なる方向から撮像した画像に加工する。抽出手段44は、加工手段43により加工された画像から、当該画像に含まれる商品の表面情報に関わる特徴量データを抽出する。データ登録手段45は、抽出手段44で抽出された特徴量データを、ファイルアクセス手段46を介して認識辞書ファイル8に登録する。ファイルアクセス手段46は、POS端末2のHDD装置205に保存される認識辞書ファイル8にアクセスする手段であり、本実施形態では接続インターフェース105が該当する。
記憶部32は、RAM104に形成される。記憶部32には、図5に示すように、基準画像メモリ321、加工画像メモリ322及び特徴量データのバッファメモリ323が設けられる。
基準画像メモリ321には、加工処理の基準となるフレーム画像が格納される。本実施形態では、撮像部14で撮像された画像を基準画像とする。
加工画像メモリ322には、上記基準画像から加工された画像が格納される。本実施形態では、図6に示すように、基準画像(フレーム画像)50の中心Oを回転中心として、当該基準画像51を右方向rに所定角度で回転させた画像が加工画像メモリ322に格納される。なお、画像の回転方向は右方向rに限定されるものではなく、その反対の左方向であってもよい。
バッファメモリ323には、基準画像及び複数の加工画像からそれぞれ抽出される同一商品の特徴量データが蓄積される。
図7は、認識辞書作成モードが選択されたときのCPU101の主要な情報処理手順を示す流れ図である。認識辞書作成モードが選択されると、認識辞書作成プログラムが起動する。このプログラムの起動により、CPU101は、商品ID、回転角度θ及びサンプル数nの受付画面をタッチパネル12に表示させる(ST101)。そしてCPU101は、上記受付画面から商品ID、回転角度θ及びサンプル数nがそれぞれ入力されるのを待機する(ST102:角度受付手段41)。
回転角度θとは、前記加工手段43が基準画像を右方向rに回転させた画像を加工する際の1加工当たりの回転角度である。本実施形態では、前記加工手段43が、基準画像を右方向rに回転角度θずつ回転させた画像をサンプル数nの数だけ加工し、その都度、前記抽出手段44が、加工した画像から商品の特徴量データを抽出してバッファメモリ323に保存する。
上記受付画面を確認したオペレータは、タッチパネル12またはキーボード11を操作して、辞書作成対象商品の商品IDと所望の回転角度θとサンプル数nとを入力する。なお、商品IDの代わりに商品名を入力してもよい。また、サンプル数nの入力は必須ではない。予め、回転角度θとサンプル数nとを対応付けた設定テーブルを用意しておき、回転角度θが選択されたならば、一義的にサンプル数nが決まるようにしてもよい。また、回転角度θについても、デフォルトの角度を予め設定しておき、回転角度θが入力されないときにはデフォルトの角度を回転角度θとしてもよい。
タッチパネル12のタッチ入力またはキーボード11のキー入力によって商品ID、回転角度θ及びサンプル数nがそれぞれ入力されたならば(ST102にてYES)、CPU101は、入力された商品ID、回転角度θ及びサンプル数nを、RAM104のワークエリアに格納する(ST103)。次いで、CPU101は、撮影キーが入力されるのを待機する(ST104)。
辞書作成対象商品の商品IDと回転角度θとサンプル数nとを入力したオペレータは、当該商品の面を読取窓1Bにかざす。そしてオペレータは、キーボード11またはタッチパネル12に設けられた撮影キーを入力する。
撮影キーが入力されると(ST104にてYES)、CPU101は、撮像部14に対して撮像オン信号を出力する(ST105)。撮像部14は、撮像オン信号に応じて撮像領域を撮像する。これにより、オペレータが読取窓1Bにかざしている商品の面が撮像部14によって撮像される。CPU101は、撮像部14で撮像されたフレーム画像を取り込む。そしてCPU101は、上記基準画像メモリ321に、上記フレーム画像を格納する(ST106:記憶手段42)。
しかる後、CPU101は、図8に具体的に示す基準画像処理を実行する(ST107)。先ずCPU101は、第1カウンタiを“0”にリセットする(ST201)。次いでCPU101は、基準画像メモリ321のフレーム画像から当該画像に含まれる商品の特徴量データを抽出する(ST202)。
具体的には、CPU101は先ず、フレーム画像から、肌色領域の有無を検出する。肌色領域が検出された場合、すなわちオペレータの手の映り込みが検出された場合、CPU101は、フレーム画像を二値化した画像から輪郭線などを抽出する。これにより、CPU101は、オペレータの手が把持していると想定される商品Mの輪郭抽出を試みる。商品Mの輪郭が抽出されると、CPU101は、その輪郭内の画像を格子状のパッチに分け、そのパッチ毎に商品の形状、表面の色合い、模様、凹凸状況等の特徴量を読み取る。
こうして、基準画像メモリ321のフレーム画像から商品のパッチ毎の特徴量データを抽出したならば、CPU101は、この抽出した特徴量データをバッファメモリ323の特徴量データi(iは第1カウンタiの値)に対応するエリアに格納する(ST203)。以上で、基準画像処理は終了する。したがって、バッファメモリ323の特徴量データ0に対応するエリアには、辞書作成対象商品を撮像部14で撮像したフレーム画像から抽出される商品のパッチ毎の特徴量データが格納される。
基準画像処理が終了すると、CPU101は、図9に具体的に示す加工画像処理を実行する(ST108)。
先ずCPU101は、第2カウンタjを“0”にリセットする(ST301)。次いでCPU101は、第2カウンタjを“1”だけカウントアップする(ST302)。そしてCPU101は、第2カウンタjがサンプル数nを超えたか否かを確認する(ST303)。
第2カウンタjがサンプル数nを超えていない場合(ST303にてNO)、CPU101は、第1カウンタiを“1”だけカウントアップする(ST304)。またCPU101は、基準画像メモリ321内の画像を、右方向rに角度jθ(jは第2カウンタjの値、θは回転角度)だけ回転させた画像に加工する(ST305:加工手段43)。
CPU101は、加工された画像を加工画像メモリ322に格納する。そしてCPU101は、前記ステップST202の処理と同様にして、加工画像メモリ322に格納された画像から、当該画像に含まれる商品の特徴量データを抽出する(ST306:抽出手段44)。そしてCPU101は、この抽出した特徴量データをバッファメモリ323の特徴量データi(iは第1カウンタiの値)に対応するエリアに格納する(ST307)。
ステップST307の処理を終了すると、CPU101は、ステップST302の処理に戻る。すなわちCPU101は、第2カウンタjをさらに“1”だけカウントアップする。そしてCPU101は、第2カウンタjがサンプル数nを超えたか否かを確認する(ST303)。
第2カウンタjがサンプル数nを超えるまで、CPU101は、ステップST304〜ST307の処理を繰り返し実行する。第2カウンタjがサンプル数nを超えたならば(ST303にてYES)、加工画像処理は終了する。
加工画像処理が終了すると、CPU101は、辞書更新処理を実行する(ST109)。すなわちCPU101は、ワークメモリに記憶された商品IDとバッファメモリ323に記憶された特徴量データ0〜N(N=n+1)とを関連付ける。そしてCPU101は、この商品IDと特徴量データ0〜Nとを、接続インターフェース106を介して、POS端末205のHDD装置205に保存されている認識辞書ファイル8に追加登録する(データ登録手段45)。
この際、認識辞書ファイル8に同一商品IDのデータが既に登録されていた場合には、CPU101は、この既存のデータを削除した後、今回の商品IDと特徴量データ0〜Nとを認識辞書ファイル8に追加登録してもよい。あるいはCPU101は、既存のデータに今回の特徴量データ0〜Nを上書きしてもよい。
なお、ストアコンピュータSCは、定期的にPOS端末2にアクセスして、当該POS端末2に保存される認識辞書ファイル8が更新されているか否かを確認する。そして更新されている場合には、ストアコンピュータSCは、更新後の認識辞書ファイル8を取り込んで、自らの認識辞書ファイル8を作成し直す。このとき、商品名の付されていないデータが存在する場合には、ストアコンピュータSCは、商品データファイルを参照して、商品IDに関連付けられた商品名を当該データに追加する。そしてストアコンピュータSCは、作成し直した認識辞書ファイル8をPOS端末2にダウンロードする。
このように本実施形態によれば、商品読取装置1を利用して、認識辞書ファイル8に未登録の新規商品の特徴量データを追加したり、認識辞書ファイル8に登録済の既存商品の特徴量データを更新したりすることができる。
この場合において、オペレータに要求される作業は、辞書作成対象商品を読取窓1Bにかざすだけである。あらゆる角度から商品が撮影されるように、かざした商品の向きを少しずつずらしていくような面倒な作業をオペレータが要求されることはない。したがって、予め物品を様々な角度から撮影した画像データが必要であった従来と比較して、認識辞書の作成に要する手間と時間が大幅に削減される。しかもオペレータは、単に辞書作成対象商品を読取窓1Bにかざせばよいので、オペレータの習熟度に依存しない辞書作成が可能となる。
また、本実施形態では、辞書作成対象商品の商品IDとともに、回転角度θとサンプル数nとを入力するようにしている。例えば形状が単純な矩形や単純な模様等で構成されている商品(例えば商品券等)については、物品の外観から得られる表面情報(形状、模様、色彩等)に関する特徴量が少ないため、商品読取装置の読取窓1Bに翳す商品の僅かな角度の違いによって別の商品に誤認識される可能性がある。そこで、回転角度θを小さくしかつサンプル数nを多くすることで、一商品について様々な角度の画像が得られ、より多くの特徴量を含んだ特徴量データを認識辞書ファイル8に登録することができるので、誤認識を低減することができる。一方、物品の表面情報(形状、模様、色彩等)が複雑な商品については、1画像からより多くの特徴量を含んだ特徴量データを得ることができるので、サンプル数nが少なくすることで認識辞書ファイル8に登録される特徴量データの数を節約するといった運用ができる。
(第2の実施形態)
次に、第2の実施形態について、図10〜図16を用いて説明する。この第2の実施形態において、店舗会計システムの外観図、商品読取装置とPOS端末とのハードウェア構成を示すブロック図、認識辞書ファイルのデータ構造を示す模式図、商品読取装置で認識辞書作成モードが選択された際に、同商品読取装置のCPUが実現する機能構成を示すブロック図は、第1の実施形態と同様なので、図1〜図4をそのまま用いるものとし、第1の実施形態と共通する部分には同一符号を付して、その詳しい説明は省略する。
第1の実施形態では、加工手段43が、基準画像51の中心Oを回転中心として、当該基準画像51を二次元方向に回転させた画像を加工する場合を例示した。第2の実施形態では、加工手段43が、基準画像51を三次元方向に回転させた画像を加工する場合を例示する。すなわち加工手段43は、図10の(a)に示すように、基準画像51の画像中心を通る垂線52を回転軸として、当該基準画像51を一方向r1(以下では右方向r1と定義する)またはその逆方向r2(以下では左方向r2と定義する)に所定角度で回転させた画像を加工する。あるいは、図10の(b)に示すように、基準画像(フレーム画像)51の画像中心を通る水平線53を回転軸として、当該基準画像51を一方向r3(以下では前方向r3と定義する)またはその逆方向r4(以下では後方向r4と定義する)に所定角度で回転させた画像を加工する。
第2の実施形態において、記憶部32には、図11に示すように、基準画像メモリ321、加工画像メモリ322及び特徴量データのバッファメモリ323の他、正面画像メモリ324、裏面画像メモリ325、左側面画像メモリ326、右側面画像メモリ327、上面画像メモリ328、底面画像メモリ329が設けられる。
正面画像メモリ324には、辞書作成対象商品の正面を撮像部14で撮像したときのフレーム画像が格納される。同様に、裏面画像メモリ325、左側面画像メモリ326、右側面画像メモリ327、上面画像メモリ328及び底面画像メモリ329には、辞書作成対象商品の裏面、左側面、右側面、上面及び底面をそれぞれ撮像部14で撮像したときのフレーム画像が格納される。
基準画像メモリ321には、上記正面、裏面、左側面、右側面、上面及び底面の各フレーム画像のうち、加工処理の基準となるフレーム画像が格納される。本実施形態では、正面または裏面のフレーム画像を基準画像とする。
加工画像メモリ322には、上記基準画像から右方向r1、左方向r2、前方向r3または後方向r4に所定角度で回転させた画像が格納される。バッファメモリ323には、基準画像及び複数の加工画像からそれぞれ抽出される同一商品の特徴量データが蓄積される。
図12は、認識辞書作成モードが選択されたときのCPU101の主要な情報処理手順を示す流れ図である。認識辞書作成モードが選択されると、認識辞書作成プログラムが起動する。このプログラムの起動により、CPU101は、商品ID、回転角度θ及びサンプル数nの受付画面をタッチパネル12に表示させる(ST1)。そしてCPU101は、上記受付画面から商品ID、回転角度θ及びサンプル数nがそれぞれ入力されるのを待機する(ST2:角度受付手段41)。
回転角度θとは、前記加工手段43が基準画像を左、右、前、後の各方向にそれぞれ回転させた画像を加工する際の1加工当たりの回転角度である。本実施形態では、前記加工手段43が、基準画像を一方向とその逆方向にそれぞれ回転角度θずつ回転させた画像をサンプル数nの数だけ加工し、その都度、前記抽出手段44が、加工した画像から商品の特徴量データを抽出してバッファメモリ323に保存する。
上記受付画面を確認したオペレータは、タッチパネル12またはキーボード11を操作して、辞書作成対象商品の商品IDと所望の回転角度θとサンプル数nとを入力する。なお、商品IDの代わりに商品名を入力してもよい。また、サンプル数nの入力は必須ではない。予め、回転角度θとサンプル数nとを対応付けた設定テーブルを用意しておき、回転角度θが選択されたならば、一義的にサンプル数nが決まるようにしてもよい。また、回転角度θについても、デフォルトの角度を予め設定しておき、回転角度θが入力されないときにはデフォルトの角度を回転角度θとしてもよい。
タッチパネル12のタッチ入力またはキーボード11のキー入力によって商品ID、回転角度θ及びサンプル数nがそれぞれ入力されたならば(ST2にてYES)、CPU101は、入力された商品ID、回転角度θ及びサンプル数nを、RAM104のワークエリアに格納する(ST3)。次いで、CPU101は、図13に具体的に示す撮影処理を実行する(ST4)。
先ずCPU101は、第3カウンタkを“0”にリセットする(ST21)。次いでCPU101は、撮影方向指示画面をタッチパネル12に表示させる(ST22)。撮影方向指示画面には、オペレータに対して辞書作成対象商品の撮影方向を指示する画像が表示される。撮影方向は、第3カウンタkの値によって決まる。本実施形態では、第3カウンタkが“0”のときには正面、“1”のときには裏面、“2”のときには左側面、“3”のときには右側面、“4”のときには上面、“5”のときには底面とする。
撮影方向指示画面を確認したオペレータは、撮影方向として指示された商品の面を読取窓1Bにかざす。そしてオペレータは、キーボード11またはタッチパネル12に設けられた撮影キーを入力する。
CPU101は、撮影キーが入力されるのを待機する(ST23)。撮影キーが入力されたならば(ST23にてYES)、CPU101は、撮像部14に対して撮像オン信号を出力する(ST24)。撮像部14は、撮像オン信号に応じて撮像領域を撮像する。これにより、オペレータが読取窓1Bにかざしている商品の面が撮像部14によって撮像される。CPU101は、撮像部14で撮像されたフレーム画像を取り込む。そしてCPU101は、上記撮影方向指示画面で指示した方向に該当する画像メモリ321,322,323,324,325または326に、上記フレーム画像を格納する(ST25:記憶手段42)。
しかる後、CPU101は、第3カウンタkを“1”だけカウントアップする(ST26)。そしてCPU101は、第3カウンタkが最大値“5”を超えたか否かを確認する(ST27)。第3カウンタkが最大値“5”を超えていない場合(ST27にてNO)、CPU101は、ステップST22の処理に戻る。すなわちCPU101は、第3カウンタkの値によって決まる撮影方向の指示画面をタッチパネル12に表示させる。そしてCPU101は、ステップST23〜ST27の処理を再度実行する。
こうして、第3カウンタkがカウントアップされる毎に、CPU101は、ステップST22〜ST27の処理を繰り返し実行する。そして、第3カウンタkが最大値“5”を超えたならば(ST27にてYES)、撮影処理が終了する。
かくして、辞書作成対象商品の正面を撮像したフレーム画像は正面画像メモリ324に格納され、裏面を撮像したフレーム画像は裏面画像メモリ325に格納され、左側面を撮像したフレーム画像は左側面画像メモリ326に格納され、右側面を撮像したフレーム画像は右側面画像メモリ327に格納され、上面を撮像したフレーム画像は上面画像メモリ328に格納され、底面を撮像したフレーム画像は底面画像メモリ329に格納される。
撮影処理が終了すると、CPU101は、第4カウンタrを“0”にリセットする(ST5)。そしてCPU101は、図14に具体的に示す正面画像処理を実行する(ST6)。
先ずCPU101は、第1カウンタiを“0”にリセットする(ST31)。次いでCPU101は、正面画像メモリ324に格納されているフレーム画像のデータを基準画像メモリ321に複写する(ST32)。しかる後、CPU101は、基準画像メモリ321のフレーム画像から当該画像に含まれる商品の特徴量データを抽出する(ST33)。この場合も、前記ステップST202の処理で説明したように、パッチ毎の特徴量データを抽出する。
基準画像メモリ321のフレーム画像から商品の特徴量データを抽出したならば、CPU101は、この抽出した特徴量データをバッファメモリ323の特徴量データi(iは第1カウンタiの値)に対応するエリアに格納する(ST34)。以上で、正面画像処理は終了する。したがって、バッファメモリ323の特徴量データ0に対応するエリアには、辞書作成対象商品の正面を撮像したフレーム画像から抽出される商品の特徴量データが格納される。
正面画像処理が終了すると、CPU101は、第4カウンタrを“1”だけカウントアップする(ST7)。そしてCPU101は、第4カウンタrが最大値“4”を超えたか否かを確認する(ST8)。第4カウンタrが最大値“4”を超えていない場合(ST8にてNO)、CPU101は、図15に具体的に示す加工画像処理を実行する(ST9)。
先ずCPU101は、第2カウンタjを“0”にリセットする(ST41)。次いでCPU101は、第2カウンタjを“1”だけカウントアップする(ST42)。そしてCPU101は、第2カウンタjがサンプル数nの1/2の値n/2を超えたか否かを確認する(ST43)。
第2カウンタjが値n/2を超えていない場合(ST43にてNO)、CPU101は、第1カウンタiを“1”だけカウントアップする(ST44)。またCPU101は、基準画像メモリ321内の画像を、r方向に角度jθ(jは第2カウンタjの値、θは回転角度)だけ回転させた画像に加工する(ST45:加工手段43)。
ここで、回転方向を示す“r”は、第4カウンタrの値であり、本実施形態では、第4カウンタrが“1”のときには右方向r1、“2”のときには左方向r2、“3”のときには前方向r3、“4”のときには後方向r4をそれぞれ回転方向とする。
具体的には、回転方向が右方向r1または左方向r2のときには、基準画像メモリ321と左側面画像メモリ326と右側面画像メモリ327とにそれぞれ格納されている辞書作成対象商品の正面、右側面及び左側面の各画像から、当該商品が正面から右方向r1または左方向r2に角度jθだけ回転した画像を、CPU101は作成する。回転方向が前方向r3または後方向r4のときには、基準画像メモリ321と上面画像メモリ328と下面画像メモリ326とにそれぞれ格納されている辞書作成対象商品の正面、上面及び底面の各画像とから、当該商品が正面から前方向r3または後方向r4に角度jθだけ回転した画像を、CPU101は作成する。
CPU101は、加工された画像を加工画像メモリ322に格納する。そしてCPU101は、加工画像メモリ322に格納された画像から、当該画像に含まれる商品の特徴量データを抽出する(ST46:抽出手段44)。そしてCPU101は、この抽出した特徴量データをバッファメモリ323の特徴量データi(iは第1カウンタiの値)に対応するエリアに格納する(ST47)。
ステップST47の処理を終了すると、CPU101は、ステップST42の処理に戻る。すなわちCPU101は、第2カウンタjをさらに“1”だけカウントアップする。そしてCPU101は、第2カウンタjが値n/2を超えたか否かを確認する(ST43)。
第2カウンタjが値n/2を超えるまで、CPU101は、ステップST44〜ST47の処理を繰り返し実行する。第2カウンタjが値n/2を超えたならば(ST43にてYES)、加工画像処理は終了する。
加工画像処理が終了すると、CPU101は、ステップST7の処理に戻る。すなわちCPU101は、第4カウンタrをさらに“1”だけカウントアップする。そしてCPU101は、第4カウンタrが最大値“4”を超えたか否かを確認する(ST8)。第4カウンタrが最大値“4”を超えるまで、CPU101は、ステップST9の加工画像処理を繰り返し実行する。
したがって、第4カウンタrが“1”のときには、正面画像から右方向r1に角度θ、2θ、3θ、…、(n/2)θずつ回転させた画像からそれぞれ抽出された商品の特徴量データが、バッファメモリ323の特徴量データ1〜n/2にそれぞれ対応するエリアに格納される。第4カウンタrが“2”のときには、正面画像から左方向r2に角度θ、2θ、3θ、…、(n/2)θずつ回転させた画像からそれぞれ抽出された商品の特徴量データが、バッファメモリ323の特徴量データ{(n/2)+1}〜nにそれぞれ対応するエリアに格納される。第4カウンタrが“3”のときには、正面画像から前方向r3に角度θ、2θ、3θ、…、(n/2)θずつ回転させた画像からそれぞれ抽出された商品の特徴量データが、バッファメモリ323の特徴量データ(n+1)〜(3/2)nにそれぞれ対応するエリアに格納される。第4カウンタrが“4”のときには、正面画像から後方向r4に角度θ、2θ、3θ、…、(n/2)θずつ回転させた画像からそれぞれ抽出された商品の特徴量データが、バッファメモリ323の特徴量データ{(3/2)n+1}〜2nにそれぞれ対応するエリアに格納される。
第4カウンタrが最大値“4”を超えたならば(ST8にてYES)、CPU101は、第4カウンタrを“0”にリセットする(ST10)。そしてCPU101は、図16に具体的に示す裏面画像処理を実行する(ST11)。
先ずCPU101は、第1カウンタiを“1”だけカウントアップする(ST51)。次いでCPU101は、裏面画像メモリ325に保存されているフレーム画像のデータを基準画像メモリ321に複写する(ST52)。しかる後、CPU101は、前記ステップST33の処理と同様にして、基準画像メモリ321のフレーム画像から当該画像に含まれる商品の特徴量データを抽出する(ST53)。そしてCPU101は、この抽出した特徴量データをバッファメモリ323の特徴量データi(iは第1カウンタiの値)に対応するエリアに格納する(ST54)。以上で、裏面画像処理は終了する。したがって、バッファメモリ323の特徴量データ(2n+1)に対応するエリアには、辞書作成対象商品の正面を撮像したフレーム画像から抽出される商品の特徴量データが格納される。
裏面画像処理が終了すると、CPU101は、第4カウンタrを“1”だけカウントアップする(ST12)。そしてCPU101は、第4カウンタrが最大値“4”を超えたか否かを確認する(ST13)。第4カウンタrが最大値“4”を超えていない場合(ST13にてNO)、CPU101は、加工画像処理を実行する(ST14)。このステップST14における加工画像処理は、図15を用いて説明したステップST10における画像加工処理と同一手順なので、ここでの説明は省略する。
加工画像処理が終了すると、CPU101は、ステップST12の処理に戻る。すなわちCPU101は、第4カウンタrをさらに“1”だけカウントアップする。そしてCPU101は、第4カウンタrが最大値“4”を超えたか否かを確認する(ST13)。第4カウンタrが最大値“4”を超えるまで、CPU101は、ステップST14の加工画像処理を繰り返し実行する。
したがって、第4カウンタrが“1”のときには、裏面画像から右方向r1に角度θ、2θ、3θ、…、(n/2)θずつ回転させた画像からそれぞれ抽出された商品の特徴量データが、バッファメモリ323の特徴量データ(2n+2)〜{(5/2)n+1}にそれぞれ対応するエリアに格納される。第4カウンタrが“2”のときには、裏面画像から左方向r2に角度θ、2θ、3θ、…、(n/2)θずつ回転させた画像からそれぞれ抽出された商品の特徴量データが、バッファメモリ323の特徴量データ{(5/2)n+2}〜(3n+1)にそれぞれ対応するエリアに格納される。第4カウンタrが“3”のときには、裏面画像から前方向r3に角度θ、2θ、3θ、…、(n/2)θずつ回転させた画像からそれぞれ抽出された商品の特徴量データが、バッファメモリ323の特徴量データ(3n+2)〜{(7/2)n+1}にそれぞれ対応するエリアに格納される。第4カウンタrが“4”のときには、裏面画像から後方向r4に角度θ、2θ、3θ、…、(n/2)θずつ回転させた画像からそれぞれ抽出された商品の特徴量データが、バッファメモリ323の特徴量データ{(7/2)n+2}〜(4n+1)にそれぞれ対応するエリアに格納される。
第4カウンタrが最大値“4”を超えたならば(ST13にてYES)、CPU101は、辞書更新処理を実行する(ST15)。すなわちCPU101は、ワークメモリに記憶された商品IDとバッファメモリ323に記憶された特徴量データ0〜N(N=4n+1)とを関連付ける。そしてCPU101は、この商品IDと特徴量データ0〜Nとを、接続インターフェース106を介して、POS端末205のHDD装置205に保存されている認識辞書ファイル8に追加登録する(データ登録手段45)。
この際、認識辞書ファイル8に同一商品IDのデータが既に登録されていた場合には、CPU101は、この既存のデータを削除した後、今回の商品IDと特徴量データ0〜Nとを認識辞書ファイル8に追加登録してもよい。あるいはCPU101は、既存のデータに今回の特徴量データ0〜Nを上書きしてもよい。
このように本実施形態においても、第1の実施形態と同様に、商品読取装置1を利用して、認識辞書ファイル8に未登録の新規商品の特徴量データを追加したり、認識辞書ファイル8に登録済の既存商品の特徴量データを更新したりすることができる。
この場合において、オペレータに要求される作業は、撮影方向指示画面の指示に従って辞書作成対象商品の各面を読取窓1Bにかざすだけである。あらゆる角度から商品が撮影されるように、かざした商品の向きを少しずつずらしていくような面倒な作業をオペレータが要求されることはない。したがって、予め物品を様々な角度から撮影した画像データが必要であった従来と比較して、認識辞書の作成に要する手間と時間が大幅に削減される。しかもオペレータは、単に辞書作成対象商品の各面を読取窓1Bにかざせばよいので、オペレータの習熟度に依存しない辞書作成が可能となる。
(第3の実施形態)
前記第1または第2の実施形態では、基準画像を回転角度θずつ回転させた全ての画像から商品の特徴量データを抽出して認識辞書ファイル8に反映させている。しかし、商品によっては、回転角度θだけずらしただけでは特徴量データが殆ど変わらないという場合もある。一般物体認識の技術において、認識辞書ファイル8に類似した特徴量データが複数存在することは、データ量の肥大化を招くだけでなく、認識率にばらつきを生じる懸念もある。
そこで第3の実施形態として、認識辞書の作成に要する手間と時間を削減できるだけでなく上記課題をも解決できる認識辞書作成装置を、図17及び図18を用いて説明する。なお、第3の実施形態は、第1の実施形態をさらに発展させたものであり、第1の実施形態と共通する部分には同一符号を付して、詳しい説明を省略する。
図17は、第3の実施形態において、商品読取装置1で認識辞書作成モードが選択された際に、同商品読取装置1のCPU101が実現する機能構成を示すブロック図である。第1の実施形態の同ブロック図である図4と比較すれば明らかなように、第3の実施形態では、CPU101は、前記角度受付手段41、記憶手段42、加工手段43、抽出手段44及びデータ登録手段45に加えて、判定手段47を実現する。
判定手段47は、抽出手段44で抽出された特徴量データが、他の特徴量データと類似しているか否かを判定する機能である。この機能は、認識辞書作成モードが選択されたときにCPU101が実行する情報処理手順(図7を参照)のなかのステップST108である加工画像処理において作用する。
第3の実施形態における加工画像処理の手順を、図18の流れ図で示す。図18において、ステップST301からステップST306までの手順は第1の実施形態と同一である。すなわちCPU101は、基準画像メモリ321内の画像を右方向に角度jθだけ回転させた画像を加工し(ST305:加工手段43)、この加工された画像から当該画像に含まれる商品の特徴量データを抽出する(ST306:抽出手段44)。
しかる後、CPU101は、抽出された特徴量データを、バッファメモリ323に既に格納されている特徴量データと個々に比較することで、特徴量データの類似度Sを算出する(ST401)。例えばCPU101は、特徴量データを構成するパラメータどうしを照合し、一致しているか若しくは近似しているパラメータの数の多少から類似度Sを算出する。そしてCPU101は、類似度が70%を超える特徴量データがバッファメモリ323に既に格納されている否かを判定する(ST402:判定手段47)。
類似度が70%を超える特徴量データがバッファメモリ323に1つも格納されていない場合(ST402にてNO)、CPU101は、抽出した特徴量データをバッファメモリ323の特徴量データi(iは第1カウンタiの値)に対応するエリアに格納する(ST307)。
これに対し、類似度が70%を超える特徴量データがバッファメモリ323に1つでも格納されていた場合には(ST402にてYES)、CPU101は、抽出した特徴量データをバッファメモリ323に格納せずに破棄する。
このように、判定手段47を備えた第3の実施形態によれば、同一商品の特徴量データとして、類似度が70%を超える2以上の特徴量データが認識辞書ファイル8に登録されることはない。したがって、認識辞書ファイル8に類似した特徴量データが複数存在することでデータ量の肥大化を招くのを未然に防ぐことができる。また、認識率のばらつきを低減できる効果も奏する。
なお、この第3の実施形態において、特徴量データを保存するか破棄するかのしきい値となる認識度を70%としたが、この値は特に限定されるものではない。おおよそ60%〜80%の範囲内であれば、上述したような効果は得られる。
また、第2の実施形態に判定手段47を設けることによって、同様な作用効果を奏することは言うまでもないことである。
(第4の実施形態)
前記第2の実施形態では、基準画像51をその画像中心を通る垂線52を回転軸として右方向r1と左方向r2とに所定角度で回転させた画像をそれぞれ加工し、さらに基準画像51をその画像中心を通る水平線53を回転軸として前方向r3と後方向r4とに所定角度で回転させた画像を加工して、加工された画像毎に、当該画像に含まれる商品の特徴量データを抽出している。しかし、例えば既に認識辞書ファイル8に特徴量データが登録されている商品の場合には、全ての回転方向のデータが必要であるとは限らない。また、商品によっては、正面を基準画像とし、この基準画像から加工される画像から得られる特徴量データは必要だが、裏面を基準画像とし、この基準画像から加工される画像から得られる特徴量データは必要ない場合も考えられる。
そこで第4の実施形態として、認識辞書の作成に要する手間と時間を削減できるだけでなく上記課題をも解決できる認識辞書作成装置を、図19乃至図22を用いて説明する。
なお、第2の実施形態と共通する部分には同一符号を付して、詳しい説明を省略する。
図19は、第4の実施形態において、商品読取装置1で認識辞書作成モードが選択された際に、同商品読取装置1のCPU101が実現する機能構成を示すブロック図である。第4の実施形態では、CPU101は、前記角度受付手段41、記憶手段42、加工手段43、抽出手段44及びデータ登録手段45に加えて、方向受付手段48を実現する。
また、第4の実施形態では、図20に示すデータ構造のフラグテーブル70を記憶部32に形成する。フラグテーブル70は、右方向r1、左方向r2、前方向r3及び後方向r4の回転方向別に、実行フラグf1〜f4を記憶する。実行フラグf1〜f4は、対応する回転方向の処理を実行するか否かを識別するもので、本実施形態では、“1”のとき実行、“0”のとき非実行とする。
方向受付手段48は、回転方向の選択を受け付ける機能である。この機能は、認識辞書作成プログラムの起動時に作用する。すなわち、認識辞書作成プログラムが起動すると、CPU101は、図21に示すように、方向受付画面をタッチパネル12に表示させる(ST71)。
方向受付画面には、右方向r1、左方向r2、前方向r3及び後方向r4のそれぞれに対してチェックボックスが表示されており、デフォルトとして実行状態を表わすチェックマークが入っている。オペレータは、全ての方向の特徴量データが必要な場合には、チェックボックスからチェックマークを外すことなく、実行キーを入力する。特徴量データが不要な方向が存在する場合には、その方向に対応したチェックボックスからチェックマークを外した後、実行キーを入力する。実行キーは、キーボード11またはタッチパネル12に設けられている。
CPU101は、実行キーの入力を待機する(ST72)。実行キーが入力されたならば、CPU101は、方向受付画面のチェックボックスを調べる。そしてCPU101は、チェックマークが入っている方向に対応した実行フラグf1〜f4を“1”とし、チェックマークが入っていない方向に対応した実行フラグf1〜f4を“0”とする。しかる後、CPU101は、図12のステップST1の処理に進む。
実行フラグf1〜f4は、加工画像処理において参照される。図22に示すように、加工画像処理に入ると、CPU101は先ず、実行フラグfr(rは第4カウンタrの値)をチェックする。そして、実行フラグfrが“1”にセットされていた場合には、CPU101は、図15のステップST41の処理に進む。
しかし、実行フラグfrが“0”にリセットされていた場合には、加工画像処理が終了する。すなわち、実行フラグfrが“0”にリセットされている方向については、加工画像処理が実行されない。
このように、方向受付手段48を備えた第4の実施形態によれば、認識辞書作成モードが選択されたときのCPU101の情報処理手順において、オペレータが不要と判断した方向の加工画像処理については省略することができる。したがって、情報処理時間の短縮を図ることができる。また、不要な特徴量データが認識辞書ファイル8に登録されることもないので、データ量の肥大化を防ぐ効果も奏し得る。
なお、この第4の実施形態において、方向受付画面は、上記の構成に限定されるものではない。要は、オペレータが所望の方向を選択できる画面構成であればよい。
また、第4の実施形態では、第2の実施形態の商品読取装置1に方向受付手段48を追加したが、第1または第3の実施形態の商品読取装置1に方向受付手段48を追加しても同様の効果を奏するのは言うまでもないことである。
なお、本発明は、前述した各実施形態に限定されるものではない。
例えば前記各実施形態は、POS端末2とは別体の商品読取装置1に認識辞書作成装置の機能を持たせたが、商品読取装置1がPOS端末2に組み込まれて一体となった装置に、認識辞書作成装置の機能を持たせてもよい。あるいは、デジタルカメラ等の撮像手段を接続してなるコンピュータ機器に、前記認識辞書作成プログラムをインストールすることによって、認識辞書作成装置の機能を持たせることも可能である。この場合、認識辞書ファイル8は、当該コンピュータ機器の内部記憶装置に保存されていてもよいし、当該コンピュータ機器にオンライン接続された外部機器の記憶装置に保存されていてもよい。
また前記各実施形態は、加工手段43において、画像を左、右、前、後の各方向に回転させたが、回転方向はこれに限定されるものではない。例えば斜め方向に回転した画像を加工してもよい。また、単に回転する画像を加工するだけでなく、色の補正を行うようにしてもよい。
また前記各実施形態は、装置内部のプログラム記憶部であるROM103に発明の機能を実現させる認識辞書作成プログラムが予め記録されているものとした。しかしこれに限らず、同様のプログラムがネットワークから装置にダウンロードされてもよい。あるいは、記録媒体に記録された同様のプログラムが、装置にインストールされてもよい。記録媒体は、CD−ROM,メモリカード等のようにプログラムを記憶でき、かつ装置が読み取り可能であれば、その形態は問わない。また、プログラムのインストールやダウンロードにより得る機能は、装置内部のOS(オペレーティング・システム)等と協働してその機能を実現させるものであってもよい。
この他、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。