(57)【要約】【課題】第１メモリに格納された画像を取得し正規化処理を実行して第２メモリに書き込む構成においてメモリの小型化、正確なメモリ書き込みを実現する。【解決手段】顔識別処理を行なう画像処理装置において、正規化前の顔画像を蓄える第１メモリ（ＳＲＡＭ１）の画像を取り出して正規化を実行して第２メモリ（ＳＲＡＭ２）に格納する処理を行なう構成において、正規化前の顔画像を蓄える第１メモリ（ＳＲＡＭ１）に顔全体を格納することなく、一部のみを格納する。さらに、第１メモリ（ＳＲＡＭ１）に格納された顔の傾きに応じて、第２メモリに対するデータ書き込み順としてのスキャンシーケンスを変更する。本構成により、小さなメモリの小型化、および正確な正規化画像の書き込みが実現される。【選択図】図１６
2008191817.tif 000002
【特許請求の範囲】
【請求項１】
入力顔画像の識別処理を行なう画像処理装置であって、
識別処理対象となる顔画像を入力し、入力顔画像に対して画像変換を実行し、予め定められた設定を持つ画像に正規化する処理を実行する画像変換部と、
前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出する類似度算出部と、
前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定する一致判定手段を備え、
前記画像変換部は、
正規化処理の対象とする顔画像を格納した第１メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第２メモリに格納する処理を実行する構成であり、
前記第１メモリは、正規化処理の対象とする顔画像の一部のみを格納し、前記第２メモリに対する正規化処理後の画像の書き込みの進行に応じて、前記第１メモリの格納データの更新処理を実行するメモリ制御部を有する構成であることを特徴とする画像処理装置。
【請求項２】
前記メモリ制御部は、
前記第２メモリの書き込みアドレスと、該書き込みアドレスに対応する前記第１メモリの対応画素位置の縦方向（Ｙ成分）を比較するアドレス比較部を有し、該アドレス比較部の比較情報に基づいて、前記第１メモリの対応画素位置が、前記前記第１メモリの格納データ中の縦（Ｙ）方向において、ほぼ中央となるように前記第１メモリの格納データの更新処理を実行する構成であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像変換部は、
正規化処理に際して実行する画像回転の角度情報を入力し、該角度情報に応じて前記第２メモリ書き込みアドレスに相当するカウンタ値を出力するカウンタを有し、
前記カウンタは、
異なる角度に応じた異なるカウンタ値を出力する複数のサブカウンタを有する構成であることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記サブカウンタの各々は、
画像回転の角度：θ＝ａｒｃｔａｎ（±１／ｎ）
ただしｎは整数、
上記角度に対応した第２メモリ書き込みアドレスに相当するカウンタ値を出力する構成であることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記画像変換部は、
前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出するための変換パラメータを算出する演算部と、
前記演算部の算出した変換パラメータに含まれる画像回転の角度情報を入力し、入力角度情報に応じて前記第２メモリ書き込みアドレスに相当するカウンタ値を異なるカウンタ値を出力するカウンタと、
前記演算部の算出した変換パラメータに基づいて、前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出する座標変換部と、
前記座標変換部の算出した対応点情報に従って、前記第２メモリの各画素位置に対応する画素値を決定する補間処理部と、
を有する構成であることを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記演算部は、
前記変換パラメータとして、前記第１メモリに格納された顔画像を前記第２メモリに格納する顔画像に変換する際に適用する画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを算出し、
前記座標変換部は、
画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを適用して、前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出する処理を実行する構成であることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
画像処理装置において、入力顔画像の識別処理を行なう画像処理方法であって、
画像変換部が、識別処理対象となる顔画像を入力し、入力顔画像に対して画像変換を実行し、予め定められた設定を持つ画像に正規化する処理を実行する画像変換ステップと、
類似度算出部が、前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出する類似度算出ステップと、
一致判定手段が、前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定する一致判定ステップを有し、
前記画像変換ステップは、
正規化処理の対象とする顔画像を格納した第１メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第２メモリに格納する処理を実行するステップと、
メモリ制御部が、前記第１メモリに正規化処理の対象とする顔画像の一部のみを格納し、前記第２メモリに対する正規化処理後の画像の書き込みの進行に応じて前記第１メモリの格納データの更新処理を実行するメモリ制御ステップを含むことを特徴とする画像処理方法。
【請求項８】
前記メモリ制御ステップは、
前記第２メモリの書き込みアドレスと、該書き込みアドレスに対応する前記第１メモリの対応画素位置の縦方向（Ｙ成分）を比較し、比較情報に基づいて前記第１メモリの対応画素位置が、前記前記第１メモリの格納データ中の縦（Ｙ）方向において、ほぼ中央となるように前記第１メモリの格納データの更新処理を実行することを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記画像変換部は、正規化処理に際して実行する画像回転の角度情報を入力し、該角度情報に応じて前記第２メモリ書き込みアドレスに相当するカウンタ値を出力するカウンタを有し、
前記カウンタは、異なる角度に応じた異なるカウンタ値を出力する複数のサブカウンタを含み、入力する角度情報に応じて適用するサブカウンタを選択して、選択されたサブカウンタのカウンタ値を出力することを特徴とする請求項７に記載の画像処理方法。
【請求項１０】
前記サブカウンタの各々は、
画像回転の角度：θ＝ａｒｃｔａｎ（±１／ｎ）
ただしｎは整数、
上記角度に対応した第２メモリ書き込みアドレスに相当するカウンタ値を出力することを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
前記画像変換部は、
演算部が、前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出するための変換パラメータを算出する演算ステップと、
カウンタが、前記演算ステップにおいて算出した変換パラメータに含まれる画像回転の角度情報を入力し、入力角度情報に応じて前記第２メモリ書き込みアドレスに相当するカウンタ値を異なるカウンタ値を出力するカウンタ値出力ステップと、
座標変換部が、前記演算ステップにおいて算出した変換パラメータに基づいて、前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出する座標変換ステップと、
補間処理部が、前記座標変換ステップにおいて算出した対応点情報に従って、前記第２メモリの各画素位置に対応する画素値を決定する補間処理ステップと、
を有することを特徴とする請求項７に記載の画像処理方法。
【請求項１２】
前記演算ステップは、
前記変換パラメータとして、前記第１メモリに格納された顔画像を前記第２メモリに格納する顔画像に変換する際に適用する画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを算出し、
前記座標変換ステップは、
画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを適用して、前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出する処理を実行することを特徴とする請求項１１に記載の画像処理方法。
【請求項１３】
画像処理装置において、入力顔画像の識別処理を行なわせるコンピュータ・プログラムであり、
画像変換部に、識別処理対象となる顔画像を入力させ、入力顔画像に対して画像変換を実行させて予め定められた設定を持つ画像に正規化する処理を実行させる画像変換ステップと、
類似度算出部に、前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出させる類似度算出ステップと、
一致判定手段に、前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定させる一致判定ステップを有し、
前記画像変換ステップは、
正規化処理の対象とする顔画像を格納した第１メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第２メモリに格納する処理を実行させるステップと、
メモリ制御部の制御により、前記第１メモリに正規化処理の対象とする顔画像の一部のみを格納させ、前記第２メモリに対する正規化処理後の画像の書き込みの進行に応じて、前記第１メモリの格納データの更新処理を実行させるメモリ制御ステップを含むことを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、および画像処理方法、並びにコンピュータ・プログラムに関する。さらに、詳細には、例えば撮影された画像データに含まれる顔画像の正規化処理を実行する画像処理装置、および画像処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
顔認識の技術は、ユーザに負担をかけない個人認証システムをはじめとして、性別の識別など、マンマシン・インターフェースに幅広く適用が可能である。初期は横顔を使った認識技術も検討されたが、現在は、正面画像の認識技術が中心となっている。
【０００３】
顔認識システムでは、ＣＣＤカメラなどによる撮像画像から顔の特徴情報に基づいて顔パターンを抽出する顔抽出処理と、抽出された顔パターンと登録顔画像との比較を行い、特定人物の顔であることを識別する顔識別処理を実行する。顔抽出処理や顔識別処理には、例えば、方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、顔画像の特徴量を抽出する「ガボア・フィルタリング（Ｇａｂｏｒ  Ｆｉｌｔｅｒｉｎｇ）」を適用することができる（例えば、特許文献１を参照のこと）。
【０００４】
人間の視覚細胞には、ある特定の方位に対して選択性を持つ細胞が存在することが既に判明されている。これは、垂直の線に対して反応する細胞と、水平の線に反応する細胞で構成される。ガボア・フィルタは、これと同様に、方向選択性を持つ複数のフィルタで構成される空間フィルタである。
【０００５】
ガボア・フィルタは、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。フィルタ窓の大きさは例えば２４×２４固定とする。また、周波数ｆを５種類、角度θを８方向とすると、４０種類のガボア・フィルタが構成される。
【０００６】
ガボア・フィルタの演算は、ガボア・フィルタを適用する画素とガボア・フィルタの係数との畳み込みである。ガボア・フィルタの係数は、周波数応答がコサイン関数からなる実部と周波数応答がサイン関数からなる虚部に分離することができ、それぞれに畳み込み演算を実施し、それぞれの成分を合成して１個のスカラ値からなるガボア・フィルタ結果を求めることができる。このような演算を、周波数ｆと角度θを切り替えながら最大４０種類のガボア・フィルタを適用し、得られた最大４０個のスカラ値の組を「ガボア・ジェット」と呼ぶ。顔画像データ上で水平方向及び垂直方向に一定間隔で検出される特徴量抽出位置毎に、局所特徴量としてガボア・ジェットが求められる。ガボア・ジェットは、特徴量抽出位置のある程度の位置のずれや変形に対して、不変であるという特徴を有している。
【０００７】
特定人物の顔であることを識別する顔識別処理では、抽出された顔パターンと登録顔画像との比較が行われる。登録顔画像に関しては、あらかじめ特徴量抽出位置毎のガボア・ジェットが算出されている。そして、同じ特徴量抽出位置における入力顔のガボア・ジェットと登録顔のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合である類似度ベクトルが求められる。続いて、サポート・ベクタ・マシーン（ＳＶＭ）によるクラス判定を行なって、入力顔画像と登録顔画像の認識を行なう。サポート・ベクタ・マシーンは、類似度ベクトルの境界面の値を、例えば、＋１又は−１と判定する境界面（値が０である位置の面）からの距離を算出し、ｉｎｔｒａ−ｐｅｒｓｏｎａｌ  ｃｌａｓｓ又はｅｘｔｒａ−ｐｅｒｓｏｎａｌ  ｃｌａｓｓのいずれに属するかを判断する。ｉｎｔｒａ−ｐｅｒｓｏｎａｌ  ｃｌａｓｓに属すると判断される類似度ベクトルが存在しない場合には、未登録の人物の顔が入力されたと判断される（例えば、非特許文献１を参照のこと）。また、１つのサポート・ベクタ・マシーンが多くの顔画像を学習（すなわち登録）することで、新たに入力された顔画像が登録されている（学習済みの）顔画像と一致するのか（ｉｎｔｒａ−ｐｅｒｓｏｎａｌ  ｃｌａｓｓに属するのか）、又は、一致しないのか（ｅｘｔｒａ−ｐｅｒｓｏｎａｌ  ｃｌａｓｓに属するのか）を判定することができる（例えば、特許文献２、特許文献３を参照のこと）。サポート・ベクタ・マシーンは、パターン認識の分野で最も学習汎化能力が高いと当業界では評価されている。
【０００８】
上述したように、顔認識システムでは、ＣＣＤカメラなどによる撮像画像から顔の特徴情報に基づいて顔パターンを抽出する顔抽出処理と、抽出された顔パターンと登録顔画像との比較を行い、特定人物の顔であることを識別する顔識別処理を実行するが、顔識別処理においては、登録画像との正確な比較処理が可能となるように、比較処理の前処理として、入力画像から抽出した顔画像に対してフィッティング（ｆｉｔｔｉｎｇ）処理が実行される。
【０００９】
フィッティング処理は、例えば第１のメモリに記録された顔画像を取り出して正規化処理を実行して第２のメモリに記録する処理として実行される。具体的には、例えば、第１のメモリ上の顔画像の両目位置検出を行い検出された両目位置情報から顔の大きさ、顔の位置、顔の角度を求め、第２のメモリの固定した座標に右目、左目の位置を合わせるように、第１のメモリの顔画像を縮小、シフト、回転変換して顔認識に必要な顔画像を第２のメモリ上に作成する処理をフィッティング処理として実行する。
【００１０】
上述のガボア・フィルタによる顔識別処理は、このフィッティング処理後の画像を適用することで正確な処理が実現される。すなわち、同じ特徴量抽出位置における入力顔のガボア・ジェットと登録顔のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合である類似度ベクトルを求め、サポート・ベクタ・マシーン（ＳＶＭ）によるクラス判定を行なって、入力顔画像と登録顔画像の照合に基づく顔識別を行なう。
【００１１】
上述したフィッティング処理としての正規化処理では、第１のメモリの顔画像に対する縮小、シフト、回転処理を伴う画像変換を実行して、実行結果を第２のメモリ上に作成する正規化処理を行なうが、この正規化（画像変換）処理に際しては、第１のメモリに顔画像全体を格納して、第２のメモリに書き込む画素の画素値を、第１のメモリに格納された正規化前のデータを参照して決定するという処理を行なうのが一般的である。
【００１２】
しかしながら、実際に、第２のメモリに書き込む画素の画素値の決定に必要となる参照データは、正規化前の顔画像全体のデータではなく、その一部のみである。従って、第１メモリに正規化前の顔画像データを格納する必然性はない。
【００１３】
【特許文献１】特開２００６−４０４１号公報
【特許文献２】特再ＷＯ０３／０１９４７５号公報
【特許文献３】特開２００６−４００３号公報
【非特許文献１】Ｂ．ｓｈｏｌｋｏｐｆ外著"Ａｄｖａｎｃｅ  ｉｎ  Ｋｅｒｎｅｌ  Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｌｅａｒｎｉｎｇ"（Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ、１９９９．）
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、このような状況に鑑みてなされたものであり、正規化（画像変換）処理に際して、第１のメモリに顔画像の全体データを格納せず一部の領域データを格納する構成としてメモリの小型化を実現し、さらに、小型化したメモリを利用して正確に正規化画像のメモリ書き込みを実現する画像処理装置、および画像処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の第１の側面は、
入力顔画像の識別処理を行なう画像処理装置であって、
識別処理対象となる顔画像を入力し、入力顔画像に対して画像変換を実行し、予め定められた設定を持つ画像に正規化する処理を実行する画像変換部と、
前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出する類似度算出部と、
前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定する一致判定手段を備え、
前記画像変換部は、
正規化処理の対象とする顔画像を格納した第１メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第２メモリに格納する処理を実行する構成であり、
前記第１メモリは、正規化処理の対象とする顔画像の一部のみを格納し、前記第２メモリに対する正規化処理後の画像の書き込みの進行に応じて、前記第１メモリの格納データの更新処理を実行するメモリ制御部を有する構成であることを特徴とする画像処理装置にある。
【００１６】
さらに、本発明の画像処理装置の一実施態様において、前記メモリ制御部は、前記第２メモリの書き込みアドレスと、該書き込みアドレスに対応する前記第１メモリの対応画素位置の縦方向（Ｙ成分）を比較するアドレス比較部を有し、該アドレス比較部の比較情報に基づいて、前記第１メモリの対応画素位置が、前記前記第１メモリの格納データ中の縦（Ｙ）方向において、ほぼ中央となるように前記第１メモリの格納データの更新処理を実行する構成であることを特徴とする。
【００１７】
さらに、本発明の画像処理装置の一実施態様において、前記画像変換部は、正規化処理に際して実行する画像回転の角度情報を入力し、該角度情報に応じて前記第２メモリ書き込みアドレスに相当するカウンタ値を出力するカウンタを有し、前記カウンタは、異なる角度に応じた異なるカウンタ値を出力する複数のサブカウンタを有する構成であることを特徴とする。
【００１８】
さらに、本発明の画像処理装置の一実施態様において、前記サブカウンタの各々は、
画像回転の角度：θ＝ａｒｃｔａｎ（±１／ｎ）
ただしｎは整数、
上記角度に対応した第２メモリ書き込みアドレスに相当するカウンタ値を出力する構成であることを特徴とする。
【００１９】
さらに、本発明の画像処理装置の一実施態様において、前記画像変換部は、前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出するための変換パラメータを算出する演算部と、前記演算部の算出した変換パラメータに含まれる画像回転の角度情報を入力し、入力角度情報に応じて前記第２メモリ書き込みアドレスに相当するカウンタ値を異なるカウンタ値を出力するカウンタと、前記演算部の算出した変換パラメータに基づいて、前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出する座標変換部と、前記座標変換部の算出した対応点情報に従って、前記第２メモリの各画素位置に対応する画素値を決定する補間処理部と、
を有する構成であることを特徴とする。
【００２０】
さらに、本発明の画像処理装置の一実施態様において、前記演算部は、前記変換パラメータとして、前記第１メモリに格納された顔画像を前記第２メモリに格納する顔画像に変換する際に適用する画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを算出し、前記座標変換部は、画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを適用して、前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出する処理を実行する構成であることを特徴とする。
【００２１】
さらに、本発明の第２の側面は、
画像処理装置において、入力顔画像の識別処理を行なう画像処理方法であって、
画像変換部が、識別処理対象となる顔画像を入力し、入力顔画像に対して画像変換を実行し、予め定められた設定を持つ画像に正規化する処理を実行する画像変換ステップと、
類似度算出部が、前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出する類似度算出ステップと、
一致判定手段が、前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定する一致判定ステップを有し、
前記画像変換ステップは、
正規化処理の対象とする顔画像を格納した第１メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第２メモリに格納する処理を実行するステップと、
メモリ制御部が、前記第１メモリに正規化処理の対象とする顔画像の一部のみを格納し、前記第２メモリに対する正規化処理後の画像の書き込みの進行に応じて前記第１メモリの格納データの更新処理を実行するメモリ制御ステップを含むことを特徴とする画像処理方法にある。
【００２２】
さらに、本発明の画像処理方法の一実施態様において、前記メモリ制御ステップは、前記第２メモリの書き込みアドレスと、該書き込みアドレスに対応する前記第１メモリの対応画素位置の縦方向（Ｙ成分）を比較し、比較情報に基づいて前記第１メモリの対応画素位置が、前記前記第１メモリの格納データ中の縦（Ｙ）方向において、ほぼ中央となるように前記第１メモリの格納データの更新処理を実行することを特徴とする。
【００２３】
さらに、本発明の画像処理方法の一実施態様において、前記画像変換部は、正規化処理に際して実行する画像回転の角度情報を入力し、該角度情報に応じて前記第２メモリ書き込みアドレスに相当するカウンタ値を出力するカウンタを有し、前記カウンタは、異なる角度に応じた異なるカウンタ値を出力する複数のサブカウンタを含み、入力する角度情報に応じて適用するサブカウンタを選択して、選択されたサブカウンタのカウンタ値を出力することを特徴とする。
【００２４】
さらに、本発明の画像処理方法の一実施態様において、前記サブカウンタの各々は、
画像回転の角度：θ＝ａｒｃｔａｎ（±１／ｎ）
ただしｎは整数、
上記角度に対応した第２メモリ書き込みアドレスに相当するカウンタ値を出力することを特徴とする。
【００２５】
さらに、本発明の画像処理方法の一実施態様において、前記画像変換部は、演算部が、前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出するための変換パラメータを算出する演算ステップと、カウンタが、前記演算ステップにおいて算出した変換パラメータに含まれる画像回転の角度情報を入力し、入力角度情報に応じて前記第２メモリ書き込みアドレスに相当するカウンタ値を異なるカウンタ値を出力するカウンタ値出力ステップと、座標変換部が、前記演算ステップにおいて算出した変換パラメータに基づいて、前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出する座標変換ステップと、補間処理部が、前記座標変換ステップにおいて算出した対応点情報に従って、前記第２メモリの各画素位置に対応する画素値を決定する補間処理ステップと有することを特徴とする。
【００２６】
さらに、本発明の画像処理方法の一実施態様において、前記演算ステップは、前記変換パラメータとして、前記第１メモリに格納された顔画像を前記第２メモリに格納する顔画像に変換する際に適用する画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを算出し、前記座標変換ステップは、画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを適用して、前記第２メモリの各画素位置に対応する前記第１メモリの対応点を算出する処理を実行することを特徴とする。
【００２７】
さらに、本発明の第３の側面は、
画像処理装置において、入力顔画像の識別処理を行なわせるコンピュータ・プログラムであり、
画像変換部に、識別処理対象となる顔画像を入力させ、入力顔画像に対して画像変換を実行させて予め定められた設定を持つ画像に正規化する処理を実行させる画像変換ステップと、
類似度算出部に、前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出させる類似度算出ステップと、
一致判定手段に、前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定させる一致判定ステップを有し、
前記画像変換ステップは、
正規化処理の対象とする顔画像を格納した第１メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第２メモリに格納する処理を実行させるステップと、
メモリ制御部の制御により、前記第１メモリに正規化処理の対象とする顔画像の一部のみを格納させ、前記第２メモリに対する正規化処理後の画像の書き込みの進行に応じて、前記第１メモリの格納データの更新処理を実行させるメモリ制御ステップを含むことを特徴とするコンピュータ・プログラムにある。
【００２８】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＤＶＤ、ＣＤ、ＭＯなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００２９】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００３０】
本発明の一実施例の構成によれば、顔識別処理を行なう画像処理装置において、正規化前の顔画像を蓄える第１メモリ（ＳＲＡＭ１）の画像を取り出して正規化を実行して第２メモリ（ＳＲＡＭ２）に格納する処理を行なう構成において、正規化前の顔画像を蓄える第１メモリ（ＳＲＡＭ１）に顔全体を格納することなく、一部のみを格納する構成としてメモリの小型化を実現し、さらに、第１メモリ（ＳＲＡＭ１）に格納された顔の傾きに応じて、第２メモリに対するデータ書き込み順としてのスキャンシーケンスを変更する構成としたので、メモリの小型化および正確な正規化画像の書き込み処理が実現される。
【発明を実施するための最良の形態】
【００３１】
以下、図面を参照しながら本発明の画像処理装置、および画像処理方法、並びにコンピュータ・プログラムの詳細について説明する。
【００３２】
顔認識システムにおいては、入力画像から顔画像を抽出する顔抽出処理と、抽出された顔画像と登録画像との照合を実行して、入力顔画像がどの登録画像に対応するかを識別する顔識別処理が実行されることは既に述べた通りである。ここでは、まず顔検出処理と顔識別処理について改めて定義しておく。
【００３３】
顔検出は、ある１枚の画像（１枚の写真や動画像の１ピクチャ（フィールド又はフレーム）に当たる）に対して、人物顔を検出しその位置と大きさを求める処理である。１枚の画において複数の顔が存在することがある。一方、顔識別とは検出されたある１個の顔が以前に登録された顔と同一人物かを識別することを言う。
【００３４】
図１には、本発明の一実施形態に係る顔認識システムの全体構成を模式的に示している。図示の顔認識システム１は、画縮小器１１と、顔検出器１２と、両目位置検出器１３と、顔識別器１４と、複数枚の画像を蓄えるメモリ（ＳＤＲＡＭ）１５で構成される。また、顔検出器１２と、両目位置検出器１３と、顔識別器１４内部にローカル・メモリ（ＳＲＡＭ）を備えている。本システム１への入力は画像であり、本システム１からの出力（Ｙｅｓ／Ｎｏ）は、入力顔画像と登録顔画像とが同一人物であるか否かを示すフラグである。
【００３５】
画縮小器１１では、入力画像に対し水平及び垂直の各方向にそれぞれ１／２にした縮小画像を作成し、原入力画像とともにＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）１５に格納する。図１に示す例では、入力画像を画１、入力画像に対し水平及び垂直方向にそれぞれ１／２にした縮小画像を画１／２、入力画像に対し水平及び垂直方向にそれぞれ１／４にした縮小画像を画１／４として、これら３枚の画像を作成して、ＳＤＲＡＭ１５に格納する。
【００３６】
縮小画像を作成する際、演算精度を考慮すると、入力画像から直接それぞれの縮小画像を作成する方法が望ましい。但し、ハードウェアの規模を考慮して、１／２縮小を順番に施す方法、つまり、始めに入力画像（画１）から画１／２を作成し、次に作成された画１／２から画１／４を作成する方法で実現するようにしてもよい。
【００３７】
顔検出器１２では、入力画像とＳＤＲＡＭ１５に格納されているすべての縮小画像に対して顔を検出し、検出された顔の大きさと顔の位置を求める。顔の位置の検出に関しては、画像全体を検出することで処理速度を考慮しなければ容易に実現可能である。一方、いろいろな大きさの顔の検出に関しては、画像の解像度と検出顔の大きさの相対関係の問題で、画像の解像度を固定にする方法（すなわち、入力画像に対していろいろな大きさの顔検出器を用意する方法）と、検出顔の大きさを固定にする方法（検出できる顔の大きさが固定された１つの顔検出器を用い、入力画像をいろいろな解像度に縮小して検出する方法）が考えられるが、後者の方法が現実的である。したがって、図１に示すように、顔検出器１２では、画縮小器１１で作成された画１、画１／２、画１／４の各縮小画像に対して、２４×２４画素内に顔が存在するか否かを識別する。
【００３８】
なお、縮小率の刻みが１／２、１／４では粗過ぎて精度が不十分である場合には、例えば画縮小器１１で画７／８、画６／８、画５／８の縮小率の画像をさらに作成し、顔検出器１２でそれぞれの縮小率の画像に対しても顔検出を行なうようにすれば良い。
【００３９】
顔検出の特徴抽出として２点画素差分方式を適用することができる。これは、２４×２４画素内において顔の特徴を抽出し易い２点の画素の差分をさまざまな２点で行なう方式である。また、識別器演算としてａｄａｂｏｏｓｔアルゴリズムを用いることができる。
【００４０】
両目位置検出器１３では、両目位置検出は、顔画像を顔認識するための準備として、顔検出器１２によって検出された顔に対して解像度を上げた画像の顔を正規化するために、左右の目の位置を特定する。すなわち、両目位置を検出して、顔検出によって得られた顔の大きさ、顔の位置から、その顔画像の解像度を上げた顔の大きさ、顔の位置、顔の角度を求める。
【００４１】
顔検出器１２では２４×２４画素の解像度で顔検出が行なわれ、顔識別器１４では６０×６６画素の解像度で顔認識が行なわれる。言い換えると、顔識別器１４に必要な解像度は、顔検出器１２のそれより精度を要求される。そこで、顔検出器で検出された顔が画１／２とすると、それよりも解像度の高い画１の同等の顔が存在する場所で且つ目が存在する顔の上部で左右の目を検出する。
【００４２】
両目位置検出の特徴抽出として２点画素差分方式を適用することができる。２点画素差分方式の適用範囲も２４×２４画素であり、顔検出器１２と同じであるので、顔検出器１２と同一のハードウェアで処理時間をシリアルにして実現することができる。
【００４３】
顔識別器１４では、両目位置検出器１３によって左右の目位置が特定された顔画像から顔の大きさ、位置、角度を求め、それらに応じて顔を正規化して６０×６６画素の内部のＳＲＡＭに一旦蓄えて、登録画像と一致するか否かを調べる。
【００４４】
顔識別器１４は、例えば顔認識の特徴抽出としてガボア・フィルタリングを適用する。また、識別器演算としてｇｅｎｔｌｅｂｏｏｓｔを用いる。正規化された顔画像にガボア・フィルタを適用して得られた結果と、以前に登録された画像にガボア・フィルタを適用して得られた結果との類似度を求める。そして、求められた類似度に対してｇｅｎｔｌｅｂｏｏｓｔを施すことによって、登録画と一致したか否か識別する。
【００４５】
図２には、顔識別器１４の構成例を示している。図示の顔識別器１４は、画像変換部１４１と、ガボア・フィルタ適用部１４２と、類似度算出部１４３と、一致判定部１４４を備えている。
【００４６】
画像変換部１４１は、初めに、両目位置検出で検出された両目位置情報に基づいて顔識別に必要である解像度に相当する顔画像を、ＳＤＲＡＭ１５から、顔識別器１４にローカルのＳＲＡＭ１に転送する。次いで、両目位置情報から顔の大きさ、顔の位置、顔の角度を求め、ＳＲＡＭ１にある顔画像の画像変換による正規化処理を実行して、顔識別処理に必要な顔画像を作成して、顔識別器１４に備えられたローカルメモリであるＳＲＡＭ２に格納する。
【００４７】
つまり、画像変換部１４１では、両目位置情報からＳＲＡＭ２の固定した座標に右目、左目の位置を合わせるように、ＳＲＡＭ１の顔画像に対する縮小、シフト、回転処理などの画像変換（正規化）を実行して顔認識に必要な顔画像をＳＲＡＭ２に作成するフィッティング処理を実行する。すなわち、図３に示すように、ＳＲＡＭ１にある顔画像の画像変換による正規化処理を実行してＳＲＡＭ２に格納する。
【００４８】
なお、本発明の装置においては、顔識別処理に際して重要となる目、鼻、口といった顔パーツの位置や形の誤差の発生を抑制した画像変換（正規化）処理を実行する。この処理については、後段で詳細に説明する。
【００４９】
ガボア・フィルタ適用部１４２は、画像変換部１４１において正規化された顔画像に対してガボア・フィルタを適用する。
【００５０】
ガボア・フィルタは、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。本実施形態では、フィルタ窓は、図４Ａに示すように２４×２４画素固定とする。そして、図４Ｂに示すような特定の周波数成分のサイン関数又はコサイン関数からなる応答関数にフィルタ窓をかけると、図４Ｃに示すようなガボア・フィルタを作成することができる。また、例えば、０度、２２．５度、４５度、６７．５度、９０度、１１２．５度、１３５度、１５７．５度と２２．５度ずつずらした８方向のサイン関数又はコサイン関数からなる応答関数に対してそれぞれフィルタ窓をかけると、図４Ｄに示すように８通りのガボア・フィルタを作成することができる。さらに、低周波域から高周波域に至る５種類の周波数ｆの応答関数について、同様に８方向の角度θでフィルタ窓をかけることで、図４Ｅに示すように合計で４０種類のガボア・フィルタが構成される。ガボア・フィルタ（ガボア・カーネルＫ（ｘ，ｙ））は、以下の演算式で表される。
【００５１】
【数１】
2008191817.tif 000003
【００５２】
ガボア・フィルタの演算は、ガボア・フィルタＧｉ（ｘ，ｙ）を適用する画素Ｉ（ｘ，ｙ）とガボア・フィルタの係数との畳み込みである。ガボア・フィルタの係数は、周波数応答がコサイン関数からなる実部Ｒｅ（ｘ，ｙ）と周波数応答がサイン関数Ｉｍ（ｘ，ｙ）からなる虚部に分離することができ、それぞれに畳み込み演算を実施し、それぞれの成分を合成して、１個のスカラ値からなるガボア・フィルタ結果Ｊｉ（ｘ，ｙ）を求めることができる。但し、（ｘ，ｙ）は特徴量抽出位置の画素位置を示し、ｉは上述した４０通りのガボア・フィルタのうちｉ番目であることを示す。
【００５３】
【数２】
2008191817.tif 000004
【００５４】
画像の特徴量抽出位置（ｘ，ｙ）において最大４０種類のガボア・フィルタを適用して得られた最大４０スカラ値の組｛Ｊ１，Ｊ２，…，Ｊ４０｝をガボア・ジェットと呼ぶ。
【００５５】
類似度算出部１４３は、入力画像について算出されたガボア・ジェットＧＳと登録画像のガボア・ジェットＧＲに正規化相関演算を行ない、特徴量抽出位置毎の類似度ｄを求める。
【００５６】
【数３】
2008191817.tif 000005
【００５７】
本実施形態では、正規化された６０×６６画素の顔画像のうち、特徴量が抽出し易い８２箇所の特徴量抽出位置（図５を参照のこと）において、正規化相関演算を行ない、類似度を求める。この結果、ｄ０、ｄ１、…、ｄ８１の８２箇所の各特徴量抽出位置で求められた正規化相関演算結果を要素とする類似度ベクトルＤが得られる。
【００５８】
【数４】
2008191817.tif 000006
【００５９】
なお、上記では「最大４０種類」のガボア・フィルタを適用することを記述したが、これは８２箇所のすべての特徴量抽出位置において４０種類すべてのガボア・フィルタを適用する必要はないことを意味する。何種類のガボア・フィルタを適用するかは、類似度を抽出する特徴量抽出位置の場所に依存し、場所に応じてガボア・フィルタの種類とその数（ガボア・ジェットの要素数）が異なる。
【００６０】
一致判定部１４４は、入力画と登録画間の類似度ベクトルに基づいて、両画像の一致を判定する。本実施形態では、識別器演算としてｇｅｎｔｌｅｂｏｏｓｔを用いる。ここでは、以下の演算式を用いてｇｅｎｔｌｅｂｏｏｓｔを算出する。但し、同式中のａ、ｑ、ｂは辞書としてあらかじめ登録されているものとする。
【００６１】
【数５】
2008191817.tif 000007
【００６２】
そして、以下の判別式に従って、入力画が登録画と一致するかどうかを判定する。
【００６３】
【数６】
2008191817.tif 000008
【００６４】
なお、本実施形態では、一致判定にｇｅｎｔｌｅｂｏｏｓｔを用いているが、例えば、サポート・ベクタ・マシーンを用いて類似ベクトルの境界面の値をクラス判定して、顔画像の一致を判定するようにしてもよい。
【００６５】
次に、図１に示す顔識別器１４における画像変換部１４１（図２参照）において実行する画像変換処理の詳細について説明する。先に図３を参照して説明したように、画像変換部１４１では、ＳＲＡＭ１に格納した顔画像を取り出して取り出した顔画像の両目位置情報からＳＲＡＭ２の固定した座標に右目、左目の位置を合わせるように、ＳＲＡＭ１の顔画像に対する縮小、シフト、回転処理などの画像変換（正規化）を実行して顔認識に必要な顔画像をＳＲＡＭ２に作成するフィッティング処理を実行する。本発明の装置においては、顔識別処理に際して重要となる目、鼻、口といった顔パーツの位置や形の誤差の発生を抑制した画像変換（正規化）処理を実行する。以下この画像変換処理の詳細について説明する。
【００６６】
顔識別器１４における画像変換部１４１は、まず、ＳＤＲＡＭ１５（図１参照）上にある画像の顔領域部分をＳＲＡＭ１（図２参照）に書き込む処理（ライト）を実行する。画像変換部１４１は、ＳＲＡＭ１（図２参照）に書き込んだ画像から顔画像領域を取り出してフィッティング処理としての画像変換を実行して、処理結果をＳＲＡＭ２に書き込む。フィッティング処理は、ＳＲＡＭ１の画像を正規化してＳＲＡＭ２に作成する処理である。本装置における正規化とは、顔画像の位置合わせ、回転、拡大縮小処理の少なくともいずれかの処理を含む画像変換処理である。      
【００６７】
図６を参照して、画像変換部１４１において実行する画像変換処理の詳細について説明する。図６は、画像変換部１４１の詳細構成を示す図である。画像変換部１４１の演算部２０３は、まず、ＳＤＲＡＭ２００上からＳＲＡＭ１，２０１に書き込まれた顔画像を読み取り、さらに目位置検出部２０２からＳＲＡＭ１，２０１に書き込まれた顔画像の左右目位置座標を入力する。
【００６８】
演算部２０３は、この座標データに基づいて、フィッティング処理として実行する画像変換に適用する顔画像の回転角度、倍率、原点位置を求める。さらに座標変換部２０５は、求めた角度・倍率・原点からＳＲＡＭ２，２５１の各々の画素がＳＲＡＭ１，２０１のどこの位置に相当するのかを小数精度で求める。例えば、図７に示すＳＲＡＭ２，２５１の画素（ｐ，ｑ）が、ＳＲＡＭ１，２０１のメモリ上の画素位置（ｍ，ｎ）を算出する。例えば図７に示すＳＲＡＭ２，２５１が６０×６６画素情報を格納するメモリである場合、６０×６６の画素中の顔領域に含まれる各画素位置に対応するＳＲＡＭ１，２０１のメモリ上の画素位置（ｍ，ｎ）を算出する。この場合、ＳＲＡＭ１，２０１のメモリ上の画素位置（ｍ．ｎ）のｍやｎは整数値とならない場合もあるが、演算部は、対応画素位置（ｍ，ｎ）について、整数部のみならず、小数部、例えば小数点以下２桁等の精度で対応画素位置（ｍ，ｎ）を算出する。
【００６９】
この座標変換部２０５の算出した対応画素位置情報に基づいて、図６に示す補間処理部２０７が、ＳＲＡＭ２，２５１の各々の画素の画素値を決定する。すなわち、座標変換部２０５の算出した対応画素位置情報において、ＳＲＡＭ２，２５１の画素（ｐ，ｑ）に対応するＳＲＡＭ１，２０１のメモリ上の画素位置（ｍ．ｎ）が整数値ｍ，ｎを持つ場合は、ＳＲＡＭ２，２５１の画素（ｐ，ｑ）の画素値は、対応するＳＲＡＭ１，２０１のメモリ上の画素位置（ｍ．ｎ）の画素値として設定するが、対応画素位置（ｍ，ｎ）のｍまたはｎの値が整数値とならず小数部を持つときは、対応画素位置（ｍ，ｎ）周囲のＳＲＡＭ１画素の画素値に基づく補間処理によって、ＳＲＡＭ２，２５１の画素（ｐ，ｑ）の画素値を決定する。
【００７０】
図６に示す画像変換部１４１の補間処理部２０７の実行する画素補間処理について、図８を参照して説明する。補間処理部２０７の実行する画素補間処理が、ｂｉ−ｌｉｎｅａｒ手法である場合、図８（ａ）に示すように、ＳＲＡＭ１，２０１上の対応画素位置（ｍ，ｎ）の周囲画素４点（ＳＲＡＭ１，２０１整数部座標）と周囲４画素までの距離（ＳＲＡＭ１小数部座標）を求める。また、補間処理部２０７の実行する画素補間処理が、ｂｉ−ｃｕｂｉｃ手法である場合は、図８（ｂ）に示すように、ＳＲＡＭ１，２０１上の対応画素位置（ｍ，ｎ）周りの画素１６点（ＳＲＡＭ１，２０１整数部座標）と周り１６画素までの距離（ＳＲＡＭ１小数部座標）を求める。
【００７１】
次に求めたＳＲＡＭ１，２０１における整数部座標の画素とＳＲＡＭ１，２０１における小数部座標データを適用して各画素値の寄与度としての重みを算出し、算出した重みに基づいてＳＲＡＭ２，２５１の対応画素（ｐ，ｑ）の画素値を算出して、ＳＲＡＭ２に記録（ライト）する画素値を算出する。
【００７２】
このようにして、ＳＲＡＭ１，２０１に格納された画像の各構成画素値に基づいて、ＳＲＡＭ２，２５１に格納する画像の画素値が決定されることになる。なお、先に説明したように、画像変換部１４１の演算部２０３は、まず、ＳＤＲＡＭ２００上からＳＲＡＭ１，２０１に書き込まれた顔画像を読み取り、さらに目位置検出部２０２からＳＲＡＭ１，２０１に書き込まれた顔画像の左右目位置座標を入力し、この座標データに基づいて、フィッティング処理として実行する画像変換に適用する顔画像の回転角度、倍率、原点位置を求める。さらに演算部２０３は、求めた角度・倍率・原点からＳＲＡＭ２，２５１の各々の画素がＳＲＡＭ１，２０１のどこの位置に相当するのかを小数精度で求める。
【００７３】
このフィッティング処理は、登録画像との照合処理をより正確に実行するための正規化処理として実行される画像変換処理である。この正規化処理（画像変換処理）について、以下説明する。演算部２０３は、はじめに正規化された顔画像を蓄えるＳＲＡＭ２，２５１の座標を定義する。
【００７４】
本実施例に従った正規化処理では、まず、正規化された顔画像を蓄積するＳＲＡＭ２，２５１上の左右の目の位置の座標を決定する。すなわち、左右の目の位置のＳＲＡＭ２，２５１の固定座標を決定する。具体的には、例えば、次のような処理によって、ＳＲＡＭ２，２５１の固定座標を割り当てる。
【００７５】
図９に示すように、正規化（画像変換処理）後の顔画像を格納するＳＲＡＭ２，２５１の顔画像格納領域の画素座標（ｘ，ｙ）とし、
横軸（Ｘ軸）：サイズ６０画素、ｘ＝−２９〜＋３０、
縦軸（Ｙ軸）：サイズ６６画素、ｙ＝−３９〜＋２６、
とした場合の処理例について説明する。
【００７６】
このようなＳＲＡＭ２，２５１の顔画像格納領域の座標において、右目位置の（ｘ，ｙ）座標を（−１１，０）、左目位置の（ｘ，ｙ）座標を（１１，０）に割り当てる。また原点の（ｘ，ｙ）座標を右目位置と左目位置の中心（０，０）とする。
【００７７】
次に、正規化前の顔画像を格納したＳＲＡＭ１，２０１の座標を割り当てる。ＳＲＡＭ１，２０１に格納する顔画像データは、図６に示すＳＤＲＡＭ２００に格納された顔画像に対応しており、まずＳＤＲＡＭ２００上での座標を考える。図６に示す目位置検出部２０２において、ＳＤＲＡＭ２００上での左右目位置情報が取得され、この情報が演算部２０３に入力される。なお、検出された左右目位置は、ＳＤＲＡＭの特定の画素に対応するとは限らない。さらに左右目位置の中心もＳＤＲＡＭ上に規定される特定の画素に対応するとは限らない。
【００７８】
つまり、正規化後の顔画像を格納するＳＲＡＭ２．２５１において設定する原点である左右の目の中心に対応するＳＤＲＡＭ上の原点（左右目の中心）座標は、ＳＤＲＡＭ上の特定の画素位置に対応するとは限らない。
ＳＤＲＡＭ上の原点（左右目の中心）座標を、
（ｏｒｇ＿ｄｒｘ，ｏｒｇ＿ｄｒｙ）
とする。
【００７９】
ＳＤＲＡＭ２００上の原点（左右目の中心）座標（ｏｒｇ＿ｄｒｘ，ｏｒｇ＿ｄｒｙ）
は、ＳＤＲＡＭ２００上のある画素（ｘ，ｙ）に対し次の範囲に存在する。
ｘ＜＝ｏｒｇ＿ｄｒｘ＜ｘ＋１
ｙ＜＝ｏｒｇ＿ｄｒｙ＜ｙ＋１
ＳＤＲＡＭ２００上の画素を切り出してＳＲＡＭ１，２０１に格納（ライト）するときは、ＳＤＲＡＭ２００上の画素（ｘ，ｙ）をＳＲＡＭ１，２０１の原点（０，０）に合わせる。
【００８０】
図１０に示すように、正規化（画像変換処理）前の顔画像を格納するＳＲＡＭ１，２０１の顔画像格納領域の画素座標（ｘ，ｙ）とし、
横軸（Ｘ軸）：サイズ１９２画素、ｘ＝−９５＋９６、
縦軸（Ｙ軸）サイズ１８０画素、ｙ＝−１０７〜＋７２、
とする。
【００８１】
この設定とすると、ＳＤＲＡＭ２００上の原点（左右目の中心）座標（ｏｒｇ＿ｄｒｘ，ｏｒｇ＿ｄｒｙ）に対応するＳＲＡＭ１，２０１上の原点位置（ｏｒｇ＿ｓ１ｘ，ｏｒｇ＿ｓ１ｙ）は、図１０に示すように次の範囲に存在する。
０＜＝ｏｒｇ＿ｓ１ｘ＜１
０＜＝ｏｒｇ＿ｓ１ｙ＜１
【００８２】
図１０に示すＳＲＡＭ１，２０１の原点領域の近傍を拡大した図を図１１に示す。ＳＲＡＭ２の原点に対応する図に示す［▲］は、ＳＲＡＭ１における座標系では、
０＜＝ｏｒｇ＿ｓ１ｘ＜１
０＜＝ｏｒｇ＿ｓ１ｙ＜１
の位置にある。ここで、
ｏｒｇ＿ｓ１ｘ＿ｉｎｔ：ＳＲＡＭ１の原点座標ｘの整数部、
ｏｒｇ＿ｓ１ｘ＿ｆｒｃ：ＳＲＡＭ１の原点座標ｘの小数部、
ｏｒｇ＿ｓ１ｙ＿ｉｎｔ：ＳＲＡＭ１の原点座標ｙの整数部、
ｏｒｇ＿ｓ１ｙ＿ｆｒｃ：ＳＲＡＭ１の原点座標ｙの小数部、
とすると、
ｏｒｇ＿ｓ１ｘ＿ｉｎｔ＝０、
ｏｒｇ＿ｓ１ｙ＿ｉｎｔ＝０、
となる。
【００８３】
このように、正規化（画像変換処理）後の画像を格納するＳＲＡＭ２，２５１における原点はＳＲＡＭ２座標系における原点（０，０）座標であるが、図１０、図１１を参照して説明したように、正規化（画像変換処理）前の画像を格納しているＳＲＡＭ１，２０１におけるこの原点の対応するＳＲＡＭ２座標系の座標位置は（０，０）とならず、
０＜＝ｏｒｇ＿ｓ１ｘ＜１
０＜＝ｏｒｇ＿ｓ１ｙ＜１
となる（ｏｒｇ＿ｓ１ｘ，ｏｒｇ＿ｓ１ｘ）となる。
【００８４】
従って、ＳＲＡＭ１，２０１に格納された顔画像を正規化（画像変換）してＳＲＡＭ２，２５１に格納する場合は、ＳＲＡＭ２，２５１の各座標がＳＲＡＭ１，２０１の座標系のどこに対応するかを求める処理が必要となる。
【００８５】
すなわち、ＳＲＡＭ１，２０１に記録された顔画像に対する正規化（画像変換）処理として、画像の縮小処理、回転処理、平行移動処理の少なくともいずれかの処理を実行してＳＲＡＭ２，２５１に正規化後画像を格納する場合、正規化後の画像格納メモリであるＳＲＡＭ２，２５１の各座標が、正規化前の画像格納メモリであるＳＲＡＭ１，２０１の座標系のどこに対応するかを求める処理が必要となる。図６に示す画像変換部１４１の演算部２０３では、対応を求めるために必要となる画像変換パラメータとしての回転角度、変換倍率、原点情報を求め、これらの変換パラメータを座標変換部２０５に出力する。
【００８６】
座標変換部２０５では、演算部２０３から入力するこれらの変換パラメータを適用して、ＳＲＡＭ２，２５１の座標各々に対応するＳＲＡＭ１，２０１の座標を算出する。なお、この処理に際して、座標変換部２０５は、図６に示す画像変換部１４１のアドレス作成部２０４から、ＳＤＲＡＭ２００やＳＲＡＭ１，２０１における顔画像格納領域の画素位置に対応するアドレスを受領して、対応画素位置算出を実行する。この算出結果が補間処理部２０７に出力され、補間処理部２０７では、先に図８を参照して説明したｂｉ−ｌｉｎｅａｒ手法、あるいはｂｉ−ｃｕｂｉｃ手法を適用した画素値補間処理を実行して、画素値を決定して、決定した画素値をＳＲＡＭ２，２５１の各座標位置に書き込む。
【００８７】
図１２を参照して、正規化処理において必要とする対応画素算出処理、すなわち、正規化後の画像格納メモリであるＳＲＡＭ２，２５１の各座標が、正規化前の画像格納メモリであるＳＲＡＭ１，２０１の座標系のどこに対応するかを求める処理の詳細について説明する。図１２には、入力画像を格納したＳＤＲＡＭ２００、ＳＤＲＡＭ２００に格納された顔画像領域を切り出して格納するＳＲＡＭ１，２０１、ＳＲＡＭ１，２０１に格納された顔画像の正規化（画像変換）処理を実行して、正規化（変換処理）後の画像を格納するＳＲＡＭ２，２５２のメモリ領域を示している。
【００８８】
ＳＤＲＡＭ２００、ＳＲＡＭ１，２０１、ＳＲＡＭ２，２５１のそれぞれのメモリ領域は、図１２に示すように、
ＳＤＲＡＭ：３２０×２４０画素
ＳＲＡＭ１：１９２×１８０画素
ＳＲＡＭ２：６０×６６画素
とする。
【００８９】
また、正規化処理後にＳＲＡＭ２，２５１に格納される顔画像における原点を、ＳＲＡＭ２，２５１に格納される顔画像の左右の目の中心位置として、この座標ＳＲＡＭ２座標系における原点（０，０）とする。ＳＲＡＭ２，２５１に格納される顔画像の左右の目の距離を［Ｐ］、例えば２２画素とする。
【００９０】
正規化前の画像を格納しているＳＲＡＭ１，２０１における顔画像の左目および右目座標、および左右目の中心である原点の座標を、図１２に示すように、
左目座標（ｌｅｘ，ｌｅｙ）、
右目座標（ｒｅｘ，ｒｅｙ）、
原点座標（ｃｅｘ，ｃｅｙ）、
とする。また、
左目座標（ｌｅｘ，ｌｅｙ）と右目座標（ｒｅｘ，ｒｅｙ）との距離を［ｃ］とし、
左目座標（ｌｅｘ，ｌｅｙ）と右目座標（ｒｅｘ，ｒｅｙ）とのｘ座標差分を［ａ］、
左目座標（ｌｅｘ，ｌｅｙ）と右目座標（ｒｅｘ，ｒｅｙ）とのｙ座標差分を［ｂ］、
とする。
ａ，ｂ，ｃは、図１２に示すＳＲＡＭ１，２０１内の直角三角形の辺の長さに相当し、
ｃ２＝ａ２＋ｂ２、
の関係を持つ。辺ａとｃのなす角をθとする。
【００９１】
ここで、正規化前の画像格納メモリであるＳＲＡＭ１，２０１の座標系、および、正規化後の画像格納メモリであるＳＲＡＭ２，２５１の座標系における（ｘ，ｙ）座標を以下のように定義する。
ｓ１ｘ：ＳＲＡＭ１座標系におけるｘ座標、
ｓ１ｙ：ＳＲＡＭ１座標系におけるｙ座標、
ｓ２ｘ：ＳＲＡＭ２座標系におけるｘ座標、
ｓ２ｙ：ＳＲＡＭ２座標系におけるｙ座標、
このように定義する。
【００９２】
座標変換部２０５では、正規化後の画像格納メモリであるＳＲＡＭ２の座標（ｓ２ｘ，ｓ２ｙ）の各々について以下の式（式１）に基づいて、正規化前の画像格納メモリであるＳＲＡＭ１，２０１の座標（ｓ１ｘ，ｓ１ｙ）を算出する。
ｓ１ｘ＝（ｃ／Ｐ）×（（ｓ２ｘ）×ｃｏｓθ＋ｓ２ｙ×ｓｉｎθ）＋（ｏｒｇ＿ｓ１ｘ＿ｆｒｃ）
＝（ａ×ｓ２ｘ＋ｂ×ｓ２ｙ）／Ｐ＋（ｏｒｇ＿ｓ１ｘ＿ｆｒｃ）
ｓ１ｙ＝（ｃ／Ｐ）×（（−ｓ２ｘ）×ｓｉｎθ＋ｓ２ｙ×ｃｏｓθ）＋（ｏｒｇ＿ｓ１ｙ＿ｆｒｃ）
＝（−ｂ×ｓ２ｘ＋ａ×ｓ２ｙ）／Ｐ＋（ｏｒｇ＿ｓ１ｙ＿ｆｒｃ）
・・・（式１）
【００９３】
なお、上記式（式１）において、
ａ＝（ｌｅｘ）−（ｒｅｘ）、
ｂ＝ｌｅｙ−ｒｅｙ、
ｃ＝√（ａ×ａ＋ｂ×ｂ）、
ｃｏｓθ＝ａ／ｃ、
ｓｉｎθ＝ｂ／ｃ、
である。
【００９４】
座標変換部２０５では、上記式（式１）を適用して、正規化後の画像格納メモリであるＳＲＡＭ２の座標（ｓ２ｘ，ｓ２ｙ）の各々について正規化前の画像格納メモリであるＳＲＡＭ１，２０１の座標（ｓ１ｘ，ｓ１ｙ）を算出する。
【００９５】
演算部２０３は、上記式（式１）において適用する変換パラメータとしての回転角度、変換倍率、原点情報を求め、これらの変換パラメータを座標変換部２０５に出力する。上記式（式１）において、
変換倍率（画像縮小処理パラメータ）：（ｃ／Ｐ）
回転角度（画像回転処理パラメータ）：θ、
原点情報（画像平行移動処理パラメータ）：（ｏｒｇ＿ｓ１ｘ＿ｆｒｃ，ｏｒｇ＿ｓ１ｙ＿ｆｒｃ）
である。
なお、原点情報（画像平行移動処理パラメータ）は、ＳＲＡＭ１座標系におけるＳＲＡＭ２における原点に対応する位置を示す情報（図１１参照）である。演算部２０３では、ＳＲＡＭ２，２５１の原点情報と、ＳＲＡＭ１，２０１に格納された顔画像情報とに基づいて、上記の各変換パラメータ：回転角度、変換倍率、原点情報を求め、これらの変換パラメータを座標変換部２０５に出力する。
【００９６】
座標変換部２０５は、カウンタ２０６から、ＳＲＡＭ２，２５１の各画素（ｓ２ｘ，ｓ２ｙ）のカウント値を入力して、１画素毎に、上記式（式１）を適用して、ＳＲＡＭ２，２５１の各画素（ｓ２ｘ，ｓ２ｙ）に対応するＳＲＡＭ１の画素位置（ｓ１ｘ，ｓ１ｙ）を算出する。
【００９７】
この算出結果が補間処理部２０７に出力され、補間処理部２０７では、先に図８を参照して説明したｂｉ−ｌｉｎｅａｒ手法、あるいはｂｉ−ｃｕｂｉｃ手法を適用した画素値補間処理を実行し画素値を決定して、決定した画素値がＳＲＡＭ２，２５１の各座標位置に書き込まれる。なお、カウンタ２０６から、ＳＲＡＭ２，２５１の各画素（ｓ２ｘ，ｓ２ｙ）のカウント値がＳＲＡＭ２の書き込みアドレスとして入力され、アドレス位置に従って、決定した画素値の書き込みが実行される。
【００９８】
補間処理部２０７における画素値の決定処理例の一例として、ｂｉ−ｌｉｎｅａｒ手法を適用した処理例について図１３を参照して説明する。図１３には、ＳＲＡＭ１座標系において、ＳＲＡＭ２のある１つの座標点（ｓ２ｘ，ｓ２ｙ）のＳＲＡＭ１座標系における対応点［★］３０１を示している。
【００９９】
対応点［★］３０１は、ＳＲＡＭ２の座標系では、特定の１つの座標点に対応せず、複数の座標点（ｅ，ｆ，ｇ，ｈ）に囲まれた位置にある。座標点Ｅ，Ｆ，Ｇ，Ｈの各々は、ＳＲＡＭ１座標の座標点であり、以下の座標を持つ。
Ｅ＝（ｓ１ｘ＿ｉｎｔ，ｓ１ｙ＿ｉｎｔ）
Ｆ＝（ｓ１ｘ＿ｉｎｔ＋１，ｓ１ｙ＿ｉｎｔ）
Ｇ＝（ｓ１ｘ＿ｉｎｔ，ｓ１ｙ＿ｉｎｔ＋１）
Ｈ＝（ｓ１ｘ＿ｉｎｔ＋１，ｓ１ｙ＿ｉｎｔ＋１）
【０１００】
これらの画素点Ｅ，Ｆ，Ｇ，Ｈには、それぞれ画素値が設定されている。ここで、画素点Ｅ，Ｆ，Ｇ，Ｈの各画素値をそれぞれｅ，ｆ，ｇ，ｈとする。このとき、補間処理部２０７は、ＳＲＡＭ２の座標点（ｓ２ｘ，ｓ２ｙ）に設定する画素値［Ｑ］を、ｂｉ−ｌｉｎｅａｒ手法を適用して以下の計算式（式２）によって算出する。
Ｑ＝［（１−ｓ１ｘ＿ｆｒｃ）×（１−ｓ１ｙ＿ｆｒｃ）×ｅ＋（ｓ１ｘ＿ｆｒｃ）×（１−ｓ１ｙ＿ｆｒｃ）×ｆ＋（１−ｓ１ｘ＿ｆｒｃ）×（ｓ１ｙ＿ｆｒｃ）×ｇ＋（ｓ１ｘ＿ｆｒｃ）×（ｓ１ｙ＿ｆｒｃ）×ｈ］／４
・・・（式２）
【０１０１】
上記式（式２）は、ｂｉ−ｌｉｎｅａｒ手法による画素値補間処理であり、先に図８（ａ）を参照して説明した処理に従った画素値決定処理である。すなわち、ＳＲＡＭ２の画素（ｓ２ｘ，ｓ２ｙ）に対応するＳＲＡＭ１上の対応画素位置［★］と、周囲画素４点（Ｅ，Ｆ，Ｇ，Ｈ）との距離（ＳＲＡＭ１小数部座標）を求め、求めた距離に基づいて、各画素値の寄与度としての重みを算出し、算出した重みに基づいてＳＲＡＭ２の画素（ｓ２ｘ，ｓ２ｙ）の画素値を算出する処理である。上記式によって、
決定した画素値がＳＲＡＭ２，２５１の各座標位置に書き込まれる。
【０１０２】
なお、前述したように、補間処理部２０７における画素値の決定処理手法としては、上述のｂｉ−ｌｉｎｅａｒ手法に限らず、ｂｉ−ｃｕｂｉｃ手法等の他の手法を適用してもよい。
【０１０３】
［正規化前の画像格納メモリ（ＳＲＡＭ１）のサイズ削減構成］
次に、正規化前の画像を格納するメモリであるＳＲＡＭ１のサイズの削減を実現した構成例について説明する。上述した実施例では、例えば、図１２を参照して説明したように正規化前の顔画像を格納するメモリであるＳＲＡＭ１，２０１は、ＳＤＲＡＭ２００に格納された顔画像の全体を一時的に格納する構成であり、顔画像全体を記録するためのデータ記憶容量が必要な構成である。
【０１０４】
図１２を参照して説明した例では、
ＳＤＲＡＭ２００、ＳＲＡＭ１，２０１、ＳＲＡＭ２，２５１のそれぞれのメモリ領域は、
ＳＤＲＡＭ：３２０×２４０画素
ＳＲＡＭ１：１９２×１８０画素
ＳＲＡＭ２：６０×６６画素
の画素値各の領域を有している構成として説明した。
【０１０５】
しかし、ＳＲＡＭ１の顔画像データを正規化（画像変換）して、ＳＲＡＭ２に格納する場合、ＳＲＡＭ２の構成画素について順番に１つずつ画素値を決定しながら、ＳＲＡＭ２に正規化後の画像書き込む処理を実行するものであり、例えばＳＲＡＭ２の１つの構成画素の画素値書き込み処理に際して必要となるデータは、ＳＲＡＭ１に格納された顔画像データの全体ではなく、その一部のみである。具体的には、例えば、上述したｂｉ−ｌｉｎｅａｒ手法による画素値補間処理を行なう場合は、上述の説明から明らかなように、ＳＲＡＭ２の画素位置（ｓ２ｘ，ｓ２ｙ）に対応するＳＲＡＭ１上の対応位置の周囲の４画素の画素値情報のみである。
【０１０６】
このように、ＳＲＡＭ２に対する正規化後の顔画像データの書き込みに必要となるデータはごく限られたデータである。以下では、この事実に鑑みて、正規化前の顔画像データを格納するメモリであるＳＲＡＭ１のサイズを削減した構成例について説明する。
【０１０７】
具体的な一実施例について図１４を参照して説明する。図１４に示すように正規化前の顔画像データを格納するＳＲＡＭ１を顔画像全体ではなく、その一部のみを記憶する設定とする。図の例では、
ＳＲＡＭ１：１９２×４８画素
のデータを記録するメモリとする。なお、例えば１画素当たり８ビットデータのデータ記憶を行なう構成とすると、図１４に示すメモリであるＳＲＡＭ１，４０１は、
ＳＲＡＭ１：１９２×４８画素×８ｂｉｔ
のデータ記憶容量とすればよい。
【０１０８】
ＳＲＡＭ１，４０１に格納する顔画像データは、ＳＲＡＭ２に対するデータ書き込み処理の進行に従って更新する。すなわち、図１５に示すように、ＳＲＡＭ１，４０１の格納データを更新する。具体的には、ＳＲＡＭ２に書き込み予定の画素、図１５に示す書き込み画素４５２に対応するＳＲＡＭ１上の画素位置をＳＲＡＭ１，４０１のメモリ領域の上下４８画素分のほぼ中央に設定するようにＳＲＡＭ１，４０１の格納データを更新する。
【０１０９】
顔画像全体を格納したＳＤＲＡＭからＳＲＡＭ１へのデータ転送制御を実行するメモリ制御部は、ＳＲＡＭ２，４５１の書き込み画素のアドレスに基づいて、ＳＲＡＭ１，４０１の対応画素位置が、ＳＲＡＭ１，４０１のメモリ領域の上下４８画素分のほぼ中央に設定されるようにＳＲＡＭ１，４０１の格納データを更新する。
【０１１０】
すなわち、メモリ制御部は、ＳＲＡＭ２，４５１の書き込み画素のアドレスと、ＳＲＡＭ１，４０１の対応画素位置の縦方向（Ｙ成分）を比較するアドレス比較部を有し、このアドレス比較情報に基づいて、ＳＤＲＡＭからＳＲＡＭ１へのデータ転送を実行する。メモリ制御部は、このような制御によって図１５に示すように、書き込み画素４５２に対応するＳＲＡＭ１上の画素位置をＳＲＡＭ１，４０１のメモリ領域の上下４８画素分のほぼ中央に設定するようにＳＲＡＭ１，４０１の格納データを更新する。このように、ＳＲＡＭ１，４０１は、逐次格納データが更新されるリングバッファ的な構成を持つ。
【０１１１】
このメモリ制御処理を実行する画像変換部１４１の構成および処理について、図１６以下を参照して説明する。図１６は、図１４、図１５を参照して説明したデータ記憶容量の少ない小型のメモリであるＳＲＡＭ１，４０１を持つ。ＳＲＡＭ１，４０１にはＳＤＲＡＭ２００に格納された顔画像データの一部のみが格納され、正規化（画像変換）処理と正規化後画像のＳＲＡＭ２，４５１への書き込み処理の進行に応じて、ＳＲＡＭ１，４０１の格納データが、図１５を参照して説明したように更新される。
【０１１２】
このＳＲＡＭ１，４０１へのデータ書き込み、すなわち、ＳＤＲＡＭ２００からのデータ読み出し、ＳＲＡＭ１，４０１へのデータ書き込み制御を実行するのが、図１６に示すメモリ制御部４２０であり、ＳＤＲＡＭ４０４のデータ読み出し用のアドレスを生成するＳＤＡＲＭアドレス作成部４０４、ＳＲＡＭ１，４０１のアクセス用アドレスを生成するＳＲＡＭ１アドレス作成部４０５、ＳＲＡＭ１，４０１の処理対象の画素位置を順次設定するカウンタ４０６、さらに前述したＳＲＡＭ２，４５１の書き込み画素のアドレスと、ＳＲＡＭ１，４０１の対応画素位置の縦方向（Ｙ成分）を比較するアドレス比較部４０７を有する。
【０１１３】
メモリ制御部４２０のアドレス比較部４０７は、ＳＲＡＭ２，４５１の書き込み画素のアドレスと、ＳＲＡＭ１，４０１の対応画素位置の縦方向（Ｙ成分）を比較し、アドレス比較情報に基づいて、ＳＤＲＡＭからＳＲＡＭ１へのデータ転送を実行して図１５に示すように、書き込み画素４５２に対応するＳＲＡＭ１上の画素位置をＳＲＡＭ１，４０１のメモリ領域の上下４８画素分のほぼ中央に設定するようにＳＲＡＭ１，４０１の格納データを更新する。
【０１１４】
ＳＲＡＭ２，４５１に対するデータ書き込み処理は、ＳＲＡＭ１，４０１に格納された一部の顔画像データを適用して実行される。この処理は、基本的には、先に説明した処理と同様であり、演算部４０３において正規化処理に適用する画像変換パラメータとして、
変換倍率（画像縮小処理パラメータ）、
回転角度（画像回転処理パラメータ）、
原点情報（画像平行移動処理パラメータ）、
これらの変換パラメータを算出して、これらの変換パラメータを座標変換部４０９に出力し、座標変換部４０９が、これらの変換パラメータを適用して、先に説明した式（式１）を適用して、ＳＲＡＭ１，４０１とＳＲＡＭ２，４５１との対応を求める。すなわち、座標変換部４０９では、正規化後の画像格納メモリであるＳＲＡＭ２の座標（ｓ２ｘ，ｓ２ｙ）の各々について以下の式（式１）に基づいて、正規化前の画像格納メモリであるＳＲＡＭ１，２０１の座標（ｓ１ｘ，ｓ１ｙ）を算出する。
ｓ１ｘ＝（ｃ／Ｐ）×（（ｓ２ｘ）×ｃｏｓθ＋ｓ２ｙ×ｓｉｎθ）＋（ｏｒｇ＿ｓ１ｘ＿ｆｒｃ）
＝（ａ×ｓ２ｘ＋ｂ×ｓ２ｙ）／Ｐ＋（ｏｒｇ＿ｓ１ｘ＿ｆｒｃ）
ｓ１ｙ＝（ｃ／Ｐ）×（（−ｓ２ｘ）×ｓｉｎθ＋ｓ２ｙ×ｃｏｓθ）＋（ｏｒｇ＿ｓ１ｙ＿ｆｒｃ）
＝（−ｂ×ｓ２ｘ＋ａ×ｓ２ｙ）／Ｐ＋（ｏｒｇ＿ｓ１ｙ＿ｆｒｃ）
【０１１５】
この算出結果が補間処理部４１０に出力され、補間処理部４１０では、先に図８を参照して説明したｂｉ−ｌｉｎｅａｒ手法、あるいはｂｉ−ｃｕｂｉｃ手法を適用した画素値補間処理を実行し画素値を決定して、決定した画素値がＳＲＡＭ２，２５１の各座標位置に書き込まれる。
【０１１６】
しかし、ＳＲＡＭ１，４０１に記録された一部の顔画像に基づく正規化処理結果をＳＲＡＭ２，４５１に書き込む場合、図１７（ａ）に示すように、ＳＲＡＭ１，４０１に格納された画像と、ＳＲＡＭ２，４５１に記録する画像が傾き角度のずれがなく一致していれば、ＳＲＡＭ２，４５１に書き込むラスタ順（６０ｘ６６  ｃｎｔ）にＳＲＡＭ２，４５１の書き込み画素を、順次設定して、画素値決定のために必要とする対応するＳＲＡＭ１，４０１の画素情報を取得することができる。
【０１１７】
しかし、実際には、ＳＲＡＭ１，４０１に格納される正規化前の画像は、撮影画像に基づいて記録され、図１７（ｂ）のように、ＳＲＡＭ１，４０１に格納される正規化前の画像は、ＳＲＡＭ２，４５１に記録する正規化後の画像と異なる傾きを持つことが多い。この場合、図１７（ａ）に示すようにＳＲＡＭ２，４５１に書き込むラスタ順（６０ｘ６６  ｃｎｔ）に処理を行なうと、ＳＲＡＭ１，４０１から対応画素位置が格納されている状態を維持するためには、絶えずＳＲＡＭ１，４０１の格納データの位置変更を行なうことが必要となり非効率的となる。
【０１１８】
これを解決するために、ＳＲＡＭ２，４５１に書き込むシーケンスを変更する。すなわち、ＳＲＡＭ１，４０１に格納された一部の画像データに応じて、ＳＲＡＭ２，４５１に対するデータ書き込みシーケンスを変更する。以下、この処理例について説明する。
【０１１９】
以下の処理例は、ＳＲＡＭ１，４０１とＳＲＡＭ２，４５１との顔画像の傾きの差、すなわち、顔画像の回転角に応じたスキャン順変更を行なう処理例である。複数の異なるスキャン順、すなわち、ＳＲＡＭ２，４５１に対するデータ書き込みを行なう画素順を変更可能とするための一つの構成としては、複数のスキャン順番を発生するＲＯＭ（６０ｘ６６アドレス）を使う構成がある。しかし、任意の角度に応じる構成とするためには、各角度に応じたスキャン順の登録情報が必要となり、このデータを記録するためのメモリサイズが膨大となるという問題がある。
【０１２０】
そこで、本実施例では、図１８に示すように、傾き角度に応じた異なるスキャン順情報を出力する限定された個数（実施例では５個）のカウンタを用意し、これらのカウンタを選択的に使用する。図１８に示すカウンタ４０８は、図１６に示す画像変換部１４１のカウンタ４０８の一実施構成例である。
【０１２１】
図１６に示すように、カウンタ４０８は、ＳＲＡＭ１，４０１のアドレスを読み出して、さらに、演算部４０３から角度情報、すなわち、正規化処理に際して実行する回転角度情報を入力して、ＳＲＡＭ２，４５１に対する書き込みアドレスを、順次、出力するカウンタである。演算部４０３から入力する角度情報は、正規化処理に適用する変換パラメータとしての回転処理パラメータであり、ＳＲＡＭ１，４０１に格納された顔画像と、ＳＲＡＭ２，４５１に書き込む顔画像の傾斜角の差分に相当する。
【０１２２】
図１８に示すように、カウンタ４０８は、５つのサブカウンタ５０１〜５０５と選択部５１１によって構成される。
第１サブカウンタは、傾斜角θ≒−２７度（ａｒｃｔａｎ（−１／２））、
第２サブカウンタは、傾斜角θ≒−１４度（ａｒｃｔａｎ（−１／４））、
第３サブカウンタは、傾斜角θ≒０度（ａｒｃｔａｎ（０））、
第４サブカウンタは、傾斜角θ≒＋１４度（ａｒｃｔａｎ（＋１／４））、
第５サブカウンタは、傾斜角θ≒＋２７度（ａｒｃｔａｎ（＋１／２））、
に対応したスキャン順情報をそれぞれ出力する。
傾斜角θは、正規化画像と、ＳＲＡＭ１，４０１に格納された画像との傾斜角である。選択部５１１は、演算部４０３から入力する角度情報に従って、これらの５つのカウンタ出力のいずれかを選択して出力する。出力情報は、ＳＲＡＭ２，４５１、座標変換部４０９に出力される。角度種類はｔａｎθ＝１／４，１／２，０，−１／４，−１／２となるθを選んだ設定である。この角度のスキャン順はカウンタに適した規則性があり小さい規模のロジックで実現可能である。
【０１２３】
実際には、ＳＲＡＭ１，４０１に格納される画像の傾斜角は様々であり、演算部４０３からカウンタ４０８に入力される角度情報は様々な値となる。本実施例では、例えば、図１９に示すように、これらの５つのカウンタを、ある一定の傾斜角度の領域毎に選択して利用する構成とする。図１９に示すように、
傾斜角θ＜−２１度：第１サブカウンタ（−２７度対応）、
−２１度≦傾斜角θ＜−７度：第２サブカウンタ（−１４度対応）、
−７度≦傾斜角θ＜＋７度：第３サブカウンタ（０度対応）、
＋７度≦傾斜角θ＜＋２１度：第４サブカウンタ（＋１４度対応）、
＋２１度≦傾斜角θ：第５サブカウンタ（＋２７度対応）、
このように、様々な傾斜角に応じて少ない数のカウンタで対応する。
【０１２４】
実際の各カウンタ出力に基づくスキャン順の設定例について、図２０〜図２４を参照して説明する。図２０〜図２４は、各カウンタ５０１〜５０５を選択して利用した場合のスキャン順、すなわちＳＲＡＭ２，４５１に対するデータ書き込み順を示している。
図２０は、第１サブカウンタ（−２７度対応）を利用した場合のスキャン順、
図２１は、第２サブカウンタ（−１４度対応）を利用した場合のスキャン順、
図２２は、第３サブカウンタ（０度対応）を利用した場合のスキャン順、
図２３は、第４サブカウンタ（＋１４度対応）を利用した場合のスキャン順、
図２４は、第５サブカウンタ（＋２７度対応）を利用した場合のスキャン順、
これらの各スキャン順を示している。
【０１２５】
図２０は、第１サブカウンタ（−２７度対応）を利用した場合のスキャン順である。第１サブカウンタ５０１は、図２０の（Ｂ）に示す（カウンタ出力アルゴリズム）に従って、スキャンする順番を示すカウンタ値を出力する。すなわち、（ｘ，ｙ）をＳＲＡＭ２，４５１に対するデータ書き込みアドレスとして、
ｃｘ：ｃｕｒｒｅｎｔ  ｘ，
ｃｙ：ｃｕｒｒｅｎｔ  ｙ，
ｎｘ：ｎｅｘｔ  ｘ，
ｎｙ：ｎｅｘｔ  ｙ，
とした場合、以下のカウンタ値出力アルゴリズムに従って、カウンタ値、すなわちスキャン順番の指定データを出力する。
ｃｘ＝０；ｃｙ＝０；
ｉｆ    （ｃｘ［０］！＝１）｛                −
ｎｙ＝ｃｙ；            ｎｘ＝ｃｘ＋１；
｝ｅｌｓｅ  ｉｆ  （ｃｙ＝＝０）  ｛        （１）
ｎｙ＝ｃｘ［５：１］＋１；ｎｘ＝０；
｝ｅｌｓｅ  ｉｆ  （ｃｘ＝＝５９）  ｛
ｉｆ（ｃｙ＜３６）｛                      （２）
ｎｙ＝ｃｙ＋３０；ｎｘ＝０；
｝ｅｌｓｅ｛                                  （３）
ｎｙ＝６５；    ｎｘ＝（ｃｙ‐３５）ｘ２；
｝
｝ｅｌｓｅ｛                                      ／
ｎｙ＝ｃｙ−１；ｎｘ＝ｃｘ＋１；
｝
【０１２６】
上記アルゴリズムに従ったカウンタ値出力によって、図２０（Ａ）の矢印の結線順に従ってスキャンが実行される。なお、（１），（２），（３）の領域に応じて、カウンタ値出力アルゴリズムの処理も（Ｂ）（カウンタ出力アルゴリズム）中の（１）〜（３）に示すように切り替えられる。
【０１２７】
図２１は、第２サブカウンタ（−１４度対応）を利用した場合のスキャン順である。第２サブカウンタ５０２は、図２１の（Ｂ）に示す（カウンタ出力アルゴリズム）に従って、スキャンする順番を示すカウンタ値を出力する。すなわち、（ｘ，ｙ）をＳＲＡＭ２，４５１に対するデータ書き込みアドレスとして、
ｃｘ：ｃｕｒｒｅｎｔ  ｘ，
ｃｙ：ｃｕｒｒｅｎｔ  ｙ，
ｎｘ：ｎｅｘｔ  ｘ，
ｎｙ：ｎｅｘｔ  ｙ，
とした場合、以下のカウンタ値出力アルゴリズムに従って、カウンタ値、すなわちスキャン順番の指定データを出力する。
ｃｘ＝０；ｃｙ＝０；
ｉｆ    （ｃｘ［１：０］！＝３）  ｛                −
ｎｙ＝ｃｙ；        ｎｘ＝ｃｘ＋１；
｝ｅｌｓｅ  ｉｆ  （ｃｙ＝＝０）  ｛              （１）
ｎｙ＝ｃｘ［５：２］＋１；ｎｘ＝０；
｝ｅｌｓｅ  ｉｆ（ｃｘ＝＝５９）  ｛
ｉｆ（ｃｙ＜５１）  ｛                          （２）
ｎｙ＝ｃｙ＋１５；ｎｘ＝０；
｝ｅｌｓｅ  ｛                                      （３）
ｎｙ＝６５；    ｎｘ＝（ｃｙ‐５０）ｘ４；
｝
｝  ｅｌｓｅ  ｛                                      ／
ｎｙ＝ｃｙ−１；ｎｘ＝ｃｘ＋１；
｝
【０１２８】
上記アルゴリズムに従ったカウンタ値出力によって、図２１（Ａ）の矢印の結線順に従ってスキャンが実行される。なお、（１），（２），（３）の領域に応じて、カウンタ値出力アルゴリズムの処理も（Ｂ）（カウンタ出力アルゴリズム）中の（１）〜（３）に示すように切り替えられる。
【０１２９】
図２２は、第３サブカウンタ（０度対応）を利用した場合のスキャン順である。第３サブカウンタ５０３は、図２２の（Ｂ）に示す（カウンタ出力アルゴリズム）に従って、スキャンする順番を示すカウンタ値を出力する。すなわち、（ｘ，ｙ）をＳＲＡＭ２，４５１に対するデータ書き込みアドレスとして、
ｃｘ：ｃｕｒｒｅｎｔ  ｘ，
ｃｙ：ｃｕｒｒｅｎｔ  ｙ，
ｎｘ：ｎｅｘｔ  ｘ，
ｎｙ：ｎｅｘｔ  ｙ，
とした場合、以下のカウンタ値出力アルゴリズムに従って、カウンタ値、すなわちスキャン順番の指定データを出力する。
ｃｘ＝０；ｃｙ＝０；
ｉｆ    （ｃｘ＝＝５９）｛
ｎｙ＝ｃｙ＋１；      ｎｘ＝０；
｝ｅｌｓｅ  ｛
ｎｙ＝ｃｙ；      ｎｘ＝ｃｘ＋１；
｝
【０１３０】
上記アルゴリズムに従ったカウンタ値出力によって、図２０（Ａ）の矢印の結線順に従ってスキャンが実行される。
【０１３１】
図２３は、第４サブカウンタ（＋１４度対応）を利用した場合のスキャン順である。第４サブカウンタ５０４は、図２３の（Ｂ）に示す（カウンタ出力アルゴリズム）に従って、スキャンする順番を示すカウンタ値を出力する。すなわち、（ｘ，ｙ）をＳＲＡＭ２，４５１に対するデータ書き込みアドレスとして、
ｃｘ：ｃｕｒｒｅｎｔ  ｘ，
ｃｙ：ｃｕｒｒｅｎｔ  ｙ，
ｎｘ：ｎｅｘｔ  ｘ，
ｎｙ：ｎｅｘｔ  ｙ，
とした場合、以下のカウンタ値出力アルゴリズムに従って、カウンタ値、すなわちスキャン順番の指定データを出力する。
ｃｘ＝５９；ｃｙ＝０；
ｉｆ      （ｃｘ［０］！＝０）  ｛                −
ｎｙ＝ｃｙ；        ｎｘ＝ｃｘ−１；
｝ｅｌｓｅ  ｉｆ  （ｃｙ＝＝０）  ｛            （１）
ｎｙ＝３０−ｃｘ［５：１］；  ｎｘ＝５９；
｝ｅｌｓｅ  ｉｆ  （ｃｘ＝＝０）  ｛
ｉｆ（ｃｙ＜３６）  ｛                      （２）
ｎｙ＝ｃｙ＋３０；ｎｘ＝５９；
｝ｅｌｓｅ  ｛                                  （３）
ｎｙ＝６５；    ｎｘ＝５９−（ｃｙ‐３５）ｘ２；
｝
｝ｅｌｓｅ  ｛                                    ￥
ｎｙ＝ｃｙ−１；ｎｘ＝ｃｘ−１；
｝
【０１３２】
上記アルゴリズムに従ったカウンタ値出力によって、図２３（Ａ）の矢印の結線順に従ってスキャンが実行される。なお、（１），（２），（３）の領域に応じて、カウンタ値出力アルゴリズムの処理も（Ｂ）（カウンタ出力アルゴリズム）中の（１）〜（３）に示すように切り替えられる。
【０１３３】
図２４は、第５サブカウンタ（＋２７度対応）を利用した場合のスキャン順である。第５サブカウンタ５０５は、図２４の（Ｂ）に示す（カウンタ出力アルゴリズム）に従って、スキャンする順番を示すカウンタ値を出力する。すなわち、（ｘ，ｙ）をＳＲＡＭ２，４５１に対するデータ書き込みアドレスとして、
ｃｘ：ｃｕｒｒｅｎｔ  ｘ，
ｃｙ：ｃｕｒｒｅｎｔ  ｙ，
ｎｘ：ｎｅｘｔ  ｘ，
ｎｙ：ｎｅｘｔ  ｙ，
とした場合、以下のカウンタ値出力アルゴリズムに従って、カウンタ値、すなわちスキャン順番の指定データを出力する。
ｃｘ＝５９；ｃｙ＝０；
ｉｆ      （ｃｘ［１：０］！＝０）  ｛            −
ｎｙ＝ｃｙ；      ｎｘ＝ｃｘ−１；
｝ｅｌｓｅ  ｉｆ  （ｃｙ＝＝０）  ｛            （１）
ｎｙ＝１５−ｃｘ［５：２］  ；ｎｘ＝５９；
｝ｅｌｓｅ  ｉｆ  （ｃｘ＝＝０）  ｛
ｉｆ（ｃｙ＜５１）  ｛                      （２）
ｎｙ＝ｃｙ＋１５；  ｎｘ＝５９；
｝ｅｌｓｅ  ｛                                  （３）
ｎｙ＝６５；  ｎｘ＝５９−（ｃｙ‐５０）ｘ４；
｝
｝  ｅｌｓｅ  ｛                                  ￥
ｎｙ＝ｃｙ−１；  ｎｘ＝ｃｘ−１；
｝
【０１３４】
上記アルゴリズムに従ったカウンタ値出力によって、図２４（Ａ）の矢印の結線順に従ってスキャンが実行される。なお、（１），（２），（３）の領域に応じて、カウンタ値出力アルゴリズムの処理も（Ｂ）（カウンタ出力アルゴリズム）中の（１）〜（３）に示すように切り替えられる。
【０１３５】
このように、図１６に示す画像変換部１４１のカウンタ４０８は、図１８を参照して説明したように、５つのカウンタ５０１〜５０５と選択部５１１によって構成され、
第１サブカウンタは、傾斜角θ≒−２７度（ａｒｃｔａｎ（−１／２））、
第２サブカウンタは、傾斜角θ≒−１４度（ａｒｃｔａｎ（−１／４））、
第３サブカウンタは、傾斜角θ≒０度（ａｒｃｔａｎ（０））、
第４サブカウンタは、傾斜角θ≒＋１４度（ａｒｃｔａｎ（＋１／４））、
第５サブカウンタは、傾斜角θ≒＋２７度（ａｒｃｔａｎ（＋１／２））、
に対応したスキャン順情報を、図２０〜図２４を参照して説明したアルゴリズムに従ってそれぞれ出力する。
【０１３６】
図１６に示すように、カウンタ４０８は、ＳＲＡＭ１，４０１のアドレスを読み出して、演算部４０３から角度情報、すなわち、正規化処理に際して実行する回転角度情報を入力して、ＳＲＡＭ２，４５１に対する書き込みアドレスを、順次、出力する。演算部４０３から角度情報に応じて、５つのカウンタのいずれかのカウンタを選択出力する構成としたので、構成を小型化することが可能であり、正規化後の画像のＳＲＡＭ２，４５１に対するデータ書き込みに際して、ＳＲＡＭ１，４０１の小さなメモリ領域を利用した処理が実現される。
【０１３７】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０１３８】
なお、本明細書では、顔認識装置に適用した実施形態を中心に説明してきたが、本発明の要旨はこれに限定されるものではない。顔画像データの変換を実行して、メモリに格納、あるいはディスプレイに出力する処理を行なう様々な画像処理装置において適用可能である。
【０１３９】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【産業上の利用可能性】
【０１４０】
本発明の一実施例の構成によれば、顔識別処理を行なう画像処理装置において、正規化前の顔画像を蓄える第１メモリ（ＳＲＡＭ１）の画像を取り出して正規化を実行して第２メモリ（ＳＲＡＭ２）に格納する処理を行なう構成において、正規化前の顔画像を蓄える第１メモリ（ＳＲＡＭ１）に顔全体を格納することなく、一部のみを格納する構成としてメモリの小型化を実現し、さらに、第１メモリ（ＳＲＡＭ１）に格納された顔の傾きに応じて、第２メモリに対するデータ書き込み順としてのスキャンシーケンスを変更する構成としたので、メモリの小型化および正確な正規化画像の書き込み処理が実現される。
【図面の簡単な説明】
【０１４１】
【図１】図１は、本発明の一実施形態に係る顔認識システムの全体構成を模式的に示した図である。
【図２】図２は、顔識別器１４の構成例を示した図である。
【図３】図３は、検出された顔画像を、縮小、シフト、回転変換して顔認識に必要な顔画像に正規化する様子を示した図である。
【図４Ａ】図４Ａは、２４×２４画素固定で構成されるガウス関数からなるフィルタ窓を示した図である。
【図４Ｂ】図４Ｂは、サイン関数又はコサイン関数からなる応答関数を示した図である。
【図４Ｃ】図４Ｃは、図４Ｂに示した応答関数に図４Ａに示したフィルタ窓をかけて得られるガボア・フィルタを示した図である。
【図４Ｄ】図４Ｄは、２２．５度ずつずらした８方向の応答関数についてそれぞれフィルタ窓をかけて得られる８通りのガボア・フィルタを示した図である。
【図４Ｅ】図４Ｅは、５種類の周波数ｆの応答関数について、同様に８方向の角度θでフィルタ窓をかけて得られる４０種類のガボア・フィルタを示した図である。
【図５】図５は、正規化された６０×６６画素の顔画像に設けられた８２箇所の特徴量抽出位置を示した図である。
【図６】図６は、画像変換部１４１において実行する画像変換処理の詳細について説明する図である。
【図７】図７は、ＳＲＡＭ２の画素位置二対応するＳＲＡＭ１の画素位置を求める処理について説明する図である。
【図８】図８は、画像変換部１４１の補間処理部２０７の実行する画素補間処理について説明する図である。
【図９】図９は、正規化（画像変換処理）後の顔画像を格納するＳＲＡＭ２，２５１の顔画像格納領域の画素の構成を示した図である。
【図１０】図１０は、正規化（画像変換処理）前の顔画像を格納するＳＲＡＭ１，２０１の顔画像格納領域の画素の構成を示した図である。
【図１１】図１１は、図１０に示すＳＲＡＭ１，２０１の原点領域の近傍を拡大した図である。
【図１２】図１２は、正規化処理において必要とする対応画素算出処理について説明する図である。
【図１３】図１３は、補間処理部２０７における画素値の決定処理例の一例として、ｂｉ−ｌｉｎｅａｒ手法を適用した処理例について説明する図である。
【図１４】図１４は、一部の顔画像データのみを格納するＳＲＡＭ１の構成例について説明する図である。
【図１５】図１５は、一部の顔画像データのみを格納するＳＲＡＭ１のデータ更新例について説明する図である。
【図１６】図１６は、一部の顔画像データのみを格納するＳＲＡＭ１を有する画像変換部の構成例について説明する図である。
【図１７】図１７は、正規化後の画像の書き込み順としてのスキャン順について説明する図である。
【図１８】図１８は、一部の顔画像データのみを格納するＳＲＡＭ１を有する画像変換部のカウンタ構成例について説明する図である。
【図１９】図１９は、一部の顔画像データのみを格納するＳＲＡＭ１を有する画像変換部のカウンタの利用例について説明する図である。
【図２０】図２０は、一部の顔画像データのみを格納するＳＲＡＭ１を有する画像変換部のカウンタを適用したスキャン例およびカウンタ値出力アルゴリズムについて説明する図である。
【図２１】図２１は、一部の顔画像データのみを格納するＳＲＡＭ１を有する画像変換部のカウンタを適用したスキャン例およびカウンタ値出力アルゴリズムについて説明する図である。
【図２２】図２２は、一部の顔画像データのみを格納するＳＲＡＭ１を有する画像変換部のカウンタを適用したスキャン例およびカウンタ値出力アルゴリズムについて説明する図である。
【図２３】図２３は、一部の顔画像データのみを格納するＳＲＡＭ１を有する画像変換部のカウンタを適用したスキャン例およびカウンタ値出力アルゴリズムについて説明する図である。
【図２４】図２４は、一部の顔画像データのみを格納するＳＲＡＭ１を有する画像変換部のカウンタを適用したスキャン例およびカウンタ値出力アルゴリズムについて説明する図である。
【符号の説明】
【０１４２】
１  顔認識システム
１１  画縮小器
１２  顔検出器
１３  両目位置検出器
１４  顔識別器
１５  メモリ
１４１  画像変換部
１４２  ガボア・フィルタ適用部
１４３  類似度算出部
１４４  一致判定部
２００  ＳＤＲＡＭ
２０１  ＳＲＡＭ１
２０２  目位置検出部
２０３  演算部
２０４  アドレス作成部
２０５  座標変換部
２０６  カウンタ
２０７  補間処理部
２５１  ＳＲＡＭ２
４０１  ＳＲＡＭ１
４０２  目位置検出部
４０３  演算部
４０４  ＳＤＲＡＭアドレス作成部
４０５  ＳＲＡＭ１アドレス作成部
４０６  カウンタ
４０７  アドレスＹ作成部
４０８  カウンタ
４０９  座標変換部
４１０  補間処理部
４５１  ＳＲＡＭ２
５０１〜５０５  カウンタ
５１１  選択部
【図１】
2008191817.tif 000009
【図２】
2008191817.tif 000010
【図３】
2008191817.tif 000011
【図５】
2008191817.tif 000012
【図６】
2008191817.tif 000013
【図９】
2008191817.tif 000014
【図１０】
2008191817.tif 000015
【図１１】
2008191817.tif 000016
【図１２】
2008191817.tif 000017
【図１３】
2008191817.tif 000018
【図１６】
2008191817.tif 000019
【図１７】
2008191817.tif 000020
【図１８】
2008191817.tif 000021
【図１９】
2008191817.tif 000022
【図２０】
2008191817.tif 000023
【図２１】
2008191817.tif 000024
【図２２】
2008191817.tif 000025
【図２３】
2008191817.tif 000026
【図２４】
2008191817.tif 000027
【図４Ａ】
2008191817.tif 000028
【図４Ｂ】
2008191817.tif 000029
【図４Ｃ】
2008191817.tif 000030
【図４Ｄ】
2008191817.tif 000031
【図４Ｅ】
2008191817.tif 000032
【図７】
2008191817.tif 000033
【図８】
2008191817.tif 000034
【図１４】
2008191817.tif 000035
【図１５】
2008191817.tif 000036