以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
図1は、物体認識装置の機能構成例を示すブロック図である。物体認識装置100は、物体認識の基準物体である教示物体の画像を登録する。物体認識装置100は、教示物体画像に含まれる部分領域を選択し、選択した部分領域それぞれに対する認識手法を設定する。物体認識装置100は、教示物体と同一又は類似の物体であるか否かの判定対象である認識対象物体の画像を取得する。物体認識装置は、認識対象物体の画像から部分領域を取得し、教示物体と認識対象物体の部分領域を当該部分領域に対応する認識手法によって比較することで、認識対象物体が教示物体と同一又は類似の物体であるか否かを判定する。
物体認識装置100は、画像取得部111、画像表示部112、部分領域認識手法設定部113、入力受付部114、特徴取得部115、及び物体認識部116を有する。画像取得部111は、教示物体画像及び認識対象物体画像を取得する。画像表示部112は、各機能部の指示に基づいて、出力装置150に画像を表示する。部分領域認識手法設定部113は、教示物体の部分領域を選択し、選択した部分領域に対する認識手法を設定する。入力受付部114は、入力装置140を介してユーザ等からの入力情報を受け付ける。
特徴取得部115は、選択された部分領域における特徴情報(例えば特徴量や特徴ベクトル)を設定された認識手法に基づいて取得する。物体認識部116は、教示物体と認識対象物体との部分領域を設定された認識手法に基づいて比較し、教示物体と認識対象物体が同一又は類似の物体であるかを判定する。
また、物体認識装置100は、画像情報131及び認識手法情報132を保持する。画像情報131は、教示物体画像、教示物体の部分領域の画像、及び認識対象物体画像を含む。認識手法情報132は、教示物体の選択された部分領域と、部分領域に対応する認識手法及びパラメータと、を含む。
図2は、物体認識装置100のハードウェア構成例を示すブロック図である。物体認識装置100は、例えば、プロセッサ110、メモリ120、補助記憶装置130、入力装置140、出力装置150、及び通信IF(Interface)160を有し、これらがバス等の内部通信線170によって接続された計算機によって構成される。
プロセッサ110は、メモリ120に格納されたプログラムを実行する。メモリ120は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ110が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置130は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、プロセッサ110が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置130から読み出されて、メモリ120にロードされて、プロセッサ110によって実行される。
入力装置140は、キーボードやマウスなどの、オペレータからの入力を受ける装置である。出力装置150は、ディスプレイ装置やプリンタなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。通信IF160は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
プロセッサ110が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワークを介して物体認識装置100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置130に格納される。このため、物体認識装置100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
物体認識装置100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。例えば、物体認識装置100が1つの計算機でなく、物体の認識を行うための教示物体及び認識手法の登録を行う計算機である教示物体登録装置と、設定された認識手法を用いてある物体が教示物体であるか否かの判定を行う計算機である判定装置と、に分かれていてもよい。
プロセッサ110は、例えば、それぞれ前述した機能部である、画像取得部111、画像表示部112、部分領域認識手法設定部113、入力受付部114、特徴取得部115、及び物体認識部116を含む。
例えば、プロセッサ110は、メモリ120にロードされた画像取得プログラムに従って動作することで、画像取得部111として機能し、メモリ120にロードされた画像表示プログラムに従って動作することで、画像表示部112として機能する。プロセッサ110に含まれる他の機能部についても、プログラムと機能部の関係は同様である。
なお、プロセッサ110に含まれる機能部による機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field−Programmable Gate Array)等のハードウェアによって実現されてもよい。
補助記憶装置130は、例えば、前述した画像情報131及び認識手法情報132を保持する。なお、補助記憶装置130に格納されている一部又は全部の情報は、メモリ120に格納されていてもよいし、物体認識装置100に接続されている外部のデータベース等に格納されていてもよい。
なお、本実施形態において、物体認識装置100が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。本実施形態ではテーブル形式で情報が表現されているが、例えば、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
図3は、物体認識装置100に提供される教示物体及び認識対象物体の画像を撮影する撮影システムの一例である。撮影システムは、例えば、カメラ10、ターンテーブル30、及び端末200を含む。カメラ10は、物体20を撮影する。カメラ10には、例えばアーム11が取り付けられており、アーム11が動作することにより、カメラ10は様々な位置や角度からの撮影が可能となる。物体20は、教示物体又は認識対象物体である。
物体20は、ターンテーブル30上に搭載されている。ターンテーブル30が回転したり、アーム11が動作したりすることにより、カメラ10は様々な姿勢の物体20を撮影可能である。端末200は、カメラ10に接続された計算機である。端末200は、カメラ10による撮影や、アーム11の動作を制御する。また、端末200は、カメラ10が撮影した物体20の画像を取得する。また、端末200はターンテーブル30の動作を制御してもよい。
また、図3には示していないが、端末200は物体認識装置100に接続され、取得した物体20の画像を物体認識装置100に送信する。なお、端末200は物体認識装置100からの指示に従って、カメラ10、アーム11、及びターンテーブル30を制御してもよい。また、物体認識装置100と端末200とが一体化されていてもよい。
図4は、教示物体の一例を示す説明図である。図4の例では、教示物体300は靴が収納された箱であり、その箱の一側面の画像が教示物体画像として用いられる。教示物体300には、シール301が貼られ、商品情報302が記載されている。シール301は、例えば人間の手作業によって箱に貼られるため、教示物体300と同じ物体であってもシール301の位置及び姿勢に大きな誤差が生じることがある。
従って、教示物体300に貼られたシール301の誤差を考慮することなく、物体認識を実行しようすると、当該誤差により、教示物体300と同じ物体にも関わらず同一又は類似の物体であると認識できないおそれがある。また、商品情報302は、教示物体300と同じ物体であってもシリアル番号等の詳細な情報が異なることがあるため、物体認識に用いられる部分領域に適さない。
また、教示物体300には、その他の特徴点が少ない。そこで、後述する部分領域の選択において、シール301が貼られる際の当該誤差を許容する(即ち位置ずれや傾きを考慮した)認識手法が部分領域303に設定されることにより、シール301の情報を用いた物体認識が可能となる。
図5は、教示物体の別例を示す説明図である。図5の例では、教示物体310は靴が収納された箱であり、その箱の一側面の画像が教示物体画像として用いられる。教示物体310には、ロゴ311が描かれ、商品情報312が記載されている。教示物体300と同じ物体であってもロゴ311の大きさが異なることがある。
従って、教示物体310に貼られたロゴ311のサイズの違いを考慮することなく、物体認識を実行しようすると、当該誤差により、教示物体310と同じ物体にも関わらず同一又は類似の物体であると認識できないおそれがある。また、商品情報312は、教示物体310と同じ物体であってもシリアル番号等の詳細な情報が異なることがあるため、物体認識に用いられる部分領域に適さない。
また、教示物体310には、その他の特徴点が少ない。そこで、後述する部分領域の選択において、ロゴ311のサイズの違いを許容する(即ち位置ずれや傾きを考慮した)認識手法が部分領域313に設定されることにより、ロゴ311の情報を用いた物体認識が可能となる。
図4や図5に示したように、教示物体の複数の部分領域それぞれについて、認識手法やパラメータを設定可能とすることにより、認識対象物品の部分的な変動を吸収した物体認識を実行することが可能となる。
図6は、教示物体登録処理の一例を示すフローチャートである。画像取得部111は、端末200から教示物体の画像を取得する(S1)。なお、画像取得部111は教示物体の複数の姿勢(例えば、正面、背面、上面、下面、左側面、及び右側面等)の画像を取得してもよい。また、画像取得部111は、取得した教示物体の画像を画像情報131に格納する。なお、画像取得部111は、予め画像情報131に格納されている画像を教示物体の画像として取得してもよい。
画像表示部112は、ステップS1で取得した教示物体の画像を出力装置150に表示する(S2)。続いて、部分領域認識手法設定部113は、教示物体の物体認識に用いられる部分領域の選択、及び当該部分領域を認識する認識手法を設定する(S3)。例えば、ステップS3において、入力受付部114は、入力装置140を介して部分領域及び認識手法等の入力を受け付け、部分領域認識手法設定部113は、当該入力された部分領域及び認識手法等を設定する。
続いて、画像表示部112は、ステップS3において選択された部分領域及び設定された認識手法を出力装置150に表示する(S4)。部分領域認識手法設定部113は、教示物体の設定が完了したか否かを判定する(S5)。具体的には、部分領域認識手法設定部113は、例えば、入力受付部114を介して設定の完了が指示された場合には、設定が完了したと判定し、指示されない場合には設定が完了していないとする。
部分領域認識手法設定部113は、教示物体の設定が完了していないと判定した場合(S5:No)、ステップS3に戻る。部分領域認識手法設定部113は、教示物体の設定が完了したと判定した場合(S5:Yes)、特徴取得部115は設定された認識手法及びパラメータに基づいて、各部分領域の特徴情報を取得し、例えば教示物体画像の識別情報と、部分領域と、認識手法と、パラメータと、特徴情報と、を対応づけて認識手法情報132に格納し(ステップS6)、教示物体登録処理を終了する。
図7は、ステップS3において、部分領域の選択及び認識手法の設定を受け付けるための表示画面の一例である。表示画面700は、例えば、教示物体画像表示領域710、認識手法設定領域720、及び設定完了ボタン730を含む。ステップS2において、教示物体の画像が教示物体画像表示領域710に表示される。
教示物体画像表示領域710において、認識手法の設定対象である部分領域を選択するための選択領域711が表示される。例えば、マウスを用いてドラッグすることにより、所定形状(例えば長方形、正方形、楕円、及び円等)の選択領域711が表示されたり、形状及び座標値を指定されることにより選択領域711が表示されたりする。
認識手法設定領域720は、選択領域711において選択されている部分領域に対する認識手法を設定するための領域である。認識手法設定領域720は部分領域の名称の入力を受け付ける。図7の例では、部分領域の名称が「seal」に設定されている。
認識手法設定領域720は、例えば、部分領域の座標及びサイズを表示する。また、認識手法設定領域720には、認識手法を選択するボックス等が表示され、認識手法を選択すると、選択された認識手法及び、当該認識手法に用いられるパラメータ等を表示する。
図7の例では、認識手法設定領域720において、認識手法及びパラメータが設定された状態である。図7の例では、認識手法としてテンプレート認識が選択され、テンプレート認識で用いられるパラメータである回転許容値及び位置ずれ許容値が、それぞれ30°及び(0.05,0.02)に設定されている。設定完了ボタン730が選択されると、ステップS6に遷移する。
なお、1つの教示物体に対して複数の部分領域が設定される場合、例えば、各部分領域に対する認識処理を並列に実行するか階層的に実行するかを設定可能である。例えば、2つ目以降の部分領域が選択された場合、認識手法設定領域720において、当該部分領域を選択済みの他の部分領域と並列関係にするか、選択済みの他の部分領域の上位又は下位の階層に位置させるか、の入力を受け付けることができるものとする。
図8は、教示物体内の部分領域が並列に記述されている認識手法データの一例である。認識手法データは、ステップS6において、認識手法情報132に登録された、部分領域と、部分領域に対応する認識手法、パラメータ、及び特徴情報と、を示すデータである。図8の認識手法データには、2つの部分領域「seal」と「barcode」が並列に登録されている。認識手法データ中の「method」は当該部分領域の認識手法を示し、「method」より下かつ次の部分領域の「name」より上に記述されている項目は、それぞれ当該認識手法に用いられるパラメータを示す。
詳細は後述するが、認識手法データにおいて複数の部分領域が並列に記述されている場合、物体認識部116は、認識対象物体の当該複数の部分領域それぞれについて教示物体との類似度を算出し、各類似度に基づく総合類似度を算出する。物体認識部116は、総合類似度に基づいて、認識対象物体が教示物体と同一又は類似の物体であるか否かを判定するため、当該複数の部分領域の類似度を加味した物体認識を実行することができる。
図9は、教示物体内の部分領域が階層的に記述されている認識手法データの一例である。図9の認識手法データにおける「origin」は、教示物体を囲む図形の形状(図9の例では、教示物体全体を囲む矩形の対角の2頂点の座標)を示す。
図9の認識手法データにおいては、教示物体全体を示す「origin」の下の階層に部分領域「logo」及び「prodcut_info」が並列で登録されている。「name」の1行上に記述されている座標は、当該部分領域を囲む図形の形状を示す座標(図9の例では、当該部分領域を囲む矩形の対角の2頂点の座標)である。また、図9の認識手法データにおいては、部分領域「prodcut_info」の下の階層に部分領域「barcode」及び「size」が登録されている。
詳細は後述するが、認識手法データにおいて複数の部分領域が階層的に記述されている場合、物体認識部116は、上位の階層の部分領域について教示物体と認識対象物体との類似判定を行い、当該上位の階層の部分領域について類似していると判定した場合のみ、下位の階層の部分領域についての教示物体と認識対象物体との類似判定を行う、という段階的な認識処理を実行する。
これにより、物体認識部116は、上位の階層の部分領域について教示物体と類似しない認識対象物体については下位の階層の部分領域についての類似判定を行う必要がないため、物体認識処理に係る計算量を低減することができる。特に、例えば、教示物体と認識対象物体との間で類似する可能性の低い部分領域を上位の階層に位置させることで、より計算量を低減することができる。
また、各部分領域における類似判定を行うたびに認識対象物体の部分領域の撮影がカメラ10によって行われる場合には、部分領域を撮影する際のアーム11の向き及び位置が類似する部分領域を近い階層に位置させることで、部分領域の撮影時におけるアーム11の動作量を低減させることができる。
図10は、教示物体における部分領域が並列に記述されている場合における物体認識処理の一例を示すフローチャートである。図10の処理の前に、物体認識部116は、認識対象物体の画像を画像取得部111から取得する。さらに、物体認識部116は、図10の処理の前に、比較対象の教示物体の認識手法データを認識手法情報132から取得する。物体認識部116は、教示物体の認識手法データにおいて部分領域が並列に記述されていると判定した場合に図10の処理を実行する。
まず、物体認識部116は、認識手法データを参照して、認識対象物体の画像から各部分領域を抽出し、抽出した各部分領域についてステップS11の処理を実行する。なお、物体認識部116が認識対象物体全体の画像から各部分領域の画像を抽出するのではなく、画像取得部111が、認識手法データを参照して、認識対象物体の各部分領域の撮影を端末200に依頼してもよい。なお、認識対象物体の各部分領域の撮影は、一斉に行われてもよいし、1つの部分領域の撮影と、当該1つの部分領域に対するステップS11の処理と、からなる一連の処理が順次実行されてもよい。なお、各部分領域に対するステップS11の処理が並列に実行されてもよい。
ステップS11では、物体認識部116は、認識手法データが示す当該部分領域に対応する認識手法及びパラメータに基づいて、認識対象物体の当該部分領域の位置姿勢の推定と、認識対象物体の当該部分領域と教示物体の当該部分領域との類似度の算出と、を実行する(S11)。
続いて、物体認識部116は、ステップS11で推定した各部分領域の位置に基づいて、認識対象物体の総合位置姿勢(認識対象物体全体の位置姿勢)を推定し、ステップS11で算出した各部分領域間における類似度に基づいて、教示物体と認識対象物体の総合類似度を算出する(S12)。
具体的には、例えば、物体認識部116は、ステップS11で推定した各部分領域における位置姿勢の単純平均、当該各部分領域における位置姿勢の重みづけ平均、又はステップS11で算出された類似度が最大である部分領域の位置姿勢等を、総合位置姿勢に決定する。また、例えば、物体認識部116は、ステップS11で算出した各部分領域間の類似度の単純平均、重みづけ平均、最大値、又は最小値を、総合類似度として算出する。
続いて、物体認識部116は、ステップS12で算出した総合類似度が所定の閾値以上であるか否かを判定する(S13)。物体認識部116は、総合類似度が当該閾値以上であると判定した場合(S13:Yes)、画像表示部112を介してステップS12で推定した総合位置姿勢を出力装置150に出力し(S14)、物体認識処理を終了する。また、当該場合において、物体認識部116は、画像表示部112を介して、認識対象物体が教示物体と同一又は類似の物体であることを示すメッセージ等を出力装置150に表示してもよい。
物体認識部116は、総合類似度が当該閾値未満であると判定した場合(S14:No)、物体認識処理を終了する。また、当該場合において、物体認識部116は、画像表示部112を介して、認識対象物体が教示物体と同一又は類似の物体ではないことを示すメッセージ等を出力装置150に表示してもよい。
なお、ステップS11における認識対象物体の各部分領域の位置姿勢の推定、及びステップS12における総合位置姿勢の推定を行わずに、ステップS13において総合類似度が所定の閾値以上であった場合にのみ、ステップS14の処理の前に、認識対象物体の各部分領域の位置姿勢及び総合位置姿勢の推定が実行されてもよい。
図11は、教示物体における部分領域が階層的に記述されている場合における物体認識処理の一例を示すフローチャートである。図11の処理の前に、物体認識部116は、認識対象物体の画像を画像取得部111から取得しているものとする。さらに、物体認識部116は、図11の処理の前に、比較対象の教示物体の認識手法データを認識手法情報132から取得しているものとする。物体認識部116は、教示物体の認識手法データにおいて部分領域が階層的に記述されていると判定した場合に図11の処理を実行する。
まず、物体認識部116は、認識手法データを参照して、認識対象物体の画像から各部分領域を抽出し、抽出した各部分領域について、上位の階層に位置する部分領域から順に、ステップS21〜ステップS23の処理を実行する。
なお、物体認識部116が認識対象物体全体の画像から各部分領域の画像を抽出するのではなく、画像取得部111が、認識手法データを参照して、認識対象物体の各部分領域の撮影を端末200に依頼してもよい。なお、認識対象物体の各部分領域の撮影は、一斉に行われてもよいし、1つの部分領域の撮影と、当該1つの部分領域に対するステップS21〜S23の処理と、からなる一連の処理が順次実行されてもよい。
ステップS21では、物体認識部116は、認識手法データが示す当該部分領域に対応する認識手法及びパラメータに基づいて、認識対象物体の当該部分領域の位置姿勢の推定と、認識対象物体の当該部分領域と教示物体の当該部分領域との類似度の算出と、を実行する(S21)。
続いて、物体認識部116は、ステップS21で算出した部分領域間の類似度が所定の閾値以上であるか否かを判定する(S22)。物体認識部116は、類似度が当該閾値未満であると判定した場合(S22:No)、ステップS21〜ステップS23の処理を未実行の部分領域に対してもステップS21〜ステップS23の処理を行うことなく物体認識処理を終了する。また、当該場合において、物体認識部116は、画像表示部112を介して、認識対象物体が教示物体と同一又は類似の物体であることを示すメッセージ等を出力装置150に表示してもよい。
なお、当該所定の閾値は、部分領域ごとに異なってもよい。なお、例えば、複数の認識対象物体それぞれに対して図11における物体認識処理が行われた場合であって、ステップS22において所定確率以上で、又は所定確率以下で類似度が閾値未満であると判定された部分領域が存在する場合、物体認識部116は、例えば、画像表示部112を介して当該部分領域を示すアラートを出力装置150に出力してもよい。これにより、例えば、極めて高い確率で類似とされる部分領域や、極めて低い確率で非類似とされる部分領域について、ユーザは設定対象の部分領域として適切であるか否かを検証することができる。
物体認識部116は、類似度が当該閾値以上であると判定した場合(S22:Yes)、ステップS21で推定した位置姿勢に基づいて、認識対象物体の総合位置姿勢を更新する(S23)。具体的には、物体認識部116は、実行済みのステップS23で推定した各部分領域における位置姿勢の単純平均、当該各部分領域における位置姿勢の重みづけ平均、又は実行済みのステップS23で算出された類似度が最大である部分領域の位置姿勢等を、総合位置姿勢に決定する。
全ての部分領域に対して、ステップS21〜ステップS23の処理が終了すると、物体認識部116は、画像表示部112を介して総合位置姿勢を出力装置150に出力し(S24)、物体認識処理を終了する。また、当該場合において、物体認識部116は、画像表示部112を介して、認識対象物体が教示物体と同一又は類似の物体であることを示すメッセージ等を出力装置150に表示してもよい。
なお、例えば、部分領域のうち靴サイズを示すシールやセール品あることを示すシール等のような、文字情報のみが認識処理対象でありその貼付位置には大きな意味がない部分領域、の認識時には、類似度のみを考慮してもよい。例えば、この場合、図10及び図11における総合位置姿勢の推定において、全ての重みが0である平均値を総合位置姿勢として推定すればよい。
なお、図10では複数の部分領域が並列に設定された場合の処理例、図11では複数の部分領域が階層的に設定された場合の処理例を説明したが、並列に設定された複数の部分領域の一部の上位又は下位の階層に部分領域が設定されていてもよい。この場合、例えば、階層的に設定されている部分領域に対して図11の処理が実行されてから、並列に設定されている部分領域に対して図10の処理が実行される。
図12は、部分領域の選択及び認識手法の設定を受け付けるための表示画面の別例である。図7との相違点を説明する。複数の部分領域が設定された場合、認識手法設定領域720において、設定された部分領域における認識順序を設定することができる。設定された認識順序は認識手法データに格納される。
例えば、設定された認識順序に従って各部分領域の階層が設定されてもよいし、設定された認識順序に従って総合位置姿勢及び総合類似度を重みづけ平均によって算出する場合における各部分領域に対応する重みが決定されてもよい。これにより、ユーザは各部分領域の特徴に合わせて柔軟に認識処理を変更することができる。
図13は、物体認識処理開始前の表示画面の一例である。例えば、物体認識部116が認識対象物体の画像と、指定された教示物体の部分領域及び認識手法の情報と、を取得すると、画像表示部112は、表示画面800を出力装置150に出力する。表示画面800は、例えば、認識対象物品画像表示領域810、部分領域表示領域820、及び設定完了ボタン830を含む。
認識対象物品画像表示領域810には、認識対象物品の画像が表示される。部分領域表示領域820には、指定された教示物体の部分領域の名称及び、各名称に対応するチェックボックスと、が表示されている。チェックボックスにチェックが入っている部分領域のみが物体認識処理において用いられる部分領域となる。
このようにチェックボックスが用意されていることで、物体認識処理開始時にもユーザは認識処理を変更することができる。特に、ユーザは、実際の認識対象物体の画像を見ながら、不要な部分領域を再度選択することができる。
具体的には、例えば、靴を収納する箱が教示物体であり、箱に貼付されたシールが部分領域として設定されたとする。物体認識処理時には、認識対象物体である箱の当該部分領域には期間限定の(教示物体登録時のシールとは異なる)シールが貼付されている場合等がある。このような場合に、シール部分を部分領域としての認識対象外とすることにより、再度教示物体を登録することなく、物体認識処理を実行することができる。
なお、部分領域表示領域820に各部分領域に対応する認識手法やパラメータが表示されていてもよい。設定完了ボタン830が選択されると、確認画面の一例である表示画面850に遷移する。
表示画面850は、例えば、認識内部処理表示領域860、戻るボタン870、及び物体認識処理開始ボタン880を含む。認識内部処理表示領域860には、各部分領域が物体認識処理に用いられるか否かを示す情報と、各部分領域における認識手法と、が表示される。なお、認識内部処理表示領域860に、当該認識手法のパラメータが表示されていてもよい。戻るボタン870が選択されると、表示画面800に遷移する。物体認識処理開始ボタン880が選択されると、物体認識処理が開始する。
図14は、部分領域の選択及び認識手法の設定を受け付けるための表示画面の別例である。前述した例では、2次元の物体認識モデルを用いていたが、図14の例のように3次元の物体認識モデルを用いることもできる。図14の例では、認識手法として3次元の特徴点マッチングが採用されている。
なお、例えば、同一又は異なる部分領域に対して、2次元の物体認識モデルと3次元の物体認識モデルとを併用してもよい。例えば、2次元の物体認識モデルは処理量が少ないものの認識精度が低く、一方、3次元の物体認識モデルは処理量が多いものの認識精度が高いものとする。
この場合、例えば、物体認識部116は、2次元の物体認識モデルによる教示物体画像と認識対象物体画像の部分領域との類似度、が所定の閾値以上であると判定した場合に、3次元の物体認識モデルによる部分領域の比較を行い、当該類似度が当該閾値未満であると判定した場合には、教示物体と認識対象物体が同一又は類似の物体ではないと判定してもよい。これにより、少ない処理量で正確な物体認識を実行することができる。
図15は、認識手法情報132におけるパラメータ設定処理の概要の一例を示す説明図である。前述した例では、パラメータを手動で設定したが、一部又は全部のパラメータが自動で設定されてもよい。図15の例では、特徴点マッチングにおける回転ずれ許容誤差が自動で設定されている。
部分領域認識手法設定部113は、前述のステップS1において、複数の教示物体画像を取得する。そして、ステップS3において、認識手法と、各教示物体画像の同一の部分領域と、が指定されると、部分領域認識手法設定部113は、複数の部分領域の回転ずれから回転ずれ許容誤差を設定する。例えば、部分領域認識手法設定部113は、複数の部分領域の回転ずれのうち最大のずれ又は(重み付き)平均値等を、回転ずれ許容誤差として採用する。これにより、人間の手作業によるパラメータ設定が不要となる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。