以下では、スーパーマーケット等の店舗に導入されたチェックアウトシステムを例に、本実施形態に係る商品読取装置及びプログラムを、図面を参照して説明する。
[第1の実施形態]
図1は、第1の実施形態に係る商品読取装置10を含んだチェックアウトシステム1の一例を示す斜視図である。図1に示すように、チェックアウトシステム1は、商品読取装置10と、商品精算装置20とを有する。
商品読取装置10は、カウンタ台31の略中央に配置され、ハウジング11と、表示・操作部12とを備えている。ハウジング11は、矩形形状に形成されており、オペレータの操作側となる面の略中央に読取窓13が設けられている。読取窓13の奥側には、後述する撮像部54(図2参照)が設けられている。
表示・操作部12は、ハウジング11の上部に設けられている。表示・操作部12は、後述する表示・操作制御部75(図11参照)の制御の下、文字や画像等を表示するとともに、商品読取装置10を操作するオペレータの操作入力を受け付ける。表示・操作部12は、例えばタッチパネルディスプレイを用いて実現する。
カウンタ台31の上面には、荷受け面311が形成されている。荷受け面311には、購入の対象となった商品Gを収納する買物カゴ41が載置される。買物カゴ41は、顧客によって持ち込まれる第1の買物カゴ41aと、第1の買物カゴ41aから商品読取装置10を挟んだ位置に載置される第2の買物カゴ41bとに分けられる。なお、買物カゴ41は、いわゆるカゴ形状のものに限るものではなく、トレー状や箱状、袋状等であってもよい。
第1の買物カゴ41aには、一取引に係る商品Gが収納されている。第1の買物カゴ41a内の商品Gは、商品読取装置10を操作するオペレータにより第2の買物カゴ41bに移動される。この移動過程で、商品Gが商品読取装置10の読取窓13に提示される。このとき、読取窓13内の撮像部54(図2参照)は、ユーザー(以下、装置の操作者を含めてオペレータと称する)の手に把持された商品Gを撮像する。
商品読取装置10では、商品Gが撮像された画像を用いることで、二種類の商品登録動作を行う。第1の商品登録動作として、商品読取装置10は、撮像部54で撮像された商品Gの画像から、その商品Gに付されたバーコード等のコードシンボルを読み取り、このコードシンボルに含まれた商品情報としての商品コードを、商品精算装置20(POS端末21)に出力することで商品の登録を行う。ここで、商品コードは、店舗で販売される各商品を識別するための識別情報であって、商品の種別毎に固有の商品コードが予め割り当てられている。なお、本実施形態では、店舗内で販売される一部の商品にコードシンボルが付されているものとする。
第2の商品登録動作として、商品読取装置10は、撮像部54で撮像された時間的に連続する複数枚の画像から、商品Gを把持するオペレータの動作を検出し、検出した動作が予め定められた所定の動作パターンに相当する場合に、画像中の商品Gを画像認識することで候補の商品を表示・操作部12に提示する。そして、商品読取装置10は、オペレータにより選択された候補に対応する商品の商品コードを、商品精算装置20(POS端末21)に出力することで商品の登録を行う。ここで、候補の商品は、後述するように、その商品を文字や画像(写真、イラスト、アイコン等)で表した商品画像として表示・操作部12に表示される。
一方、商品精算装置20は、カウンタ台31とL字を形成するようにして配置されたチェックアウト台32上に設けられている。商品精算装置20は、POS端末21とドロワ22とを有し、POS端末21はドロワ22の上部に載置されている。ドロワ22は、紙幣及び硬貨を収納し、POS端末21によって開放動作の制御を受ける。
POS端末21の上面には、オペレータによって押下操作されるキーボード23が配置されている。キーボード23は、「1」、「2」、「3」…等の数字や「×」という乗算の演算子が上面に表示されているテンキー、仮締めキー、及び締めキー等(何れも図示せず)を含む。
キーボード23を操作するオペレータから見てキーボード23の奥側には、オペレータに向けて情報を表示する、タッチパネルディスプレイ等の表示・操作部24が設けられている。表示・操作部24よりもさらに奥側には、顧客用表示部25が回転自在に立設されている。顧客用表示部25は、その表示面に情報を表示する。なお、図1に示す顧客用表示部25は、表示面を図1中手前側に向けているが、表示面が図1中奥側に向くように顧客用表示部25を回転させることによって、顧客用表示部25は顧客に向けて情報を表示する。
POS端末21では、商品読取装置10から入力される商品コードに基づき、当該商品コードに対応する商品の商品分類、商品名、単価等の情報を、図示しない売上マスタファイル等に登録する。また、POS端末21では、一取引に係る各商品の単価や販売点数から、一取引分の合計金額を算出し、当該合計金額に基づいて精算を行う。
図2は、チェックアウトシステム1(商品読取装置10及び商品精算装置20)のハードウェア構成を模式的に示す図である。
商品読取装置10は、情報処理を実行する情報処理部としてのマイクロコンピュータ50を備える。マイクロコンピュータ50は、各種演算処理を実行し各部を制御するCPU(Central Processing Unit)51に、ROM(Read Only Memory)52とRAM(Random Access Memory)53とがバス接続されて構成されている。
CPU51は、ROM52や記憶部56に記憶されたプログラムを実行し、後述する機能部(図11参照)を実現する。ROM52は、CPU51によって実行される各種プログラムを記憶している。RAM53は、CPU51のワークエリアとして機能する。
また、CPU51には、上述した表示・操作部12の他、撮像部54、通信部55及び記憶部56が、各種の入出力回路(何れも図示せず)を介して接続されている。
撮像部54は、カラーCCDやカラーCOMS等のイメージセンサであり、CPU51の制御の下で読取窓13からの撮像を行う。例えば、撮像部54では30fpsで画像の撮像を行う。撮像部54の撮像方向は、読取窓13の前に提示される商品Gが、撮像範囲内に収まるよう調整されているものとする。
通信部55は、POS端末21の後述する第1通信部64に接続するための通信インターフェースであって、POS端末21との間で各種データの送受信を行う。
記憶部56は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶装置であって、CPU51によって実行される各種のプログラムやデータを記憶している。また、記憶部56は、後述する第1商品読取処理(図16参照)に係るデータとして、予め定められた動作パターンとその動作パターンに対応するコマンドとを関連付けた動作データベース561、バーコードが付されていない各商品の特徴を示した特徴情報とその商品の商品コードと商品画像とを関連付けた商品データベース562を記憶している。
図3は、動作データベース561のデータ構成の一例を模式的に示す図である。同図に示すように、動作データベース561には、予め定められた一又は複数の動作パターンが、その動作パターンを識別する識別番号と、動作パターンに対応するコマンドと関連付けて記憶されている。コマンド欄には、後述する画像認識の実行と該画像認識で候補となった商品の提示とを指示する「認識提示コマンド」が格納されている。また、「認識提示コマンド」には、商品読取装置10において、コードシンボルの読み取り時に行われる動作(以下、コードスキャン動作という)以外の、他の動作(以下、画像認識動作という)に相当する動作パターンが関連付けて登録されている。以下、図4〜図8を参照して、動作パターンについて説明する。
図4〜図8は、オペレータの動作例を模式的に示す図である。図1で説明したシステム構成の場合、コードスキャン動作は、例えば、図4に示すように商品読取装置10の読取窓13の前を、右から左に商品Gを通過させる動作が主となる。また、バーコードがうまく読めなかった場合には、図5に示すように商品読取装置10の読取窓13に商品Gを近づけるような動作が行われる。このような場合、「認識提示コマンド」には、図4や図5に示す動作以外の所定の動作パターンが関連付けられる。
図3の動作データベース561では、画像認識動作として、回転移動を表す動作パターンを識別番号1と関連付けて記憶している。この識別番号1の動作パターンは、図6に示すように、商品読取装置10の読取窓13の前で円を描くように商品Gが移動された場合に相当している。また、動作データベース561では、上下に振る(シェイク)動作を示す動作パターンを識別番号2と関連付けて記憶している。この識別番号2の動作パターンは、図7に示すように、商品読取装置10の読取窓13の前で、商品Gを上下(鉛直方向)に振る動作が行われた場合に相当している。さらに、動作データベース561では、回転を表す動作パターンを識別番号3と関連付けて記憶している。この識別番号3の動作パターンは、図8に示すように、商品読取装置10の読取窓13の前で、該読取窓13を含む面に直交する回転軸AXの周りに商品Gを回転させる動作が行われた場合に相当している。
「認識提示コマンド」には、コードスキャン動作との違いが判別しやすく、且つオペレータに過大な負荷をかけないものを、画像認識動作の動作パターンとして関連付けることが好ましい。図4や図5に示すコードスキャン動作は何れも軌跡が概ね水平な面上で描かれるような動作であるため、画像認識動作としては、図6、図7及び図8に示すように交差する動きを多く含むような動作であれば判別し易くなる。より具体的には、動き成分に鉛直方向の成分を含む動作である。なお、動作データベース561に登録する画像認識動作の動作パターンは、図3の例に限らず、任意の動作パターンを登録することが可能である。
図9は、商品データベース562のデータ構成の一例を模式的に示す図である。同図に示すように、商品データベース562には、店舗で販売される商品のうちバーコードが付されていない各商品の特徴を示した特徴情報と、その商品の商品コードと、商品画像とが関連付けて記憶されている。
ここで、特徴情報は、商品の形状や表面の色合い、模様等の商品を特徴付ける情報であって、商品の一部又は全体を撮像した画像や、後述する特徴ベクトル等を用いることができる。また、商品画像は、予め撮像された商品の画像や、商品を表すアイコン、商品名を示す文字列等である。
図2に戻り、商品精算装置20も、情報処理を実行する情報処理部としてのマイクロコンピュータ60を備えている。マイクロコンピュータ60は、CPU61に、ROM62とRAM63とがバス接続されて構成されている。
CPU61には、上述したドロワ22、キーボード23、表示・操作部24及び顧客用表示部25が、何れも各種の入出力回路(何れも図示せず)を介して接続されている。これらは、CPU61による制御を受ける。
また、CPU61には、第1通信部64、第2通信部65、プリンタ66及び記憶部67が接続されている。
第1通信部64は、商品読取装置10の通信部55との間でデータ送受信を可能にする通信インターフェースである。第2通信部65は、ストアコンピュータSCとの間でデータ送受信を可能にする通信インターフェースである。ここで、ストアコンピュータSCは、店舗のバックヤード等に設置されており、POS端末21に配信されるPLUファイル671を保持している。プリンタ66は、サーマルプリンタ等の印刷装置であって、CPU61の制御の下、一取引の取引内容をレシートに印字する。
記憶部67は、HDDやSSD等の記憶装置であって、CPU61が実行する各種プログラムや各種ファイルを記憶している。また、記憶部67は、ストアコンピュータSCから配信されるPLUファイル671を記憶している。PLUファイル671は、店舗で販売される商品の各々について、その商品の商品名や単価等を格納したファイルである。
図10は、PLUファイル671のデータ構成の一例を模式的に示す図である。図10に示すように、PLUファイル671には、商品毎に、その商品の商品コードと、商品が属する商品分類、商品名、単価等の商品に関する情報を商品情報として記憶している。CPU61は、商品読取装置10から商品コードが入力されると、この商品コードに対応する商品情報をPLUファイル671から読み出し、図示しない売上げマスタファイル等に登録する。
次に、商品読取装置10のCPU51が、プログラムを実行することで実現される各機能部について説明する。
図11は、商品読取装置10の機能構成を示す図である。同図に示すように、商品読取装置10のCPU51は、プログラムを実行することにより、画像取得部71と、コードシンボル読取部72と、動作判定部73と、画像認識部74と、表示・操作制御部75と、制御部76としての機能を備える。
画像取得部71は、撮像部54で撮像される画像をRAM53等に順次取得する。コードシンボル読取部72は、画像取得部71により取得された画像の中から、商品Gに付されたコードシンボルを読み取る。また、コードシンボル読取部72は、読み取ったコードシンボルをデコードすることで該コードシンボルに含まれた商品コードを取得し、取得した商品コードを制御部76に出力する。
動作判定部73は、画像取得部71により取得された時間的に連続する複数毎の画像から、商品Gを把持するオペレータの動作を検出する。ここで、検出の対象となる動作は、撮像部54の視野内における商品Gの一連の動きからなるものを指す。動作の検出方法としては、例えば、まず時間的に連続した2枚の画像の対応関係から、図12に示すようにオプティカルフロー81を導出し、導出したオプティカルフロー81の平均を求める等により、図13に示すように主要な動きベクトル82を取得する。
動作判定部73は、上記した動きベクトル82の検出を画像取得部71で新たな画像が取得される度に行い、得られた動きベクトル82を逐次的に連結することで動作の軌跡を求める。動作判定部73は、求めた軌跡と、動作データベース561に記憶された各動作パターンとを比較することで、何れかの動作パターンに相当するか否かを判定する。求めた動作の軌跡が、動作データベース561に記憶された何れかの動作パターンに相当する場合、動作判定部73は、この動作パターンに関連付けられたコマンド(本実施形態の場合、認識提示コマンド)を制御部76に出力する。なお、動作の検出は、公知の技術を用いることが可能であり、例えば下記の文献に記載された手法を用いて実現することができる。
Ross Cutler and Matthew Turk, “View-based interpretation of real-time optical flow for gesture recognition”, Proceedings of the Third IEEE International Conference on Automatic Face and Gesture Recognition, pp.416-421, 1998.
また、動作判定部73では、上述した動作の判定に加えて、判定に用いた一連の画像の中から、画像認識に好適な画像を選択し、上記コマンドとともに制御部76に出力する。これは、例えば、軌跡が撮像部54の視野の中央を通過した時点の画像を選択したり、軌跡の特定の部分に対応する画像を選択したりする等の方法により行う。選択される画像は1枚に限定されるものではなく、複数枚選択してもよい。また、図14に示すように、オプティカルフロー81の大きさが所定の閾値を超えた画像の範囲を、被写体領域83として抽出し、画像認識に好適な画像として、被写体領域83のみを切り出した部分画像を出力してもよい。
なお、上記ではオプティカルフローから2次元の軌跡を求める例を示したが、これに限らず、モーションステレオの手法を用いることにより、3次元空間中での被写体の動きを求めることもできる。以下、2枚の画像における点の対応関係から、撮像部54に対する被写体の相対的な動きを求める方法の概要について説明する。
3次元空間中の点とその画像面への投影像をそれぞれ斉次座標x、Xで表すと、撮像部54による投影の関係は投影行列Pを用いて下記式(1)で表わされる。
ここで、投影行列Pは、撮像部54の内部パラメータを表す3×3の上三角行列K、3×3の回転行列R、3次元の並行移動ベクトルtを用いて、下記式(2)で表すことができる。
ここで、Kは、具体的には下記式(3)のような行列で、fu、fvは焦点距離、u0、v0は光軸と画像面との交点(画像中心)の座標であり、これらのパラメータは予め求められているものとする。
今、2枚の画像が与えられた時、それぞれの投影行列P1、P2を下記式(4)、(5)のように定義する。但し、Iは3×3の単位行列、0は3次元のゼロベクトルである。
斉次座標Xで表わされる点の、2枚の画像上での斉次座標をx1、x2とすると、Xとx1、x2との間には投影行列P1、P2を用いて下記式(6)、(7)のような関係が成り立つ。
ここでz1、z2を下記式(8)、(9)のように定義すると、z1とz2との間には、下記式(10)の拘束条件が成り立つ。
ただし、上記式(10)においてEは、基本行列(essential matrix)と呼ばれるもので、回転行列Rと並行移動ベクトルtを用いて下記式(11)で表わされる。ここで、t1、t2、t3は並行移動ベクトルtの要素である。
オプティカルフローにより2枚の画像間での対応関係を求めると、一組の対応毎に上記式(10)の拘束条件式が得られる。こうして得られる多数の拘束条件を充足するような上記式(11)の基本行列Eを求め、この基本行列Eから回転行列Rと並行移動ベクトルtを求めることにより、撮像部54と被写体との相対的な動きを得ることができる。
従って、動作の判定は2次元の軌跡を用いるものに限定されるわけではなく、3次元空間中の軌跡や、被写体の回転角などを用いてもよい。なお、画像上での動きから被写体の3次元空間中での動きを求める手法としては、例えば下記の文献に記載された手法を用いることができる。下記文献に記載の手法を用いれば、最低5組の点の対応関係が分かれば撮像部54と被写体との間の相対的な動きを求めることができる。
David Nister, “An Efficient Solution to the Five-Point Relative Pose Problem”, IEEE Transaction on Pattern Analysis and Machine Intelligence, Vol.26, No. 6, June 2004, pp. 756-770.
図11に戻り、画像認識部74は、動作判定部73から制御部76を介して入力される画像に対して画像認識を行うことで、当該画像に含まれた商品Gの候補となる商品を候補として導出する。画像認識処理については、例えば下記の文献に記載された手法を用いることができるが、これに限定されるものではなく、他の画像認識技術を用いてもよい。以下では、下記文献に記載された手法を用いて画像認識を行う際の手順について説明する。
中居友弘,伊藤聡,柴田智行,窪田進, “共起特徴とk近傍法による追加学習型オブジェクト認識システム”, 画像の認識・理解シンポジウム(MIRU2011),pp.1701-1702, 2011.
まず、画像認識部74は、図15のように画像を複数のブロックBLに分割し、当該ブロックBL分の部分画像の特徴を表した特徴ベクトルをブロックBL毎に導出する。ここで、特徴ベクトルの導出は、例えば下記の文献に記載された手法を用いることができる。
Satoshi Ito and Susumu Kubota, “Object classification using heterogeneous co-occurrence features”, Proceedings of the 11th European Conference of Computer Vision, vol.2, pp.209-222, 2010.
次に、画像認識部74は、導出した特徴ベクトルの各々に対して、k近傍法により、その特徴ベクトルに最も近いk個の学習サンプルを商品データベース562の中から検索する。この場合、学習サンプルは、商品データベース562に登録された各商品の特徴ベクトル(特徴情報)となる。全てのブロックBLに対してそれぞれk個の学習サンプルが求まるので、例えばブロックBLがN個ある場合はkN個の学習サンプルが得られる。そこで、画像認識部74は、kN個の学習サンプルを商品名毎に集計し、kNで割ることで正規化した値を類似度として用いる。そして、画像認識部74は、求めた類似度が所定の閾値を上回った学習サンプルの商品を候補とし、その商品の商品コードを制御部76に出力する。
表示・操作制御部75は、制御部76の制御に従い、表示・操作部12の表示画面に文字や画像等を表示させるとともに、表示・操作部12のタッチパネルに対して操作された操作内容を制御部76に出力する。
具体的に、表示・操作制御部75は、制御部76から入力される商品画像を、選択可能に表示・操作部12に表示させる。また、表示・操作制御部75は、表示・操作部12に表示させた商品画像のうち、何れかの商品画像を選択する操作を受け付けると、その選択された商品画像を指示する情報を制御部76に出力する。
制御部76は、商品読取装置10の各機能部の動作を統括的に制御する。制御部76は、コードシンボル読取部72からコードシンボルの読み取り成功を示す情報として、商品コードの入力を受け付けると、他の処理の進行の如何に関わらず、入力された商品コードを優先してPOS端末21に出力することで、その商品コードに対応する商品の登録を行う。なお、制御部76は、コードシンボル読取部72から商品コードが入力された際に、動作判定部73や画像認識部74で処理が実行中の場合には、それらの処理をキャンセルすることで、画像認識部74から商品コードが重複して入力されることを抑制する。
また、制御部76は、動作判定部73からオペレータ動作の判定結果として、コマンド及び画像の入力を受け付けた場合、このコマンドで指示された内容に従い、画像認識部74及び表示・操作制御部75を制御することで、候補となった商品の商品画像を表示・操作部12に提示する。
具体的に、制御部76は、動作判定部73から受け付けた画像を画像認識部74に出力することで、該画像認識部74に画像認識を行わせる。画像認識部74において画像認識が成功し、候補として一又は複数の商品の商品コードが入力されると、制御部76は、入力された商品コードの各々に関連付けられた商品画像を商品データベース562から読み出し、表示・操作制御部75に出力することで、表示・操作部12に表示させる。そして、制御部76は、表示・操作制御部75を介して、商品画像の選択を受け付けると、この選択された商品画像に対応する商品の商品コードをPOS端末21に出力することで、商品の登録を行う。
次に、商品読取装置10での商品読取動作について説明する。ここで、図16は、商品読取装置10が実行する商品読取処理(第1商品読取処理)の手順を示すフローチャートである。
まず、表示・操作部12又はPOS端末21から、一取引に係る商品登録の開始が指示されると、制御部76は、撮像部54に撮像オン信号を出力することで撮像を開始させる(ステップS11)。続いて、制御部76は、コードシンボル読取部72を動作させることでコードシンボルの読み取り処理を開始させるとともに(ステップS12)、動作判定部73を動作させることでオペレータ動作の判定処理を開始させる(ステップS15)。
ここで、オペレータの動作により商品Gが読取窓13に提示されると、コードシンボル読取部72は、画像取得部71により順次取得される画像からコードシンボルの読み取りを試みる(ステップS13;No)。コードシンボルが読み取れた場合(ステップS13;Yes)、コードシンボル読取部72は、読み取ったコードシンボルをデコードし、当該コードシンボルに含まれた商品コードを制御部76に出力する。
制御部76では、コードシンボル読取部72から商品コードが入力されると、並列動作中の後述するステップS16〜S19の他の処理をキャンセルし(ステップS14)、入力された商品コードをPOS端末21に出力することで、商品の登録を行う(ステップS20)。なお、制御部76は、ステップS16〜S19の処理をキャンセルした後、動作判定部73を後述するステップS16の処理に再び戻す。
一方、動作判定部73では、画像取得部71により時間的に連続する複数枚の画像が順次取得されると、これら複数枚の画像からオペレータの動作を順次検出し、動作データベース561に登録された何れかの動作パターンに相当する動作を検出するまで待機する(ステップS16;No)。何れかの動作パターンに相当する動作を検出したと判定すると(ステップS16;Yes)、動作判定部73は、その動作パターンに関連付けられたコマンドと、この判定に用いた一又は複数の画像とを制御部76に出力する。
制御部76では、動作判定部73からコマンド及び画像の入力を受け付けると、このコマンド内容に従い、入力された画像を画像認識部74に出力することで、画像認識部74に画像認識処理を実行させる(ステップS17)。
ここで、図17は、ステップS17の画像認識処理の手順を示すフローチャートである。まず、画像認識部74は、制御部76から入力された画像を画像認識し、当該画像に含まれた商品Gの特徴情報と、商品データベース562に登録された各商品の特徴情報とを比較することで、当該商品に対する類似度をそれぞれ算出する(ステップS171)。
次いで、画像認識部74は、ステップS171で算出した各商品との類似度のうち、所定の閾値を上回る商品が存在するか否かを判定する(ステップS172)。ここで、算出した類似度が何れも閾値以下の場合、画像認識部74は認識失敗と判定し(ステップS172;No)、図16のステップS16に再び戻る。また、ステップS171で算出した各商品との類似度の中に、所定の閾値を上回る商品が存在する場合、画像認識部74は認識成功と判定し(ステップS172;Yes)、該当する商品の商品コードを候補として制御部76に出力した後(ステップS173)、図16のステップS18に移行する。
図16に戻り、制御部76は、ステップS17の画像認識処理で画像認識部74から出力された商品コードを受け付けると、該商品コードの各々に対応する商品画像を商品データベース562から読み出し、表示・操作制御部75に出力することで、表示・操作部12に商品画像を表示(提示)させる(ステップS18)。
ここで、図18は、表示・操作部12に表示された商品画像の一例を示す図である。同図において、領域A11は、撮像部54で撮像された画像を表示するための表示領域であって、制御部76の制御の下、撮像部54で撮像中の画像や、動作判定部73から入力された画像等が表示される。また、領域A12は、候補となった各商品の商品画像を表示するための表示領域である。同図では6つの商品画像G11〜G16を表示した例を示している。
図16に戻り、表示・操作制御部75では、表示・操作部12に表示された商品画像から、何れか一の商品画像が選択されるまで待機し(ステップS19;No)、特定の商品画像が選択されると(ステップS19;Yes)、この選択された商品画像を指示する情報を制御部76に出力する。
制御部76は、表示・操作制御部75から特定の商品画像が指示されると、指示された商品画像に対応する商品コードを商品データベース562から読み出し、その商品コードをPOS端末21に出力することで、商品の登録を行う(ステップS20)。なお、オペレータは商品画像を選択せずにキャンセルを行うこともでき、その場合は商品登録を行わずにステップS16に再び戻る。
続いて、制御部76は、表示・操作部12又はPOS端末21から、一取引に係る商品登録の終了が指示されたか否かを判定する(ステップS21)。ここで、商品登録の終了が指示されない場合(ステップS21;No)、制御部76は、コードシンボル読取部72及び動作判定部73に係る処理を、ステップS13、ステップS16にそれぞれ戻すことで、次の商品の読み取りに備える。
また、ステップS21において、商品登録の終了が指示された場合には(ステップS21;Yes)、制御部76は、撮像部54に撮像オフ信号を出力することで撮像部54による撮像を停止し(ステップS22)、本処理を終了する。
以上のように、本実施形態の商品読取装置10によれば、商品を把持するオペレータが所定の動作パターンで動作したことをトリガに、商品の画像認識を開始する。これにより、オペレータが意図したタイミングで画像認識を行うことができるため、認識効率を向上させることが可能となり、商品読取時の効率及び利便性を向上させることができる。
また、コードスキャン動作以外の画像認識動作を、画像認識及び候補の提示を指示する動作パターンとしたことで、コードスキャン動作が行われた際に、該商品の候補が表示・操作部12に表示されてしまうことを抑制することができる。これにより、例えば、コードシンボルが付された商品と、コードシンボルが付されていない商品とが混合して販売される店舗において、コードスキャン動作が行われた場合に、候補が誤って選択される等のミスの発生を未然に防ぐことができるため、商品読取時の効率及び利便性を向上させることができる。
なお、本実施形態では、動作判定部73からコマンド及び画像が入力された時点で、画像認識部74を動作させる形態としたが、これに限らず、動作判定部73で動作の検出が開始された時点で、画像認識部74を動作させる形態としてもよい。
具体的には、動作判定部73においてオペレータ動作の検出が開始されると、制御部76は、画像取得部71で取得された画像を画像認識部74に出力することで画像認識を開始させ、動作判定部73で動作パターンに相当するとの判定が行われた場合に、画像取得部71で得られた候補の商品画像を表示・操作部12に表示させる。これにより、動作判定部73での判定結果を待たずに画像認識部74を動作させることができるため、候補となった各商品の商品画像をより迅速に表示させることが可能となる。
[第2の実施形態]
次に、第2の実施形態の商品読取装置について説明する。第2の実施形態では、画像認識動作の検出に加えてコードスキャン動作を検出し、その動作に応じて候補の提示方法を異ならせる形態について説明する。なお、第1の実施形態と同様の部材については、同一の符号を付与し説明を省略する。
図19は、第2の実施形態に係る商品読取装置10aのハードウェア構成を模式的に示す図である。商品読取装置10aは、情報処理を実行する情報処理部としてのマイクロコンピュータ50として、CPU51と、ROM52と、RAM53とを備えている。また、CPU51には、表示・操作部12、撮像部54、通信部55及び記憶部56aが、各種の入出力回路(何れも図示せず)を介して接続されている。
記憶部56aは、上述した記憶部56と同様の記憶装置であって、CPU51によって実行される各種のプログラムやデータを記憶している。また、記憶部56aは、後述する第2商品読取処理(図22参照)に係るデータとして、予め定められた動作パターンとその動作パターンに対応するコマンドとを関連付けた動作データベース561aと、商品データベース562とを記憶している。
図20は、動作データベース561aのデータ構成の一例を模式的に示す図である。同図に示すように、動作データベース561aには、予め定められた一又は複数の動作パターンが、その動作パターンを識別する識別番号と、動作パターンに対応するコマンドと関連付けて記憶されている。ここで、動作データベース561aでは、コマンド欄に格納されるコマンドとして、上述した「認識提示コマンド」に加え、画像認識の実行を指示する「認識コマンド」を有する点が、図3で説明した動作データベース561と異なっている。
ここで、「認識コマンド」は、商品読取装置10aでのコードシンボル読取動作に相当する動作パターンと関連付けて登録されている。図1で説明したシステム構成の場合、例えば、図4に示した商品読取装置10の読取窓13の前を右から左に商品Gを通過させる動作や、図5に示した商品読取装置10の読取窓13に商品Gを近づけるような動作が、コードシンボル読取動作となる。そこで、図20に示す動作データベース561aでは、図4に示したコードシンボル読取動作に相当する動作パターンを、識別番号11と関連付けて記憶している。また、図5に示したコードシンボル読取動作に相当する動作パターンを、識別番号12と関連付けて記憶している。なお、動作データベース561aに登録する画像認識動作の動作パターンは、図20の例に限らず、任意の動作パターンを登録することが可能である。
次に、商品読取装置10aのCPU51が、プログラムを実行することで実現される各機能部について説明する。図21は、本実施形態に係る商品読取装置10aの機能構成を示す図である。同図に示すように、商品読取装置10aのCPU51は、プログラムを実行することにより、画像取得部71と、コードシンボル読取部72と、動作判定部73と、画像認識部74と、表示・操作制御部75と、制御部76aとしての機能を備える。
制御部76aは、第1の実施形態の制御部76に対応し、商品読取装置10aの各機能部の動作を統括的に制御する。制御部76aは、コードシンボル読取部72からコードシンボルの読み取り成功を示す情報として、商品コードの入力を受け付けると、他の処理の進行の如何に関わらず、入力された商品コードを優先してPOS端末21に出力することで、その商品コードに対応する商品の登録を行う。なお、制御部76aは、コードシンボル読取部72から商品コードが入力された際に、動作判定部73や画像認識部74で処理が実行中の場合には、それらの処理をキャンセルすることで、画像認識部74から商品コードが重複して入力されることを抑制する。
また、制御部76aは、動作判定部73からオペレータの動作の判定結果として、コマンド及び画像の入力を受け付けた場合、このコマンドで指示された内容に従い、画像認識部74及び表示・操作制御部75を制御することで、候補となった商品の商品画像を表示・操作部12に提示する。
具体的に、制御部76aは、動作判定部73から認識提示コマンドが入力された場合、動作判定部73から受け付けた画像を画像認識部74に出力することで、該画像認識部74に画像認識を行わせる。画像認識部74において画像認識が成功し、候補として一又は複数の商品が入力されると、制御部76aは、入力された商品コードの各々に関連付けられた商品画像を商品データベース562から読み出し、表示・操作制御部75に出力することで、表示・操作部12に表示させる。そして、制御部76aは、表示・操作制御部75を介して、商品画像の選択を受け付けると、この選択された商品画像に対応する商品の商品コードをPOS端末21に出力することで、商品の登録を行う。
また、制御部76aは、動作判定部73から認識コマンドが入力された場合、動作判定部73から受け付けた画像を画像認識部74に出力することで、該画像認識部74に画像認識を行わせる。画像認識部74において画像認識が成功し、候補として一又は複数の商品が入力されると、制御部76aは、入力された商品コードをRAM53等に保持し、表示・操作制御部75を制御することで、候補の提示を行うか否かを確認するための画像を表示・操作部12に表示させる。制御部76aは、表示・操作制御部75を介して、候補の提示指示を受け付けると、保持しておいた商品コードの各々に関連付けられた商品画像を商品データベース562から読み出し、表示・操作制御部75に出力することで、表示・操作部12に表示させる。そして、制御部76aは、表示・操作制御部75を介して、商品画像の選択を受け付けると、この選択された商品画像に対応する商品の商品コードをPOS端末21に出力することで、商品の登録を行う。
次に、商品読取装置10aでの商品読取動作について説明する。ここで、図22は、商品読取装置10aが実行する商品読取処理(第2商品読取処理)の手順を示すフローチャートである。
まず、表示・操作部12又はPOS端末21から、一取引に係る商品登録の開始が指示されると、制御部76aは、撮像部54に撮像オン信号を出力することで撮像を開始させる(ステップS31)。続いて、制御部76aは、コードシンボル読取部72を動作させることでコードシンボルの読み取り処理を開始させるとともに(ステップS32)、動作判定部73を動作させることでオペレータ動作の判定処理を開始させる(ステップS35)。
ここで、オペレータの動作により商品Gが読取窓13に提示されると、コードシンボル読取部72は、画像取得部71により順次取得される画像からコードシンボルの読み取りを試みる(ステップS33;No)。コードシンボルが読み取れた場合(ステップS33;Yes)、コードシンボル読取部72は、読み取ったコードシンボルをデコードし、当該コードシンボルに含まれた商品コードを制御部76aに出力する。
制御部76aでは、コードシンボル読取部72から商品コードが入力されると、並列動作中の後述するステップS36〜S43の他の処理をキャンセルし(ステップS34)、入力された商品コードをPOS端末21に出力することで、商品の登録を行う(ステップS44)。なお、制御部76aは、ステップS36〜S43の処理をキャンセルした後、動作判定部73を後述するステップS36の処理に再び戻す。
一方、動作判定部73では、画像取得部71により時間的に連続する複数枚の画像が順次取得されると、これら複数枚の画像からオペレータの動作を順次検出し、動作データベース561aに登録された何れかの動作パターンに相当する動作を検出するまで待機する(ステップS36;No)。何れかの動作パターンに相当する動作を検出したと判定すると(ステップS36;Yes)、動作判定部73は、その動作パターンに関連付けられたコマンドと、この判定に用いた一又は複数の画像とを制御部76aに出力する。
制御部76aでは、動作判定部73からコマンド及び画像の入力を受け付けると、このコマンドが認識提示コマンドか認識コマンドかを判別する(ステップS37)。ここで、入力されたコマンドが認識提示コマンドであった場合(ステップS37;Yes)、制御部76aは、このコマンド内容に従い、入力された画像を画像認識部74に出力することで、画像認識部74に画像認識処理を実行させる(ステップS38)。なお、ステップS38の画像認識処理は、図17で説明した画像認識処理と同様であるため説明を省略する。
制御部76aは、ステップS38の画像認識処理で画像認識部74から出力された商品コードを受け付けると、該商品コードの各々に対応する商品画像を商品データベース562から読み出し、表示・操作制御部75に出力することで、表示・操作部12に商品画像を表示(提示)させる(ステップS42)。
一方、ステップS37において、動作判定部73から入力されたコマンドが認識コマンドであった場合(ステップS37;No)、制御部76aは、このコマンド内容に従い、入力された画像を画像認識部74に出力することで、画像認識部74に画像認識処理を実行させる(ステップS39)。なお、ステップS39の画像認識処理は、図17で説明した画像認識処理と同様であるため説明を省略する。
制御部76aは、ステップS39の画像認識処理で画像認識部74から出力された商品コードを受け付けると、該商品コードをRAM53等に保持し、表示・操作制御部75を制御することで、候補の提示を行うか否かを確認するための確認画像を表示・操作部12に表示させる(ステップS40)。
ここで、図23は、表示・操作部12に表示された確認画像の一例を示す図である。同図において、領域A11は、上述した撮像部54で撮像された画像を表示するための表示領域であって、制御部76aの制御の下、撮像部54で撮像中の画像が表示される。また、領域A13には、候補の提示を行うか否かを確認するための確認画像が表示される領域であって、確認を促すメッセージとともに候補の提示を指示するためのボタンB11が表示される。なお、図23では、ボタンB11が選択された場合に、候補の提示が指示されたものとする。
図22に戻り、表示・操作制御部75では、表示・操作部12から候補の提示が指示されるまで待機し(ステップS41;No)、候補の提示が指示されると(ステップS41;Yes)、表示・操作制御部75は、候補の提示を指示する情報を制御部76aに出力する。制御部76aは、表示・操作制御部75から候補の提示が指示されると、ステップS42に移行し、保持しておいた商品コードの各々に関連付けられた商品画像を商品データベース562から読み出し、表示・操作制御部75に出力することで、表示・操作部12に表示させる(ステップS42)。
続いて、表示・操作制御部75では、表示・操作部12に表示された商品画像から、何れか一の商品画像が選択されるまで待機し(ステップS43;No)、特定の商品画像が選択されると(ステップS43;Yes)、この選択された商品画像を指示する情報を制御部76aに出力する。
制御部76aは、表示・操作制御部75から特定の商品画像が指示されると、指示された商品画像に対応する商品コードを商品データベース562から読み出し、その商品コードをPOS端末21に出力することで、商品の登録を行う(ステップS44)。なお、オペレータは商品画像を選択せずにキャンセルを行うこともでき、その場合は商品登録を行わずにステップS36に再び戻る。
続いて、制御部76aは、表示・操作部12又はPOS端末21から、一取引に係る商品登録の終了が指示されたか否かを判定する(ステップS45)。ここで、商品登録の終了が指示されない場合(ステップS45;No)、制御部76は、コードシンボル読取部72及び動作判定部73に係る処理を、ステップS33、ステップS36にそれぞれ戻すことで、次の商品の読み取りに備える。
また、ステップS45において、商品登録の終了が指示された場合には(ステップS45;Yes)、制御部76aは、撮像部54に撮像オフ信号を出力することで撮像部54による撮像を停止し(ステップS46)、本処理を終了する。
以上のように、本実施形態の商品読取装置10aによれば、商品を把持するオペレータが所定の動作パターンで動作したことをトリガに、商品の画像認識を開始する。これにより、オペレータが意図したタイミングで画像認識を行うことができるため、認識効率を向上させることが可能となり、商品読取時の効率及び利便性を向上させることができる。
また、画像認識動作時には、候補の提示を直ちに行い、コードスキャン動作時には、候補の提示をオペレータからの指示に応じて行う。これにより、商品に付されたコードシンボルを読取窓13に提示するコードスキャン動作が行われた際には、該商品の候補の表示・操作部12への表示を抑制できるため、候補が誤って選択される等のミスの発生を未然に防ぐことができる。また、オペレータからの要求に応じて候補を提示することで、コードシンボルの読み取りが不調のとき等に補助的に用いることができるため、商品読取時の効率及び利便性を向上させることができる。
以上、本発明の実施形態を説明したが、上記実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、追加等を行うことができる。また、上記実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
上記実施形態では、単一の撮像部54で撮像された画像を用いて、コードシンボル読取部72でのコードシンボル読み取りと、動作判定部73でのオペレータ動作の検出とを行う形態としたが、これに限らないものとする。例えば、コードシンボル読取部72及び動作判定部73の各々に対し専用の撮像部54を設け、これら撮像部54の各々で撮像された画像を用いて、コードシンボル読み取りとオペレータの動作の検出とを行う形態としてもよい。なお、この場合、各撮像部54の撮像範囲は、読取窓13の前に商品Gが提示される位置において重なるよう調整されていることが好ましい。以下、複数の撮像部54を用いる場合の一例として、二台の撮像部54を用いる構成例について説明する。
図24は、撮像部54を二台構成とした例を説明するための図であり、商品読取装置10(或いは10a)の読取窓13部分での断面を模式的に示している。同図に示すように、商品読取装置10の読取窓13内には、二台の撮像部54(54a、54b)が設けられている。
この例では、撮像部54aは、コードシンボル読取部72でのコードシンボル読み取りに用いる画像を撮像し、撮像部54bは、動作判定部73でのオペレータ動作の検出に用いる画像を撮像することを想定している。
ここで、撮像部54aの撮像方向は、読取窓13の前に提示される商品Gが、撮像範囲A21内に収まるよう調整されている。また、撮像部54bの撮像方向は、読取窓13の前に提示される商品Gが、撮像範囲A22内に収まるよう調整されている。さらに、撮像部54aの撮像範囲A21と、撮像部54bの撮像範囲A22とは、読取窓13の前に商品Gが提示される位置において、一部又は全てが重なるよう調整されているものとする。
このように、撮像部54a、54bの撮像範囲を商品Gが提示される位置において重複するよう構成することで、上記実施形態の作用・効果を効率的に享受することができる。なお、コードシンボルの読み取り用にレーザスキャナ等のスキャナ装置を用いる構成としてもよいが、この場合においても、商品Gが提示される位置において、該スキャナ装置のスキャン範囲と撮像部54の撮像範囲とが重なるよう調整することが好ましい。
また、上記実施形態では、動作データベース561及び商品データベース562を、商品読取装置10が備える形態としたが、これに限らず、POS端末21や他の装置が保持する動作データベース561及び商品データベース562を、商品読取装置10が参照する形態としてもよい。
また、上記実施形態では、商品読取装置10と商品精算装置20との2台構成としたが、これに限らず、商品読取装置10及び商品精算装置20の機能を備えた1台構成の装置(例えば、セルフレジ等)としてもよい。
また、上記実施形態の商品読取装置10(10a)で実行されるプログラムは、商品読取装置10(10a)が備える記憶媒体(ROM52又は記憶部56(56a))に予め組み込んで提供するものとするが、これに限らず、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。さらに、記憶媒体は、コンピュータ或いは組み込みシステムと独立した媒体に限らず、LANやインターネット等により伝達されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
また、上記実施形態の商品読取装置10(10a)で実行されるプログラムをインターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよく、インターネット等のネットワーク経由で提供又は配布するように構成してもよい。