(57)【要約】【課題】識別対象物の背景となるデータ分布が予測できる状況下において、背景のデータ分布を精度よく算出して学習に生かして識別精度を向上できるようにする。【解決手段】山積みされた複数の対象物体を含む画像分布を取得する分布取得手段と、前記対象物体を認識するための学習画像中の背景領域を特定する特定手段と、前記特定手段によって特定された背景領域を参照する場合に、前記分布取得手段により取得される画像分布から得られるデータを参照して前記対象物体を認識するための識別器を生成する生成手段とを備える。【選択図】図１
2017054450.tif 000002
【特許請求の範囲】
【請求項１】
山積みされた複数の対象物体を含む画像分布を取得する分布取得手段と、
前記対象物体を認識するための学習画像中の背景領域を特定する特定手段と、
前記特定手段によって特定された背景領域を参照する場合に、前記分布取得手段により取得される画像分布から得られるデータを参照して前記対象物体を認識するための識別器を生成する生成手段とを備えることを特徴とする認識装置。
【請求項２】
前記分布取得手段は、前記識別する対象と同種の対象が多数存在する際の物理的な条件に基づいて前記画像分布を取得することを特徴とする請求項１に記載の認識装置。
【請求項３】
前記山積みされた複数の対象物体を撮影して背景画像を取得する背景画像取得手段を有し、
前記分布取得手段は、前記背景画像取得手段により撮影された背景画像から前記画像分布を取得することを特徴とする請求項１または２に記載の認識装置。
【請求項４】
前記識別する対象の形状を表現する対象物モデルデータを格納する記憶媒体と、
前記識別する対象が多数山積みされた状態のシーンの情報を、シミュレーションによって背景シーンデータとして生成する背景シーンシミュレーション手段と、
前記記憶媒体に格納されている対象物モデルデータをシーンの情報に従って画像化するレンダリング手段とを有し、
前記分布取得手段は、前記レンダリング手段によって生成された画像から前記画像分布を取得することを特徴とする請求項３に記載の認識装置。
【請求項５】
前記背景画像の中から、処理対象学習姿勢と類似の姿勢である対象物が描画されている画像領域のデータを取得する類似領域取得手段を有し、
前記分布取得手段は、前記類似領域取得手段により取得された類似領域における背景領域から前記画像分布を取得することを特徴とする請求項４に記載の認識装置。
【請求項６】
前記分布取得手段は、前記類似領域において位置ごとに前記画像分布を取得することを特徴とする請求項５に記載の認識装置。
【請求項７】
前記学習画像中の背景領域を複数の領域区分に区分する領域区分設定手段を有し、
前記分布取得手段は、前記領域区分設定手段により区分された領域区分ごとに前記画像分布を取得することを特徴とする請求項１〜６の何れか１項に記載の認識装置。
【請求項８】
前記分布取得手段により取得されるデータは複数のチャネルから構成され、
前記生成手段は、前記分布取得手段により複数のチャネルごとに取得される前記画像分布から得られるデータを参照して前記対象物体を認識するための識別器を生成することを特徴とする請求項１〜７の何れか１項に記載の認識装置。
【請求項９】
前記分布取得手段は複数の処理手段を有し、
前記分布取得手段は、前記複数の処理手段の何れかを使用して、複数のチャネルごとの画像分布を取得することを特徴とする請求項８に記載の認識装置。
【請求項１０】
前記分布取得手段は、山積みされた対象の個数に応じた複数の画像分布を取得し、
前記生成手段は、前記分布取得手段により取得される複数の画像分布から得られるデータを参照して前記対象物体を認識するための識別器を生成することを特徴とする請求項１〜９の何れか１項に記載の認識装置。
【請求項１１】
山積みされた複数の対象物体を含む画像分布を取得する分布取得ステップと、
前記対象物体を認識するための学習画像中の背景領域を特定する特定ステップと、
前記特定ステップにおいて特定された背景領域を参照する場合に、前記分布取得ステップにおいて取得される画像分布から得られるデータを参照して前記対象物体を認識するための識別器を生成する生成ステップとを備えることを特徴とする認識方法。
【請求項１２】
コンピュータに、請求項１１に記載の処理方法を実行させることを特徴とするコンピュータが読み取り可能な認識用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は認識装置、認識方法及び認識用プログラムに関し、特に、データ学習して認識する技術において、学習データ中の非対象物由来のデータの影響を軽減し、高精度な識別を可能とする認識技術に関する。
【背景技術】
【０００２】
種別が既知である学習データを事前に学習しておき、未知データに対して学習データと同一種別であるかどうかの識別を行う方法が知られている（特許文献３）。そのような技術は、ロボットによる自動組み立てにも応用されている。すなわち、対象部品を姿勢ごとに別の画像として事前に学習しておき、未知の画像中から学習画像と類似する画像領域を識別することによって、部品の位置と姿勢とを検出する方法が知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３４８２６６号公報
【特許文献２】特開２００８−５９１１０号公報
【特許文献３】特開２０１１−２１６０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
学習画像と入力画像の２つの画像の類似性を識別することによって、入力画像中から識別対象物が存在する領域を識別する場合を考える。学習画像中の識別対象物ではない領域（非対象領域）が、入力画像中の識別対象物の背景と異なることは容易に起こり得る。たとえば、特許文献１では、識別対象である部品が多数山積みされた状態であることを想定している。この場合、入力画像上での識別対象物の背後には、対象物と同種類の部品が、別の姿勢で多数存在している。このような場合は、学習画像の非対象領域と入力画像における背景の特徴が異なるため、両者の画像の類似性が低下する。その結果、識別精度が低下するという課題がある。
【０００５】
この課題に対し、特許文献１では、全ての学習画像のマスクを作成しておき、このマスクを入力画像に適用しながらマスク内だけで類似度を算出することで、背景の影響を少なくする方法が開示されている。しかし、この方法では、入力画像上で検出位置をスキャンしながら、各スキャン位置で全姿勢数の（多数の）マスク処理をしながら識別処理を行う必要があり、検出時の処理速度の点で不利であるという課題があった。また、検出したい姿勢分だけの（大量の）マスク情報を保持する必要があり、検出時の使用メモリ量の点でも不利である、という課題があった。
【０００６】
また、特許文献２においては、人物画像を学習する際に様々な背景上で識別を可能にする方法が開示されている。この方法によれば、学習画像の非対象領域から得られた特徴量を、学習画像とは別の背景用画像から得られた特徴量と置換した学習データを多数生成し、これらを学習することによって背景影響を軽減しようとしている。しかし、この方法では、検出対象として想定している画像と背景として想定される画像が同種の特徴を持つ画像である場合には、検出対象と背景との区別がつかないことになり、学習が破たんする問題点があった。つまり、特許文献１が想定するような、同種部品の山積みからの部品検出のような問題には、特許文献２の方法を適用することができない、という課題があった。
【０００７】
また、ひとつの学習画像に対し、非対象領域の特徴を別画像の特徴に差し替えた多数の学習データを学習させる必要があるため、学習の処理時間やメモリ使用量の点で不利である、という課題があった。また、背景とすべきデータをどのように用意するべきかを決定する明確な方法はなく、ユーザの恣意的な判断に任されており、用意した背景データが学習精度を向上させるのに有効かどうかは明らかでない、という課題があった。
【０００８】
また、特許文献３においては、背景は学習対象と同種のものであるという前提条件に基づき、学習時に非対象領域のデータを参照した際には、学習データ全体の分布に基づいた値に置換する方法が開示されている。すなわち、学習時に非対象領域を参照した際には、全学習画像のデータ値域内の一様乱数に従った値を参照値とする。または、全ての学習画像の対象物領域内のデータの出現割合に従った値を参照値とする。
【０００９】
前述の方法によれば、背景が同種部品であるという前提条件が学習に利用されており、精度の向上が期待できる。しかし、山積み時に対象物の物理的な形状によって起こる姿勢の偏りまでは考慮されていなかった。すなわち、平たい板のような形状の対象物を自然に山積みした場合、垂直に立ち上がったような姿勢は入力画像中にほとんど現れない、ということまでは学習に利用できていなかった。
【００１０】
このように、学習時の非対象領域への参照値を学習画像のデータ分布から得た値に置き換える方法では、実際の入力データで識別対象の背景となるデータの分布を学習に利用することまではできていなかった。
本発明は前述の問題点に鑑み、識別対象物の背景となるデータ分布が予測できる状況下において、背景のデータ分布を精度よく算出して学習に生かして識別精度を向上できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の認識装置は、山積みされた複数の対象物体を含む画像分布を取得する分布取得手段と、前記対象物体を認識するための学習画像中の背景領域を特定する特定手段と、前記特定手段によって特定された背景領域を参照する場合に、前記分布取得手段により取得される画像分布から得られるデータを参照して前記対象物体を認識するための識別器を生成する生成手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、学習時に、学習データに含まれる非対象領域に対するデータを参照する際には、識別時の背景領域と類似するデータ分布から値を参照するようにしたので、識別性能を向上することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態に係る認識装置の構成図である。
【図２】第１の実施形態に係る認識装置の全体処理の手順を説明するフローチャートである。
【図３】学習画像データ・マスク画像データの一例を説明する図である。
【図４】学習姿勢リストの内容を説明する図である。
【図５Ａ】学習部の全体で行なわれる処理手順の詳細を説明するフローチャートである。
【図５Ｂ】学習部で行なわれるカレントノードの展開処理の手順の詳細を説明するフローチャートである。
【図６】決定木の模式図である。
【図７】非対象領域判定部で行なわれる処理手順を説明するフローチャートである。
【図８】第２の実施形態に係る認識装置の構成図である。
【図９】第２の実施形態に係る背景画像取得部で行われる処理手順を説明するフローチャートである。
【図１０】山積みシミュレーションされた対象物モデルの模式図である。
【図１１】レンダリングされた背景画像を説明する図である。
【図１２】第３の実施形態に係る認識装置の構成図である。
【図１３】第３の実施形態に係る認識装置の全体処理の手順を説明するフローチャートである。
【図１４】第３の実施形態に係る類似領域取得部で行う処理手順の詳細を説明するフローチャートである。
【図１５】背景分布（ヒストグラム）を説明する図である。
【発明を実施するための形態】
【００１４】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る認識装置の構成図である。
図１に示すように、計算機バス１０１に、ＣＰＵ１０２、メモリ１０３、１０４が接続されている。メモリ１０３はプログラムを格納するメモリであり、メモリ１０４はプログラムが使用するデータを格納するメモリとして別に図示しているが、同じひとつのメモリにプログラムとデータを格納する構成であってもかまわない。
【００１５】
本実施形態においては、識別する対象とするデータは立体物の画像であり、同種の立体物が多数存在し山積みされた画像中から、立体物の位置と姿勢を識別するような場合を例として説明する。したがって、以下の説明で処理対象とするデータは画像データとするが、本発明は対象を画像データに限定するものではない。たとえば、画像を何らかの特徴量に変換したデータに対しても適用可能である。たとえば、各画素位置においてＳＩＦＴ特徴量を算出した学習データを用いて識別器を生成するような場合である。
【００１６】
本実施形態においては、学習部１１０が学習する学習データはＣＧによって生成するという方法で説明する。そのため、事前に、識別したい対象物(たとえば部品)を表すモデルが、メモリ１０４中の対象物モデルデータ１２０に格納されているものとする。本実施形態においては、対象物モデルデータ１２０とは、対象物の幾何的な形状をＣＡＤなどによって表した３Ｄモデルデータであるとする。
【００１７】
しかし、学習画像データ１２１、および学習画像マスクデータ１２２と別の方法で作成する方法も可能である。たとえば、実際に対象物を撮影してその画像を学習画像データ１２１とし、その画像中で対象物が占める領域のマスクを作成して学習画像マスクデータ１２２としてもよい。その場合は、対象物モデルデータ１２０は不要であり、以下で説明する学習画像生成部１１１の実行も不要である。
【００１８】
図２は、本実施形態の認識装置により行われる全体の処理の流れを説明するフローチャートである。
初めに、Ｓ２０１では、学習画像生成部１１１により、学習画像データ１２１と学習画像マスクデータ１２２を生成し、メモリ１０４中に格納する。学習画像生成部１１１は、対象物モデルデータ１２０をレンダリング部１１２によってレンダリングし、画像を生成する機能を有する。
【００１９】
ここで、レンダリング部１１２は、ＣＧ技術を使って、３Ｄモデルをシーンの情報に従って画像化する。ここでシーンの情報とは、モデルの位置姿勢を表す情報などのことである。レンダリングした際のＺバッファの値をチェックすることで、画像内の各画素が物体領域であるか否かが判定できる。したがって、ＣＧ画像の生成と同時に、マスク画像の生成ができる。ここで、マスク画像とは、レンダリングされた画像中のモデルが描画されている領域（対象物領域）の値を１、それ以外の領域（非対象物領域）の値を０とした２値画像であるとする。以上述べたようなレンダリング部１１２が実行するレンダリング技術は、周知のＣＧ技術と同様であるので、詳細な説明は省略する。
【００２０】
学習画像生成部１１１は、３Ｄモデルの姿勢を適宜変更して、姿勢ごとに学習画像およびマスク画像を生成する。姿勢の種類については、本発明の応用先に応じて任意の設定でかまわない。たとえば、モデルのＸ軸・Ｙ軸・Ｚ軸それぞれを３０度刻みで回転させるなどとすればよい。学習する姿勢のリストは、メモリ１０４中の学習姿勢リスト１２６に格納しておく。
図４は、学習姿勢リスト１２６の内容を説明する図である。ここでは、各姿勢の学習画像ＩＤ（図４中４０１）と、Ｘ、Ｙ、Ｚ軸に何度回転させた姿勢であるかで表した姿勢パラメタを記録している。Ｘ、Ｙ、Ｚ各軸周りの回転角度は図４中４０２、４０３、４０４にあたる。姿勢総数はＮ個としている。
【００２１】
以上のようにして、学習画像生成部１１１で生成された学習画像およびマスク画像は、メモリ１０４中の学習画像データ１２１および学習画像マスクデータ１２２に画像ファイルとして格納される。それぞれの画像がどの姿勢のものであるかを管理するために、ここでは学習姿勢ＩＤをファイル名としてメモリに格納する。
【００２２】
図３は、以上のようにして生成した学習画像と学習マスク画像の２姿勢分の例である。図３（Ａ）が学習画像（３０１、３０２）を、図３（Ｂ）がマスク画像（３０３、３０４）を説明する図である。学習画像３０１と３０２は同じ部品を異なる姿勢でレンダリングした画像である。
【００２３】
マスク画像３０３は学習画像３０１と対応し、マスク画像３０４は学習画像３０２と対応しており、対応関係にある学習画像・マスク画像のファイル名は同一としてある。前述のとおり、マスク画像は、非対象物領域（３０５）では値が０、対象物領域（３０６）では値が１とする２値画像である。なお、学習画像は、レンダリングして生成した画像にエッジ抽出など何らかの画像処理を前処理として施した結果の画像を学習画像としてもかまわない。
【００２４】
前処理の種類としては、他にも、画像を何らかの特徴量へ変換する場合もある。たとえば、各画素位置におけるＳＩＦＴ特徴量を算出するような前処理もありえる。画像に前処理をかけたデータも画像と呼ぶことにする。このような場合は識別時にも入力画像に対して同等の前処理を施してから識別を行う。
【００２５】
図２のフローチャートの説明に戻る。
次に、Ｓ２０２では、背景画像取得部１１３によって背景画像を１枚以上取得し、メモリ１０４の背景画像データ１２３に格納する。背景画像取得部１１３は、入力画像において背景となる画像と類似の画像を取得する。本実施形態では、同一種別部品の山積み画像からの部品姿勢識別を想定しているため、実際に同一形状の部品(学習したい対象物)を複数個山積みし、その画像を１つ以上取得する。
【００２６】
たとえば、識別時に用いる環境および撮影装置を用いて、山積みした複数の部品を撮影すればよい。複数回撮影する際には、山積みの状態をそれぞれ変えて撮影する。撮影環境は、識別用の入力画像を撮影する環境と同一であることが好ましい。取得する背景画像の枚数については、ある程度多数であること、すなわち多種であるほど、後に説明する背景分布データが正確なものとなることが期待できるので、取得する背景画像の枚数を多くして、画像分布を多く取得する分布取得処理を行う。なお、学習画像生成部１１１において、学習画像に対して前処理をかけていた場合は、ここで取得した背景画像に対しても、同等の前処理を施してからメモリ１０４に格納しておく。
【００２７】
前述の背景画像取得部１１３は、特許文献２で行われているような、対象物と異なる種類の物体の画像を手当たり次第に背景データとして取得する方法とは、処理内容が異なっている。また、特許文献３で行われているような、学習画像から得られる対象物単品のさまざまな姿勢の画像を背景とする方法とも異なっている。部品が山積みされた場合にはどのような姿勢でも均一に起こりえるわけではなく、その部品の物理的な形状を条件とした一定の特徴を持っている。例えば、板状の平たい部品を自然に山積みした場合に、板が垂直に立つように積まれることはまれである。
【００２８】
本実施形態における背景画像取得部１１３は、対象物の物理的な性質を鑑みて作られた背景画像を取得する点を特徴としている。そのため、本実施形態では、実際に識別する対象物を山積みした画像を撮影して背景画像とする。このようにすることで、Ｓ２０２で取得する背景画像は、入力画像中の識別対象物の背後にある画像データと同様の統計的性質を持っていることが従来の方法よりも強く期待ができる。
【００２９】
次に、Ｓ２０３では、背景分布算出部１１４によって、Ｓ２０２で取得した背景画像データ１２３の分布を算出し、メモリ１０４の背景分布データ１２４に格納する。背景分布算出部１１４は、背景画像データ１２３に格納された全ての背景画像についてのヒストグラムをひとつ作成し、これをメモリ１０４中の背景分布データ１２４として格納する。ヒストグラムは正規化しておくとする。
【００３０】
図１５は、背景分布データ１２４に格納する背景分布（ヒストグラム）の説明図である。
背景画像データ１２３に含まれる複数の背景画像１５０１から背景分布１５０２を図１５に示すようなヒストグラムとして生成する。ヒストグラムは、全背景画像の画素値の頻度を表したものである。横軸は画像データの画素値（ここでは、０から２５５まで）、縦軸はその正規化された頻度を表している。
【００３１】
なお、本実施形態では、ヒストグラムによって背景画像データ１２３の分布を表現したが、他の方法を使用して分布を表現してもかまわない。たとえば、混合ガウス分布によって背景画像データ１２３のデータ分布を表現し、混合ガウス分布のパラメタ（コンポーネント数、各コンポーネントのガウス関数のパラメタ）を背景分布データ１２４として格納してもよい。
【００３２】
次に、Ｓ２０４では、学習部１１０によって学習処理を行い、学習結果をメモリ１０４中の辞書データ１２５に格納する。学習部１１０の基本手法は従来からある学習方法で構わないが、本実施形態では決定木による学習方法を基本として説明する。この方法については前述の特許文献３に詳しい。なお、特許文献３においては、学習画像を部分画像に分割して学習する方法についても述べられているが、本実施形態はそのような方法に適用することもできる。
【００３３】
決定木とは、入力されるデータに対する判定処理を複数回繰り返すことでデータを分類する方法で、周知の方法である。判定処理の具体的な方法はデータが分類できる方法ならば任意の方法でよい。本実施形態では、画像中から所定の画素位置２点を選び、その２点での画素値の大小を比較することで判定する。判定に使う画素位置を以下では「クエリ位置」と呼ぶことにする。この場合、判定処理の結果は「大か小か」の２値なので、決定木は２分木になるが、Ｎ分木になるような判定方法を用いてもかまわない。
【００３４】
図６は、２分木の模式図である。
６０１のように親ノードを持たないノードをルートノードと呼ぶ。ルートノード以外で子ノードを持つノードを中間ノードと呼ぶ（６０２、６０４、６０７）。子ノードを持たないノードを末端ノードと呼ぶ（６０３、６０５、６０６、６０８、６０９）。
学習の際には、中間ノードには判定処理に用いるクエリ位置を設定して学習画像をそのクエリ位置による判定で分類し、末端ノードにはその末端ノードに到達した学習画像の学習画像ＩＤを記録しておく。この木構造をファイルに記録したものを「辞書」と呼ぶ。
識別の際には、学習した辞書（決定木）によって入力データを分類し、入力データが到達した末端ノードに記載されている学習画像ＩＤを得る。これによって、入力画像がどの学習画像と類似しているかが識別できる。
【００３５】
以上説明したような決定木を学習する学習部１１０で行う処理手順の詳細を、図５のフローチャートを用いて説明する。フローチャートは、学習部１１０の全体処理を表す図５Ａとそのサブルーチンを表す図５Ｂに分かれている。
【００３６】
まず、学習部１１０の全体の処理の流れについて、図５Ａのフローチャートを用いて説明する。
初めに、Ｓ５０１で、ルートノードに学習画像を全てセットする。
次に、Ｓ５０２で、ルートノードをカレントノードにセットする。カレントノードとは、現在処理しているノードのことである。
【００３７】
次に、Ｓ５０３で、カレントノードを展開する。この処理の詳細は後述する。この処理が終わると決定木の学習が完了する。
次に、Ｓ５０４で、辞書データをメモリ１０４中の辞書データ１２５にファイルとして出力する。辞書データ１２５には、前述のとおり、中間ノードにおけるクエリ位置の情報と、末端ノードにおける学習画像ＩＤがファイルに記録される。
【００３８】
以上が学習部１１０で行なわれる全体処理の流れであるが、このようにして決定木を学習する処理を、学習パラメタを変更しながら複数回繰り返し、複数の辞書を生成して辞書データ１２５に格納する。ここで学習パラメタとは、たとえば中間ノードに設定するクエリ位置である。識別の際には複数の辞書を使って識別を複数回行い、その結果を多数決などの方法で統合して最終的な識別結果を決定する。このような方法は、アンサンブル識別器としてよく知られている方法であり、説明を簡単にするため詳細な図や説明は省略する。
以上で学習部１１０の全体の処理の流れの説明を終える。
【００３９】
次に、学習部１１０のＳ５０３におけるカレントノードの展開処理について、図５Ｂを用いて説明する。本処理は、学習部１１０が行う処理のサブルーチンである。
初めに、Ｓ５０５で、カレントノードが展開終了の条件を満たしているかどうかを判定する。展開終了の条件を満たすとは、カレントノードに学習画像がひとつもセットされていないか、または、カレントノードが末端ノードである条件を満たしているか、のどちらかである。末端ノードである条件とは、たとえば、木の深さが所定の制限値以上になったかどうかの条件である。または、ノードにセットされている学習画像の数が所定数以下になったという条件である。
【００４０】
展開終了の条件を満たしていれば、Ｓ５１８において、カレントノードに末端ノードの情報を記録する。すなわち、学習データのＩＤを末端ノードに記録する。なお、カレントノードにセットされている学習画像がないために展開終了の条件を満たした場合は、この末端ノードに到達した学習画像が何もないことを示す情報を記録しておく（例えば、学習画像ＩＤとして−１を記載する、など）。展開終了条件を満たしていなければ、Ｓ５０６に進む。
【００４１】
Ｓ５０６では、子ノードを２つ生成し、クエリ位置の情報をカレントノードに設定する。本実施形態においては、クエリ位置とは学習画像上の２点の画素位置の組とする。クエリ位置の設定方法については従来から多数考案されているが、本実施形態においてはそれらのうちの任意の方法を使用して構わない。たとえば、ランダムに２点を決める方法や、分割後の学習データのクラス分散を小さくするという基準でクエリ位置を選ぶ方法などがある。
【００４２】
次に、Ｓ５０７では、カレントノードにセットされている学習画像のうち、未処理である学習画像の１つを選び、これを処理対象学習画像とする。なお、Ｓ５０８〜Ｓ５１４の処理は、カレントノードにセットされている全ての学習画像について繰り返され、最終的にはすべての学習画像が処理される。
【００４３】
次に、Ｓ５０８では、現在選ばれている処理対象学習画像に対してクエリ参照処理が未処理であるクエリ位置を一つ選択し、これを処理対象クエリ位置とする。クエリ参照処理とは、Ｓ５０９からＳ５１１に示す処理である。本実施形態では、クエリ位置は２つあるので、２つのクエリ位置それぞれに対してＳ５０９〜Ｓ５１１までのクエリ参照処理を行うことになる。
【００４４】
次に、Ｓ５０９では、非対象領域判定部１１５によって、処理対象クエリ位置が処理対象学習画像上で背景領域上のものであるかどうかを判定する。ここで背景領域と呼ぶのは、学習データ中にあって識別対象の特徴を表していないデータ領域のことである。本実施形態の場合は、学習画像中にあって対象物が描画されていない「地」の部分のことである。非対象領域判定部１１５の詳細については後述する。背景領域上であると判定されればＳ５１０へ進み、そうでなければＳ５１１に進む。
【００４５】
Ｓ５１０に進んだ場合は、メモリ１０３中の背景データ参照部１１６によって背景用のデータを参照する。背景データ参照部１１６は、メモリ１０４の背景分布データ１２４が表すデータ分布に従ってデータ値を参照し、参照した値をメモリ１０４のクエリ参照値１２７にセットするものである。本実施形態における背景データ参照部１１６とは、具体的には、背景分布データ１２４であるヒストグラムが示す確率に従って、データ値をランダムに１つサンプリングするものである。背景分布データ１２４であるヒストグラムにおいて、より頻度の高い画素値が特定され、より高い確率で参照されるようになる。
【００４６】
なお、クエリ参照値１２７は、前述のようにクエリの個数分のデータ値を保持する配列であり、本実施形態ではクエリは２点としてあるので、２つのデータ値を保持できるメモリである。ここでは、処理対象クエリ位置の参照順番に応じてクエリ参照値１２７の１番目か２番目かの配列に値をセットすることとする。これについては、Ｓ５１１においてクエリ参照値１２７をセットする場合も同様である。
【００４７】
Ｓ５１１に進んだ場合は、処理対象学習画像上で、処理対象クエリ位置のデータ値（本実施形態では画素値）を参照し、メモリ１０４中のクエリ参照値１２７にセットする。
Ｓ５１２では、未参照のクエリ位置がないかどうかを判定し、あればＳ５０８に戻り、なければＳ５１３に進む。
【００４８】
次に、Ｓ５１３では、分岐判定を行い、その結果に従って処理対象学習画像を子ノードのどちらかにセットする。分岐判定とは、２つある子ノードのうちのどちらに学習画像を割り当てるかを決めることである。これは、クエリ参照値１２７に従って何らかの２分判定を行って決定する処理であり、従来から様々な方法が知られている。本発明では、分岐判定の方法は限定しないが、本実施形態では前述の通りクエリ参照値１２７に格納されている２つのデータ値の大小比較によって２分判定することとする。
【００４９】
Ｓ５１４では、カレントノードにセットされているすべての学習画像について処理が完了したかどうかを判定し、完了していなければＳ５０７に戻り、未処理の学習画像について前述の処理を繰り返す。完了していればＳ５１５に進む。
Ｓ５１５以降では、カレントノードの２つある子ノードに対し、さらに繰り返し本処理と同様のノードの展開処理を行う。
Ｓ５１５では、２つある子ノードのうち、ノード展開処理が未処理である子ノードを一つ選択して、これをカレントノードにセットする。
【００５０】
Ｓ５１６では、カレントノードの展開を行う。この処理は図５Ｂで説明している本サブルーチンの再帰呼び出しである。
Ｓ５１７では、全ての子ノードに対してノードの展開が終わったかどうかを判定する。終わっていなければＳ５１５に戻る。終わっていれば本サブルーチンを終了する。
以上で学習部１１０の説明を終える。
【００５１】
次に、非対象領域判定部１１５で行なわれる処理手順の詳細を説明する。
図７は、非対象領域判定部１１５で行なわれる処理手順を説明するフローチャートである。
まず、Ｓ７０１では、処理対象学習画像のＩＤと同じＩＤのマスク画像を、メモリ１０４中の学習画像マスクデータ１２２から取得する。前述のように、学習画像マスクデータ１２２は学習画像データ１２１と同じＩＤをファイル名として格納してあるので、学習画像に対応するマスク画像は容易に得られる。
【００５２】
次に、Ｓ７０２では、Ｓ７０１で得られたマスク画像上で、処理対象クエリ位置にあたるデータ値を参照する。マスク画像のデータ値は前述のように０か１の２値である。
Ｓ７０３では、データ値が０かどうか（非対象領域（背景）であるかどうか）を判定し、０であればＳ７０４で非対象領域（背景である）という判定を出力し、１であれば対象領域である（背景ではない）という判定を出力する。
以上で非対象領域判定部１１５の説明を終える。
以上で、本実施形態の学習部１１０に関する説明をすべて終える。
【００５３】
ここで、以上のように学習した辞書を用いて入力画像中から識別対象物の位置と姿勢を識別する識別部１０９の処理方法について述べる。学習部１１０の説明で述べたように、決定木の辞書は複数の学習パラメタを用いて複数個生成しておいた。決定木のアンサンブル識別器を使った対象物識別の方法は、従来から周知の方法であるので（特許文献３）、以下では簡単な説明にとどめる。識別部１０９は、入力画像上をスキャンしながら、それぞれの画像位置において、学習済みの複数の辞書（決定木）を用いてそれぞれ識別処理を行う。
【００５４】
すると、その位置における識別結果（学習姿勢ＩＤ）が辞書の数だけ得られる。このうち、結果が一致する辞書数が最も多かった学習姿勢ＩＤと、一致した辞書数をそのスキャン位置における「アンサンブル識別結果」として記録しておく。スキャンがすべて終わったら、アンサンブル識別結果のうち一致した辞書数が最も多いものを決め、最有力アンサンブル識別結果とする。最有力アンサンブル識別結果のスキャン位置を入力画像中の識別対象物の位置とし、学習姿勢ＩＤを識別対象物の姿勢とする。
以上で、識別部１０９の説明を終える。
以上で第１の実施形態の説明を終える。
【００５５】
以上のような構成とすることで、学習処理中に非対象物領域のデータを参照した際には、実際に山積みをしたデータから得られたデータ分布から値を参照するように学習される。そのため、学習画像と入力画像との類似性が高くなるように学習され、識別精度が向上するという効果がある。また、非対象領域から得られる特徴を差し替えた学習画像を多数生成して学習する方法にくらべ、学習時のメモリ使用量が少なくて済む、という効果がある。
【００５６】
第１の実施形態の変形例として、以下のような方法も可能である。
まず、入力画像上の領域をなんらかの領域区分設定部によっていくつかに区分しておく。領域区分設定部で行う区分方法は、領域の区分が設定できれば任意であるが、例えば画像を上下左右の４領域に均等区分するように決めておいてもよいし、ユーザに領域を選ばせるようなＧＵＩを提供してもよい。
【００５７】
Ｓ２０３で背景分布算出部１１４によって背景分布を算出する際、先に決めておいたそれぞれの領域ごとに背景分布を算出してメモリに格納する。Ｓ２０４における学習処理時には、その背景分布を使った個別の学習処理をして、それぞれ別の辞書を生成しておく。識別時には、入力画像上のどの領域区分にある画像領域を識別しようとしているかに応じて辞書を切り替えて識別する。
【００５８】
以上のようにすることで、入力画像上の位置に応じた背景分布を利用した学習をすることができ、識別性能が向上するという効果がある。たとえば、照明の偏りや、対象物周囲の障害物・光源遮蔽物などの環境条件等の原因によって、入力画像上の位置に応じて背景データの分布に偏りが想定される場合に、このような方法は効果がある。
【００５９】
第１の実施形態の変形例として、以下のような場合もある。
すなわち、データの種類が複数のチャネルからなる場合である。ここで、チャネルとは識別対象とするシーンを別種類のセンシング情報として観測したときのデータ種別のことである。たとえば、カラー画像のＲ、Ｇ、Ｂそれぞれのカラーチャネルのことである。
【００６０】
または、輝度センサの他に、距離センサを使用する場合には、距離データもひとつのチャネルとみなせる。このような場合の学習は、たとえばチャネル別に学習してチャネル別の辞書を生成したり、または、決定木の各ノードで分岐判定に使用する際にチャネルを選んで分岐判定したりすることが従来から行われている。特許文献３にも同様の方法の記載がある。
【００６１】
本実施形態において、複数のチャネルを扱う場合は、メモリ１０３に格納されている学習画像生成部１１１、レンダリング部１１２、背景画像取得部１１３、背景分布算出部１１４、背景データ参照部１１６の処理部は、チャネルごとに個別に処理を行う。したがって、メモリ１０４に格納される、学習画像データ１２１、学習画像マスクデータ１２２、背景画像データ１２３、背景分布データ１２４、はチャネルごとに個別に算出されメモリに格納される。
【００６２】
非対象領域判定部１１５については、例に挙げたようなＲ、Ｇ、Ｂチャネルや距離チャネルを利用するような場合ならば、全チャネル共通の処理で問題ない。学習部１１０は、Ｓ５０６においてクエリ位置を設定するとともにチャネルを設定してチャネルＩＤとして記録する。
Ｓ５１０で背景分布から参照する際には、設定した当該チャネル用の背景分布データに従って参照を行う。識別部１０９は、ノードに設定されているチャネルＩＤに従って入力データ中の当該チャネルのデータを参照して識別する。
【００６３】
複数のチャネルを扱う場合のさらなる変形例としては、背景分布算出部の処理内容をチャネルごとに異なるように設定する設定部を設ける方法がある。例えば、以下のように設定する。輝度チャネルに対しては前述したようにユーザが撮影した実写画像を用いて背景分布を算出する。
【００６４】
一方、距離チャネルに対しては、第２の実施形態で述べるような背景シーンシミュレーション部によって生成した距離画像を用いて背景分布を算出する。このような構成にすることで、チャネルごとに適切な背景分布算出方法が設定できる、という効果がある。たとえば、チャネルによってはユーザが背景画像データを準備する手間が大きくなるような場合がある。たとえば、距離画像を計測するための準備に手間がかかる場合、前述のように設定することで、ユーザ手順が簡略化できるという効果がある。
【００６５】
また、チャネルごとのデータの性質によってシミュレーションの精度が異なる場合もある。そのような場合は、シミュレーション精度の高いチャネルはシミュレーションを使うことでユーザの手間を省き、シミュレーション精度が望めないチャネルは手間をかけて撮影した精度の高い実データを使用する、という設定ができる。このようにして、チャネルごとのデータの性質に応じて手間のかかる方法を使って背景分布の精度を担保し、識別精度を向上できるという効果がある。
【００６６】
［第２の実施形態］
第２の実施形態においても、対象物が山積みされた画像中から対象物を識別する例で説明する。
図８は、第２の実施形態に係る認識装置の構成図である。第２の実施形態の構成は、第１の実施形態の構成と類似しているので図内の番号は同じ番号を使用している。
主な相違は以下のとおりである。メモリ１０３中の背景画像取得部１１３の処理が第１の実施形態と異なり、物理シミュレーションによって背景画像を取得するという特徴がある。また、メモリ１０３内に、背景シーンシミュレーション部１１７を有する。また、メモリ１０４内に、背景シーンデータ１２８を有する。
【００６７】
第２の実施形態における全体の処理は、背景画像取得部１１３以外の処理は、図２に示した処理と同様である。
本実施形態における背景画像取得部１１３について説明する。図９は、第２の実施形態における背景画像取得部１１３により行われる処理手順を説明するフローチャートである。
はじめに、Ｓ９０１で、背景シーンシミュレーション部１１７により、背景のシミュレーションを行う。本実施形態における背景シーンシミュレーション部１１７は、３Ｄモデルの物理シミュレーションを行う処理であり、対象物を多数落下させた山積みのシーン情報を作るような物理シミュレーションを行うものである。
【００６８】
ここで、シーン情報とは、山積みした対象物体の個数分の位置姿勢を表した位置姿勢リストである。対象物の３Ｄモデルはメモリ１０４中の対象物モデルデータ１２０に格納されているものを利用する。また、３Ｄモデルを落下させて山積み状態をシミュレーションするような物理シミュレーションの技術は周知のものであり、それを利用する。
【００６９】
図１０は、箱モデル１００２の中に対象物モデル１００１が多数山積みされた状態を横から見た様子を模式的に表した図である。箱モデル１００２は必ずしも箱状である必要はなく、平面状の床モデルであってもかまわない。図１０の例は、実際に部品ピッキングを行う際に箱の中に部品を山積みすることを鑑みて、箱モデル中で山積みするシミュレーションをした例を説明しているにすぎない。
【００７０】
座標軸１００４は、図１０のように設定してあるが、これに限らず任意の設定で構わない。カメラ１００３は、後でこのシーンをレンダリングする際のカメラの位置を説明するために記載したものである。物理シミュレーションで生成したシーン情報は、位置姿勢リストとして一つのファイルにして、メモリ１０４中の背景シーンデータ１２８に追加する。
【００７１】
背景シーンシミュレーション部１１７は複数回実行されるが、１度実行するごとに１つの位置姿勢リストのファイルが生成され、背景シーンデータ１２８に追加される。なお、山積みする対象物の個数は、所定の範囲内で毎回変動させてもよい。部品ピッキングのような用途に使用する場合、部品をピックするたびに山積みの個数は減っていくため、入力画像中で背景となる山積みの個数は一定ではないことがある。山積み個数を毎回変更することで、さまざまな状況に応じた背景分布データ１２４を算出することができ、識別性能のロバスト性を上げる効果がある。
【００７２】
図９のフローチャートの説明に戻る。
次に、Ｓ９０２で、レンダリング部１１２により、背景シーンデータ１２８中にあるＳ９０１で生成された位置姿勢リストに従って、対象物モデルが山積みされたシーンのレンダリングを行う。レンダリングされた画像をファイルとして背景画像データ１２３に追加する。背景シーンデータ１２８中の位置姿勢リストファイルと背景画像データ１２３中の背景画像ファイルとの対応関係がわかるように格納しておく。たとえば、同じファイル名でそれぞれのメモリに格納するなどすればよい。
【００７３】
図１１は、レンダリングされた背景画像の例であり、図１０におけるカメラ１００３の位置から対象物モデルの山積みをレンダリングした様子を説明する図である。
座標軸１１０３は、図１０の座標軸１００４に対応する。なお、この際、箱モデル１００２そのものはレンダリングする必要はない。もし、光源の情報がわかっていれば、光源情報に従って、よりリアルなレンダリングをしてもよい。たとえば、部品同士や箱の影を生成するなどのレンダリング処理を行ってもよい。このような光源情報を利用したレンダリングは周知の技術である。
【００７４】
もし、対象物体のマテリアル（材質）情報が既知であれば、それに従ってレンダリングをしてもよい。例えば、物体の色・反射を再現するレンダリング処理などであり、それらも周知の技術である。
なお、学習画像生成部１１１において、学習画像に対して前処理をかけていた場合は、ここで取得した背景画像に対しても同等の画像処理を施した上でメモリに格納しておく。
【００７５】
次に、Ｓ９０３で、所定数の背景画像データが生成されたかどうかを判定する。所定数の背景シーンデータ１２８および背景画像データ１２３が生成されていれば終了する。
以上で、本実施形態における背景画像取得部１１３の説明を終える。
【００７６】
本実施形態で説明した構成によれば、以下のような効果がある。
対象物の実物が複数準備できない場合でも、シミュレーションによって背景分布を算出して学習することができる。たとえば、部品を多数生産する前にピッキングシステムの学習をテストできるようになるといった効果がある。
【００７７】
また、第１の実施形態のように、ユーザが実際に部品を山積みして撮影するといった手間がかからず、自動的に背景画像を取得して学習できるといった効果がある。また、背景画像の取得が自動的であるために背景画像を大量に取得することが現実的に可能になり、背景分布データ１２４の精度の向上が見込め、識別精度が向上する、という効果がある。
【００７８】
第２の実施形態の変形例として、Ｓ９０１において背景シーンシミュレーション部１１７を実行する際の山積みする対象物の個数の設定を変更して複数回の学習を実行することも考えられる。例えば、山積みする個数の設定を、１００個、５０個、２５個、１０個、５個、などに分けておき、それぞれの設定個数で別々に学習し、前記設定個数ごとに異なる辞書を生成する。
【００７９】
また、識別時の入力データ中にいくつの対象物があるのかを推定する推定部を設ける。本発明の用途が部品ピッキングである場合は、初期に供給される部品数はおおむね既知であり、そこから部品ピックに成功した部品数も既知である場合がある。推定方法は限定しないが、例えば初期供給数からピック成功数を減じた数を推定値とすればよい。
【００８０】
または、床が写っている面積などから個数を推定する方法などでもよい。識別部１０９は、推定部で推定した対象物数に近い設定で作られた辞書を用いて識別する。本変形例のようにすることで、識別対象の背景の分布をより正しい設定で学習した辞書を使って識別することが可能になり、識別精度が向上するという効果がある。なお、この変形例のような方法は、第１の実施形態において手作業によって山積み画像を取得する場合でも適用することができる。
【００８１】
［第３の実施形態］
第３の実施形態においても、対象物が山積みされた画像中から対象物を識別する例で説明する。
図１２は、第３の実施形態の認識装置の構成図である。第３の実施形態の構成は第２の実施形態の構成と類似しているので図内の番号は同じ番号を使用している。主な相違は以下のとおりである。
【００８２】
メモリ１０３中の背景分布算出部１１４の処理内容が異なり、学習する対象物の姿勢ごとに背景分布を個別に算出するという特徴がある。これにともない、メモリ１０４中の背景分布データ１２４が、学習する姿勢ごとに個別に格納される点が異なる。また、メモリ１０３内に類似領域取得部１１８、類似姿勢判定部１１９を有する点が異なる。メモリ１０４内に、類似領域画像１２９、類似領域マスク画像１３０を有する点が異なる。また、全体の処理の手順も異なっている。
【００８３】
以下、第３の実施形態における、認識装置の全体の処理手順を図１３のフローチャートを用いて説明する。
Ｓ１３０１は、図２のＳ２０１における処理と同様であり、学習画像データ１２１および学習画像マスクデータ１２２を生成してメモリ１０４に格納する。
次に、Ｓ１３０２からＳ１３０９までの処理を、学習姿勢リスト１２６に記載の全ての姿勢に対して実行する。
【００８４】
まず、Ｓ１３０２では、メモリ１０４中の学習姿勢リスト１２６から未処理の学習姿勢を一つ選択し、これを処理対象学習姿勢とする。
次に、Ｓ１３０３では、メモリ１０４中の類似領域画像１２９と類似領域マスク画像１３０に保存されている全メモリをクリアする。
【００８５】
次に、Ｓ１３０４では、メモリ１０３中の類似領域取得部１１８により、処理対象学習姿勢と類似の姿勢である対象物が描画されている画像領域のデータを、背景画像データ１２３中から取得する。取得した画像領域の画像データは、メモリ１０４中の類似領域画像１２９に画像ファイルとして追加され、そのマスク画像が類似領域マスク画像１３０に画像ファイルとして格納される。類似領域取得部１１８の詳細については後述する。
【００８６】
なお、ある処理対象学習姿勢について、最初の１度目にこのステップを通るときには、背景画像データ１２３には以前に生成した背景シーンデータが格納されているので、そのすべての背景画像から類似領域画像の取得を試みる。同じ処理対象学習姿勢について、２度目以降にこのステップを通るときには、前回のループであらたに追加された背景画像のみから類似領域画像の取得を試みる。
【００８７】
次に、Ｓ１３０５では、類似領域画像１２９に格納されている類似領域画像が所定の個数Ｍ個に達しているかどうかを判定する。この所定の個数Ｍは１以上の任意の数でよい。Ｍ個に達していなければＳ１３０６に進む。達していればＳ１３０８に進む。なお、背景画像データ１２３に格納されている背景画像の数が所定の個数Ｎ個になっても、Ｍ個の類似領域画像が得られない場合も考えられる。ここでＮは十分に大きな数とする。
【００８８】
この場合は、Ｓ１３０５での判定条件を満たすとして、先のＳ１３０８に進むとしてもよい。その時点で得られている類似領域画像の数が０である場合は、この姿勢に対しては、第１の実施形態や第２の実施形態と同様に、背景画像データ１２３全体から背景分布データを算出すればよい。
【００８９】
または、この処理対象学習姿勢は学習しないこととして、学習姿勢リストや学習画像データからこの姿勢に対応するデータを削除し、この姿勢用の背景分布も算出しない、としてもよい。なぜならば、現在の処理対象学習姿勢は、十分に大きな回数Ｎ回の山積み物理シミュレーションを繰り返しても山積み中に類似姿勢が出現しなかった姿勢であり、入力画像中にもこの姿勢が現れない可能性が高い。したがって、学習する必要もないとも考えられるからである。
【００９０】
Ｓ１３０６では、背景シーンシミュレーション部１１７により、対象物体が多数山積みされた位置姿勢のリストをひとつ生成し、これを背景シーンデータ１２８に追加する。第２実施形態と同様、背景シーンデータ１２８に格納されたデータのそれぞれは、後に背景シーンデータに基づいてレンダリングされる背景画像データのそれぞれと対応がとれるように格納しておく。
【００９１】
次に、Ｓ１３０７では、レンダリング部１１２により、Ｓ１３０６で新規に追加した背景シーンデータに基づいて画像を生成し、メモリ１０４中の背景画像データ１２３に追加する。
Ｓ１３０８では、背景分布算出部１１４により、メモリ１０４中の類似領域画像１２９に基づいて背景分布を算出する。本実施形態における背景分布算出部１１４は、第１の実施形態、第２の実施形態における背景分布算出部１１４と異なっている。第１の実施形態、第２の実施形態における背景分布算出部１１４では、背景画像データ１２３に含まれる１つ以上複数の画像データから１つの分布を算出して背景分布データ１２４に格納した。
【００９２】
本実施形態ではそれとは異なり、類似領域画像１２９に含まれる１つ以上複数のデータから１つの分布を算出し、背景分布データ１２４に追加する。また、背景分布データ１２４は、処理対象学習姿勢ごとに１つの背景分布データを格納するメモリである点が第１の実施形態、第２の実施形態と異なる。
【００９３】
背景分布の算出は、類似領域における背景領域のヒストグラムを作るものであり、以下のように行う。類似領域マスク画像１３０を用いて、類似領域画像１２９中の対象物領域以外、すなわち背景領域にあるデータを選び、このヒストグラムを作る。このヒストグラムをこの処理対象学習姿勢用の背景分布データとして背景分布データ１２４に追加する。なお、背景分布データは学習姿勢との対応がとれるように、学習姿勢ＩＤによって互いに対応づけられるように格納しておく。例えば背景分布データ１２４の学習姿勢ごとのデータを学習姿勢ＩＤと同名のファイル名にして格納すればよい。
【００９４】
次に、Ｓ１３０９では、学習姿勢リスト１２６にある全ての学習姿勢について前述の処理が終わったかどうかを判定する。終わっていなければＳ１３０２に戻り、終わっていればＳ１３１０に進む。
Ｓ１３１０では、学習部１１０を用いて学習処理を行う。学習処理の詳細は図５Ｂに示した第１実施形態における処理とほぼ同等である。ただし、本実施形態における学習部１１０の処理は、Ｓ５１０における背景データ参照部１１６の処理が第１の実施形態、第２の実施形態と異なる。
【００９５】
本実施形態における背景データ参照部１１６は以下のように動作する。
まず、処理対象学習画像の学習姿勢ＩＤに対応する背景分布データを背景分布データ１２４中から参照する。次に、その参照した背景分布データに従って、第１の実施形態、第２の実施形態と同様の方法で、背景データを参照し、参照した値をメモリ１０４のクエリ参照値１２７にセットする。
以上で、本第３の実施形態における全体の処理の説明を終える。
【００９６】
次に、類似領域取得部１１８の詳細について説明する。
類似領域取得部１１８は、背景画像データ１２３に格納されている全ての画像中から、処理対象学習姿勢の学習画像と類似する画像領域を取得してメモリ１０４中の類似領域画像１２９に格納する処理である。
【００９７】
本実施形態では、画像として類似するものを探索するのではなく、背景画像データ１２３をレンダリングした際の個々の対象物の姿勢と処理対象学習姿勢とが類似しているかどうかによって判定する。レンダリングする際の姿勢が類似するならば画像としても類似することが期待できる。また、処理が高速であるという利点がある。もちろん、学習画像と背景画像をくまなく比較して、画像として類似する領域を取得するような方法を使用してもかまわない。
【００９８】
まず、２つの姿勢が類似しているかどうかを判定する、類似姿勢判定部１１９について説明する。この類似姿勢判定部１１９において行なわれる方法は、類似姿勢の判定ができれば任意のものでかまわない。一例をあげれば、２つの姿勢を一致させるための姿勢変換を回転軸と回転量によって定義し、回転量が所定の閾値以内であるかどうかによって２つの姿勢が類似しているかどうかを判定することができる。
【００９９】
別の例としては、簡便な方法として、Ｘ、Ｙ、Ｚ軸のそれぞれに対する回転量の違いが所定の閾値の範囲内であるかによっても判定することができる。この場合は、同じ姿勢であっても各軸の回転量が異なる表現がありえるため、類似姿勢を見逃すおそれがあるが、処理は簡便である。
【０１００】
以上のような方法によって、２つの姿勢の類似判定は可能である。または、比較する２つの姿勢でレンダリングした画像の類似度によって判定することなども可能である。このようにする場合は、姿勢の違いにより見えが大きく変わる場合とそうでない場合とで類似度の大小を区別して表現することができる。
【０１０１】
図１４は、類似領域取得部１１８で行う処理手順の詳細を説明するフローチャートである。
図１３のＳ１３０２で選択された処理対象学習姿勢は図示しないメモリに保持されているものとする。また、図１３のＳ１３０６でメモリ１０４中の背景シーンデータ１２８に追加されたひとつ分の背景シーンデータ（位置姿勢が１つ以上複数記載されたリスト）が、処理対象背景シーンデータとして図示しないメモリに保持されているものとする。ただし、ある処理対象学習姿勢について初めて本処理を実施する際には、背景シーンデータ１２８に格納されているすべての位置姿勢リストが処理対象背景シーンデータであるとする。
【０１０２】
はじめに、Ｓ１４０１では、処理対象背景シーンデータから、未処理である一つの位置姿勢を選択し、これを比較対象位置姿勢とする。以下、Ｓ１４０５までの処理を、処理対象背景シーンデータ中の全データに対して行う。
次に、Ｓ１４０２では、類似姿勢判定部１１９を用いて、処理対象学習姿勢と比較対象位置姿勢の姿勢とが類似するかどうかを判定する。類似する場合にはＳ１４０３に進み、そうでなければＳ１４０５に進む。
【０１０３】
Ｓ１４０３では、類似姿勢の画像領域を切りだし、類似領域画像１２９に格納する。これは、処理対象背景シーンデータに対応する背景画像データ中から、比較対象位置姿勢の位置に基づいて、学習画像データと同じ画像サイズの画像を切りだすものである。対象物の背景画像データ中で、比較対象位置姿勢で対象物を描画された領域は容易に知ることができるので、その領域を切りだすことは容易にできる。
【０１０４】
Ｓ１４０４では、Ｓ１４０３で切り出された類似領域画像に対し、比較対象位置姿勢で対象物が描画されている領域をマスクしたマスク画像を、メモリ１０４中の類似領域マスク画像１３０に追加する。これは、対象物領域のデータ値が０、それ以外を１とした２値画像である。
類似領域画像は、ＣＧでレンダリングされた背景画像の一部であるので、対象物モデルを比較対象位置姿勢でレンダリングした領域がどの領域なのかは容易にわかる。この類似領域マスク画像で値が１の部分が、類似領域における背景領域となる部分である。
【０１０５】
次に、Ｓ１４０５では、処理対象背景シーンデータにある全ての位置姿勢データについて処理が完了したかどうかを判定する。完了していなければＳ１４０１に戻り、完了していれば本処理を終了する。
以上で、類似領域取得部の説明を終わる。
以上で、本発明の第３の実施形態の説明を終える。
【０１０６】
前述のように、第３の実施形態の認識装置を構成することによって、以下のような効果がある。
学習対象である姿勢が山積み上で現れるためには、その背景となる物理的な状況にはいくらかの拘束条件があることが予想される。たとえば、平たい形状の対象物が立ち上がっているような姿勢であるのならば、その背後にある山積みの状態は平たく積まれた状態ではなく、乱雑な凹凸がある山積みになっている、と予想される。本実施形態の構成にすることにより、学習したい姿勢ごとに、その姿勢を生み出す背景の分布をより正確に学習することができる。
【０１０７】
第３の実施形態の変形例として、全体処理のＳ１３０８における背景分布算出を異なる方法で行うことも考えられる。Ｍ個得られた類似領域画像について類似領域マスク画像を用いて対象領域以外のデータの分布を作る点では同じである。しかし、類似領域画像全体を一つのヒストグラムにするのではなく、類似領域画像の各位置においてその位置のデータ分布をヒストグラムとして背景分布データ１２４に記録しておく。
【０１０８】
すなわち、背景分布データ１２４は、学習姿勢ごと、さらにその学習画像上の位置ごとの分布を記録したものになる。Ｓ１３１０で行う学習処理では、背景データを参照する際には、その参照位置にあたる背景分布データを用いて値を参照することにする。このようにすることで、以下のような効果がある。
【０１０９】
山積み中で対象物が特定の姿勢になるとき、識別される対象物の背後にある山積み部品の状態は対象物に対して特定の位置関係になる場合がある。例えば、ある形状の部品を自然に山積みすると、部品同士がお互いに特定の状態で嵌りあって、特定の相対姿勢になる傾向が高いような場合である。
【０１１０】
この場合、ある部品の周囲のデータ分布は位置的にも特徴を持っていることがあり、位置ごとの分布を記録しておくと分布の精度が向上する。本変形例で述べたようにすることで、特定の姿勢に対する背景分布を位置関係とともに記述することによって、特定の姿勢が起こる場合の周囲のデータ分布の特徴がより正確に表現できるようになり、識別精度が向上するという効果がある。
【０１１１】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現する認識用プログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーが認識用プログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１２】
１０１  バス
１０２  ＣＰＵ
１０３、１０４  メモリ
１０９  識別部
１１０  学習部
１１１  学習画像生成部
１１２  レンダリング部
１１３  背景画像取得部
１１４  背景分布算出部
１１５  非対象領域判定部（背景領域判定部）
１１６  背景データ参照部
【図１】
2017054450.tif 000003
【図２】
2017054450.tif 000004
【図４】
2017054450.tif 000005
【図５Ａ】
2017054450.tif 000006
【図５Ｂ】
2017054450.tif 000007
【図６】
2017054450.tif 000008
【図７】
2017054450.tif 000009
【図８】
2017054450.tif 000010
【図９】
2017054450.tif 000011
【図１２】
2017054450.tif 000012
【図１３】
2017054450.tif 000013
【図１４】
2017054450.tif 000014
【図３】
2017054450.tif 000015
【図１０】
2017054450.tif 000016
【図１１】
2017054450.tif 000017
【図１５】
2017054450.tif 000018