(57)【要約】【課題】  類似する画像を探索する画像探索処理を高速かつ高精度にできる画像探索装置および画像探索プログラムを提供する。【解決手段】  実施形態によれば、画像探索装置は、画像取得部とプロセッサとを有する。画像取得部は、入力画像を取得する。プロセッサは、前記入力画像から抽出する特徴点と辞書が記憶する各物体の画像の特徴点とを対応づけた複数の特徴点対を抽出し、前記複数の特徴点対のスケール比と方向の差の分布に基づく尤度に応じて確率的に選定する特徴点対により変換行列の候補を計算し、計算した変換行列の候補から座標変換行列を決定し、前記座標変換行列による前記抽出した各特徴点対に対する座標変換の結果に基づいて入力画像と前記辞書が記憶する各物体の画像との類似度を計算し、最大の類似度となる物体の画像を特定する。【選択図】図２
2018124798.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を取得する画像取得部と、
前記入力画像から抽出する特徴点と辞書が記憶する各物体の画像の特徴点とを対応づけた複数の特徴点対を抽出し、
前記複数の特徴点対のスケール比と方向の差の分布に基づく尤度に応じて確率的に選定する特徴点対により変換行列の候補を計算し、計算した変換行列の候補から座標変換行列を決定し、
前記座標変換行列による前記抽出した各特徴点対に対する座標変換の結果に基づいて入力画像と前記辞書が記憶する各物体の画像との類似度を計算し、最大の類似度となる物体の画像を特定する、プロセッサと、
を有する画像探索装置。
【請求項２】
前記プロセッサは、前記候補として計算した各変換行列を用いて座標変換を実行し、変換誤差が所定値未満の個数が多い候補を座標変換行列として決定する、
請求項１に記載の画像探索装置。
【請求項３】
前記プロセッサは、選ばれる確率が前記尤度に比例し、かつ、ランダムによるように選出した特徴点対により変換行列の候補を計算する、
請求項１又は２の何れか１項に記載の画像探索装置。
【請求項４】
前記入力画像は商品を含む領域を撮影した画像から切出した入力商品画像であり、前記辞書は認識対象となる全種類の商品の画像に対する特徴点の情報を記憶し、
前記プロセッサは、前記入力商品画像と前記辞書が記憶する商品の画像との類似度が最大となる商品を特定する、
請求項１乃至３の何れか１項に記載の画像探索装置。
【請求項５】
コンピュータに、
入力画像を取得する処理と、
前記入力画像から抽出する特徴点と辞書が記憶する各物体の画像の特徴点とを対応づけた複数の特徴点対を抽出する処理と、
前記複数の特徴点対のスケール比と方向の差の分布に基づく尤度に応じて確率的に選定する特徴点対により変換行列の候補を計算し、計算した変換行列の候補から座標変換行列を決定する処理と、
前記座標変換行列による前記抽出した各特徴点対に対する座標変換の結果に基づいて入力画像と前記辞書が記憶する各物体の画像との類似度を計算し、最大の類似度となる物体の画像を特定する処理と、
を実行させるための画像探索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像探索装置および画像探索プログラムに関する。
【背景技術】
【０００２】
従来、入力画像と同じ画像（同一種の画像）をデータベースから検索する処理を用いた画像認識技術には、一般物体認識（カテゴリー認識）と特定物体認識とがある。カテゴリー認識は、主に動物や植物などのように個体ごとの画像パターンや形状のばらつきがある物体を認識対象とする画像認識技術である。特定物体認識は、個体差がほとんど無い物体を認識対象とする画像認識技術である。例えば、特定物体認識は、商品のパッケージの画像から品種を認識する技術として適用される。
【０００３】
特定物体認識は、認識対象となる全種類の物体の画像情報及び特徴情報を記憶した辞書を用意する。特定物体認識は、物体を撮影した画像と辞書に登録されている各物体の画像との類似度に基づいて最も類似する画像を検索し、撮影した物体の種類を特定する。特定物体認識では、類似度の計算として、画像における局所特徴点を比較する特徴点比較方式が用いられることがある。特徴点比較方式では、入力画像から抽出する特徴点と辞書に登録されている各画像の特徴点との対（候補対）を選出し、候補対の類似度を判定する。特徴点比較方式は、画像の一部である特徴点の情報を用いて画像の類似度を判定するため、パタンマッチングなどの画像全体を比較する方式に比べて計算量が小さい。
【０００４】
しかしながら、特徴点比較方式では、正しい特徴点の対を選定するため、特徴点の候補対を試行錯誤の繰り返しで選定する必要がある。例えば、特徴点比較方式としては、従来、以下のような２つ方式が考えられている。  
第１の従来方式は、候補対の１番目と２番目の距離比を用いて特徴量の近い特徴点が候補対に入ることを除く方法がある。しかし、第１の従来方式では、対応する特徴点の少ない画像だと距離比の閾値が上がってしまい、誤候補対を除く効果がなくなるという問題点がある。  
第２の従来方式は、候補となる特徴点対のオリエンテーションの差とスケール比との分布のピークにより特徴点対を選定し、入力画像と辞書画像との座標変換行列を推定する。しかし、第２の従来方式では、特徴点のオリエンテーションやスケールが位置座標と比べて精度が低く、座標変換行列の推定値に大きな誤差が生じるという問題がある。
【０００５】
また、商品認識装置は、多数（例えば数千〜数万）の商品画像との比較を短時間（例えば１秒程度）で行う必要があり、判定精度も高精度（例えば９５％程度以上）が要求される。従って、商品認識装置などに用いる画像探索処理（画像認識処理）は、従来方式よりも高速化および高精度化が要求される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１４０６１３号公報
【特許文献２】特開２０１１−８５０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記した課題を解決するために、類似する画像を探索する画像探索処理を高速かつ高精度にできる画像探索装置および画像探索プログラムを提供する。
【課題を解決するための手段】
【０００８】
実施形態によれば、画像探索装置は、画像取得部とプロセッサとを有する。画像取得部は、入力画像を取得する。プロセッサは、前記入力画像から抽出する特徴点と辞書が記憶する各物体の画像の特徴点とを対応づけた複数の特徴点対を抽出し、前記複数の特徴点対のスケール比と方向の差の分布に基づく尤度に応じて確率的に選定する特徴点対により変換行列の候補を計算し、計算した変換行列の候補から座標変換行列を決定し、前記座標変換行列による前記抽出した各特徴点対に対する座標変換の結果に基づいて入力画像と前記辞書が記憶する各物体の画像との類似度を計算し、最大の類似度となる物体の画像を特定する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る画像探索装置としての認識装置の構成例を示す外観図である。
【図２】図２は、実施形態に係る画像探索装置としての認識装置の制御系の構成例を示すブロック図である。
【図３】図３は、実施形態に係る画像探索装置としての認識装置における画像探索処理を含む商品認識処理の流れを説明するためのフローチャートである。
【図４】図４は、実施形態に係る画像探索装置としての認識装置における画像探索処理を含む商品認識処理の流れを説明するためのフローチャートである。
【図５】図５は、実施形態に係る画像探索装置としての認識装置における画像認識処理に用いられる辞書の構成例を示す図である。
【図６】図６は、実施形態に係る画像探索装置としての認識装置における画像認識処理で計算される対数スケール差の分布の例を示す図である。
【図７】図７は、実施形態に係る画像探索装置としての認識装置における画像認識装置で計算されるオリエンテーションの差の分布の例を示す図である。
【図８】図８は、実施形態に係る画像探索装置としての認識装置における座標変換行列の計算処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら実施形態について説明する。  
まず、本実施形態に係る画像探索装置としての認識装置を含む商品認識システムの構成について説明する。  
図１は、商品認識システム１０の構成例を示す図である。  
図１に示す構成例において、商品認識システム１０は、商品台１０１、照明装置１０２、カメラ１０３、及び、認識装置１０５を有する。商品台１０１は、認識対象とする商品を配置する台である。例えば、商品台１０１は、認識対象とする商品を入れたカゴを置くようにしても良い。また、商品台１０１に置くカゴには、１または複数の商品が置かれるものとする。
【００１１】
照明装置１０２は、商品台１０１に向けて光を発光するものである。照明装置１０２は、商品台１０１に配置された商品に対して上方から光を照射する。カメラ１０３は、商品台１０１を撮影範囲に含む画像を撮影する。カメラ１０３は、商品台１０１に配置された商品を含む領域の画像を撮影する。カメラ１０３は、撮像した画像を画像信号に変換して認識装置１０５へ送信する。照明装置１０２及びカメラ１０３は、撮影装置１０４を構成する。
【００１２】
認識装置１０５は、類似する画像を探索する画像探索処理を含む商品認識処理（画像認識処理）を行う。認識装置１０５は、カメラ１０３が撮影した画像に基づく商品認識処理などの処理を実行する。認識装置１０５は、一般的なノイマン型の計算機などのコンピュータで実現できる。認識装置１０５は、例えば、認識結果として商品コードなどの商品を示す情報を出力する。また、認識装置１０５は、商品のデータを記憶するデータベースを参照して商品の価格などの情報を出力するようにしても良い。なお、以下の実施形態では、認識装置１０５を画像探索装置として説明するが、撮影装置１０４と認識装置１０５とを含む構成を画像探索装置としても良い。
【００１３】
次に、画像探索装置としての認識装置１０５の構成について説明する。  
図２は、実施形態に係る認識装置１０５の構成例を示すブロック図である。  
図２に示すように、認識装置１０５は、プロセッサ２０１、メモリ２０２、不揮発性メモリ２０３、画像処理アクセラレータ２０４、入出力インターフェース（Ｉ／Ｆ）２０５、コンソール２０６、及び、ＮＩＣ２０７などがシステムバス２０８を介して接続される。
【００１４】
プロセッサ２０１は、例えば、ＣＰＵである。プロセッサ２０１は、プログラムを実行することにより各種の処理機能を実現する。メモリ２０２は、作業用のデータを記憶するメモリである。不揮発性メモリ２０３は、書換え可能な不揮発性の記憶装置で構成する。例えば、不揮発性メモリ２０３は、ＨＤＤ、ＳＳＤなどで実現される。また、不揮発性メモリ２０３は、ＲＯＭなどを含んでも良い。不揮発性メモリ２０３は、プログラムおよびデータなどを記憶する。
【００１５】
プロセッサ２０１は、不揮発性メモリ２０３が記憶するプログラム（プログラムコード）を実行する。プロセッサ２０１は、不揮発性メモリ２０３が記憶するプログラムコードをメモリ２０２に展開し、メモリ２０２に展開したプログラムコードを実行する。本実施形態において、後述する処理を実行するためのプログラムは、不揮発性メモリ２０３が記憶し、プロセッサ２０１により実行されるものとする。
【００１６】
また、不揮発性メモリ２０３は、認識対象となる全種類の商品に関する登録情報（辞書情報）を格納する辞書（データベース）２０９を有する。各商品に関する登録情報は、後述の商品認識処理（画像探索処理）に用いる辞書としての画像（商品画像）及び特徴情報などである。辞書２０９の構成例については、後で詳述する。また、不揮発性メモリ２０３は、辞書２０９に格納したデータの管理情報も記憶する。また、不揮発性メモリ２０３は、カメラ１０３から入力した画像（入力画像）、および、商品認識処理の結果などの情報も記憶する。
【００１７】
画像処理アクセラレータ２０４は、特定の画像処理を高速に実行する処理部である。入出力インターフェース（Ｉ／Ｆ）２０５は、カメラ１０３および照明１０２を含む撮影装置１０４を接続するインターフェースである。入力Ｉ／Ｆ２０５は、カメラ１０３が撮影した画像としての入力画像を取得するインターフェース（画像取得部）である。また、プロセッサ２０１は、入出力Ｉ／Ｆ２０５を介してカメラ１０３及び照明１０２へ制御指示を供給する。コンソール２０６は、管理者などのオペレータが操作指示を入力するものである。ＮＩＣ２０７は、外部装置と通信するためのインターフェースである。ＮＩＣ２０７は、例えば、ネットワークインターフェースであり、外部ネットワークを介して外部装置と通信する。
【００１８】
次に、本実施形態に係る商品認識システム１による商品認識処理の流れについて概略的に説明する。  
本商品認識システム１が認識対象とする商品は、商品台１０１上に配置される。本実施形態においては、複数の商品がある場合、商品台１０１上には複数の商品が互いに重ならないように配置されるものとする。撮影装置１０４は、照明装置１０２により商品台１０１上に光を照射し、カメラ１０３により商品台１０１上を撮影領域に含む画像を撮影する。カメラ１０３は、撮影した画像を認識装置１０５へ供給する。
【００１９】
認識装置１０５は、カメラ１０３が撮影した画像を入力画像として取得する。認識装置１０５は、入力画像において個々の商品ごとの領域を切出す。認識装置１０５は、商品ごとの領域に切り出した画像（入力商品画像）から特徴点の抽出と特徴量の計算とを行う。認識装置１０５は、入力商品画像から抽出した特徴点の情報と辞書２０９に登録されている各商品画像の特徴点の情報とを比較して特徴点の情報が類似する画像を探す。
【００２０】
すなわち、認識装置１０５は、画像探索処理として、入力商品画像に対して類似する特徴を有する画像の商品を辞書２０９から検索する。本実施形態に係る認識装置１０５は、類似する画像であるかを局所特徴量方式で判定するものとする。局所特徴量方式は、対応する特徴点数の量により判定する。認識装置１０５は、すべての対象となる商品の画像について予め計算した特徴点の情報を商品情報と合わせて１つのデータセットとして辞書２０９に記憶しておく。なお、辞書２０９は、商品認識処理において、認識装置１０５のプロセッサ２０１がアクセスできるものであれば良い。例えば、辞書２０９は、ＮＩＣ２０７を介して通信可能な外部装置に設けても良い。
【００２１】
特徴点は、画像において局所的に一意に特定できる点である。特徴点は、画像のコーナー部分や画像濃度の２次微分関数の極点（極大又は極小点）などの局所領域内で一意に定められる点である。特徴点の情報は、その位置を表す座標（ｘ、ｙ）の他に、大きさを示すスケール、方向を表すオリエンテーションなどの情報を含む。また、特徴点の特徴量は、例えば、特徴点近傍の濃度パターンに応じて定義される。具体例としては、特徴点の特徴量は、特徴点の近傍の濃度パターンを数１０〜数１００の低次元の情報量に圧縮した値である。
【００２２】
本実施形態においては、これらの情報を合わせて特徴点の属性（属性情報）とよぶことにする。また、属性は、例えば、特徴点の位置座標および特徴点の向きを表わすオリエンテーションとサイズを表すスケールである。特徴点の情報として、スケールとオリエンテーションとを有することにより、回転相似変換した画像間でも同じ特徴量で表現できる。  
なお、特徴点の抽出方法や特徴量の計算方法としては、ＳＩＦＴ、ＳＵＲＦ，ＯＲＢなどの方式がある。
【００２３】
また、上述したような１つの特徴点の情報は、一般に数１００ｂｙｔｅで表現できる。画像探索（認識）処理には、通常、１００〜１０００程度の特徴点を用いる。従って、局所特徴量方式では、画像当たりの情報量が１０〜１００Ｋｂｙｔｅ程度である。局所特徴量方式は、テンプレートマッチングなどのように画像全体の情報を用いる方法に比べ、辞書のデータサイズ、及び、処理における計算量を小さくすることができる。また、回転相似変換によっても特徴点の特徴量が不変であるため、任意の角度、距離から撮影した画像からも検索が可能である。
【００２４】
認識処理時に商品を撮影した画像と辞書作成時に商品を撮影した画像とでは、商品の位置、向き、撮影距離などが異なる。このため、認識処理時の入力商品画像と辞書作成時の商品画像（辞書の商品画像）とは、同一商品であっても、画像の座標系が異なる。これらの座標系は、平行移動、回転、拡大縮小の合成された相似変換の関係となる。また、座標系の相違以外にも、照明環境、撮像系のレンズ収差特性、画像信号への重畳ノイズ等が相違する。従って、同じ商品でも入力商品画像と辞書の商品画像とでは、全く同じ特徴点が抽出されることはない。さらに、商品の異なる位置に類似の特徴量や属性をもつ特徴点が存在することもある。
【００２５】
本実施形態に係る認識装置１０５は、商品認識処理（画像探索処理）において、入力商品画像と辞書の商品画像との座標系の関係である相似変換行列の候補を求める。認識装置１０５は、候補から妥当性のある変換行列を求め、算出した変換行例による座標変換をかけた上で対応する特徴点の数を求める。認識装置１０５は、辞書の特徴点数に対して対応する特徴点数の割合を類似度とする。認識装置１０５は、類似度が最大でかつ所定の閾値以上となる辞書の商品を入力商品画像と一致する認識（検索）結果とする。
【００２６】
次に、認識装置１０５による商品認識処理（画像探索処理）について詳細に説明する。  
図３及び図４は、商品認識処理（画像探索処理）の流れを説明するためのフローチャートである。  
カメラ１０３は、認識対象とする商品が載置される商品台１０１を含む撮影範囲の画像を撮影する。認識装置１０５は、入出力Ｉ／Ｆ２０５によりカメラ１０３が撮影した画像（入力画像）を取得する（ＡＣＴ１１）。認識装置１０５のプロセッサ２０１は、入出力Ｉ／Ｆ２０５によりカメラ１０３から取得した画像を入力画像として不揮発性メモリ２０３に記憶する。ここで、入力画像は、モノクロ明度信号、すなわち画像の画素の明度を０から２５５までの値で明るい方が大きい値で表現した画像信号であるものとする。ただし、入力画像は、モノクロ明度信号に限らず、例えば、ＲＧＢ等のカラー画像信号であっても良い。
【００２７】
入力画像を取得すると、認識装置１０５のプロセッサ２０１は、入力画像から個々の商品の領域を抽出する（ＡＣＴ１２）。プロセッサ２０１は、カメラ１０３から入力した画像において個々の商品の領域を切出し、個々の商品の画像（入力商品画像）を抽出する。本実施形態では、入力商品画像は、個々の商品の領域を囲む最小の矩形領域であるものとし、入力商品画像の領域は、矩形の４つの頂点の座標値で表現するものとする。ただし、入力商品画像の表現は、矩形の４つの頂点の座標値で表現するものに限定されない。例えば、入力商品画像の表現は、別に画像領域に対応する２次元の配列を用意し、その配列の値によって商品の種別を表すような表現でもよい。
【００２８】
入力画像から入力商品画像を抽出すると、プロセッサ２０１は、変数ｉを初期化（ｉ＝０）とする（ＡＣＴ１３）。変数ｉを初期化すると、プロセッサ２０１は、変数ｉをインクリメント（ｉ＝ｉ＋１）とする（ＡＣＴ１４）。変数ｉをインクリメントすると、プロセッサ２０１は、入力画像から抽出したｉ番目の入力商品画像を選択する。ｉ番目の入力商品画像を選択すると、プロセッサ２０１は、ｉ番目の入力商品画像から特徴点を求める（ＡＣＴ１５）。特徴点は、上述しように、画像情報から局所的に特定できる点であり、濃度の２次微分の極値点などを用いる。このような点は、入力商品画像上には多数存在しうる。このため、プロセッサ２０１は、特徴点の強度を定義し、強度の大きい順に所定の個数の特徴点を抽出する。例えば、本実施形態において、１つの入力商品画像から抽出する特徴点の数は５００点とする。また、本実施形態においては、ＯＲＢ方式で標準的に使われているＦＡＳＴ方式を用いるものとする。
【００２９】
入力商品画像から特徴点を抽出すると、プロセッサ２０１は、抽出した各特徴点について特徴量を計算する（ＡＣＴ１６）。特徴量は、上述したように、特徴点の近傍の領域の濃淡のパターンを固定長の符号又は数値で表現したものである。特徴量としては、一般にはいくつかの方式があるが、本実施形態ではＯＲＢ特徴量を用いるものとする。ＯＲＢ特徴量は、２５６次元の２値情報で表され、パターンの形状が近いほど２つの２５６次元の特徴量のハミング距離が小さくなる。まったく同じパターンの場合、ハミング距離は、最小値の０となる。ハミング距離は、各ｂｉｔの排他的論理和の２５６次元での総和となる。このため、ハミング距離は、ユークリッド距離（Ｌ２ノルム）やマンハッタン距離（Ｌ１ノルム）に比べて、高速に計算できる。
【００３０】
各特徴点の特徴量を算出すると、プロセッサ２０１は、変数ｋを初期化（ｋ＝０）する（ＡＣＴ１７）。変数ｋを初期化した後、プロセッサ２０１は、変数ｋをインクリメント（ｋ＝ｋ＋１）とする（ＡＣＴ１８）。変数ｋをインクリメントすると、プロセッサ２０１は、ｋ番目の特徴点について、Ｘ座標、Ｙ座標、スケール、オリエンテーション、及び特徴量を含む属性情報を特定する。これらの情報を特定すると、プロセッサ２０１は、ｋ番目の特徴点に対する属性情報としてメモリ２０２に保持する。さらに、プロセッサ２０１は、スケールの対数を整数化した対数スケールも算出し、メモリ２０２に保持しておく。ここで、スケールと対数スケールとは、１対１に対応しており、冗長な情報である。
【００３１】
なお、上述した特徴点の属性情報は、後述する処理によって特徴点の数分だけ計算される。この結果として、メモリ２０２には、各特徴点の属性情報が配列として記憶される。また、入力商品画像から抽出する特徴点の総数をＮｋｐとすると、本実施形態では、抽出する特徴点の数を５００とするため、Ｎｋｐ＝５００となる。
【００３２】
特徴点の情報（属性情報）をメモリ２０２に記憶すると、プロセッサ２０１は、辞書２０９に記憶されているｋ番目の商品の登録情報を読み出す（ＡＣＴ１９）。プロセッサ２０１は、辞書２０９が記憶する各商品の登録情報を順に読み出す。例えば、辞書２０９は、登録される各商品（認識対象となる各種の商品）に関する登録情報を配列テーブルの形で記憶するものとする。
【００３３】
図５は、辞書２０９の構成例を示す図である。  
図５に示す例において、辞書２０９は、登録される商品の数（品種の数）のブロックにより構成される。図５に示す辞書２０９においては、各ブロックが、個々の商品に対する登録情報（辞書情報）である。図５に示す例では、登録商品の数をＮｉとし、Ｎｉ個のブロックを有する。図５に示す各ブロックは、商品の名称、商品コード（商品に一意に対応する識別情報）、商品画像における特徴点数、各特徴点の属性情報（特徴点のＸ及びＹ座標、スケール、オリエンテーション、特徴量）を記憶する。例えば、特徴量は、上述したように、３２桁の１６進数で表される２５６次元の２値情報である。
【００３４】
辞書のｋ番目の商品の情報を読出すと、プロセッサ２０１は、入力商品画像から算出した特徴点の情報とｋ番目の商品の特徴点の情報とを比較して類似の特徴点対群を選出する（ＡＣＴ２０）。類似の特徴点対としては、特徴量の近い特徴点の対が選出される。例えば、プロセッサ２０１は、入力商品画像の全特徴点と辞書のｋ番目の商品（ブロック）の全特徴点との総当たりでハミング距離Ｈｄを計算する。プロセッサ２０１は、算出したハミング距離Ｈｄが所定の閾値Ｔｈｄ（例えば、６４程度）より小さい場合に、類似する特徴点とみなす。プロセッサ２０１は、ハミング距離Ｈｄが所定閾値Ｔｈｄよりも小さくなる特徴点の対をすべて求める。
【００３５】
類似の特徴点対群を選出すると、プロセッサ２０１は、選出した特徴点対のセットについて特徴点対のスケールの比とオリエンテーションの差の分布を計算する（ＡＣＴ２１、ＡＣＴ２２）。上述したように、各特徴点は、属性としてスケールとオリエンテーションとを有する。
【００３６】
プロセッサ２０１は、入力商品画像の特徴点のスケールをその対となる辞書の特徴点のスケールで除した値をスケール比として算出する。また、除算は、計算量が大きいので、スケールｓｃｌの代わりに対数スケールｌｓｃｌを用いると計算量を減らすことができる。本実施形態において、スケールは、初期値ｓｃｌ０から１．２倍きざみでとっているのものとする。この場合、対数スケールを以下の式１で定義することにより、対数スケールは、整数で表すことができ、対数スケールの差も整数で表せる。また、対数をとることにより、スケールの比は、対数スケールの差で表すことができる。  
ｌｓｃｌ＝（ｌｏｇ（ｓｃｌ）−ｌｏｇ（ｓｃｌ０））／ｌｏｇ（１．２）…（式１）
図６は、対数スケール差のヒストグラムの例を示す図である。
【００３７】
また、プロセッサ２０１は、入力商品画像の特徴点のオリエンテーションからその対となる辞書の特徴点のオリエンテーションを減じた値をオリエンテーション差として算出する。ここで、オリエンテーションは角度であるので、２πを法とする剰余類で表す。すなわち、算出した差が０以下の場合は２πを加算して、０〜２πの間の範囲の数値で表す。  
図７は、オリエンテーション差のヒストグラムの例である。ここで、オリエンテーションは角度なので図７の横軸は左端と右端がつながった構造となっている。
【００３８】
選出した特徴点対の対数スケール差及びオリエンテーション差の分布を算出すると、プロセッサ２０１は、各分布から特徴点対の尤度を求める（ＡＣＴ２３）。  
仮に入力商品画像の商品と辞書のｋ番目の商品とが同一の商品であれば、対応する特徴点のスケール比とオリエンテーション差は、画像全体の倍率比と向きの差に近くなる。従って、これらの特徴点対の対数スケール差とオリエンテーション差とにピークが生じる。ただし、特徴点のスケールとオリエンテーションは精度が低いため、ばらつきが生じやすい。このため、ピークの中心から離れていても対応する特徴点の可能性があるが、ピークの中心から離れるほど対応する特徴点である確率が低くなる。
【００３９】
尤度は、対応する特徴点である確率に相当する値であり、ピークで１をとり、ピークから離れるほど低い値をとる。具体的には、ピークからｒ離れた場合の尤度Ｌは、以下の（式２）で計算される。  
Ｌ＝ｅｘｐ（−ｒ２／σ）…（式２）
ここで、σは減衰係数であり、スケールやオリエンテーションのばらつきから適正な値が設定される。
【００４０】
また、尤度は、対数スケール差とオリエンテーション差との両方で定義される。本実施形態において、プロセッサ２０１は、対数スケール差の尤度とオリエンテーション差の尤度とを乗算した値を尤度とする。
【００４１】
特徴点対の尤度を算出すると、プロセッサ２０１は、尤度に応じて辞書の座標系と入力商品画像とを座標変換するための座標変換行列Ａを計算する行列計算処理を実行する（ＡＣＴ２４）。すなわち、プロセッサ２０１は、特徴点対のセットとその尤度から入力商品画像と辞書のｋ番目の商品の画像との座標変換行列Ａを計算する。特徴点の対応のように外れ値が正規分布に従わない場合のロバストな変換行列推定方法としては、ＲＡＮＳＡＣ法を用いることができる。ここでは、特徴点対の尤度を利用したＲＡＮＳＡＣの変形方式を用いて、座標変換行列Ａを求めるものとする。なお、座標変換行列の計算処理（行列計算処理）の例については、後で詳細に説明する。
【００４２】
座標変換行列Ａを算出すると、プロセッサ２０１は、座標変換行列Ａを用いて選出した全ての特徴点対を座標変換する。プロセッサ２０１は、座標変換した結果について変換誤差を算出する。プロセッサ２０１は、変換誤差が所定値以下となる特徴点対の数を計数する（ＡＣＴ２５）。
【００４３】
プロセッサ２０１は、計数した変換誤差が所定値以下となる特徴点対の数に基づいて入力商品画像と辞書のｋ番目の商品との類似度を算出する（ＡＣＴ２６）。例えば、プロセッサ２０１は、計数した特徴点対の数を辞書の特徴点の数で割算した値を辞書のｋ番目の商品に対する類似度として算出する。なお、プロセッサ２０１は、座標変換行列Ａとオリエンテーション差や対数スケール差のピークと比較し、これらの関係がかけ離れているかを類似度として計算しても良い。
【００４４】
ｋ番目の商品に対する類似度を算出すると、プロセッサ２０１は、変数ｋが辞書２０９に登録されている商品の総数（辞書の商品数）に達したかを判断する（ＡＣＴ２７）。変数ｋが辞書２０９の商品数に達していない場合、つまり、類似度を算出していない商品がある場合（ＡＣＴ２７、ＮＯ）、プロセッサ２０１は、ＡＣＴ１８へ戻り、辞書２０９にある次の商品（ｋ＝ｋ＋１番目の商品）に対する類似度を算出する。
【００４５】
変数ｋが辞書２０９に登録されている商品数に達した場合、つまり、全商品に対する類似度を算出したと判断した場合（ＡＣＴ２７、ＹＥＳ）、プロセッサ２０１は、各商品に対する類似度により商品の認識結果（画像探索結果）を判定する（ＡＣＴ２８）。例えば、プロセッサ２０１は、類似度が最大となった商品を特定する。プロセッサ２０１は、最大の類似度が所定値（同定用の閾値）以上であれば、当該商品を入力商品画像に対する商品の認識結果（画像の探索結果）とする。また、最大の類似度が所定値（同定用の閾値）よりも小さければ、入力商品画像に対して該当する商品（画像）無しとの結果とする。
【００４６】
また、プロセッサ２０１は、上記ＡＣＴ１４−２８の処理を入力画像から抽出した全ての入力商品画像に対して実施する。この判断のため、プロセッサ２０１は、変数ｉが入力画像から抽出した入力商品画像の総数（商品領域数）に達したかを判断する（ＡＣＴ２９）。変数ｉが商品領域数に達していない場合、つまり、商品認識処理（画像探索処理）を実施していない入力商品画像がある場合（ＡＣＴ２９、ＮＯ）、プロセッサ２０１は、ＡＣＴ１４へ戻り、次の入力商品画像（ｉ＝ｉ＋１番目の入力商品画像）に対する商品認識処理を実行する。また、変数ｉが商品領域数に達した場合、つまり、全ての入力商品画像に対する商品認識処理（画像探索処理）が終了した場合（ＡＣＴ２９、ＹＥＳ）、プロセッサ２０１は、カメラ１０３から入力した入力画像に対する商品認識処理（画像探索処理）を終了する。
【００４７】
次に、上述した座標変換行列Ａの計算処理（行列計算処理）について詳細に説明する。  
図８は、本実施形態に係る認識装置１０５による行列計算処理の流れを説明するためのフローチャートである。  
上述したように、プロセッサ２０１は、特徴点対の尤度を算出した後、座標変換行列Ａを計算する処理（行列計算処理）を実行する。行列計算処理において、プロセッサ２０１は、まず、変数ｊを初期化（ｊ＝０）する。変数ｊを初期化した後、プロセッサ２０１は、変数ｊをインクリメント（ｊ＝ｊ＋１）する（ＡＣＴ４２）。変数ｊをインクリメントすると、プロセッサ２０１は、選出した特徴点対から尤度に応じて確率的にＭ個の特徴点対を選出する（ＡＣＴ４３）。ここで、プロセッサ２０１は、選出される確率が尤度Ｌに比例し、かつ、ランダムにＭ個の特徴点対を選出する。Ｍ個は、入力商品画像から抽出する特徴点の数Ｎｋｐに対して１／５〜１／１０程度となるような個数とする。
【００４８】
Ｍ個の特徴点対を選出すると、プロセッサ２０１は、選定したＭ個の特徴点対の座標値を用いて辞書の座標系から入力商品画像の座標系への変換行列Ａｊを計算する（ＡＣＴ４４）。変換行列Ａｊは、確率的に選出したＭ個の特徴点対から得られる行列である。例えば、プロセッサ２０１は、最小２乗法を用いて変換行例Ａｊを計算する。変換行列Ａｊは、座標変換行列Ａの候補となる行列である。
【００４９】
変換行列Ａｊを算出すると、プロセッサ２０１は、選出したＭ個以外の各特徴点対について、辞書２０９の特徴点の座標を変換行列Ａｊによって変換する（ＡＣＴ４５）。プロセッサ２０１は、変換行列Ａｊによって変換した辞書の座標と入力商品画像における対応する特徴点の座標との誤差（変換誤差）Ｅを計算する（ＡＣＴ４６）。各特徴点対に対して変換誤差Ｅを算出すると、プロセッサ２０１は、各変換誤差Ｅを所定の第１の閾値Ｅｔｈ１と比較する。プロセッサ２０１は、変換誤差Ｅが第１の閾値Ｅｔｈ１より小さくなる特徴点対の個数Ｂｊをカウントする（ＡＣＴ４７）。
【００５０】
個数Ｂｊを計数すると、プロセッサ２０１は、変数ｊが所定回数（ｊＭａｘ）であるかを判定する（ＡＣＴ４８）。変数ｊがｊＭａｘでなければ（ＡＣＴ４８、ＮＯ）、プロセッサ２０１は、ＡＣＴ４２へ戻り、ＡＣＴ４２−４７の処理を再度実行する。これにより、プロセッサ２０１は、ＡＣＴ４２−４７の処理を所定回数（ｊＭａｘ回）実行する。上述したように、ＡＣＴ４３の処理では尤度に応じて確率的にＭ個の特徴点対が選出される。このため、プロセッサ２０１は、繰り返し実行するごとに異なるＭ個の特徴点類を選出する。
【００５１】
変数ｊがｊＭａｘであれば（ＡＣＴ４８、ＹＥＳ）、プロセッサ２０１は、カウントした個数Ｂｊが最も大きかった場合の変換行列Ａｊを暫定変換行列Ａｔとする（ＡＣＴ４９）。暫定変換行列Ａｔを決定すると、プロセッサ２０１は、全ての各特徴点対について辞書の特徴点の座標を暫定変換行列Ａｔで変換する。プロセッサ２０１は、暫定変換行列Ａｔで変換した座標と対応する入力商品画像の特徴点との変換誤差Ｅを計算する。暫定変換行列Ａｔを用いて全特徴点対に対する変換誤差を算出すると、プロセッサ２０１は、算出した変換誤差ＥがＥ＜Ｅｔｈ２となる特徴点対を抽出する（ＡＣＴ５０）。ここで、第２の閾値Ｅｔｈ２は、ＡＣＴ４７で用いた第１の閾値Ｅｔｈ１と同じでも良いし、第１の閾値Ｅｔｈ１よりも小さい値であっても良い。
【００５２】
変換誤差Ｅが第２の閾値Ｅｔｈ１未満となる特徴点対を抽出すると、プロセッサ２０１は、抽出した特徴点対に対して最小２乗法を用いて座標変換行列Ａを計算する（ＡＣＴ５１）。これにより、プロセッサ２０１は、計算した座標変換行列Ａを行列変換処理の結果とする。
【００５３】
上記のような行列計算処理では、ＡＣＴ４２−４７の処理を繰り返し実行することにより、対応しない特徴点対の数が多くてもロバストに適正な座標変換行列を計算できる。また、対数スケール差やオリエンテーション差のピーク値を直接用いてないため、これらの値の若干の誤差に対してもロバストな結果が得られる。
【００５４】
以上のように、本実施形態に係る認識装置は、辞書の特徴量と入力画像の特徴量とを比較する場合、オリエンテーション差と対数スケール差の分布に応じて特徴点対の尤度を決める。認識装置は、尤度に応じて確率的に選定する特徴点対により複数の変換行列の候補を算出し、算出した候補から最適な座標変換行列を決定する。
【００５５】
これにより、実施形態によれば、明らかに対応しない特徴点対を除いて処理を高速化でき、計算誤差によって対応する特徴点対が除かれることを軽減して高精度化を図れる。この結果として、本実施形態に係る認識装置は、高速でかつ高精度な検索結果を得ることができる。例えば、本実施形態を適用した商品認識装置は、多種類の商品が辞書に登録されている場合でも、商品の種類を短時間でかつ高精度で判別することができる。
【００５６】
また、上記した実施形態によれば、オリエンテーションやスケール比が明らかに異なる特徴点対を除くことができ、高速かつ高精度に画像探索を行うことができる。  
また、実施形態によれば、オリエンテーションやスケール比の誤差による変換行列の誤差も防ぐことができる。変換行列に誤差が生じると、例えば、画像周辺部の変換座標の計算誤差が大きくなる。本実施形態によれば、画像周辺部の特徴点対を考慮でき、類似度の精度ひいては検索精度を高くできる。
【００５７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５８】
１０…商品認識システム、１０３…カメラ、１０５…認識装置（画像探索装置）、２０１…プロセッサ、２０２…メモリ、２０３…不揮発性メモリ、２０５…入出力インターフェース（画像取得部）、２０９…辞書（データベース）。
【図１】
2018124798.tif 000003
【図２】
2018124798.tif 000004
【図３】
2018124798.tif 000005
【図４】
2018124798.tif 000006
【図５】
2018124798.tif 000007
【図６】
2018124798.tif 000008
【図７】
2018124798.tif 000009
【図８】
2018124798.tif 000010