"認識対象を含む複数のパターンを用いて木構造の辞書を作成する学習を行う情報処理方法であって、前記学習の過程で作成される木構造の各ノードにおいて、前記認識対象が入力パターンに存在する確率の分布に基づいて当該入力パターンから複数の点を選択する選択ステップと、選択された前記複数の点における前記入力パターンの値に対する所定の関数の値に基づいて、当該入力パターンを下位のノードに分岐させる分岐ステップとを有することを特徴とする情報処理方法。前記選択ステップにおいて、前記辞書の作成効率を測る尺度に基づいて前記複数の点を選択することを特徴とする請求項1に記載の情報処理方法。認識対象が含まれる複数の学習画像と、学習画像中の認識対象の存在する領域を指定するマスク画像とを用いて木構造の辞書を作成する情報処理方法であって、前記マスク画像を参照しながら前記対象物体が存在する部分をより多く含む領域の点を参照する参照ステップと、参照した点の位置を格納した木構造の辞書を作成する作成ステップとを有することを特徴とする情報処理方法。前記参照ステップにおいて、前記認識対象が存在しない部分を参照した時、学習画像のデータを他の値で置換することを特徴とする請求項3に記載の情報処理方法。前記学習画像と前記マスク画像から一部を切り取った部分画像を新たに学習画像、マスク画像とすることを特徴とする請求項3または4に記載の情報処理方法。前記部分画像の中心の位置を前記認識対象が存在する領域からランダムに選ぶことを特徴とする請求項5に記載の情報処理方法。前記マスク画像の値は所定の範囲で連続的に変化する値となることを特徴とする請求項3乃至6のいずれか1項に記載の情報処理方法。前記マスク画像は対象物体が存在する部分から領域を拡張して作成されることを特徴とする請求項3乃至7のいずれか1項に記載の情報処理方法。前記参照ステップにおいて、前記辞書の作成効率を測る尺度に基づいて参照する点を選択することを特徴とする請求項3乃至8のいずれか1項に記載の情報処理方法。認識対象を含む複数のパターンを用いて木構造の辞書を作成する学習を行う情報処理方法であって、前記学習の過程で作成される木構造の各ノードにおいて、前記ノードの深さに応じて変化する前記入力画像における探索範囲から複数の点を選択する選択ステップと、選択された前記複数の点における前記入力パターンの値に対する所定の関数の値に基づいて、当該入力パターンを下位のノードに分岐させる分岐ステップとを有することを特徴とする情報処理方法。認識対象が含まれる複数の学習画像と、学習画像中の認識対象の存在する領域の中で信頼性の高さを記述した信頼度画像を用いて木構造の辞書を作成する情報処理方法であって、前記信頼度画像を参照しながら信頼度の高い部分をより多く含む領域を参照する参照ステップと、参照した点の位置を格納した木構造の辞書を作成する作成ステップとを有することを特徴とする情報処理方法。認識対象を含む複数のパターンを用いて木構造の辞書を作成する学習を行う情報処理装置であって、前記学習の過程で作成される木構造の各ノードにおいて、前記認識対象が入力パターンに存在する確率の分布に基づいて当該入力パターンから複数の点を選択する選択手段と、選択された前記複数の点における前記入力パターンの値に対する所定の関数の値に基づいて、当該入力パターンを下位のノードに分岐させる分岐手段とを有することを特徴とする情報処理装置。認識対象が含まれる複数の学習画像と、学習画像中の認識対象の存在する領域を指定するマスク画像を用いて木構造の辞書を作成する情報処理装置であって、前記マスク画像を参照しながら前記対象物体が存在する部分をより多く含む領域の点を参照する参照手段と、参照した点の位置を格納した木構造の辞書を作成する作成手段とを有することを特徴とする情報処理装置。認識対象を含む複数のパターンを用いて木構造の辞書を作成する学習を行う情報処理装置であって、前記学習の過程で作成される木構造の各ノードにおいて、前記ノードの深さに応じて変化する前記入力画像における探索範囲から複数の点を選択する選択手段と、選択された前記複数の点における前記入力パターンの値に対する所定の関数の値に基づいて、当該入力パターンを下位のノードに分岐させる分岐手段とを有することを特徴とする情報処理装置。認識対象が含まれる複数の学習画像と、学習画像中の認識対象の存在する領域の中で信頼性の高さを記述した信頼度画像を用いて木構造の辞書を作成する情報処理装置であって、前記信頼度画像を参照しながら信頼度の高い部分をより多く含む領域を参照する参照手段と、参照した点の位置を格納した木構造の辞書を作成する作成手段とを有することを特徴とする情報処理装置。コンピュータに、請求項1乃至12のいずれか1項に記載の情報処理方法を実行させることを特徴とするコンピュータ読み取り可能なプログラム。しかしながら、例えば山積みされた部品の認識や、人ごみの中での人物認識など、背景の変動が大きい場合は、非特許文献2にある方法はそのまま使えないという問題があった。なぜならば、未知の画像の中で背景となる部分の輝度値は学習する画像と全く異なる値となるからである。具体的には、分類木の各ノードにおいて2点の輝度値を比較する際に、対象物体とは無関係な輝度値を用いる可能性が出てくる。この結果、従来の分類木を用いたパターン認識では信頼性の低い結果しか得られないという問題があった。一方、このいわゆる背景クラッターシーンにおける物体認識問題では、従来、特許文献2にあるようなマスク画像を用いた対象物体部分のみの相関演算によるマッチングが用いられてきた。しかしながら、認識するべき問題が大規模になると、特許文献2にあるような従来の相関演算によるマッチング手法では計算時間が爆発してしまうという問題が生じる。具体的に部品認識の場合なら、判別するべき姿勢の数が面内回転を含め10,000以上になる場合がある。この場合、特許文献2にある方法は現実的な処理時間では実行不可能となる。そこで、本発明によれば、認識対象を含む複数のパターンを用いて木構造の辞書を作成する学習を行う情報処理方法に、前記学習の過程で作成される木構造の各ノードにおいて、前記認識対象が入力パターンに存在する確率の分布に基づいて当該入力パターンから複数の点を選択する選択ステップと、選択された前記複数の点における前記入力パターンの値に対する所定の関数の値に基づいて、当該入力パターンを下位のノードに分岐させる分岐ステップとを備える。本発明によれば、高速かつ高精度に対象物体の認識が実現できるという効果がある。特に、山積みされた部品や、人ごみでの人物検出のように背景に対象物体と同じようなものが重なった場合にその効果が大きい。以下、添付図面を参照しながら本発明の実施形態を説明する。<実施形態1>図1は、本実施形態による情報処理方法の基本的な処理手順を説明するフローチャートである。図1を詳述する前に本実施形態の情報処理方法が実現される装置構成について説明する。図2は以下に説明する各実施形態に係わる情報処理方法が適用される情報処理装置のハードウェア構成を示すブロック図である。本実施形態に係わる情報処理方法は、外部記憶装置201、中央処理装置CPU202、メモリ203、入出力装置204から構成される装置に実装される。外部記憶装置201は、本実施形態の各種処理を実現するプログラムや、学習パターン、学習パターンを用いて作成された辞書等を保持する。また、本実施形態によって導かれた新規パターンの認識結果を保持してもよい。中央処理装置CPU202は情報処理方法のプログラムを実行したり、すべての装置の制御を行なったりする。メモリ203は中央処理装置CPU202が使用するプログラム、及びサブルーチンやデータを一時的に記録する。また、本実施形態によって導かれた新規パターンの認識結果を保持してもよい。入出力装置204は、新規パターンを取り込んだり、ユーザからの指示入力を処理したりする。例えば、パターンとして2次元の画像を用いる場合は、入出力装置204は対象物体を撮影するカメラを含む。また、入出力装置204は、パターン認識結果を他の情報処理装置へ出力したりする。また、本実施形態の情報処理方法を実現するプログラム実行のトリガーを、この入出力装置を介してユーザが出す場合もある。また、ユーザが結果を見たり、プログラムのパラメータ制御をこの入出力装置を介して行うこともある。また、結果の出力先としては、人間ユーザではなく、例えばロボットを制御する装置などのマシンの場合も有り得る。機械学習によるパターン認識手法では、多くのパターンから学習をする学習過程と新規の入力パターンを解析する認識過程の2つの過程が存在する。図1は学習過程を詳しく説明した図となる。以下、図1のフローチャートを図6に示す作成されたツリーの例を用いながら詳述する。なお、認識過程の詳細は、図7につき後述する。学習過程は、大きく図1aと図1bの2つのルーチンに分けられる。なお、図1bのルーチンは再帰呼び出しされることに注意する。図1に示したフローチャートを実行することによって、学習パターンの集合が再帰的に分割されていくことになる。そして、その結果として、図6に示すような木構造の辞書=木構造を持った判別器が出来上がる。つまり、木構造の辞書もしくは木構造の判別器を作成することは、論理的には、学習パターンの集合を再帰的に分割することと等価となる。最初に、ステップS101で、ルートノードに学習パターンマスクパターンの全てを格納する。学習パターンとマスクパターンの例を図3に示す。図3のaが学習パターンをbがその学習パターンに対応するマスクパターンを示している。そして、abそれぞれ1000ピクセル×1000ピクセルの画像だとする。図3のaには301に示すダルマのような形の認識対象となる対象物が写っており、その後ろに302、303のような対象物以外の物が写っている。301の対象物が存在する場所を指定するのがbのマスクパターンの304であり、その他の部分が305の部分となる。図3bのマスクパターンは、304で示した図の部分のピクセルの値をある正の定数例えば255とし、305で示した地の部分のピクセル値を0とするのが通常の例である。しかしながら、図と地の部分は明確でない場合もあるため、0と255の間の値=1~254が格納されたピクセルがあってもよい。あるいは、マスクパターンを対象物よりも拡張してもよい。また、マスクパターンの画素値として浮動小数点を用いてもよい。また、図3で示した例は、パターンとして画像を用いた方法であったが、一般にN次元の特徴ベクトルをパターンとして用いてもよい。ここで次元とはこれまで述べた画像におけるピクセルに相当するものであり、1000ピクセル×1000ピクセルの画像は1000,000次元のパターンと解釈することができる。また、一般の特徴ベクトルをパターンとして扱う場合、地となる次元は例えば、値がわからない、いわゆる欠損特徴次元であってもよい。図3で示した学習パターンとマスクパターンは1組だったが、学習過程において用いる学習パターンとマスクパターンはこの組が2つ以上存在することとなる。そして、それぞれの組にクラスパターンの種類名称が付加されているいわゆる教師付き学習が行われる。次にステップS102で、ルートノードをカレントノードとして設定する。ここでルートノードとはツリーの一番根元に存在するノードのことを言い、図6の601のノードを意味する。カレントノードとは、学習過程および認識過程において現在処理しているノードを意味する。ステップS103で、図1bに示すカレントノードを展開するサブルーチンを呼んで、このサブルーチンから帰ってきたら学習過程は終了となる。なお、図6では601から609まで番号順にカレントノードは移動することとなる。図1bは、ノードを展開するサブルーチンを説明したフローチャートである。まず、ステップS104でカレントノードがnullノードもしくはleafノードかを判断する。そして、カレントノードがnullノードもしくはleafノードであった場合、図1bのサブルーチンは終了する。ここで、カレントノードに学習パターンが全く含まれない場合、そのノードはnullノードとする。また、カレントノードに残っている学習パターンの集合がある一定条件を満たした場合、そのノードをleafノードとする。ここで言うある一定条件とは、例えばカレントノードに存在するクラスがK種類例えばK=10以下だった場合という条件などが考えられる。この条件でK=1に設定した場合は、カレントノードが純粋に1つのクラスしか含まないという条件となる。また、カレントノードに存在する学習パターンから情報量エントロピーを計算し、その値がある閾値以下だった場合とすることもできる。なお、この条件で閾値を0とすると、上述のカレントノードが純粋に1つのクラスしか含まない条件と同じとなる。図6の例では、603、605、606、609がleafノードであり、608がnullノードとなる。図1bのフローチャートでいうと、カレントノードに603、605、606、608、609のノードが設定された場合、ステップS104の判断はyesとなりサブルーチンが終了する。nullノードおよびleafノードは、ターミナルノードとも呼ばれ、残った学習パターンの情報が保持される。例えば、パターン認識の目的がクラス判定の場合、ターミナルノードには各クラスの存在確率が保持される。また、leafノードの条件が前述したカレントノードが純粋に1つのクラスしか含まれないであった場合、その残ったクラスの番号を情報として格納してもよい。一方、パターン認識の目的がいわゆる回帰の場合、ターミナルノードには、ある推定値もしくは推定ベクトルが格納される。ステップS104の判断でnoだった場合、サブルーチンの処理が続き、カレントノードを展開する。その処理はステップS105~S110のステップで行う。この中でステップS109が図1bのサブルーチンを再帰的に呼び出す格好になっていることに注意する。この処理の結果、学習パターンの集合が再帰的に分割されることとなる。ステップS105で、カレントノードの展開に先立ち、まずそのノードで実施するクエリーを作成する。このカレントノードのクエリーは、カレントノードに残った学習パターンの集合カレントパターン集合を用いて作成される。これはサブルーチンとして図4につき詳しく説明する。なお、ここで述べたクエリーとは、あるパターンがどの枝に属するかを判断する問い合わせのことである。C言語であれば、if文やswitch文で記述される。ステップS106で作成されたクエリーに基づいて、カレントノードに残っている学習パターン集合を分割する。この分割の数Rは、一般的にはカレントノードによって異なっていても良いが、通常は全てのノードで同じ値を用いる。また、分割は枝とも呼ばれる。特にR=2となる場合は、いわゆる2分木が作成され、図6のような形態の分類木となる。ステップS105で、図3aに示した2点306と307の輝度値比較がクエリーとして作成され、ステップS106でそれに基づいて分割がなされたとする。より具体的には、座標x1,y1の輝度が座標x2,y2の輝度より大きい場合、下位の左のノード枝へ分かれ、それ以外の場合、下位の右のノード枝へ分かれるとする。カレントノードに図3の学習パターンが含まれていたとすると、このクエリーによってこの学習パターンは左か右のノードへ移る。従来の分類木作成のアルゴリズムでは、図と地の部分に関係なく306と307の2点の輝度を比較してどちらのノードに移るか決めていた。これに対して、本実施形態の分類木作成方法では、図3bのマスクパターンを用いて分岐の仕方を制御する。具体的には、図3の学習パターンにおいて、306の点は図の部分に位置するので、図3aの輝度データをそのまま用いる。これに対して、307の点は地の部分に位置するので、その位置の値をそのまま使用せず、例えば0というようなある定数に置換して用いる。あるいは、地の部分の輝度としてある範囲例えば0~255までの一様分布に基づいた確率変数を発生させて、その値を用いるなど、連続的に変化する値を用いてもよい。また、図の部分の輝度分布、具体的には304で示した領域の輝度分布に基づいた確率変数を発生させて、その値を用いてもよい。また、全学習パターンの図の部分の輝度分布を予め集計しておいて、その輝度分布に基づいた確率変数を発生させて、その値を用いてもよい。一例としては、イラストのような線画で構成された物体が認識対象である場合、ピクセルの値としては、黒輝度が0と白輝度が255しかない。この時、全学習パターンの図の部分に黒い線が10あったとする。すると、1/10の確率で0、9/10の確率で255の値をとる確率変数を用いて地の部分の輝度として採用することになる。以上説明してきたのは、2点の輝度の大小を比較するクエリーであったが、例えば2つの点の輝度差がある値以上か未満かで分岐することも考えられる。また、一方の点の輝度がもう一方の点の輝度ある値以上か未満かで分岐することも考えられる。また、2点ではなく3以上のn点を選択し、その輝度の総和がある値以上か未満かで分岐することもできる。より一般的には、複数の点を選択し、その複数の点の輝度の値ベクトルを入力とするある関数の値が、ある値以上か未満かで分岐することができる。更に、輝度以外に入力画像に所定の変換を加えて得られる特徴量ベクトルの中のn次元の値を比較してもよい。ステップS107~S110は分割毎のループで、ステップS108で分割iをカレントノードに設定し、ステップS109で図1bのサブルーチンを再帰呼び出しする。次に、図4と図5を用いて、ステップS105のクエリー作成のサブルーチンを詳しく説明する。まず、カレントノードに存在するマスクパターンを加算、または積算するステップS401。そして、この結果を確率密度関数に変換するステップS402。つまり、全区間の積分値が1となるように分布の関数を正規化する。そして、その確率密度関数に基づいて確率変数を生成するステップS403。この値をクエリーの際に参照する点として利用する。以下数式で説明する。カレントノードに学習パターンがZ個残っているとする。そして、i番目1≦i≦Zの学習パターンのマスクパターンをベクトルMi=Mi1,Mi2,Minで表す。するとマスクパターンを加算したベクトルAはとなる。また、マスクパターンを積算したベクトルBはとなる。正規化はと変換することを意味する。なお、積算すると、必ずカレントノードに存在する学習パターン全ての図を貫く次元が選択できる。半面、積算では、0以外の値を持つ次元が加算演算に比べて少なくなる。加算するか積算するかはどちらでもよいが、積算する場合は全部の値が0となる場合があることに注意する。また、加算、もしくは積算した後でn乗や、べき乗したりして確率密度関数を先鋭化することもできる。一般にはある変換関数を施すことで加算、もしくは積算後の関数形を修飾することができる。図5を用いて、ステップS401の処理を具体的に説明する。図5の4つのグラフにおいて、横軸は次元ラスタスキャン等によるマスクパターン上の位置を示し、縦軸はマスクパターンの値を示す。次元とは特徴ベクトルの次元のことであり、例えば、図3においては全部の次元数は1000000=1000×1000であるが、図5においては次元の数は7と非常に少ない。なお、図5においては、説明を簡単にするために次元を7と小さくしているが、次元の数の大小は、本実施形態のクエリー作成ステップには関係ない。説明をわかりやすくするために、ノードに学習パターンが2つ残っていると仮定する。例えば図6の604のノードに対応する。なお、ルートノードでは全学習パターンが残っており、一般的にはn個の学習パターンが残っている。以下の説明で2つの学習パターンおよびマスクパターンと記述している所をn個の学習パターンおよびマスクパターンとすれば一般的なノードでの説明となる。図5のabは、ノードにある2つの学習パターンに対応するマスクパターンをグラフとして表示したものである。図5のabにおいて、図の存在確率が1~5の5段階で表現されているとする。図5を見ればわかるように、aの第2次元と第6次元とbの第1次元と第4次元の値が0となっている。結局、aの第2次元と第6次元とbの第1次元と第4次元は地の部分で、それ以外の次元が図の部分となっていることがわかる。この2つのマスクパターンを各次元で加算したものがcとなり、積算したものがdとなる。ステップS402において、cの関数またはdの関数を正規化し、ステップS403においてその関数を確率密度関数として確率変数を生成する。この結果、得られた確率変数は次元の値を持つことになる。パターンが図3のような画像の場合、図4に示したフローチャートでクエリー点が決定される。つまり、どの点ピクセルを参照するかということが決定される。そして、このようにクエリー点を選択することによって、より図の部分からクエリー点を選ぶことができるようになる。なお、図3で説明したように高い確率で図からの2点のクエリー点を選択するためには、確率変数を2回発生させる。以上、説明してきた方法は、ランダムにクエリー点を選択する方法であった。しかし、何らかのクエリー効率を見ながら、それが最高になるクエリー点を選択することも可能である。ここでクエリー効率とは、クエリーによって学習パターン集合が分割される際のある尺度での効率を意味する。例えば、尺度としてパターンの数を指標として採用したとする。この時、あるノードに存在する学習パターン集合が例えば100個の要素からなるとする。クエリー効率が最も良い分割は2分岐の場合50個と50個に学習パターン集合を分割する場合で、最も効率の悪い分割は0個と100個に分割する場合となる。なお、クエリーの全可能性の中から、最も効率の良いクエリー点を選択するのが困難な場合がありうる。その場合は、図4、図5を用いて説明したランダムにクエリー点を選択するステップをある程度の回数例えば1000回試行し、その中で最も効率がよかったものを選ぶこともできる。また、ここで説明したクエリー効率を図る尺度としては情報量エントロピーや、非特許文献1に記載されているGini係数などを採用してもよい。なお、図4、図5で説明した方法は、ノードに存在するマスクパターン全部を無差別に利用するものであった。しかし、マスクパターンの帰属するクラスに応じて重み付けして利用してもよい。例えばノードに存在する学習パターンの中で最も数が少ない、または、多いクラスに対応するマスクパターンのみを用いる方法も考えられる。図7は、新規の未学習パターンを図1で作成した木構造の辞書を用いて検出する過程を記述したフローチャートである。まず、ステップS701で、カレントノードをルートノードに設定する。次にカレントノードがターミナルノードnullノードもしくはleafノードであるかどうかの判断を行うステップS702。もしカレントノードがターミナルノードであった場合、認識結果にそのターミナルノードの情報をセットし、サブルーチンを終了する。もしカレントノードがターミナルノードでない場合、カレントノードに格納されているクエリーに基づいて枝番号を計算するステップS703。そして、計算された枝番号の子ノードをカレントノードに設定するステップS704。続いて、ステップS702のカレントノードがターミナルノードかどうかの判定ステップに戻る。この結果、図7に示したフローチャートでは、ルートノードからnullノードもしくはleafノードに到達するまでtreeをたどることになる。ここで最も重要なのは、学習過程ではマスクパターンが重要であったのに対して、認識過程ではマスクパターンは全く必要ないということである。マスクパターンの情報は、学習過程の各ノードのクエリーを作成するステップステップS105で用いられるだけであり、認識過程では用いられない。この点が特許文献2にある従来のマスクパターンを用いるテンプレートマッチング方法と本実施形態とが決定的に異なる部分である。<実施形態2>図8、図9を用いて実施形態2を説明する。図8は学習過程を示したフローチャートであり、図9は認識過程を示したフローチャートである。実施形態1では、1つの木構造の判別器を作成する方法、および、1つの木構造の判別器を用いてパターンを解析する方法を述べた。これに対して、実施形態2では、複数の木構造の判別器を生成する方法、および、複数の木構造の判別器を用いてパターンを解析する方法を述べる。木構造の判別器の個数はL個とする。通常、Lは10~100ぐらいの数になるが、2つ以上の任意の定数となる。Lを大きくすると辞書サイズが大きくなるが、認識率は向上する。一方、Lを小さくすると辞書はコンパクトになるが、認識率は低下する。学習過程はtree番号が1からLのループステップS801とステップS803で括られたループを実施する。ループの中で図1の学習過程がサブルーチンとして呼び出されるステップS802。ループの中でステップS802のサブルーチン呼び出しは全く独立に行われる。つまり、ステップS801~S803のループ処理は単純にマルチスレッド、マルチタスクで行っても何の問題もない。また、複数の計算機を用いて実行することも容易である。図8で示した複数L個の木構造の判別器を作成する方法は、並列計算向きであり、並列度を高くすると極めて高速に実行できると言える。次に、図9のフローチャートで認識過程を説明する。認識過程は判別器tree番号が1からLまでのループステップS901~S903の後、最終的に得られたL個の判別器の結果を集計するステップステップS904がある。ループの中で図7の木構造を用いた認識過程がサブルーチンとして呼び出されるステップS902。ステップS904では、L個の認識結果を集計し、最終的なパターン認識結果を得る。集計方法としては、いろいろなものが考えられる。例えばパターン認識のタスクがクラス判定タスクだったとすると、図7の判別器の結果は各クラスの存在確率ベクトルとなる。この時、ステップS904の集計としては、L個の存在確率ベクトルの相加平均や、相乗平均などが考えられる。図9の認識過程も図8の学習過程と同様に並列処理に向いており、並列度を高くすると非常に高速に処理できる。<実施形態3>本実施形態は、パターンとして画像を扱う1つの例である。本実施形態の処理の流れを図10の模式図を用いて説明する。本実施形態では、1枚の学習画像からM枚の部分画像が抽出される。これを部分画像集合と呼ぶ。この部分画像集合を構成する部分画像同士は重なりがなくても良いが、重なりがあるように網羅的に元の学習画像から抽出されることが望ましい。例えば、学習画像のサイズが100×100ピクセルで、部分画像のサイズが50×50ピクセルだったとする。この場合、ピクセルとピクセルの中間の位置いわゆるサブピクセルを考慮に入れないとすると、1枚の学習画像から抽出される全部分画像は2601=51×51枚となる。なお、重なりのない部分画像を抽出したとすると全部で2×2=4枚の部分画像が得られる。図10aに示す部分画像集合は2601枚ある全部分画像中の出来るだけ多くの部分画像からなることが望ましい。最終的な学習部分画像群としては、同じクラスの学習部分画像がそれぞれM枚ずつ、全部でM×N枚の学習部分画像が得られる。学習画像から学習部分画像を抽出したのと全く同じ方法で、学習マスク画像から学習部分マスクパターンを抽出する。そして、それを学習部分マスクパターンとする。具体的に学習部分マスクパターンとは、抽出された学習部分画像の中で対象物が存在している部分の画素値が1で、それ以外の部分の画素値が0となるようなパターン画像となる。図10aで示したN枚の登録画像学習画像の一枚一枚が図3で示したように学習画像学習パターンとマスクパターンから構成されていると考えることができる。そして、この学習部分画像群と学習部分マスクパターン群を用いて2分木を作成していく図10b。全部でL個分類木が存在するので、この分類木作成はL回行われる。分類木作成の際、各分類木のノードでは、例えば2つのピクセルを選ぶ。そして、そのピクセルの輝度比較をすることにより、学習部分画像の集合を再帰的に分割していく。なお、本実施形態におけるクエリー作成方法は具体的には図4、図5で説明した方法と同じ方法を用いる。この学習過程をフローチャートにしたものが図11である。ステップS1101の部分画像を取り出し学習パターン集合を作成の処理が図10aで説明した処理となる。そして、ステップS1102のtreeアンサンブルを作成する処理が図10bで説明した処理となり、具体的には図8のフローチャートをサブルーチンとして呼び出す。なお、図10の模式図では1枚の学習登録画像から抽出されるM枚の部分画像を全て同一視することで、学習過程におけるクラスの数がNだとした。これに対して、M枚の部分画像を学習画像中の位置を用いて区別し、全部でM×N個種類のクラスがあるとすることもできる。次に、本実施形態の認識過程を図12のフローチャートを用いて説明する。一例として、新規入力画像のサイズが1280×1024、部分画像のサイズを50×50だとする。すると、サブピクセルを考慮しなければ、新規入力画像の中に部分画像が1200225=1231×975個設定し得ることになるX=1280-501、Y=1024-501。基本的に、ステップS1201とステップS1206にはさまれたループはこの数のループとなる。但し、必ずしも1200225回繰り返しを実行する必要はなく、途中スキップして実行することによって高速化してもよい。部分画像のループの中でtree番号のループステップS1203~S1205が実行される。つまり、2重のループが実行される。なお、この2つのループはお互い独立なので、ループの内側外側を入れ替えても良い。ループの一番深い所でステップS1204のi番目の判別器が実行される。これは実際には図9のフローチャートがサブルーチンとして呼び出される。最後に、ステップS1207のXYL個の判別結果を集計する処理で最終的な認識結果が得られる。この結果、1280×1024のサイズの入力画像の中に存在する100×100のサイズの学習画像が検出されることとなる。集計方法としてそれぞれのクラスの存在確率ベクトルの相加平均、相乗平均などの処理を行うこともできる。また、前述の部分画像の学習画像中での位置を記録したオフセットを用いて、学習画像の存在位置を投票によって求めることもできる。<実施形態4>次に、実施形態3を更に工夫した実施形態4を説明する。実施形態4における図10aで示した部分画像選択を図13を用いて説明する。なお、図13の図は図3bに示した対象物体の存在範囲を示した図と同じ図を用いた。図13において、丸で示した部分は選択された部分画像の中心位置で、その外側の正方形で囲まれた部分が選択された部分画像である。丸の位置は対象物体が存在している部分からランダムに選ぶ。図13では1301~1303の3点が選ばれている。例えば、図13においては、その選ばれた部分画像の中心点を中心に50ピクセル×50ピクセルの部分画像を抽出することになる。なお、ランダムに選択する部分画像の中心の個数は図13では3つとしたが、実施形態3にある通り、一般にはM個となる。このようにして選ばれたN×M枚の部分画像集合では、その中心位置に必ず対象物体が存在することになる。本実施形態では、このことを用いてクエリーで用いる参照点を選ぶ際の探索範囲を制限する。この様子を図にしたのが図14である。図14はノードの深さに応じて探索範囲が部分画像の中心を基点に大きくなっていくことを表している。例えば、探索範囲が一辺の長さがZの正方形だとする。図14の例では、Zが深さdの関数になっている。ここで深さdとはノードの深さであり、図6の例でいうと、深さ0のノードは601、深さ1のノードは602と607、深さ2のノードは603、604、608、609、深さ3のノードは605、606となる。なお、ここで示した例では探索範囲の一辺の長さはノードの線形関数だったが、単調増加関数なら何でもよい。また、深さ0のノード=ルートノードにおいては部分画像の中心付近の狭い範囲には対象物体が必ず存在するので、d=0の時のZの値は小さい方が良い。このようにクエリーにおける参照点の探索を予め決められた範囲に制限すると分類木の作成時間が短縮されることになる。また、部分画像の中心を対象物体の存在する部分から選択することと組み合わせることによって、非常に性能の高い分類木が作成できる。本実施形態では、部分画像の中心を対象物体存在範囲から選び、かつ、探索範囲を拡大していく方法を示した。この限定された探索範囲の中で、実施形態1に示したマスクを用いたクエリー参照点選択アルゴリズムを実行してもよい。また、マスクを全く用いずにクエリー参照点が探索範囲に等しい確率で選ばれるようにしてもよい。また、クエリー参照点を探索範囲の中から分類木作成効率に関して最適な点を選ぶようにしてもよい。<実施形態5>次に、実施形態5を説明する。実施形態1及至4では、学習画像として対象物体を撮影した2次元画像を用い、マスク画像としては対象物体の存在する領域の輝度が高い画像を用いていた。これに対して、実施形態5では、対象物体の奥行情報を表現する距離画像と、その信頼度を表現する信頼度画像を用いる。図15aに対象物体の距離画像の例を示し、図15b、図15cに信頼度画像の例を示す。物体の奥行き情報いわゆるZ軸方向の位置を画像化する場合、例えば、近ければ近いほど輝度を高くする。なお、ここで述べたZ軸とは3次元を構成する1つの軸で、視線方向と平行な軸である。対象物体以外の部分は無限遠とした場合、その距離画像は図15aの通り、対象物体以外の部分で0となる。図15aでダルマ型を構成する2つの半球が存在するとして、各半球の中心1501と1502が最も輝度が高く、そこから同心円状にグラデーションが生じることになる。以上説明したように、距離画像とは、例えば、距離がある値からある別の値までの範囲を0から255にスケール変換して画像化したもののことである。図15bは、ステレオ法で距離測定をした場合の信頼度画像を示している。ステレオ法の場合、図15aに示したようなテクスチャのない物体では、物体表面の対応点を取るのが困難となる。その結果、物体の中心部分1504の信頼度は低くなる。これに対して、ジャンプエッジやオクルーディングエッジの存在する物体の周辺部分1505は、対応点を探索するのが容易で、距離の信頼性も高くなる。対象物体の存在しない部分1503は、上記の説明の通り無限遠として扱い、信頼度も低いとする。なお、対象物体が完全な球の形をしている場合は、ジャンプエッジオクルーディングエッジの位置が視線方向によって変化してしまう。その結果、対象物体が完全な球で構成されている場合は、物体の周辺部分1505の距離信頼度も低くなる。しかし、図15aで示した例では、球を半分に切断したもの半球なので、物体の周辺では尖った3次元上のエッジが存在するものとする。一方、図15cに示したのが、空間コード化法やレーザー距離計を用いて距離を測定した場合の信頼度画像の例である。ステレオ法が物体周辺エッジ部分の信頼度が高いのに対して、この方法では物体の中心部分に近い場所1507の信頼度が高くなる。これは、平面性の高い部分の方がより確実な距離測定ができるためである。以上述べた通り、距離測定の方式によって一般的には信頼度の分布は異なる。しかし、学習過程と認識過程において同一の距離測定方法を採用することによって同一傾向の信頼度分布が得られるので問題ない。また、学習過程において、実際に対象物体を距離測定して距離画像図15aと信頼度画像図15bまたはcを取得する例を説明した。これに対して、CADモデルから計算される距離画像を用いて、図15aを代替することも可能である。この場合、図15bまたはcに相当する信頼度画像は、CADモデルから計算して生成することとなる。図15bで説明したステレオ法を想定した場合、ジャンプエッジやオクルーディングエッジからの距離が近ければ近いほど信頼度が高いような画像を生成する。これに対して図15cで説明した空間コード化法やレーザー距離計を用いることを想定した場合、物体表面の法線方向を計算してそれが視線方向となす角度が小さければ小さいほど信頼度が高いような画像を生成する。どちらの場合でも、もちろん、認識過程において行う距離測定の方法に準じる必要がある。実施形態5のフローチャートは、図1で説明した実施形態1のフローチャートと基本的には同じである。異なる部分は、ステップS101でルートノードに学習パターンマスクパターンを全部格納となっている所がルートノードに学習パターン信頼度パターンを全部格納となる所である。また、ステップS109のノードを展開カレントノードのサブルーチンも異なる。これを説明したのが図16である。図16のサブルーチンも、図4で説明した実施形態1のサブルーチンとほぼ同じであるが、ステップS401とステップS402のマスクパターンの部分がステップS1601とステップS1602では信頼度パターンとなっている点で異なっている。ステップS1601で信頼度パターンを加算または積算して集計し、ステップS1602で集計結果を正規化して確率密度関数を作成する。そして、ステップS1603でその確率分布に基づいて確率変数を生成することで、クエリーにおける参照点を決定する。結果として、図16で示したフローチャートの処理を行うことにより、より信頼度の高い部分からクエリーの参照点が取られることになる。なお、認識過程では信頼度パターン信頼度画像は用いないので、処理は実施形態1及至4の認識過程と全く同一となる。具体的には、図7で示したフローチャートは、実施形態5も同じとなる。また、実施形態2のように複数のツリーを学習する場合も、マスクパターンとマスク画像を信頼度パターンと信頼度画像に置き換えることで、実施形態5は実現できる。また、実施形態3及び4のように複数のサブイメージを学習する場合も、マスクパターンとマスク画像を信頼度パターンと信頼度画像に置き換えることで、実施形態5は実現できる。つまり、マスクパターンとマスク画像から部分パターンと部分画像を抽出するのではなく、信頼度パターンと信頼度画像から部分パターンと部分画像を抽出する。<実施形態6>次に、実施形態6を説明する。実施形態1及至4においては、学習データとしてN個の学習パターンとマスクパターンの組、もしくは、M×N個の学習部分パターンとマスク部分パターンの組を用いた。また、実施形態5においては、学習データとしてN個の距離パターンと信頼度パターンの組、もしくは、M×N個の距離部分パターンと信頼度部分パターンの組を用いた。これに対して、実施形態6では、学習データとしてN個の学習パターンとそれに対応するマスクパターンと距離パターンとそれに対応する信頼度パターンの組を使う。または、M×N個の学習部分パターンとそれに対応するマスク部分パターンと距離部分パターンとそれに対応する信頼度部分パターンの組を使う。図17a-dに、一組の学習データの例を示す。図17aが学習パターン学習画像の例であり、図17bが、それに対応するマスクパターンマスク画像である。これとセットで、図17Cに示す距離パターン距離画像と、それに対応する図17dに示す信頼度パターン信頼度画像を学習過程で用いる。図17aとbは図3で説明したaとbと同じ性質のものであり、図17のcとdは図15で説明したaとbと同じ性質のものである。結局、実施形態6においては、学習データが2種類存在することになる。以下、この2種類を2チャンネルと称する。なお、図17のbに示したマスクパターンマスク画像は対象物体が存在する部分の値が高く、存在しない部分の値が低いパターン画像となる。これは物体存在に関する信頼度パターン信頼度画像とみなすことも可能である。以下の説明ではマスクパターンマスク画像も信頼度パターン信頼度画像の1種と見なして説明をする。実施形態6では学習過程で木構造の辞書を作成する際に、各ノードにおいてabとcdのどちらのチャンネルを用いるかを学習の過程で選択する。それを説明したのが図18に示したaとbの2つのフローチャートである。図18のaを構成するステップS1801からステップ1804が1つの実施形態であり、bを構成するステップS1805からステップS1807までが別の実施形態である。aのフローチャートではまずステップS1801で注目するチャンネルを決定する。図17の例でいうと、図17のa及びbと図17のc及びdとのどちらを使うかを決定する。次に、そのチャンネルに対してステップS1802からステップS1804を実施する。これは図16で説明したステップS1601及至ステップS1603と全く同じ処理となる。図18のbに示した処理の例では、使用するチャンネルを決定する前に、ステップS1805でクエリーの参照点を決定する。これは例えば実施形態4で示したように、ある領域から完全にランダムに参照する2点を選択することで実現する。次にステップS1806で選んだ参照点における信頼度の総和を求める。そして最後にステップS1807でステップS1805において決定した参照点において最も信頼度の高いチャンネルを選ぶ。なお、ステップS1806において参照点における信頼度の総和ではなく、参照点における信頼度の積を計算してもよい。一般的には参照点における信頼度の増加関数を計算し、それが最も高いチャンネルをステップS1807で選択する。実施形態6における認識過程は入力データとして図17aと図17cで示した2種類のパターン画像を用いる。そして、学習過程の際に木構造の各ノードにストアされているチャンネルに応じて、どちらのチャンネルを用いるか判断する。以上、説明してきた例ではチャンネルの数は2であった。これに対して、3以上の種類モーダルのデータを用いてもよい。例えば、輝度画像、距離画像、表面温度画像の3種類のデータを用いて、学習、認識を行ってもよい。また、同じ撮影画像に対して異なる2種類の画像処理を施した2つの前処理後画像と距離画像の3種類のデータを用いて学習、認識を行ってもよい。<その他の実施形態>以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、コンピュータ読み取り可能なプログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。更に、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどとの協働で実施形態の機能が実現されてもよい。この場合、OSなどが、実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。"