(57)【特許請求の範囲】
【請求項１】
対象を認識するための辞書の生成に用いられる特徴量を取得するための画素を選択する範囲を制限し、該制限された範囲から画素を選択するための情報処理装置であって、
認識の対象となる対象物体を含む学習画像のうち前記対象物体が存在している部分の領域を含み、所定の大きさをもつ部分学習画像を切り出す切り出し手段と、
前記部分学習画像の中で、特徴量を取得するための画素を選択するための範囲を制限する制限手段と、
前記部分学習画像の中で前記制限手段によって制限された範囲から、画素を選択する選択手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記切り出し手段は、前記学習画像のうち前記対象物体が存在している部分の領域から選択された画素を中心とした領域を、前記部分学習画像として切り出すことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記切り出し手段は、前記学習画像のうち前記対象物体が存在している部分の領域からランダムに選択された画素を中心とした領域を、前記部分学習画像として切り出すことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記選択手段は、前記制限された範囲で、ランダムに画素を選択することを特徴とする請求項１または２に記載の情報処理装置。
【請求項５】
前記選択手段は、前記制限された範囲のうち、前記対象物体が存在している部分の領域から前記画素を選択することを特徴とする請求項１または２に記載の情報処理装置。
【請求項６】
前記切り出し手段は、複数の部分学習画像を切り出し、
前記制限手段は、前記複数の部分学習画像それぞれに対して、同一の前記範囲を制限し、
前記選択手段は、前記範囲から、前記複数の部分学習画像それぞれをより区別するような画素を選択することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項７】
前記切り出し手段は、前記対象物体が存在している部分の領域を示すマスク情報を参照して、前記部分学習画像を切り出すことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
階層構造を有する木構造の辞書の所定のノードに設定された対象物体を含む学習画像から切り出された複数の部分学習画像を、前記複数の部分学習画像から取得される特徴量に基づいて前記ノードより下位の階層の複数の下位ノードのいずれかに分類する場合において、前記特徴量を取得する画素を選択する範囲を制限し、該制限された範囲から画素を選択する情報処理装置であって、
前記ノードの階層の深さに基づいて、前記部分学習画像それぞれにおいて前記特徴量を取得するための画素を選択するための範囲を制限する制限手段と、
前記部分学習画像における前記制限手段によって制限された範囲から、画素を選択する選択手段とを備えることを特徴とする情報処理装置。
【請求項９】
前記制限手段は、前記階層が深くなるほど、前記範囲を拡張させることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記複数の部分学習画像それぞれは、前記学習画像のうち前記対象物体が存在している部分の領域から選択された画素を中心とした領域が切り出された画像であることを特徴とする請求項８または９に記載の情報処理装置。
【請求項１１】
前記選択手段は、前記制限された範囲で、ランダムに画素を選択することを特徴とする請求項８乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記選択手段は、前記制限された範囲のうち、前記対象物体が存在している部分の領域から前記画素を選択することを特徴とする請求項８乃至１０のいずれか１項に記載の情報処理装置。
【請求項１３】
前記選択手段は、前記範囲から、前記下位ノードそれぞれに分類される前記部分学習画像の数がより均一になるような画素を選択することを特徴とする請求項８乃至１０のいずれか１項に記載の情報処理装置。
【請求項１４】
前記制限手段は、前記複数の部分学習画像それぞれにおいて制限される範囲は同一であることを特徴とする請求項８乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
対象を認識するための辞書の生成に用いられる特徴量を取得するための画素を選択する範囲を制限し、該制限された範囲から画素を選択するための情報処理方法であって、  
認識の対象となる対象物体を含む学習画像のうち前記対象物体が存在している部分の領域を含み、所定の大きさをもつ部分学習画像を切り出す切り出し工程と、
前記部分学習画像の中で、特徴量を取得するための画素を設定するための範囲を制限する制限工程と、
前記部分学習画像の中で前記制限工程において制限された範囲から、画素を選択する選択工程とを備えることを特徴とする情報処理方法。
【請求項１６】
階層構造を有する木構造の辞書の所定のノードに設定された認識対象を含む学習画像から切り出された複数の部分学習画像を、前記複数の部分学習画像から取得される特徴量に基づいて前記ノードより下位の階層の複数の下位ノードのいずれかに分類する場合において、前記特徴量を取得する画素を選択する範囲を制限し、該制限された範囲から画素を選択する情報処理方法であって、
前記ノードの階層の深さに基づいて、前記部分学習画像それぞれにおいて前記特徴量を取得するための画素を選択するための範囲を制限する制限工程と、
前記部分学習画像における前記制限工程において制限された範囲から、画素を選択する選択工程とを備えることを特徴とする情報処理方法。
【請求項１７】
コンピュータを、請求項１乃至１４のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予め学習されたパターンに基づき新規パターンを解析するパターン認識方法に関するものである。具体的な例を挙げると、パターンとして対象物を撮像した画像を用い、対象物の名称、種類、３次元上の存在位置、姿勢等の情報を推定する実装形態がある。ここでいう対象物とは任意の物体を表し、例えば、人、動物、臓器、自動車、カメラ、プリンタ、半導体基板など何でもよい。また、更に一般的な適用例としては対象とする物理現象を測定した計測値をパターンとして用いる実施形態もある。
【背景技術】
【０００２】
従来、学習パターンを用いて新規パターンを解析する機械学習の技術がある。その中でも、分類木、決定木と呼ばれるパターン認識手法（非特許文献１参照）が提案され、多くのシステムで用いられてきた。この手法は木構造（ツリー構造とも呼ばれる）を用いて高速にパターンを解析できるという性質を持っており、計算機の能力の貧弱な時代にはその能力を発揮してきた。
【０００３】
なお、パターン認識問題をパターン識別問題として捉えたとき、識別するべきパターンの種類を“クラス”と呼び、以下の説明で“クラス”という用語はこの意味で用いる。
【０００４】
一方、非特許文献１にあるような古典的な分類木、決定木の欠点として、認識性能があまり高くないということが挙げられる。
【０００５】
この欠点を克服する技術として、例えば特許文献１にあるような分類木の集合（アンサンブル）を用いた手法が提案されている。これは分類木をＬ個（Ｌは２以上の定数であり、通常は１０〜１００の範囲）作成し、それら全部を用いることによって、より高い認識性能を実現する技術である。
【０００６】
この分類木の集合（アンサンブル）を用いた手法をコンピュータビジョンに応用した例としては非特許文献２に記載のものがある。非特許文献２では、３２ピクセル×３２ピクセルの画像を対象として、その輝度値を元に分類木を作成している。より具体的には、分類木の各ノードにおいてランダムに３２ピクセル×３２ピクセルの画像上の２点を選び、その輝度値を比較することによって枝の分岐を実現している。この処理は非常に高速にでき、かつ、認識精度も十分高いという報告が同文献の中でされている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】ＵＳＰ６，００９，１９９
【特許文献２】特許第０３１６６９０５
【非特許文献】
【０００８】
【非特許文献１】Ｌｅｏ  Ｂｒｅｉｍａｎ，  Ｊｅｒｏｍｅ  Ｆｒｉｅｄｍａｎ，  Ｃｈａｒｌｅｓ  Ｊ．  Ｓｔｏｎｅ，  ａｎｄ  Ｒ．Ａ．  Ｏｌｓｈｅｎ，  “Ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ａｎｄ  Ｒｅｇｒｅｓｓｉｏｎ  Ｔｒｅｅｓ”，  Ｃｈａｐｍａｎ  ＆  Ｈａｌｌ／ＣＲＣ  （１９８４）
【非特許文献２】Ｖｉｎｃｅｎｔ  Ｌｅｐｅｔｉｔ  ａｎｄ  Ｐａｓｃａｌ  Ｆｕａ，  “Ｋｅｙｐｏｉｎｔ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｕｓｉｎｇ  Ｒａｎｄｏｍｉｚｅｄ  Ｔｒｅｅｓ”，  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ  （２００６）  ｐｐ．１４６５−ｐｐ．１４７９
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、例えば山積みされた部品の認識や、人ごみの中での人物認識など、背景の変動が大きい場合は、非特許文献２にある方法はそのまま使えないという問題があった。なぜならば、未知の画像の中で背景となる部分の輝度値は学習する画像と全く異なる値となるからである。具体的には、分類木の各ノードにおいて２点の輝度値を比較する際に、対象物体とは無関係な輝度値を用いる可能性が出てくる。この結果、従来の分類木を用いたパターン認識では信頼性の低い結果しか得られないという問題があった。
【００１０】
一方、このいわゆる背景クラッターシーンにおける物体認識問題では、従来、特許文献２にあるようなマスク画像を用いた対象物体部分のみの相関演算によるマッチングが用いられてきた。しかしながら、認識するべき問題が大規模になると、特許文献２にあるような従来の相関演算によるマッチング手法では計算時間が爆発してしまうという問題が生じる。具体的に部品認識の場合なら、判別するべき姿勢の数が面内回転を含め１０，０００以上になる場合がある。この場合、特許文献２にある方法は現実的な処理時間では実行不可能となる。
【課題を解決するための手段】
【００１１】
そこで、本発明の情報処理装置は、例えば、対象を認識するための辞書の生成に用いられる特徴量を取得するための画素を選択する範囲を制限し、該制限された範囲から画素を選択するための情報処理装置であって、認識の対象となる対象物体を含む学習画像のうち前記対象物体が存在している部分の領域を含み、所定の大きさをもつ部分学習画像を切り出す切り出し手段と、前記部分学習画像の中で、特徴量を取得するための画素を選択するための範囲を制限する制限手段と、前記部分学習画像の中で前記制限手段によって制限された範囲から、画素を選択する選択手段とを備える。
【発明の効果】
【００１２】
本発明によれば、高速かつ高精度に対象物体の認識が実現できるという効果がある。特に、山積みされた部品や、人ごみでの人物検出のように背景に対象物体と同じようなものが重なった場合にその効果が大きい。
【図面の簡単な説明】
【００１３】
【図１】実施形態１の学習過程を説明するフローチャートである。
【図２】実施形態のパターン認識装置のハードウェア構成を示す図である。
【図３】学習パターン・マスクパターンを説明する図である。
【図４】実施形態１のクエリー作成ステップを説明するフローチャートである。
【図５】マスクパターンの加算および積算の様子を説明する図である。
【図６】出来上がった分類木の例を示す図である。
【図７】認識過程を説明するフローチャートである。
【図８】実施形態２の学習を説明するフローチャートである。
【図９】実施形態２の認識過程を説明するフローチャートである。
【図１０】実施形態３の画像認識方法を説明する模式図である。
【図１１】実施形態３の画像認識方法の学習過程を説明するフローチャートである。
【図１２】実施形態３の画像認識方法の認識過程を説明するフローチャートである。
【図１３】実施形態４の学習サンプルを選ぶ方法を説明する図である。
【図１４】実施形態４のノードにおける選択点の探索範囲を説明する図である。
【図１５】実施形態５の学習サンプルを示した図である。
【図１６】実施形態５のクエリー作成過程を説明するフローチャートである。
【図１７】実施形態６の学習サンプルを示した図である。
【図１８】実施形態６のクエリー作成過程を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照しながら本発明の実施形態を説明する。
【００１５】
＜実施形態１＞
図１は、本実施形態による情報処理方法の基本的な処理手順を説明するフローチャートである。図１を詳述する前に本実施形態の情報処理方法が実現される装置構成について説明する。
【００１６】
図２は以下に説明する各実施形態に係わる情報処理方法が適用される情報処理装置のハードウェア構成を示すブロック図である。
【００１７】
本実施形態に係わる情報処理方法は、外部記憶装置２０１、中央処理装置（ＣＰＵ）２０２、メモリ２０３、入出力装置２０４から構成される装置に実装される。
【００１８】
外部記憶装置２０１は、本実施形態の各種処理を実現するプログラムや、学習パターン、学習パターンを用いて作成された辞書等を保持する。また、本実施形態によって導かれた新規パターンの認識結果を保持してもよい。
【００１９】
中央処理装置（ＣＰＵ）２０２は情報処理方法のプログラムを実行したり、すべての装置の制御を行なったりする。
【００２０】
メモリ２０３は中央処理装置（ＣＰＵ）２０２が使用するプログラム、及びサブルーチンやデータを一時的に記録する。また、本実施形態によって導かれた新規パターンの認識結果を保持してもよい。
【００２１】
入出力装置２０４は、新規パターンを取り込んだり、ユーザからの指示入力を処理したりする。例えば、パターンとして２次元の画像を用いる場合は、入出力装置２０４は対象物体を撮影するカメラを含む。また、入出力装置２０４は、パターン認識結果を他の情報処理装置へ出力したりする。また、本実施形態の情報処理方法を実現するプログラム実行のトリガーを、この入出力装置を介してユーザが出す場合もある。また、ユーザが結果を見たり、プログラムのパラメータ制御をこの入出力装置を介して行うこともある。また、結果の出力先としては、人間（ユーザ）ではなく、例えばロボットを制御する装置などのマシンの場合も有り得る。
【００２２】
機械学習によるパターン認識手法では、多くのパターンから学習をする学習過程と新規の入力パターンを解析する認識過程の２つの過程が存在する。図１は学習過程を詳しく説明した図となる。以下、図１のフローチャートを図６に示す作成されたツリーの例を用いながら詳述する。なお、認識過程の詳細は、図７につき後述する。
【００２３】
学習過程は、大きく図１（ａ）と図１（ｂ）の２つのルーチンに分けられる。なお、図１（ｂ）のルーチンは再帰呼び出しされることに注意する。図１に示したフローチャートを実行することによって、学習パターンの集合が再帰的に分割されていくことになる。そして、その結果として、図６に示すような木構造の辞書（＝木構造を持った判別器）が出来上がる。つまり、木構造の辞書もしくは木構造の判別器を作成することは、論理的には、学習パターンの集合を再帰的に分割することと等価となる。
【００２４】
最初に、ステップＳ１０１で、ルートノードに学習パターン・マスクパターンの全てを格納する。学習パターンとマスクパターンの例を図３に示す。図３の（ａ）が学習パターンを（ｂ）がその学習パターンに対応するマスクパターンを示している。そして、（ａ）（ｂ）それぞれ１０００ピクセル×１０００ピクセルの画像だとする。
【００２５】
図３の（ａ）には３０１に示すダルマのような形の認識対象となる対象物が写っており、その後ろに３０２、３０３のような対象物以外の物が写っている。３０１の対象物が存在する場所を指定するのが（ｂ）のマスクパターンの３０４であり、その他の部分が３０５の部分となる。
【００２６】
図３（ｂ）のマスクパターンは、３０４で示した「図」の部分のピクセルの値をある正の定数（例えば２５５）とし、３０５で示した「地」の部分のピクセル値を０とするのが通常の例である。しかしながら、「図」と「地」の部分は明確でない場合もあるため、０と２５５の間の値（＝１〜２５４）が格納されたピクセルがあってもよい。あるいは、マスクパターンを対象物よりも拡張してもよい。また、マスクパターンの画素値として浮動小数点を用いてもよい。
【００２７】
また、図３で示した例は、パターンとして画像を用いた方法であったが、一般にＮ次元の特徴ベクトルをパターンとして用いてもよい。ここで次元とはこれまで述べた画像におけるピクセルに相当するものであり、１０００ピクセル×１０００ピクセルの画像は１０００，０００次元のパターンと解釈することができる。また、一般の特徴ベクトルをパターンとして扱う場合、「地」となる次元は例えば、値がわからない、いわゆる欠損特徴次元であってもよい。
【００２８】
図３で示した学習パターンとマスクパターンは１組だったが、学習過程において用いる学習パターンとマスクパターンはこの組が２つ以上存在することとなる。そして、それぞれの組にクラス（パターンの種類）名称が付加されているいわゆる「教師付き学習」が行われる。
【００２９】
次にステップＳ１０２で、ルートノードをカレントノードとして設定する。ここでルートノードとはツリーの一番根元に存在するノードのことを言い、図６の６０１のノードを意味する。カレントノードとは、学習過程および認識過程において現在処理しているノードを意味する。ステップＳ１０３で、図１（ｂ）に示すカレントノードを展開するサブルーチンを呼んで、このサブルーチンから帰ってきたら学習過程は終了となる。なお、図６では６０１から６０９まで番号順にカレントノードは移動することとなる。
【００３０】
図１（ｂ）は、ノードを展開するサブルーチンを説明したフローチャートである。まず、ステップＳ１０４でカレントノードがｎｕｌｌノードもしくはｌｅａｆノードかを判断する。そして、カレントノードがｎｕｌｌノードもしくはｌｅａｆノードであった場合、図１（ｂ）のサブルーチンは終了する。
【００３１】
ここで、カレントノードに学習パターンが全く含まれない場合、そのノードはｎｕｌｌノードとする。また、カレントノードに残っている学習パターンの集合がある一定条件を満たした場合、そのノードをｌｅａｆノードとする。ここで言うある一定条件とは、例えば“カレントノードに存在するクラスがＫ種類（例えばＫ＝１０）以下だった場合”という条件などが考えられる。この条件でＫ＝１に設定した場合は、“カレントノードが純粋に１つのクラスしか含まない”という条件となる。また、カレントノードに存在する学習パターンから情報量エントロピーを計算し、その値がある閾値以下だった場合とすることもできる。なお、この条件で閾値を０とすると、上述の“カレントノードが純粋に１つのクラスしか含まない”条件と同じとなる。
【００３２】
図６の例では、６０３、６０５、６０６、６０９がｌｅａｆノードであり、６０８がｎｕｌｌノードとなる。図１（ｂ）のフローチャートでいうと、カレントノードに６０３、６０５、６０６、６０８、６０９のノードが設定された場合、ステップＳ１０４の判断はｙｅｓとなりサブルーチンが終了する。ｎｕｌｌノードおよびｌｅａｆノードは、ターミナルノードとも呼ばれ、残った学習パターンの情報が保持される。例えば、パターン認識の目的がクラス判定の場合、ターミナルノードには各クラスの存在確率が保持される。また、ｌｅａｆノードの条件が前述した“カレントノードが純粋に１つのクラスしか含まれない”であった場合、その残ったクラスの番号を情報として格納してもよい。一方、パターン認識の目的がいわゆる回帰の場合、ターミナルノードには、ある推定値もしくは推定ベクトルが格納される。
【００３３】
ステップＳ１０４の判断でｎｏだった場合、サブルーチンの処理が続き、カレントノードを展開する。その処理はステップＳ１０５〜Ｓ１１０のステップで行う。この中でステップＳ１０９が図１（ｂ）のサブルーチンを再帰的に呼び出す格好になっていることに注意する。この処理の結果、学習パターンの集合が再帰的に分割されることとなる。
【００３４】
ステップＳ１０５で、カレントノードの展開に先立ち、まずそのノードで実施するクエリーを作成する。このカレントノードのクエリーは、カレントノードに残った学習パターンの集合（カレントパターン集合）を用いて作成される。これはサブルーチンとして図４につき詳しく説明する。
【００３５】
なお、ここで述べた“クエリー”とは、あるパターンがどの枝に属するかを判断する問い合わせのことである。Ｃ言語であれば、ｉｆ文やｓｗｉｔｃｈ文で記述される。
【００３６】
ステップＳ１０６で作成されたクエリーに基づいて、カレントノードに残っている学習パターン集合を分割する。この分割の数（Ｒ）は、一般的にはカレントノードによって異なっていても良いが、通常は全てのノードで同じ値を用いる。また、分割は枝とも呼ばれる。特にＲ＝２となる場合は、いわゆる２分木が作成され、図６のような形態の分類木となる。
【００３７】
ステップＳ１０５で、図３（ａ）に示した２点（３０６と３０７）の輝度値比較がクエリーとして作成され、ステップＳ１０６でそれに基づいて分割がなされたとする。より具体的には、座標（ｘ１，ｙ１）の輝度が座標（ｘ２，ｙ２）の輝度より大きい場合、下位の左のノード（枝）へ分かれ、それ以外の場合、下位の右のノード（枝）へ分かれるとする。
【００３８】
カレントノードに図３の学習パターンが含まれていたとすると、このクエリーによってこの学習パターンは左か右のノードへ移る。従来の分類木作成のアルゴリズムでは、「図」と「地」の部分に関係なく３０６と３０７の２点の輝度を比較してどちらのノードに移るか決めていた。これに対して、本実施形態の分類木作成方法では、図３（ｂ）のマスクパターンを用いて分岐の仕方を制御する。
【００３９】
具体的には、図３の学習パターンにおいて、３０６の点は「図」の部分に位置するので、図３（ａ）の輝度データをそのまま用いる。これに対して、３０７の点は「地」の部分に位置するので、その位置の値をそのまま使用せず、例えば０というようなある定数に置換して用いる。
【００４０】
あるいは、「地」の部分の輝度としてある範囲（例えば０〜２５５）までの一様分布に基づいた確率変数を発生させて、その値を用いるなど、連続的に変化する値を用いてもよい。また、「図」の部分の輝度分布、具体的には３０４で示した領域の輝度分布に基づいた確率変数を発生させて、その値を用いてもよい。
【００４１】
また、全学習パターンの「図」の部分の輝度分布を予め集計しておいて、その輝度分布に基づいた確率変数を発生させて、その値を用いてもよい。一例としては、イラストのような線画で構成された物体が認識対象である場合、ピクセルの値としては、黒（輝度が０）と白（輝度が２５５）しかない。この時、全学習パターンの「図」の部分に黒い線が１０％あったとする。すると、１／１０の確率で０、９／１０の確率で２５５の値をとる確率変数を用いて「地」の部分の輝度として採用することになる。
【００４２】
以上説明してきたのは、２点の輝度の大小を比較するクエリーであったが、例えば２つの点の輝度差がある値以上か未満かで分岐することも考えられる。また、一方の点の輝度が（もう一方の点の輝度＋ある値）以上か未満かで分岐することも考えられる。また、２点ではなく３以上のｎ点を選択し、その輝度の総和がある値以上か未満かで分岐することもできる。より一般的には、複数の点を選択し、その複数の点の輝度の値（ベクトル）を入力とするある関数の値が、ある値以上か未満かで分岐することができる。更に、輝度以外に入力画像に所定の変換を加えて得られる特徴量（ベクトル）の中のｎ次元の値を比較してもよい。
【００４３】
ステップＳ１０７〜Ｓ１１０は分割毎のループで、ステップＳ１０８で分割ｉをカレントノードに設定し、ステップＳ１０９で図１（ｂ）のサブルーチンを再帰呼び出しする。
【００４４】
次に、図４と図５を用いて、ステップＳ１０５のクエリー作成のサブルーチンを詳しく説明する。
【００４５】
まず、カレントノードに存在するマスクパターンを加算、または積算する（ステップＳ４０１）。そして、この結果を確率密度関数に変換する（ステップＳ４０２）。つまり、全区間の積分値が１となるように分布の関数を正規化する。そして、その確率密度関数に基づいて確率変数を生成する（ステップＳ４０３）。この値をクエリーの際に参照する点として利用する。
【００４６】
以下数式で説明する。カレントノードに学習パターンがＺ個残っているとする。そして、ｉ番目（１≦ｉ≦Ｚ  ）の学習パターンのマスクパターンをベクトル  Ｍｉ＝（Ｍｉ１，Ｍｉ２，・・・Ｍｉｎ）で表す。
【００４７】
するとマスクパターンを加算したベクトルＡは
【００４８】
【数１】
0006041923.tif 000002
【００４９】
となる。
【００５０】
また、マスクパターンを積算したベクトルＢは
【００５１】
【数２】
0006041923.tif 000003
【００５２】
となる。
【００５３】
正規化は
【００５４】
【数３】
0006041923.tif 000004
【００５５】
と変換することを意味する。
【００５６】
なお、積算すると、必ずカレントノードに存在する学習パターン全ての「図」を貫く次元が選択できる。半面、積算では、０以外の値を持つ次元が加算演算に比べて少なくなる。加算するか積算するかはどちらでもよいが、積算する場合は全部の値が０となる場合があることに注意する。
【００５７】
また、加算、もしくは積算した後でｎ乗や、べき乗したりして確率密度関数を先鋭化することもできる。一般にはある変換関数を施すことで加算、もしくは積算後の関数形を修飾することができる。
【００５８】
図５を用いて、ステップＳ４０１の処理を具体的に説明する。図５の４つのグラフにおいて、横軸は次元（ラスタスキャン等によるマスクパターン上の位置）を示し、縦軸はマスクパターンの値を示す。次元とは特徴ベクトルの次元のことであり、例えば、図３においては全部の次元数は１００００００（＝１０００×１０００）であるが、図５においては次元の数は７と非常に少ない。なお、図５においては、説明を簡単にするために次元を７と小さくしているが、次元の数の大小は、本実施形態のクエリー作成ステップには関係ない。
【００５９】
説明をわかりやすくするために、ノードに学習パターンが２つ残っていると仮定する。例えば図６の６０４のノードに対応する。なお、ルートノードでは全学習パターンが残っており、一般的にはｎ個の学習パターンが残っている。以下の説明で“２つ”の学習パターンおよびマスクパターンと記述している所を“ｎ個”の学習パターンおよびマスクパターンとすれば一般的なノードでの説明となる。
【００６０】
図５の（ａ）（ｂ）は、ノードにある２つの学習パターンに対応するマスクパターンをグラフとして表示したものである。図５の（ａ）（ｂ）において、「図」の存在確率が１〜５の５段階で表現されているとする。図５を見ればわかるように、（ａ）の第２次元と第６次元と（ｂ）の第１次元と第４次元の値が０となっている。結局、（ａ）の第２次元と第６次元と（ｂ）の第１次元と第４次元は「地」の部分で、それ以外の次元が「図」の部分となっていることがわかる。
【００６１】
この２つのマスクパターンを各次元で加算したものが（ｃ）となり、積算したものが（ｄ）となる。ステップＳ４０２において、（ｃ）の関数または（ｄ）の関数を正規化し、ステップＳ４０３においてその関数を確率密度関数として確率変数を生成する。この結果、得られた確率変数は次元の値を持つことになる。
【００６２】
パターンが図３のような画像の場合、図４に示したフローチャートでクエリー点が決定される。つまり、「どの点（ピクセル）を参照するか？」ということが決定される。そして、このようにクエリー点を選択することによって、より「図」の部分からクエリー点を選ぶことができるようになる。なお、図３で説明したように高い確率で「図」からの２点のクエリー点を選択するためには、確率変数を２回発生させる。
【００６３】
以上、説明してきた方法は、ランダムにクエリー点を選択する方法であった。しかし、何らかのクエリー効率を見ながら、それが最高になるクエリー点を選択することも可能である。ここで“クエリー効率”とは、クエリーによって学習パターン集合が分割される際のある尺度での効率を意味する。例えば、尺度としてパターンの数を指標として採用したとする。この時、あるノードに存在する学習パターン集合が例えば１００個の要素からなるとする。クエリー効率が最も良い分割は２分岐の場合５０個と５０個に学習パターン集合を分割する場合で、最も効率の悪い分割は０個と１００個に分割する場合となる。
【００６４】
なお、クエリーの全可能性の中から、最も効率の良いクエリー点を選択するのが困難な場合がありうる。その場合は、図４、図５を用いて説明したランダムにクエリー点を選択するステップをある程度の回数（例えば１０００回）試行し、その中で最も効率がよかったものを選ぶこともできる。また、ここで説明したクエリー効率を図る尺度としては情報量エントロピーや、非特許文献１に記載されているＧｉｎｉ係数などを採用してもよい。
【００６５】
なお、図４、図５で説明した方法は、ノードに存在するマスクパターン全部を無差別に利用するものであった。しかし、マスクパターンの帰属するクラスに応じて重み付けして利用してもよい。例えばノードに存在する学習パターンの中で最も数が少ない、または、多いクラスに対応するマスクパターンのみを用いる方法も考えられる。
【００６６】
図７は、新規の未学習パターンを図１で作成した木構造の辞書を用いて検出する過程を記述したフローチャートである。
【００６７】
まず、ステップＳ７０１で、カレントノードをルートノードに設定する。次にカレントノードがターミナルノード（ｎｕｌｌノードもしくはｌｅａｆノード）であるかどうかの判断を行う（ステップＳ７０２）。もしカレントノードがターミナルノードであった場合、認識結果にそのターミナルノードの情報をセットし、サブルーチンを終了する。
【００６８】
もしカレントノードがターミナルノードでない場合、カレントノードに格納されているクエリーに基づいて枝番号を計算する（ステップＳ７０３）。そして、計算された枝番号の子ノードをカレントノードに設定する（ステップＳ７０４）。続いて、ステップＳ７０２のカレントノードがターミナルノードかどうかの判定ステップに戻る。
【００６９】
この結果、図７に示したフローチャートでは、ルートノードからｎｕｌｌノードもしくはｌｅａｆノードに到達するまでｔｒｅｅをたどることになる。
【００７０】
ここで最も重要なのは、学習過程ではマスクパターンが重要であったのに対して、認識過程ではマスクパターンは全く必要ないということである。マスクパターンの情報は、学習過程の各ノードのクエリーを作成するステップ（ステップＳ１０５）で用いられるだけであり、認識過程では用いられない。この点が特許文献２にある従来のマスクパターンを用いるテンプレートマッチング方法と本実施形態とが決定的に異なる部分である。
【００７１】
＜実施形態２＞
図８、図９を用いて実施形態２を説明する。図８は学習過程を示したフローチャートであり、図９は認識過程を示したフローチャートである。
【００７２】
実施形態１では、１つの木構造の判別器を作成する方法、および、１つの木構造の判別器を用いてパターンを解析する方法を述べた。これに対して、実施形態２では、複数の木構造の判別器を生成する方法、および、複数の木構造の判別器を用いてパターンを解析する方法を述べる。
【００７３】
木構造の判別器の個数はＬ個とする。通常、Ｌは１０〜１００ぐらいの数になるが、２つ以上の任意の定数となる。Ｌを大きくすると辞書サイズが大きくなるが、認識率は向上する。一方、Ｌを小さくすると辞書はコンパクトになるが、認識率は低下する。
【００７４】
学習過程はｔｒｅｅ番号が１からＬのループ（ステップＳ８０１とステップＳ８０３で括られたループ）を実施する。ループの中で図１の学習過程がサブルーチンとして呼び出される（ステップＳ８０２）。ループの中でステップＳ８０２のサブルーチン呼び出しは全く独立に行われる。つまり、ステップＳ８０１〜Ｓ８０３のループ処理は単純にマルチスレッド、マルチタスクで行っても何の問題もない。また、複数の計算機を用いて実行することも容易である。図８で示した複数（Ｌ個）の木構造の判別器を作成する方法は、並列計算向きであり、並列度を高くすると極めて高速に実行できると言える。
【００７５】
次に、図９のフローチャートで認識過程を説明する。認識過程は判別器（ｔｒｅｅ）番号が１からＬまでのループ（ステップＳ９０１〜Ｓ９０３）の後、最終的に得られたＬ個の判別器の結果を集計するステップ（ステップＳ９０４）がある。ループの中で図７の木構造を用いた認識過程がサブルーチンとして呼び出される（ステップＳ９０２）。
【００７６】
ステップＳ９０４では、Ｌ個の認識結果を集計し、最終的なパターン認識結果を得る。集計方法としては、いろいろなものが考えられる。例えばパターン認識のタスクがクラス判定タスクだったとすると、図７の判別器の結果は各クラスの存在確率ベクトルとなる。この時、ステップＳ９０４の集計としては、Ｌ個の存在確率ベクトルの相加平均や、相乗平均などが考えられる。
【００７７】
図９の認識過程も図８の学習過程と同様に並列処理に向いており、並列度を高くすると非常に高速に処理できる。
【００７８】
＜実施形態３＞
本実施形態は、パターンとして画像を扱う１つの例である。本実施形態の処理の流れを図１０の模式図を用いて説明する。
【００７９】
本実施形態では、１枚の学習画像からＭ枚の部分画像が抽出される。これを部分画像集合と呼ぶ。この部分画像集合を構成する部分画像同士は重なりがなくても良いが、重なりがあるように網羅的に元の学習画像から抽出されることが望ましい。
【００８０】
例えば、学習画像のサイズが１００×１００ピクセルで、部分画像のサイズが５０×５０ピクセルだったとする。この場合、ピクセルとピクセルの中間の位置（いわゆるサブピクセル）を考慮に入れないとすると、１枚の学習画像から抽出される全部分画像は２６０１（＝５１×５１）枚となる。なお、重なりのない部分画像を抽出したとすると全部で２×２＝４枚の部分画像が得られる。図１０（ａ）に示す部分画像集合は２６０１枚ある全部分画像中の出来るだけ多くの部分画像からなることが望ましい。最終的な学習部分画像群としては、同じクラスの学習部分画像がそれぞれＭ枚ずつ、全部でＭ×Ｎ枚の学習部分画像が得られる。
【００８１】
学習画像から学習部分画像を抽出したのと全く同じ方法で、学習マスク画像から学習部分マスクパターンを抽出する。そして、それを学習部分マスクパターンとする。具体的に学習部分マスクパターンとは、抽出された学習部分画像の中で対象物が存在している部分の画素値が１で、それ以外の部分の画素値が０となるようなパターン（画像）となる。図１０（ａ）で示したＮ枚の登録画像（学習画像）の一枚一枚が図３で示したように学習画像（学習パターン）とマスクパターンから構成されていると考えることができる。
【００８２】
そして、この学習部分画像群と学習部分マスクパターン群を用いて２分木を作成していく（図１０（ｂ））。全部でＬ個分類木が存在するので、この分類木作成はＬ回行われる。分類木作成の際、各分類木のノードでは、例えば２つのピクセルを選ぶ。そして、そのピクセルの輝度比較をすることにより、学習部分画像の集合を再帰的に分割していく。
【００８３】
なお、本実施形態におけるクエリー作成方法は具体的には図４、図５で説明した方法と同じ方法を用いる。
【００８４】
この学習過程をフローチャートにしたものが図１１である。ステップＳ１１０１の部分画像を取り出し学習パターン集合を作成の処理が図１０（ａ）で説明した処理となる。そして、ステップＳ１１０２のｔｒｅｅアンサンブルを作成する処理が図１０（ｂ）で説明した処理となり、具体的には図８のフローチャートをサブルーチンとして呼び出す。
【００８５】
なお、図１０の模式図では１枚の学習（登録）画像から抽出されるＭ枚の部分画像を全て同一視することで、学習過程におけるクラスの数がＮだとした。これに対して、Ｍ枚の部分画像を学習画像中の位置を用いて区別し、全部でＭ×Ｎ個（種類）のクラスがあるとすることもできる。
【００８６】
次に、本実施形態の認識過程を図１２のフローチャートを用いて説明する。一例として、新規入力画像のサイズが１２８０×１０２４、部分画像のサイズを５０×５０だとする。すると、サブピクセルを考慮しなければ、新規入力画像の中に部分画像が１２００２２５（＝１２３１×９７５）個設定し得ることになる（Ｘ＝１２８０−５０＋１、Ｙ＝１０２４−５０＋１）。基本的に、ステップＳ１２０１とステップＳ１２０６にはさまれたループはこの数のループとなる。但し、必ずしも１２００２２５回繰り返しを実行する必要はなく、途中スキップして実行することによって高速化してもよい。
【００８７】
部分画像のループの中でｔｒｅｅ番号のループ（ステップＳ１２０３〜Ｓ１２０５）が実行される。つまり、２重のループが実行される。なお、この２つのループはお互い独立なので、ループの内側外側を入れ替えても良い。ループの一番深い所でステップＳ１２０４のｉ番目の判別器が実行される。これは実際には図９のフローチャートがサブルーチンとして呼び出される。
【００８８】
最後に、ステップＳ１２０７の（Ｘ＊Ｙ＊Ｌ）個の判別結果を集計する処理で最終的な認識結果が得られる。この結果、１２８０×１０２４のサイズの入力画像の中に存在する１００×１００のサイズの学習画像が検出されることとなる。集計方法としてそれぞれのクラスの存在確率ベクトルの相加平均、相乗平均などの処理を行うこともできる。また、前述の部分画像の学習画像中での位置を記録したオフセットを用いて、学習画像の存在位置を投票によって求めることもできる。
【００８９】
＜実施形態４＞
次に、実施形態３を更に工夫した実施形態４を説明する。
【００９０】
実施形態４における図１０（ａ）で示した部分画像選択を図１３を用いて説明する。なお、図１３の図は図３（ｂ）に示した対象物体の存在範囲を示した図と同じ図を用いた。図１３において、丸で示した部分は選択された部分画像の中心位置で、その外側の正方形で囲まれた部分が選択された部分画像である。丸の位置は対象物体が存在している部分からランダムに選ぶ。図１３では１３０１〜１３０３の３点が選ばれている。例えば、図１３においては、その選ばれた部分画像の中心点を中心に５０ピクセル×５０ピクセルの部分画像を抽出することになる。なお、ランダムに選択する部分画像の（中心の）個数は図１３では３つとしたが、実施形態３にある通り、一般にはＭ個となる。
【００９１】
このようにして選ばれたＮ×Ｍ枚の部分画像集合では、その中心位置に必ず対象物体が存在することになる。本実施形態では、このことを用いてクエリーで用いる参照点を選ぶ際の探索範囲を制限する。この様子を図にしたのが図１４である。
【００９２】
図１４はノードの深さに応じて探索範囲が部分画像の中心を基点に大きくなっていくことを表している。例えば、探索範囲が一辺の長さがＺの正方形だとする。図１４の例では、Ｚが深さｄの関数になっている。ここで深さｄとはノードの深さであり、図６の例でいうと、深さ０のノードは６０１、深さ１のノードは６０２と６０７、深さ２のノードは６０３、６０４、６０８、６０９、深さ３のノードは６０５、６０６となる。なお、ここで示した例では探索範囲の一辺の長さはノードの線形関数だったが、単調増加関数なら何でもよい。また、深さ０のノード（＝ルートノード）においては部分画像の中心付近の狭い範囲には対象物体が必ず存在するので、ｄ＝０の時のＺの値は小さい方が良い。
【００９３】
このようにクエリーにおける参照点の探索を予め決められた範囲に制限すると分類木の作成時間が短縮されることになる。また、部分画像の中心を対象物体の存在する部分から選択することと組み合わせることによって、非常に性能の高い分類木が作成できる。
【００９４】
本実施形態では、部分画像の中心を対象物体存在範囲から選び、かつ、探索範囲を拡大していく方法を示した。この限定された探索範囲の中で、実施形態１に示したマスクを用いたクエリー参照点選択アルゴリズムを実行してもよい。また、マスクを全く用いずにクエリー参照点が探索範囲に等しい確率で選ばれるようにしてもよい。また、クエリー参照点を探索範囲の中から分類木作成効率に関して最適な点を選ぶようにしてもよい。
【００９５】
＜実施形態５＞
次に、実施形態５を説明する。実施形態１及至４では、学習画像として対象物体を撮影した２次元画像を用い、マスク画像としては対象物体の存在する領域の輝度が高い画像を用いていた。これに対して、実施形態５では、対象物体の奥行情報を表現する距離画像と、その信頼度を表現する信頼度画像を用いる。
【００９６】
図１５（ａ）に対象物体の距離画像の例を示し、図１５（ｂ）、図１５（ｃ）に信頼度画像の例を示す。物体の奥行き情報（いわゆるＺ軸方向の位置）を画像化する場合、例えば、近ければ近いほど輝度を高くする。なお、ここで述べたＺ軸とは３次元を構成する１つの軸で、視線方向と平行な軸である。対象物体以外の部分は無限遠とした場合、その距離画像は図１５（ａ）の通り、対象物体以外の部分で０となる。図１５（ａ）でダルマ型を構成する２つの半球が存在するとして、各半球の中心１５０１と１５０２が最も輝度が高く、そこから同心円状にグラデーションが生じることになる。以上説明したように、距離画像とは、例えば、距離がある値からある別の値までの範囲を０から２５５にスケール変換して画像化したもののことである。
【００９７】
図１５（ｂ）は、ステレオ法で距離測定をした場合の信頼度画像を示している。ステレオ法の場合、図１５（ａ）に示したようなテクスチャのない物体では、物体表面の対応点を取るのが困難となる。その結果、物体の中心部分１５０４の信頼度は低くなる。これに対して、ジャンプエッジやオクルーディングエッジの存在する物体の周辺部分１５０５は、対応点を探索するのが容易で、距離の信頼性も高くなる。対象物体の存在しない部分１５０３は、上記の説明の通り無限遠として扱い、信頼度も低いとする。なお、対象物体が完全な球の形をしている場合は、ジャンプエッジ・オクルーディングエッジの位置が視線方向によって変化してしまう。その結果、対象物体が完全な球で構成されている場合は、物体の周辺部分１５０５の距離信頼度も低くなる。しかし、図１５（ａ）で示した例では、球を半分に切断したもの（半球）なので、物体の周辺では尖った３次元上のエッジが存在するものとする。
【００９８】
一方、図１５（ｃ）に示したのが、空間コード化法やレーザー距離計を用いて距離を測定した場合の信頼度画像の例である。ステレオ法が物体周辺エッジ部分の信頼度が高いのに対して、この方法では物体の中心部分に近い場所１５０７の信頼度が高くなる。これは、平面性の高い部分の方がより確実な距離測定ができるためである。
【００９９】
以上述べた通り、距離測定の方式によって一般的には信頼度の分布は異なる。しかし、学習過程と認識過程において同一の距離測定方法を採用することによって同一傾向の信頼度分布が得られるので問題ない。また、学習過程において、実際に対象物体を距離測定して距離画像（図１５（ａ））と信頼度画像（図１５（ｂ）または（ｃ））を取得する例を説明した。
【０１００】
これに対して、ＣＡＤモデルから計算される距離画像を用いて、図１５（ａ）を代替することも可能である。この場合、図１５（ｂ）または（ｃ）に相当する信頼度画像は、ＣＡＤモデルから計算して生成することとなる。図１５（ｂ）で説明したステレオ法を想定した場合、ジャンプエッジやオクルーディングエッジからの距離が近ければ近いほど信頼度が高いような画像を生成する。これに対して図１５（ｃ）で説明した空間コード化法やレーザー距離計を用いることを想定した場合、物体表面の法線方向を計算してそれが視線方向となす角度が小さければ小さいほど信頼度が高いような画像を生成する。どちらの場合でも、もちろん、認識過程において行う距離測定の方法に準じる必要がある。
【０１０１】
実施形態５のフローチャートは、図１で説明した実施形態１のフローチャートと基本的には同じである。異なる部分は、ステップＳ１０１で「ルートノードに学習パターン・マスクパターンを全部格納」となっている所が「ルートノードに学習パターン・信頼度パターンを全部格納」となる所である。また、ステップＳ１０９の「ノードを展開（カレントノード）」のサブルーチンも異なる。これを説明したのが図１６である。
【０１０２】
図１６のサブルーチンも、図４で説明した実施形態１のサブルーチンとほぼ同じであるが、ステップＳ４０１とステップＳ４０２の「マスクパターン」の部分がステップＳ１６０１とステップＳ１６０２では「信頼度パターン」となっている点で異なっている。ステップＳ１６０１で信頼度パターンを加算または積算して集計し、ステップＳ１６０２で集計結果を正規化して確率密度関数を作成する。そして、ステップＳ１６０３でその確率分布に基づいて確率変数を生成することで、クエリーにおける参照点を決定する。結果として、図１６で示したフローチャートの処理を行うことにより、より信頼度の高い部分からクエリーの参照点が取られることになる。
【０１０３】
なお、認識過程では信頼度パターン・信頼度画像は用いないので、処理は実施形態１及至４の認識過程と全く同一となる。具体的には、図７で示したフローチャートは、実施形態５も同じとなる。また、実施形態２のように複数のツリーを学習する場合も、マスクパターンとマスク画像を信頼度パターンと信頼度画像に置き換えることで、実施形態５は実現できる。また、実施形態３及び４のように複数のサブイメージを学習する場合も、マスクパターンとマスク画像を信頼度パターンと信頼度画像に置き換えることで、実施形態５は実現できる。つまり、マスクパターンとマスク画像から部分パターンと部分画像を抽出するのではなく、信頼度パターンと信頼度画像から部分パターンと部分画像を抽出する。
【０１０４】
＜実施形態６＞
次に、実施形態６を説明する。実施形態１及至４においては、学習データとしてＮ個の学習パターンとマスクパターンの組、もしくは、Ｍ×Ｎ個の学習部分パターンとマスク部分パターンの組を用いた。また、実施形態５においては、学習データとしてＮ個の距離パターンと信頼度パターンの組、もしくは、Ｍ×Ｎ個の距離部分パターンと信頼度部分パターンの組を用いた。これに対して、実施形態６では、学習データとしてＮ個の学習パターンとそれに対応するマスクパターンと距離パターンとそれに対応する信頼度パターンの組を使う。または、Ｍ×Ｎ個の学習部分パターンとそれに対応するマスク部分パターンと距離部分パターンとそれに対応する信頼度部分パターンの組を使う。
【０１０５】
図１７（ａ）−（ｄ）に、一組の学習データの例を示す。図１７（ａ）が学習パターン・学習画像の例であり、図１７（ｂ）が、それに対応するマスクパターン・マスク画像である。これとセットで、図１７Ｃに示す距離パターン・距離画像と、それに対応する図１７（ｄ）に示す信頼度パターン・信頼度画像を学習過程で用いる。図１７（ａ）と（ｂ）は図３で説明した（ａ）と（ｂ）と同じ性質のものであり、図１７の（ｃ）と（ｄ）は図１５で説明した（ａ）と（ｂ）と同じ性質のものである。結局、実施形態６においては、学習データが２種類存在することになる。以下、この２種類を２チャンネルと称する。
【０１０６】
なお、図１７の（ｂ）に示したマスクパターン・マスク画像は対象物体が存在する部分の値が高く、存在しない部分の値が低いパターン・画像となる。これは物体存在に関する信頼度パターン・信頼度画像とみなすことも可能である。以下の説明ではマスクパターン・マスク画像も信頼度パターン・信頼度画像の１種と見なして説明をする。
【０１０７】
実施形態６では学習過程で木構造の辞書を作成する際に、各ノードにおいて（ａ）（ｂ）と（ｃ）（ｄ）のどちらのチャンネルを用いるかを学習の過程で選択する。それを説明したのが図１８に示した（ａ）と（ｂ）の２つのフローチャートである。図１８の（ａ）を構成するステップＳ１８０１からステップ１８０４が１つの実施形態であり、（ｂ）を構成するステップＳ１８０５からステップＳ１８０７までが別の実施形態である。
【０１０８】
（ａ）のフローチャートではまずステップＳ１８０１で注目するチャンネルを決定する。図１７の例でいうと、図１７の（ａ）及び（ｂ）と図１７の（ｃ）及び（ｄ）とのどちらを使うかを決定する。次に、そのチャンネルに対してステップＳ１８０２からステップＳ１８０４を実施する。これは図１６で説明したステップＳ１６０１及至ステップＳ１６０３と全く同じ処理となる。
【０１０９】
図１８の（ｂ）に示した処理の例では、使用するチャンネルを決定する前に、ステップＳ１８０５でクエリーの参照点を決定する。これは例えば実施形態４で示したように、ある領域から完全にランダムに参照する２点を選択することで実現する。次にステップＳ１８０６で選んだ参照点における信頼度の総和を求める。そして最後にステップＳ１８０７でステップＳ１８０５において決定した参照点において最も信頼度の高いチャンネルを選ぶ。なお、ステップＳ１８０６において参照点における信頼度の総和ではなく、参照点における信頼度の積を計算してもよい。一般的には参照点における信頼度の増加関数を計算し、それが最も高いチャンネルをステップＳ１８０７で選択する。
【０１１０】
実施形態６における認識過程は入力データとして図１７（ａ）と図１７（ｃ）で示した２種類のパターン・画像を用いる。そして、学習過程の際に木構造の各ノードにストアされているチャンネルに応じて、どちらのチャンネルを用いるか判断する。
【０１１１】
以上、説明してきた例ではチャンネルの数は２であった。これに対して、３以上の種類（モーダル）のデータを用いてもよい。例えば、輝度画像、距離画像、表面温度画像の３種類のデータを用いて、学習、認識を行ってもよい。また、同じ撮影画像に対して異なる２種類の画像処理を施した２つの前処理後画像と距離画像の３種類のデータを用いて学習、認識を行ってもよい。
【０１１２】
＜その他の実施形態＞
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、コンピュータ読み取り可能なプログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１１３】
更に、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【０１１４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図１】
0006041923.tif 000005
【図２】
0006041923.tif 000006
【図３】
0006041923.tif 000007
【図４】
0006041923.tif 000008
【図５】
0006041923.tif 000009
【図６】
0006041923.tif 000010
【図７】
0006041923.tif 000011
【図８】
0006041923.tif 000012
【図９】
0006041923.tif 000013
【図１０】
0006041923.tif 000014
【図１１】
0006041923.tif 000015
【図１２】
0006041923.tif 000016
【図１３】
0006041923.tif 000017
【図１４】
0006041923.tif 000018
【図１５】
0006041923.tif 000019
【図１６】
0006041923.tif 000020
【図１７】
0006041923.tif 000021
【図１８】
0006041923.tif 000022