(57)【要約】【課題】特定の識別対象に特化した場合の識別精度を向上可能とする技術を提供する。【解決手段】信号処理装置は、入力されたデータに対して空間フィルタ処理を実行することで処理結果データを生成する生成手段と、処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第１の符号化手段と、処理結果データに対して、不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第２の符号化手段と、近似符号化処理結果データに基づいて、空間フィルタ処理の重み係数を更新する更新手段と、更新手段による重み係数の更新を行う場合には処理結果データを第２の符号化手段に提供し、他の場合には処理結果データを第１の符号化手段に提供する、ように制御する制御手段と、を有する。【選択図】図１
2014203135.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータに対して空間フィルタ処理を実行することで処理結果データを生成する生成手段と、
前記処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第１の符号化手段と、
前記処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第２の符号化手段と、
前記近似符号化処理結果データに基づいて、前記空間フィルタ処理の重み係数を更新する更新手段と、
前記更新手段による重み係数の更新を行う場合には前記処理結果データを前記第２の符号化手段に提供し、他の場合には前記処理結果データを前記第１の符号化手段に提供する、ように制御する制御手段と、
を有することを特徴とする信号処理装置。
【請求項２】
前記他の場合は、パターン識別を行う場合と該パターン識別に使用する基準パターンの登録を行う場合との少なくとも一方を含むことを特徴とする請求項１に記載の信号処理装置。
【請求項３】
前記符号化処理結果データに基づいてパターン識別を行うパターン識別手段を更に有することを特徴とする請求項１又は２に記載の信号処理装置。
【請求項４】
前記所定の符号化処理は、前記処理結果データ内の注目領域における値と該注目領域に対して予め定められた相対位置にある１以上の参照領域における値とを比較して比較処理結果データを生成し、該比較処理結果データに対して前記不連続関数を用いた演算を行う処理であることを特徴とする請求項１乃至３の何れか一項に記載の信号処理装置。
【請求項５】
前記空間フィルタ処理はＣＮＮ（Convolutional Neural Networks）処理であり、前記重み係数は該ＣＮＮ処理におけるフィルタ係数であることを特徴とする請求項１乃至４の何れか一項に記載の信号処理装置。
【請求項６】
前記更新手段は、誤差逆伝播法を用いて前記空間フィルタ処理の重み係数を更新することを特徴とする請求項５に記載の信号処理装置。
【請求項７】
前記不連続関数はステップ関数であり、前記連続関数はｔａｎｈ関数又はシグモイド関数であることを特徴とする請求項１乃至６の何れか一項に記載の信号処理装置。
【請求項８】
前記不連続関数はパルス関数であり、前記連続関数はガウス関数であることを特徴とする請求項１乃至６の何れか一項に記載の信号処理装置。
【請求項９】
入力されたデータに対して空間フィルタ処理を実行することで処理結果データを生成する生成工程と、
前記処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第１の符号化工程と、
前記処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第２の符号化工程と、
前記近似符号化処理結果データに基づいて、前記空間フィルタ処理の重み係数を更新する更新工程と、
重み係数の更新を行う場合には、前記第２の符号化工程を実行し、他の場合には前記第１の符号化工程を実行する、ように制御する制御工程と、
を有することを特徴とする信号処理方法。
【請求項１０】
コンピュータを請求項１乃至７の何れか１項に記載の信号処理装置の各手段として機能させるためのプログラム。
【請求項１１】
クライアント装置とサーバ装置とを含む信号処理システムであって、
前記クライアント装置は、
入力されたデータに対して空間フィルタ処理を実行することで処理結果データを生成する第１の生成手段と、
前記第１の生成手段により生成された処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第１の符号化手段と、
前記符号化処理結果データに基づいてパターン識別を行うパターン識別手段と、
を有し、
前記サーバ装置は、
入力されたデータに対して前記空間フィルタ処理を実行することで処理結果データを生成する第２の生成手段と、
前記第２の生成手段により生成された処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第２の符号化手段と、
前記近似符号化処理結果データに基づいて、前記第２の生成手段の空間フィルタ処理の重み係数を更新する更新手段と、
を有し、更に、
前記サーバ装置は、前記更新手段により更新された重み係数を前記クライアント装置に送信する送信手段を有し、前記クライアント装置は、前記サーバ装置から受信した重み係数を前記第１の生成手段の空間フィルタ処理の重み係数として設定する設定手段を有する
ことを特徴とする信号処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ等からパターン識別に好適な特徴量を抽出する信号処理技術に関するものである。
【背景技術】
【０００２】
画像中に出現する特定の画素パターンを検出したり、他と識別したりする画像処理が知られている。前者は例えば顔検出（画像中から顔らしいパターンを検出する）であり、後者は例えば顔認証処理（検出した顔から個人を特定する）である。例えば、顔認証処理は、あらかじめ顔画像を特徴量データに変換して登録しておき、与えられた顔画像（顔領域の部分画像）を同様の特徴量データに変換し、予め登録してある顔画像の特徴量との類似性を判定し、その結果に応じて個人を識別する処理である。
【０００３】
デジタルカメラ等により撮影したスナップ写真を用いて顔認証処理を実行する場合、顔画像には様々な照明条件下で撮影されたものが含まれる。照明条件が異なる顔画像同士であっても正しく識別するために、パターン識別に用いる特徴量は、画素パターンの照明条件による変動に対して頑健であることが望ましい。そのような特性を備えた特徴量としてＬＢＰ（Local Binary Pattern）が提案されている（非特許文献２）。
【０００４】
また、入力画像に対して数十種のGabor Waveletフィルタ処理を施し、各フィルタ処理後データからＬＢＰを抽出することにより得られる特徴量が提案されている。例えば、非特許文献１、６においてＬＧＢＰ（Local Gabor Binary Pattern）が提案されている。
【０００５】
非特許文献６によれば、顔認証の特徴量として、入力画像から単純にＬＢＰを抽出したものを用いる代わりに、入力画像にGabor Waveletフィルタ処理を適用した結果からＬＢＰを抽出したもの（ＬＧＢＰ）を用いる方が、より顔認証精度が良くなる。
【０００６】
一方、識別対象に適した空間フィルタを学習し、学習により得られた空間フィルタを用いて特徴量を抽出する手法として非特許文献４のＣＮＮ（Convolutional Neural Networks）が提案されている。ＣＮＮでは入力画像に対して階層的に空間フィルタ処理を施すことにより特徴量を抽出する。空間フィルタの学習には、一般的に誤差逆伝播（Backpropagation）法が用いられる。誤差逆伝播法は教師有り学習手法であり、学習データとその学習データに対するＣＮＮ出力の正解データの組を用いて学習する。つまり、学習データに対するＣＮＮ出力と正解データとの誤差が小さくなるように空間フィルタの係数を更新する。
【０００７】
先に述べたように、ＬＧＢＰはパターン識別に有効な特徴量として顔認証等に広く利用されている。しかし、ＬＧＢＰにおいて使用するGabor Waveletフィルタは、次元数、データ数が多く、処理負荷が大きいという問題がある。また、Gabor Waveletフィルタは、元々特定のパターン識別用として設計されたものではない。そのため、特定のパターン識別（例えば顔画像の識別）を目的とする場合には、Gabor Waveletフィルタより適切な空間フィルタが存在する可能性がある。また、上述したようにＣＮＮは学習により識別対象に適した空間フィルタを設計することができる。そのため、実際の識別対象（例えば顔画像の識別）の学習に基づき設計された空間フィルタをGabor Waveletフィルタの代わりに用いることが考えられる。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】W. Zhang，S. Shan，W. Gao，X. Chen，and H. Zhang，“Local Gabor Binary Pattern Histogram Sequence (LGBPHS): A Novel Non-Statistical Model for Face Representation and Recognition”，Proc. IEEE International Conference on Computer Vision，pp. 768-791，2005.
【非特許文献２】T. Ojala，M. Pietikainen，and D. Harwood，“A Comparative Study of Texture Measures with Classification Based on Featured Distributions”，Pattern Recognition，Vol. 29，pp. 51-59，1996.
【非特許文献３】村瀬一郎，金子俊一，五十嵐悟，“増分符号相関によるロバスト画像照合”，電子情報通信学会論文誌 D-II，Vol. J83-D-II，No. 5，pp. 1323-1331，2000.
【非特許文献４】Y. LeCun，K. Kavukvuoglu， and C. Farabet，“Convolutional Networks and Applications in Vision”， Proc. IEEE International Symposium on Circuits and Systems，pp. 253-256，2010.
【非特許文献５】S. Chopra，R. Hadsell，and Y. LeCun，“Learning a similarity metric discriminatively，with application to face verification”， Proc. IEEE Conference on Computer Vision and Pattern Recognition，pp. 539-546，2005.
【非特許文献６】Z. Lei，S. Liao，R. He，M. Pietikainen，S. Z. Li，“Gabor Volume Based Local Binary Pattern for Face Representation and Recognition”，Proc. IEEE International Conference on Automatic Face & Gesture Recognition，pp. 1-6，2008.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ＣＮＮの学習方法である誤差逆伝播法を適用するためには、入力画像に対する一連の画像処理におけるすべての処理要素が連続関数（微分可能）である必要がある。つまり、ＬＢＰ及び増分符号のような符号化には不連続関数であるステップ関数が含まれるため、誤差逆伝播法では学習することができない。その結果、パターン識別に好適な特徴量を抽出可能とするＣＮＮを学習により最適化することが出来ない。
【００１０】
本発明は上述の問題点に鑑みなされたものであり、画像データ等からパターン識別に好適な特徴量を抽出可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述の問題点を解決するため、本発明の信号処理装置は以下の構成を備える。すなわち、信号処理装置において、入力されたデータに対して空間フィルタ処理を実行することで処理結果データを生成する生成手段と、前記処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第１の符号化手段と、前記処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第２の符号化手段と、前記近似符号化処理結果データに基づいて、前記空間フィルタ処理の重み係数を更新する更新手段と、前記更新手段による重み係数の更新を行う場合には前記処理結果データを前記第２の符号化手段に提供し、他の場合には前記処理結果データを前記第１の符号化手段に提供する、ように制御する制御手段と、を有する。
【発明の効果】
【００１２】
本発明によれば、画像データ等からパターン識別に好適な特徴量を抽出可能とする技術を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態における信号処理の概要を説明する図である。
【図２】第１実施形態における符号化処理を説明する図である。
【図３】第１実施形態における近似符号化処理を説明する図である。
【図４】第１実施形態におけるＣＮＮ学習器の概念図である。
【図５】第１実施形態におけるデータ処理装置の構成を示す図である。
【図６】第１実施形態におけるデータ処理装置における各モードの動作を示すフローチャートである。
【図７】ｔａｎｈ関数の係数と形状の関係を説明する図である。
【図８】入力画素値からＬＢＰを抽出する処理を説明する図である。
【図９】入力画素値から増分符号を抽出する処理を説明する図である。
【図１０】ＣＮＮのネットワーク構成のメモリへの格納例を説明する図である。
【図１１】ＣＮＮのフィルタ係数のメモリへの格納例を説明する図である。
【図１２】ＣＮＮのネットワーク構成を例示的に示す図である。
【図１３】顔認証の結果画像の一例を示す図である。
【図１４】第２実施形態におけるデータ処理装置の構成を示す図である。
【図１５】第２実施形態における信号処理部の構成を示すブロック図である。
【図１６】第３実施形態によるデータ処理システムの構成を示す図である。
【図１７】第３実施形態におけるクライアント装置の構成を示す図である。
【図１８】第３実施形態における特徴抽出部の構成を示すブロック図である。
【図１９】パルス関数と当該パルス関数を近似するガウス関数を示す図である。
【発明を実施するための形態】
【００１４】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１５】
（第１実施形態）
本発明に係る情報処理装置の第１実施形態として、顔画像から顔認証に適した特徴量を抽出するデータ処理装置を例に挙げて以下に説明する。ここで、顔認証とは、入力された顔画像から抽出された特徴量と、予め作成しておいた登録データとを比較することにより個人を特定する処理を意味する。なお、第１実施形態では顔認証における特徴抽出処理に適用する例について説明するが、本発明は他のパターン識別における特徴抽出処理に対しても適用可能である。
【００１６】
＜１．信号処理の概要＞
図１は、第１実施形態における信号処理の概要を説明する図である。１００は入力画像である。１０９はＣＮＮ（Convolutional Neural Networks）処理であり、入力画像１００に対してＣＮＮ処理を実行する。１１０は符号化処理であり、ＣＮＮ処理結果データに対して所定の符号化処理を実行する。ＣＮＮ（Convolutional Neural Networks）処理１０９、符号化処理１１０（ＬＢＰ及び増分符号）の詳細について以下に説明する。
【００１７】
＜１．１．ＣＮＮ（Convolutional Neural Networks）処理＞
ＣＮＮは、入力画像を順方向に伝播させ、複数の異なる空間フィルタを用いたコンボリューション演算を施すことにより特徴量を抽出するニューラルネットワークである。ここでは、コンボリューション演算結果を格納する２次元データを”特徴抽出面”と呼ぶ。
【００１８】
続いて、特徴抽出面を重なりのない局所領域に分割し、各局所領域の平均値算出（統合処理）を実行する。平均化することにより、入力画像中の識別対象の微小な幾何学的変動（平均移動や回転など）に対する頑健性が向上する。ここでは、このような処理により生成された２次元データを”統合面”と呼ぶこととする。そして、統合面に対して再び複数の異なる空間フィルタを用いたコンボリューション演算を施すことにより特徴抽出面を生成する。ＣＮＮはこの様に特徴抽出処理と統合処理を階層的に繰り返す事で所望の特徴量を抽出する。
【００１９】
１０１ａ〜ｃは第１階層の特徴抽出面であり、２次元の空間フィルタによるコンボリューション演算結果を格納する２次元データである。１０５は入力画像１００から特徴抽出面１０１ｃを算出するための２次元のコンボリューション演算の入力と出力の関係を表す。以下の式（１）は入力画像１００から特徴抽出面１０１ｃを生成するコンボリューション演算の計算式である。
【００２０】
【数１】
2014203135.tif 000003
【００２１】
ｉ（ｘ，ｙ）：座標（ｘ，ｙ）での入力画素値
ｕ（ｘ，ｙ）：座標（ｘ，ｙ）での演算結果
ｗ（ｃ，ｒ）：座標（ｘ＋ｃ，ｙ＋ｒ）におけるフィルタ係数
width，height：フィルタサイズ
ｉ（ｘ，ｙ）は入力画像１００の画素値（輝度値）に相当する。ここで得られたｕ（ｘ，ｙ）を双曲線正接（ｔａｎｈ）関数等により非線形処理した結果が特徴抽出面１０１ｃの画素値となる。１０１ａ，ｂも同様に入力画像１００に対するコンボリューション演算により生成する。ここで、１０１ａ〜ｃを生成するために使用する空間フィルタは、それぞれ係数が異なる。
【００２２】
１０２ａ〜ｃは統合面であり、統合処理の結果を格納する２次元データである。１０６は特徴抽出面１０１ｃから統合面１０２ｃを算出するための統合処理の入力と出力の関係を表す。１０７は統合面１０２ｃから特徴抽出面１０３ｃを算出するための２次元のコンボリューション演算の入力と出力の関係を表す。１０３ａ〜ｃは第３階層の特徴抽出面であり、前階層の統合面１０２ａ〜ｃの全てに対するコンボリューション演算出力結果をｔａｎｈ関数等により非線形処理した値を足し合わせた結果である。従って、図１に示した例では、統合面１０２ａ〜ｃから特徴抽出面１０３ａ〜ｃを生成するために９種類の異なる空間フィルタを使用する。
【００２３】
学習により決定するパラメータは、特徴抽出面を生成するために使用する空間フィルタの係数である。図１に示した例では、入力画像１００から特徴抽出面１０１ａ〜ｃを生成するために使用する空間フィルタ３枚、統合面１０２ａ〜ｃから特徴抽出面１０３ａ〜ｃを生成するために使用する空間フィルタ９枚の計１２枚の空間フィルタの係数を学習により決定する。
【００２４】
＜１．２．符号化処理＞
符号化処理１１０は、ＣＮＮ処理結果データ（図１に示した例では、特徴抽出面１０３ａ〜ｃ）に対して、注目画素（注目領域）と参照画素（参照領域）との大小関係に基づく符号化を施す処理である。このような符号化処理としては、ＬＢＰもしくは増分符号がある。
【００２５】
＜１．２．１．ＬＢＰ＞
図８は、入力画素値からＬＢＰを抽出する処理を説明する図である。ＬＢＰは、注目画素（ｘ，ｙ）の画素値と、当該注目画素を取り囲む８個の参照画素（ｘ＋ｘｎ，ｙ＋ｙｎ）の画素値とに基づき、式（２）で計算される特徴量に符号化する処理である。
【００２６】
【数２】
2014203135.tif 000004
ここで、
ｉ（ｘ，ｙ）：座標（ｘ，ｙ）での入力画素値
ＬＢＰ（ｘ，ｙ）：座標（ｘ，ｙ）でのＬＢＰ
（ｘｎ，ｙｎ）：参照画素の注目画素に対する相対位置
ｘｎ＝｛−１，０，１｝，ｙｎ＝｛−１，０，１｝，ｘｎ２＋ｙｎ２≠０
ただし、
【００２７】
【数３】
2014203135.tif 000005
である。
【００２８】
図８に示した例では、（ｘｎ，ｙｎ）は、注目画素の左隣の画素を起点として、注目画素を反時計まわりに囲うようにとっている。具体的には、
（ｘ０，ｙ０）＝（−１，０）
（ｘ１，ｙ１）＝（−１，１）
（ｘ２，ｙ２）＝（０，１）
・・・
（ｘ７，ｙ７）＝（−１，−１）
としている。
【００２９】
なお、式（３）はステップ関数（階段関数）であり、参照画素値が注目画素値以上である場合は１、その逆の場合は０となる。ＬＢＰは、注目画素と参照画素との大小関係のみを表現するため、照明条件の変化により画素値が変動した場合でも、注目位置と参照位置の明るさの大小関係が変化しない限り同一視することができるという特性がある。
【００３０】
＜１．２．２．増分符号＞
図９は、入力画素値から増分符号を抽出する処理を説明する図である。上述のＬＢＰの代わりに非特許文献３の増分符号を適用してもＬＢＰと同様の効果が得られる。座標（ｘ，ｙ）における増分符号は次式により計算される。
【００３１】
【数４】
2014203135.tif 000006
【００３２】
ｉ（ｘ，ｙ）：座標（ｘ，ｙ）での入力画素値
ＩＳ（ｘ，ｙ）：座標（ｘ，ｙ）での増分符号
（ｘ０，ｙ０）：参照画素の注目画素に対する相対位置
ｘ０＝｛−１，０，１｝，ｙ０＝｛−１，０，１｝，ｘ０２＋ｙ０２≠０
式（２）と式（４）を比較すると、ＬＢＰにおいてｎ＝０としたものが増分符号に相当することが分かる。図９に示した例では、注目画素に対する相対位置が（ｘ０，ｙ０）＝（０，−１）である画素を参照画素として使用している。
【００３３】
＜１．２．３．符号化処理の例＞
図２は、第１実施形態における符号化処理（第１の符号化処理）を説明する図である。なお、図１と同じ構成要素については同じ番号を付与している。ここでは、説明を簡単にするために増分符号を用いる場合の例について説明する。ＬＢＰを用いる場合であっても増分符号と同様に適用可能である。
【００３４】
符号化処理結果データ１０４ａ〜ｃはＣＮＮの出力である特徴抽出面１０３ａ〜ｃに対して符号化処理を施した結果を格納する２次元データである。１０８は特徴抽出面１０３ｃから符号化処理結果データ１０４ｃを算出するための符号化処理における入力と出力の関係を表す。
【００３５】
２０２ａ〜ｃは画素比較処理であり、特徴抽出面１０３ａ〜ｃにおける注目画素２０３ａ〜ｃの画素値と、参照画素２０４ａ〜ｃの画素値を比較する。ここでは、参照画素２０４ａ〜ｃから注目画素２０３ａ〜ｃの画素値を引いた差を計算する。
【００３６】
２０１ａ〜ｃは比較処理結果データであり、特徴抽出面１０３ａ〜ｃを画素比較処理２０２ａ〜ｃにより処理した結果を格納する２次元データである。比較処理結果データ２０１ａ〜ｃは、比較に使用する参照画素２０４ａ〜ｃの相対位置に応じて、異なる方向特性を備えた特徴量となる。例えば、比較処理結果データ２０１ｂを生成する際は、注目画素２０３ｂの上隣の画素を参照画素２０４ｂとするため、生成された比較処理結果データ２０１ｂは縦方向の画素値の変化に対応する方向特性を持つ特徴量となる。ここでは、様々な方向特性を備えた特徴量を生成するために、参照画素２０４ａ〜ｃの相対位置はそれぞれ異なる方向（横、縦、斜め）に設定する。
【００３７】
符号化処理結果データ１０４ａ〜ｃは比較処理結果データ２０１ａ〜ｃをステップ関数処理２０５により処理した結果を格納する２次元データである。ステップ関数処理２０５は、比較処理結果データ２０１ａ〜ｃの各画素値を入力として式（３）に示したステップ関数を計算する。式（５）は特徴抽出面１０３ａ〜ｃから、符号化処理結果データ１０４ａ〜ｃを生成する計算式である。
【００３８】
【数５】
2014203135.tif 000007
【００３９】
ｕ（ｘ，ｙ）：座標（ｘ，ｙ）での前階層の面の画素値
ｖ（ｘ，ｙ）：座標（ｘ，ｙ）での演算結果
（ｘ０，ｙ０）：参照画素の注目画素に対する相対位置
図２に示した例では、参照画素の相対位置（ｘ０，ｙ０）は、２０４ａ〜ｃについてそれぞれ（−１，０）、（０，−１）、（１，−１）である。
【００４０】
符号化処理結果データ１０４ａ〜ｃは、特徴抽出面１０３ａ〜ｃにおける注目画素２０３ａ〜ｃの画素値と、参照画素２０４ａ〜ｃの画素値の大小関係のみを表現する。そのため、照明条件の変化により特徴抽出面１０３ａ〜ｃの画素パターンが変動した場合でも、注目画素２０３ａ〜ｃの画素値と参照画素２０４ａ〜ｃの画素値の大小関係が反転しない限り符号化処理結果データ１０４ａ〜ｃの画素値は変化しない。
【００４１】
＜２．学習によるフィルタ係数の決定＞
第１実施形態では、図１に示した信号処理の出力結果がパターン識別対象に有効な特徴量となるようにＣＮＮのフィルタ係数を学習により決定する。
【００４２】
＜２．１．学習器＞
図４は、第１実施形態におけるＣＮＮ学習器の概念図である。ここでは、公知のＳｉａｍｅｓｅ学習器（非特許文献５）を使用する。Ｓｉａｍｅｓｅ学習器は、入力データのペアと、入力データのペアが同じクラスであるかどうかを示すラベルとを基に学習を行う学習器である。具体的には、同じクラスの入力データに対してはＣＮＮ出力間の距離が小さく、逆に異なるクラスの入力データに対してはＣＮＮ出力間の距離の大きくなるようにＣＮＮを学習する。
【００４３】
学習データベース４０６は、学習データを格納するデータベースである。ここで、学習データとは、顔画像と顔画像に対応する人物ＩＤとを含むデータのことである。ここで、人物ＩＤとは、顔画像に対応する人物を識別するためのものであり、例えば整数値で表わされる。例えば、人物ＩＤはデータベースに登録された順に０、１、２という値が設定されるようにする。また、名前やニックネーム等の文字列データを人物ＩＤに関連付けてもよい。顔画像は好ましくは、両目が水平に並び、かつ予め定められたサイズとなるように画像変換されたものを使用する。ここで、信号処理の出力結果が各種変動に対して頑健な特徴量となるために、顔画像はパン・チルト方向への顔向き、表情、照明条件などについて様々な変動を含むことが望ましい。
【００４４】
画像ペア選択４０７は、学習データベース４０６から学習に使用する顔画像のペアを選択する。ここで、顔画像のペアは、学習データベース４０６に格納されているすべての顔画像の中から毎回ランダムに選択するものとする。そして、選択した顔画像４０１ａ，ｂをそれぞれＣＮＮ処理１０９ａ，ｂに入力する。また、選択した顔画像のＩＤが同じである場合は０、異なる場合は１という値をラベル４０５に設定する。ラベル４０５は、誤差（Ｌｏｓｓ）計算４０４においてＬｏｓｓを計算する際に使用する。
【００４５】
ＣＮＮ処理１０９ａ，ｂは、図１に示したＣＮＮ処理１０９と同じネットワーク構成のＣＮＮ処理を実行する。ＣＮＮ処理１０９ａ，ｂは、画像ペア選択４０７により選択された顔画像４０１ａ，ｂに対してＣＮＮ処理を実行してＣＮＮ処理結果データを生成する。なお、ＣＮＮ処理１０９ａ，ｂは同じフィルタ係数４０８を共有する。
【００４６】
符号化処理１１０ａ，ｂは、図１を参照して説明した符号化処理１１０と同じ処理を実行する。符号化処理１１０ａ，ｂはＣＮＮ処理１０９ａ，ｂが生成したＣＮＮ処理結果データを符号化して符号化処理結果データを生成する。ここで、ＣＮＮ処理１０９ａ，ｂ及び符号化処理１１０ａ，ｂは同じ構成であり、ＣＮＮ処理１０９ａ，ｂのフィルタ係数は同一であるため、入力画像が同じであれば符号化処理１１０ａ，ｂが生成する符号化処理結果データは同じものとなる。
【００４７】
距離計算４０３は、符号化処理１１０ａ，ｂが生成した２つの符号化処理結果データの距離を計算する。ここでは、距離尺度として、符号化処理結果データをベクトルとした場合の間のＬ１ノルムを使用する。例えば、符号化処理結果データ１面あたりのサイズをＷ×Ｈ、符号化処理結果データの面の数をＮとすると、ベクトルの次元はＷ×Ｈ×Ｎとなる。なお、ユークリッド距離、コサイン距離など、他の距離尺度を使用してもよい。式（６）は、符号化処理１１０ａ，ｂが生成した符号化処理結果データ間のＬ１ノルムを計算する計算式である。
【００４８】
【数６】
2014203135.tif 000008
【００４９】
ｗ：ＣＮＮのフィルタ係数
Ｅ（ｗ）：符号化処理結果データ間のＬ１ノルム
ｖｎ（ｗ）：入力画像ｎから生成した符号化処理結果データ（ｎ：画像ペア内のインデックス）
ｗはＣＮＮのフィルタ係数を要素とするベクトルである。
なお、ｖ、ＥはいずれもＣＮＮのフィルタ係数により値が変化するためｗの関数である。ｖ１（ｗ）、ｖ２（ｗ）はそれぞれ顔画像４０１ａ，ｂから生成された符号化処理結果データである。
【００５０】
Ｌｏｓｓ計算４０４では、距離計算４０３が計算したＬ１ノルムと、画像ペア選択４０７が生成したラベル４０５とに基づきＬｏｓｓを計算する。式（７）は、Ｌ１ノルムとラベル４０５からＬｏｓｓを計算する計算式である。
【００５１】
【数７】
2014203135.tif 000009
【００５２】
Ｙ：ラベルの値（０：画像ペアの人物ＩＤが同じ、１：画像ペアの人物ＩＤが異なる）
Ｌ（ｗ）：誤差（Ｌｏｓｓ）
Ｑ：Ｅ（ｗ）の上限値に設定した定数
である。
【００５３】
顔画像４０１ａ，ｂの人物ＩＤが同じ場合、ラベル４０５としてＹ＝０が入力される。この場合ＬｏｓｓであるＬ（ｗ）は、Ｅ（ｗ）の値が小さければ小さな値に、逆にＥ（ｗ）の値が大きければ大きな値となる。これは、同じ人物に対しては、符号化処理結果データ間の距離が小さいほどＬｏｓｓの値は小さくなることを意味する。
【００５４】
また、顔画像４０１ａ，ｂの人物ＩＤが異なる場合、Ｙ＝１となる。この場合ＬｏｓｓであるＬ（ｗ）は、Ｅ（ｗ）の値が小さければ大きな値に、逆にＥ（ｗ）の値が大きければ小さな値となる。これは、異なる人物に対しては、符号化処理結果データ間の距離が大きいほどＬｏｓｓの値は小さくなることを意味する。
【００５５】
以上説明した処理により、顔画像のペアからＬｏｓｓの値が算出される。続いて、算出されたＬｏｓｓを基に、誤差逆伝播法によりＣＮＮのフィルタ係数４０８を更新する。誤差逆伝播法によりフィルタ係数４０８を更新する手順について以下に説明する。
【００５６】
＜２．２．誤差逆伝播法による学習＞
誤差逆伝播法では、誤差関数を最小化するために勾配降下法を用いてパラメータを更新する。ここでは、誤差関数はＬ（ｗ）、パラメータはフィルタ係数ｗである。ここで、ｗは学習を始める前に初期化する必要がある。そこで、ここでは、ｗを乱数により初期化する。あるいは、Gabor Waveletフィルタ、Sobelフィルタ等の公知の空間フィルタの係数を設定し初期化してもよい。また、以前の学習により得られたフィルタ係数を設定して追加再学習するようにしてもよい。式（８）は、勾配降下法によりｗのｉ番目の要素を更新する方法を示す式である。
【００５７】
【数８】
2014203135.tif 000010
【００５８】
ｗｉ：更新前のｗのｉ番目の要素
ｗｉ’：更新後のｗのｉ番目の要素
ρ：更新係数
式（８）を計算してｗｉを更新するためには、∂Ｌ（ｗ）／∂ｗｉを求める必要がある。ここで、Ｌ（ｗ）はＥ（ｗ）を通してのみｗｉに依存するため、偏微分の連鎖法則を適用し、∂Ｌ（ｗ）／∂ｗｉを式（９）に示すように変形する。
【００５９】
【数９】
2014203135.tif 000011
【００６０】
ここで、∂Ｌ（ｗ）／∂Ｅ（ｗ）は、式（７）をＥ（ｗ）について偏微分することにより得られる。また、∂Ｅ（ｗ）／∂ｗｉは、∂Ｌ（ｗ）／∂ｗｉを分解したのと同様に、式（１０）に示すように変形することができる。
【００６１】
【数１０】
2014203135.tif 000012
【００６２】
ｖｊ：ｖ（ｗ）のｊ番目の要素
ここで、∂Ｅ（ｗ）／∂ｖｊは、式（６）をｖｊについて偏微分することにより得られる。ここで、∂Ｅ（ｗ）／∂ｖｊは、ｖ１（ｗ）に含まれるｖ１ｊ，ｖ２（ｗ）に含まれるｖ２ｊそれぞれについて計算する必要がある。
【００６３】
なお、式（１０）では符号化処理結果データｖ（ｗ）の各要素ｖｊに対して分解した結果を足し合わせている。これは、Ｅ（ｗ）はｖ（ｗ）のすべての要素ｖｊを通してｗｉに依存するためである。
【００６４】
∂ｖｊ／∂ｗｉはさらに式（１１）に示すように変形することができる。
【００６５】
【数１１】
2014203135.tif 000013
∂ｖｊ／∂ｕｊは、式（５）を偏微分することにより得られる。さらに、∂ｕｊ／∂ｗｉは、式（４）をｗｉについて偏微分することにより得られる。
【００６６】
以上のように、誤差逆伝播法では、図４において破線の矢印で示したように、∂Ｌ（ｗ）／∂Ｅ（ｗ）、∂Ｅ（ｗ）／∂ｖｊ、…といった偏微分を入力顔画像からＬｏｓｓを算出する場合とは逆方向に順次計算していく。これにより、最終的に∂Ｌ（ｗ）／∂ｗｉを得る。そして、式（８）に従ってフィルタ係数を更新する。
【００６７】
ここで、距離計算４０３から符号化処理１１０ａ，ｂに逆伝播する際、∂Ｅ（ｗ）／∂ｖｊは、ｖ１（ｗ）に対応するもの、ｖ２（ｗ）に対応するものに分かれて逆伝播する。ＣＮＮのフィルタ係数４０８は、まずｖ１（ｗ）に対する逆伝播により更新し、その後ｖ２（ｗ）に対する逆伝播により更新するものとする。
【００６８】
＜２．３．近似符号化処理＞
上述したように、誤差逆伝播法によりＣＮＮのフィルタ係数４０８を学習するためには、すべての演算は微分可能な関数である必要がある。しかし、符号化処理１１０ａ，ｂにおけるステップ関数処理２０５では、式（３）に示したステップ関数を用いる。ステップ関数は、ｔ＝０で不連続な関数であるため、その近傍で微分不可能である。そのためこのままでは式（１１）における∂ｖｊ／∂ｕｊを計算することができない。
【００６９】
そこで、第１実施形態では、ステップ関数処理２０５におけるステップ関数を、微分可能な連続関数により置き換えて近似する。ここでは、ステップ関数を近似する連続関数としてｔａｎｈ関数を使用するが、ステップ関数を十分に近似可能な連続関数であれば任意の関数を用いるのであってもよい。例えば、シグモイド関数（ｓｉｇｍｏｉｄ）を使用するように変形することも可能である。ここでは、ステップ関数を連続関数により近似した符号化処理のことを”近似符号化処理”と呼ぶ。
【００７０】
図３は、第１実施形態における近似符号化処理（第２の符号化処理）を説明する図である。図２の符号化処理に対して、ステップ関数がｔａｎｈ関数に置き換えられたものに相当する。なお、図２と同じ構成要素については同じ番号を付与し説明を省略する。
【００７１】
近似符号化処理結果データ３０２ａ〜ｃは、比較処理結果データ２０１ａ〜ｃをｔａｎｈ関数処理３０１により処理した結果を格納する２次元データである。ｔａｎｈ関数処理３０１は、比較処理結果データ２０１ａ〜ｃの各画素値を入力としてｔａｎｈ関数を計算することにより近似符号化処理結果データ３０２ａ〜ｃを生成する。
【００７２】
式（１２）は、図３に示した近似符号化処理により、特徴抽出面１０３ａ〜ｃから近似符号化処理結果データ３０２ａ〜ｃを生成する計算式である。
【００７３】
【数１２】
2014203135.tif 000014
【００７４】
ｕ（ｘ，ｙ）：座標（ｘ，ｙ）での前階層の面の画素値
ｖ〜（ｘ，ｙ）：座標（ｘ，ｙ）での演算結果
ｋ：ｔａｎｈ関数の傾きを決定する係数
ここで、ｋはｔａｎｈ関数の傾きを決定する係数である。
【００７５】
図７は、ｔａｎｈ関数の係数と形状の関係を説明する図である。ｋの値が大きくなるにつれてｔａｎｈ関数の傾きは大きくなる。ｋの値をｋ＞＞１と設定することにより、ｔａｎｈ関数はステップ関数と近い特性を持つようになる。
【００７６】
なお、ｋの値があまりにも大きいと、ｔａｎｈ関数を微分した結果は、ｔ＝０付近では非常に大きな値となり、それ以外では０に近い値となる。これは学習処理において、ｔ＝０付近ではフィルタ係数は大きく更新され、それ以外ではフィルタ係数はほとんど更新されないことを意味する。その結果、学習が収束しにくくなるという問題が生じる。ただし、ｋの値を小さく設定すると、ｔａｎｈ関数とステップ関数との誤差が大きくなってしまう。なお、実験から、ｋ＝０．５〜４．０でより好適な結果が得られることが分かった。
【００７７】
＜３．データ処理装置の構成＞
図５は、第１実施形態におけるデータ処理装置の構成を示す図である。以下では、上述したＣＮＮのフィルタ係数の学習および決定したフィルタ係数に基づくパターン識別処理の双方を実行可能なデータ処理装置について説明する。
【００７８】
データ保存部５０１は、画像データを保持する部分であり、通常はハードディスク、フレキシブルディスク、光学記憶メディア（ＣＤ、ＤＶＤ）、半導体記憶メディア（各種規格のメモリーカード、ＵＳＢメモリ）等で構成される。データ保存部５０１には画像データの他にも、プログラムやその他のデータを保存することも可能である。あるいは、後述するＲＡＭ５０５の一部をデータ保存部５０１として用いるのであってもよい。またあるいは、後述する通信部５０２により接続した先の機器の記憶装置を、通信部５０２を介して利用するというように仮想的に構成するのであってもよい。
【００７９】
表示部５０７は、画像処理前、画像処理後の画像を表示、あるいはＧＵＩ等の画像を表示する装置で、一般的にはＣＲＴや液晶ディスプレイなどが用いられる。あるいは、ケーブル等で接続された装置外部のディスプレイ装置であっても構わない。
【００８０】
入力部５０６は、ユーザからの指示や、データを入力する装置で、キーボードやポインティング装置を含む。なお、ポインティング装置としては、マウス、トラックボール、トラックパッド、タブレット等が挙げられる。あるいは、データ処理装置を例えば公知のデジタルカメラ装置やプリンタなどの機器に適用する場合には、ボタンやダイヤル等で構成されるのであってもよい。また、キーボードをソフトウェアで構成（ソフトウェアキーボード）し、ボタンやダイヤル、あるいは先に挙げたポインティングデバイスを操作して文字を入力するように構成するのであってもよい。
【００８１】
また、あるいは公知のタッチスクリーン装置のように、表示部５０７と入力部５０６が同一装置であってもよい。その場合、タッチスクリーンによる入力を入力部５０６の入力として扱う。
【００８２】
５０３はＣＰＵであり、上述した各処理を実行すると共にデータ処理装置全体の動作を制御する。ＲＯＭ５０４とＲＡＭ５０５は、その処理に必要なプログラム、データ、作業領域などをＣＰＵ５０３に提供する。後述する処理に必要なプログラムがデータ保存部５０１に格納されている場合や、ＲＯＭ５０４に格納されている場合には、一旦ＲＡＭ５０５に読み込まれてから実行される。なお、図１においては、ＣＰＵが１つ（ＣＰＵ５０３）だけである構成だが、これを複数設けるような構成としてもよい。
【００８３】
通信部５０２は、機器間の通信を行うためのＩ／Ｆである。例えば、ＩＥＥＥ８０２．３シリーズ規格に代表される公知の有線ＬＡＮ規格、ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ１２８４、ＩＥＥＥ１３９４、電話回線などの有線による通信方式であってもよい。あるいは赤外線（ＩｒＤＡ）、ＩＥＥＥ８０２．１１シリーズ規格に代表される公知の無線ＬＡＮ規格、Bluetooth（登録商標）、ＵＷＢ（Ultra Wide Band）等の無線通信方式であってもよい。
【００８４】
なお、図５では入力部５０６、データ保存部５０１、表示部５０７が全て１つの装置内に含まれるような図を示しているが、それぞれが別体として構成されるようにしてもよい。その場合、各部は公知の通信方式により相互に通信可能に接続される。また、上記以外の追加の構成要素が存在してもよい。
【００８５】
＜４．データ処理装置の処理フロー＞
図６は、第１実施形態におけるデータ処理装置における各モードの動作を示すフローチャートである。以下では、ＣＰＵ５０３が各種プログラムを実行することにより以下のフローチャートに示す処理を実行する。
【００８６】
ステップＳ６０１では、動作モードを判定する。動作モードは、例えばユーザが入力部５０６を通して指定される。ここでは、動作モードとして、（ａ）学習モード、（ｂ）識別モード、（ｃ）登録データ作成モードの３種類あるものとする。以下では、各モードでのデータ処理装置の処理フローについて説明する。
【００８７】
＜４．１．（ａ）学習モード＞
学習モードは、学習を実行するための動作モードである。なお、学習に使用する顔画像は、学習処理に先立って以下の手順に従って作成され、対応する人物ＩＤと関連付けてデータ保存部５０１に保存されているものとする。まず、データ保存部５０１に保存されている画像データをＲＡＭ５０５に読み出す。次に、ＲＡＭ５０５にある画像データを８ｂｉｔ符号なし輝度画像に変換する。そして、公知の顔検出手法により顔領域を検出し、予め定めたサイズにリサイズした顔画像をデータ保存部５０１に保存する。好ましくは、目や鼻、口といった顔の器官位置を検出し、検出した器官位置に基づいて両目が水平に並び、かつ予め定められたサイズとなるように画像変換する。なお、器官位置の検出には、公知のActive Appearance Model、Active Shape Model等を用いることができる。
【００８８】
また、各種変動に対して頑健な特徴量となるように、顔画像は、パン・チルト方向の顔向き、表情、照明条件などについて様々な変動を含むことが望ましい。以上の処理は、ＣＰＵ５０３により処理してもよいし、あるいは同様の処理を外部装置により実行した結果を通信部５０２を介してデータ保存部５０１に保存してもよい。
【００８９】
ステップＳ６０２では、学習回数カウンタｐをｐ＝０に初期化する。ここで、学習回数カウンタｐは、ステップＳ６０３において学習の完了を判定するために使用する。
【００９０】
ステップＳ６０３では、予め指定した繰返し回数分の学習が完了したかどうかを判定する。ここでは、繰返し回数を予めＭ（Ｍは１以上の整数）回と設定しておく。ステップＳ６０３は、ｐ＜Ｍが成立するかどうかを判定する。成立しない場合は、学習が完了したと判定され、図６のフローチャートによる処理を終了する。一方、成立した場合は、学習は完了していないと判定され、ステップＳ６０４〜Ｓ６１１に進む。
【００９１】
ステップＳ６０４では、学習に使用する１枚目の顔画像をデータ保存部５０１からランダムに選択し、ＲＡＭ５０５に格納する。また、選択した顔画像に関連付けられている人物ＩＤをＲＡＭ５０５に格納する。
【００９２】
ステップＳ６０５では、ステップＳ６０４において選択した顔画像に対してＣＮＮ処理を実行してＣＮＮ処理結果データを生成する。ここでは、ＣＮＮのネットワーク構成及びフィルタ係数はＲＡＭ５０５に保存されているものとする。もしろん、データ保存部５０１や、ＲＯＭ５０４に格納されていてもよい。この場合、ＣＮＮのネットワーク構成及びフィルタ係数をいったんＲＡＭ５０５に読み込んでからＣＮＮ処理を実行する。
【００９３】
ＣＮＮのネットワーク構成及びフィルタ係数のＲＡＭ５０５への格納形式、ＣＮＮ処理を実行する際のＣＰＵ５０３動作についての詳細を順に説明する。
【００９４】
図１０は、ＣＮＮのネットワーク構成のメモリへの格納例を説明する図である。ここでは、３階層のＣＮＮネットワーク構成を示しているが、３階層に限るものではなく、一般的にはＬ階層（Ｌは１以上の整数）の構成である。ここでは、各階層の処理内容（”特徴抽出”もしくは”統合”）１００１、生成する面の数１００２、アドレス１００３という３種類のデータを１セットとして第１階層から順にＬ個並べたものをＲＡＭ５０５に保持する。また、アドレス１００３が示す位置において、前階層の各面と現階層の各面のすべての組み合わせについて、接続がある場合は○、接続がない場合は×とした２次元配列１００４ａ〜ｃを保持する。
【００９５】
図１２は、図１０に示したＣＮＮのネットワーク構成を視覚化した図である。なお、ＣＮＮのネットワーク構成のＲＡＭ５０５への格納方法は図１０に示した例に限らない。ＣＰＵ５０３が各階層における処理、各階層において生成する面の数、階層間の接続関係を識別可能な形式であれば任意のものであってよい。
【００９６】
図１１は、ＣＮＮのフィルタ係数のメモリへの格納例を説明する図である。ここでは、空間フィルタの大きさと係数を１次元配列としてＲＡＭ５０５に保持する。また、フィルタ係数の先頭アドレスを順に並べた１次元配列をＲＡＭ５０５に保持する。ここで、ＲＡＭ５０５には、すべての特徴抽出面を生成するために必要な空間フィルタを格納する。
【００９７】
例えば、図１０に示した例では、入力画像から第１階層の特徴抽出面を生成するために必要な３個の空間フィルタと、第２階層の統合面から第３階層の特徴抽出面を生成するために必要な９個の空間フィルタとを合わせた合計１２個の空間フィルタを保持する。なお、ここでは、第１階層の特徴抽出面を生成するために必要な空間フィルタ、第３階層の特徴抽出面を生成するために必要な空間フィルタの順にＲＡＭ５０５に保持するものとする。
【００９８】
なお、フィルタ係数には予め初期値が設定されているものとする。初期値は乱数であってもよいし、あるいは以前の学習により得られたフィルタ係数であってもよい。更に、Gabor Waveletフィルタ、Sobelフィルタ等の公知の空間フィルタの係数であってもよい。ＣＮＮのフィルタ係数のＲＡＭ５０５への格納方法は図１１に示した例に限らない。ＣＰＵ５０３が各空間フィルタの大きさ、係数を識別可能な形式であれば任意のものであってよい。
【００９９】
ＣＰＵ５０３は、アドレス１００３が示す位置に格納されている階層間の接続を表す２次元配列に従って前階層の各面に対して処理を実行する。ここで、各階層において読み込む接続関係の数は前階層の面の数（前階層が入力画像である場合は１）及び現階層の面の数により定められる。例えば、第３階層において読み込む接続関係の数は、前階層の面の数が３であり、現階層の面の数が４であるため、３×４＝１２となる。
【０１００】
ＣＰＵ５０３は、前階層の各面に対して処理内容１００１が示す処理を実行する。処理内容１００１が特徴抽出である場合、図１１に示した空間フィルタをＲＡＭ５０５読み込んで空間フィルタ処理を実行する。ｋ番目のフィルタ係数を読み込む際は、まず、アドレスｋ、アドレスｋ＋１の位置にそれぞれ格納されている空間フィルタの幅（width）、高さ（height）を読み込む。次に、width、heightの値を基に、アドレスｋ＋２の位置から順に空間フィルタ係数を読み込むことにより、width×heightの大きさの２次元の空間フィルタを作成する。一方、処理内容１００１が”統合”である場合、前述した統合処理を実行する。
【０１０１】
ステップＳ６０６では、ステップＳ６０５において生成したＣＮＮ処理結果データに対して、式（１２）に示したｔａｎｈ関数を用いた近似符号化処理を実行して近似符号化処理結果データを生成する。
【０１０２】
ステップＳ６０７では、学習に使用する２枚目の顔画像をデータ保存部５０１から選択し、ＲＡＭ５０５に格納する。ここで、２枚目の顔画像はステップＳ６０４において選択した１枚目の顔画像を除いた中からランダムに選択するものとする。また、選択した顔画像の人物ＩＤをＲＡＭ５０５に格納する。そして、１枚目の顔画像と同様に、ステップＳ６０５，Ｓ６０６の順にＣＮＮ処理、ｔａｎｈ関数を用いた近似符号化処理を実行して近似符号化処理結果データを生成する。
【０１０３】
ステップＳ６０８では、ステップＳ６０４及びＳ６０７において選択した２つの人物ＩＤが一致するかどうかを確認する。もし２つの人物ＩＤが一致すれば”０”、一致しなければ”１”というラベルを生成する。
【０１０４】
ステップＳ６０９では、２枚の顔画像から生成した近似符号化処理結果データと、ステップＳ６０８において生成したラベルを用いてＬｏｓｓを計算する。まず、２つの近似符号化処理結果データを用いて式（６）に従ってＬ１ノルムを生成する。次に、Ｌ１ノルムとラベルを用いて式（７）に従ってＬｏｓｓを計算する。
【０１０５】
ステップＳ６１０では、ステップＳ６０９において計算したＬｏｓｓを用いて、前述した誤差逆伝播法により、ＲＡＭ５０５に格納されているＣＮＮのフィルタ係数を更新する。そして、ステップＳ６１１では、学習回数カウンタｐをインクリメントしてステップＳ６０３に戻る。
【０１０６】
＜４．２．（ｂ）識別モード＞
識別モードは、信号処理結果を用いてパターン識別を実行するための動作モードである。パターン識別結果は、例えば、顔認証処理などに利用される。顔認証に使用する顔画像は、以下の手順に従って顔認証処理に先立ち作成され、ＲＡＭ５０５に保存されているものとする。まず、データ保存部５０１に保存されている画像データをＲＡＭ５０５に格納する。次に、ＲＡＭ５０５にある画像データを８ｂｉｔ符号なし輝度画像に変換する。そして、公知の顔検出手法により顔領域を検出し、予め定めたサイズにリサイズした顔画像をＲＡＭ５０５に保存する。このとき、顔認証の結果を表示するための情報として、検出された顔領域の元の画像における位置、大きさを顔画像に関連付けてＲＡＭ５０５に保存する。または、同様の処理を外部装置により実行した結果を通信部５０２を介してＲＡＭ５０５に保存してもよい。
【０１０７】
ステップＳ６１２では、読み込んだ顔画像に対して前処理を実行する。具体的には、公知のActive Appearance Model、Active Shape Model等を用いて、顔の器官位置を検出し、検出した器官位置に基づいて両目が水平に並び、かつ予め定められたサイズとなるように画像変換する。
【０１０８】
ステップＳ６０５では、上述の学習モードの場合と同様、前処理した顔画像に対してＣＮＮ処理を実行してＣＮＮ処理結果データを生成する。
【０１０９】
ステップＳ６１３では、ステップＳ６０５において生成したＣＮＮ処理結果データに対して、式（５）に示した増分符号化処理を実行する。すべての注目画素に対する増分符号を並べたベクトルを識別に使用する特徴量とする。
【０１１０】
ステップＳ６１４では、ステップＳ６１３において生成した特徴量の次元を削減する。特徴量から識別に効果的な情報のみを抽出するよう次元を削減することにより、後段の処理における計算量を少なくすることができる。次元削減は、公知のPrincipal Component AnalysisやLocality Preserving Projection等を用い、予め決定しておいた変換行列を用いて変換すれば良い。ここで、変換行列とは次元削減後のベクトル空間を規定する基底ベクトルを並べたものである。変換行列を用いて、特徴量を一列に並べた特徴ベクトルを、元の空間から基底ベクトルが規定する空間へと射影する。変換行列は、ＲＯＭ５０４やデータ保存部５０１にデータあるいはプログラムの一部として格納されており、予めＲＡＭ５０５に読み込んでおく。ＣＰＵ５０３はそれを参照しながら次元削減処理を実行する。
【０１１１】
ステップＳ６１５では、ステップＳ６１４で求めた次元削減の後の特徴量を用いて識別処理を実行する。ここでは、次元削減の後の特徴ベクトルのことを”射影ベクトル”と呼ぶ。識別処理では、射影ベクトルと登録データとを照合する。
【０１１２】
登録データとは、例えば登録ベクトルと対応する人物ＩＤとから成るデータのことである。なお、好ましくは名前やニックネーム等の文字列データを人物ＩＤに関連付けて記憶する。登録データはデータ保存部５０１に格納されており、顔認証処理に先立ってＲＡＭ５０５に読み込まれる。登録データの作成方法については後述する。
【０１１３】
識別処理では、射影ベクトルと登録ベクトルとの類似度と、予め指定した閾値を基に入力顔画像の人物ＩＤを決定する。ここで、類似度は、次元削減後の特徴空間におけるベクトル間のユークリッド距離として説明する。この場合、距離が小さいほど射影ベクトルと登録ベクトルは似たベクトルであると解釈できるので、距離が小さい登録ベクトル（の基となった画像）ほど入力顔画像に類似しているといえる。
【０１１４】
まず、射影ベクトルとすべての登録ベクトルとの距離を計算し、距離が小さい順に登録ベクトルをソートする。次に、射影ベクトルとソート後に先頭にある登録ベクトルとの距離（最小距離）と、予め設定した閾値とを比較する。
【０１１５】
最小距離が閾値以下である場合、入力顔画像の人物ＩＤは、ソート後に先頭にある登録ベクトルの人物ＩＤとする。一方、最小距離が閾値よりも大きい場合、入力画像の人物は登録されていないと判定する。この場合、例えば予めシステムで定めておいた非登録人物に対応するＩＤ値を入力顔画像の人物ＩＤとする。
【０１１６】
ステップＳ６１６では、Ｓ６１５により得られた人物ＩＤをＲＡＭ５０５に保存されている顔認証の結果を表示するための情報（顔領域の位置・サイズ）に関連付けて保存する。
【０１１７】
以上の処理を元の画像から検出されたすべての顔画像それぞれに対して実行する。すべての顔画像に対する顔認証処理が完了した場合、識別結果を出力する。識別結果出力の一例として、ＲＡＭ５０５に保存されている元画像、顔領域の位置・サイズ情報、顔領域の人物ＩＤを基に顔認証結果画像を作成し、表示部５０７に表示することが考えられる。
【０１１８】
図１３は、顔認証の結果画像の一例を示す図である。図１３の例では、各顔領域を矩形の枠で表示し、さらにその上部にその顔領域の人物ＩＤまたは関連付けた文字列を表示している。他の出力方法として、顔領域の位置・サイズ情報、顔領域の人物ＩＤなどを元画像と関連付けてデータ保存部５０１に保存する方法も考えられる。また、データ保存部５０１に保存するのではなく、通信部５０２を介して外部の機器に同様の情報を送信するよう構成しても良い。
【０１１９】
上述の説明では全ての顔画像について処理が終了した時に結果を出力するとしたが、顔画像１枚に対する処理が完了する度に上記出力処理を実行するように構成してもよい。また、ここでは、ステップＳ６１２において、顔画像中の両目が水平に並び、かつ予め定められたサイズとなるように画像変換するとした。識別精度を高めるためには、このような画像変換を行うことが好ましいが、速度向上やリソース削減を図る必要がある場合などには当該画像変換処理を省略してもよい。
【０１２０】
＜４．３．（ｃ）登録データ作成モード＞
登録データ作成モードは、信号処理結果を用いて顔認証において使用される基準パターンとなる登録データを作成するための動作モードである。ここで、登録データとは、登録ベクトルと、登録ベクトルに対応する人物ＩＤとから成るデータのことである。
【０１２１】
ステップＳ６１７では、登録データの作成に使用する顔画像を選択する。まず、データ保存部５０１に保存されている画像データをＲＡＭ５０５に格納する。次に、ＲＡＭ５０５にある画像データから、公知の顔検出手法により顔領域を検出し、検出された顔領域を矩形の枠で示した画像を表示部５０７に表示する。ユーザは、それらの顔領域の中から登録したい顔領域を入力部５０６を通して選択する。選択された顔領域の画像は、予め定めたサイズにリサイズし、ＲＡＭ５０５に保存する。登録したい顔領域が存在しなければ、次の画像を表示する指示を入力する。
【０１２２】
上述の識別モードで説明したステップＳ６１２〜Ｓ６１４と同様の処理を通して、選択した顔画像から次元削減後の特徴量を生成する。これを登録ベクトルとしてＲＡＭ５０５に保存する。
【０１２３】
ステップＳ６１８では、登録ベクトルと人物ＩＤを関連付け、データ保存部５０１に格納する。登録ベクトルと人物ＩＤを関連付ける手順を以下に説明する。
【０１２４】
まず、既にデータ保存部５０１に格納されている人物ＩＤもしくは人物ＩＤに関連付けられた文字列データを表示部５０７に表示する。好ましくは、データ保存部５０１には登録データと合わせて顔画像を保存しておき、人物ＩＤもしくは文字列データとともに顔画像を表示する。
【０１２５】
次に、その中でＳ６１７において選択した顔画像に該当すると思われる人物ＩＤもしくは文字列データをユーザが入力部５０６を介して指定する。そして、指定された人物ＩＤを登録ベクトルに関連付けてデータ保存部５０１に保存する。一方、該当する人物ＩＤもしくは文字列データが存在しなければ、その旨を入力部５０６を介して入力する。この場合、登録ベクトルに新たな人物ＩＤを関連付け、データ保存部５０１に保存する。
【０１２６】
以上説明したとおり、第１実施形態によれば、不連続関数（微分不可能な関数）を連続関数に近似して学習を行う。これにより、ＬＢＰや増分符号などの符号化処理を含む処理系に対し、ＣＮＮによる学習を行うことが可能となる。その結果、画像データ等からパターン識別に利用される特徴量をより好適に抽出可能とすることが可能となる。なお、第１実施形態では、３つのモード（学習モード、識別モード、登録データ作成モード）の処理を１つの装置で行うよう説明したが、それぞれを別体の複数の装置により行っても良い。
【０１２７】
（第２実施形態）
第２実施形態では、主要な処理をハードウェア回路を用いて構成する例について説明する。すなわち、第２実施形態においては、主要な処理をＡＳＩＣやＤＳＰなどのハードウェア回路である信号処理部１４０１で実行する点が主に異なる。
【０１２８】
＜データ処理装置の構成＞
図１４は、第２実施形態におけるデータ処理装置の構成を示す図である。なお、図５と同じ構成要素については同じ番号を付与し、ここでは説明を省略する。なお、以下では、第１実施形態と異なる部分についてのみ説明する。上述のように、第２実施形態では、主要な処理を信号処理部１４０１で実行し、ＣＰＵ５０３はもっぱら信号処理部１４０１の制御に用いられる。
【０１２９】
ＣＰＵ５０３は、まず、ユーザが入力部５０６を通して入力した動作モードを読み込む。ここで、動作モードとは信号処理部１４０１の動作を決める情報である。ここでは、動作モードとして”識別モード”と”学習モード”の２種類があるものとする。
【０１３０】
上述した第１実施形態と同様に、”識別モード”とは、入力画像に対して図１に示した信号処理を実行することにより、入力画像からパターン識別に使用する特徴量を抽出する動作モードである。一方、”学習モード”とは、図１に示した信号処理におけるＣＮＮのフィルタ係数を学習する動作モードである。
【０１３１】
ＣＰＵ５０３は、入力された動作モードに応じて信号処理部１４０１が必要とするデータをＲＡＭ５０５に格納する。動作モードとして”識別モード”が選択されている場合、ＣＰＵ５０３は、データ保存部５０１に保存されている画像データから、第１実施形態と同様に公知の顔検出手法により顔領域を検出する。さらに両目が水平に並びかつ予め定めたサイズに画像変換した顔画像をＲＡＭ５０５に格納する。一方、動作モードとして”学習モード”が選択されている場合、データ保存部５０１に格納されているすべての学習用の顔画像の中から、選択した２枚の顔画像と顔画像に関連付けられている人物ＩＤをＲＡＭ５０５に格納する。
【０１３２】
ＣＰＵ５０３は、必要なデータをＲＡＭ５０５に格納した後、選択された動作モードの情報を信号処理部１４０１に送信する。そして、信号処理部１４０１から処理が完了したことを示す信号を受信すると、次の動作モードの情報を読み込み、上述した処理を繰り返し実行する。
【０１３３】
＜信号処理部の構成＞
図１５は、第２実施形態における信号処理部の構成を示すブロック図である。信号処理部１４０１は、ユーザから受け付けた動作モードの指定に応じて処理経路を切り替える。これにより、特徴抽出処理と学習を同一の回路で実現する。以下では、信号処理部１４０１内の各ブロックについて図１５を参照して詳細に説明する。
【０１３４】
１５０８は顔画像、ＣＮＮのネットワーク構成、ＣＮＮのフィルタ係数、ｔａｎｈ符号化処理後の近似符号化処理結果データという４種類のデータを格納するメモリであり、公知のＲＡＭ，レジスタなどにより構成する。ここで、顔画像は、第１実施形態と同様に、両目が水平に並び、かつ予め定めたサイズに画像変換したものであるとする。また、ＣＮＮのネットワーク構成、ＣＮＮのフィルタ係数は、例えば、それぞれ第１実施形態の図１０、図１１で説明した形式により格納されるものとする。
【０１３５】
１５０１は制御部であり、信号処理部１４０１内の各ブロックの動作を制御する。制御部１５０１は、まず、ＣＮＮ処理部１５０２が使用するＣＮＮのネットワーク構成及びフィルタ係数をＲＡＭ５０５から読み込み、メモリ１５０８に格納する。そして、動作モードの指定をＣＰＵ５０３から受信するまで待機し、動作モードの指定を受信することをトリガとして、以下に説明する処理を開始する。
【０１３６】
・識別モード
制御部１５０１は、まず、スイッチ１５０３に対してＣＮＮ処理部１５０２の出力を増分符号化処理部１５０４に入力するように指示する信号を送信する。次に、特徴抽出の対象となる顔画像をＲＡＭ５０５から読み込み、メモリ１５０８に格納する。続いて、制御部１５０１はＣＮＮ処理部１５０２に、メモリ１５０８に格納した顔画像に対するＣＮＮ処理を実行するように指示する信号を送信する。
【０１３７】
増分符号化処理部１５０４から符号化処理結果データを受信すると、そのデータをＲＡＭ５０５に格納する。ここで、通信部５０２を介して外部のデータ処理装置に符号化処理結果データを送信するように構成してもよい。さらに、制御部１５０１は処理が完了したことを示す信号をＣＰＵ５０３に送信し、次の動作モードの指定を受信するまで待機する。
【０１３８】
信号処理回路を顔認証に適用する場合、ＲＡＭ５０５に格納した符号化処理結果データを特徴量として、ＣＰＵ５０３により次元削減処理、識別処理を実行するよう構成する。もちろん、次元削減処理、識別処理を合わせて信号処理部１４０１などのハードウェア回路として構成しても良い。
【０１３９】
・学習モード
制御部１５０１は、まず、スイッチ１５０３にＣＮＮ処理部１５０２の出力をｔａｎｈ符号化処理部１５０５に入力するように指示する信号を送信する。次に、ＲＡＭ５０５に格納されている２枚の学習用の顔画像を読み込み、メモリ１５０８に格納する。また、これらの顔画像に関連付けられている人物ＩＤも合わせて読み込む。
【０１４０】
制御部１５０１は、続いて、ＣＮＮ処理部１５０２に対してメモリ１５０８に格納した２枚の顔画像のうち、１枚目の顔画像に対するＣＮＮ処理を実行するように指示する信号を送信する。ｔａｎｈ符号化処理部１５０５から近似符号化処理が完了したことを示す信号を受信すると、２枚目の顔画像に対するＣＮＮ処理を実行するように指示する信号をＣＮＮ処理部１５０２に送信する。
【０１４１】
制御部１５０１は、ｔａｎｈ符号化処理部１５０５から２枚目の顔画像に対する近似符号化処理が完了したことを示す信号を受信すると、先だって受信した２つの人物ＩＤを比較する。そして、人物ＩＤが同じであれば”０”、異なるならば”１”というラベルを生成してＬｏｓｓ計算部１５０６に送信する。
【０１４２】
フィルタ係数更新部１５０７からフィルタ係数の更新が完了したことを示す信号を受信すると、更新後のフィルタ係数をメモリ１５０８から読み込み、ＲＡＭ５０５に格納する。そして、処理が完了したことを示す信号をＣＰＵ５０３に送信し、次の動作モードの指定を受信するまで待機する。
【０１４３】
再び、図１５に示された各部の説明に戻る。ＣＮＮ処理部１５０２は、制御部１５０１からの指示を受けて、メモリ１５０８に格納されているＣＮＮのネットワーク構成及びフィルタ係数を読み込む。そして、メモリ１５０８に格納された顔画像を参照して、ステップＳ６０５と同様のＣＮＮ処理を実行する。１枚の顔画像に対するＣＮＮ処理が完了すると、次の指示を受けるまで待機する。
【０１４４】
スイッチ１５０３は、制御部１５０１からの指示に応じて、ＣＮＮ処理部１５０２が生成したＣＮＮ処理結果データを増分符号化処理部１５０４もしくはｔａｎｈ符号化処理部１５０５のいずれかに振り分けるスイッチである。
【０１４５】
増分符号化処理部１５０４は、ＣＮＮ処理結果データに対して、第１実施形態におけるステップＳ６１３と同様の増分符号化処理を実行し、符号化処理結果データを制御部１５０１に送信する。
【０１４６】
ここでは、先に述べたように入力画像は予め定められたサイズに変換された顔画像である。また、ＣＮＮのネットワーク構成及び空間フィルタのサイズは予め定めておく。したがって、ＣＮＮ処理部１５０２が生成するＣＮＮ処理結果データのサイズは予め計算することが可能である。ここでは、増分符号化処理部１５０４は内部にレジスタ等を保持するよう構成し、制御部１５０１がそのレジスタにＣＮＮ出力結果データサイズに関する情報を予め設定しておくものとする。増分符号化処理部１５０４は、レジスタ等に保存したＣＮＮ処理結果データのサイズ分の画像に対する符号化処理が完了すると、符号化処理が完了したことを示す信号を制御部１５０１に送信する。
【０１４７】
ｔａｎｈ符号化処理部１５０５は、ＣＮＮ処理結果データに対して第１実施形態におけるステップＳ６０６と同様の近似符号化処理を実行し、近似符号化処理結果データをメモリ１５０８に格納する。ここでは、ｔａｎｈ符号化処理部１５０５はレジスタ等を保持しており、制御部１５０１はそこにＣＮＮ出力結果データサイズに関する情報を予め設定しておくものとする。ｔａｎｈ符号化処理部１５０５は、レジスタ等に保存したＣＮＮ処理結果データのサイズ分の画像に対する近似符号化処理が完了すると、近似符号化処理が完了したことを示す信号を制御部１５０１に送信する。
【０１４８】
Ｌｏｓｓ計算部１５０６は、制御部１５０１からラベル情報を受信すると、メモリ１５０８に格納されている近似符号化処理結果データとラベル情報とを用いて、第１実施形態におけるステップＳ６０９と同様のＬｏｓｓを計算する。そして、結果をフィルタ係数更新部１５０７に送信する。
【０１４９】
フィルタ係数更新部１５０７は、Ｌｏｓｓ計算部１５０６からＬｏｓｓを受信すると、第１実施形態におけるステップＳ６１０と同様に、メモリ１５０８に格納されているＣＮＮのフィルタ係数を更新する。フィルタ係数更新部１５０７は、フィルタ係数の更新が完了すると、更新完了を示す信号を制御部１５０１に送信する。なお、ここではメモリ１５０８が信号処理回路内に含まれるような構成を示したが、信号処理回路と接続した外部のＲＡＭ等を使用するように構成しても構わない。
【０１５０】
以上説明したように、第２実施形態では、図１に示す信号処理の主要部分をハードウェア回路として実現する例について説明した。信号処理の主要部分をハードウェア回路により構成することで一般に処理の高速化が達成される。なお、信号処理部１４０１の全てをハードウェア回路とする必要は無く、一部の処理についてはソフトウェア処理により実現しても良い。
【０１５１】
（第３実施形態）
第３実施形態では、学習処理とパターン識別処理を別体の機器で実行する信号処理システムについて説明する。図１６は、第３実施形態によるデータ処理システムの構成を示す図である。図１６に示したデータ処理システムでは、サーバ装置１６０１が学習処理を実行し、クライアント装置１６０２がパターン識別処理を実行するように構成されている。なお、サーバ装置１６０１は、好適には公知のクラウドコンピューティングのような分散処理システムにより構成するとよい。また、図１６では１台のクライアント装置のみを示しているが、１台のサーバ装置に対し複数のクライアント装置が接続される構成としても良い。
【０１５２】
＜システム内の各装置の構成＞
・サーバ装置
サーバ装置１６０１は、論理的には、図５に示したデータ処理装置の構成と同一の構成で良く、図６に示した処理を実行する。ただし、第３実施形態ではサーバ装置１６０１は学習処理のみを実行するため、識別モードや登録データ作成モードの処理を省略するよう構成しても構わない。なお、サーバ装置１６０１は、学習処理を行うため、ＣＮＮ処理部（第２の生成手段）を有する。
【０１５３】
サーバ装置１６０１は、自身の持つ通信部５０２を介してクライアント装置１６０２から学習処理のリクエスト信号を受信すると、第１実施形態におけるステップＳ６０２〜Ｓ６１１に示される学習処理を実行するよう構成する。
【０１５４】
ここで、学習処理のリクエスト信号にＣＮＮのフィルタ係数を含めるように構成することも可能である。この場合、受信したフィルタ係数をＲＡＭ５０５に格納し、そのフィルタ係数を初期値として学習処理を実行するように構成する。また、学習処理のリクエスト信号に人物ＩＤを含めるように構成することも可能である。この場合、人物ＩＤはサーバ装置１６０１とクライアント装置１６０２で共有しており、サーバ装置１６０１は受信した人物ＩＤの顔画像に対する識別精度が高くなるような学習処理を実行するように構成する。さらに、学習処理のリクエスト信号に顔画像を含めるように構成することも可能である。この場合、サーバ装置１６０１は受信した顔画像に対する識別精度が高くなるような学習処理を実行するように構成する。
【０１５５】
サーバ装置１６０１は、学習処理が完了すると学習後（更新後）のフィルタ係数を、通信部５０２を介してクライアント装置１６０２に送信する。
【０１５６】
なお、ここでは、サーバ装置１６０１は、クライアント装置１６０２からのリクエスト信号の受信をトリガに学習処理を行うよう説明したが、サーバ装置１６０１が自律的に学習処理を行うように構成してもよい。この場合、例えば最後の学習処理から一定の時間が経過したことをトリガとして学習処理を実行するように構成する。そして、学習処理が終了した時点で、サーバ装置１６０１がクライアント装置１６０２に対して通信を開始し、学習結果のフィルタ係数を送信するように構成すればよい。あるいは、クライアント装置１６０２がフィルタ係数を要求してきた場合に、サーバ装置１６０１が、その時点での最新のフィルタ係数を送信するように構成してもよい。
【０１５７】
・クライアント装置
図１７は、第３実施形態におけるクライアント装置の構成を示す図である。なお、図５と同じ構成要素については同じ番号を付与し、ここでは説明を省略する。１７０１は特徴抽出部であり、第１及び第２実施形態において説明した識別モードにおける処理と同様の処理を実行する。なお、クライアント装置１６０２は、識別処理を行うため、ＣＮＮ処理部（第１の生成手段）を有する。
【０１５８】
図１８は、第３実施形態における特徴抽出部の構成を示すブロック図である。図１５に示した信号処理部１４０１の構成に対し、特徴抽出部１７０１は学習モードにおける処理のために必要な構成要素を除いた構成となる。クライアント装置１６０２は、ＲＡＭ５０５に格納されている顔画像に対して特徴抽出部１７０１を用いて特徴抽出処理を実行し、生成された符号化処理結果データを用いてＣＰＵ５０３によりパターン識別処理を実行する。
【０１５９】
＜システムの処理フロー＞
ＣＮＮのフィルタ係数を更新する場合には、クライアント装置１６０２は、通信部５０２を介して、サーバ装置１６０１に学習処理のリクエスト信号を送信する。あるいは、クライアント装置１６０２内のＲＡＭ５０５に格納されているＣＮＮのフィルタ係数を送信する。またあるいは登録データに含まれる顔画像もしくは人物ＩＤを送信する。この場合、フィルタ係数もしくは顔画像もしくは人物ＩＤの送信を学習処理のリクエスト信号とするように構成してもよい。
【０１６０】
クライアント装置１６０２は、サーバ装置１６０１に学習処理のリクエスト信号を送信した後、サーバ装置１６０１からフィルタ係数を受信するまで待機するように構成すればよい。あるいは、フィルタ係数の受信を待機せず、更新前のＣＮＮのフィルタ係数を用いてパターン識別処理を継続するよう構成することもできる。この場合、例えば、学習処理が完了したタイミングなどで、サーバ装置１６０１がクライアント装置１６０２に対し通信を開始するように構成すればよい。あるいは、クライアント装置１６０２側でのユーザからの指示やタイマ割り込み等をトリガとして、クライアント装置１６０２がサーバ装置１６０１に学習処理が完了したかどうか問い合わせ、学習処理が完了していればフィルタ係数を受信するように構成してもよい。
【０１６１】
クライアント装置１６０２は、サーバ装置１６０１から通信部５０２を介して更新後のフィルタ係数を受信すると、更新後のフィルタ係数をＲＡＭ５０５に格納する。
【０１６２】
以上説明したように、第２実施形態では、クライアント装置における学習処理を省略し、サーバ装置において学習処理を実行することにより、クライアント装置における実装負荷（機器コストなど）を削減することができる。また、サーバ装置１６０１に複数のクライアント装置１６０２が接続するように構成した場合、サーバ装置１６０１で学習されたフィルタ係数を複数のクライアント間で容易に共有できるという利点がある。つまり、より効率的に学習が行われ、適切なフィルタをより速く決定することが可能となる。更に、パターン識別処理を実行する複数のクライアント装置間で同一のフィルタを共有することが出来、複数のクライアント装置間で同一のパターン識別結果を得ることが可能となる。
【０１６３】
（変形例）
上述の実施形態では、処理対象のデータとして２次元の画像データ（顔画像）に適用する例を想定して説明した。しかし、音声信号などの１次元のデータに対しても適用可能であり、また、３次元以上のデータに対しても同様に適用可能である。
【０１６４】
また、上述の実施形態では、ＣＮＮ処理結果データ内の注目画素と参照画素の比較結果に対する不連続関数処理としてステップ関数を使用する例について説明したが、ステップ関数に限るわけではなく、パルス関数を利用することも出来る。ステップ関数では、比較対象の２つの値の相対的な大小に応じて２値化（”０”又は”１”）する。それに対し、パルス関数では、比較対象の２つの値の差の絶対値に応じて２値化（”０”又は”１”）する。図１９は、不連続関数であるパルス関数と当該パルス関数を近似するガウス関数を示す図である。
【０１６５】
更に、上述の実施形態では、ＣＮＮ処理結果データ内の１つの注目画素と１つの参照画素のそれぞれの画素値を比較する例について説明したが、１つの画素の画素値に限定されない。例えば、１つの画素の画素値の代わりに（ｍ×ｍ）画素の領域内の画素値の平均値を使用するよう構成しても良い。
【０１６６】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014203135.tif 000015
【図２】
2014203135.tif 000016
【図３】
2014203135.tif 000017
【図４】
2014203135.tif 000018
【図５】
2014203135.tif 000019
【図６】
2014203135.tif 000020
【図７】
2014203135.tif 000021
【図８】
2014203135.tif 000022
【図９】
2014203135.tif 000023
【図１０】
2014203135.tif 000024
【図１１】
2014203135.tif 000025
【図１２】
2014203135.tif 000026
【図１３】
2014203135.tif 000027
【図１４】
2014203135.tif 000028
【図１５】
2014203135.tif 000029
【図１６】
2014203135.tif 000030
【図１７】
2014203135.tif 000031
【図１８】
2014203135.tif 000032
【図１９】
2014203135.tif 000033