説明

画像処理装置、および画像処理方法、並びにコンピュータ・プログラム

【課題】第1メモリに格納された画像を取得し正規化処理を実行して第2メモリに書き込む構成においてメモリの小型化、正確なメモリ書き込みを実現する。
【解決手段】顔識別処理を行なう画像処理装置において、正規化前の顔画像を蓄える第1メモリ(SRAM1)の画像を取り出して正規化を実行して第2メモリ(SRAM2)に格納する処理を行なう構成において、正規化前の顔画像を蓄える第1メモリ(SRAM1)に顔全体を格納することなく、一部のみを格納する。さらに、第1メモリ(SRAM1)に格納された顔の傾きに応じて、第2メモリに対するデータ書き込み順としてのスキャンシーケンスを変更する。本構成により、小さなメモリの小型化、および正確な正規化画像の書き込みが実現される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、および画像処理方法、並びにコンピュータ・プログラムに関する。さらに、詳細には、例えば撮影された画像データに含まれる顔画像の正規化処理を実行する画像処理装置、および画像処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【0002】
顔認識の技術は、ユーザに負担をかけない個人認証システムをはじめとして、性別の識別など、マンマシン・インターフェースに幅広く適用が可能である。初期は横顔を使った認識技術も検討されたが、現在は、正面画像の認識技術が中心となっている。
【0003】
顔認識システムでは、CCDカメラなどによる撮像画像から顔の特徴情報に基づいて顔パターンを抽出する顔抽出処理と、抽出された顔パターンと登録顔画像との比較を行い、特定人物の顔であることを識別する顔識別処理を実行する。顔抽出処理や顔識別処理には、例えば、方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、顔画像の特徴量を抽出する「ガボア・フィルタリング(Gabor Filtering)」を適用することができる(例えば、特許文献1を参照のこと)。
【0004】
人間の視覚細胞には、ある特定の方位に対して選択性を持つ細胞が存在することが既に判明されている。これは、垂直の線に対して反応する細胞と、水平の線に反応する細胞で構成される。ガボア・フィルタは、これと同様に、方向選択性を持つ複数のフィルタで構成される空間フィルタである。
【0005】
ガボア・フィルタは、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。フィルタ窓の大きさは例えば24×24固定とする。また、周波数fを5種類、角度θを8方向とすると、40種類のガボア・フィルタが構成される。
【0006】
ガボア・フィルタの演算は、ガボア・フィルタを適用する画素とガボア・フィルタの係数との畳み込みである。ガボア・フィルタの係数は、周波数応答がコサイン関数からなる実部と周波数応答がサイン関数からなる虚部に分離することができ、それぞれに畳み込み演算を実施し、それぞれの成分を合成して1個のスカラ値からなるガボア・フィルタ結果を求めることができる。このような演算を、周波数fと角度θを切り替えながら最大40種類のガボア・フィルタを適用し、得られた最大40個のスカラ値の組を「ガボア・ジェット」と呼ぶ。顔画像データ上で水平方向及び垂直方向に一定間隔で検出される特徴量抽出位置毎に、局所特徴量としてガボア・ジェットが求められる。ガボア・ジェットは、特徴量抽出位置のある程度の位置のずれや変形に対して、不変であるという特徴を有している。
【0007】
特定人物の顔であることを識別する顔識別処理では、抽出された顔パターンと登録顔画像との比較が行われる。登録顔画像に関しては、あらかじめ特徴量抽出位置毎のガボア・ジェットが算出されている。そして、同じ特徴量抽出位置における入力顔のガボア・ジェットと登録顔のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合である類似度ベクトルが求められる。続いて、サポート・ベクタ・マシーン(SVM)によるクラス判定を行なって、入力顔画像と登録顔画像の認識を行なう。サポート・ベクタ・マシーンは、類似度ベクトルの境界面の値を、例えば、+1又は−1と判定する境界面(値が0である位置の面)からの距離を算出し、intra−personal class又はextra−personal classのいずれに属するかを判断する。intra−personal classに属すると判断される類似度ベクトルが存在しない場合には、未登録の人物の顔が入力されたと判断される(例えば、非特許文献1を参照のこと)。また、1つのサポート・ベクタ・マシーンが多くの顔画像を学習(すなわち登録)することで、新たに入力された顔画像が登録されている(学習済みの)顔画像と一致するのか(intra−personal classに属するのか)、又は、一致しないのか(extra−personal classに属するのか)を判定することができる(例えば、特許文献2、特許文献3を参照のこと)。サポート・ベクタ・マシーンは、パターン認識の分野で最も学習汎化能力が高いと当業界では評価されている。
【0008】
上述したように、顔認識システムでは、CCDカメラなどによる撮像画像から顔の特徴情報に基づいて顔パターンを抽出する顔抽出処理と、抽出された顔パターンと登録顔画像との比較を行い、特定人物の顔であることを識別する顔識別処理を実行するが、顔識別処理においては、登録画像との正確な比較処理が可能となるように、比較処理の前処理として、入力画像から抽出した顔画像に対してフィッティング(fitting)処理が実行される。
【0009】
フィッティング処理は、例えば第1のメモリに記録された顔画像を取り出して正規化処理を実行して第2のメモリに記録する処理として実行される。具体的には、例えば、第1のメモリ上の顔画像の両目位置検出を行い検出された両目位置情報から顔の大きさ、顔の位置、顔の角度を求め、第2のメモリの固定した座標に右目、左目の位置を合わせるように、第1のメモリの顔画像を縮小、シフト、回転変換して顔認識に必要な顔画像を第2のメモリ上に作成する処理をフィッティング処理として実行する。
【0010】
上述のガボア・フィルタによる顔識別処理は、このフィッティング処理後の画像を適用することで正確な処理が実現される。すなわち、同じ特徴量抽出位置における入力顔のガボア・ジェットと登録顔のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合である類似度ベクトルを求め、サポート・ベクタ・マシーン(SVM)によるクラス判定を行なって、入力顔画像と登録顔画像の照合に基づく顔識別を行なう。
【0011】
上述したフィッティング処理としての正規化処理では、第1のメモリの顔画像に対する縮小、シフト、回転処理を伴う画像変換を実行して、実行結果を第2のメモリ上に作成する正規化処理を行なうが、この正規化(画像変換)処理に際しては、第1のメモリに顔画像全体を格納して、第2のメモリに書き込む画素の画素値を、第1のメモリに格納された正規化前のデータを参照して決定するという処理を行なうのが一般的である。
【0012】
しかしながら、実際に、第2のメモリに書き込む画素の画素値の決定に必要となる参照データは、正規化前の顔画像全体のデータではなく、その一部のみである。従って、第1メモリに正規化前の顔画像データを格納する必然性はない。
【0013】
【特許文献1】特開2006−4041号公報
【特許文献2】特再WO03/019475号公報
【特許文献3】特開2006−4003号公報
【非特許文献1】B.sholkopf外著"Advance in Kernel Support Vector Learning"(The MIT Press、1999.)
【発明の開示】
【発明が解決しようとする課題】
【0014】
本発明は、このような状況に鑑みてなされたものであり、正規化(画像変換)処理に際して、第1のメモリに顔画像の全体データを格納せず一部の領域データを格納する構成としてメモリの小型化を実現し、さらに、小型化したメモリを利用して正確に正規化画像のメモリ書き込みを実現する画像処理装置、および画像処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明の第1の側面は、
入力顔画像の識別処理を行なう画像処理装置であって、
識別処理対象となる顔画像を入力し、入力顔画像に対して画像変換を実行し、予め定められた設定を持つ画像に正規化する処理を実行する画像変換部と、
前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出する類似度算出部と、
前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定する一致判定手段を備え、
前記画像変換部は、
正規化処理の対象とする顔画像を格納した第1メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第2メモリに格納する処理を実行する構成であり、
前記第1メモリは、正規化処理の対象とする顔画像の一部のみを格納し、前記第2メモリに対する正規化処理後の画像の書き込みの進行に応じて、前記第1メモリの格納データの更新処理を実行するメモリ制御部を有する構成であることを特徴とする画像処理装置にある。
【0016】
さらに、本発明の画像処理装置の一実施態様において、前記メモリ制御部は、前記第2メモリの書き込みアドレスと、該書き込みアドレスに対応する前記第1メモリの対応画素位置の縦方向(Y成分)を比較するアドレス比較部を有し、該アドレス比較部の比較情報に基づいて、前記第1メモリの対応画素位置が、前記前記第1メモリの格納データ中の縦(Y)方向において、ほぼ中央となるように前記第1メモリの格納データの更新処理を実行する構成であることを特徴とする。
【0017】
さらに、本発明の画像処理装置の一実施態様において、前記画像変換部は、正規化処理に際して実行する画像回転の角度情報を入力し、該角度情報に応じて前記第2メモリ書き込みアドレスに相当するカウンタ値を出力するカウンタを有し、前記カウンタは、異なる角度に応じた異なるカウンタ値を出力する複数のサブカウンタを有する構成であることを特徴とする。
【0018】
さらに、本発明の画像処理装置の一実施態様において、前記サブカウンタの各々は、
画像回転の角度:θ=arctan(±1/n)
ただしnは整数、
上記角度に対応した第2メモリ書き込みアドレスに相当するカウンタ値を出力する構成であることを特徴とする。
【0019】
さらに、本発明の画像処理装置の一実施態様において、前記画像変換部は、前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出するための変換パラメータを算出する演算部と、前記演算部の算出した変換パラメータに含まれる画像回転の角度情報を入力し、入力角度情報に応じて前記第2メモリ書き込みアドレスに相当するカウンタ値を異なるカウンタ値を出力するカウンタと、前記演算部の算出した変換パラメータに基づいて、前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出する座標変換部と、前記座標変換部の算出した対応点情報に従って、前記第2メモリの各画素位置に対応する画素値を決定する補間処理部と、
を有する構成であることを特徴とする。
【0020】
さらに、本発明の画像処理装置の一実施態様において、前記演算部は、前記変換パラメータとして、前記第1メモリに格納された顔画像を前記第2メモリに格納する顔画像に変換する際に適用する画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを算出し、前記座標変換部は、画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを適用して、前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出する処理を実行する構成であることを特徴とする。
【0021】
さらに、本発明の第2の側面は、
画像処理装置において、入力顔画像の識別処理を行なう画像処理方法であって、
画像変換部が、識別処理対象となる顔画像を入力し、入力顔画像に対して画像変換を実行し、予め定められた設定を持つ画像に正規化する処理を実行する画像変換ステップと、
類似度算出部が、前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出する類似度算出ステップと、
一致判定手段が、前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定する一致判定ステップを有し、
前記画像変換ステップは、
正規化処理の対象とする顔画像を格納した第1メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第2メモリに格納する処理を実行するステップと、
メモリ制御部が、前記第1メモリに正規化処理の対象とする顔画像の一部のみを格納し、前記第2メモリに対する正規化処理後の画像の書き込みの進行に応じて前記第1メモリの格納データの更新処理を実行するメモリ制御ステップを含むことを特徴とする画像処理方法にある。
【0022】
さらに、本発明の画像処理方法の一実施態様において、前記メモリ制御ステップは、前記第2メモリの書き込みアドレスと、該書き込みアドレスに対応する前記第1メモリの対応画素位置の縦方向(Y成分)を比較し、比較情報に基づいて前記第1メモリの対応画素位置が、前記前記第1メモリの格納データ中の縦(Y)方向において、ほぼ中央となるように前記第1メモリの格納データの更新処理を実行することを特徴とする。
【0023】
さらに、本発明の画像処理方法の一実施態様において、前記画像変換部は、正規化処理に際して実行する画像回転の角度情報を入力し、該角度情報に応じて前記第2メモリ書き込みアドレスに相当するカウンタ値を出力するカウンタを有し、前記カウンタは、異なる角度に応じた異なるカウンタ値を出力する複数のサブカウンタを含み、入力する角度情報に応じて適用するサブカウンタを選択して、選択されたサブカウンタのカウンタ値を出力することを特徴とする。
【0024】
さらに、本発明の画像処理方法の一実施態様において、前記サブカウンタの各々は、
画像回転の角度:θ=arctan(±1/n)
ただしnは整数、
上記角度に対応した第2メモリ書き込みアドレスに相当するカウンタ値を出力することを特徴とする。
【0025】
さらに、本発明の画像処理方法の一実施態様において、前記画像変換部は、演算部が、前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出するための変換パラメータを算出する演算ステップと、カウンタが、前記演算ステップにおいて算出した変換パラメータに含まれる画像回転の角度情報を入力し、入力角度情報に応じて前記第2メモリ書き込みアドレスに相当するカウンタ値を異なるカウンタ値を出力するカウンタ値出力ステップと、座標変換部が、前記演算ステップにおいて算出した変換パラメータに基づいて、前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出する座標変換ステップと、補間処理部が、前記座標変換ステップにおいて算出した対応点情報に従って、前記第2メモリの各画素位置に対応する画素値を決定する補間処理ステップと有することを特徴とする。
【0026】
さらに、本発明の画像処理方法の一実施態様において、前記演算ステップは、前記変換パラメータとして、前記第1メモリに格納された顔画像を前記第2メモリに格納する顔画像に変換する際に適用する画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを算出し、前記座標変換ステップは、画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを適用して、前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出する処理を実行することを特徴とする。
【0027】
さらに、本発明の第3の側面は、
画像処理装置において、入力顔画像の識別処理を行なわせるコンピュータ・プログラムであり、
画像変換部に、識別処理対象となる顔画像を入力させ、入力顔画像に対して画像変換を実行させて予め定められた設定を持つ画像に正規化する処理を実行させる画像変換ステップと、
類似度算出部に、前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出させる類似度算出ステップと、
一致判定手段に、前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定させる一致判定ステップを有し、
前記画像変換ステップは、
正規化処理の対象とする顔画像を格納した第1メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第2メモリに格納する処理を実行させるステップと、
メモリ制御部の制御により、前記第1メモリに正規化処理の対象とする顔画像の一部のみを格納させ、前記第2メモリに対する正規化処理後の画像の書き込みの進行に応じて、前記第1メモリの格納データの更新処理を実行させるメモリ制御ステップを含むことを特徴とするコンピュータ・プログラムにある。
【0028】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、DVD、CD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0029】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【0030】
本発明の一実施例の構成によれば、顔識別処理を行なう画像処理装置において、正規化前の顔画像を蓄える第1メモリ(SRAM1)の画像を取り出して正規化を実行して第2メモリ(SRAM2)に格納する処理を行なう構成において、正規化前の顔画像を蓄える第1メモリ(SRAM1)に顔全体を格納することなく、一部のみを格納する構成としてメモリの小型化を実現し、さらに、第1メモリ(SRAM1)に格納された顔の傾きに応じて、第2メモリに対するデータ書き込み順としてのスキャンシーケンスを変更する構成としたので、メモリの小型化および正確な正規化画像の書き込み処理が実現される。
【発明を実施するための最良の形態】
【0031】
以下、図面を参照しながら本発明の画像処理装置、および画像処理方法、並びにコンピュータ・プログラムの詳細について説明する。
【0032】
顔認識システムにおいては、入力画像から顔画像を抽出する顔抽出処理と、抽出された顔画像と登録画像との照合を実行して、入力顔画像がどの登録画像に対応するかを識別する顔識別処理が実行されることは既に述べた通りである。ここでは、まず顔検出処理と顔識別処理について改めて定義しておく。
【0033】
顔検出は、ある1枚の画像(1枚の写真や動画像の1ピクチャ(フィールド又はフレーム)に当たる)に対して、人物顔を検出しその位置と大きさを求める処理である。1枚の画において複数の顔が存在することがある。一方、顔識別とは検出されたある1個の顔が以前に登録された顔と同一人物かを識別することを言う。
【0034】
図1には、本発明の一実施形態に係る顔認識システムの全体構成を模式的に示している。図示の顔認識システム1は、画縮小器11と、顔検出器12と、両目位置検出器13と、顔識別器14と、複数枚の画像を蓄えるメモリ(SDRAM)15で構成される。また、顔検出器12と、両目位置検出器13と、顔識別器14内部にローカル・メモリ(SRAM)を備えている。本システム1への入力は画像であり、本システム1からの出力(Yes/No)は、入力顔画像と登録顔画像とが同一人物であるか否かを示すフラグである。
【0035】
画縮小器11では、入力画像に対し水平及び垂直の各方向にそれぞれ1/2にした縮小画像を作成し、原入力画像とともにSDRAM(Synchronous DRAM)15に格納する。図1に示す例では、入力画像を画1、入力画像に対し水平及び垂直方向にそれぞれ1/2にした縮小画像を画1/2、入力画像に対し水平及び垂直方向にそれぞれ1/4にした縮小画像を画1/4として、これら3枚の画像を作成して、SDRAM15に格納する。
【0036】
縮小画像を作成する際、演算精度を考慮すると、入力画像から直接それぞれの縮小画像を作成する方法が望ましい。但し、ハードウェアの規模を考慮して、1/2縮小を順番に施す方法、つまり、始めに入力画像(画1)から画1/2を作成し、次に作成された画1/2から画1/4を作成する方法で実現するようにしてもよい。
【0037】
顔検出器12では、入力画像とSDRAM15に格納されているすべての縮小画像に対して顔を検出し、検出された顔の大きさと顔の位置を求める。顔の位置の検出に関しては、画像全体を検出することで処理速度を考慮しなければ容易に実現可能である。一方、いろいろな大きさの顔の検出に関しては、画像の解像度と検出顔の大きさの相対関係の問題で、画像の解像度を固定にする方法(すなわち、入力画像に対していろいろな大きさの顔検出器を用意する方法)と、検出顔の大きさを固定にする方法(検出できる顔の大きさが固定された1つの顔検出器を用い、入力画像をいろいろな解像度に縮小して検出する方法)が考えられるが、後者の方法が現実的である。したがって、図1に示すように、顔検出器12では、画縮小器11で作成された画1、画1/2、画1/4の各縮小画像に対して、24×24画素内に顔が存在するか否かを識別する。
【0038】
なお、縮小率の刻みが1/2、1/4では粗過ぎて精度が不十分である場合には、例えば画縮小器11で画7/8、画6/8、画5/8の縮小率の画像をさらに作成し、顔検出器12でそれぞれの縮小率の画像に対しても顔検出を行なうようにすれば良い。
【0039】
顔検出の特徴抽出として2点画素差分方式を適用することができる。これは、24×24画素内において顔の特徴を抽出し易い2点の画素の差分をさまざまな2点で行なう方式である。また、識別器演算としてadaboostアルゴリズムを用いることができる。
【0040】
両目位置検出器13では、両目位置検出は、顔画像を顔認識するための準備として、顔検出器12によって検出された顔に対して解像度を上げた画像の顔を正規化するために、左右の目の位置を特定する。すなわち、両目位置を検出して、顔検出によって得られた顔の大きさ、顔の位置から、その顔画像の解像度を上げた顔の大きさ、顔の位置、顔の角度を求める。
【0041】
顔検出器12では24×24画素の解像度で顔検出が行なわれ、顔識別器14では60×66画素の解像度で顔認識が行なわれる。言い換えると、顔識別器14に必要な解像度は、顔検出器12のそれより精度を要求される。そこで、顔検出器で検出された顔が画1/2とすると、それよりも解像度の高い画1の同等の顔が存在する場所で且つ目が存在する顔の上部で左右の目を検出する。
【0042】
両目位置検出の特徴抽出として2点画素差分方式を適用することができる。2点画素差分方式の適用範囲も24×24画素であり、顔検出器12と同じであるので、顔検出器12と同一のハードウェアで処理時間をシリアルにして実現することができる。
【0043】
顔識別器14では、両目位置検出器13によって左右の目位置が特定された顔画像から顔の大きさ、位置、角度を求め、それらに応じて顔を正規化して60×66画素の内部のSRAMに一旦蓄えて、登録画像と一致するか否かを調べる。
【0044】
顔識別器14は、例えば顔認識の特徴抽出としてガボア・フィルタリングを適用する。また、識別器演算としてgentleboostを用いる。正規化された顔画像にガボア・フィルタを適用して得られた結果と、以前に登録された画像にガボア・フィルタを適用して得られた結果との類似度を求める。そして、求められた類似度に対してgentleboostを施すことによって、登録画と一致したか否か識別する。
【0045】
図2には、顔識別器14の構成例を示している。図示の顔識別器14は、画像変換部141と、ガボア・フィルタ適用部142と、類似度算出部143と、一致判定部144を備えている。
【0046】
画像変換部141は、初めに、両目位置検出で検出された両目位置情報に基づいて顔識別に必要である解像度に相当する顔画像を、SDRAM15から、顔識別器14にローカルのSRAM1に転送する。次いで、両目位置情報から顔の大きさ、顔の位置、顔の角度を求め、SRAM1にある顔画像の画像変換による正規化処理を実行して、顔識別処理に必要な顔画像を作成して、顔識別器14に備えられたローカルメモリであるSRAM2に格納する。
【0047】
つまり、画像変換部141では、両目位置情報からSRAM2の固定した座標に右目、左目の位置を合わせるように、SRAM1の顔画像に対する縮小、シフト、回転処理などの画像変換(正規化)を実行して顔認識に必要な顔画像をSRAM2に作成するフィッティング処理を実行する。すなわち、図3に示すように、SRAM1にある顔画像の画像変換による正規化処理を実行してSRAM2に格納する。
【0048】
なお、本発明の装置においては、顔識別処理に際して重要となる目、鼻、口といった顔パーツの位置や形の誤差の発生を抑制した画像変換(正規化)処理を実行する。この処理については、後段で詳細に説明する。
【0049】
ガボア・フィルタ適用部142は、画像変換部141において正規化された顔画像に対してガボア・フィルタを適用する。
【0050】
ガボア・フィルタは、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。本実施形態では、フィルタ窓は、図4Aに示すように24×24画素固定とする。そして、図4Bに示すような特定の周波数成分のサイン関数又はコサイン関数からなる応答関数にフィルタ窓をかけると、図4Cに示すようなガボア・フィルタを作成することができる。また、例えば、0度、22.5度、45度、67.5度、90度、112.5度、135度、157.5度と22.5度ずつずらした8方向のサイン関数又はコサイン関数からなる応答関数に対してそれぞれフィルタ窓をかけると、図4Dに示すように8通りのガボア・フィルタを作成することができる。さらに、低周波域から高周波域に至る5種類の周波数fの応答関数について、同様に8方向の角度θでフィルタ窓をかけることで、図4Eに示すように合計で40種類のガボア・フィルタが構成される。ガボア・フィルタ(ガボア・カーネルK(x,y))は、以下の演算式で表される。
【0051】
【数1】

【0052】
ガボア・フィルタの演算は、ガボア・フィルタGi(x,y)を適用する画素I(x,y)とガボア・フィルタの係数との畳み込みである。ガボア・フィルタの係数は、周波数応答がコサイン関数からなる実部Re(x,y)と周波数応答がサイン関数Im(x,y)からなる虚部に分離することができ、それぞれに畳み込み演算を実施し、それぞれの成分を合成して、1個のスカラ値からなるガボア・フィルタ結果Ji(x,y)を求めることができる。但し、(x,y)は特徴量抽出位置の画素位置を示し、iは上述した40通りのガボア・フィルタのうちi番目であることを示す。
【0053】
【数2】

【0054】
画像の特徴量抽出位置(x,y)において最大40種類のガボア・フィルタを適用して得られた最大40スカラ値の組{J1,J2,…,J40}をガボア・ジェットと呼ぶ。
【0055】
類似度算出部143は、入力画像について算出されたガボア・ジェットGSと登録画像のガボア・ジェットGRに正規化相関演算を行ない、特徴量抽出位置毎の類似度dを求める。
【0056】
【数3】

【0057】
本実施形態では、正規化された60×66画素の顔画像のうち、特徴量が抽出し易い82箇所の特徴量抽出位置(図5を参照のこと)において、正規化相関演算を行ない、類似度を求める。この結果、d0、d1、…、d81の82箇所の各特徴量抽出位置で求められた正規化相関演算結果を要素とする類似度ベクトルDが得られる。
【0058】
【数4】

【0059】
なお、上記では「最大40種類」のガボア・フィルタを適用することを記述したが、これは82箇所のすべての特徴量抽出位置において40種類すべてのガボア・フィルタを適用する必要はないことを意味する。何種類のガボア・フィルタを適用するかは、類似度を抽出する特徴量抽出位置の場所に依存し、場所に応じてガボア・フィルタの種類とその数(ガボア・ジェットの要素数)が異なる。
【0060】
一致判定部144は、入力画と登録画間の類似度ベクトルに基づいて、両画像の一致を判定する。本実施形態では、識別器演算としてgentleboostを用いる。ここでは、以下の演算式を用いてgentleboostを算出する。但し、同式中のa、q、bは辞書としてあらかじめ登録されているものとする。
【0061】
【数5】

【0062】
そして、以下の判別式に従って、入力画が登録画と一致するかどうかを判定する。
【0063】
【数6】

【0064】
なお、本実施形態では、一致判定にgentleboostを用いているが、例えば、サポート・ベクタ・マシーンを用いて類似ベクトルの境界面の値をクラス判定して、顔画像の一致を判定するようにしてもよい。
【0065】
次に、図1に示す顔識別器14における画像変換部141(図2参照)において実行する画像変換処理の詳細について説明する。先に図3を参照して説明したように、画像変換部141では、SRAM1に格納した顔画像を取り出して取り出した顔画像の両目位置情報からSRAM2の固定した座標に右目、左目の位置を合わせるように、SRAM1の顔画像に対する縮小、シフト、回転処理などの画像変換(正規化)を実行して顔認識に必要な顔画像をSRAM2に作成するフィッティング処理を実行する。本発明の装置においては、顔識別処理に際して重要となる目、鼻、口といった顔パーツの位置や形の誤差の発生を抑制した画像変換(正規化)処理を実行する。以下この画像変換処理の詳細について説明する。
【0066】
顔識別器14における画像変換部141は、まず、SDRAM15(図1参照)上にある画像の顔領域部分をSRAM1(図2参照)に書き込む処理(ライト)を実行する。画像変換部141は、SRAM1(図2参照)に書き込んだ画像から顔画像領域を取り出してフィッティング処理としての画像変換を実行して、処理結果をSRAM2に書き込む。フィッティング処理は、SRAM1の画像を正規化してSRAM2に作成する処理である。本装置における正規化とは、顔画像の位置合わせ、回転、拡大縮小処理の少なくともいずれかの処理を含む画像変換処理である。
【0067】
図6を参照して、画像変換部141において実行する画像変換処理の詳細について説明する。図6は、画像変換部141の詳細構成を示す図である。画像変換部141の演算部203は、まず、SDRAM200上からSRAM1,201に書き込まれた顔画像を読み取り、さらに目位置検出部202からSRAM1,201に書き込まれた顔画像の左右目位置座標を入力する。
【0068】
演算部203は、この座標データに基づいて、フィッティング処理として実行する画像変換に適用する顔画像の回転角度、倍率、原点位置を求める。さらに座標変換部205は、求めた角度・倍率・原点からSRAM2,251の各々の画素がSRAM1,201のどこの位置に相当するのかを小数精度で求める。例えば、図7に示すSRAM2,251の画素(p,q)が、SRAM1,201のメモリ上の画素位置(m,n)を算出する。例えば図7に示すSRAM2,251が60×66画素情報を格納するメモリである場合、60×66の画素中の顔領域に含まれる各画素位置に対応するSRAM1,201のメモリ上の画素位置(m,n)を算出する。この場合、SRAM1,201のメモリ上の画素位置(m.n)のmやnは整数値とならない場合もあるが、演算部は、対応画素位置(m,n)について、整数部のみならず、小数部、例えば小数点以下2桁等の精度で対応画素位置(m,n)を算出する。
【0069】
この座標変換部205の算出した対応画素位置情報に基づいて、図6に示す補間処理部207が、SRAM2,251の各々の画素の画素値を決定する。すなわち、座標変換部205の算出した対応画素位置情報において、SRAM2,251の画素(p,q)に対応するSRAM1,201のメモリ上の画素位置(m.n)が整数値m,nを持つ場合は、SRAM2,251の画素(p,q)の画素値は、対応するSRAM1,201のメモリ上の画素位置(m.n)の画素値として設定するが、対応画素位置(m,n)のmまたはnの値が整数値とならず小数部を持つときは、対応画素位置(m,n)周囲のSRAM1画素の画素値に基づく補間処理によって、SRAM2,251の画素(p,q)の画素値を決定する。
【0070】
図6に示す画像変換部141の補間処理部207の実行する画素補間処理について、図8を参照して説明する。補間処理部207の実行する画素補間処理が、bi−linear手法である場合、図8(a)に示すように、SRAM1,201上の対応画素位置(m,n)の周囲画素4点(SRAM1,201整数部座標)と周囲4画素までの距離(SRAM1小数部座標)を求める。また、補間処理部207の実行する画素補間処理が、bi−cubic手法である場合は、図8(b)に示すように、SRAM1,201上の対応画素位置(m,n)周りの画素16点(SRAM1,201整数部座標)と周り16画素までの距離(SRAM1小数部座標)を求める。
【0071】
次に求めたSRAM1,201における整数部座標の画素とSRAM1,201における小数部座標データを適用して各画素値の寄与度としての重みを算出し、算出した重みに基づいてSRAM2,251の対応画素(p,q)の画素値を算出して、SRAM2に記録(ライト)する画素値を算出する。
【0072】
このようにして、SRAM1,201に格納された画像の各構成画素値に基づいて、SRAM2,251に格納する画像の画素値が決定されることになる。なお、先に説明したように、画像変換部141の演算部203は、まず、SDRAM200上からSRAM1,201に書き込まれた顔画像を読み取り、さらに目位置検出部202からSRAM1,201に書き込まれた顔画像の左右目位置座標を入力し、この座標データに基づいて、フィッティング処理として実行する画像変換に適用する顔画像の回転角度、倍率、原点位置を求める。さらに演算部203は、求めた角度・倍率・原点からSRAM2,251の各々の画素がSRAM1,201のどこの位置に相当するのかを小数精度で求める。
【0073】
このフィッティング処理は、登録画像との照合処理をより正確に実行するための正規化処理として実行される画像変換処理である。この正規化処理(画像変換処理)について、以下説明する。演算部203は、はじめに正規化された顔画像を蓄えるSRAM2,251の座標を定義する。
【0074】
本実施例に従った正規化処理では、まず、正規化された顔画像を蓄積するSRAM2,251上の左右の目の位置の座標を決定する。すなわち、左右の目の位置のSRAM2,251の固定座標を決定する。具体的には、例えば、次のような処理によって、SRAM2,251の固定座標を割り当てる。
【0075】
図9に示すように、正規化(画像変換処理)後の顔画像を格納するSRAM2,251の顔画像格納領域の画素座標(x,y)とし、
横軸(X軸):サイズ60画素、x=−29〜+30、
縦軸(Y軸):サイズ66画素、y=−39〜+26、
とした場合の処理例について説明する。
【0076】
このようなSRAM2,251の顔画像格納領域の座標において、右目位置の(x,y)座標を(−11,0)、左目位置の(x,y)座標を(11,0)に割り当てる。また原点の(x,y)座標を右目位置と左目位置の中心(0,0)とする。
【0077】
次に、正規化前の顔画像を格納したSRAM1,201の座標を割り当てる。SRAM1,201に格納する顔画像データは、図6に示すSDRAM200に格納された顔画像に対応しており、まずSDRAM200上での座標を考える。図6に示す目位置検出部202において、SDRAM200上での左右目位置情報が取得され、この情報が演算部203に入力される。なお、検出された左右目位置は、SDRAMの特定の画素に対応するとは限らない。さらに左右目位置の中心もSDRAM上に規定される特定の画素に対応するとは限らない。
【0078】
つまり、正規化後の顔画像を格納するSRAM2.251において設定する原点である左右の目の中心に対応するSDRAM上の原点(左右目の中心)座標は、SDRAM上の特定の画素位置に対応するとは限らない。
SDRAM上の原点(左右目の中心)座標を、
(org_drx,org_dry)
とする。
【0079】
SDRAM200上の原点(左右目の中心)座標(org_drx,org_dry)
は、SDRAM200上のある画素(x,y)に対し次の範囲に存在する。
x<=org_drx<x+1
y<=org_dry<y+1
SDRAM200上の画素を切り出してSRAM1,201に格納(ライト)するときは、SDRAM200上の画素(x,y)をSRAM1,201の原点(0,0)に合わせる。
【0080】
図10に示すように、正規化(画像変換処理)前の顔画像を格納するSRAM1,201の顔画像格納領域の画素座標(x,y)とし、
横軸(X軸):サイズ192画素、x=−95+96、
縦軸(Y軸)サイズ180画素、y=−107〜+72、
とする。
【0081】
この設定とすると、SDRAM200上の原点(左右目の中心)座標(org_drx,org_dry)に対応するSRAM1,201上の原点位置(org_s1x,org_s1y)は、図10に示すように次の範囲に存在する。
0<=org_s1x<1
0<=org_s1y<1
【0082】
図10に示すSRAM1,201の原点領域の近傍を拡大した図を図11に示す。SRAM2の原点に対応する図に示す[▲]は、SRAM1における座標系では、
0<=org_s1x<1
0<=org_s1y<1
の位置にある。ここで、
org_s1x_int:SRAM1の原点座標xの整数部、
org_s1x_frc:SRAM1の原点座標xの小数部、
org_s1y_int:SRAM1の原点座標yの整数部、
org_s1y_frc:SRAM1の原点座標yの小数部、
とすると、
org_s1x_int=0、
org_s1y_int=0、
となる。
【0083】
このように、正規化(画像変換処理)後の画像を格納するSRAM2,251における原点はSRAM2座標系における原点(0,0)座標であるが、図10、図11を参照して説明したように、正規化(画像変換処理)前の画像を格納しているSRAM1,201におけるこの原点の対応するSRAM2座標系の座標位置は(0,0)とならず、
0<=org_s1x<1
0<=org_s1y<1
となる(org_s1x,org_s1x)となる。
【0084】
従って、SRAM1,201に格納された顔画像を正規化(画像変換)してSRAM2,251に格納する場合は、SRAM2,251の各座標がSRAM1,201の座標系のどこに対応するかを求める処理が必要となる。
【0085】
すなわち、SRAM1,201に記録された顔画像に対する正規化(画像変換)処理として、画像の縮小処理、回転処理、平行移動処理の少なくともいずれかの処理を実行してSRAM2,251に正規化後画像を格納する場合、正規化後の画像格納メモリであるSRAM2,251の各座標が、正規化前の画像格納メモリであるSRAM1,201の座標系のどこに対応するかを求める処理が必要となる。図6に示す画像変換部141の演算部203では、対応を求めるために必要となる画像変換パラメータとしての回転角度、変換倍率、原点情報を求め、これらの変換パラメータを座標変換部205に出力する。
【0086】
座標変換部205では、演算部203から入力するこれらの変換パラメータを適用して、SRAM2,251の座標各々に対応するSRAM1,201の座標を算出する。なお、この処理に際して、座標変換部205は、図6に示す画像変換部141のアドレス作成部204から、SDRAM200やSRAM1,201における顔画像格納領域の画素位置に対応するアドレスを受領して、対応画素位置算出を実行する。この算出結果が補間処理部207に出力され、補間処理部207では、先に図8を参照して説明したbi−linear手法、あるいはbi−cubic手法を適用した画素値補間処理を実行して、画素値を決定して、決定した画素値をSRAM2,251の各座標位置に書き込む。
【0087】
図12を参照して、正規化処理において必要とする対応画素算出処理、すなわち、正規化後の画像格納メモリであるSRAM2,251の各座標が、正規化前の画像格納メモリであるSRAM1,201の座標系のどこに対応するかを求める処理の詳細について説明する。図12には、入力画像を格納したSDRAM200、SDRAM200に格納された顔画像領域を切り出して格納するSRAM1,201、SRAM1,201に格納された顔画像の正規化(画像変換)処理を実行して、正規化(変換処理)後の画像を格納するSRAM2,252のメモリ領域を示している。
【0088】
SDRAM200、SRAM1,201、SRAM2,251のそれぞれのメモリ領域は、図12に示すように、
SDRAM:320×240画素
SRAM1:192×180画素
SRAM2:60×66画素
とする。
【0089】
また、正規化処理後にSRAM2,251に格納される顔画像における原点を、SRAM2,251に格納される顔画像の左右の目の中心位置として、この座標SRAM2座標系における原点(0,0)とする。SRAM2,251に格納される顔画像の左右の目の距離を[P]、例えば22画素とする。
【0090】
正規化前の画像を格納しているSRAM1,201における顔画像の左目および右目座標、および左右目の中心である原点の座標を、図12に示すように、
左目座標(lex,ley)、
右目座標(rex,rey)、
原点座標(cex,cey)、
とする。また、
左目座標(lex,ley)と右目座標(rex,rey)との距離を[c]とし、
左目座標(lex,ley)と右目座標(rex,rey)とのx座標差分を[a]、
左目座標(lex,ley)と右目座標(rex,rey)とのy座標差分を[b]、
とする。
a,b,cは、図12に示すSRAM1,201内の直角三角形の辺の長さに相当し、
=a+b
の関係を持つ。辺aとcのなす角をθとする。
【0091】
ここで、正規化前の画像格納メモリであるSRAM1,201の座標系、および、正規化後の画像格納メモリであるSRAM2,251の座標系における(x,y)座標を以下のように定義する。
s1x:SRAM1座標系におけるx座標、
s1y:SRAM1座標系におけるy座標、
s2x:SRAM2座標系におけるx座標、
s2y:SRAM2座標系におけるy座標、
このように定義する。
【0092】
座標変換部205では、正規化後の画像格納メモリであるSRAM2の座標(s2x,s2y)の各々について以下の式(式1)に基づいて、正規化前の画像格納メモリであるSRAM1,201の座標(s1x,s1y)を算出する。
s1x=(c/P)×((s2x)×cosθ+s2y×sinθ)+(org_s1x_frc)
=(a×s2x+b×s2y)/P+(org_s1x_frc)
s1y=(c/P)×((−s2x)×sinθ+s2y×cosθ)+(org_s1y_frc)
=(−b×s2x+a×s2y)/P+(org_s1y_frc)
・・・(式1)
【0093】
なお、上記式(式1)において、
a=(lex)−(rex)、
b=ley−rey、
c=√(a×a+b×b)、
cosθ=a/c、
sinθ=b/c、
である。
【0094】
座標変換部205では、上記式(式1)を適用して、正規化後の画像格納メモリであるSRAM2の座標(s2x,s2y)の各々について正規化前の画像格納メモリであるSRAM1,201の座標(s1x,s1y)を算出する。
【0095】
演算部203は、上記式(式1)において適用する変換パラメータとしての回転角度、変換倍率、原点情報を求め、これらの変換パラメータを座標変換部205に出力する。上記式(式1)において、
変換倍率(画像縮小処理パラメータ):(c/P)
回転角度(画像回転処理パラメータ):θ、
原点情報(画像平行移動処理パラメータ):(org_s1x_frc,org_s1y_frc)
である。
なお、原点情報(画像平行移動処理パラメータ)は、SRAM1座標系におけるSRAM2における原点に対応する位置を示す情報(図11参照)である。演算部203では、SRAM2,251の原点情報と、SRAM1,201に格納された顔画像情報とに基づいて、上記の各変換パラメータ:回転角度、変換倍率、原点情報を求め、これらの変換パラメータを座標変換部205に出力する。
【0096】
座標変換部205は、カウンタ206から、SRAM2,251の各画素(s2x,s2y)のカウント値を入力して、1画素毎に、上記式(式1)を適用して、SRAM2,251の各画素(s2x,s2y)に対応するSRAM1の画素位置(s1x,s1y)を算出する。
【0097】
この算出結果が補間処理部207に出力され、補間処理部207では、先に図8を参照して説明したbi−linear手法、あるいはbi−cubic手法を適用した画素値補間処理を実行し画素値を決定して、決定した画素値がSRAM2,251の各座標位置に書き込まれる。なお、カウンタ206から、SRAM2,251の各画素(s2x,s2y)のカウント値がSRAM2の書き込みアドレスとして入力され、アドレス位置に従って、決定した画素値の書き込みが実行される。
【0098】
補間処理部207における画素値の決定処理例の一例として、bi−linear手法を適用した処理例について図13を参照して説明する。図13には、SRAM1座標系において、SRAM2のある1つの座標点(s2x,s2y)のSRAM1座標系における対応点[★]301を示している。
【0099】
対応点[★]301は、SRAM2の座標系では、特定の1つの座標点に対応せず、複数の座標点(e,f,g,h)に囲まれた位置にある。座標点E,F,G,Hの各々は、SRAM1座標の座標点であり、以下の座標を持つ。
E=(s1x_int,s1y_int)
F=(s1x_int+1,s1y_int)
G=(s1x_int,s1y_int+1)
H=(s1x_int+1,s1y_int+1)
【0100】
これらの画素点E,F,G,Hには、それぞれ画素値が設定されている。ここで、画素点E,F,G,Hの各画素値をそれぞれe,f,g,hとする。このとき、補間処理部207は、SRAM2の座標点(s2x,s2y)に設定する画素値[Q]を、bi−linear手法を適用して以下の計算式(式2)によって算出する。
Q=[(1−s1x_frc)×(1−s1y_frc)×e+(s1x_frc)×(1−s1y_frc)×f+(1−s1x_frc)×(s1y_frc)×g+(s1x_frc)×(s1y_frc)×h]/4
・・・(式2)
【0101】
上記式(式2)は、bi−linear手法による画素値補間処理であり、先に図8(a)を参照して説明した処理に従った画素値決定処理である。すなわち、SRAM2の画素(s2x,s2y)に対応するSRAM1上の対応画素位置[★]と、周囲画素4点(E,F,G,H)との距離(SRAM1小数部座標)を求め、求めた距離に基づいて、各画素値の寄与度としての重みを算出し、算出した重みに基づいてSRAM2の画素(s2x,s2y)の画素値を算出する処理である。上記式によって、
決定した画素値がSRAM2,251の各座標位置に書き込まれる。
【0102】
なお、前述したように、補間処理部207における画素値の決定処理手法としては、上述のbi−linear手法に限らず、bi−cubic手法等の他の手法を適用してもよい。
【0103】
[正規化前の画像格納メモリ(SRAM1)のサイズ削減構成]
次に、正規化前の画像を格納するメモリであるSRAM1のサイズの削減を実現した構成例について説明する。上述した実施例では、例えば、図12を参照して説明したように正規化前の顔画像を格納するメモリであるSRAM1,201は、SDRAM200に格納された顔画像の全体を一時的に格納する構成であり、顔画像全体を記録するためのデータ記憶容量が必要な構成である。
【0104】
図12を参照して説明した例では、
SDRAM200、SRAM1,201、SRAM2,251のそれぞれのメモリ領域は、
SDRAM:320×240画素
SRAM1:192×180画素
SRAM2:60×66画素
の画素値各の領域を有している構成として説明した。
【0105】
しかし、SRAM1の顔画像データを正規化(画像変換)して、SRAM2に格納する場合、SRAM2の構成画素について順番に1つずつ画素値を決定しながら、SRAM2に正規化後の画像書き込む処理を実行するものであり、例えばSRAM2の1つの構成画素の画素値書き込み処理に際して必要となるデータは、SRAM1に格納された顔画像データの全体ではなく、その一部のみである。具体的には、例えば、上述したbi−linear手法による画素値補間処理を行なう場合は、上述の説明から明らかなように、SRAM2の画素位置(s2x,s2y)に対応するSRAM1上の対応位置の周囲の4画素の画素値情報のみである。
【0106】
このように、SRAM2に対する正規化後の顔画像データの書き込みに必要となるデータはごく限られたデータである。以下では、この事実に鑑みて、正規化前の顔画像データを格納するメモリであるSRAM1のサイズを削減した構成例について説明する。
【0107】
具体的な一実施例について図14を参照して説明する。図14に示すように正規化前の顔画像データを格納するSRAM1を顔画像全体ではなく、その一部のみを記憶する設定とする。図の例では、
SRAM1:192×48画素
のデータを記録するメモリとする。なお、例えば1画素当たり8ビットデータのデータ記憶を行なう構成とすると、図14に示すメモリであるSRAM1,401は、
SRAM1:192×48画素×8bit
のデータ記憶容量とすればよい。
【0108】
SRAM1,401に格納する顔画像データは、SRAM2に対するデータ書き込み処理の進行に従って更新する。すなわち、図15に示すように、SRAM1,401の格納データを更新する。具体的には、SRAM2に書き込み予定の画素、図15に示す書き込み画素452に対応するSRAM1上の画素位置をSRAM1,401のメモリ領域の上下48画素分のほぼ中央に設定するようにSRAM1,401の格納データを更新する。
【0109】
顔画像全体を格納したSDRAMからSRAM1へのデータ転送制御を実行するメモリ制御部は、SRAM2,451の書き込み画素のアドレスに基づいて、SRAM1,401の対応画素位置が、SRAM1,401のメモリ領域の上下48画素分のほぼ中央に設定されるようにSRAM1,401の格納データを更新する。
【0110】
すなわち、メモリ制御部は、SRAM2,451の書き込み画素のアドレスと、SRAM1,401の対応画素位置の縦方向(Y成分)を比較するアドレス比較部を有し、このアドレス比較情報に基づいて、SDRAMからSRAM1へのデータ転送を実行する。メモリ制御部は、このような制御によって図15に示すように、書き込み画素452に対応するSRAM1上の画素位置をSRAM1,401のメモリ領域の上下48画素分のほぼ中央に設定するようにSRAM1,401の格納データを更新する。このように、SRAM1,401は、逐次格納データが更新されるリングバッファ的な構成を持つ。
【0111】
このメモリ制御処理を実行する画像変換部141の構成および処理について、図16以下を参照して説明する。図16は、図14、図15を参照して説明したデータ記憶容量の少ない小型のメモリであるSRAM1,401を持つ。SRAM1,401にはSDRAM200に格納された顔画像データの一部のみが格納され、正規化(画像変換)処理と正規化後画像のSRAM2,451への書き込み処理の進行に応じて、SRAM1,401の格納データが、図15を参照して説明したように更新される。
【0112】
このSRAM1,401へのデータ書き込み、すなわち、SDRAM200からのデータ読み出し、SRAM1,401へのデータ書き込み制御を実行するのが、図16に示すメモリ制御部420であり、SDRAM404のデータ読み出し用のアドレスを生成するSDARMアドレス作成部404、SRAM1,401のアクセス用アドレスを生成するSRAM1アドレス作成部405、SRAM1,401の処理対象の画素位置を順次設定するカウンタ406、さらに前述したSRAM2,451の書き込み画素のアドレスと、SRAM1,401の対応画素位置の縦方向(Y成分)を比較するアドレス比較部407を有する。
【0113】
メモリ制御部420のアドレス比較部407は、SRAM2,451の書き込み画素のアドレスと、SRAM1,401の対応画素位置の縦方向(Y成分)を比較し、アドレス比較情報に基づいて、SDRAMからSRAM1へのデータ転送を実行して図15に示すように、書き込み画素452に対応するSRAM1上の画素位置をSRAM1,401のメモリ領域の上下48画素分のほぼ中央に設定するようにSRAM1,401の格納データを更新する。
【0114】
SRAM2,451に対するデータ書き込み処理は、SRAM1,401に格納された一部の顔画像データを適用して実行される。この処理は、基本的には、先に説明した処理と同様であり、演算部403において正規化処理に適用する画像変換パラメータとして、
変換倍率(画像縮小処理パラメータ)、
回転角度(画像回転処理パラメータ)、
原点情報(画像平行移動処理パラメータ)、
これらの変換パラメータを算出して、これらの変換パラメータを座標変換部409に出力し、座標変換部409が、これらの変換パラメータを適用して、先に説明した式(式1)を適用して、SRAM1,401とSRAM2,451との対応を求める。すなわち、座標変換部409では、正規化後の画像格納メモリであるSRAM2の座標(s2x,s2y)の各々について以下の式(式1)に基づいて、正規化前の画像格納メモリであるSRAM1,201の座標(s1x,s1y)を算出する。
s1x=(c/P)×((s2x)×cosθ+s2y×sinθ)+(org_s1x_frc)
=(a×s2x+b×s2y)/P+(org_s1x_frc)
s1y=(c/P)×((−s2x)×sinθ+s2y×cosθ)+(org_s1y_frc)
=(−b×s2x+a×s2y)/P+(org_s1y_frc)
【0115】
この算出結果が補間処理部410に出力され、補間処理部410では、先に図8を参照して説明したbi−linear手法、あるいはbi−cubic手法を適用した画素値補間処理を実行し画素値を決定して、決定した画素値がSRAM2,251の各座標位置に書き込まれる。
【0116】
しかし、SRAM1,401に記録された一部の顔画像に基づく正規化処理結果をSRAM2,451に書き込む場合、図17(a)に示すように、SRAM1,401に格納された画像と、SRAM2,451に記録する画像が傾き角度のずれがなく一致していれば、SRAM2,451に書き込むラスタ順(60x66 cnt)にSRAM2,451の書き込み画素を、順次設定して、画素値決定のために必要とする対応するSRAM1,401の画素情報を取得することができる。
【0117】
しかし、実際には、SRAM1,401に格納される正規化前の画像は、撮影画像に基づいて記録され、図17(b)のように、SRAM1,401に格納される正規化前の画像は、SRAM2,451に記録する正規化後の画像と異なる傾きを持つことが多い。この場合、図17(a)に示すようにSRAM2,451に書き込むラスタ順(60x66 cnt)に処理を行なうと、SRAM1,401から対応画素位置が格納されている状態を維持するためには、絶えずSRAM1,401の格納データの位置変更を行なうことが必要となり非効率的となる。
【0118】
これを解決するために、SRAM2,451に書き込むシーケンスを変更する。すなわち、SRAM1,401に格納された一部の画像データに応じて、SRAM2,451に対するデータ書き込みシーケンスを変更する。以下、この処理例について説明する。
【0119】
以下の処理例は、SRAM1,401とSRAM2,451との顔画像の傾きの差、すなわち、顔画像の回転角に応じたスキャン順変更を行なう処理例である。複数の異なるスキャン順、すなわち、SRAM2,451に対するデータ書き込みを行なう画素順を変更可能とするための一つの構成としては、複数のスキャン順番を発生するROM(60x66アドレス)を使う構成がある。しかし、任意の角度に応じる構成とするためには、各角度に応じたスキャン順の登録情報が必要となり、このデータを記録するためのメモリサイズが膨大となるという問題がある。
【0120】
そこで、本実施例では、図18に示すように、傾き角度に応じた異なるスキャン順情報を出力する限定された個数(実施例では5個)のカウンタを用意し、これらのカウンタを選択的に使用する。図18に示すカウンタ408は、図16に示す画像変換部141のカウンタ408の一実施構成例である。
【0121】
図16に示すように、カウンタ408は、SRAM1,401のアドレスを読み出して、さらに、演算部403から角度情報、すなわち、正規化処理に際して実行する回転角度情報を入力して、SRAM2,451に対する書き込みアドレスを、順次、出力するカウンタである。演算部403から入力する角度情報は、正規化処理に適用する変換パラメータとしての回転処理パラメータであり、SRAM1,401に格納された顔画像と、SRAM2,451に書き込む顔画像の傾斜角の差分に相当する。
【0122】
図18に示すように、カウンタ408は、5つのサブカウンタ501〜505と選択部511によって構成される。
第1サブカウンタは、傾斜角θ≒−27度(arctan(−1/2))、
第2サブカウンタは、傾斜角θ≒−14度(arctan(−1/4))、
第3サブカウンタは、傾斜角θ≒0度(arctan(0))、
第4サブカウンタは、傾斜角θ≒+14度(arctan(+1/4))、
第5サブカウンタは、傾斜角θ≒+27度(arctan(+1/2))、
に対応したスキャン順情報をそれぞれ出力する。
傾斜角θは、正規化画像と、SRAM1,401に格納された画像との傾斜角である。選択部511は、演算部403から入力する角度情報に従って、これらの5つのカウンタ出力のいずれかを選択して出力する。出力情報は、SRAM2,451、座標変換部409に出力される。角度種類はtanθ=1/4,1/2,0,−1/4,−1/2となるθを選んだ設定である。この角度のスキャン順はカウンタに適した規則性があり小さい規模のロジックで実現可能である。
【0123】
実際には、SRAM1,401に格納される画像の傾斜角は様々であり、演算部403からカウンタ408に入力される角度情報は様々な値となる。本実施例では、例えば、図19に示すように、これらの5つのカウンタを、ある一定の傾斜角度の領域毎に選択して利用する構成とする。図19に示すように、
傾斜角θ<−21度:第1サブカウンタ(−27度対応)、
−21度≦傾斜角θ<−7度:第2サブカウンタ(−14度対応)、
−7度≦傾斜角θ<+7度:第3サブカウンタ(0度対応)、
+7度≦傾斜角θ<+21度:第4サブカウンタ(+14度対応)、
+21度≦傾斜角θ:第5サブカウンタ(+27度対応)、
このように、様々な傾斜角に応じて少ない数のカウンタで対応する。
【0124】
実際の各カウンタ出力に基づくスキャン順の設定例について、図20〜図24を参照して説明する。図20〜図24は、各カウンタ501〜505を選択して利用した場合のスキャン順、すなわちSRAM2,451に対するデータ書き込み順を示している。
図20は、第1サブカウンタ(−27度対応)を利用した場合のスキャン順、
図21は、第2サブカウンタ(−14度対応)を利用した場合のスキャン順、
図22は、第3サブカウンタ(0度対応)を利用した場合のスキャン順、
図23は、第4サブカウンタ(+14度対応)を利用した場合のスキャン順、
図24は、第5サブカウンタ(+27度対応)を利用した場合のスキャン順、
これらの各スキャン順を示している。
【0125】
図20は、第1サブカウンタ(−27度対応)を利用した場合のスキャン順である。第1サブカウンタ501は、図20の(B)に示す(カウンタ出力アルゴリズム)に従って、スキャンする順番を示すカウンタ値を出力する。すなわち、(x,y)をSRAM2,451に対するデータ書き込みアドレスとして、
cx:current x,
cy:current y,
nx:next x,
ny:next y,
とした場合、以下のカウンタ値出力アルゴリズムに従って、カウンタ値、すなわちスキャン順番の指定データを出力する。
cx=0;cy=0;
if (cx[0]!=1){ −
ny=cy; nx=cx+1;
}else if (cy==0) { (1)
ny=cx[5:1]+1;nx=0;
}else if (cx==59) {
if(cy<36){ (2)
ny=cy+30;nx=0;
}else{ (3)
ny=65; nx=(cy‐35)x2;

}else{ /
ny=cy−1;nx=cx+1;

【0126】
上記アルゴリズムに従ったカウンタ値出力によって、図20(A)の矢印の結線順に従ってスキャンが実行される。なお、(1),(2),(3)の領域に応じて、カウンタ値出力アルゴリズムの処理も(B)(カウンタ出力アルゴリズム)中の(1)〜(3)に示すように切り替えられる。
【0127】
図21は、第2サブカウンタ(−14度対応)を利用した場合のスキャン順である。第2サブカウンタ502は、図21の(B)に示す(カウンタ出力アルゴリズム)に従って、スキャンする順番を示すカウンタ値を出力する。すなわち、(x,y)をSRAM2,451に対するデータ書き込みアドレスとして、
cx:current x,
cy:current y,
nx:next x,
ny:next y,
とした場合、以下のカウンタ値出力アルゴリズムに従って、カウンタ値、すなわちスキャン順番の指定データを出力する。
cx=0;cy=0;
if (cx[1:0]!=3) { −
ny=cy; nx=cx+1;
}else if (cy==0) { (1)
ny=cx[5:2]+1;nx=0;
}else if(cx==59) {
if(cy<51) { (2)
ny=cy+15;nx=0;
}else { (3)
ny=65; nx=(cy‐50)x4;

} else { /
ny=cy−1;nx=cx+1;

【0128】
上記アルゴリズムに従ったカウンタ値出力によって、図21(A)の矢印の結線順に従ってスキャンが実行される。なお、(1),(2),(3)の領域に応じて、カウンタ値出力アルゴリズムの処理も(B)(カウンタ出力アルゴリズム)中の(1)〜(3)に示すように切り替えられる。
【0129】
図22は、第3サブカウンタ(0度対応)を利用した場合のスキャン順である。第3サブカウンタ503は、図22の(B)に示す(カウンタ出力アルゴリズム)に従って、スキャンする順番を示すカウンタ値を出力する。すなわち、(x,y)をSRAM2,451に対するデータ書き込みアドレスとして、
cx:current x,
cy:current y,
nx:next x,
ny:next y,
とした場合、以下のカウンタ値出力アルゴリズムに従って、カウンタ値、すなわちスキャン順番の指定データを出力する。
cx=0;cy=0;
if (cx==59){
ny=cy+1; nx=0;
}else {
ny=cy; nx=cx+1;

【0130】
上記アルゴリズムに従ったカウンタ値出力によって、図20(A)の矢印の結線順に従ってスキャンが実行される。
【0131】
図23は、第4サブカウンタ(+14度対応)を利用した場合のスキャン順である。第4サブカウンタ504は、図23の(B)に示す(カウンタ出力アルゴリズム)に従って、スキャンする順番を示すカウンタ値を出力する。すなわち、(x,y)をSRAM2,451に対するデータ書き込みアドレスとして、
cx:current x,
cy:current y,
nx:next x,
ny:next y,
とした場合、以下のカウンタ値出力アルゴリズムに従って、カウンタ値、すなわちスキャン順番の指定データを出力する。
cx=59;cy=0;
if (cx[0]!=0) { −
ny=cy; nx=cx−1;
}else if (cy==0) { (1)
ny=30−cx[5:1]; nx=59;
}else if (cx==0) {
if(cy<36) { (2)
ny=cy+30;nx=59;
}else { (3)
ny=65; nx=59−(cy‐35)x2;

}else { ¥
ny=cy−1;nx=cx−1;

【0132】
上記アルゴリズムに従ったカウンタ値出力によって、図23(A)の矢印の結線順に従ってスキャンが実行される。なお、(1),(2),(3)の領域に応じて、カウンタ値出力アルゴリズムの処理も(B)(カウンタ出力アルゴリズム)中の(1)〜(3)に示すように切り替えられる。
【0133】
図24は、第5サブカウンタ(+27度対応)を利用した場合のスキャン順である。第5サブカウンタ505は、図24の(B)に示す(カウンタ出力アルゴリズム)に従って、スキャンする順番を示すカウンタ値を出力する。すなわち、(x,y)をSRAM2,451に対するデータ書き込みアドレスとして、
cx:current x,
cy:current y,
nx:next x,
ny:next y,
とした場合、以下のカウンタ値出力アルゴリズムに従って、カウンタ値、すなわちスキャン順番の指定データを出力する。
cx=59;cy=0;
if (cx[1:0]!=0) { −
ny=cy; nx=cx−1;
}else if (cy==0) { (1)
ny=15−cx[5:2] ;nx=59;
}else if (cx==0) {
if(cy<51) { (2)
ny=cy+15; nx=59;
}else { (3)
ny=65; nx=59−(cy‐50)x4;

} else { ¥
ny=cy−1; nx=cx−1;

【0134】
上記アルゴリズムに従ったカウンタ値出力によって、図24(A)の矢印の結線順に従ってスキャンが実行される。なお、(1),(2),(3)の領域に応じて、カウンタ値出力アルゴリズムの処理も(B)(カウンタ出力アルゴリズム)中の(1)〜(3)に示すように切り替えられる。
【0135】
このように、図16に示す画像変換部141のカウンタ408は、図18を参照して説明したように、5つのカウンタ501〜505と選択部511によって構成され、
第1サブカウンタは、傾斜角θ≒−27度(arctan(−1/2))、
第2サブカウンタは、傾斜角θ≒−14度(arctan(−1/4))、
第3サブカウンタは、傾斜角θ≒0度(arctan(0))、
第4サブカウンタは、傾斜角θ≒+14度(arctan(+1/4))、
第5サブカウンタは、傾斜角θ≒+27度(arctan(+1/2))、
に対応したスキャン順情報を、図20〜図24を参照して説明したアルゴリズムに従ってそれぞれ出力する。
【0136】
図16に示すように、カウンタ408は、SRAM1,401のアドレスを読み出して、演算部403から角度情報、すなわち、正規化処理に際して実行する回転角度情報を入力して、SRAM2,451に対する書き込みアドレスを、順次、出力する。演算部403から角度情報に応じて、5つのカウンタのいずれかのカウンタを選択出力する構成としたので、構成を小型化することが可能であり、正規化後の画像のSRAM2,451に対するデータ書き込みに際して、SRAM1,401の小さなメモリ領域を利用した処理が実現される。
【0137】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【0138】
なお、本明細書では、顔認識装置に適用した実施形態を中心に説明してきたが、本発明の要旨はこれに限定されるものではない。顔画像データの変換を実行して、メモリに格納、あるいはディスプレイに出力する処理を行なう様々な画像処理装置において適用可能である。
【0139】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【産業上の利用可能性】
【0140】
本発明の一実施例の構成によれば、顔識別処理を行なう画像処理装置において、正規化前の顔画像を蓄える第1メモリ(SRAM1)の画像を取り出して正規化を実行して第2メモリ(SRAM2)に格納する処理を行なう構成において、正規化前の顔画像を蓄える第1メモリ(SRAM1)に顔全体を格納することなく、一部のみを格納する構成としてメモリの小型化を実現し、さらに、第1メモリ(SRAM1)に格納された顔の傾きに応じて、第2メモリに対するデータ書き込み順としてのスキャンシーケンスを変更する構成としたので、メモリの小型化および正確な正規化画像の書き込み処理が実現される。
【図面の簡単な説明】
【0141】
【図1】図1は、本発明の一実施形態に係る顔認識システムの全体構成を模式的に示した図である。
【図2】図2は、顔識別器14の構成例を示した図である。
【図3】図3は、検出された顔画像を、縮小、シフト、回転変換して顔認識に必要な顔画像に正規化する様子を示した図である。
【図4A】図4Aは、24×24画素固定で構成されるガウス関数からなるフィルタ窓を示した図である。
【図4B】図4Bは、サイン関数又はコサイン関数からなる応答関数を示した図である。
【図4C】図4Cは、図4Bに示した応答関数に図4Aに示したフィルタ窓をかけて得られるガボア・フィルタを示した図である。
【図4D】図4Dは、22.5度ずつずらした8方向の応答関数についてそれぞれフィルタ窓をかけて得られる8通りのガボア・フィルタを示した図である。
【図4E】図4Eは、5種類の周波数fの応答関数について、同様に8方向の角度θでフィルタ窓をかけて得られる40種類のガボア・フィルタを示した図である。
【図5】図5は、正規化された60×66画素の顔画像に設けられた82箇所の特徴量抽出位置を示した図である。
【図6】図6は、画像変換部141において実行する画像変換処理の詳細について説明する図である。
【図7】図7は、SRAM2の画素位置二対応するSRAM1の画素位置を求める処理について説明する図である。
【図8】図8は、画像変換部141の補間処理部207の実行する画素補間処理について説明する図である。
【図9】図9は、正規化(画像変換処理)後の顔画像を格納するSRAM2,251の顔画像格納領域の画素の構成を示した図である。
【図10】図10は、正規化(画像変換処理)前の顔画像を格納するSRAM1,201の顔画像格納領域の画素の構成を示した図である。
【図11】図11は、図10に示すSRAM1,201の原点領域の近傍を拡大した図である。
【図12】図12は、正規化処理において必要とする対応画素算出処理について説明する図である。
【図13】図13は、補間処理部207における画素値の決定処理例の一例として、bi−linear手法を適用した処理例について説明する図である。
【図14】図14は、一部の顔画像データのみを格納するSRAM1の構成例について説明する図である。
【図15】図15は、一部の顔画像データのみを格納するSRAM1のデータ更新例について説明する図である。
【図16】図16は、一部の顔画像データのみを格納するSRAM1を有する画像変換部の構成例について説明する図である。
【図17】図17は、正規化後の画像の書き込み順としてのスキャン順について説明する図である。
【図18】図18は、一部の顔画像データのみを格納するSRAM1を有する画像変換部のカウンタ構成例について説明する図である。
【図19】図19は、一部の顔画像データのみを格納するSRAM1を有する画像変換部のカウンタの利用例について説明する図である。
【図20】図20は、一部の顔画像データのみを格納するSRAM1を有する画像変換部のカウンタを適用したスキャン例およびカウンタ値出力アルゴリズムについて説明する図である。
【図21】図21は、一部の顔画像データのみを格納するSRAM1を有する画像変換部のカウンタを適用したスキャン例およびカウンタ値出力アルゴリズムについて説明する図である。
【図22】図22は、一部の顔画像データのみを格納するSRAM1を有する画像変換部のカウンタを適用したスキャン例およびカウンタ値出力アルゴリズムについて説明する図である。
【図23】図23は、一部の顔画像データのみを格納するSRAM1を有する画像変換部のカウンタを適用したスキャン例およびカウンタ値出力アルゴリズムについて説明する図である。
【図24】図24は、一部の顔画像データのみを格納するSRAM1を有する画像変換部のカウンタを適用したスキャン例およびカウンタ値出力アルゴリズムについて説明する図である。
【符号の説明】
【0142】
1 顔認識システム
11 画縮小器
12 顔検出器
13 両目位置検出器
14 顔識別器
15 メモリ
141 画像変換部
142 ガボア・フィルタ適用部
143 類似度算出部
144 一致判定部
200 SDRAM
201 SRAM1
202 目位置検出部
203 演算部
204 アドレス作成部
205 座標変換部
206 カウンタ
207 補間処理部
251 SRAM2
401 SRAM1
402 目位置検出部
403 演算部
404 SDRAMアドレス作成部
405 SRAM1アドレス作成部
406 カウンタ
407 アドレスY作成部
408 カウンタ
409 座標変換部
410 補間処理部
451 SRAM2
501〜505 カウンタ
511 選択部

【特許請求の範囲】
【請求項1】
入力顔画像の識別処理を行なう画像処理装置であって、
識別処理対象となる顔画像を入力し、入力顔画像に対して画像変換を実行し、予め定められた設定を持つ画像に正規化する処理を実行する画像変換部と、
前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出する類似度算出部と、
前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定する一致判定手段を備え、
前記画像変換部は、
正規化処理の対象とする顔画像を格納した第1メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第2メモリに格納する処理を実行する構成であり、
前記第1メモリは、正規化処理の対象とする顔画像の一部のみを格納し、前記第2メモリに対する正規化処理後の画像の書き込みの進行に応じて、前記第1メモリの格納データの更新処理を実行するメモリ制御部を有する構成であることを特徴とする画像処理装置。
【請求項2】
前記メモリ制御部は、
前記第2メモリの書き込みアドレスと、該書き込みアドレスに対応する前記第1メモリの対応画素位置の縦方向(Y成分)を比較するアドレス比較部を有し、該アドレス比較部の比較情報に基づいて、前記第1メモリの対応画素位置が、前記前記第1メモリの格納データ中の縦(Y)方向において、ほぼ中央となるように前記第1メモリの格納データの更新処理を実行する構成であることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画像変換部は、
正規化処理に際して実行する画像回転の角度情報を入力し、該角度情報に応じて前記第2メモリ書き込みアドレスに相当するカウンタ値を出力するカウンタを有し、
前記カウンタは、
異なる角度に応じた異なるカウンタ値を出力する複数のサブカウンタを有する構成であることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記サブカウンタの各々は、
画像回転の角度:θ=arctan(±1/n)
ただしnは整数、
上記角度に対応した第2メモリ書き込みアドレスに相当するカウンタ値を出力する構成であることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記画像変換部は、
前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出するための変換パラメータを算出する演算部と、
前記演算部の算出した変換パラメータに含まれる画像回転の角度情報を入力し、入力角度情報に応じて前記第2メモリ書き込みアドレスに相当するカウンタ値を異なるカウンタ値を出力するカウンタと、
前記演算部の算出した変換パラメータに基づいて、前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出する座標変換部と、
前記座標変換部の算出した対応点情報に従って、前記第2メモリの各画素位置に対応する画素値を決定する補間処理部と、
を有する構成であることを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記演算部は、
前記変換パラメータとして、前記第1メモリに格納された顔画像を前記第2メモリに格納する顔画像に変換する際に適用する画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを算出し、
前記座標変換部は、
画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを適用して、前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出する処理を実行する構成であることを特徴とする請求項5に記載の画像処理装置。
【請求項7】
画像処理装置において、入力顔画像の識別処理を行なう画像処理方法であって、
画像変換部が、識別処理対象となる顔画像を入力し、入力顔画像に対して画像変換を実行し、予め定められた設定を持つ画像に正規化する処理を実行する画像変換ステップと、
類似度算出部が、前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出する類似度算出ステップと、
一致判定手段が、前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定する一致判定ステップを有し、
前記画像変換ステップは、
正規化処理の対象とする顔画像を格納した第1メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第2メモリに格納する処理を実行するステップと、
メモリ制御部が、前記第1メモリに正規化処理の対象とする顔画像の一部のみを格納し、前記第2メモリに対する正規化処理後の画像の書き込みの進行に応じて前記第1メモリの格納データの更新処理を実行するメモリ制御ステップを含むことを特徴とする画像処理方法。
【請求項8】
前記メモリ制御ステップは、
前記第2メモリの書き込みアドレスと、該書き込みアドレスに対応する前記第1メモリの対応画素位置の縦方向(Y成分)を比較し、比較情報に基づいて前記第1メモリの対応画素位置が、前記前記第1メモリの格納データ中の縦(Y)方向において、ほぼ中央となるように前記第1メモリの格納データの更新処理を実行することを特徴とする請求項7に記載の画像処理方法。
【請求項9】
前記画像変換部は、正規化処理に際して実行する画像回転の角度情報を入力し、該角度情報に応じて前記第2メモリ書き込みアドレスに相当するカウンタ値を出力するカウンタを有し、
前記カウンタは、異なる角度に応じた異なるカウンタ値を出力する複数のサブカウンタを含み、入力する角度情報に応じて適用するサブカウンタを選択して、選択されたサブカウンタのカウンタ値を出力することを特徴とする請求項7に記載の画像処理方法。
【請求項10】
前記サブカウンタの各々は、
画像回転の角度:θ=arctan(±1/n)
ただしnは整数、
上記角度に対応した第2メモリ書き込みアドレスに相当するカウンタ値を出力することを特徴とする請求項9に記載の画像処理方法。
【請求項11】
前記画像変換部は、
演算部が、前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出するための変換パラメータを算出する演算ステップと、
カウンタが、前記演算ステップにおいて算出した変換パラメータに含まれる画像回転の角度情報を入力し、入力角度情報に応じて前記第2メモリ書き込みアドレスに相当するカウンタ値を異なるカウンタ値を出力するカウンタ値出力ステップと、
座標変換部が、前記演算ステップにおいて算出した変換パラメータに基づいて、前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出する座標変換ステップと、
補間処理部が、前記座標変換ステップにおいて算出した対応点情報に従って、前記第2メモリの各画素位置に対応する画素値を決定する補間処理ステップと、
を有することを特徴とする請求項7に記載の画像処理方法。
【請求項12】
前記演算ステップは、
前記変換パラメータとして、前記第1メモリに格納された顔画像を前記第2メモリに格納する顔画像に変換する際に適用する画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを算出し、
前記座標変換ステップは、
画像縮小処理、または画像回転処理、または画像平行移動処理の少なくともいずれかの処理を規定する変換パラメータを適用して、前記第2メモリの各画素位置に対応する前記第1メモリの対応点を算出する処理を実行することを特徴とする請求項11に記載の画像処理方法。
【請求項13】
画像処理装置において、入力顔画像の識別処理を行なわせるコンピュータ・プログラムであり、
画像変換部に、識別処理対象となる顔画像を入力させ、入力顔画像に対して画像変換を実行させて予め定められた設定を持つ画像に正規化する処理を実行させる画像変換ステップと、
類似度算出部に、前記画像変換部において変換された変換入力画像から求めた特徴量と、登録画像の特徴量との類似度を算出させる類似度算出ステップと、
一致判定手段に、前記類似度算出部の算出した類似度に基づいて入力顔画像と登録顔画像が一致するか否かを判定させる一致判定ステップを有し、
前記画像変換ステップは、
正規化処理の対象とする顔画像を格納した第1メモリから、顔画像を取得して画像変換による正規化を実行して正規化後の顔画像を第2メモリに格納する処理を実行させるステップと、
メモリ制御部の制御により、前記第1メモリに正規化処理の対象とする顔画像の一部のみを格納させ、前記第2メモリに対する正規化処理後の画像の書き込みの進行に応じて、前記第1メモリの格納データの更新処理を実行させるメモリ制御ステップを含むことを特徴とするコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図5】
image rotate

【図6】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図4D】
image rotate

【図4E】
image rotate

【図7】
image rotate

【図8】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2008−191817(P2008−191817A)
【公開日】平成20年8月21日(2008.8.21)
【国際特許分類】
【出願番号】特願2007−24027(P2007−24027)
【出願日】平成19年2月2日(2007.2.2)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】