(57)【要約】【課題】パターン識別のための決定木を構築する際の、後続のノードにおいて判定が行いやすくなる可能性のある分岐条件を決定する。【解決手段】  入力データを第１と第２の分類に識別する識別ノードと、次に識別を実行するべき識別ノードを決定する分岐ノードとが連結された木構造を有する識別装置におけるパラメータを決定するためのパラメータ学習方法では、第１或いは第２の分類に属する学習データの内、第２の分類に属するデータの中で、学習対象の分岐ノードへ到達するまでの識別ノードによって、第１の分類に属するデータに分類されたデータを、誤検出データとして抽出する。そして、誤検出データの特徴ベクトルをクラスタリングして複数のクラスタに分類し、複数のクラスタの１つを分割する分割面を決定する分割面を決定し、その分割面に基づいて学習対象の分岐ノードにおけるパラメータを決定する。【選択図】  図８
2009282631.tif 000002
【特許請求の範囲】
【請求項１】
入力データを第１と第２の分類に識別する識別ノードと、次に識別を実行するべき識別ノードを決定する分岐ノードとが連結された木構造を有する識別装置におけるパラメータを決定するためのパラメータ学習方法であって、
前記第１の分類あるいは第２の分類に属する学習データを読み込む読み込み工程と、
前記学習データの内、前記第２の分類に属するデータの中で、学習対象の分岐ノードへ到達するまでの識別ノードによって、前記第１の分類に属するデータに分類されたデータを、誤検出データとして抽出する抽出工程と、
前記誤検出データの特徴ベクトルをクラスタリングして複数のクラスタに分類するクラスタリング工程と、
前記特徴ベクトルの特徴空間において、前記複数のクラスタの１つを分割する分割面を決定する工程と、
前記分割面に基づいて前記学習対象の分岐ノードにおけるパラメータを決定する工程とを備えることを特徴とするパラメータ学習方法。
【請求項２】
前記分割面を決定する工程では、前記複数のクラスタの１つを分割し、かつ前記第１の分類に属するデータの特徴ベクトルの集合を分類する分割面を決定することを特徴とする請求項１に記載のパラメータ学習方法。
【請求項３】
前記学習データに基づいて識別ノードのパラメータを決定する学習工程を更に備え、
前記識別ノードは、前記特徴空間を超平面で分割することによって識別を行うことを特徴とする請求項１または請求項２に記載のパターン識別用パラメータ学習方法。
【請求項４】
前記識別ノードは、複数の超平面を使って前記特徴空間を分割することによって識別を行う識別ノードであることを特徴とする請求項３に記載のパターン識別用パラメータ学習方法。
【請求項５】
前記分割面は、前記複数のクラスタの中の１つの重心を通ることを特徴とする請求項１乃至請求項４のいずれか１項に記載のパラメータ学習方法。
【請求項６】
前記分割面は、前記複数のクラスタの中で分散が最大のクラスタの重心を通ることを特徴とする請求項５に記載のパラメータ学習方法。
【請求項７】
前記分割面は、前記複数のクラスタの中で要素数が最大のクラスタの重心を通ることを特徴とする請求項５に記載のパラメータ学習方法。
【請求項８】
前記分割面は、前記複数のクラスタの中で要素間の平均距離が最大のクラスタの重心を通ることを特徴とする請求項５に記載のパラメータ学習方法。
【請求項９】
前記分割面は、前記第１の分類に属するデータの特徴ベクトルから求められる主成分方向に対して垂直であることを特徴とする請求項１乃至請求項８のいずれか１項に記載のパターン識別用パラメータ学習方法。
【請求項１０】
前記第１の分類に属するデータの特徴ベクトルから求められる主成分方向を表す主成分方向ベクトルから絶対値の小さな要素を削減して次元数を減らす削減工程をさらに備え、
前記分割面は、前記削減工程にて得られた、次元数が削減された主成分方向ベクトルに垂直である
ことを特徴とする請求項１乃至請求項９のいずれか１項に記載のパラメータ学習方法。
【請求項１１】
前記学習工程と前記分割面を決定する工程では、前記学習データの間の距離に基づいてパラメータや識別面を決定することを特徴とする請求項３に記載のパラメータ学習方法。
【請求項１２】
前記分割面は、前記複数のクラスタの中の１つの重心と、前記第１の分類に属するデータの特徴ベクトルから求められる重心とを通る面であることを特徴とする請求項１に記載のパラメータ学習方法。
【請求項１３】
前記分割面は、前記複数のクラスタの１つに属する特徴ベクトルに基づいて決定される分割曲面であることを特徴とする請求項１に記載のパラメータ学習方法。
【請求項１４】
入力データを第１と第２の分類に識別する識別ノードと、次に識別を実行するべき識別ノードを決定する分岐ノードとが連結された木構造を有する識別装置におけるパラメータを決定するパラメータ学習装置であって、
前記第１の分類あるいは第２の分類に属する学習データを読み込む読み込み手段と、
前記学習データの内、前記第２の分類に属するデータの中で、学習対象の分岐ノードへ到達するまでの識別ノードによって、前記第１の分類に属するデータに分類されたデータを、誤検出データとして抽出する抽出手段と、
前記誤検出データの特徴ベクトルをクラスタリングして複数のクラスタに分類するクラスタリング手段と、
前記特徴ベクトルの特徴空間において、前記複数のクラスタの１つを分割する分割面を決定する手段と、
前記分割面に基づいて前記学習対象の分岐ノードにおけるパラメータを決定する手段とを備えることを特徴とするパラメータ学習装置。
【請求項１５】
請求項１乃至１３のいずれか１項に記載のパラメータ学習方法をコンピュータに実行させるためのプログラム。
【請求項１６】
請求項１乃至１３のいずれか１項に記載のパラメータ学習方法をコンピュータに実行させるためのプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像認識や音声認識等の、入力信号のパターンを識別するためのパラメータ学習方法に関する。
【背景技術】
【０００２】
従来から、線形識別を用いたパターン識別が非常に盛んに行われている。非特許文献１には線形識別のいくつかの例が解説されている。簡単に言うと、線形識別では、入力データを特徴ベクトルとして多次元空間内のベクトルで表し、これら特徴ベクトルが張る特徴空間を、超平面によって分割する。そして、入力データに対応する特徴ベクトルが、その超平面のどちら側に位置するかによって、入力データを識別する。さらに、複数の超平面を用意すれば、これら超平面に囲まれた領域にある特徴ベクトルを１つのクラスとして識別することができる。非特許文献２は、そのような例である。
【０００３】
上記識別器は比較的処理が高速である反面、線形識別を論理積によって統合した構造を採用している。そのため、識別したい特徴ベクトルの集合を、特徴空間内の超平面の片側あるいは凸多面体としてしか表現することができない。つまり、凹凸のある集合を表現することができない。以後、表現を簡潔にするため、「超平面の片側あるいは凸多面体」という概念を「非凹多面体」と表すことにする。
【０００４】
この問題を克服するためにいくつかの方法が提案されている。最も一般的な方法は、個々の線形識別の結果を論理積以外の演算で統合する方法である。非特許文献１にも解説されている区分的識別関数を利用する方法はそのひとつである。これは集合の表面を複数の多角形で覆うという考え方である。また、決定木を使う方法もある。典型的な決定木は教師あり学習である。決定木を構築する際には、分岐先ノードの不純度という概念を利用するのが通例となっている。これは分岐先ノードにたどり着く入力データのばらつきのことである。通常決定木を構築する際には、この不純度が低下するように分岐条件を決定する。非特許文献３（特許文献１）では教師なしで決定木を構築する方法が提案されている。非特許文献３でもやはり不純度の概念を導入し、これが低下するように分岐条件を定めている。
【０００５】
凹凸のある集合を表すための別の方法として、特徴空間の次元を増やすということも行われている。例えば、非特許文献２では、複数の弱判別器の結果を加算して強判別器を構成するという概念を導入している。しかしながら、特徴空間の次元を増やしても、その次元の増えた特徴空間の中で非凹多面体しか表せないという本質的な問題は解決されないことに注意されたい。
【０００６】
教師なしで決定木を構築する方法は、クラスタリングと似通ったところがある。クラスタリングでは、クラスの分からないデータを複数の集合に分割する。非特許文献４は、階層的に入力データを分割していくクラスタリングの１つの手法を提案している。非特許文献４によれば、ある段階までにできあがった個々のクラスタを全て２つずつに分割してみて、できあがった２つのクラスタの平均分散と、それぞれの中心ベクトルの二乗平均との比が、最も小さいクラスタを実際に分割するクラスタとする。そして、これが階層的に繰り返される。
【非特許文献１】石井、上田、前田、村瀬 (1998) “わかりやすいパターン認識”、オーム社
【非特許文献２】Viola & Jones (2001) “Rapid Object Detectionusing a Boosted Cascade of Simple Features”, Proceedings of theIEEE Conference on Computer Vision and Pattern Recognition (CVPR), Vol.1,p.551.
【非特許文献３】Basak & Krishnapuram (2005) “Interpretable Hierarchical Clustering byConstructing an Unsupervised Decision Tree”, IEEE Transactions on Knowledge and DataEngineering, Vol.17 (1), p.121.
【非特許文献４】Savaresi, Boley, Bittanti & Gazzaniga (2000) “Choosing the clusterto split in bisecting divisive clustering algorithms”, CSE Report TR 00-0055, University ofMinnesota.
【特許文献１】米国特許出願公開第２００４／０１１７３３６号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特徴空間を非凹多面体によって分割することでパターン認識を行う処理において、分岐条件を適切に学習し、設定することは、よりよいパターン認識の効率、精度を実現する上で重要である。しかしながら、上述した従来技術では、そのような分岐条件の学習は、比較的負荷の高い処理でありながら、適切な条件を決定するには至っていない。
【０００８】
本発明は、上記の課題に鑑みてなされたものであり、パターン識別のための決定木を構築する際の分岐条件を、後続のノードにおいてより効率的に判定が行えるように決定することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するための本発明の一態様によるパラメータ学習方法は、
入力データを第１と第２の分類に識別する識別ノードと、次に識別を実行するべき識別ノードを決定する分岐ノードとが連結された木構造を有する識別装置におけるパラメータを決定するためのパラメータ学習方法であって、
前記第１の分類あるいは第２の分類に属する学習データを読み込む読み込み工程と、
前記学習データの内、前記第２の分類に属するデータの中で、学習対象の分岐ノードへ到達するまでの識別ノードによって、前記第１の分類に属するデータに分類されたデータを、誤検出データとして抽出する抽出工程と、
前記誤検出データの特徴ベクトルをクラスタリングして複数のクラスタに分類するクラスタリング工程と、
前記特徴ベクトルの特徴空間において、前記複数のクラスタの１つを分割する分割面を決定する工程と、
前記分割面に基づいて前記学習対象の分岐ノードにおけるパラメータを決定する工程とを備える。
【００１０】
上記の目的を達成するための本発明の一態様によるパラメータ学習装置は、以下の構成を備える。即ち、
入力データを第１と第２の分類に識別する識別ノードと、次に識別を実行するべき識別ノードを決定する分岐ノードとが連結された木構造を有する識別装置におけるパラメータを決定するパラメータ学習装置であって、
前記第１の分類あるいは第２の分類に属する学習データを読み込む読み込み手段と、
前記学習データの内、前記第２の分類に属するデータの中で、学習対象の分岐ノードへ到達するまでの識別ノードによって、前記第１の分類に属するデータに分類されたデータを、誤検出データとして抽出する抽出手段と、
前記誤検出データの特徴ベクトルをクラスタリングして複数のクラスタに分類するクラスタリング手段と、
前記特徴ベクトルの特徴空間において、前記複数のクラスタの１つを分割する分割面を決定する手段と、
前記分割面に基づいて前記学習対象の分岐ノードにおけるパラメータを決定する手段とを備える。
【発明の効果】
【００１１】
本発明によれば、パターン識別のための決定木を構築する際の分岐条件を、後続のノードにおいてより効率的に判定が行えるように決定することができる。本発明のパターン学習方法によって決定されたパラメータを用いることで、入力データを高速かつ高精度にパターン識別するような検出器を構成することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１３】
［第１実施形態］
第１実施形態では、入力された画像に顔があるかどうかを判定する情報処理装置の例を示す。実施形態を簡単にするために、入力された画像はグレースケール画像であり、顔があればパスポート写真のようにほぼ中央にほぼ決められた大きさで配置されているものと仮定する。画像を走査したり画像を拡大・縮小するなどしたりすれば、任意の位置にある任意の大きさの顔を検出できるようになるのは、言うまでもない。
【００１４】
図１は、第１実施形態に係わる情報処理装置のハードウェア構成例を説明するブロック図である。図１において、１００はＣＰＵ（中央演算装置）であり、本実施形態で説明するパターン識別用パラメータ学習方法をプログラムメモリ１０１に格納されているプログラムに従って実行する。１０１はプログラムメモリで、ＣＰＵ１００により実行される各種のプログラムが記憶されている。１０２はＲＡＭで、ＣＰＵ１００によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。１０３はハードディスクであり、画像ファイルやパターン識別用のパラメータなどを保存するための記憶媒体である。１０４はディスプレイであり、本実施形態の処理結果をユーザに提示する装置である。１１０は、上述の各部とＣＰＵ１００とを接続している制御バス・データバスである。
【００１５】
顔を検出する際の処理の流れを表すフローチャートを図２に示す。まずステップＳ２０１において、ＣＰＵ１００は、ハードディスク１０３より画像をＲＡＭ１０２に読み込む。画像はＲＡＭ１０２上では２次元配列として保持される。次に、ステップＳ２０２において、ＣＰＵ１００は、後述する学習方法により作成したパターン識別用パラメータをハードディスク１０３よりＲＡＭ１０２に読み込む。ステップＳ２０３において、ＣＰＵ１００は、ステップＳ２０２で読み込んだパターン識別用パラメータを使用して、ステップＳ２０１で読み込んだ画像内に顔があるかどうかを判定する。次のステップＳ２０４において、ＣＰＵ１００は、ステップＳ２０３の判定の結果をディスプレイ１０４に表示する。
【００１６】
図２で説明した処理をデータフロー図として書き表すと図３ようになる。図３において、２０５は図１のハードディスク１０３に保存されている画像である。２０１の画像の読み込み処理にてハードディスク内の画像２０５がＲＡＭ１０２上に入力画像Ｉとして記憶される（ステップＳ２０１）。２０９は、ハードディスク１０３に保存されているパターン識別用パラメータである。２１０のパターン識別用パラメータの読み込み処理にてハードディスク内のパターン識別用パラメータ２０９がＲＡＭ１０２上にパターン識別用パラメータ２１１として記憶される（ステップＳ２０２）。２０３の検出処理では、先の入力画像Ｉとパターン識別用パラメータ２１１を使用して、入力画像Ｉの中に顔があるかどうかを判定し、顔があるかどうかを２０７の検出結果としてＲＡＭ１０２に書き込む（ステップＳ２０３）。２０４の検出結果表示処理では検出結果２０７の内容をディスプレイ１０４に表示する（ステップＳ２０４）。
【００１７】
ここで、パターン識別用パラメータ２１１の内容について図４や図５や図６を用いて簡単に説明する。なお、パターン識別用パラメータ２１１を作成する方法については、後ほど記述する。図４に示されるとおり、パターン識別用パラメータ２１１を表すデータは、Ｔ１とＴ２で表された２種類のノードをツリー状（木構造）に接続した構造をしている。識別ノードとしてのタイプＴ１のノードの後にはノードが１つだけ接続されている。また、分岐ノードとしてのタイプＴ２のノードの後にはノードが複数接続されている。Ｎ３と記されたノードもまたタイプＴ２のノードである。なお、本発明はタイプＴ１の種類によらず様々な種類の検出器に適用できるが、ここでは非特許文献２に書かれているような弱判別器（weak classifier）を使用した例を示す。なお、これ以外にもlinear discriminant analysis（ＬＤＡ）やsupportvector machine（ＳＶＭ）などを使った検出器を利用することができる。また、これらを連結した検出器であっても良い。
【００１８】
以後の説明において、パラメータ、分岐先ノードＡ、分岐先ノードＢ、集合Ｆ＋、集合Ｇ＋という表現を用いているが、これらは着目するノードによって異なるものである。言うまでもなく、これらを用いて求めた値もノードによって異なる。本実施形態では煩雑さを避けるためにノードを示す添え字を省略している。
【００１９】
非特許文献２に書かれている弱判別器は、図４のタイプＴ１のノードに相当する。図５は、タイプＴ１のノードのデータ構造を表す図である。このデータは、図１にＲＡＭ１０２として表したメモリ上に複数格納される。個々のデータはそれぞれ値が異なるのが普通である。まず先頭にノードのタイプが格納されている。このノードはタイプＴ１なので、Ｔ１を表すコードがノードのタイプとして格納される。その次に矩形情報が格納されている。矩形情報の初めに矩形の個数ｎが格納されており、その後にその個数ｎだけの矩形の座標（左上点・右下点）が格納されている。これら複数の矩形をまとめて矩形群と呼ぶことにする。次に、打ち切りのためのパラメータが格納されている。ここで「打ち切り」とは、後に図６を用いて説明するが、簡単に言うと早めの段階で入力画像に顔がないと判断して処理を終了することである。打ち切り用パラメータの先頭には閾値θが格納されている。その後に、先の矩形の数ｎだけの打ち切りのための計算に利用する符号が並ぶ。ここで言う符号とは、＋１や−１のことである。最後に次のノードへのポインタが格納されている。
【００２０】
図６は、タイプＴ２のノードのデータ構造を表す。このデータも、図１にＲＡＭ１０２として表したメモリ上に複数格納される。個々のデータはそれぞれ値が異なるのが普通である。まず先頭にノードのタイプが格納されている。このノードはタイプＴ２なので、Ｔ２を表すコードがノードのタイプとして格納される。その次に矩形情報が格納されている。矩形情報の初めに矩形の個数ｎが格納されており、その後にその個数ｎだけの矩形の座標（左上点・右下点）が格納されている。次に分岐先ノードＡのためのパラメータが配置されている。分岐先ノードＡのためのパラメータには、打ち切り用パラメータ同様に閾値や矩形の係数が格納されているが、更に分岐先ノードＡへのポインタも格納されている。このポインタの指し示す先には、また別のノードのパラメータが格納されている。最後にもう１つの分岐先ノードＢへのポインタが格納されている。
【００２１】
上記パラメータの作成方法を説明する前に、このパラメータを使用して顔を検出する方法を説明する。検出処理の全体的な流れは、図４の各ノードを根ノード（図で最も上位に描かれているノード）から順にたどることによって行われる。処理するノードがタイプＴ１のノード（識別ノード）である場合には、図５に図示されたノードに固有のパラメータを用いて、入力画像Ｉに顔が含まれているかどうかが判定される。顔がない可能性が高いと判定された場合にはそこで処理が中断される。そうでない場合には、次のノードの処理へと移る。一方、処理するノードがタイプＴ２のノード（分岐ノード）である場合には、図６に図示されたノードに固有のパラメータを用いて、次にどのノードに処理を移すかの判断が行われる。このように順にノードをたどっていくことによって、タイプＴ１のノードでは打ち切りか継続かの判断が行われ、タイプＴ２のノードでは分岐先ノードの選択が行われる。本実施形態では、各ノードにおいて特徴空間が超平面によって分割されているので、複数のノードを処理するということは、特徴空間から非凹多面体を切り取ったことになる。また、複数のノードを処理した時点で誤検出が起きるのは、誤検出画像の特徴ベクトルがこの非凹多面体の中に入り込んでいるためと考えられる。
【００２２】
図７Ａ、図７Ｂは図２のステップＳ２０３の処理（検出処理）の詳細を表すフローチャート図である。初めのステップＤ１０でポインタ変数ｐが最初のノードを指すように初期化される。次のステップＤ０２でｐが指し示すノードの種類を確認する。ｐが指し示すノードがタイプＴ１の場合には、ステップＤ１１に進む。逆にタイプＴ２の場合には、ステップＤ２１へ進む。ステップＤ１１では、変数ｃを０で初期化する。そして、ステップＤ１２からＤ１５までのループを矩形の数ｎ回だけ繰り返す。ループ内において矩形を表すループ変数をｉとする。ステップＤ１３で、図５のノード情報から矩形ｒiの対角線の座標(xiL，yiT)-(xiR，yiB)を取得し、その入力画像Ｉにおける矩形内の輝度値の総和を求める。これをｂiとする。輝度値の総和ｂiは、非特許文献２に書かれているように累積情報（integralimage）を使って高速に求めることができる。そしてステップＤ１４で変数ｃにｂiと、図５に示す矩形ｒiに対応する符号ａiとの積を加算する。まとめると、このループで求めているのは、次の和である。
【００２３】
【数１】
2009282631.tif 000003
【００２４】
ステップＤ１６ではこの和ｃが図５の打ち切り用パラメータの閾値θを超えているかどうか判定する。そして、ｃがθを超えていればステップＤ１７へ進み、ＣＰＵ１００は検出結果２０７に「偽」の値を書き込む。これは顔が検出されなかったことを表す。ここで、図４で示されたツリーの処理は打ち切られる。ステップＤ１６において和ｃが閾値θを超えていないと判断されると、次のステップＤ１８へ進む。ステップＤ１８において、ＣＰＵ１００は全ノードの処理を終えたかどうか確認する。全ノードの処理が完了していれば処理はステップＤ１９へ進み、ＣＰＵ１００は、検出結果２０７に「真」の値を書き込む。これにより顔が検出されたことになる。一方、ステップＤ１８で全ノードの処理が完了していない場合には、処理はステップＤ０５へ進む。ステップＤ０５において、ＣＰＵ１００は、ポインタ変数ｐに次のノードへのポインタを格納し、処理をステップＤ０２へ戻す。
【００２５】
ステップＤ０２においてポインタ変数ｐが指すノードのタイプがＴ１であれば、当該ノードに関して上記の処理が繰り返されることになる。一方、ステップＤ０２においてポインタ変数ｐが指すノードのタイプがＴ２であれば、ＣＰＵ１００は、ステップＤ２１からの処理を実行する。まずステップＤ２１で変数ｃを０で初期化する。そしてステップＤ２２からＤ２５までのループで次の内積値を求める。
【００２６】
【数２】
2009282631.tif 000004
【００２７】
ａAiは図６に示される各矩形の係数である。そして、ステップＤ２６で、ＣＰＵ１００は、内積値ｃが図６の閾値θAを超えているかどうか確認する。もし超えていれば、処理はステップＤ２８へと進む。ステップＤ２８では、ＣＰＵ１００は、ポインタ変数ｐに図６の分岐先ノードＡへのポインタ値を代入する。そして、再びステップＤ０２からの処理を始める。一方、ステップＤ２６で内積値ｃが閾値θAを超えなかった場合、処理はステップＤ３０へ進む。ステップＤ３０では、ＣＰＵ１００は、ポインタ変数ｐに図６の分岐先ノードＢへのポインタ値を代入する。そして、再びステップＤ０２からの処理を始める。以上の処理は、図４でツリーのノードを遷移していくことになる。図４に示されているとおり、タイプＴ２のノードが連続させることもできる。そうすることによって、より複雑な分岐が可能となる。
【００２８】
以下、本実施形態における識別ノード及び判別ノードのためのパラメータの学習方法について説明する。
図５に示されるタイプＴ１のノードのパラメータを求めるための学習手順は、非特許文献２に示されるとおりである。なお、識別ノードとしてのタイプＴ１のノードは、各学習データの特徴ベクトルが存在する特徴空間を超平面（識別面）で分割することによって識別を行うものである。なお、識別ノードで用いられる超平面は、複数の超平面であってもよい。ここで、留意するべき点は、図５の各矩形となる候補は学習前に予め提示されているという点である。これら矩形の集合をＲ＝｛ｒi｜ｉ＝１,…,Ｎr｝とする。
【００２９】
図６に示されるタイプＴ２のノードのパラメータを求めるための本実施形態における学習手順を示す。まず、学習用データとして、第１の分類に属する学習データと、第２の分類に属する学習データを用意する。本実施形態では、前提として学習用の顔画像ｆjの集合Ｆ＝｛ｆj｜ｊ＝１,…,Ｎf｝と、顔の写っていない学習画像ｇjの集合Ｇ＝{ｇj｜ｊ＝１…Ｎg}が用意されているものとする。更に、図４のツリー構造は予め決められており、パラメータを確保するためのメモリがＲＡＭ１０２上に確保されているものとする。このとき、図５や図６の各ポインタ値も確定しており、格納しておくことができる。そこで、図４においてＴ１と記されているノードから学習対象であるＮ３と記されているノードの直前（つまり、ここではＴ２と書かれているノード）までの学習が済んでいるものとする。
【００３０】
前述した検出の処理を適用すると、Ｎ３までのノードで学習画像のいくつかは顔がないものとして棄却（打ち切り）されたり、タイプＴ２のノードによって他の分岐先に振り分けられたりする。そこで、Ｎ３のノードでは、それまでに棄却されたり他の分岐先に振り分けたりしない顔画像ｆj+の集合Ｆ＋＝｛ｆj+｜ｊ＝１…Ｎf+｝と非顔画像ｇj+の集合Ｇ＋＝｛ｇj+｜j＝１…Ｎg+｝を学習に利用する。従って、Ｇ＋は、直前の識別ノードまでにおいて顔画像に分類された非顔画像であり、識別ノードにおいて誤検出された誤検出データということができる。即ち、Ｇ＋は、第１及び第２の分類のデータからなる学習データに基づいて決定されたパラメータを用いて、学習対象のノードまで処理が到達した場合に、第１の分類のデータとして誤検出された第２の分類のデータを当該学習データから抽出したものである。
【００３１】
ノードＮ３のための学習の大まかな流れを図８に示す。まず、ステップＦ０１で、学習画像Ｆ＋とＧ＋を特徴ベクトルの集合として表す。次にステップＦ０２で非顔画像Ｇ＋の特徴ベクトルをクラスタリングする。最後のステップＦ０３で、クラスタリングした結果を用いて分岐のための分割超平面を決定し、ノードＮ３のパラメータに書き込む。続いて、これら各ステップの詳細を説明する。
【００３２】
図９に図８のステップＦ０１の詳細を表すフローチャート図を示す。ステップＦ１０１からＦ１０７のループは、学習画像Ｆ＋に属する各顔画像ｆj+に関する処理である。ステップＦ１０３からステップＦ１０５までのループは、矩形候補集合Ｒに属する各矩形ｒiに対して繰り返される。そしてステップＦ１０４で２次元配列の要素ｂjifに、顔画像ｆj+上の矩形ｒi内にあるピクセルの輝度値の総和を代入する。また、ステップＦ１１０からＦ１１６のループは、学習画像Ｇ＋に属する各非顔画像ｇj+に関する処理である。ステップＦ１１２からステップＦ１１４までのループは、矩形候補集合Ｒに属する各矩形ｒiに対して繰り返される。そしてステップＦ１１３で２次元配列の要素ｂjigに、非顔画像ｇj+上の矩形ｒi内にあるピクセルの輝度値の総和を代入する。
【００３３】
以上の処理により、学習画像の集合Ｆ＋とＧ＋の各画像に対してＮr次元の特徴ベクトルが対応付けられたことになる。特徴空間の各次元は、それぞれある矩形の中の輝度値総和に対応する。それぞれ対応する集合をＢＦ＋＝｛ｂjf｜ｂjf＝(ｂj1f,ｂj2f,…,ｂjNrf)｝とＢＧ＋＝｛ｂjg｜ｂjg＝(ｂj1g,ｂj2g,…,ｂjNrg)｝とする。上記では、ステップＦ１０３からＦ０１０５までのループとステップＦ１１２からＦ１１４までのループで、全てのｒi∈Rについてループを繰り返す例を示した。しかし、Ｒの中の一部の矩形だけについて繰り返すようにしても良い。
【００３４】
図８のステップＦ０２におけるクラスタリングの方法には様々なものがある。例えば、k-meansと呼ばれるものが代表的である。また、データ量が多い場合に有効なオンラインクラスタリングの手法や、初期値に依存しない解が得られるprincipaldirection divisive partitioning (PDDP；非特許文献５)と呼ばれる方法もある。いずれにせよ、これらの方法により、非顔画像の特徴ベクトルの集合ＢＧ＋を、要素が類似している複数の集合（クラスタ）に分けることができる。これらのクラスタをそれぞれＣq⊆ＢG+とする。また、各Ｃqの重心をｃqとする。このとき、Ｃqは要素の分散が大きい順に並べられているものとする。つまり、Ｃqの中でＣ1が最も分散が大きいものとする。あるいは、要素数の大きい順に並べ、Ｃ1を最も要素数の大きいクラスタとすることもできる。更には、Ｃqの中でＣ1が最も平均距離が大きいクラスタとすることもできる。以上のようにして決定されたクラスタＣ1を「最大クラスタ」と称する。
［非特許文献５］ Boley (1998) “Principal Direction Divisive Partitioning”, Data Mining and Knowledge Discovery.
【００３５】
図８のステップＦ０３では、分岐先ノードを決定するための分割面としての分割超平面を決定する。ステップＦ０３の流れを図１０のフローチャート図に示す。まず、ステップＦ３０１で、ＣＰＵ１００は、顔特徴ベクトルの集合ＢF+の第１主成分方向ベクトルを求める。ここでいう第１主成分方向とは、集合ＢF+の散らばりが最大となる方向である。そのためには、singular-valuedecomposition（ＳＶＤ）やprincipal component analysis（ＰＣＡ）などを使うことができる。ここで得られた主成分方向ベクトルをｄ＝(ｄ1,ｄ2,… ,ｄNr)とする。次にステップＦ３０２で、ＣＰＵ１００は、この主成分方向ベクトルｄの次元数を削減する。具体的には、ｎを予め決められた値として、ｄの成分の中で絶対値が大きい上位ｎ個の成分を取り出し、ａA＝（ａA1,ａA2,… ,ａAn）とする。ｎは値を大きく取るとその分計算に時間を要することになるので、大きくしすぎないことが必要である。ｄの各次元はそれぞれＲ内の矩形１つに対応する。このことに着目して、ａAの各要素に対応する矩形を並べることができる。これをｒA＝（ｒA1,ｒA2,…, ｒAn）とする。ａAの各成分は図６の分岐先ノードＡ用パラメータの該当する領域に書き込まれ、ｎとｒAの各矩形の座標が図６の矩形情報として書き込まれる。なお、次元数の削減の方法は、上記方法に限らない。例えば、ベクトルｄの中の絶対値と対応する矩形面積との積が大きい上位ｎ個の成分を取り出すことで次元を削減することもできる。また、次元削減を行わないことも可能である。
【００３６】
残る閾値θAは、図１０のステップＦ３０３で求められる。閾値θAを求める方法の一例を式で表すと、前述の最大非顔クラスタの重心ｃ1を用いて、次のように表される（添え字Tは転置を表す）。
【００３７】
【数３】
2009282631.tif 000005
【００３８】
このようにすると、図７ＢのステップＤ２６の判断は次のように表現できる。
【数４】
2009282631.tif 000006
【００３９】
これはつまり、特徴ベクトルｂが張る空間を、ＢF+の第１主成分方向に垂直でｃ1を通る超平面によって分割することを意味する。ここで、ｃ1は非顔クラスタが占める空間内の点であることが重要である。ｃ1が最大非顔クラスタの重心であることや、超平面がＢF+の第１主成分方向に垂直であることは、これに比べるとそれほど重要でない。言い換えると、分割面はクラスタの中の１つの重心を通るように設定されてもよいし、ｃ1として非顔クラスタに属する特徴ベクトルの１つを乱数によって選んでもよい。またｃ1は、クラスタ内の各要素の加算平均でも良いし、同じクラスタ内の他の要素との平均距離が最小の要素でも良い。
【００４０】
以上の方法によりタイプＴ１とタイプＴ２のノードのパラメータを学習することにより、図４に示したツリー構造のパラメータを用意することができる。そして、このパラメータを使用することにより、比較的計算負荷の軽い処理により入力画像中の顔を検出することができる。ツリー構造のタイプＴ２のあるノードの処理において、誤検出データＧ＋は正しく検出されるデータＦ＋を囲む非凹多面体の中に入り込んでいると考えることができる。そのため本実施形態では、誤検出データＧ＋をクラスタリングした後の１クラスタを分割する超平面は、Ｆ＋も分割する可能性が高いことに着目している。これにより、分割後のＦ＋はより凸多面体に近づく可能性が高められ、後続の識別ノードのための学習が行いやすくなる。ここでは、具体的な例を挙げるために顔を取り上げたが、頭部・人体や自動車などの他の物体や文字の検出にも利用することが可能である。
【００４１】
［第２実施形態］
第１実施形態では、誤検出データの最大クラスタを分割する超平面が、正しく検出されるデータＦ＋をも分割する可能性が高い点に着目した例を示した。他にも、より確実にＦ＋をも分割する方法が考えられる。
【００４２】
第２実施形態では、図８のステップＦ０３（分割超平面を決定する処理）にいおて、第１実施形態の図１０の代わりに図１１が利用される。まず、ステップＦ３１１で、ＣＰＵ１００は、分割超平面の法線ベクトルを求める。そのために、ＣＰＵ１００は、顔特徴ベクトルの集合ＢF+の重心ｃF+と最大クラスタの重心ｃ1との差Δｃを求める。
【００４３】
【数５】
2009282631.tif 000007
【００４４】
次に、これと顔特徴ベクトルの集合ＢF+の主成分方向ベクトルｄを用いて下のベクトルを求める。
【数６】
2009282631.tif 000008
【００４５】
このベクトルｅは、ｃF+とｃ1を含む超平面の法線ベクトルである。次のステップＦ３１２で、ＣＰＵ１００は、法線ベクトルｅの次元削減を行う。これは、第１実施形態でベクトルｄからａA＝（ａA1,ａA2, … , ａAn）を求めるのと同じ手順でベクトルｅの次元を削減する。そして、ステップＦ３１３では、ＣＰＵ１００は、図１０のステップＦ３０３と同じ手順で閾値θAを求める。このようにして、より確実にＦ＋をも分割する超平面が得られる。上記手順においてｎをより大きく取れば更に確実にＦ＋をも分割する超平面が得られ、次元削減を行わなければ（ｎ＝Ｎr）、確実にＦ＋をも分割する超平面が得られる。なお、次元削減を行わない場合、［数４］に示した分岐条件は次のようになる。
【００４６】
【数７】
2009282631.tif 000009
【００４７】
［第３実施形態］
本発明の第３実施形態では、非線形の識別を利用したパターン識別用パラメータ学習方法及び装置の例を示す。ここでは、本発明についてカーネルトリックと呼ばれる手法を一貫して用いることができることを示す。
【００４８】
なお、第３実施形態に係わる情報処理装置のハードウェア構成は、第１実施形態（図１）に示したものと同じである。また、顔を検出する際の処理の流れ（図２、図３）や、パターン識別用パラメータのツリー構造（図４）も、第１実施形態と同様である。
【００４９】
図１２に第３実施形態におけるタイプＴ１のノードのデータ構成例を示す。このデータは、図１にＲＡＭ１０２として表したメモリ上に複数格納される。個々のデータはそれぞれ値が異なるのが普通である。まず先頭にノードのタイプが格納されている。このノードはタイプＴ１なので、Ｔ１を表すコードがノードのタイプとして格納される。その次に第１実施形態の図５と同じように矩形情報が格納されている。次に、ＳＶＭで使用するサポートベクトル情報が格納される。まず初めにサポートベクトルの本数ｕが格納され、その後に本数ｕだけのサポートベクトルの情報が並ぶ。それぞれｎ次元のベクトルである。更にその後に、打ち切りのためのパラメータが格納される。打ち切り用パラメータの先頭には閾値θが格納されている。その後に、先のサポートベクトルの本数ｕだけのサポートベクトルの係数が並ぶ。最後に次のノードへのポインタが格納されている。
【００５０】
図１３は、第３実施形態におけるタイプＴ２のノードのデータ構造を表す。このデータも、図１にＲＡＭ１０２として表したメモリ上に複数格納される。個々のデータはそれぞれ値が異なるのが普通である。まず先頭にノードのタイプが格納されている。このノードはタイプＴ２なので、Ｔ２を表すコードがノードのタイプとして格納される。その次に第１実施形態（図６）と同じように矩形情報が格納されている。次に、分岐判定で使用する基準ベクトル情報が格納される。まず初めに基準ベクトルの本数ｕが格納され、その後に本数ｕだけの基準ベクトルの情報が並ぶ。それぞれｎ次元のベクトルである。次に、分岐先ノードＡのためのパラメータが配置されている。分岐先ノードＡのためのパラメータには、図１２の打ち切りパラメータと同様に閾値やベクトルの係数が格納されているが、更に分岐先ノードＡへのポインタも格納されている。このポインタの指し示す先には、また別のノードのパラメータが格納されている。最後にもう１つの分岐先ノードＢへのポインタが格納されている。
【００５１】
まず、上記のパラメータを使用して顔を検出する方法を説明する。図１４Ａ，図１４Ｂは図２のステップＳ２０３の詳細を表すフローチャート図である。初めのステップＤ３１０で、ＣＰＵ１００は、ポインタ変数ｐを最初のノードを指すように初期化する。次のステップＤ３１２からＤ３１５のループで、ＣＰＵ１００は、入力画像の特徴ベクトルｂ＝（ｂ1, ｂ2, … ,ｂn）を算出する。なお、ｂiは、入力画像の矩形ｒi内の輝度値総和である。次に、ステップＤ３０２において、ＣＰＵ１００は、ｐが指し示すノードの種類を確認する。ｐが指し示すノードがタイプＴ１の場合には処理はステップＤ３１４に進む。逆にｐが指し示すノードがタイプＴ２の場合には処理はステップＤ３２４へ進む。ステップＤ３１４では、変数ｃに次の値が代入される。
【００５２】
【数８】
2009282631.tif 000010
【００５３】
ここで関数Ｋ(ｂ,ｖh)は、カーネル関数と呼ばれるもので、ベクトルｂとｖhの距離を表すとされる。例えば、次のようなカーネル関数を使用することができる。
【００５４】
【数９】
2009282631.tif 000011
【００５５】
ＣＰＵ１００は、ステップＤ３１４で値ｃを求めた後、ステップＤ３１６でこれが図１２の閾値θを超えるかどうかを判定する。そして、ｃがθを超えていれば処理はステップＤ３１７へ進み、ＣＰＵ１００は検出結果２０７に「偽」の値を書き込む。これは顔が検出されなかったことを表す。ここで、図４で示されたツリーの処理は打ち切られる。一方、ステップＤ３１６において和ｃが閾値θを超えていないと判断されると処理はステップＤ３１８へ進む。ステップＤ３１８では、ＣＰＵ１００は、全ノードの処理を終えたかどうかを確認する。全ノードの処理が完了していれば処理はステップＤ３１９へ進み、ＣＰＵ１００は、検出結果２０７に「真」の値を書き込む。これにより顔が検出されたことになる。逆に、ステップＤ３１８で全ノードの処理が完了していない場合には、処理はステップＤ３０５へ進み、ＣＰＵ１００はポインタ変数ｐに次のノードへのポインタを格納する。そして、ステップＤ３１２へと制御を戻す。
【００５６】
ステップＤ３０２においてポインタ変数ｐが指すノードのタイプがＴ２であると判定された場合は、ＣＰＵ１００は、ステップＤ３２４からの処理を実行する。まず、ステップＤ３２４において、ＣＰＵ１００は、変数ｃに次の値を代入する。
【００５７】
【数１０】
2009282631.tif 000012
【００５８】
ａAhは図１３の基準ベクトルの係数である。ステップＤ３２６で値ｃが図１３の閾値θAを超えているかどうか確認する。もし超えていれば、処理はステップＤ３２８へと進む。ステップＤ３２８では、ＣＰＵ１００は、ポインタ変数ｐに図１３の分岐先ノードＡへのポインタ値を代入する。そして、再びステップＤ３１２からの処理を始める。一方、ステップＤ３２６で閾値を超えなかった場合、処理はステップＤ３３０へ進む。ステップＤ３３０において、ＣＰＵ１００は、ポインタ変数ｐに図１３の分岐先ノードＢへのポインタ値を代入する。そして、再びステップＤ３１２からの処理を始める。以上の処理で、図４でツリーのノードを遷移していくことになる。
【００５９】
以下、本実施形態における識別ノード及び判別ノードのためのパラメータの学習方法について説明する。
図１２に示されるタイプＴ１のノードのパラメータを求めるための学習手順には、ＳＶＭを利用する。ここで、留意するべき点は、図１２の各矩形となる候補は学習前に予め提示されているという点である。これら矩形の集合をＲ＝｛ｒi｜ｉ＝１, … ,Ｎr}とする。
【００６０】
次に、図１３に示されるタイプＴ２のノードのパラメータを求めるための第３実施形態における学習手順を示す。まず、前提として学習用の顔画像ｆjの集合Ｆ＝｛ｆj｜ｊ＝１, … ,Ｎf｝があり、顔の写っていない学習画像ｇjの集合Ｇ＝｛ｇj｜ｇj＝１,… ,Ｎg｝が用意されているものとする。更に、図４のツリー構造は予め決められており、パラメータを確保するためのメモリがＲＡＭ１０２上に確保されているものとする。このとき、図１２や図１３の各ポインタ値も確定しており、格納しておくことができる。そこで、図４においてＴ１と記されているノードからＮ３と記されているノードの直前（つまり、ここではＴ２と書かれているノード）までの学習が済んでいるものとする。
【００６１】
前述した検出の処理を適用すると、Ｎ３までのノードで学習画像のいくつかは顔がないものとして棄却（打ち切り）されたり、タイプＴ２のノードによって他の分岐先に振り分けられたりする。そこで、Ｎ３のノードでは、それまでに棄却されたり他の分岐先に振り分けたりしていない顔画像ｆj+の集合Ｆ＋＝｛fj+｜ｊ＝１, … ,Ｎf+｝と、非顔画像ｇj+の集合Ｇ＋＝｛ｇj+｜ｊ＝１,… ,Ｎg+}を学習に利用する。ノードＮ３のための学習の大まかな流れを図１５に示す。まず、ステップＦ３０１で、学習画像の集合Ｆ＋とＧ＋を特徴ベクトルの集合として表す。次にステップＦ３０２で非顔画像Ｇ＋の特徴ベクトルをクラスタリングする。最後のステップＦ３０３で、クラスタリングした結果を用いて分岐のための分割面としての分割曲面を決定し、ノードＮ３のパラメータに書き込む。続いて、これら各ステップの詳細を説明する。
【００６２】
図１５のステップＦ３２１の詳細は図９と同じである。これにより、２次元配列の要素bjifとbjig、そして集合ＢF+とＢG+が得られる。
【００６３】
図１５のステップＦ３２２におけるクラスタリングの方法にも様々なものがある。例えば、kernel k-means（非特許文献６）と呼ばれる方法がある。この方法により、［数９］に記載しれたようなカーネル関数を用いて、非顔画像の特徴ベクトルの集合ＢG+を、要素が類似している複数の集合（クラスタ）に分けることができる。これらのクラスタをそれぞれＣq⊆ＢG+とする。また、各Ｃqの重心をｃqとする。このとき、Ｃqは要素間の平均距離が大きい順に並べられているものとする。つまり、Ｃqの中でＣ1が最も平均距離が大きいものとする。あるいは、要素数の大きい順に並べ、Ｃ1を最も要素数の大きいクラスタとすることもできる。或いは、Ｃ1を最も分散の大きいクラスタとしてもよい。またｃqはクラスタＣqの各要素の加算平均でも良いが、同じクラスタ内の他の要素との平均距離が最小の要素でも良い。
［非特許文献６］  Dhillon, Guan & Kulis (2004) “Kernel k-means, spectral clustering andnormalized cuts”, Proceedings of the ACM SIGKDD international conference onKnowledge discovery and data mining, p.551.
【００６４】
図１５のステップＦ３２３で、ＣＰＵ１００は、分岐先ノードを決定するための分割曲面を決定する。そのためにkernel PCA（非特許文献７）をＣ1に対して適用することができる。Kernel PCAによれば非線形な写像空間における第１主成分を次のような式で得ることができる。
［非特許文献７］Scholkopf, Smola & Muller(1996)“Nonlinear Component Analysis as a KernelEigenvalue Problem”, Max Planck Institute for Biological Cybernetics Technical ReportNo. 44, December 1996.
【００６５】
【数１１】
2009282631.tif 000013
【００６６】
単純なkernel PCAでは、ｖhは、Ｃq内の非顔画像特徴ベクトルのひとつである。非特許文献８にて提案された方法によれば、ｖhはkernelPCAにて得られた曲面を近似する曲面を記述するためのベクトルである。ここでは双方とも「基準ベクトル」と呼ぶ。ａAhはその係数であり、Ｋ(b,ｖh)は前述のカーネル関数である。ｖhとａAhは、その個数ｕとともに図１３の所定の領域に格納される。最後に閾値θAを以下の式に従って求める。
［非特許文献８］  Burges (1996) “Simplified Support Vector Decision Rules”, International Conference on MachineLearning, p.71.
【００６７】
【数１２】
2009282631.tif 000014
【００６８】
あるいは、写像空間においてＣ1は原点に中心を持つと仮定する場合は、θA＝０と置くことができる。
【００６９】
以上の方法によりタイプＴ１とタイプＴ２のノードのパラメータを学習することにより、図４に示したツリー構造のパラメータを用意することができる。そして、このパラメータを使用することにより、比較的精度良く入力画像中の顔を検出することが可能となる。本実施形態では特に、誤検出データＧ＋をクラスタリングし、その内の１つのクラスタを分割する曲面を決定することにより、正しく検出されるデータＦ＋も分割される可能性が高いことに着目している。これにより、分割後のＦ＋は写像先の空間でより凸多面体に近づく可能性が高められ、後続の識別ノードの学習を行いやすくしている。ここでは、具体的な例を挙げるために顔を取り上げたが、頭部・人体や自動車などの他の物体や文字の検出にも利用することが可能である。
【００７０】
以上、第１乃至第３実施形態において、図４の分岐構造は予め定義されているものとしたが、停止条件を定義することによって自動的に分岐構造を構築することも可能である。それは、分岐後の非顔と顔の比が一定の値以下である場合には、その分岐をやめるということによって実現することができる。これにより、分岐の深さが自動的に選択されるようになる。
【００７１】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００７２】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【００７３】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００７４】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００７５】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては以下が挙げられる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【００７６】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００７７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【００７８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【００７９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行なう。
【図面の簡単な説明】
【００８０】
【図１】実施形態に係わる情報処理装置のハードウェア構成を説明するブロック図である。
【図２】第１実施形態で、顔を検出する際の処理の流れを表すフローチャート図である。
【図３】図２をデータフロー図として書き表した図である。
【図４】第１実施形態におけるパターン識別用パラメータの構造を表した図である。
【図５】タイプＴ１のノードのデータ構造を表す図である。
【図６】タイプＴ２のノードのデータ構造を表す図である。
【図７Ａ】図２ステップＳ２０３の第１実施形態における詳細を表すフローチャート図である。
【図７Ｂ】図２ステップＳ２０３の第１実施形態における詳細を表すフローチャート図である。
【図８】図４のノードＮ３のための第１実施形態における学習の大まかな流れ
【図９】図８のステップＦ０１の詳細を表すフローチャート図である。
【図１０】図８のステップＦ０３の詳細を表すフローチャート図である。
【図１１】第２実施形態における図８のステップＦ０３の詳細を表すフローチャート図である。
【図１２】第３実施形態におけるタイプＴ１のノードのデータ構造を表す図である。
【図１３】第３実施形態におけるタイプＴ２のノードのデータ構造を表す図である。
【図１４Ａ】図２ステップＳ２０３の第３実施形態における詳細を表すフローチャート図である。
【図１４Ｂ】図２ステップＳ２０３の第３実施形態における詳細を表すフローチャート図である。
【図１５】図４のノードＮ３のための第３実施形態における学習の大まかな流れを説明する図である。
【図１】
2009282631.tif 000015
【図２】
2009282631.tif 000016
【図３】
2009282631.tif 000017
【図４】
2009282631.tif 000018
【図５】
2009282631.tif 000019
【図６】
2009282631.tif 000020
【図７Ａ】
2009282631.tif 000021
【図７Ｂ】
2009282631.tif 000022
【図８】
2009282631.tif 000023
【図９】
2009282631.tif 000024
【図１０】
2009282631.tif 000025
【図１１】
2009282631.tif 000026
【図１２】
2009282631.tif 000027
【図１３】
2009282631.tif 000028
【図１４Ａ】
2009282631.tif 000029
【図１４Ｂ】
2009282631.tif 000030
【図１５】
2009282631.tif 000031