(57)【要約】【課題】ＬＢＰやベクトル量子化等を用いた画像変換において、変換後の値が、変換元のパターンの違いを、ある程度低次元な値で且つ好ましく表現することを可能とする。【解決手段】入力画像の画素値を変換して変換画像を生成する画像変換方法は、複数のクラスのそれぞれに分類された画素とその周囲の画素とからなる画素パターンのクラス間の相互関係を反映した値を、複数のクラスのそれぞれに対して変換値として設定し、入力画像から注目画素を順次に選択し、選択された注目画素およびその周囲の所定数の画素からなる画素パターンを、注目画素の値と当該注目画素に対して所定の相対位置にある周辺画素の値との関係に基づいて得られる近傍パターンに従って複数のクラスのいずれかに分類する。そして、注目画素の値を上記分類されたクラスに対して設定された変換値へ変換する。【選択図】  図１
2011008631.tif 000002
【特許請求の範囲】
【請求項１】
設定手段が、複数のクラスのそれぞれに分類された画素とその周囲の画素とからなる画素パターンのクラス間の相互関係を反映した値を、前記複数のクラスのそれぞれに対して変換値として設定する設定工程と、
選択手段が、入力画像から注目画素を順次選択する選択工程と、
分類手段が、選択された前記注目画素を、前記注目画素の値と前記注目画素に対して所定の相対位置にある周辺画素の値との関係に基づいて得られる近傍パターンに従って前記複数のクラスのいずれかに分類する分類工程と、
変換手段が、前記分類工程で前記注目画素が分類されたクラスに設定されている変換値に前記注目画素の値を変換する変換工程とを有することを特徴とする画像変換方法。
【請求項２】
前記周辺画素は、前記注目画素に隣接した複数の画素であることを特徴とする請求項１に記載の画像変換方法。
【請求項３】
前記周辺画素は、当該注目画素から所定の距離だけ離れた位置にある複数の画素であることを特徴とする請求項１に記載の画像変換方法。
【請求項４】
前記分類工程では、前記注目画素と前記周辺画素との画素値の大小比較結果に基づいて前記近傍パターンを取得することを特徴とする請求項１に記載の画像変換方法。
【請求項５】
前記設定工程では、前記複数のクラスのそれぞれに分類された前記大小比較結果を示す近傍パターンの間の距離または類似度が保存されるように前記複数のクラスの各々の変換値を設定することを特徴とする請求項４に記載の画像変換方法。
【請求項６】
前記分類工程では、前記近傍パターンと、前記複数のクラスそれぞれの代表パターンとの距離または類似度を求め、当該距離または類似度に基づいて前記注目画素を前記複数のクラスのいずれかに分類することを特徴とする請求項１に記載の画像変換方法。
【請求項７】
前記設定工程では、前記複数のクラスそれぞれの前記代表パターンの間の距離または類似度が保存されるように前記変換値を設定することを特徴とする請求項６に記載の画像変換方法。
【請求項８】
前記代表パターンは、予め用意した前記複数のクラスのそれぞれに分類された複数のパターンサンプル群をベクトル量子化することにより得られた代表ベクトルであることを特徴とする請求項７に記載の画像変換方法。
【請求項９】
前記変換値はベクトル値であり、該ベクトル値は前記代表ベクトルよりも次元が低いことを特徴とする請求項８に記載の画像変換方法。
【請求項１０】
前記設定工程では、前記複数のクラスのそれぞれに分類された画素パターンに基づいて得られるクラス間の距離または類似度が保存されるように前記複数のクラスの各々の変換値を決定することを特徴とする請求項１に記載の画像変換方法。
【請求項１１】
前記設定工程では、前記複数のクラスのそれぞれに属するクラス別の画素パターンのサンプル群に対してクラスター分析を適用することにより得られた当該複数のクラス間のクラスター距離またはクラスター間の類似度が保存されるように前記複数のクラスの各々の変換値を設定することを特徴とする請求項１０に記載の画像変換方法。
【請求項１２】
前記設定工程では、クラス別の前記サンプル群における各画素パターンの画素値を用いて前記クラスター分析を行なうことを特徴とする請求項１１に記載の画像変換方法。
【請求項１３】
前記設定工程では、クラス別の前記サンプル群における各画素パターンの画素値と、各画素パターンが抽出された元の画像を特定する情報を含む付随情報とに基づいて前記複数のクラスの各々の変換値を決定することを特徴とする請求項１１に記載の画像変換方法。
【請求項１４】
前記付随情報が、各画素パターンが抽出された元の画像における空間配置位置を示す情報を更に含むことを特徴とする請求項１３に記載の画像変換方法。
【請求項１５】
前記設定工程では、前記クラス間の距離を用いて、前記複数のクラスの各クラスを少なくとも１次元以上の空間にマッピングしたマップを生成し、前記マップ上の各クラスに対応する座標値を当該各クラスに対する変換値とすることを特徴とする請求項１０に記載の画像変換方法。
【請求項１６】
前記マッピングは、多次元尺度構成法またはＩｓｏｍａｐを適用することにより行われることを特徴とする請求項１５に記載の画像変換方法。
【請求項１７】
前記設定工程では、前記複数のクラスの各々について用意した画素パターンのサンプル群を用いて自己組織化マップを生成し、前記自己組織化マップに基づいて前記変換値を設定することを特徴とする請求項１乃至５のいずれか１項に記載の画像変換方法。
【請求項１８】
前記設定工程では、
前記自己組織化マップにおける各ニューロンの重みベクトルに基づき、当該各ニューロンを前記複数のクラスのいずれかへ分類し、
前記複数のクラスの各々において各クラスに分類されたニューロンの重心位置座標を求め、
前記複数のクラスの各々について求めた前記重心位置座標を前記複数のクラスの各々の変換値とすることを特徴とする請求項１７に記載の画像変換方法。
【請求項１９】
前記設定工程では、
前記自己組織化マップにおける各ニューロンの重みベクトルに基づき、当該各ニューロンを、前記複数のクラスのいずれかへ分類し、
前記複数のクラスの各々において、前記自己組織化マップにおいて最大のクラスターを検出し、
前記複数のクラスの各々について求めた前記最大のクラスターの重心位置座標を、前記複数のクラスの各々の変換値とすることを特徴とする請求項１７に記載の画像変換方法。
【請求項２０】
前記設定工程では、
生成した前記自己組織化マップを複数の領域に分割し、
前記分割により得られた各領域を、前記自己組織化マップと同じ次元数を有するヒストグラムのビンとし、前記自己組織化マップにおける前記複数の領域の各々における前記複数のクラスのマッピング状況に基づき、各クラスに対応するビンを決定し、
前記各クラスに対応するヒストグラムのビンの位置を示すインデックスを、前記複数のクラスのそれぞれの変換値とすることを特徴とする請求項１７に記載の画像変換方法。
【請求項２１】
請求項１乃至２０のいずれか１項に記載された画像変換方法により、入力画像の各画素が変換値に置換された変換画像を取得する取得工程と、
前記取得工程で取得した変換画像を用いて前記入力画像のパターンを識別する識別工程とを有することを特徴とするパターン識別方法。
【請求項２２】
複数のクラスのそれぞれに分類された画素とその周囲の画素とからなる画素パターンのクラス間の相互関係を反映した値を、前記複数のクラスのそれぞれに対して変換値として設定する設定手段と、
入力画像から注目画素を順次選択する選択手段と、
選択された前記注目画素を、前記注目画素の値と前記注目画素に対して所定の相対位置にある周辺画素の値との関係に基づいて得られる近傍パターンに従ってあらかじめ定義された複数のクラスのいずれかに分類する分類手段と、
前記分類手段により前記注目画素が分類されたクラスに付与されている変換値に前記注目画素の値を変換する変換手段とを備えることを特徴とする画像変換装置。
【請求項２３】
請求項２２に記載された画像変換装置と、
前記画像変換装置から、入力画像の各画素が変換値に置換された変換画像を取得する取得手段と、
前記取得手段で取得した変換画像を用いて前記入力画像のパターンを識別する識別手段とを備えることを特徴とするパターン識別装置。
【請求項２４】
請求項１乃至２０のいずれか１項に記載された画像変換方法または請求項２１に記載されたパターン識別方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、照明環境の違い等に起因する、画像の明るさやコントラストの変動にロバストな、画像変換方法及び装置、並びに、パターン識別方法及び装置に関する。
【背景技術】
【０００２】
画像の明るさやコントラストの変動にロバストな画像変換方法として、例えば非特許文献１の、Local Binary Pattern（ＬＢＰ）や、非特許文献２のCensus Transform（ＣＴ）が注目されている。これらは、基本的に、注目画素と近傍画素との輝度値の比較結果に基づいて、注目画素に対応する位置の値を、複数の数値列若しくはそれから算出される１つのスカラー値に変換する。また、これらの改良手法（非特許文献３参照）や、これらの変換手法を用いたパターン識別方法も提案されている（特許文献１、特許文献２を参照）。
【０００３】
ＣＴの場合、この求めた数値列をそのまま変換値とする。ＬＢＰの場合は、この数値列を基に算出した１つのスカラー値を変換値としている。具体的な例を用いて説明する。図３は、ＬＢＰで用いる、注目画素を中心とした３×３画素の局所的な画像と、それらの輝度値を示したものである。ＬＢＰでは、まず変換対象となる画像から、ラスタスキャン的に、順次、注目画素を選択して、選択した注目画素における変換値を求める。
【０００４】
例えば、図３の（ａ）で、注目画素３０ａと８個の近傍画素３１ａから３８ａとの輝度値を比較し、それぞれの近傍画素の輝度値が注目画素より大きければ１、そうでなければ０として、単純に並べた値を求める。その結果は、“００００００１０”となる。ＬＢＰでは、これを、８ビットの数値と考え、“００００００１０”＝２という値を、変換値とする。この際、比較する値の絶対的な差の大きさは考慮しないため、明るさ等の変動に対してロバストになる。しかし、この手法では、変換後の数値である“２”という数値は、単なるインデックスでしかなく“２”という値自体には特に意味が無い。
【０００５】
実際、図３の（ｂ）は、図３の（ａ）のパターンを時計回りに９０°回転させたパターンである。ＬＢＰでは、これらのパターンに対応する変換値は、（ａ）では２となり、（ｂ）では１２８となり、値が大きく異なってしまう。つまり、ＬＢＰにおける変換後の値は、各パターンを記述するための記号でしかなく、例えば数値の差分等、数値間の演算に重要な意味がない。また、図３の（ｂ）のパターンは、図３の（ａ）のパターンを少々変動させただけであるにも関わらず、変換後の値が６４倍になってしまう。このように、ＬＢＰのような変換方法は、パターンの回転等の変動に対して、変換値が大きく変化することがあり、ロバスト性が低いと考えられる。
【０００６】
ＣＴでは、８ビットの数値を８次元のベクトル値とするので、図３の（ａ）と（ｂ）のパターンは、それぞれ“００００００１０”、“１０００００００”となる。この場合、図３の（ａ）、（ｂ）の変換値間のユークリッド距離は√２となる。このようにＣＴでは、通常のＬＢＰに比べると、変換後の数値や数値間の演算結果は意味があるものになる。
【０００７】
しかし、ＣＴの場合、図３の（ｃ）のようなパターンに対応する変換値（“０００１００００”）と、図３の（ａ）、（ｂ）のパターンに対応する変換値とのユークリッド距離は√２となってしまう。つまり、図３の（ａ）から（ｃ）の、３つのパターンに対応する変換値は、いずれの組み合わせでも、全て同程度の関係にあることになってしまう。特許文献２に記載されているような、変換後の画像を用いたパターン識別方法の観点からすれば、パターンが類似しているならば変換後の値も類似した値となり、パターンが類似していないならば変換後の値も離れた値になることが好ましいと考えられる。（ａ）のパターンから見ると、（ｂ）のパターンは時計回りに９０°、（ｃ）のパターンは反時計回りに１３５°回転させたパターンである。つまり、（ｃ）のパターンは（ｂ）のパターンに比べ、（ａ）のパターンからの変動が大きい。そのため、（ａ）のパターンに対応する変換値に対して、（ｃ）のパターンに対応する変換値は、（ｂ）のパターンに対応する変換値より離れている関係が好ましいと考えられる。
【０００８】
また、ＣＴの場合、注目画素に対応する変換後の値が高次元であるため、変換後の画像を用いたパターン識別で、“次元の呪い”と呼ばれる問題が発生する可能性が高くなる。
つまり、ＬＢＰやＣＴは、明るさ等の変動に対してロバストではあるが、変換後の値に数値としての意味があまり無いか変換値の次元が高くなってしまい、その変換元となるパターンの違いを好ましく反映できなかった。
【０００９】
また、ＬＢＰやＣＴは、広義に捉えると、ベクトル量子化の一種と考えることができる。ベクトル量子化は、非特許文献４のように、パターン識別の分野で用いられることもある。
非特許文献４に記載された技術では、ベクトル量子化後の代表ベクトルにマッチしたベクトルの度数ヒストグラムを用いてパターン識別が行われる。この技術では、２つのパターンに対応するインデックス同士の差分等、インデックスを数値として扱った場合の数値間の演算からは、ＬＢＰと同様に、あまり意味のある演算結果は得られない。
【００１０】
また、ベクトル量子化を用いた方法では、マッチした代表ベクトルそのものを変換後の値として用いることもできる。しかしこの場合は、ＣＴと同様に、変換後の値が比較的高次元（変換元のパターンと同じ次元）のベクトル値になってしまう。
（非特許文献５〜２０は、「発明を実施するための最良の形態」において引用されている）
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−１８８５０４号広報
【特許文献２】特開２００７−２４１４１８号広報
【非特許文献】
【００１２】
【非特許文献１】T. Ojala, M. Pietikainen, D. Harwood, “A Comparative Study of Texture Measures with Classification Based on Feature Distributions”, Pattern Recognition, Vol.29, pp. 51-59, 1996
【非特許文献２】R. Zabih, J. Woodfill, “A Non-parametric Approach to Visual Correspondence”, IEEE Transactions on Pattern Analysis and Machine Intelligence,1996
【非特許文献３】S. Marcel, Y. Rodriguez, G. Heusch, “On the Recent Use of Local Binary Patterns for Face Authentication”, International Journal on Image and Video Processing Special Issue on Facial Image Processing, 2007
【非特許文献４】Koji Kotani, Chen Qiu, Tadahiro Ohmi, “Face Recognition Using Vector Quantization Histogram Method”, International Conference on Image Processing, Vol.2, pp. II-105-II-108, 2002
【非特許文献５】J.C. Gower, “Some Distance Properties of Latent Root and Vector Methods used in Multivariate Analysis”, Biometrika, Vol.53, pp. 325-338, 1966
【非特許文献６】Robert W. Floyd, “Algorithm 97:Shortest Path”, Communications of the ACM, Vol. 5, Issue 6, p.345, 1966
【非特許文献７】H. Jin, Q. Liu, H. Lu, X. Tong, “Face Detection Using Improved LBP under Bayesian Framework”, International Conference on Image and Graphics, pp. 306-309,2004
【非特許文献８】T. Maenpaa, M. Pietikainen,T.Ojala, “Texture Classification by Multi-Predicate Local Binary Pattern Operators”, International Conference of Pattern Recognition, Vol. 3, pp. 951-954,2000
【非特許文献９】T. Ojala, M. Pietikainen, T. Maenpaa, “Multiresolution Gray-scale and Rotation Invariant Texture Classification with Local Binary Patterns”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 24, pp. 971-987,2002
【非特許文献１０】Joshua B. Tenenbaum, Vin de Silva, John C. Langford, “A Global Geometric Framework for Nonlinear Dimensionality Reduction”, Science, Vol. 290,pp. 2319-2323, 2000
【非特許文献１１】Teuvo Kohonen, “The Self-Organizing Map”, Proceedings of The IEEE, Vol. 789, No. 9,pp. 1464-1480, 1990
【非特許文献１２】前田  賢一, 渡辺  貞一, “局所的構造を導入したパターン・マッチング法”, 電子情報通信学会誌（Ｄ）, Vol. J68-D, No. 3,pp.345-352, 1985
【非特許文献１３】George Arfken, Hans Weber, “Gram-Schmidt Orthogonalization”, Mathematical Methods for Physicists, 6th Edition, Academic Press,pp.642-648, 2005
【非特許文献１４】Michael. J. Swain, Dana.H.Ballard,“Color Indexing”, International Journal of Computer Vision, Vol. 7, No. 1, pp.11-32, 1991
【非特許文献１５】Yossi Rubner, Carlo Tomasi, Leonidas J. Guibas, “The Earth Mover’s Distance as a Metric for Image Retrieval”, International Journal of Computer Vision, Vol. 40,No. 2, pp. 99-121, 2000
【非特許文献１６】Stuart P. Lloyd, “Least Squares Quantization in PCM”, IEEE Transactions on Information Theory, IT-2, pp. 129-137, 1982
【非特許文献１７】Jianbo Shi, Jitendra Malik, “Normalized Cuts and Image Segmentation”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 22, No. 8,pp.888-905, 2000
【非特許文献１８】Sam T. Roweis, Lawrence K. Saul, “Nonlinear Dimensionality Reduction by Locally Linear Embedding”, Science, Vol. 290, pp. 2323-2326, 2000
【非特許文献１９】XiaofeiHe, Partha Niyogi, “Locality Preserving Projections”, Advances in Neural Information Processing Systems, Vol. 16, pp. 585-591, 2003
【非特許文献２０】Guoying Zhao, Matti Pietikainen, “Dynamic Texture Recognition Using Volume Local Binary Patterns with an Application to Facial Expressions”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 29, No. 6, pp.915-928, 2007
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述のように、明るさ等の変動にロバストなパターン識別を実現するため、明るさ等の変動に対してロバストである有効性を残しつつ、変換後の値が変換元のパターンの違いを、ある程度低次元の値で好ましく表現可能である画像変換方法が望まれている。
【００１４】
本発明は、このような課題に鑑みなされたものであり、ＬＢＰやベクトル量子化等を用いた画像変換において、変換後の値が、変換元のパターンの違いを、ある程度低次元な値で好ましく表現可能とすることを目的とする。
【課題を解決するための手段】
【００１５】
上記の目的を達成するための本発明の一態様による画像変換方法は、
複数のクラスのそれぞれに分類された画素とその周囲の画素とからなる画素パターンのクラス間の相互関係を反映した値を、前記複数のクラスのそれぞれに対して変換値として設定する設定工程と、
前記入力画像から注目画素を順次選択する選択工程と、
選択された前記注目画素を、前記注目画素の値と前記注目画素に対して所定の相対位置にある周辺画素の値との関係に基づいて得られる近傍パターンに従って前記複数のクラスのいずれかに分類する分類工程と、
前記分類工程で前記注目画素が分類されたクラスに設定されている変換値に前記注目画素の値を変換する変換工程とを有する。
【発明の効果】
【００１６】
本発明によれば、ＬＢＰやベクトル量子化等を用いた画像変換において、変換後の値が、変換元のパターンの違いをある程度低次元な値で好ましく表現することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態における画像変換方法の処理ブロックを示す図。
【図２】第５実施形態における画像変換方法の処理ブロックを示す図。
【図３】変換値を求めるために用いる、注目画素を中心とした３×３画素の局所的な画像例を示す図。
【図４】第１実施形態における画像変換方法の処理を示すフローチャート。
【図５】第１実施形態におけるパターン識別方法の処理ブロックを示す図。
【図６】第１実施形態におけるパターン識別方法の処理を示すフローチャート。
【図７】第１実施形態における、各クラス間の相互関係に基づいて、各クラスに対応する変換値を求める方法の処理ブロックを示す図。
【図８】第１実施形態における、各クラス間の相互関係に基づいて、各クラスに対応する変換値を求める方法の処理を示すフローチャート。
【図９】第５実施形態における、各クラスに対応する変換値を求める方法の処理ブロックを示す図。
【図１０】第５実施形態における、代表ベクトル、及び、代表ベクトルに対応する各クラス間の相互関係に基づいて、各クラスに対応する変換値を求める方法の処理を示すフローチャート。
【図１１】注目画素と、その近傍４領域の位置を示す図。
【図１２】任意方向の１次の輝度勾配変動成分及び２つの基底パターンを示す図。
【図１３】第３実施形態における、各クラス間の相互関係に基づいて、各クラスに対応する変換値を求める方法の処理ブロックを示す図。
【図１４】第３実施形態における、各クラス間の相互関係に基づいて、各クラスに対応する変換値を求める方法の処理を示すフローチャート。
【図１５】第４実施形態における画像変換方法の処理ブロックを示す図。
【図１６】第４実施形態における画像変換方法の処理を示すフローチャート。
【図１７】第４実施形態における、各クラスに対応するインデックスを求める方法の処理ブロックを示す図。
【図１８】第４実施形態における、各クラスに対応するインデックスを求める方法の処理を示すフローチャート。
【図１９】第４実施形態における、ＳＯＭ生成処理を示すフローチャート。
【図２０】第４実施形態における、クラス対応インデックス決定処理を示すフローチャート。
【図２１】第４実施形態で生成されたＳＯＭの簡易な例を示す図。
【図２２】第４実施形態におけるパターン識別方法の処理ブロックを示す図。
【図２３】第４実施形態におけるパターン識別処理を示すフローチャート。
【図２４】第４実施形態における、２次元ヒストグラムに対して畳み込む空間フィルタを示す図。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照しながら、本発明の実施形態を説明する。
（第１実施形態）
まず、第１実施形態の概要を説明する。図１、図４に示される本実施形態の画像変換方法では、まず、画像入力部１０により、入力画像の注目画素を順次選択する（ステップ４０、４１）。そして、近傍パターン抽出部１２により、選択された注目画素の位置に対して所定の相対位置にある周辺画素の値に基づいて近傍パターンを取得する（ステップ４２）。上記の周辺画素としては、図３に示されるような注目画素を中心とした３×３画素パターンの周囲の８画素を用いることができる。
【００１９】
次に、クラス分類処理部１３は、予め定義された複数のクラスのいずれかに上記近傍パターンを分類する（ステップ４３）。第１実施形態では、選択した注目画素と上記周辺画素との、画素値の大小比較結果に基づいてクラス分類がなされる。詳細は後述する。
【００２０】
続いて、変換値割り当て部１４は、複数のクラス間の相互関係に基づいて、複数のクラスのそれぞれに対してあらかじめ定められた値を参照し、注目画素の値を、先に分類されたクラスに対して定められた値へ変換する（ステップ４４）。ここで、複数のクラス間の相互関係に対応してそれら複数のクラスの各々に変換値が登録されているクラス対応変換値データベース１５が参照される。。そのような変換値は、複数のクラス間の距離、または類似度である。第１実施形態では、各クラスに分類された注目画素とその周囲における所定数の画素からなる画素値のパターンに基づいて得られる、クラス間の距離または類似度である。詳細は後述する。
【００２１】
以下、本発明の第１実施形態として、人物の顔を切り出したグレースケール画像を入力し、明るさ等の変動に対してロバストに変換する方法の例を示す。そして、変換後の画像が何れの人物の顔画像であるかを識別するパターン識別方法の例も示す。
【００２２】
図１に、第１実施形態における、画像変換方法の処理ブロック図を示す。また、図４は、第１実施形態における、画像変換方法の処理フローを示した図である。
まず、画像入力部１０において、縦横２０×２０画素の、人物の顔を切り出したグレースケール画像（以下、単に入力画像とする）を入力する（ステップ４０）。
次に、注目画素選択部１１において、入力画像の左上から、ラスタスキャン的に、順次、注目画素を選択していく。ただし、後の近傍画素選択部１２で注目画素の８近傍の画素値を用いるため、注目画素には８近傍の画素が存在する必要があるため、入力画像の上下左右の端、１画素分を除いた場所から、順次、注目画素を選択していく（ステップ４１）。
続いて、近傍パターン抽出部１２では、注目画素選択部１１で選択した注目画素を中心とする、３×３画素のパターンを抽出する（ステップ４２）。
【００２３】
次に、クラス分類処理部１３において、抽出した３×３画素のパターンに対し、まず、ＬＢＰやＣＴと同じ基準で、注目画素と８近傍の各画素との比較を行い、８個の｛０、１｝からなる数値列を求める。８個の｛０、１｝からなる２５６種類の数値列のパターンそれぞれを１つのクラスと定義する。そして、求めた数値列に対応するクラスに、抽出した３×３画素のパターンを分類する。ここでＬＢＰと同様に、数値列を８ビットの数値とみなして１０進数に変換し、それをクラスの番号として表記する。つまり、このクラス分類処理部１３では、近傍パターン抽出部１２で抽出した３×３画素のパターンが、クラス０からクラス２５５までのいずれかに分類される（ステップ４３）。
【００２４】
ここまでは、ＬＢＰやＣＴと同様であるが、次の、変換値割り当て部１４での処理が、ＬＢＰやＣＴとは異なる。本実施形態では、変換値割り当て部１４で、クラス対応変換値データベース１５を参照し、クラス分類処理部１３で分類されたクラスに対応する値を読み出して、その値を注目画素選択部１１で選択した注目画素に対応する変換値とする（ステップ４４）。ここで参照する、クラス対応変換値データベース１５は、各クラスに対応する変換値として、クラスごとに、２つの数値からなる２次元のベクトル値が記録されている。この２次元ベクトル値は、予め、各クラス間の相互関係に基づいて定めた値である。この２次元ベクトル値の定め方については、後に詳細に説明する。
【００２５】
変換値割り当て部１４において求めた変換値を、注目画素選択部１１で選択した注目画素に対応する変換値として、変換画像保持部１６に保持する（ステップ４５）。
上記処理により、注目画素選択部１１で選択した注目画素に対して、２次元ベクトル値である変換値が変換画像保持部１６に記録される。このような変換値を１８×１８画素分求める。そのため、選択していない画素があるならば、注目画素選択処理に戻り、全画素を処理したならば次の処理に進む（ステップ４６）。
【００２６】
１８×１８画素の全てについて、変換値を記録したら、変換画像出力部１７で、変換画像保持部１６に記録されている結果を外部に出力する（ステップ４７）。これにより画像変換処理が終了となる。上記処理により、それぞれの注目画素に対して得られた２次元のベクトル値を、１８×１８画素分並べた画像を外部に出力する。
【００２７】
次に、各クラスに対応する変換値の求め方について説明する。本実施形態では、予め用意したクラス別パターンサンプル群に対してクラスター分析を適用することにより、複数のクラス間のクラスター距離またはクラスター間の類似度を、クラス間の距離または類似度として得る。図７に、本実施形態における、各クラスに対応する変換値を求めるための処理ブロック図を示す。また、図８に、この変換値を求める方法の処理フローを示す。
【００２８】
まず、画像入力部７０において、顔画像データベース７５に保持されている多数の画像の中から、１枚の画像を選択して入力する。ここで、顔画像データベース７５は、縦横２０×２０画素の、様々な人物について顔を切り出したグレースケール画像を多数保持したものである。この顔画像データベース７５に保持されている顔画像は、凡そ、同程度のサイズ、回転角度に正規化しておき、画像の明るさや、コントラストについても、同程度の条件にしておくことが好ましい。特に、画像の明るさやコントラストに関しては、後述のクラスター分析処理部７７での処理に影響を与えるため、正規化を行っておく方が良い。本実施形態では、両目間の幅や、両目を結ぶ線分の傾き、画像の輝度平均値・標準偏差を元に正規化した２０００枚（約２００人分：１人につき８〜１２枚程度）の顔画像を用いる。画像入力部７０では、この２０００枚の顔画像から１枚ずつ選択して入力していく。入力順は、例えば、画像に付けたインデックス順等で良い（ステップ８０）。
【００２９】
次の、注目画素選択部７１、近傍パターン抽出部７２、クラス分類処理部７３は、図１の注目画素選択部１１、近傍パターン抽出部１２、クラス分類処理部１３と同等の処理部であるので処理の説明は省略する（ステップ８１〜８３）。
続いて、クラス別パターン記録部７４において、クラス分類結果に基づいて、抽出した３×３画素パターンを、それぞれの画素値を左上からラスタスキャン的に並べた９個の数値として、クラス別パターン群データベース７６に記録する（ステップ８４）。
上記ステップ８１〜８４までの処理を、入力した１枚の画像に対し、注目画素として選択すべき１８×１８画素分実行する。そのため、選択していない画素があるならば、注目画素選択処理に戻り、全画素の処理を行ったならば次の処理に進む（ステップ８５）。
【００３０】
上記処理により、１枚の画像につき、１８×１８個分の３×３画素のパターンが、クラス別パターン群データベース７６の、それぞれのパターンが分類されたクラスに対応するパターン群に記録される。このような処理を、顔画像データベース７５に保持された全ての画像に対して実行する。そのため、まだ未入力の画像があるならば、画像入力処理に戻り、全ての画像を処理したならば、次の、クラスター分析処理に進む（ステップ８６）。
【００３１】
ここまでで、クラス別パターン群データベース７６に、多数の３×３画素のパターンが、各自のパターンに対応するクラス別に記録される。このとき、もしあるクラスに１つもパターンが記録されなかった場合は、次のクラスター分析処理に支障をきたす。そこで、顔画像データベース７５に画像を追加して、上記の処理を、全てのクラスに少なくとも１つのパターンが記録されるようになるまで続ければ良い。
【００３２】
続いて、クラスター分析処理部７７において、ここまでの処理により、クラス別パターン群データベース７６に記録した多数のパターンを用いて、各クラス間のクラスター距離を求める。本実施形態では、群平均法を用いてクラスター距離を求める。
より具体的には、例えば、クラスｉとクラスｊ（ｉ≠ｊ）のクラスター距離は、以下のような手順により求まる。まず、クラスｉパターン群７６−ｉとクラスｊパターン群７６−ｊとのそれぞれに記録されている全ての３×３画素のパターンの全ての組み合わせの距離を求める。ここで求める各パターン間の距離は、どのような距離尺度でも構わないが、本実施形態では、ユークリッド距離を用いる。そして、求めた距離の平均を求め、これをクラスｉとクラスｊ間のクラスター距離とする。クラスター分析処理部７７では、このようなクラスター距離を、全てのクラスの組み合わせに対して求める（ステップ８７）。
【００３３】
本実施形態のクラス数は２５６個であるので、２５６×２５５／２＝３２，６４０個分のクラスター距離を求めることになる。この処理は非常に計算時間がかかるが、予めオフラインで計算しておくことができる。すなわち、各クラスへの変換値の設定は、画像変換に先立って行われるので、変換の際には問題にならない。また、クラスター距離を求める方法は群平均法に限るものではなく、例えば、最短距離法や、最長距離法、重心法、メディアン法、可変法、ウォード法等のクラスター距離尺度を用いても構わない。
【００３４】
次に、ＭＤＳ処理部７８において、各クラス間のクラスター距離を用い、所定次元のターゲット空間に、各クラスに対応する点をマッピングする（ステップ８８）。この各クラスに対応する点は、ターゲット空間における各点間のユークリッド距離が、クラス間のクラスター距離をできるだけ保存するような点である。これは、各クラス間の相互関係（本実施形態では、クラス間の距離）をできるだけ保存するような変換値を求めるための処理であり、各クラスに対応する点の位置座標が、各クラスに対応する変換値となる。本実施形態では、このような点を求める手法として、多次元尺度構成法（ＭＤＳ）を用いる（ＭＤＳについては、非特許文献５を参照）。
【００３５】
ターゲット空間の次元は、最大でもクラス数−１、つまり、本実施形態では２５５次元である（各クラス間のクラスター距離の状況によっては、２５５次元以下になる場合もある）。このターゲット空間の次元を高くする方が、より高精度でクラス間のクラスター距離を保存できる。しかし、ターゲット空間の次元をあまり高くすると、変換後の値の次元が高くなってしまい、後のパターン識別処理において、いわゆる次元の呪いが発生する可能性が高くなる。そのため、このターゲット空間の次元は、ある程度、低い次元が好ましく、本実施形態では２次元とするが、この次元数は１次元以上であればよい。最も好適には、いわゆるＣｒｏｓｓ  Ｖａｌｉｄａｔｉｏｎを用いて決定するのが好ましい。
【００３６】
このＭＤＳ処理部７８での処理により、２５６種類のクラスそれぞれに対応する、ターゲット空間上での位置座標が得られる。本実施形態では、ターゲット空間の次元数を２としているので、この位置座標は２つの数値で表される。このクラスごとの、２つの数値からなる位置座標こそが、各クラス間の相互関係に基づいて定めておいた、各クラスに対応する２次元ベクトル値の変換値である。このＭＤＳの処理は、比較的、計算コストが高いが予めオフラインで処理しておけば良い。そして、実際の画像変換時には、予め求めておいた値を参照すれば良いので、画像変換時の計算コストは低く抑えることができる。
【００３７】
最後に、クラス対応数値出力部７９において、ＭＤＳ処理部７８で求めた各クラスに対応する２次元の座標値を外部に出力する（ステップ８９）。ここで出力した各クラスに対応する２次元座標値が、クラス対応変換値データベース１５に保持され、画像変換の際に、変換値割り当て部１４から参照され、各クラスに対応する変換値として用いられる。
【００３８】
以上のように、クラス別パターンデータベース７６にはクラス別パターンサンプル群が予め用意されており、複数のクラス間の相互関係に基づき定められた変換値は、複数のクラス間の距離、または、類似度を、できるだけ保存するように定められる。ここで、変換値としては、スカラー値或いはベクトル値が用いられ得る。
【００３９】
このように、本実施形態では、各クラスの生成元となるパターン群間の距離（各クラス間の相互関係）に基づいて、各クラスに対応する変換値を決定し、それを変換に用いる。これにより、例えば、変換後の値が類似していれば、パターンが類似している等、変換元のパターンの違いを、ある程度低次元の値で好ましく表現可能な画像変換が可能となる。
【００４０】
次に、上記画像変換方法を用いて、縦横２０×２０画素の、人物の顔を切り出したグレースケール画像を変換し、その変換後の画像を用いて、それが何れの人物の顔画像であるかを識別する、パターン識別方法の例を示す。
図５に、第１実施形態における、パターン識別方法の処理ブロック図を示す。また、図６は、第１実施形態における、パターン識別方法の処理フローを示した図である。
まず、画像入力部５０において、縦横２０×２０画素の、人物の顔を切り出したグレースケール画像（以下、簡単に、入力画像とする）を入力する（ステップ６０）。
【００４１】
次に、画像変換部５１で、入力画像を、本実施形態における画像変換方法により変換する。この変換により、先にも述べたように、１８×１８画素のそれぞれについて、２個の数値からなる２次元ベクトル値の変換値が得られることになる。即ち、１８×１８画素のそれぞれの画素値が、変換値に置換された変換画像が取得される（ステップ６１）。前述のように、この画像変換部５１では、先に述べたＭＤＳの処理のように、計算コストの高い処理を行う必要が無いため、比較的、低い計算コストで処理することが可能である。
【００４２】
続いて、次元削減処理部５２において、画像変換部５１で変換した結果の次元を削減する（ステップ６２）。画像変換部５１の変換結果は、１８×１８画素のそれぞれについて、２個の数値を変換値として持っている。そこで、これを１８×１８×２＝６４８次元のベクトルとみなす。このように次元が高いベクトルをそのまま用いて、パターン識別処理を行うと、良い性能を実現できないことが多いので、この次元を削減することが望ましい。本実施形態では、主成分分析（ＰＣＡ）を用いた次元削減を行う。
【００４３】
ＰＣＡを用いた次元削減では、予め、様々な人物の顔を切り出した、多数のグレースケール画像を、画像変換部５１で変換して用意し、これに対してＰＣＡを行った結果を利用して、次元削減を行う。ＰＣＡを行うことにより、複数の固有値と、固有ベクトルが得られるので、固有値を大きい順に所定個数分選択し、各固有値に対応する固有ベクトルに、先の６４８次元のベクトルを射影して次元削減したベクトルとする。
【００４４】
本実施形態では、所定個数を２０個とする。次元削減処理部５２では、先の６４８次元のベクトルを、これら２０個の固有ベクトルに対して射影して、その射影値を要素とするベクトルに変換するので、６４８次元から２０次元に削減される。このような固有ベクトルは、予め求めて記録しておくことができるので、実際の処理では、記録した固有ベクトルを参照することにより、次元削減を実現すればよい。本実施形態では、ＰＣＡを用いた次元削減を行うが、例えば、独立成分分析や、カーネル非線形主成分分析等を用いて次元削減しても構わない。また、何次元まで次元圧縮するかも、２０次元に限るものではなく、Ｃｒｏｓｓ  Ｖａｌｉｄａｔｉｏｎを用いて決めても構わない。
【００４５】
次の最近傍探索部５３では、登録データベース５４に保持された登録者のデータの内、次元削減されたデータに最も近いデータとの距離を求める。登録データベース５４に保持された登録者のデータは、予め、登録する人物１人につき、少なくとも１枚の、その人物の顔を切り出したグレースケール画像に対して、画像入力部５０から次元削減処理部５２までの処理を実行したデータである。登録データベース５４には、各登録人物に対応する少なくとも１つの２０次元のベクトルのそれぞれに対して、その人物のラベルが記録されている。
【００４６】
最近傍探索部５３での処理では、まず、登録データベース５４から、記録されている２０次元のベクトルを、１つずつ順番に選択する（ステップ６３０）。次いで、選択した２０次元のベクトルと、上記手法で入力画像を処理して求めた２０次元のベクトルとのユークリッド距離を算出する（ステップ６３１）。そして、求めたユークリッド距離が、今までに求めたユークリッド距離より小さいならば、求めたユークリッド距離と、その時選択した２０次元のベクトルに対応する、それがどの人物であるのかのラベルを更新する（ステップ６３２）。これらの処理を、登録データベース５４の全データについて行う。そのため、ステップ６３０において選択していない登録データがあるならば、ステップ６３０に戻り、全ての登録データを選択して処理を行ったならば次の処理に進む（ステップ６３４）。こうして、ユークリッド距離が最小となったときのラベル（人物）が得られる。
【００４７】
最後に、識別結果出力部５５において、最近傍探索部５３での処理結果に基づいて、入力画像がいずれの人物の画像であるのかを出力する（ステップ６４）。ここでは、最近傍探索部５３で得られた、最もユークリッド距離が小さかったデータに対応するラベルと、その距離に基づいて、最終的な判定を行い、その結果を識別結果として外部に出力する。具体的には、この最小であったユークリッド距離が、所定の閾値以内であった場合は、入力画像が、対応するラベルに該当する人物であるという識別結果を出力する。もし、この最小であった距離が、所定の閾値以上であった場合は、登録されている人物のいずれでもないという結果を出力する。ここでの所定の閾値は、未登録の人物の画像を登録されている人物だと誤って判定する割合と、逆に、登録されている人物の画像を未登録の人物だと誤って判定する割合が、所望のバランスになるように、実験的に決めてやればよい。
【００４８】
上記画像入力部５０から識別結果出力部５５までの処理により、本実施形態の画像変換方法を用いて、人物の顔を切り出したグレースケール画像を変換し、変換後の画像が何れの人物の顔画像であるかを識別可能になる。このようにすると、予め、明るさ等の変動にロバストな変換（ＬＢＰと同様に、明るさとコントラストの変動には不変）を行っておくことができる。そのため、本実施形態の画像変換方法で変換した画像について識別処理を行うようにすれば、入力画像に明るさ等の変動があった場合でも、その変動に対してロバストに、それが何れの人物の顔画像であるか識別可能になる。また、本実施形態の画像変換方法を用いることにより、変換元となる３×３画素のパターンが類似していれば、変換後の値が凡そ類似した値になる。そのため、入力画像のサイズが少々変動しているといった、明るさやコントラスト以外の変動に対しても、ロバストに認識可能になる。
【００４９】
本実施形態のパターン識別方法では、ＰＣＡによる次元削減と、いわゆる最近傍法によるパターン識別を行う例を示したが、ニューラルネットワークや、ＳＶＭを用いて、パターン識別を行うようにしても構わない。
【００５０】
以上、第１実施形態では、人物の顔を切り出したグレースケール画像を明るさ等の変動に対してロバストに変換する方法の例を説明した。また、その変換方法を用いて変換した後の画像が何れの人物の顔画像であるかを識別する、パターン識別方法の例を説明した。
【００５１】
以上のように、本実施形態の画像変換方法では、まず、選択された注目画素の位置に対して所定の相対位置にある画素値のパターンに基づき、このパターンを複数のクラスの１つに分類する。そして、これら複数のクラスそれぞれに対して、複数のクラス間の相互関係に基づき予め定めておいた値を参照し、分類されたクラスに対応する値を注目画素の変換値とすることで、入力した画像の変換を行う。これにより、変換後の値が、変換元のパターンの違いを、ある程度低次元の値で好ましく表現可能な画像変換が可能となる。
【００５２】
また、このような画像変換方法を用いたパターン識別方法では、変換後の値が、変換元のパターンの違いを、ある程度低次元の値で好ましく表現可能であるため、パターン識別性能が向上する可能性が高くなる。
【００５３】
（第２実施形態）
第２実施形態では、第１実施形態で用いた、各クラスに対応した変換値の求め方を変形した場合の例を示す。
上記複数のクラス間の相互関係として、各クラスに対して設定された代表パターンの間の距離または類似度を用いることができる。例えば、上述した大小比較結果に基づく８個の０または１の数値列を各クラスの代表パターンとし、それらの距離または類似度を用いることができる。以下では、大小比較の結果を示す数値列を用いた場合が説明される。
【００５４】
第１実施形態では、各クラスの生成元となる３×３画素のパターン群間の距離ができるだけ保存されるような数値を、各クラスに対応する変換値として用いた。これに対し、本実施形態では、各クラスの生成元となる画素値のパターンを用いた統計的な処理ではなく、２５６個のクラスのパターンに対しダイレクトに距離を定義する。そして、定義された距離が、できるだけ保存されるような数値を、各クラスに対応する変換値として用いる。本実施形態は、第１実施形態と、各クラス間の距離を求める部分が異なるのみであるので、第１実施形態と同様の部分は説明を省略する。
【００５５】
本実施形態の画像変換方法における処理部の構成は、第１実施形態（図１）に示したものと同様であり、処理のフローも第１実施形態（図４）に示したものと同様である。本実施形態では、変換値割り当て部１４において、クラス対応変換値データベース１５から読み出してくる、各クラスに対応した変換値のみが異なる。
【００５６】
本実施形態での、各クラスに対応する変換値の求め方について説明する。
まず、全２５６個の、各クラスに対応する８個の｛０、１｝からなるパターンを用い、各クラス間の距離を算出する。この各クラスに対応する８個の｛０、１｝のパターンは、第１実施形態で示したものと同様である。このパターンのような、ビット列間の距離として、ハミング距離を用いた場合、図３の（ａ）から（ｃ）までに示したような、３つのパターン間の距離が、全て同一の２となってしまう。先にも述べたように、図３の（ａ）のパターンから見ると、図３の（ｃ）のパターンとの関係は、図３の（ｂ）のパターンとの関係より離れているのが好ましいと考えられる。そこで本実施形態では、通常のハミング距離を、ビットの空間的な配置関係を反映できるように改造した改造ハミング距離を用い、８個の｛０、１｝からなるパターン間、即ち、クラス間の距離を算出する。
【００５７】
ここで、改造ハミング距離について説明する。通常のハミング距離では、対応する位置のビットが同一でなければ、距離を１増加させるのに対して、改造ハミング距離では、対応する位置のビットが同一でない場合、以下のような手順で距離を増加させる。
２つのパターンの一方から見たときに、相手のパターンの隣接する位置のビットが同一なら距離を０．１２５増加させる。ここで、１番左の数値と１番右の数値は連結されていると考える。隣接する位置にも同一のビットが無い場合は、相手のパターンの更にもうひとつ隣の位置のビットが同一ならば、距離を０．２５増加させる。もし、もう１つ隣の位置にも同一のビットが無ければ、距離を０．５増加させる。これを、２つのパターンそれぞれにおいて、８個のビット全てに対して行い、距離の総和を改造ハミング距離とする。
【００５８】
以下、図３の（ａ）に示したパターンに対応する、クラス２のパターン“００００００１０”と、図３の（ｂ）に示したパターンに対応するクラス１２８のパターン“１０００００００”とを例として説明する。まず、２つのパターンを比較すると、１番左のビットと、右から２番目のビットが異なるので、これらについて距離の算出を行う。これら２つ以外の位置のビットは同一であるので、それらに対応する距離は０となる。
【００５９】
最初に、１番左の位置のビットについて説明する。まず、クラス２のパターンからクラス１２８のパターンを見ると、１番左の位置に隣接する位置（左から２番目、１番右の位置）に、クラス２の１番左の位置のビットと同じ“０”が存在するため、距離を０．１２５増加させる。次に、クラス１２８のパターンからクラス２のパターンを見た場合、１番左の位置に隣接する位置（左から２番目、１番右の位置）には、クラス１２８の１番左の位置のビットと同じ“１”は存在しない。そこで、クラス２のもう１つ隣の位置（左から３番目、右から２番目の位置）を見ると、右から２番目の位置に、クラス１２８の１番左の位置のビットと同じ“１”が存在する。そのため距離を０．２５増加させ、ここまでの距離の総和は０．３７５となる。これで、１番左の位置のビットについての距離算出は終了である。次いで、右から２番目の位置についても同様に計算し、クラス２のパターンからクラス１２８のパターンを見た場合、２つ離れた位置に同一のビット“１”があるので、距離を０．２５増加させる。また、クラス１２８のパターンからクラス２のパターンを見た場合は、隣接した位置に同一のビット“０”があるので、距離は０．１２５増加させる。この結果、距離の総和は０．７５となり、これが改造ハミング距離となる。
【００６０】
本実施形態で用いる改造ハミング距離では、同じ位置のビットが異なるとしても、その付近のビットの状態を考慮して距離を求めるため、通常のハミング距離と比べ、ビットの位置の変動量を反映したような距離を求めることができる。この改造ハミング距離を用い、各クラスに対応する８個の｛０、１｝からなるパターンを用い、各クラス間の距離を算出する。本実施形態のクラス数も、第１実施形態と同様、２５６個であるので、２５６×２５５／２＝３２，６４０個分のクラス間距離を求めることになる。
【００６１】
続いて、各クラス間の改造ハミング距離を、非特許文献６に記載のＦｌｏｙｄ−Ｗａｒｓｈａｌｌ法を用いて修正する。
なお、上記の改造ハミング距離は、距離の公理の内、三角不等式を満たさない場合がある。三角不等式を満たさなくても、大きな問題は生じないが、本実施形態では、各クラス間の距離が三角不等式を満たすように、Ｆｌｏｙｄ−Ｗａｒｓｈａｌｌ法を用い、求めたクラス間距離を修正する。
【００６２】
まず、上記改造ハミング距離が、三角不等式を満たさないような具体的な例として、クラス１、クラス２、及びクラス６の改造ハミング距離の関係について示す。ここで、クラスｉとクラスｊ間の改造ハミング距離をｄｒｈ（ｉ、ｊ）と表記することにする。まず、クラス１に対応するパターンが“０００００００１”であり、クラス６に対応するパターンが“０００００１１０”である。したがって、クラス１とクラス６の改造ハミング距離ｄｒｈ（１、６）は、前述の改造ハミング距離計算方法に基づくと、ｄｒｈ（１、６）＝０．８７５となる。同様に、クラス１とクラス２の改造ハミング距離ｄｒｈ（１、２）は０．５で、クラス２とクラス６の改造ハミング距離ｄｒｈ（２、６）は０．２５である。このため、この３つのクラスの距離関係を見ると、ｄｒｈ（１、６）＝０．８７５＞ｄｒｈ（１、２）＋ｄｒｈ（２、６）＝０．５＋０．２５＝０．７５となり、三角不等式ｄｒｈ（１、６）≦ｄｒｈ（１、２）＋ｄｒｈ（２、６）を満たさないことがわかる。
【００６３】
そこで、上記のような状況の場合に、ｄｒｈ（１、６）＝ｄｒｈ（１、２）＋ｄｒｈ（２、６）＝０．７５というように距離を更新する。つまり、クラス１からクラス６までの距離を、クラス１からクラス２を経由してクラス６へ至るという距離に更新する。このような処理は、クラスｉとクラスｊの改造ハミング距離ｄｒｈ（ｉ、ｊ）を、ｉ行ｊ列の要素とする改造ハミング距離行列Ｄｒｈに対して、Ｆｌｏｙｄ−Ｗａｒｓｈａｌｌ法を適用することにより実現できる。改造ハミング距離行列Ｄｒｈの各要素には、クラス間改造ハミング距離として求めたものを用いれば良い。同クラス間の距離ｄｒｈ（ｋ、ｋ）は求めていないが、改造ハミング距離の定義からも、当然ｄｒｈ（ｋ、ｋ）＝０である。また、ｄｒｈ（ｉ、ｊ）＝ｄｒｈ（ｊ、ｉ）であり、クラス数は全部で２５６個であるので、改造ハミング距離行列Ｄｒｈは、対角要素が全て０で、その他の要素は全て正の実数である、２５６次の対称行列である。上記改造ハミング距離行列Ｄｒｈに対してＦｌｏｙｄ−Ｗａｒｓｈａｌｌ法を適用し、修正改造ハミング距離行列Ｄ’ｒｈを求める処理を行う。
【００６４】
次に、修正改造ハミング距離行列Ｄ’ｒｈを用い、この距離関係をできるだけ保存するように、所定次元のターゲット空間に、各クラスに対応する点をマッピングする。この処理は、第１実施形態におけるＭＤＳ処理部７８での処理と同様であり、第１実施形態でクラスター距離を用いた部分に、上記修正改造ハミング距離を用いる点で異なるのみであるので、詳細は省略する。
【００６５】
これにより、２５６種類のクラスそれぞれに対応する、ターゲット空間上での位置座標が得られる。この位置座標が、第１実施形態と同様に、各クラス間の相互関係に基づいて定めておいた、各クラスに対応する２次元ベクトル値の変換値である。
最後に、求めた各クラスに対応する２次元の座標値を外部に出力する。ここで出力した各クラスに対応する２次元座標値が、第１実施形態同様、クラス対応変換値データベース１５に保持され、画像変換の際に、各クラスに対応する変換値として用いられる。
【００６６】
このように、本実施形態では、各クラスを代表するパターンとして近傍パターンを用い、近傍パターン間の距離を定義し、その距離関係に基づいて、各クラスに対応する変換値を決定する。これにより、変換後の値が類似していれば、変換元のパターンが分類されたクラスが類似していることになり、変換元のパターンの違いを、ある程度低次元の値で好ましく表現可能な画像変換が可能となる。また、本実施形態では、改造ハミング距離を用いて、クラス間の距離を定義したが、例えば単純にハミング距離を使う等、その他の方法を用いて、クラス間の距離を定義しても良い。
【００６７】
以上、第２実施形態として、第１実施形態で用いた、各クラスに対応した変換値の求め方を変形した例を説明した。なお、本実施形態の画像変換方法も、変換後の画像に対して、第１実施形態と同様にパターン識別へ適用可能である。
【００６８】
（第３実施形態）
第３実施形態では、第１実施形態における各処理部での処理の内容を変形した場合の例を示す。また、第１実施形態と同様に、変換後の画像が何れの人物の顔画像であるかを識別する、パターン識別方法の例も合わせて示す。
本実施形態の処理部の構成は、図１に示した、第１実施形態の構成と同様であり、処理のフローも、図４に示したものと同様である。ただし、各処理部における処理の内容が、多少異なる。そこで、この図１及び図４を用い、処理の内容が、第１実施形態と異なる部分を説明し、それ以外の部分は説明を省略する。
【００６９】
まず、画像入力部１０では、第１実施形態と同様に、２０×２０画素の人物の顔を切り出したグレースケール画像を入力する（ステップ４０）。
次いで、注目画素選択部１１において、入力画像から注目画素を選択する（ステップ４１）。ここでも、入力画像の左上から順次注目画素を選択していけば良い。ただし、第１実施形態では、注目画素の８近傍の画素値を用いるため、入力画像の上下左右の端、１画素分を除いた場所から注目画素を選択した。これに対し、本実施形態では、注目画素から上下左右に３画素離れた画素値を用いるため、入力画素の上下左右の端、３画素分を除いた場所から、順次、注目画素を選択していく。本実施形態では、入力画像が２０×２０画素であるので、１４×１４画素分を選択する。
【００７０】
続いて、近傍パターン抽出部１２では、図１１の（ａ）に示したように、選択した注目画素１１０を基準として４領域１１１〜１１４（図中、斜線領域で表示）の画素値の平均値を抽出する。本実施形態では、このように、注目画素から少し離れた位置にある複数の画素値の平均値を抽出する（ステップ４２）。
【００７１】
次に、クラス分類処理部１３において、近傍パターン抽出部１２で抽出した４領域それぞれの平均値と、注目画素の画素値との比較により、まず、４個の｛０、１、２｝からなる数値列を求める。具体的には、まず、それぞれの領域に対して、以下に示した３つの条件のいずれに該当するかを決定する。
条件１．領域の平均値＞注目画素の画素値×（１＋所定割合）
条件２．領域の平均値＜注目画素の画素値×（１−所定割合）
条件３．上記、条件１、２以外
【００７２】
ここで、条件１ならば、その領域に対応する数値を２とし、条件２ならば０、条件３ならば１とする。ここで、上記所定割合は、０以上１未満の任意の値で構わない。本実施形態では、この所定割合を０．１としているが、より好適には、後述のＣｒｏｓｓ  Ｖａｌｉｄａｔｉｏｎを用いて決定するのが望ましい。このような数値を、図１１の（ａ）の領域１１１〜１１４でそれぞれ求め、順に並べたものが、求める数値列である。
【００７３】
上記数値列を求める具体的な例を、図１１の（ｂ）に示したパターンを用いて説明する。図１１の（ｂ）は、選択された注目画素１２０を中心とする７×７画素のパターンであり、（ｃ）は、（ｂ）に示したパターンの各画素値を示したものである。
まず、図１１の（ａ）の領域１１１に対応する領域は、図１１の（ｂ）の領域１２１である。図１１の（ｃ）を参照すると、この領域内の２つの画素値は、２５３と２２５であるので、この領域の平均値は、（２５３＋２２５）／２＝２３９である。ここで、所定割合を０．１とすると、注目画素の画素値×（１＋所定割合）＝１６４×（１＋０．１）＝１８０．４であるので、この領域については、条件１という判定になり、対応する数値“２”となる。同様に、領域１１２に対応する領域１２２は、条件２という判定になる。したがって、領域１２２に対応する数値は“０”となり、領域１２３と領域１２４に対応する数値は、それぞれ“２”と“１”である。このため、図１１の（ｂ）に示したパターンに対応する数値列は、“２０２１”となる。
【００７４】
ここで得られる数値列は、ＬＢＰやＣＴと同様に、パターンの明るさ等の変動に、ある程度ロバストである。ただし、ＬＢＰやＣＴでは、明るさ、つまりバイアスの変動と、コントラスト、つまり、パターンに対する正の定数倍に関して不変であるが、本実施形態では上記の如く所定割合を用いた判定があるためバイアスの変動に対して完全に不変というわけではない。しかし、バイアスの変動に対しても、ある程度のロバスト性は有しており、比較結果を３値で表現できるため、パターンの表現力が高まるというメリットがある。
【００７５】
第１実施形態では、８個の｛０、１｝からなる数値列のパターンそれぞれを１つのクラスと定義したが、本実施形態では、４個の｛０、１、２｝からなる全部で３４＝８１種類の数値列のパターンそれぞれを１つのクラスと定義する。そして、それらのクラスに、抽出したパターンを分類する。ここで、４個の｛０、１、２｝からなる数値列を、３進数の数値とみなして１０進数に変換し、それをクラスの番号として表記する。例えば“１２０１”ならば１×３３＋２×３２＋０×３１＋１×３０＝４６なので、クラス４６と表記する。つまり、クラス分類処理部１３では、抽出した４領域の平均値と注目画素の画素値を基準にして、それらが、いずれかのクラスに分類される（ステップ４３）。クラス分類方法は上記に限られるものではなく、例えば、非特許文献７の、Ｉｍｐｒｏｖｅｄ  ＬＢＰのような基準でクラス分類することも可能である。また、非特許文献８のＭｕｌｔｉ−Ｓｃａｌｅ  ＬＢＰや、非特許文献９のＵｎｉｆｏｒｍ−ＬＢＰのような方法も、適用可能である。
【００７６】
次の、変換値割り当て部１４は、第１実施形態と同様に、クラス対応変換値データベース１５から分類されたクラスに対応する値を読み出して、その値を選択した注目画素に対応する変換値とする（ステップ４４）。クラス対応変換値データベース１５には、クラスごとに、３つの数値からなる３次元のベクトル値が記録されている。この３次元ベクトル値の定め方については、後に詳細に説明する。
【００７７】
変換値割り当て部１４において求めた、３次元ベクトル値である変換値を、選択した注目画素に対応する変換値として、変換画像保持部１６に記録する（ステップ４５）。
上記処理により、３次元ベクトル値が、選択した注目画素に対応する変換値として記録される。このような変換値を１４×１４画素分求めるため、未選択の画素があるならば、注目画素選択部１１での処理に戻り、１４×１４画素の全てを選択して処理を行ったならば次の処理に進む（ステップ４６）。
【００７８】
最後に、変換画像出力部１７で、変換画像保持部１６に記録されている結果を外部に出力し（ステップ４７）、画像変換処理が終了となる。上記処理により、２０×２０画素の入力画像の、上下左右の端３画素分を除いた１４×１４画素それぞれについて、３次元ベクトル値である変換値が得られる。つまり、３次元のベクトル値を１４×１４画素分並べた画像を外部に出力する。
【００７９】
次に、各クラスに対応する変換値の求め方について説明する。第１実施形態では、クラス別パターンサンプル群内の３×３画素の画素値パターンを用いたが、第３実施形態では、５×５画素の画素値パターンとそれに付随する情報を用いてクラスター分析を行う。図１３に、本実施形態において各クラスに対応する変換値を求める方法の処理ブロック図を示す。また、図１４は、この変換値を求める方法の処理フローを示した図である。これらの図からもわかるように、本実施形態における、各クラスに対応する変換値の求め方も、基本的には、第１実施形態と同様である。以下、、各処理ブロックでの処理について説明するが、第１実施形態と同様の部分については説明を省略する。
【００８０】
まず、画像入力部１３０において、第１実施形態と同様に、顔画像データベース１３５から１枚の画像を選択して入力する（入力ステップ１４０）。
次の、注目画素選択部１３１からクラス分類処理部１３３は、第1実施形態における注目画素選択部１１からクラス分類処理部１３までと同等である。つまり、入力した顔画像から注目画素を選択して、注目画素周辺の４領域の平均値を抽出し、このパターンを分類する（ステップ１４１〜１４３）。
【００８１】
続いて、クラス別パターン記録部１３４において、クラス分類結果に基づいて、注目画素を中心とする５×５画素のパターンと一緒に、入力した画像の番号と、注目画素の位置座標も、クラス別パターン群データベース１３６に記録する（ステップ１４４）。第１実施形態では、クラス分類のために用いた３×３画素のパターンのみをデータベースに記録するようにした。これに対し、本実施形態では、クラス分類処理部１３３で用いた４領域の平均値ではなく、注目画素を中心とした５×５画素のパターンを記録する。
【００８２】
具体的な例として、注目画素を中心としたパターンが、図１１の（ｂ）に示したパターンであった場合、クラス６１に分類されるので、クラス６１パターン群１３６−６１にパターンを記録する。このとき、注目画素１２０を中心とする５×５画素の領域の画素値を、左上からラスタスキャン的に並べた２５個の数値を記録する。
【００８３】
また、このような画素値のパターンだけでなく、付随情報として、そのパターンが、どの画像のどの位置（空間配置情報）から抽出したパターンであるかも記録しておく。例えば、入力画像の画像番号及び注目画素の位置座標の情報を、付随情報と記載する。ここで記録した５×５画素の画素値のパターンと、その付随情報は、後のクラス間のクラスター距離を求める際に用いる。
【００８４】
ステップ１４１〜１４４の処理を、１枚の画像に対し、注目画素とすべき１４×１４画素全てにおいて実行する。そのため、未選択画素があるならば、注目画素選択部１３１での処理に戻り、１４×１４画素の全てを選択して処理を行ったならば次の処理に進む（ステップ１４５）。
【００８５】
上記処理により、１枚の画像につき、１４×１４個分の５×５画素のパターンと、それぞれの付随情報とが、クラス別パターン群データベース１３６に記録される。このような処理を、顔画像データベース１３５に保持された全ての画像に対して実行する。そのため、未入力画像があるならば、画像入力部１３０での処理に戻り、全ての画像を入力して処理を行ったならば、クラスター分析処理部１３７での処理に進む（ステップ１４６）。
【００８６】
本実施形態でも２０００枚の顔画像を用いるので、各画像から１４×１４個分のパターンを抽出すると、クラス別パターン群データベース１３６には総計２０００×１４×１４＝３９２，０００個の５×５画素のパターン及びその付随情報が記録される。このとき、第１実施形態と同様に、あるクラスに１つもパターンが記録されなかった場合は、画像を追加して、全てのクラスに少なくとも１つのパターンが記録されるまで処理を続ける。
【００８７】
続いて、クラスター分析処理部１３７において、第１実施形態と同様に、クラス別パターン群データベース１３６に記録した多数のパターンを用いて、群平均法により各クラス間のクラスター距離を求める。ただし、各パターン間の距離を求める際に、第１実施形態のように、単純にユークリッド距離を求めるのではなく、各パターンの付随情報を利用した距離算出を行う。ここでは、２つのパターンが同一の画像から抽出したパターンである場合には、パターンを抽出した位置座標間の距離に応じて、パターン間のユークリッド距離を、所定割合だけ縮小する。同一の画像から抽出されたパターンでない場合は、ユークリッド距離をそのパターン間の距離とする。具体的には、本実施形態では、
・ｎ番目の画像の、位置（ｓ、ｔ）から抽出した５×５画素のパターンｘ（ｎ、（ｓ、ｔ））と、
・ｍ番目の画像の、位置（ｕ、ｖ）から抽出した５×５画素のパターンｙ（ｍ、（ｕ、ｖ））と、
の距離ｄ’（ｘ（ｎ、（ｓ、ｔ））、ｙ（ｍ、（ｕ、ｖ）））を、以下の式１を用いて求める。
【数１】
2011008631.tif 000003
【００８８】
ここでｄ（ｘ、ｙ）は、それぞれのパターン間のユークリッド距離である。また、δｎｍはクロネッカーのデルタで、ｎ＝ｍの時のみ１で、それ以外では０であり、σは正の定数である。つまり、パターンの付随情報として記録した画像番号が異なる（ｎ≠ｍ）場合、パターン間の距離は通常のユークリッド距離となる。そして、画像番号が同一（ｎ＝ｍ）の場合、パターン間のユークリッド距離に、１−ｅｘｐ｛−（パターンを抽出した位置間の距離）２／２σ２｝を乗じたものを、パターン間の距離とする。１−ｅｘｐ｛−（パターンを抽出した位置間の距離）２／２σ２｝は、必ず１未満であるので、距離は通常のユークリッド距離より減少し、パターンを抽出した位置間の距離が小さいほど距離の減少率が大きくなる。つまり、比較するパターン間の相対的な空間配置関係に基づいて、パターン間の距離を減少させるようにする。この距離の減少率は、σの値により決まり、本実施形態ではσ＝１．５としている。この場合、例えばパターン間の距離が１画素分ならば、通常のユークリッド距離に約０．１９９を乗じることになり、約８０％距離が減少する。また、パターン間の距離が５画素分程度になると、倍率が０．９９６程度になるので、距離はほとんど減少せず、通常のユークリッド距離とほぼ同等になる。
【００８９】
上記のように、本実施形態では、パターン間の距離が小さい程、距離を減少させる。これにより、例えば、あるクラスｉに属するパターンの空間的に隣接した位置には、クラスｊに属するパターンが存在することが多い場合、クラスｉとクラスｊのクラス間距離は相対的に小さくなる。このクラス間の距離は、第１実施形態と同様、各クラスに対応する変換値の間の距離と関係するので、結果として、クラスｉとクラスｊそれぞれに対応する変換値の差は、相対的に小さくなる。つまり、クラスｉとクラスｊに対応する変換値が類似したものになる。このため、本実施形態のパターン識別では、位置の変動に対して変換値の変動を小さく抑えることができ、位置変動のロバスト性を高めることができる。このロバスト性は、上記のσの値によりコントロール可能である。より高いロバスト性を実現するには、σの値を大きくしてやれば良い。ただし、σの値をあまり大きくしすぎると、同一画像内から抽出したパターンは、全て距離を短くすることになってしまうので、用いる画像の解像度等に応じて実験的に決めてやれば良い。やはり好適には、Ｃｒｏｓｓ  Ｖａｌｉｄａｔｉｏｎを用いて決定するのが好ましい。
【００９０】
本実施形態では、以上のように、パターンを抽出した位置を考慮した距離を求める。しかし、これに限らず、その他の付随情報を用いて距離を算出しても構わない。例えば、パターン識別において回転に対するロバスト性を高めたい場合は、抽出した各パターンを少し回転させたものを用意しておき、回転させたパターン間の距離を、それらの回転角の違いに基づいて修正するものも考えられる。また、人物の顔画像からパターンを抽出した場合、人物が同一で同等の位置付近（例えば左目の目尻付近等）から抽出したパターン間であれば、距離を減少させるようにしても良い。このようにすると、同一人物の同等の位置における、異なる画像間での変動に対してロバスト性を高めることができる。また同時に、同一の人物でなければ、同等の位置付近から抽出したパターン間の距離を増加させても構わない。この場合、異なる人物間の同等の位置における変換値の違いを大きくすることができ、パターン識別性能を高めることが可能になる。このように、パターン間の距離の算出に付随情報を用いることで、所望の特性を持った画像変換が可能になる。また、上記実施形態では、付随情報として、画像を特定する情報と画像における空間配置位置を示す情報を含むが、画像を特定する情報のみを用いることも可能である。
【００９１】
本実施形態のクラスター分析処理部１３７では、クラス間のクラスター距離を算出する際に、上記説明した、パターンを抽出した位置を考慮した距離を求める以外は、第１実施形態におけるクラスター分析処理部７７と同様の処理を行う。つまり、例えば、クラスｉとクラスｊ（ｉ≠ｊ）のクラスター距離であれば、クラスｉのパターンとクラスｊのパターンとの全ての組み合わせで、上記方法で距離を求める。そして、求めた距離の平均を求め、これをクラスｉとクラスｊ間のクラスター距離とする。
【００９２】
クラスター分析処理部１３７では、このようなクラスター距離を、全てのクラスの組み合わせに対して求める（ステップ１４７）。本実施形態のクラス数は、第１実施形態とは異なり、０から８０までの８１個であるので、８１×８０／２＝３，２４０個分のクラスター距離を求めることになる。この処理も予めオフラインで計算しておくことができる。また、本実施形態でも、クラスター距離を求めるために群平均法を用いるが、例えば、最短距離法や、最長距離法、重心法、メディアン法、可変法、ウォード法等、その他のクラスター距離尺度を用いても構わない。
【００９３】
次に、Ｉｓｏｍａｐ処理部１３８において、第１実施形態と同様に、各クラス間のクラスター距離を用い、所定次元のターゲット空間に、各クラスに対応する点をマッピングする（ステップ１４８）。マッピングする処理として、第１実施形態ではＭＤＳを用いたのに対し、本実施形態では、非特許文献１０のＩｓｏｍａｐを用いる。
【００９４】
このＩｓｏｍａｐを用いると、クラスター距離を保存しながらターゲット空間に各クラスに対応する点がマッピングされる。すなわち、各クラスに対応する点は、ターゲット空間での各点間のユークリッド距離がクラス間のクラスター距離に基づくクラス間の測地線距離をできるだけ保存するような点となる。クラス間の測地線距離とは、各クラス間の近傍／非近傍（クラス間のクラスター距離に基づいて決める）を考慮した距離である。この場合、近傍であるクラス間の測地線距離は、クラス間のクラスター距離をそのまま用いる。近傍でないクラス間の測地線距離は、近傍であるクラス間を経由した各経由におけるクラスター距離の総和の最小値である。
【００９５】
このような測地線距離の求め方について説明する。まず、ｉ行ｊ列の要素が、クラスｉとクラスｊが近傍である場合はクラスｉとクラスｊ間のクラスター距離の値、近傍でない場合は無限大（とみなせる程度に大きな値）とした行列を用意する。そして、その行列に対して非特許文献６のＦｌｏｙｄ−Ｗａｒｓｈａｌｌ法を適用する。これにより、クラスｉとクラスｊ間の測地線距離が、Ｆｌｏｙｄ−Ｗａｒｓｈａｌｌ法を適用した後の行列の、ｉ行ｊ列目の要素（＝ｊ行ｉ列目の要素）として得られる。
【００９６】
近傍／非近傍を判定する基準に関しては、ｋ近傍基準やε球基準を用いるのが一般的である。ｋ近傍基準では、あるクラスからのクラスター距離が、小さい方からｋ個までのクラスを近傍と判定する。また、ε球基準では、あるクラスからのクラスター距離が、ある定数ε以内であるクラスを近傍と判定する。本実施形態では、ｋ近傍基準を用い、ｋの値を７としている。ｋ近傍基準を用いるかε球基準を用いるか、ｋやεの値等は、適用する画像に応じて実験的に決めれば良い。ただし、ｋやεの値が小さすぎる場合、近傍でないクラス間において、近傍であるクラス間を経由したとしても、お互いに到達することができず、測地線距離が求められない場合がある。このような場合は、ｋやεの値を少し大きくして、近傍／非近傍の判定をやり直し、再度、測地線距離を求めれば良い。最も好適には、Ｃｒｏｓｓ  Ｖａｌｉｄａｔｉｏｎを用いるのが好ましい。
【００９７】
Ｉｓｏｍａｐの処理では、上記のように、まず、クラス間の近傍／非近傍の判定を行い、それに基づいて上記行列を用意し、その行列にＦｌｏｙｄ−Ｗａｒｓｈａｌｌ法を適用して得られる行列を用いてＭＤＳを実行すれば良い。Ｉｓｏｍａｐを用いた場合でも、第１実施形態のＭＤＳと同様に、ターゲット空間の次元は、最大でもクラス数−１、つまり、本実施形態では８０次元である。なお、各クラス間のクラスター距離の状況によっては、８０次元以下になる場合もある。ここでも、第１実施形態と同様に、この次元を高くする方が、より高い精度で、クラス間のクラスター距離を保存できる。しかし、ターゲット空間の次元をあまり高くすると、変換後の値の次元が高くなってしまい、後のパターン識別処理において、いわゆる“次元の呪い”が発生する可能性が高くなる。そのため、このターゲット空間は、ある程度低い次元が好ましく、本実施形態では３としている。勿論、この次元数は３に限るものではなく、Ｃｒｏｓｓ  Ｖａｌｉｄａｔｉｏｎを用いて決定するのが好ましい。
【００９８】
このＩｓｏｍａｐ処理により、クラス０からクラス８０までのそれぞれに対応する、ターゲット空間上での位置座標が得られる。本実施形態では、ターゲット空間の次元数を３としているので、この位置座標は３つの数値で表される。このクラスごとの、３つの数値からなる位置座標が、各クラスに対応する３次元ベクトル値の変換値である。本実施形態では、このように、Ｉｓｏｍａｐを用いて各クラスに対応する点をマッピングする。この結果、クラス間の非線形な変動（例えば平行移動や、パターンに対する視点や、パターン自体の３次元的な向きの変動によるクラスの変動等）を、トポロジカルにマッピングできる傾向が強くなる。したがって、マップ上での位置の違いが、このような非線形な変動を、より良く表現できる可能性が高くなる。このため、このマップ上の位置座標を各クラスに対応した変換値として利用すると、後のパターン識別において、非線形なパターンの変動にロバストな識別を実現できる可能性が高くなる。このように、各クラスに対応する点をマッピングする処理において、第１実施形態で説明したＭＤＳに限らず、Ｉｓｏｍａｐのような手法を用いても構わない。
【００９９】
最後に、クラス対応数値出力部１３９において、Ｉｓｏｍａｐ処理部１３８で求めた、各クラスに対応する３次元の座標値を、外部に出力する（ステップ１４９）。ここで出力した各クラスに対応する３次元座標値が、クラス対応変換値データベース１５に保持され、画像変換の際に各クラスに対応する変換値として用いられる。
【０１００】
このように、本実施形態では、各クラスに対応するパターンと、そのパターンの付随情報を用いて、クラス間の距離（各クラス間の相互関係）を求め、それに基づいて、各クラスに対応する変換値を決定し、それを変換の際に用いる。これにより、第１実施形態と同様に、変換後の値が類似していれば、パターンが類似している等、変換元のパターンの違いを、ある程度低次元の値で好ましく表現可能となる。
【０１０１】
次に、上記画像変換方法を用いて、人物の顔を切り出したグレースケール画像を変換し、変換後の画像が何れの人物の顔画像であるかを識別する、パターン識別方法の例を示す。
本実施形態のパターン識別方法における処理部の構成も、図５に示した、第１実施形態と同様であり、処理のフローも、図６に示したものと同様である。そこで、本実施形態のパターン識別方法の説明においては、この図５、及び図６を用い、各処理部における処理の内容が、第１実施形態と異なる部分のみ説明する。
【０１０２】
まず、画像入力部５０において、縦横２０×２０画素の、人物の顔を切り出したグレースケール画像（以下、簡単に、入力画像とする）を入力する（ステップ６０）。
次に、画像変換部５１で入力画像を変換する。本実施形態では、注目画素は１４×１４画素分であり、各注目画素に対応する変換値は３次元ベクトル値であるため、３次元ベクトル値を１４×１４画素分並べた変換画像が得られる（ステップ６１）。
【０１０３】
続いて、次元削減処理部５２において、画像変換部５１で変換した結果を、１４×１４×３＝５８８次元のベクトルとみなし、この次元を削減する。画像変換部５１で変換した結果は、１４×１４画素のそれぞれについて、３個の数値を変換値として持っている。そこで、第１実施形態と同様に、それぞれの画素に対応する３個の数値を、単純に並べたものは、１４×１４×３個の数値列となり、これを１４×１４×３＝５８８次元のベクトルとみなす。このように次元が高いベクトルをそのまま用いると、パターン識別性能が劣化することが多い。そこで、次元削減処理部５２で、第１実施形態と同様に、ＰＣＡを用いた次元削減を行う。
【０１０４】
ＰＣＡを用いた次元削減では、第１実施形態と同様に、予め、様々な人物の顔を切り出した、多数のグレースケール画像を変換して用意し、これに対してＰＣＡを行った結果を利用して、次元削減を行う。具体的には、例えば数千程度の画像を変換して用意しておき、これらに対してＰＣＡを行うと、複数の固有値と固有ベクトルが得られるので、固有値の大きいものから順に所定個選択し、各固有値に対応する固有ベクトルを記録しておく。そして、これらの固有ベクトルに先の５８８次元のベクトルを射影することにより、次元削減したベクトルとする。本実施形態では、固有値の大きいものから２０個を選択し、それぞれに対応する２０個の固有ベクトルを記録しておく。次元削減処理部５２では、５８８次元から２０次元に削減されたベクトルが得られる。このような固有ベクトルは、予め求めて記録しておくことができるので、実際の処理では、記録した固有ベクトルを参照することにより、次元を削減すればよい（ステップ６２）。本実施形態の次元削減では、ＰＣＡを用いたが、これに限るものではなく、例えば、独立成分分析や、カーネル非線形主成分分析等を用いても構わない。また、何次元まで次元圧縮するかも、Ｃｒｏｓｓ  Ｖａｌｉｄａｔｉｏｎを用いて決めても構わない。
【０１０５】
次元削減処理部５２での処理が終了した後、最近傍探索部５３での処理に進む。ここでも、第１実施形態と同様、登録データベース５４に保持された登録者のデータの内、次元削減されたデータに最も近いデータを探索する（ステップ６３０〜６３４）。
最後に、識別結果出力部５５において、探索結果に基づいて、入力画像がいずれの人物の画像であるのかを出力する（ステップ６４）。ここでも、第１実施形態と同様に、最近傍探索部５３での処理により得られた、登録データベース５４の内、最もユークリッド距離が小さかったデータに対応するラベルと、その最小の距離と所定の閾値とに基づいて、最終的な判定を行う。そして、その結果を識別結果として外部に出力する。
【０１０６】
上記処理により、本実施形態の画像変換方法を用いて人物の顔を切り出したグレースケール画像を変換し、その変換後の画像が何れの人物の顔画像であるかを識別可能になる。本実施形態では、コントラストに関しては不変で、明るさに関しては、ある程度のロバスト性を有する変換となっている。このように、予め、明るさ等の変動にロバストな変換を行っておくことで、入力画像に明るさ等の変動があった場合でも、その変動に対してロバストに、それが何れの人物の顔画像であるか識別可能になる。また、パターンが少々変動した場合でも、変換後の値が凡そ類似した値になる。そのため、例えば、入力画像の位置など、明るさやコントラスト以外の変動があっても、ロバストに認識することが可能になる。
【０１０７】
本実施形態のパターン識別方法では、変換した画像に対して、第１実施形態と同様に、ＰＣＡによる次元削減と、いわゆる最近傍法によるパターン識別を行う例を示した。しかし、これに限るものではなく、例えば、変換後の画像に対して、ニューラルネットワークや、ＳＶＭを用いて、パターン識別処理を行うようにしても構わない。
【０１０８】
以上、第３実施形態は、人物の顔を切り出したグレースケール画像を明るさ等の変動に対してロバストに変換する方法の例と、その変換後の画像が何れの人物の顔画像であるかを、明るさ等の変動に対してロバストに識別する、パターン識別方法の例とを説明した。
【０１０９】
（第４実施形態）
第４実施形態では、第１から第３実施形態とは異なる方法で、画像変換を行う場合の例を示す。また、第１から第３実施形態と同様に、人物の顔を切り出したグレースケール画像を変換し、その変換後の画像が何れの人物の顔画像であるかを識別する、パターン識別方法の例も合わせて示す。
【０１１０】
図１５に、第４実施形態における画像変換方法の処理ブロック図を示す。また、図１６は、本実施形態における画像変換方法の処理フローを示した図である。図１５の構成からもわかるように、本実施形態の画像変換方法も、第１実施形態と基本的な処理の流れは同様である。ただし、第１実施形態の変換値割り当て部１４に対応する、インデックス決定部１５４での処理の内容が異なる。また、第１実施形態のクラス対応変換値データベース１５に対応する、クラス対応インデックスデータベース１５５に記録されている、クラスに対応した変換値（本実施形態ではインデックス）が異なる。以下では、第１実施形態と同様の部分は説明を省略する。
【０１１１】
画像入力部１５０からクラス分類処理部１５３までにおける処理（ステップ１６０〜１６３）は、第１実施形態と同様なので説明を省略する。ここまでの処理により、入力画像から選択された１つの注目画素を中心とする３×３画素のパターンが、ＬＢＰやＣＴと同様な基準で、クラス０からクラス２５５のいずれかに分類されている。
【０１１２】
次に、インデックス決定部１５４において、クラス対応インデックスデータベース１５５を参照し、分類されたクラスに対応するインデックスを決定し、選択した注目画素に対応するヒストグラムのビンのインデックスとする。ヒストグラムの次元は自己組織化マップと同じ次元となるため、本実施形態では、このヒストグラムに、縦横５×５＝２５個のビンを持つ２次元ヒストグラムを用いる。ビンのインデックスは、ヒストグラム上で、縦横の位置を表す１から５までの２つの整数値からなる。このクラス対応インデックスデータベース１５５に記録されているインデックスは、各クラス間の相互関係に基づいて定めた各クラスに対応するインデックスである。なお、詳細は後述するが、本実施形態では、各クラスとインデックスとは、１対１対応とは限らない。このインデックスの定め方は、後に詳細に説明する。
【０１１３】
第１実施形態では、変換値割り当て部１４において、分類された各クラスに対応する実数値の変換値を、クラス対応変換値データベース１５から読み出した。本実施形態では、実数値の変換値ではなく、整数値のインデックスであるが、処理上では大差はない。第１実施形態との処理上の大きな違いは、次の部分である。第１実施形態では、各クラスに対応する値が１種類しかなかったため、分類されたクラスに対応する数値を読み出せば良かった。これに対し、本実施形態では、各クラスに対応する値が、複数種類の場合があるため、まず、分類されたクラスに対応する値が１種類か複数種類かにより処理が分岐する（ステップ１６４）。分類されたクラスに対応する値が１種類である場合は、第１実施形態と同様に、対応する値（２つの整数値からなるインデックス）を、クラス対応インデックスデータベース１５５から読み出す（ステップ１６５）。一方、分類されたクラスに対応する値が複数種類である場合は、まず、それぞれの値に対応するテンプレートと、近傍パターン抽出部１５２で抽出した３×３画素のパターンとの比較を行う。ここで、テンプレートは、クラス対応インデックスデータベース１５５に予め記録しておく、３×３画素＝９次元のベクトルであり、詳細は後に述べる。ここでの比較では、単純に、抽出した３×３画素のパターンと、９次元のベクトルであるテンプレートとの内積を求める。そして、最も類似度が高かった（内積値が最も大きかった）テンプレートに対応する１種類の値（２つの整数値からなるインデックス）を、クラス対応インデックスデータベース１５５から選択して読み出す（ステップ１６６）。このテンプレートの求め方は後述する。このように、本実施形態では、分類されたクラスに１対１対応で値が決まるとは限らず、テンプレートとの比較によって、値を決める場合があるという部分が異なる。
【０１１４】
インデックス決定部１５４は、上記手順により求めた２つの整数値からなるインデックスを、選択した注目画素に対応するインデックスとして変換画像保持部１５６に記録して保持する（ステップ１６７）。
このようなインデックスを、第１実施形態と同様に、１８×１８画素分、全てにおいて求めるため、未選択画素があるならば、注目画素選択処理に戻り、全画素を選択して処理を行ったならば次の処理に進む（ステップ１６８）。
【０１１５】
１８×１８画素の全てについて上記処理を終了した段階で、変換画像出力部１５７で、変換画像保持部１５６に記録されている結果を外部に出力し（ステップ１６９）、本実施形態における画像変換処理が終了となる。上記処理により、２０×２０画素の入力画像の、上下左右の端１画素分を除いた１８×１８画素それぞれについて、２つの整数値からなるインデックスが得られる。つまり、２つの整数値からなるインデックスを１８×１８画素分並べた画像が得られ、この画像を外部に出力する。
【０１１６】
次に、本実施形態における、各クラスに対応するインデックスの求め方について説明する。図１７に、本実施形態における、各クラスに対応するインデックスを求める方法の処理ブロック図を示す。また、図１８は、このインデックスを求める方法の処理フローである。本実施形態における、各クラスに対応するインデックスの求め方も、基本的な流れは第１及び第３実施形態と同様である。ただし、第１及び第３実施形態では、クラス間の距離を定義し、そのクラス間の距離をできるだけ保存するマップを生成して、各クラスに対応する変換値を求めた。これに対し、本実施形態では、予め明示的にクラス間の距離を求めず、非特許文献１１の自己組織化マップ（ＳＯＭ）の技術を用い、ダイレクトにマップを生成し、そのマップに基づいて各クラスに対応するインデックスを求める。
【０１１７】
また、第１及び第３実施形態では、各パターン間の距離をユークリッド距離を基準にして求めた。本実施形態でも、後述のＳＯＭ生成処理部１７７において、各パターン間の距離（実際は類似度）を求める必要があるが、本実施形態では、明るさとコントラストの変動に不変な距離尺度（類似度）を用いる。この距離尺度の詳細は後に述べる。
【０１１８】
以下、図１７、図１８を用いて、各クラスに対応するインデックスを求める方法について説明するが、ここでも、第１や第３実施形態と同様の部分については説明を省略する。
まず、画像入力部１７０において、画像データベース１７５に保持されている多数のグレースケール画像の中から、１枚の画像を選択して入力する（ステップ１８０）。第１及び第３実施形態においては、この画像入力の際に、サイズや回転、明るさ・コントラストの正規化を行った、縦横２０×２０画素の、様々な人物について顔を切り出したグレースケール画像を入力した。これに対し、本実施形態では、人物の顔画像に限らず、明るさ等の正規化も行っていない任意のグレースケール画像を入力する。画像のサイズも任意ではあるが、本実施形態では、６４０×４８０画素の画像を入力画像として用いる。このように、任意のグレースケール画像を用いることで、後の近傍パターン抽出部１７２において、顔画像に存在するようなパターンに限定されず、多種多様なパターンを抽出することができる。このように、多種多様なパターンを利用して得られる、各クラスに対応するインデックスは、多様なパターンを表現するのに好適となる。したがって、顔画像以外を用いる場合（例えば、画像から車両の検出を行う等の場合）でも、そのまま本手法を流用できる。なお、第１及び第３実施形態のように、顔画像からパターンを抽出しても顔画像以外にも流用可能ではあるが、顔画像に多く存在するパターンに特化されてしまう傾向がある。また、第１及び第３実施形態では、明るさ等の正規化を行わないと、パターン間のユークリッド距離算出の際に問題が発生するため、予め正規化を行うようにした。これに対し、本実施形態では、明るさやコントラストの変動に不変な距離尺度を用いる（詳細は後述）ので、特に明るさ等の正規化を行っておく必要は無い。
【０１１９】
次の、注目画素選択部１７１からクラス分類処理部１７３の処理は、第1実施形態における注目画素選択部１５１からクラス分類処理部１５３の処理と同様である。ただし、入力画像のサイズが６４０×４８０画素である点で異なる。つまり、入力画像から上下左右の端１画素を除いた、計６３８×４７８＝３０４，９６４画素分の注目画素を順次選択する。そして、選択した注目画素を中心とした３×３画素のパターンが、クラス０からクラス２５５のいずれであるかを分類する（ステップ１８１〜ステップ１８３）。
【０１２０】
続いて、クラス別直交基底パターン記録部１７４において、まず、選択した注目画素を中心とする３×３画素のパターンから、明るさの変動方向に直交する、３×３画素の直交基底パターンを算出する。この直交基底パターンは、明るさ等の変動に不変な類似度を求めるために利用するもので、求め方については後に述べる。そして、算出した３×３画素の直交基底パターンを、クラス分類結果に基づき、クラス別直交基底パターン群データベース１７６に記録する（ステップ１８４）。ここでは、抽出した３×３画素のパターンをそのままデータベースに記録するのではなく、３×３画素のパターンから３×３画素の直交基底パターンを求め、それを記録するという部分のみが、第１実施形態とは異なる。
【０１２１】
ここで、パターン間の類似度算出方法について説明する。本実施形態では、３×３画素のパターンの各画素値を並べた９次元のベクトルをｘと表記する。このパターンｘに対して、明るさやコントラストを任意に変動させたパターンは、任意の正の実数ａと、任意の実数ｂを用いて、ａｘ＋ｂ１と表すことができる（ａｘがコントラストの変動で、ｂ１が明るさの変動に対応）。ここで１は、全ての要素が１である９次元ベクトルである。またａ＞０であるのは、パターンの濃淡反転等は、コントラストの変動として考えないためである。ここで、ａｘ＋ｂ１のａ（＞０）やｂを任意に変化させた場合を考えると、このａｘ＋ｂ１は、９次元空間内の２次元部分空間となる。つまり、この９次元空間内の２次元部分空間を用いることで、明るさやコントラストの変動を含むパターンの表現が可能になる。そこで、パターン間の類似度を求める際に、このような２次元部分空間同士の類似度を求めることで、明るさやコントラストの変動に対して不変に類似度を求めることが可能になる。部分空間同士の類似度としては、非特許文献１２の相互部分空間法のように、部分空間の正準角、つまり、２つの部分空間のなす角を用いる。２次元部分空間同士の場合、正準角は２つある（第１と第２正準角）が、ここでは第２正準角の方を、パターン間の類似度として用いる。これは、類似度を求める対象の２つのパターンにより決まる、それぞれの上記部分空間は、２つのパターンがどのようなパターンであっても、明るさの変動、即ち、１の方向への変動は同一であるため、第１正準角は必ず０になるからである。
【０１２２】
非特許文献１２の相互部分空間法では、各部分空間への２つの正射影作用素をＰ、Ｑとした時、ＰＱＰ若しくはＱＰＱの固有値問題として正準角を求める（得られる固有値が正準角の余弦の２乗となる）。しかし、本実施形態では、第１正準角が自明で残りの正準角が１つしかないため、以下のような単純な方法で第２正準角（の余弦）を求める。
【０１２３】
まず、パターンの明るさとコントラストの変動を表現している、上記２次元の部分空間の２つの正規直交基底を求める。求める際に、非特許文献１３のＧｒａｍ−Ｓｃｈｍｉｄｔの直交化手法を用いる。このとき、１つめの基底ｕ１を、任意のパターンにおいて共通である、明るさの変動方向、つまり、ベクトル１の方向の正規基底とする。つまり、この１つめの基底ｕ１を、１／｜１｜（全ての要素が１／３の９次元ベクトル）とする。
【０１２４】
この場合、Ｇｒａｍ−Ｓｃｈｍｉｄｔの直交化手法を用いると、パターンｘに対する２つめの正規直交基底ｕ２は、次のように求められる。
【数２】
2011008631.tif 000004
【０１２５】
この２つめの正規直交基底ｕ２こそが、３×３画素のパターンｘから求められる、明るさの変動方向に直交する、３×３画素（＝９次元）の直交基底パターンである。そして、この正規直交基底ｕ２がクラス別直交基底パターン群データベース１７６に記録される。この時、２つのパターン間の、第２正準角の余弦は、各パターンにおける、上記直交基底パターンｕ２の内積を求めることにより得られる。非特許文献１２の相互部分空間法での正準角の算出方法においては、比較する部分空間が半空間でない（部分空間ａｘ＋ｂ１において、ａ≦０も含む）ため、正準角は必ず９０°以下になる。このため、例えば２つのパターンｘとｙが、ｙ＝−ｘであるような場合（実際には、輝度値は正であるため、２つのパターンがこの式を満たすことはありえないが）、この２つのパターン間の第２正準角も０になってしまう。これに対し、本実施形態における第２正準角の算出方法を用いると、このｙ＝−ｘというような２つのパターンに対する第２正準角は、１８０°（余弦が−１）となる。つまり、輝度値が反転したパターンであれば、第２正準角の余弦が小さくなり、パターンのこのような違いをうまく反映できる。また、パターンｘに対応する直交基底パターンｕ２と、ａｘ＋ｂ１（パターンが対応する部分空間上の任意の点を示すベクトルとみなせる）の内積は、必ずａの符号と一致する。つまりａ＞０の時、この内積は０以上となる。このことから、この直交基底パターンｕ２は、部分空間ａｘ＋ｂ１の、ａ＞０である半空間上に乗るベクトルであるといえる。このため、本実施形態のように、この直交基底パターンｕ２を利用して求める第２正準角は、ａ＞０である半空間の第２正準角となり、変動を表現する部分空間が、半空間であるという条件も満たすことができる。
【０１２６】
２つの３×３画素パターンに対する、それぞれの直交基底パターン間の第２正準角の余弦は、２つのベクトルの内積として求められる。本実施形態においては、この第２正準角の余弦を、２つのパターン間の類似度とする（完全に一致の場合に１）。上記直交基底パターンは、例えば、パターンの各画素値を２倍にし（コントラスト変動）、そこから３０を引く（明るさ変動）といった変動を与えても、同一の直交基底パターンとなる。このため、パターン間の類似度として求める第２正準角は、上記のような変動をした場合でも一致し、コントラストや明るさの変動に対して不変である。このように、本実施形態では、明るさ等の変動に対して不変なパターン間の類似度算出を行う。このため、クラス別直交基底パターン記録部１７４では、この類似度算出において必要となる直交基底パターンを、クラス別直交基底パターン群データベース１７６に９個の数値列として記録する。
【０１２７】
３×３画素のパターンｘから直交基底パターンを求める際には、基本的には式２を用いて求めれば良いが、ｘ＝ｂ１（ｂは任意の実数）という特別の場合、式２の分母が０になってしまい、値を求めることができない。本実施形態では、ｘ＝ｂ１というようなパターンは、後の処理で、実質的にほとんど意味が無い（計算に利用されない・利用する意味が無い）ため、無視してしまっても構わない。一応、本実施形態では、ｘ＝ｂ１の場合は、直交基底パターンは、全ての要素が０である９次元のベクトルにしてしまう。このとき、この直交基底パターンと、その他のパターンから求めた直交基底パターンとの内積値、つまり、２つの部分空間の、第２正準角の余弦は必ず０になる。基本的には、直交基底パターンの要素が全て０であっても、この内積値を、部分空間同士の類似度としてしまって良い。ただし、本実施形態では、もし２つのパターンが共にｘ＝ｂ１である場合、つまり、２つの直交基底パターンが、両方とも、全ての要素が０である場合のみは、特別な措置として、この類似度を１としてしまうようにする。
【０１２８】
続いて、各クラスに対応するインデックスの求め方についての説明に戻る。ステップ１８１から１８４までの処理を、入力した１枚の画像に対し、注目画素として選択すべき計６３８×４７８＝３０４，９６４画素分実行する。そのため、未選択画素があるならば、ステップ１８１での処理に戻り、３０４，９６４画素の全てを選択して処理を行ったならば次の処理に進む（ステップ１８５）。
【０１２９】
上記処理により、１枚の画像につき、３０４，９６４個分の直交基底パターンが、クラス別直交基底パターン群データベース１７６の分類されたクラスに対応する直交基底パターン群に記録される。このような処理を画像データベース１７５の全画像に実行するため、未入力画像があるならば、画像入力部１７０での処理に戻り、全画像を入力して処理を行ったならば、ＳＯＭ生成処理部１７７での処理に進む（ステップ１８６）。
【０１３０】
ここまでの処理により、クラス別直交基底パターン群データベース１７６に、多数の直交基底パターンが、各自のパターンに対応するクラス別に記録される。本実施形態では、１００枚の画像を入力画像として用いる。この場合、各画像から３０４，９６４個分の直交基底パターンを抽出するので、クラス別直交基底パターン群データベース１７６には、総計１００×３０４，９６４＝３０，４９６，４００個の直交基底パターンが記録される。このとき、もしあるクラスに対応する直交基底パターン群に１つも直交基底パターンが記録されなかった場合は、第１や第３実施形態と同様、少なくとも１つの直交基底パターンが記録されるようなるまで処理を続けるようにする。
【０１３１】
続いて、ＳＯＭ生成処理部１７７において、ここまでにクラス別直交基底パターン群データベース１７６に記録した多数の直交基底パターンを元に、非特許文献１１のＳＯＭの技術を用い、所定次元のマップを生成する。この所定次元のマップは、複数のニューロンを、所定次元空間に格子状に並べたマップであり、各ニューロンは、重みベクトルと言われるベクトル値を持っている。このマップの次元や、マップ上のニューロン数は任意であるが、本実施形態では、縦横１００×１００個のニューロンを格子状に並べた、２次元のマップを生成する。このＳＯＭ生成処理部１７７において生成する所定次元のマップを、以下では単純にＳＯＭと記載する。また、ここで生成するＳＯＭの、上からｉ番目、左からｊ番目のニューロンを、（ｉ，ｊ）の位置のニューロンと記載する。
【０１３２】
ＳＯＭ生成処理部１７７における処理のフローを、図１９に示す。
【０１３３】
まず、ステップ１９０で、ＳＯＭの各ニューロンの重みベクトルをランダムに初期化し、更新回数ｔを０にする。本実施形態では、縦横１００×１００個のニューロンで構成される２次元のＳＯＭを用いるので、１００×１００＝１０，０００個のニューロンそれぞれの重みベクトルをランダムに初期化する。本実施形態のＳＯＭは、後に述べるが、上記直交基底パターンを入力とするので、各ニューロンの重みベクトルは、直交基底パターンと同じ９次元のベクトル値である。そのため、各ニューロンに対して、９個の数値をランダムに設定すれば良いが、９個全ての要素が０になってしまうと、次のステップ１９１において問題が発生するので、全ての要素が０にならないように初期化する。
【０１３４】
続いて、ステップ１９１で、上記式２を用いて、現状の重みベクトルから、直交基底パターンを求める。つまり、式２において、式中のｘを現状の重みベクトルに置き換え、その時の直交基底パターンｕ２を求める。そして、求めた直交基底パターンを、現状の重みベクトルと置き換える。以降、このような、重みベクトルから直交基底パターンを算出して、その重みベクトルを直交基底パターンに置き換える処理を、直交基底化と記載する。
【０１３５】
次に、ステップ１９２で、それぞれのニューロンの重みベクトルが、いずれのクラスであるかを分類する。この分類は、ステップ１９１で直交基底化した各ニューロンの重みベクトルの値に基づき、ステップ１８３での処理と同等の基準で行われる。このクラス分類方法を、具体的に、あるニューロンの重みベクトルが、（ｗ１、ｗ２、ｗ３、ｗ４、ｗ５、ｗ６、ｗ７、ｗ８、ｗ９）Ｔであった場合について説明する。まず、このベクトルを、３×３画素のパターンであるとみなし、中心位置に対応する値ｗ５を注目画素の値とみなし、このｗ５の値と、ｗ１からｗ４、及び、ｗ６からｗ９までの８個の値との大小比較を行う。この比較結果が、ｗ５より大きければ１、そうでなければ０という数値を並べた８個の数値を２進数と考えて、１０進数に変換した値が、この重みベクトルが分類されるクラス番号となる。ここで分類されたクラス番号は、各ニューロンの重みベクトルと共に、各ニューロンに記録しておき、以降、このクラス番号を、各ニューロンのクラスと記載する。
【０１３６】
ここまでが、ＳＯＭの初期化を行う処理であり、以降、実際に入力データである、クラス別直交基底パターン群１７６に記録しておいた、直交基底パターンを用いて、ＳＯＭの更新を行っていくことにより、ＳＯＭを生成する。
【０１３７】
まず、ステップ１９３において、更新回数ｔが上限Ｔに達しているならば、ＳＯＭの更新を終了し、ステップ１９９に進み、達していなければ、ステップ１９４に進み、ＳＯＭの更新を続行する。上限Ｔは、ある程度大きい値にすればよく、本実施形態では、クラス別直交基底パターン群１７６に記録されている直交基底パターン数の２倍程度、３０，４９６，４００×２≒６０，０００，０００をＴの値としている。ＳＯＭの初期化が終了した直後の段階では、ｔ＝０であるので、ステップ１９４に進む。
【０１３８】
ステップ１９４では、クラス別直交基底パターン１７６からランダムに１つの直交基底パターンを選択して入力する。ここで、もし選択した直交基底パターンが、全ての要素が０であるパターンであった場合、以降の重みベクトル更新処理が、実質的に意味の無い処理になってしまうので、再度、ランダムに直交基底パターンを選択するようにする。
【０１３９】
続いて、ステップ１９５で、１００×１００個のニューロンの中から、入力した直交基底パターンと最も合致するニューロン（これを、勝者ニューロンと呼ぶ）を検出する。一般的なＳＯＭでは、全てのニューロンに対して、入力したベクトルと重みベクトルの内積値、若しくはユークリッド距離を求め、最も内積値が大きい、若しくは、ユークリッド距離が小さいニューロンを勝者ニューロンとして検出する。これに対し、本実施形態では、内積値を修正して勝者ニューロンの検出を行う。すなわち、入力した直交基底パターンの属するクラスと、分類した各ニューロンのクラスに基づいて、この内積値を修正した値（合致度）を用いて、勝者ニューロンの検出を行う。
【０１４０】
この合致度は、入力した直交基底パターンをｕ２、属するクラス番号をｃｉｎ、重みベクトルをｗ、属するクラスをｃｗとした時、（ｕ２Ｔｗ＋１）｛１＋α・δ（ｃｉｎ，ｃｗ）｝というように求める。ここで、δ（ｃｉｎ，ｃｗ）はクロネッカーのデルタで、ｃｉｎ＝ｃｗの時のみ１で、それ以外では０である。またαは所定の正の定数で、直交基底パターンとニューロンのクラスが同一の場合に、どの程度、合致度を大きくするかを決めるパラメータである。具体的なαの値は、０から１までの間で適当に決めればよく、本実施形態ではα＝０．５としている。なお、α＝０の場合、属するクラスを考慮せず、単純に内積値を用いる場合と同等になり、α＝１の場合は、特別な場合を除いて、クラスが同一であるものの合致度が、クラスが不一致であるものの合致度より高くなる。この属するクラスを考慮した合致度の算出は、必須の要素ではないが、このようにすると、同クラスのニューロンが、勝者ニューロンとなる場合が多くなるので、生成するＳＯＭで、同クラスのものがクラスターを形成する傾向が強くなる。
【０１４１】
ステップ１９５では、上記のような合致度を、入力した直交基底パターンと、１００×１００個の全てのニューロンとの間で求める。そして、最も合致度が高かったニューロンを、勝者ニューロンとして検出する。ここで勝者ニューロンを検出する基準として用いる合致度は、基本的には、直交基底パターンと、各ニューロンの重みベクトルとの内積を用いて求めている。各ニューロンの重みベクトルは、ステップ１９１で直交基底化しているので、ここで求めている内積値は、上記した、２つの部分空間同士の第２正準角の余弦とみなせる。つまり、勝者ニューロンは、その重みベクトルにより定義される部分空間と、入力した直交基底パターンにより定義される、元々のパターンに対応する部分空間との第２正準角を基準にして（実際には、クラスの相違による修正があるが）決定している。
【０１４２】
次に、ステップ１９６において、勝者ニューロンと、勝者ニューロンを中心とした近傍のニューロンそれぞれの重みベクトルを、入力した直交基底パターンに基づいて更新する。ＳＯＭにおける重みベクトルの更新は、様々な方法が提案されており、どのような方法を用いても構わない。本実施形態においては、検出した勝者ニューロンの位置が、（ｉｗｉｎ、ｊｗｉｎ）であったとした時、以下の式を用いて更新する。
【数３】
2011008631.tif 000005
【０１４３】
ここで、ｗｉ、ｊ（ｋ）は、更新回数ｔ＝ｋである時の、（ｉ、ｊ）の位置のニューロンの重みベクトルで、ここではそれぞれ、ｗｉ、ｊ（ｋ）が更新前、ｗｉ、ｊ（ｋ＋１）が更新後の、（ｉ、ｊ）の位置のニューロンの重みベクトルである。また、ｕ２は入力した直交基底パターンである。ここで、ηｋは重みベクトルの更新度合い、Λｋは更新する範囲を決めるものであり、次の式４、式５で表される。
【数４】
2011008631.tif 000006
【数５】
2011008631.tif 000007
【０１４４】
式４中のη０は、初期学習係数であり、１より小さい正の定数である。凡そ０．１から１程度の範囲で適当に決めてやれば良く、本実施形態では０．８としている。式４からもわかるように、ηｋは、更新回数ｔが大きくなると、徐々に減少していき、ｋ＝Ｔで０になる。つまり、更新回数ｔが小さい内は、重みベクトルの更新度合いが大きく、更新回数ｔの増加に伴い、更新度合いを小さくしていく。
【０１４５】
また、式５中のβは、重みベクトルを更新するニューロンの、更新回数が初期の時の、更新範囲を調整するパラメータであり、γは、更新回数が最終段階の時の、更新範囲を調整するパラメータである。この２つのパラメータは、いずれも正の定数であり、基本的にはβ＋γ＜１となるような範囲で設定する。具体的な値は、生成するＳＯＭの規模に応じて適当に定めれば良く、本実施形態ではβ＝０．０２、γ＝０．８としている。この式５からもわかるように、Λｋは、勝者ニューロンの位置を中心として、そこから離れるほど値が減少する（距離がある程度以上になると０になる）窓関数であり、この窓関数の（空間的な）大きさが、更新回数に従って、徐々に小さくなる。このような窓関数を用いることで、生成されるＳＯＭは、類似したものが近くに配置されるような、トポロジカルなマップになる。また、更新回数に応じて、窓関数のサイズを小さくしていくことで、徐々に更新の影響範囲が局所化されていく。このため、後半の段階の更新においては、より近い配置間のトポロジーを重視し、途中段階までに構築されたマップ全体のトポロジーを、大きく変化させない。
【０１４６】
ステップ１９６では、上記式３を用いて各ニューロンの重みベクトルの更新を行う。ここで、Λｋ｛（ｉ、ｊ）、（ｉｗｉｎ、ｊｗｉｎ）｝＝０となるような位置のニューロンは、更新部分の値（式３の２項目）が０になり、実質的に更新されない。したがって、このような位置のニューロンを除いた全ニューロンについて、重みベクトルを更新すれば良い。
【０１４７】
重みベクトルの更新が終了した後、ステップ１９７で、更新回数ｔの値を１増加させる。これに従って、上記説明したように、次回のステップ１９６での重みベクトル更新の際の、重みベクトルの更新度合いと、更新範囲を減少させる（ステップ１９８）。また、ｔの値を１増加させたことにより、ｔ＝Ｔとなった場合は、ＳＯＭの更新を終了させる。したがって、ステップ１９１及び１９２の処理の後、ステップ１９３よりステップ１９９に進む。
【０１４８】
ステップ１９８までの処理が終了した後、ステップ１９１及び１９２の処理に戻る。初期化の段階（ｔ＝０の段階）では、ここでの処理において、全てのニューロンの重みベクトルについて、直交基底化とクラス分類の処理を行ったのに対し、ここでは、重みベクトルの更新を行ったニューロンのみ、直交基底化とクラス分類の処理をやり直せば良い。
【０１４９】
上記処理をｔ＝Ｔになるまで繰り返し行う。すなわち、ｔ＝Ｔの段階でステップ１９１及び１９２の処理が終了した後、ステップ１９３からステップ１９９に進む。ステップ１９９においては、１００×１００個全てのニューロンの重みベクトルと、対応するクラスを、各ニューロンの位置と共に出力する。
以上で、ＳＯＭ生成処理部１７７での処理（ステップ１８７）が終了となり、クラス対応インデックス決定部１７８における処理に進む。
【０１５０】
続いて、クラス対応インデックス決定部１７８での処理についての説明を行う。
クラス対応インデックス決定部１７８では、生成したＳＯＭを元に、各クラスに対応するインデックスを決定する。先にも述べた通り、本実施形態では、１つのクラスに複数種類の値が対応する場合がある。そのような場合、このクラス対応インデックス決定部１７８では、複数種類の値それぞれに対応するテンプレート（インデックス決定部１５４で利用する３×３画素＝９次元ベクトル）を求める処理も行う。
【０１５１】
クラス対応インデックス決定部１７８における処理のフローを、図２０に示す。
まずステップ２００で、生成したＳＯＭを複数の領域に分割する。ここでの各領域は同じサイズの矩形領域であるが、領域のサイズを位置ごとに変えたり（例えば、ＳＯＭの中心部分はサイズを小さくする等）、矩形ではなく六角形等その他の形状を用いても構わない。本実施形態では、生成したＳＯＭを、縦横５×５＝２５個の正方形の領域に分割する。本実施形態のＳＯＭは１００×１００個のニューロンで構成されているので、２０×２０＝４００個のニューロン分の領域が、分割された１つの領域になる。ここで、分割した各領域の、上からｉ番目、左からｊ番目の領域を、（ｉ、ｊ）の領域と記載する。
続いて、ステップ２０１で、クラス０からクラス２５５までを順に１つずつ選択する。選択する順は問わないので、ここではクラス０から順に選択していけば良い。
【０１５２】
次に、ステップ２０２−１で、分割した領域内のニューロンの内、それぞれの重みベクトルが対応するクラスと、選択したクラスが一致するニューロン数を求める。この処理は、分割した各領域について行われる。ここで、それぞれの重みベクトルが対応するクラスは、ステップ１９２で分類されたクラスである。例えば、クラス０が選択されていたならば、各領域において、クラス０に分類されたニューロンをカウントすれば良い。以降、選択したクラスと一致する、各領域におけるニューロン数を、クラス一致数と記載する。
【０１５３】
ステップ２０３において、全ての領域（本実施形態では、５×５＝２５個の領域）で、クラス一致数が０であったような場合は、ステップ２０１０に進む。このような状況は、生成したＳＯＭの中のニューロン全てにおいて、選択したクラスに分類されたものが無い場合に発生する。もし、このような状況でない場合、すなわち、クラス一致数が０でない（全カウント≠０）場合、ステップ２０４−１に進む。ステップ２０１０の処理については後に説明することとし、まず、ステップ２０４−１に進む場合について説明する。
【０１５４】
ステップ２０４−１では、ステップ２０２−１で求めた、各領域のクラス一致数の内、最大の値である領域が１つであるか否かにより処理が分岐する。もし、クラス一致数が最大の値である領域が１つであるならば、ステップ２０５に進み、そうでなければ、ステップ２０６に進む。
クラス一致数が最大である領域が１つであった場合、選択したクラスは対応するインデックスが１種類であるとし、クラス一致数が最大であった領域の位置（ｉ、ｊ）をこのクラスに対応するインデックスとする（ステップ２０５）。これで、選択した１つのクラスに対応するインデックスが決まり、この１つのクラスに対する処理が終了となる。そして、全てのクラスを選択していないならば、クラス選択ステップ２０１に戻り、次のクラスを選択し、全てのクラスを選択して処理を行ったならば、クラス対応インデックス決定部１７８での処理が終了となる（ステップ２０１２）。
【０１５５】
一方、クラス一致数が最大である領域が１つでない場合、ステップ２０６に進み、選択したクラスに対応するニューロンに対し、４近傍ラベリングを行う。この４近傍ラベリングでは、上下左右の隣接位置に、同じクラスのニューロン（重みベクトルが分類されたクラスが同一のニューロン）が存在するか否かを判定し、存在する場合は、それらを１つのクラスターとして連結する。これに関しては、後に具体的な例を用いて説明する。
【０１５６】
ステップ２０６の処理が終了した後、ステップ２０７で、まず、各クラスターの連結個数をそれぞれカウントし、この連結個数が最大のクラスターを検出する。そして、この連結個数が最大であったクラスターのみ残して、その他のクラスターに属しているニューロンは削除する。ここで、削除とは、ステップ２０２−２において、再度、各領域のクラス一致数を求める際に、削除されたニューロンは、クラス一致数としてカウントしないという意味である。また、ここで、連結個数が最大のクラスターが複数あった場合は、これらの複数のクラスター全てを残すようにする。
【０１５７】
次に、ステップ２０２−２で、ステップ２０２−１での処理と同様に、各領域におけるクラス一致数を求める。ただ、ここでは、上記のように、ステップ２０７で削除されたニューロンは、クラス一致数としてカウントしないようにする。
続いて、ステップ２０４−２で、ステップ２０４−１と同様に、各領域のクラス一致数の内、最大の値であるものが１つであるか否かにより処理が分岐する。もし、ここでのクラス一致数が最大の値であるものが１つであるならば、ステップ２０５に進み、ここでもクラス一致数が最大の値のものが複数あるならば、ステップ２０８に進む。
【０１５８】
クラス一致数が最大の値である領域が１つであった場合、ステップ２０４−２での分岐で、ステップ２０５に進む。この場合、上記説明したステップ２０５の処理と同様の処理が行われる。つまり、ステップ２０１で選択したクラスは、対応するインデックスが１種類であるとし、クラス一致数が最大であった領域の位置（ｉ、ｊ）を、このクラスに対応するインデックスとする。これで、選択した１つのクラスに対応するインデックスが決まり、この１つのクラスに対する処理が終了となる。そして、上記の場合と同様に、ステップ２０１２において、全クラスを選択して処理を行ったか否かにより、ステップ２０１に戻るか、クラス対応インデックス決定部１７８での処理を終了するかに分岐する。
【０１５９】
ステップ２０２−２で求めたクラス一致数でも、最大の値である領域が複数であった場合、上述の通り、ステップ２０８の処理に進む。このときは、ステップ２０１で選択したクラスには対応するインデックスが複数種類あるとし、ステップ２０２−２で求めたクラス一致数が最大であった全ての領域に対応するインデックスをこのクラスに対応するインデックスとする。より具体的には、例えば、ステップ２０２−２で求めた、クラス一致数が最大であった領域が２つで、それぞれの領域の位置が（ｉ１、ｊ１）と（ｉ２、ｊ２）であったとする。この場合、ステップ２０８では、この２つのインデックス（ｉ１、ｊ１）と（ｉ２、ｊ２）の両方を、選択したクラスに対応するインデックスと決定する。
【０１６０】
ステップ２０８の処理が終了した後、ステップ２０９で、ステップ２０８で決定した複数種類のインデックスそれぞれに対応するテンプレートを求める。このテンプレートは、クラス一致数が最大であった領域ごとに、その領域内で、選択したクラスと、所属クラスが一致するニューロンの重みベクトルの平均ベクトルを求め、そのベクトルを直交基底化することにより求める。ここでの直交基底化も式２を用いて行うが、各重みベクトルは、既に直交基底化されているので、実際には単なる正規化（ベクトルの大きさを１にする）を行うだけである。本実施形態での重みベクトルが９次元であるので、このテンプレートも９次元のベクトルとなる。ステップ２０９では、このような９次元のベクトルであるテンプレートを、決定した複数種類のインデックスごとに求め、各インデックスに対応させて、求めたテンプレートを記録しておく。ここで記録したテンプレートは、実際には、対応するインデックスと共に、クラス対応インデックスデータベース１５５に記録しておき、実際の画像変換におけるインデックス決定部１５４での処理において用いる。
【０１６１】
ここで、１つのクラスに対して、複数種類のインデックスが対応している場合、先にも説明したように、まず、内積が計算される。すなわち、抽出された３×３画素のパターンと、このパターンが分類されたクラスに対応する、複数種類のインデックスそれぞれに対して記録されているテンプレートとの内積を求める。そして、最も内積値が大きかったテンプレートに対応するインデックスを、クラス対応インデックスデータベース１５５から選択して読み出す。本実施形態では、これらのテンプレートとの類似度算出方法として単純に内積を用いているが、先に述べた第２正準角（の余弦）による類似度算出方法に従えば、本来は、抽出された３×３画素のパターンも直交基底化する必要がある。しかし、ここで用いるテンプレートは、既に直交基底化されており、また、ここでは、それぞれのテンプレートに対応する第２正準角（の余弦）の大小関係のみ判定すれば良い。したがって、抽出された３×３画素のパターンを直交基底化する必要は無い（直交基底化の有無によって、大小関係の結果は変わらない）。
【０１６２】
ステップ２０９の処理終了後、今までと同様に、ステップ２０１２において、ステップ２０１に戻るか、クラス対応インデックス決定部１７８での処理を終了するかに分岐する。以上説明した処理により、ステップ２０２−１で求めたクラス一致数が全ての領域で０では無い場合について、選択したクラスに対応する１つまたは複数のインデックスと、対応するテンプレートが求められる。
最後に、クラス一致数が全ての領域において０であり、ステップ２０３において、ステップ２０１０に進んだ場合について説明する。
【０１６３】
まず、ステップ２０１０で、選択したクラスに対応する、先に、クラス別直交基底パターン群データベース１７６に記録した、多数の直交基底パターンを、１つずつ順にＳＯＭに入力する。入力する直交基底パターンの数は、ある程度、多ければ任意であるが、本実施形態では、選択したクラスに対応する全ての直交基底パターンを順次入力する。この際、ＳＯＭ生成処理部１７７での処理のように重みベクトルを更新せず、単純に、入力した直交基底パターンに対応する勝者ニューロンの検出のみを行う。具体的には、生成したＳＯＭ内の１００×１００個のニューロンのそれぞれの重みベクトルと、入力した直交基底パターンとの内積を求め、この内積値が最大のニューロンを勝者ニューロンとして検出する。前述のＳＯＭ生成処理部１７７における勝者ニューロンの検出では、分類されたクラスを考慮した合致度を用いたが、ここではクラスが一致することは無いので、単純に内積値を求めれば良い。このような、勝者ニューロンの検出を、ここで入力する多数の直交基底ベクトルについて行い、どのニューロンが何回勝者ニューロンとして検出されたかをカウントしておく。
【０１６４】
次に、ステップ２０１１で、ＳＯＭ領域分割２００で分割したそれぞれの領域ごとに、その領域内のニューロンにおける、勝者ニューロンとして検出された回数の総和を求める。この各領域に対する、勝者ニューロンとして検出された回数の総和を、以降では勝者カウントと記載する。そして、ここで求めた、各領域の勝者カウントをクラス一致数と同等のものとみなして、ステップ２０４−２に進む。その後、先に説明したステップ２０２−２以降と同様の処理を行う。つまり、ここで求めた各領域の勝者カウントの内、カウント数が最大の領域が１つのみであった場合は、ステップ２０５に進み、その領域に対応するインデックスを選択したクラスに対応するインデックスであると決定する。この場合は、選択したクラスには、１種類のインデックスのみが対応することになる。
【０１６５】
一方、カウント数が最大の領域が、複数であった場合は、ステップ２０８に進み、この複数の領域それぞれに対応するインデックスを、選択したクラスに対応するインデックスであると決定する。但し、カウント数が最大の領域が複数となる条件は、通常であれば、ほとんど発生しない。この場合は、選択したクラスには、複数種類のインデックスが対応するので、前述の場合と同様に、ステップ２０９で、複数種類のインデックスそれぞれに対応したテンプレートを求める。前述のステップ２０９では、その領域内のニューロンで、選択したクラスと一致するニューロンの重みベクトルの平均を、直交基底化したものをテンプレートとした。しかしここでは、選択したクラスと一致するニューロンは存在しないので、領域内全てのニューロンの重みベクトルの平均を求め、それを直交基底化したものをテンプレートとする。このテンプレートは、先と同様に、クラス対応インデックスデータベース１５５に記録しておき、インデックス決定部１５４での処理において用いる。
【０１６６】
以上の処理（ステップ２０５若しくはステップ２０９）終了後、ステップ２０１２に進む。そして、ステップ２０１２において、ステップ２０１に戻るか、クラス対応インデックス決定部１７８での処理を終了するかに分岐する。以上により、クラス一致数が全領域で０であった場合について、選択したクラスに対応する１つまたは複数のインデックスと、対応するテンプレートが求められる。
【０１６７】
以上のように、ＳＯＭを分割して得られた複数の領域の各々を、当該ＳＯＭと同じ次元数を有する、ヒストグラムのビンとし、それら複数の領域の各々における複数のクラスのマッピング状況に基づき、各クラスに対応するビンが決定される。上記処理により、全てのクラス（クラス０からクラス２５５まで）に対し、１種類若しくは複数種類のインデックスと、それらに対応するテンプレートを求めることになる。この処理により、クラス対応インデックス決定部１７８での処理（ステップ１８８）が終了となり、クラス対応インデックス等出力部１７９での処理に進む。
【０１６８】
上記クラス対応インデックス決定部１７８での処理の説明では、一部説明を省略した部分（ステップ２０６等）があった。また、処理が煩雑で理解しがたいと思われるので、このクラス対応インデックス決定部１７８での処理を、生成されたＳＯＭが、図２１に示したようなものであった場合を例として説明する。
【０１６９】
図２１に示した生成後のＳＯＭは、本来は、ニューロン数が１００×１００＝１０，０００で、クラス数も２５６個であるが、ここでは、説明を簡単にするため、ニューロン数を全部で９×９＝８１個とし、クラス数も０から９までの１０クラスとしている。また、本来は、生成後のＳＯＭを、５×５＝２５個の領域に分割するが、簡単のため、３×３＝９個の領域に分割した場合について説明する。この図において、円形で示したもの（例えば、２１１−１１や、２１１−９６等）が、ＳＯＭの各ニューロンであり、円内の数値は、そのニューロンが、分類されているクラスを示している。この図において、上からｉ番目、左からｊ番目のニューロンを、２１１−ｉｊ（一部のみ図示）と表すことにする。また、図中、二重線枠で示した領域（例えば、２１２−１１や、２１２−３３等）それぞれが、この例でのＳＯＭを分割した各領域である。これらの領域についても、上からｉ番目、左からｊ番目の領域を、２１２−ｉｊと表すことにする。この図２１に示したＳＯＭの例を用いて、クラス０からクラス９までに対応するインデックスの決定方法について説明する。
【０１７０】
ＳＯＭの領域分割（ステップ２００）は図２１に示した通りなので、次に、１つのクラスに順に着目していく（ステップ２０１）。クラス０に注目し、各領域それぞれにおけるクラス一致数を求める（ステップ２０２−１）と、以下のようになる。
・領域２１２−１１：０個
・領域２１２−２１：１個
・領域２１２−３１：０個
・領域２１２−１２：０個
・領域２１２−２２：５個・・・最大
・領域２１２−３２：１個
・領域２１２−１３：０個
・領域２１２−２３：３個
・領域２１２−３３：０個
【０１７１】
このため、クラス０については、最大のクラス一致数が５で、クラス一致数が最大である領域が１つのみであるので、それに対応するインデックス（２、２）が、クラス０に対応するインデックスとなる（ステップ２０４−１、２０５）。同様の処理により、クラス１は（１、３）、クラス５も（１、３）、クラス６は（１、１）、クラス８は（３、１）、クラス９は（３、２）が、それぞれ対応するインデックスになる。
【０１７２】
クラス２に関しては、領域２１２−１２と、領域２１２−２２におけるクラス一致数が、両方とも４で最大であるので、４近傍ラベリングの処理に進む（ステップ２０４−１）。４近傍ラベリングでは、先にも述べたように、上下左右に同じクラスのニューロンがあれば、それを連結していき、いくつかの連結されたまとまり（クラスター）を構築する（ステップ２０６）。クラス２の例であれば、２つのクラスターが構築される。まず１つは、領域２１２−１１内のクラス２である２つのニューロンと、領域２１２−１２内のクラス２である４つのニューロンの、計６つのニューロンを連結したクラスターである。もう１つは、領域２１２−２１内のクラス２である１つのニューロンと、領域２１２−２２内のクラス２である４つのニューロンの、計５つのニューロンを連結したものである。このように、４近傍ラベリングでは、上下左右にある同じクラスのニューロンを連結していき、クラスターを構築する。そして、構築したいくつかのクラスターの内、連結個数が最大のもののみ残して、それ以外のクラスターに属するニューロンは削除対象とする。前述の２つのクラスターであれば、前者のクラスターが、連結個数が６つで最大であるので、後者のクラスターに属する５つのニューロンは削除対象とする（ステップ２０７）。そして、削除対象とならずに残ったニューロンのみを用いて、もう一度、各領域におけるクラス一致数を求める（ステップ２０２−２）。クラス２の場合、領域２１２−２１及び領域２１２−２２内にあったクラス２のニューロンは削除対象となったので、クラス一致数としてカウントしないようにする。この場合、領域２１２−１１のクラス一致数が２、領域２１２−１２のクラス一致数が４で、それ以外では、クラス一致数は全て０となる。このため、この時のクラス一致数の最大は４で、最大なのは領域２１２−１２のみである。よって、クラス２に対応するインデックスは、領域２１２−１２に対応する（１、２）となる。この処理は、ステップ２０４−２でのＹＥＳ分岐、及びステップ２０５に対応する。
【０１７３】
クラス３についてクラス２と同様の処理を行うと、領域２１２−３２と２１２−３３に存在するクラス３のニューロン以外は削除対象となる（ステップ２０７）。ここで再度、クラス一致数をカウントすると、領域２１２−３２、２１２−３３とも、最大の４となる（ステップ２０２−２）。この場合、それぞれの領域に対応する（３、２）と（３、３）の２つが、クラス３に対応するインデックスとなる（ステップ２０４−２、ステップ２０８）。そして、それぞれの領域に存在する、４つのクラス３であるニューロンの重みベクトルの平均ベクトルを求め、それを直交基底化したものを、それぞれのインデックスに対応するテンプレートとして求める（ステップ２０９）。例えば、インデックス（３、２）に対応するテンプレートは、領域２１２−３２内に存在する４つのクラス３であるニューロンの重みベクトルの平均ベクトルを求め、それを直交基底化したものとして求める。
【０１７４】
クラス７の場合、クラス２やクラス３と同様の処理を行っても、４近傍ラベリングの処理で構築される２つのクラスターが、両方とも連結個数４つで最大である。このような場合、両方のクラスターを残すので、削除対象となるニューロンが無いことになる（ステップ２０７）。ここで再度、クラス一致数をカウントする（ステップ２０２−２）が、この結果は、先にクラス一致数をカウント（ステップ２０２−１）した時と変化が無い。つまり、領域２１２−２３と２１２−３３のクラス一致数が、両方とも最大の４であり、それ以外の領域では０となる。そのため、このクラス７には、これら２つの領域に対応する、（２、３）と（３、３）の２つのインデックスが対応することになる（ステップ２０４−２、ステップ２０８）。そして、ここでも、クラス３の時と同様に、それぞれの領域に存在する、クラス７であるニューロンの重みベクトルの平均ベクトルを求め、それを直交基底化したものを、それぞれのインデックスに対応するテンプレートとして求める（ステップ２０９）。
【０１７５】
最後に、クラス４の場合について説明する。クラス４は、図２１からもわかるように、クラス４であるニューロンが、ＳＯＭ上に１つも存在しない。そのため、全ての領域におけるクラス一致数が０となってしまう（ステップ２０２−１）。そこで、クラス４に対応する多数の直交基底パターンをＳＯＭに入力する処理に進む（ステップ２０３）。なお、クラス４に対応する多数の直交基底パターンは、クラス別直交基底パターン群データベース１７６内の、クラス４直交基底パターン群１７６−４（非図示）に記録されているパターンである。ここで、例えば、クラス４に対応する直交基底パターン１，０００個を、ＳＯＭに順次入力したとする。そして、入力したそれぞれの直交基底パターンに対応する勝者ニューロンを検出する処理を行う（ステップ２０１０）。このとき、それぞれの領域ごとに、その領域内のニューロンが勝者ニューロンとして検出された回数の総和を求める（ステップ２０１１）。この結果、各領域における、勝者ニューロンとして検出された回数の総和が、以下のようになったとする。
領域２１２−１１：５８回
領域２１２−２１：１３２回
領域２１２−３１：９８回
領域２１２−１２：２６３回・・・最大
領域２１２−２２：２６３回・・・最大
領域２１２−３２：７４回
領域２１２−１３：８２回
領域２１２−２３：３０回
領域２１２−３３：０回
【０１７６】
この場合、勝者ニューロンとして検出された回数の総和は、領域２１２−１２と、領域２１２−２２の２つの領域が、最大の２６３回である。したがって、クラス４には、それぞれの領域が対応する（１、２）と（２、２）が、対応するインデックスとなる（ステップ２０４−２、２０８）。そして、それぞれの領域ごとに、その領域内の全ニューロンの重みベクトルの平均を求め、それを直交基底化したものを、それぞれに対応するテンプレートとして求める（ステップ２０９）。ここでは、勝者ニューロンとして検出された回数の総和が、２つの領域において同じで、且つ、それが最大値であったため、上記のように、２つのインデックスを対応させる結果になった。しかし、例えば、領域２１２−１２における総和が２６４回で、領域２１２−２２における総和が２６２回であった場合、クラス４には（１、２）のインデックスのみが対応する。したがって、この場合、このインデックスに対応するテンプレートは求める必要が無い。
【０１７７】
以上の結果をまとめると、以下のようになる。
［クラス］：［対応するインデックス］
・クラス０：（２、２）
・クラス１：（１、３）
・クラス２：（１、２）
・クラス３：（３、２）、（３、３）
・クラス４：（１、２）、（２、２）
・クラス５：（１、３）
・クラス６：（１、１）
・クラス７：（２、３）、（３、３）
・クラス８：（３、１）
・クラス９：（３、２）
【０１７８】
この中で、クラス３、クラス４、クラス７は、対応するインデックスが複数なので、上記のように、それぞれのインデックスに対応するテンプレートを求め、対応するインデックスと共に記録しておく。この例では、１つのクラスに最大でも２種類のインデックスしか対応していないが、３種類以上のインデックスが対応しても構わない。その場合でも、それぞれのインデックスに対応するテンプレートを求めて、インデックスと共に記録しておく。上記の例では、領域２１２−２１に対応するインデックスである（２、１）に対応するクラスが存在しなかった。しかし、このような状況でも、特別な処置をする必要はなく、実際の画像変換時に、このインデックスに対応するビンには、要素が投票されないだけである。
【０１７９】
上記では、簡単のため小規模な例を示したが、本実施形態では、実際には１００×１００個のニューロンからなるＳＯＭを５×５個の領域に分割し、２５６個のクラスそれぞれに対応するインデックスを求める。ここでインデックスが複数種類に対応する場合は、それぞれに対応するテンプレートも求める。このインデックスを用いたヒストグラム（本実施形態では、５×５個のビンを持つ２次元ヒストグラム）を、実際の画像変換時に利用した場合、通常のＬＢＰコード基準のヒストグラムに対して、以下のような違いがある。
【０１８０】
まず１つめは、上記の例からもわかるように、類似したクラス（ＳＯＭ上で近い位置にマッピングされたクラス）に対応するインデックスを同じものにできることである（例えば、上記の例における、クラス１とクラス５等）。これにより、類似したクラスのパターンは、同じビンに対応するので、パターンの変動によりパターンの属するクラスが変動した場合でも、同じビンが対応する可能性が高くなり、変動に対するロバスト性が高まる可能性がある。
【０１８１】
また、上記と同様の点であるが、ヒストグラムのビンの個数を、任意の数、特に、クラス数よりも少なくできるという点も挙げられる。通常のＬＢＰコード基準のヒストグラムではビンの個数が２５６個になる。このようなヒストグラムを用いると、例えば、１０×１０画素分の領域のヒストグラムを求める場合等、ヒストグラムを生成するための要素数が少ない場合、ヒストグラムが非常に疎になってしまう。これに対し、本実施形態のヒストグラムは、ビンの個数が５×５＝２５個しかないので、比較的、密なヒストグラムを生成できる。ビンの個数が少なければ良いわけではないが、本実施形態では、ヒストグラムを生成するための要素数に合わせて、問題に適したヒストグラムの生成が可能になる。
【０１８２】
更に、通常のＬＢＰコード基準のヒストグラムでは、１つのコード（クラス）は、１つのビンにしか対応しないが、本実施形態のヒストグラムでは、１つのクラスが複数のビンに対応可能になる。この場合、多少、処理時間を要するが、１つのクラスに対応するＳＯＭ上での分布が比較的大きい（例えば、上記の例におけるクラス３）場合に、それを分割して表現可能となる。そのため、より表現力の高いヒストグラムを生成可能になる。
【０１８３】
もう１つの大きな違いは、このヒストグラムでは、隣接するビンが類似している点である。通常の、ＬＢＰコード基準のヒストグラムでは、例えば、ＬＢＰコードが隣接しているとしても、これらのビン間に、特に関連性は定義できないので、独立したものと扱う場合が多い。これに対し、本実施形態のヒストグラムでは、隣接したビンは類似したビンといえるので、何らかの関連性を持たせることが可能になる。関連性を持たせる例としては、生成したヒストグラムに、ヒストグラム空間上で平滑化フィルタをかけるものが挙げられる。このような平滑化フィルタをかけると、あるビンに投票する際に、隣接したビンにもある程度の重みをつけて投票するのと同等な効果が得られる。これにより、パターンの何らかの変動により、パターンの属するクラスが変動した場合でも、隣接するビンにも投票されるため、ロバスト性が高まる可能性がある。
【０１８４】
以上が、本実施形態における、クラス対応インデックス決定部１７８での処理（ステップ１８８）である。そして、クラス対応インデックス等出力部１７９で、求めた全クラスに対応するインデックスを外部に出力する（ステップ１８９）。このとき、複数種類のインデックスが対応するクラスに関しては、その複数種類のインデックスそれぞれに対応するテンプレートも合わせて出力する。ここで出力された、各クラスに対応するインデックス、及び、複数種類のインデックスそれぞれに対応するテンプレートが、クラス対応インデックスデータベース１５５に記録され、画像変換時に用いられる。
【０１８５】
このように、本実施形態では、非特許文献１１の、ＳＯＭの技術を用いて各クラスの分布マップを生成し、それに基づいて、各クラスに対応する、ヒストグラムのインデックスを決定して、それを変換の際に用いる。これにより、変換元のパターンが類似していれば、ヒストグラム上で近い位置のインデックスとなる等、変換元のパターンの違いを、ある程度低次元の値で好ましく表現可能な画像変換が可能となる。ここで、次元数はヒストグラムの次元数であるので、２次元である。
【０１８６】
本実施形態では、ＳＯＭを生成後、そこから、各クラスに対応するヒストグラムのインデックスを決定するようにした。しかし、生成したＳＯＭから、第１から第３実施形態のように、各クラスに対応する実数値を求め、それを、各クラスに対応する変換値としても構わない。例えばＳＯＭ上で、各クラスに対応するニューロンに関して、それらの重心位置を求め、その重心位置座標値を、そのクラスに対応する変換値とする等しても良い。なお、各ニューロンの各クラスへの分類は、上述したように、各ニューロンの重みベクトルに基づいて行うことができる。また逆に、第１から第３実施形態においては、各クラスがマッピングされた位置座標を、そのクラスに対応する変換値としたが、本実施形態と同様に、それぞれのマップに基づいて、多次元のヒストグラムを利用するように変更できる。また、本実施形態では、生成するＳＯＭが２次元のマップであったため、用いるヒストグラムも２次元のヒストグラムとなっていた。しかし、生成するＳＯＭを１次元や３次元等にすれば、用いるヒストグラムも１次元や３次元のヒストグラムにすることが可能である。
【０１８７】
次に、上記説明した画像変換方法を用いて、縦横２０×２０画素の、人物の顔を切り出したグレースケール画像を変換し、その変換後の画像を用いて、それが何れの人物の顔画像であるかを識別する、パターン識別方法の例を示す。
図２２に、第４実施形態における、パターン識別方法の処理ブロック図を示す。また、図２３は、第４実施形態における、パターン識別方法の処理フローを示した図である。
【０１８８】
図２２からもわかるように、本実施形態のパターン識別方法における処理部の構成も、第１から第３実施形態のパターン識別方法における処理部の構成と類似しており、処理のフローも、ほぼ同様である。しかし、各処理部における処理の内容が、多少異なる部分があるので、その異なる部分のみを詳細に説明する。
【０１８９】
まず、画像入力部２２０において、縦横２０×２０画素の、人物の顔を切り出したグレースケール画像（以下、単に入力画像とする）を入力する（ステップ２３０）。
次に、画像変換部２２１で、入力画像を、上記画像変換方法により変換する（ステップ２３１）。本実施形態では、注目画素として選択される画素は、１８×１８画素分であり、各注目画素に対応するのは、２個の１から５までの整数値からなる２次元ヒストグラムのインデックスである。そのため、ここでは、２個の１から５までの整数値からなるインデックスを、１８×１８画素分並べた変換画像が得られる。
【０１９０】
続いて、局所ヒストグラム生成処理部２２２において、まず、画像変換部２２１で変換した１８×１８画素分の結果を３×３個の正方形領域（各領域が６×６画素分に対応する領域）に分割する。そして、それぞれの領域において、縦横５×５個のビンからなる２次元ヒストグラムを生成する。そして、各領域で生成した２次元ヒストグラムに対して、ヒストグラム空間における空間的な平滑化フィルタをかける。本実施形態では、図２４の（ａ）に示したような、中心部分が０．６で、上下左右の隣接した位置が０．１であるような空間フィルタを畳み込むことにより、２次元ヒストグラムに平滑化フィルタをかける。例えば、まず単純に、１つの領域（６×６画素からなる領域）で、２次元ヒストグラムを生成した時に、図２４の（ａ）の左側のような２次元ヒストグラムが得られたとする。図２４の（ａ）の左側に示したものは、５×５個のビンで構成される２次元ヒストグラムで、各ビンに投票された数を示したものである。これに対し、上記フィルタを用いた畳み込みを行うと、図２４の（ａ）の右側のように、２次元ヒストグラムの端部が広がる。このような広がりは、切り捨ててしまっても良い。しかし、本実施形態では、このような広がりも含めるようにし、全部で４５個のビンで構成されるヒストグラムとみなすようにする（この場合、ビン内の数値の総和は、６×６＝３６画素分となり変化しない）。局所ヒストグラム生成処理部２２２では、このような、平滑化フィルタ適用後の４５個のビンで構成されるヒストグラムを、３×３個に分割した正方形領域それぞれにおいて求める処理を行う（ステップ２３２）。これにより、全部で９個からなるヒストグラム群（＝１セット）が求められる。
【０１９１】
局所ヒストグラム生成処理部２２２での処理終了後、類似データ探索部２２３での処理に進む。登録データベース２２４には、登録者のデータとして、登録者１人ずつに対応する１セットのヒストグラム群が保持されている。類似データ探索部２２３では、登録データベース２２４に保持された登録者のデータの内、生成したヒストグラム群と最も近いデータを探索し、そのデータとの類似度を求める。登録者のデータは、予め、登録する人物１人につき、少なくとも１枚の、その人物の顔を切り出したグレースケール画像を用いて生成する。具体的には、まず、１枚ずつ、画像入力部２２０から局所ヒストグラム生成処理部２２２までの処理を実行して、１枚の画像につき、１セットのヒストグラム群（９個のヒストグラム）を生成する。そして、各領域に対応するヒストグラムを平均化し、９個のヒストグラムからなる１セットのヒストグラム群を生成する。平均化では、例えば、１０枚の画像を用いたならば、９個の領域それぞれに対して、同一の領域から生成した１０個分のヒストグラムを平均化する。このように生成した１セットのヒストグラムを、ここで、登録者のデータとして用いるようにする。登録データベース２２４は、各登録人物それぞれに対応する、このような平均化した９個で１セットのヒストグラム群と、それがどの人物であるのかのラベルが記録されている。
【０１９２】
類似データ探索部２２３での処理では、まず、登録データベース２２４から、記録されている９個のヒストグラムのセットを、１セットずつ順番に選択する（ステップ２３３０）。次いで、選択した１セットのヒストグラムと、局所ヒストグラム生成処理部２２２で、生成した、入力画像を処理することにより求めた１セットのヒストグラムとの類似度を求める（ステップ２３３１）。ここでヒストグラム間の類似度は、どのような方法で求めても構わないが、本実施形態においては、非特許文献１４のＨｉｓｔｏｇｒａｍ  Ｉｎｔｅｒｓｅｃｔｉｏｎの手法を用いて類似度を求める。
【０１９３】
具体的には、９個の対応するヒストグラム間で、非特許文献１４のＨｉｓｔｏｇｒａｍ  Ｉｎｔｅｒｓｅｃｔｉｏｎを求め、この９個のＨｉｓｔｏｇｒａｍ  Ｉｎｔｅｒｓｅｃｔｉｏｎの総和を、１セットのヒストグラム間の類似度として求めるようにする。
そして、求めた類似度が今までに求めた類似度より大きいならば、求めた類似度と、その時の、登録データベース２２４から選択した１セットのヒストグラム群に対応する人物のラベルにより、類似データを更新する（ステップ２３３２）。これらの処理を、登録データベース２２４に記録されている全データついて行う。そのため、ステップ２３３０において、選択していない登録データがあるならばステップ２３３０に戻り、全ての登録データを選択して処理を行ったならば次の処理に進む（ステップ２３３４）。
【０１９４】
最後に、識別結果出力部２２５において、類似データ探索部２２３での処理結果に基づいて、入力画像がいずれの人物の画像であるかを出力する。ここでも、第１実施形態と同様に、登録データベース２２４の内、最も類似度が大きかったデータに対応するラベルと、その最大の類似度と所定の閾値とに基づいて、最終的な判定を行い、その結果を識別結果として外部に出力する（ステップ２３４）。
【０１９５】
以上、画像入力部２２０から識別結果出力部２２５までの処理により、人物の顔を切り出したグレースケール画像を変換し、その変換後の画像が何れの人物の顔画像であるかを識別可能になる。このように、本実施形態によれば、明るさ等の変動にロバストな変換（ＬＢＰと同様に、明るさとコントラストの変動には不変）が行われる。このように変換しておくことで、入力画像の明るさ等の変動に対してロバストに、それが何れの人物の顔画像であるか識別可能になる。また、本実施形態の画像変換方法を用いることにより、変換元となる３×３画素のパターンが類似していれば、対応するインデックスが凡そ類似したインデックスになる。そのため、入力画像のサイズなど、明るさやコントラスト以外の変動に対しても、ロバストに認識することが可能になる。
【０１９６】
本実施形態では、変換した画像を用い、それを領域分割してそれぞれの領域でヒストグラムを生成し、各領域におけるＨｉｓｔｏｇｒａｍ  Ｉｎｔｅｒｓｅｃｔｉｏｎを基準にパターン識別を行う例を示した。しかし、例えば、ヒストグラム間の比較において、非特許文献１５のＥａｒｔｈ  Ｍｏｖｅｒ’ｓ  Ｄｉｓｔａｎｃｅを用いる等、その他の手法を用いてパターン識別処理を行うようにしても構わない。
【０１９７】
以上、第４実施形態では、人物の顔を切り出したグレースケール画像を、明るさ等の変動に対してロバストに変換する方法を説明した。また、その変換後の画像が何れの人物の顔画像であるかを識別する、パターン識別方法の例を説明した。
【０１９８】
（第５実施形態）
第５実施形態では、第１から第４実施形態で示した画像変換方法の変形として、本発明をベクトル量子化の技術に適用した場合の例を示す。本実施形態でも、第１から第４実施形態と同様に、人物の顔を切り出したグレースケール画像を変換し、その変換後の画像が何れの人物の顔画像であるかを識別する、パターン識別方法の例を示す。
【０１９９】
第１から第４実施形態では、注目画素の位置により決まる、複数の位置の画素値パターンを用い、ＬＢＰやＣＴのような基準でクラス分類を行い、そのクラス分類結果に基づいて、予め求めておいた変換値（若しくは、インデックス）に変換するようにした。第１から第４実施形態で用いているＬＢＰやＣＴのような基準でのクラス分類は、複数個の画素値パターン、つまり多次元のベクトル値を、幾つかのクラスに分類するという意味で、広義に捉えると、ベクトル量子化の一種と考えることができる。本実施形態では、第１から第４実施形態における、クラス分類の方法を、ベクトル量子化におけるクラス分類の方法に変更することで、ベクトル量子化の技術にも適用可能であることを示す。
【０２００】
図２に、第５実施形態における、画像変換方法の処理ブロック図を示す。また、本実施形態における、画像変換方法の処理フローは、第１実施形態と同様に図４である。図２に示した処理部の構成からもわかるように、本実施形態の画像変換方法も、基本的な処理の流れは、第１実施形態と同様である。ただし、クラス分類処理部２６３での処理の内容や、このクラス分類処理部２６３で用いるデータが記録されている、代表ベクトルデータベース２６８が追加されている部分が異なる。また、クラスに対応した変換値も異なる。以下では、この第１実施形態との差異を詳細に説明する。
【０２０１】
画像入力部２６０から近傍パターン抽出部２６２までにおける処理（ステップ４０〜４２）は、第１実施形態と同様なので説明を省略する。ここまでで、入力画像から１つの注目画素が選択され、その注目画素を中心とする３×３画素のパターンが抽出される。
【０２０２】
第１実施形態では、３×３画素のパターン抽出後、このパターンに対し、ＬＢＰと同等の基準でクラス分類を行った。これに対し、本実施形態では、まず、クラス分類処理部２６３で、抽出した３×３画素のパターンと、代表ベクトルデータベース２６８に予め記録しておいた複数の代表ベクトルそれぞれとの類似度を求める。そして、類似度が最も高かった代表ベクトルに対応するクラスに、抽出した３×３画素のパターンを分類する。代表ベクトルデータベース２６８に記録されている、複数の代表ベクトルは、詳細は後に述べるが、予め行うベクトル量子化の学習時に求めた、複数の３×３＝９次元のベクトルである。また、それぞれの代表ベクトルは、対応するクラス番号と共に代表ベクトルデータベース２６８に記録されている。本実施形態では、後に説明するベクトル量子化の学習時に、全部で１００個の代表ベクトルを求めるようにする。そのため、代表ベクトルデータベース２６８には、この１００個の代表ベクトルそれぞれに、０から９９までのクラス番号が記録されている。それぞれの代表ベクトルと、抽出した３×３画素のパターンとの類似度は、第４実施形態において説明した、相互部分空間法に類似した基準で求める。ただし、第４実施形態では、明るさとコントラストの変動を考慮したが、本実施形態では、これに加え、３×３画素のパターンにおける、任意の方向の１次の輝度勾配変動も考慮して類似度を求める。
【０２０３】
上記任意の方向の１次の輝度勾配変動は、例えば、図１２の（ａ）や（ｂ）に示したような、ある方向への勾配が一定であるような成分が、パターンに付加されるような変動である。因みに、図１２の（ａ）は、水平方向から右下方向にａｒｃｔａｎ（３／４）だけ回転した方向への輝度勾配が一定のパターンであり、図１２の（ｂ）は、水平方向から左下方向にａｒｃｔａｎ（５／１２）だけ回転した方向への輝度勾配が一定のパターンである。ここで、図１２の（ａ）や（ｂ）に示したようなパターンは、詳細な説明は割愛するが、図１２に示した（ｃ）と（ｄ）の線形和で表現できる。そのため、あるパターンｘに対して、明るさやコントラストに加え、任意の方向の１次の輝度勾配を、任意に変動させたパターンは、任意の正の実数ａと任意の実数ｂ、ｃ、ｄを用いて、ａｘ＋ｂ１＋ｃｈ＋ｄｖと表すことができる。ここでｈは、図１２の（ｃ）のパターンに対応する３×３＝９次元のベクトルで、ｈ＝（−１／√６、０、１／√６、−１／√６、０、１／√６、−１／√６、０、１／√６）Ｔである。同様にｖは、図１２の（ｂ）のパターンに対応する９次元ベクトルで、ｖ＝（−１／√６、−１／√６、−１／√６、０、０、０、１／√６、１／√６、１／√６）Ｔである。上記表現ａｘ＋ｂ１＋ｃｈ＋ｄｖでは、ａとｂは、第４実施形態と同様、コントラストと明るさの変動に対応しており、ｃとｄは、輝度勾配の方向と勾配の強さに対応している。
【０２０４】
ここで、第４実施形態と同様に、ａｘ＋ｂ１＋ｃｈ＋ｄｖのａ（＞０）やｂ、ｃ、ｄを任意に変化させた場合を考えると、このａｘ＋ｂ１＋ｃｈ＋ｄｖは、９次元空間内の４次元部分空間（これもａ＞０なので半空間）となる。そこで、第４実施形態と同様に、パターン間の類似度を求める際に、このような４次元部分空間同士の類似度を求めることで、明るさやコントラストの変動に加え、上記輝度勾配変動に対しても不変に類似度を求めることが可能になる。部分空間同士の類似度としては、非特許文献１２の相互部分空間法のように、部分空間の正準角を用いる。４次元部分空間同士の場合、正準角は４つある（第１から第４正準角）が、ここでは第４正準角を、パターン間の類似度として用いる。これは、第４実施形態での場合と同様に、類似度を求める２つのパターンがどのようなパターンであっても、明るさの変動、即ち、１の方向への変動と、輝度勾配変動への方向、即ち、ｈとｖの線形和で表される方向への変動は同一である。そのため、第１から第３正準角は必ず０になるためである。
【０２０５】
この第４正準角は、第４実施形態と同様に、第１から第３正準角が自明で、残りの正準角が１つしかないことから、以下のような単純な方法で、第４正準角の余弦を求める。
まず、上記４次元の部分空間の、４つの正規直交基底を、第４実施形態と同様に、非特許文献１３のＧｒａｍ−Ｓｃｈｍｉｄｔの直交化手法を用いて求める。但し、このとき、基底ｕ１、ｕ２、ｕ３を、任意のパターンにおいて共通である変動方向、つまり、ベクトル１、ｈ、ｖ方向の正規基底とする。つまり、基底ｕ１を、１／｜１｜とし、基底ｕ２をｈ、基底ｕ３をｖとする。これら３つの基底は、互いに直交することは明らかであり、また、ｈとｖは、既に正規化されているので、正規直交基底としてこのまま用いることにする。
【０２０６】
この場合、Ｇｒａｍ−Ｓｃｈｍｉｄｔの直交化手法を用いると、パターンｘに対する正規直交基底ｕ４は、次のように求められる。
【数６】
2011008631.tif 000008
【０２０７】
この正規直交基底ｕ４が、パターンｘに対応する、本実施形態における直交基底パターンであり、パターンｘを、式６を用いてｕ４に変換する処理を、本実施形態における直交基底化と定義する。この時、２つのパターン間の、第４正準角の余弦は、第４実施形態と同様に、各パターンに対する、上記直交基底パターンｕ４の内積を求めることにより得られる。また、第４実施形態と同様に、ｘ＝ｂ１＋ｃｈ＋ｄｖという特別の場合は、直交基底パターンは、全ての要素が０である９次元のベクトルにしてしまう。そして、もし、２つのパターンが、共にｘ＝ｂ１＋ｃｈ＋ｄｖである場合は、類似度を１とする。
【０２０８】
本実施形態におけるパターン間の類似度は、基本的には、上記説明した手法に従い、両方のパターンを式６に基づき直交基底化して、その内積を算出することにより求める。クラス分類処理部２６３でも、上記手法を用いれば良い。しかし、先にも述べたが、クラス分類処理部２６３では、基本的に、この類似度の大小関係のみを判定すればよく、また、後に述べるが、代表ベクトルデータベース２６８には、予め代表ベクトルを直交基底化したものが記録されている。そのため、このクラス分類処理部２６３では、抽出した３×３画素のパターンを直交基底化する必要は無く、単純に、このパターンと代表ベクトルとの内積を求め、その値の大小比較をすれば良い。第４実施形態におけるテンプレートとの比較と同様に、直交基底化の有無によって大小関係は変わらないからである。よって、このクラス分類処理部２６３では、まず、抽出した３×３画素のパターンと、代表ベクトルデータベース２６８に記録されている１００個の代表ベクトルとの内積をそれぞれ求める。そして、求めた内積値が最も大きかった代表ベクトルに対応するクラス番号を代表ベクトルデータベース２６８から読み出し、読み出したクラス番号に対応するクラスに抽出した３×３画素のパターンを分類する（ステップ４３）。
【０２０９】
以降の、変換値割り当て部２６４から、変換画像出力部２６７での処理は、第１実施形態における、変換値割り当て部１４から、変換画像出力部１７での処理と、ほぼ同様であるので、詳細な説明は省略する。
【０２１０】
変換値割り当て部２６４では、クラス対応変換値データベース２６５を参照し、分類されたクラスに対応する値を読み出して、その値を選択した注目画素に対応する変換値とする（ステップ４４）。本実施形態では、クラス０からクラス９９までのいずれかに分類される。ここで参照するクラス対応変換値データベース２６５は、クラスごとに、２つの数値からなる２次元のベクトル値が記録されている。この２次元ベクトル値も、第１実施形態と同様に、予め、各クラス間の相互関係に基づいて定めておいた値である。この２次元ベクトル値の定め方については、後に詳細に説明する。
【０２１１】
変換値割り当て部２６４において、変換値を求めた後、この２次元ベクトル値である変換値を、注目画素選択部２６１で選択した注目画素に対応する変換値として、変換画像保持部２６６に記録して保持する（ステップ４５）。
上記処理により、選択した注目画素に対して２次元ベクトル値である変換値が得られ、変換画像保持部２６６に記録される。このような変換値を、第１実施形態と同様に、１８×１８画素分求めるため、未選択の画素があるならば、注目画素選択部２６１での処理に戻り、１８×１８画素全てを選択して処理したならば次の処理に進むステップ４６）。
【０２１２】
以上のようにして、１８×１８画素の全てについて、２次元ベクトル値である変換値が求められ、変換画像保持部２６６に記録される。そして、最後に、変換画像出力部２６７で、変換画像保持部２６６に記録されている結果が外部に出力され（ステップ４７）、画像変換処理が終了する。上記処理により、第１実施形態と同様に、それぞれの注目画素に対して得られた２次元のベクトル値を１８×１８画素分並べた画像を外部に出力する。
【０２１３】
次に、本実施形態において重要な、代表ベクトルと、各クラスに対応する変換値の求め方について説明する。図９に、本実施形態における、代表ベクトルと、各クラスに対応する変換値を求める方法の処理ブロック図を示す。また、図１０は、この代表ベクトルと、それぞれの変換値を求める方法の処理フローを示した図である。
【０２１４】
まず、画像入力部２８０において、画像データベース２８５に保持されている多数のグレースケール画像の中から、１枚の画像を選択して入力する（ステップ２９０）。ここでは、第４実施形態と同様、明るさ等の正規化も行っていない任意のグレースケール画像を入力する。画像のサイズも、第４実施形態同様、６４０×４８０画素の画像を入力画像として用いることにする。このように任意のグレースケール画像を用いるのは、様々な画像に対するパターン識別方法への適用性を高めるためである。
【０２１５】
次の、注目画素選択部２８１と近傍パターン抽出部２８２は、上記説明した注目画素選択部２６１と近傍パターン抽出部２６２の処理部と同様である。ただし、第４実施形態と同様に、入力画像のサイズが、２０×２０画素であるのか、６４０×４８０画素であるのかが異なる。つまり、入力画像から上下左右の端１画素を除いた、計６３８×４７８＝３０４，９６４画素分の注目画素を順次選択して、選択した注目画素を中心とした３×３画素のパターンを抽出する（ステップ２９１、２９２）。ここで、第１実施形態等では、抽出したパターンのクラス分類を行った。しかし、本実施形態では、クラス分類に用いる代表ベクトルがまだ定まっていないため、第１実施形態等と同様のクラス分類を行うことができない。そこで、本実施形態においては、ここで抽出したパターンのクラス分類は行わず、次の直交基底パターン記録部２８４での処理に進む。
【０２１６】
直交基底パターン記録部２８４では、まず、抽出した３×３画素のパターンを、式６に基づいて直交基底化して、直交基底パターンデータベース２８６に記録する。直交基底パターンは、９次元のパターンであるので、第４実施形態と同様に、９個の数値列として記録すれば良い（ステップ２９４）。
【０２１７】
上記ステップ２９１〜２９４までの処理を、ステップ２９０で入力した１枚の画像に対し、第４実施形態と同様に、注目画素として選択すべき計６３８×４７８＝３０４，９６４画素分、実行する。そのため、注目画素として選択していない画素があるならば、注目画素選択部２８１での処理に戻り、３０４，９６４画素の全てを選択して処理を行ったならば次の処理に進む（ステップ２９５）。
【０２１８】
上記処理により、１枚の画像につき、３０４，９６４個分の直交基底パターンが、直交基底パターン群データベース２８６に記録される。このような処理を、第１実施形態等と同様に、画像データベース２８５に保持された全ての画像に対して実行する。そのため、入力していない画像があるならば、画像入力部２８０での処理に戻り、全ての画像を入力して処理を行ったならば、次のの処理に進む（ステップ２９６）。
【０２１９】
本実施形態でも、第４実施形態と同様、１００枚の画像を入力画像として用いる。したがって、各画像から３０４，９６４個分の直交基底パターンを抽出すると、直交基底パターン群データベース２８６には、総計１００×３０４，９６４＝３０，４９６，４００個の直交基底パターンが記録されることになる。
【０２２０】
続いて、ｋ−ｍｅａｎｓクラスタリング処理部２８７において、まず、非特許文献１６のｋ−ｍｅａｎｓクラスタリングの手法を用い、直交基底パターン群データベース２８６に記録された、多数の直交基底パターンのクラスタリングを行う。
このクラスタリング後の複数のクラスターが各クラスに対応する。それぞれのクラスには、前述の通り１つの代表ベクトルが対応するが、本実施形態では、それぞれのクラスターに属する直交基底パターンの平均を直交基底化したものを、代表ベクトルとする。
【０２２１】
ｋ−ｍｅａｎｓクラスタリングでは、クラスタリング実行中に、暫定的なクラスターの平均ベクトルと、それぞれのデータとの比較を行うが、その比較方法としては、ユークリッド距離や、マハラノビス距離を用いるのが一般的である。これに対し、本実施形態においては、上記した相互部分空間法に類似したパターン間の類似度を用いる。より具体的には、クラスタリング実行時には、暫定的なクラスターの平均ベクトルを直交基底化したもの（以下、直交基底化クラスター平均と記載する）と、それぞれの直交基底パターンの内積を求める。こうして求めた内積に基づいてクラスタリングを実行していく。
【０２２２】
ｋ−ｍｅａｎｓクラスタリング処理部２８７では、まず、直交基底パターン群データベース２８６に記録された多数の直交基底パターンの中から、ランダムに複数の直交基底パターンを選択する。本実施形態では、クラス数を１００個とするので、ランダムに１００個の直交基底パターンを選択する。選択された１００個の直交基底パターンは、既に直交基底化されているので、そのまま、初期の直交基底化クラスター平均として用いる。
【０２２３】
次いで、直交基底パターン群データベース２８６に記録された全ての直交基底パターンそれぞれについて、各直交基底パターンが１００個のクラスターのいずれに属するかを判定する。具体的には、各直交基底パターンと、１００個の直交基底化クラスター平均それぞれとの内積を求めて、内積が最大であった直交基底化クラスター平均に対応するクラスターに、その直交基底パターンが属すると判定する。
【０２２４】
続いて、１００個のクラスターそれぞれにおいて、そのクラスターに属すると判定された、全ての直交基底パターンの平均を求め、それを直交基底化したものを、このクラスターに対応する新たな直交基底化クラスター平均とする。なお、直交基底パターンは既に直交基底化されているので、ここでの直交基底化は大きさを１に正規化すれば良い。
【０２２５】
そして、求めた１００個の新たな直交基底化クラスター平均を用い、再度、上記説明した手法で、全ての直交基底パターンが、それぞれ１００個のクラスターのいずれに属するかを判定する。次いで、同様に、判定結果に基づいて、１００個の新たな直交基底化クラスター平均を求める。このような処理を繰り返し実行していき、求めた１００個の新たな直交基底化クラスター平均が、直前の１００個の直交基底化クラスター平均と、全て同一であったならば、上記繰り返し処理を終了する。ここで最後に求めた１００個の直交基底化クラスター平均が、１００個のクラスに対応する代表ベクトルとなる。各代表ベクトルには、０から９９までのクラス番号を適当な順番で付与すれば良い。ここで求めた代表ベクトルと、それぞれに対応するクラス番号が、代表ベクトルデータベース２６８に記録され、画像変換において用いられる。以上説明した処理により、ｋ−ｍｅａｎｓクラスタリング処理部２８７での処理が終了となる（ステップ２９７）。
【０２２６】
本実施形態では、上記のように、非特許文献１６のｋ−ｍｅａｎｓクラスタリングの手法を基準にした方法でクラスタリングを行ったが、例えば、非特許文献１７に記載されているような、スペクトラルクラスタリング等を用いても構わない。
【０２２７】
ｋ−ｍｅａｎｓクラスタリング処理部２８７までの処理により、各クラスの代表ベクトルは求められたので、後は、これらの代表ベクトルそれぞれに対応する各クラス間の相互関係に基づいて、各クラスに対応する変換値を求める方法の説明を続ける。
【０２２８】
ｋ−ｍｅａｎｓクラスタリング処理部２８７での処理終了後、Ｉｓｏｍａｐ処理部２８８での処理に進む。Ｉｓｏｍａｐ処理部２８８では、第３実施形態においても用いた、非特許文献１０のＩｓｏｍａｐを用い、求めた１００個の代表ベクトルデータを、所定次元のターゲット空間にマッピングする。つまり、所定次元のターゲット空間での、各クラスに対応する点の位置座標を求める。第３実施形態では、各クラスのクラス間距離を、群平均法により求めておき、求めたクラス間距離を用いてＩｓｏｍａｐの処理を行った。これに対し、本実施形態では、各クラスのクラス間距離として、単純に、それぞれの代表ベクトル間のユークリッド距離を用いる。これ以外の、Ｉｓｏｍａｐ処理部２８８での処理は、第３実施形態のＩｓｏｍａｐ処理部１３８での処理と同様であるので、詳細は省略する。ここでのターゲット空間を本実施形態では２次元としているが、この次元数は２に限らない。この次元数も、Ｃｒｏｓｓ  Ｖａｌｉｄａｔｉｏｎを用いて決定するのが好ましい。
【０２２９】
このＩｓｏｍａｐ処理部２８８での処理により、１００個のクラスそれぞれに対応する、ターゲット空間上での位置座標が得られる（ステップ２９８）。本実施形態では、ターゲット空間の次元数を２としているので、この位置座標は２つの数値で表される。このクラスごとの位置座標が、各クラスに対応する２次元ベクトル値の変換値である。本実施形態では、Ｉｓｏｍａｐを用いて各クラスに対応する点をマッピングする。しかし、これに限るものではなく、例えば、非特許文献５のＭＤＳを、Ｉｓｏｍａｐの替わりに用いても構わない。また、次元削減のためのマッピングでは、単純にＰＣＡを用いても良いし、非線形主成分分析を用いても構わない。その他、非特許文献１８のＬｏｃａｌｌｙ  Ｌｉｎｅａｒ  Ｅｎｂｅｄｄｉｎｇや、非特許文献１９のＬｏｃａｌｉｔｙ  Ｐｒｅｓｅｒｖｉｎｇ  Ｐｒｏｊｅｃｔｉｏｎｓ等の様々な手法をここでのマッピングに利用できる。
【０２３０】
また、本実施形態では、代表ベクトル間の距離を基準にしてクラス間の距離を定義したが、例えば、各クラスに分類されたパターン群を用い、第１実施形態等と同様に、クラスター分析の手法によってクラス間の距離を定義しても構わない。
【０２３１】
最後に、代表ベクトル・対応変換値出力部２８９において、求めた１００個のクラスに対応する代表ベクトル（それぞれクラス番号が付与されている）と各クラスに対応する２次元の座標値を外部に出力する。これにより、代表ベクトルと各クラスに対応する変換値を求める処理が終了する（ステップ２９９）。ここで出力した１００個のクラスに対応する代表ベクトルと各クラスに対応する２次元座標値が、それぞれ、代表ベクトルデータベース２６８とクラス対応変換値データベース２６５に保持され、画像変換に用いられる。
【０２３２】
このように、本実施形態では、まず、多数のパターンに対するクラスタリング処理により、クラス分類に用いる代表ベクトルを求める。そして、各クラスに対応する代表ベクトルを用いて、クラス間の距離（各クラス間の相互関係）を求め、それに基づいて、各クラスに対応する変換値を決定する。これにより、第１実施形態等と同様に、変換後の値が変換元のパターンの違いを、ある程度低次元で好ましく表現可能な画像変換が可能となる。
【０２３３】
次に、上記画像変換方法を用いて人物の顔を切り出したグレースケール画像を変換し、変換後の画像が何れの人物の顔画像であるかを識別する、パターン識別方法の例を示す。
本実施形態のパターン識別方法における処理部の構成は、図５に示した第１実施形態における処理部の構成と同様であり、処理のフローも図６に示したものと同様である。各処理部における処理の内容も、第１実施形態とほとんど同様であるので、簡単に説明する。
【０２３４】
まず、画像入力部５０において、縦横２０×２０画素の、人物の顔を切り出したグレースケール画像（入力画像）を入力する（ステップ６０）。
次に、画像変換部５１で、入力画像を、上記画像変換方法により変換し、、２次元ベクトル値を、１８×１８画素分並べた変換画像を得る（ステップ６１）。
続いて、次元削減処理部５２において、変換画像を１８×１８×２＝６４８次元のベクトルとみなし、この次元を削減する。
次の最近傍探索部５３で、登録データベース５４に保持された登録者のデータの内、次元削減されたデータに最も近いデータを探索する（ステップ６３０〜６３４）。
最後に、識別結果出力部５５において、探索結果に基づいて、入力画像がいずれの人物の画像であるのかを出力する（ステップ６４）。ここでも、第１実施形態と同様に、探索により得られたユークリッド距離が最小のデータに対応するラベルと、その距離に基づいて、最終的な判定を行い、その結果を外部に出力する。
【０２３５】
上記の処理により、本実施形態の画像変換方法を用いて人物の顔を切り出したグレースケール画像を変換し、その変換後の画像が何れの人物の顔画像であるかを識別可能になる。このように、本実施形態によれば明るさ等の変動にロバストな変換（本実施形態では、明るさ・コントラストだけでなく、パターンに対し、任意の方向の、１次の輝度勾配変動があっても不変）が行われる。そして、本実施形態の画像変換方法を用いて予め画像変換を行っておくことで、入力画像に明るさ等の変動に対してロバストに、それが何れの人物の顔画像であるかといった識別が可能になる。また、本実施形態を用いることにより、第１実施形態等と同様に、パターンが少々変動した場合でも、変換後の値が凡そ類似した値になる。そのため、例えば、入力画像の位置が少々変動してしまったといった、明るさやコントラスト以外の変動であっても、変換後の値が、大きく変化し難くなるため、このような変動に対しても、ロバストに認識することが可能になる。
【０２３６】
本実施形態のパターン識別方法でも、変換した画像に対して、第１実施形態と同様に、ＰＣＡによる次元削減と、いわゆる最近傍法によるパターン識別を行う例を示した。しかし、これに限るものではなく、例えば、ニューラルネットワークや、ＳＶＭを用いて、パターン識別処理を行うようにしても構わない。
【０２３７】
以上、第５実施形態は、本発明をベクトル量子化の技術に適用した場合の例として説明した。また、その変換後の画像が何れの人物の顔画像であるかを、明るさ等の変動に対してロバストに識別する、パターン識別方法の例も合わせて説明した。
【０２３８】
上記実施形態では、全て顔を切り出した画像に対する処理を例として説明したが、風景画像や、手書き文字の画像等、どのような画像に対しても適用可能である。また、２次元画像に限らず、例えば、３次元ボリュームデータや、画像を時間軸方向に拡張した動画データであっても適用可能である。例えば、非特許文献２０のＶＬＢＰのように、空間的な方向だけでなく、時間的な方向に隣接したデータとの比較に基づくクラス分類を行うような方法であっても、分類される各クラス間の相互関係を定義することが可能であれば、本発明は適用可能である。
また、ベクトル量子化に適用した場合も、特に２次元の画像データに限られるものではないので、ボリュームデータや、動画データに対しても、適用可能である。
【０２３９】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることができる。具体的には、複数の機器から構成されるシステムに適用しても良いし、一つの機器からなる装置に適用しても良い。
【０２４０】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011008631.tif 000009
【図２】
2011008631.tif 000010
【図３】
2011008631.tif 000011
【図４】
2011008631.tif 000012
【図５】
2011008631.tif 000013
【図６】
2011008631.tif 000014
【図７】
2011008631.tif 000015
【図８】
2011008631.tif 000016
【図９】
2011008631.tif 000017
【図１０】
2011008631.tif 000018
【図１１】
2011008631.tif 000019
【図１２】
2011008631.tif 000020
【図１３】
2011008631.tif 000021
【図１４】
2011008631.tif 000022
【図１５】
2011008631.tif 000023
【図１６】
2011008631.tif 000024
【図１７】
2011008631.tif 000025
【図１８】
2011008631.tif 000026
【図１９】
2011008631.tif 000027
【図２０】
2011008631.tif 000028
【図２１】
2011008631.tif 000029
【図２２】
2011008631.tif 000030
【図２３】
2011008631.tif 000031
【図２４】
2011008631.tif 000032