(57)【要約】【課題】  画像中に存在する人物顔の回転角度を検出する方法は、口や鼻等の顔の特定の部位を抽出して顔の重心位置を算出し、この重心位置と、抽出した顔の代表点とに基づいて、顔の回転角度を算出していたが、顔の向きや顔の周囲の照明に依っては、顔の部位を正しく抽出できず、顔の回転角度を確実に算出できないという問題があった。【解決手段】  顔の回転角度を検出する顔の回転角度検出装置は、画像の所定の領域を検出対象領域として読み取る画像読取手段１０と、所定の大きさで正規化した検出対象領域の画像をブロック毎に分割して、所定の画像特性を示す画像特徴量の代表値から検出対象領域内における画像特性の特徴を示す特徴ベクトルを生成する特徴ベクトル生成手段３０と、前記特徴ベクトルから、周期関数により写像された写像値を推定する推定手段５０と、前記写像値を逆写像して、顔の回転角度を算出する回転角度算出手段６０とを備える。【選択図】      図１
2006059215.tif 000002
【特許請求の範囲】
【請求項１】
画像中のオブジェクトの回転角度を検出するオブジェクトの回転角度検出装置であって、
前記画像の所定の領域を検出対象領域として読み取る画像読取手段と、
所定の大きさで正規化した前記検出対象領域の画像を、複数のブロックに分割して、当該ブロック毎に所定の画像特性を示す画像特徴量の代表値を算出し、当該代表値に基づき前記検出対象領域内における当該画像特性の特徴を示す特徴ベクトルを生成する特徴ベクトル生成手段と、
前記特徴ベクトルから、周期関数により写像された写像値を推定する推定手段と、
前記写像値を逆写像して、オブジェクトの回転角度を算出する回転角度算出手段とを備えることを特徴とするオブジェクトの回転角度検出装置。
【請求項２】
請求項１に記載のオブジェクトの回転角度検出装置において、
前記オブジェクトの回転角度検出装置は、前記回転角度を周期関数で写像して写像値を算出する回転角度写像手段を更に備え、
前記推定手段は、前記特徴ベクトルと、前記特徴ベクトルに対応する前記写像値との関係の学習に基づいて推定することを特徴とするオブジェクトの回転角度検出装置。
【請求項３】
請求項２に記載のオブジェクトの回転角度検出装置において、
前記回転角度写像手段は、少なくとも２つ以上の異なる周期関数から、それぞれ写像値を算出し、
前記回転角度算出手段は、それぞれの周期関数に応じたオブジェクトの回転角度を、前記写像値から算出することを特徴とするオブジェクトの回転角度検出装置。
【請求項４】
請求項１乃至３のいずれか１項に記載のオブジェクトの回転角度検出装置において、
前記オブジェクトの回転角度検出装置は、
前記周期関数と、前記周期関数に基づいて算出した前記回転角度との組合わせの中から、前記回転角度を所定の規則で規定する回転角度規定手段を更に備えることを特徴とするオブジェクトの回転角度検出装置。
【請求項５】
請求項１乃至４のいずれか１項に記載のオブジェクトの回転角度検出装置において、
前記推定手段は、サポートベクタ回帰を行う非線型のカーネル関数から成ることを特徴とするオブジェクトの回転角度検出装置。
【請求項６】
請求項１乃至５のいずれか１項に記載のオブジェクトの回転角度検出装置において、
前記特徴ベクトル生成手段は、
前記検出対象領域内の画像を所定の大きさで正規化する正規化部と、
前記画像を前記所定の画像特性で数値化して算出する画像特性算出部と、
前記検出対象領域を複数のブロックに分割して、前記数値化された数値の平均値又は分散値を当該ブロック毎に算出する平均・分散値算出部とを備えることを特徴とするオブジェクトの回転角度検出装置。
【請求項７】
請求項１乃至６のいずれか１項に記載のオブジェクトの回転角度検出装置において、
前記画像特性算出部は、前記検出対象領域内の画像を構成する各画素における輝度値を算出する輝度算出部を備えることを特徴とするオブジェクトの回転角度検出装置。
【請求項８】
請求項１乃至７のいずれか１項に記載のオブジェクトの回転角度検出装置において、
前記画像特性算出部は、前記検出対象領域内のエッジの強度を算出するエッジ強度算出部を備えることを特徴とするオブジェクトの回転角度検出装置。
【請求項９】
請求項８に記載のオブジェクトの回転角度検出装置において、
前記エッジの強度は、前記検出対象領域内の画像を構成する各画素におけるＳｏｂｅｌのオペレータを用いて算出されることを特徴とするオブジェクトの回転角度検出装置。
【請求項１０】
請求項１乃至９のいずれかに記載のオブジェクトの回転角度検出装置において、
前記オブジェクトは、顔であることを特徴とするオブジェクトの回転角度検出装置。
【請求項１１】
画像中における顔の回転角度を検出する顔の回転角度検出プログラムであって、
コンピュータを、
前記画像の所定の領域を検出対象領域として読み取る画像読取手段と、
所定の大きさで正規化した前記検出対象領域の画像を、複数のブロックに分割して、当該ブロック毎に所定の画像特性を示す画像特徴量の代表値を算出し、当該代表値に基づき前記検出対象領域内における当該画像特性の特徴を示す特徴ベクトルを生成する特徴ベクトル生成手段と、
前記特徴ベクトルから、周期関数により写像された写像値を推定する推定手段と、
前記写像値を逆写像して、顔の回転角度を算出する回転角度算出手段として機能させることを特徴とする顔の回転角度検出プログラム。
【請求項１２】
画像中の顔の回転角度を検出する顔の回転角度検出方法であって、
推定を行う推定手段が、画像特性の特徴を示す特徴ベクトルと、前記顔の回転角度を周期関数で写像した写像値とを関連付けて学習する学習工程と、
前記学習工程で学習した前記推定手段が、前記特徴ベクトルから前記写像値を推定して、前記写像値を逆写像することで前記顔の回転角度を求める検出工程とを備えることを特徴とする顔の回転角度検出方法。
【請求項１３】
請求項１２に記載の顔の回転角度検出方法において、
前記学習工程は、
前記顔を含む画像を読取る工程と、
前記顔から抽出した画像特徴量に基づいて特徴ベクトルを生成する工程と、
前記顔の回転角度を周期関数で写像して写像値を算出する工程と、
前記特徴ベクトルと前記写像値とを関連付けて学習する工程とを備えることを特徴とする顔の回転角度検出方法。
【請求項１４】
請求項１２乃至１３のいずれかに記載の顔の回転角度検出方法において、
前記検出工程は、
前記顔を含む画像を読取る工程と、
前記顔から抽出した画像特徴量に基づいて特徴ベクトルを生成する工程と、
前記特徴ベクトルから、周期関数により写像された写像値を推定する工程と、
前記写像値を逆写像して顔の回転角度を算出する工程と、
少なくとも２つ以上の周期関数から算出したそれぞれの前記回転角度の中から、
前記周期関数と、前記回転角度の数値とに応じて、顔の回転角度を規定する工程とを備えることを特徴とする顔の回転角度検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パターン認識やオブジェクト認識技術に係り、画像中に存在する人物顔のようなオブジェクトの回転角度を検出するオブジェクトの回転角度検出装置、顔の回転角度検出プログラムおよび顔の回転角度検出方法に関する。
【背景技術】
【０００２】
画像中の人物顔の回転角度を検出する方法としては、下記の特許文献１に記載されるように、顔の特徴点として、口や鼻等の顔の特定の部位を抽出して、この部位の画像から顔の重心位置を算出していた。そして、この重心位置と、抽出した顔の代表点とに基づいて、顔の回転角度を算出していた。
【０００３】
【特許文献１】特開平９−３５０７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法では、顔の向きや顔の周囲の照明に依っては、顔の部位を正しく抽出できないため、顔の回転角度を確実に算出できないという問題があった。
【課題を解決するための手段】
【０００５】
上記した課題を解決するために、本発明のオブジェクトの回転角度検出装置は、画像中のオブジェクトの回転角度を検出するオブジェクトの回転角度検出装置であって、前記画像の所定の領域を検出対象領域として読み取る画像読取手段と、所定の大きさで正規化した前記検出対象領域の画像を、複数のブロックに分割して、当該ブロック毎に所定の画像特性を示す画像特徴量の代表値を算出し、当該代表値に基づき前記検出対象領域内における当該画像特性の特徴を示す特徴ベクトルを生成する特徴ベクトル生成手段と、前記特徴ベクトルから、周期関数により写像された写像値を推定する推定手段と、前記写像値を逆写像して、オブジェクトの回転角度を算出する回転角度算出手段とを備えることを特徴とする。
【０００６】
上記構成によれば、画像特性の特徴を示す特徴ベクトルを生成して、この特徴ベクトルに基づいて、周期関数への写像値を推定し、その写像値を逆写像することで回転角度を算出するため、特定の部位の抽出に依存することなく、オブジェクトの回転角度を確実に算出できる。
【０００７】
本発明のオブジェクトの回転角度検出装置では、前記オブジェクトの回転角度検出装置は、前記回転角度を周期関数で写像して写像値を算出する回転角度写像手段を更に備え、前記推定手段は、前記特徴ベクトルと、前記特徴ベクトルに対応する前記写像値との関係の学習に基づいて推定することが好ましい。
上記構成によれば、回転角度を周期関数で写像するため、回転角度が０度と３６０度の近傍において生じる不連続誤差を防止できることに加えて、推定手段は、オブジェクトの回転に応じた写像値と、特徴ベクトルとの関係を学習するため、算出した特徴ベクトルに対応する写像値を高精度で推定できる。
【０００８】
本発明のオブジェクトの回転角度検出装置では、前記回転角度写像手段は、少なくとも２つ以上の異なる周期関数から、それぞれ写像値を算出し、前記回転角度算出手段は、それぞれの周期関数に応じたオブジェクトの回転角度を、前記写像値から算出することが好ましい。
上記構成によれば、少なくとも２つ以上の異なる周期関数から写像値を算出するため、それぞれの異なる周期関数に応じた回転角度を、少なくとも２つ以上算出できる。
【０００９】
本発明のオブジェクトの回転角度検出装置では、前記オブジェクトの回転角度検出装置は、前記周期関数と、前記周期関数に基づいて算出した前記回転角度との組合わせの中から、前記回転角度を所定の規則で規定する回転角度規定手段を更に備えることが好ましい。
上記構成によれば、前記周期関数に基づいて算出した前記回転角度と前記周期関数との組合わせの中から、所定の規則に従い、回転角度を適切に規定できる。
【００１０】
本発明のオブジェクトの回転角度検出装置では、前記推定手段は、サポートベクタ回帰を行う非線型のカーネル関数から成ることが好ましい。
上記構成によれば、推定処理をカーネル関数に置き換えて演算することで、演算の単純化に加えて、演算量を低減できるため、高速な推定処理が可能になる。
【００１１】
本発明のオブジェクトの回転角度検出装置では、前記特徴ベクトル生成手段は、前記検出対象領域内の画像を所定の大きさで正規化する正規化部と、前記画像を前記所定の画像特性で数値化して算出する画像特性算出部と、前記検出対象領域を複数のブロックに分割して、前記数値化された数値の平均値又は分散値を当該ブロック毎に算出する平均・分散値算出部とを備えることが好ましい。
上記構成によれば、所定の大きさで正規化された検出対象領域の画像を複数のブロックに分割して、そのブロック毎の特性値を平均値または分散値で代表して特徴ベクトルを算出する。従って、ブロック毎の特性値が損なわれないことに加え、特徴ベクトルを算出する演算量が激減するため、特徴ベクトルを的確かつ高速に算出できる。
【００１２】
本発明のオブジェクトの回転角度検出装置では、前記画像特性算出部は、前記検出対象領域内の画像を構成する各画素における輝度値を算出する輝度算出部を備えることが好ましい。
更に、本発明のオブジェクトの回転角度検出装置では、前記画像特性算出部は、前記検出対象領域内のエッジの強度を算出するエッジ強度算出部を備えることが好ましい。
上記構成によれば、検出対象領域内にオブジェクト画像が存在する場合は、その画像を精度良く、高速に識別できる。
【００１３】
本発明のオブジェクトの回転角度検出装置では、前記エッジの強度は、前記検出対象領域内の画像を構成する各画素におけるＳｏｂｅｌのオペレータを用いて算出されることが好ましい。
上記構成によれば、エッジ強度を精度良く検出できる。
【００１４】
そして、上記したオブジェクトを、顔に適用することで、顔の回転角度を確実に検出できる顔の回転角度検出装置を実現できる。
【００１５】
上記した課題を解決するために、本発明の顔の回転角度検出プログラムは、画像中における顔の回転角度を検出する顔の回転角度検出プログラムであって、コンピュータを、前記画像の所定の領域を検出対象領域として読み取る画像読取手段と、所定の大きさで正規化した前記検出対象領域の画像を、複数のブロックに分割して、当該ブロック毎に所定の画像特性を示す画像特徴量の代表値を算出し、当該代表値に基づき前記検出対象領域内における当該画像特性の特徴を示す特徴ベクトルを生成する特徴ベクトル生成手段と、前記特徴ベクトルから、周期関数により写像された写像値を推定する推定手段と、前記写像値を逆写像して、顔の回転角度を算出する回転角度算出手段として機能させることを特徴とする。
上記プログラムによれば、前記請求項１のオブジェクトの回転角度検出装置と同様の効果を奏するプログラムが実現できる。
【００１６】
上記した課題を解決するために、本発明の顔の回転角度検出方法は、画像中の顔の回転角度を検出する顔の回転角度検出方法であって、推定を行う推定手段が、画像特性の特徴を示す特徴ベクトルと、前記顔の回転角度を周期関数で写像した写像値とを関連付けて学習する学習工程と、前記学習工程で学習した前記推定手段が、前記特徴ベクトルから前記写像値を推定して、前記写像値を逆写像することで前記顔の回転角度を求める検出工程とを備えることを特徴とする。
また、本発明の顔の回転角度検出方法では、前記学習工程は、前記顔を含む画像を読取る工程と、前記顔から抽出した画像特徴量に基づいて特徴ベクトルを生成する工程と、前記顔の回転角度を周期関数で写像して写像値を算出する工程と、前記特徴ベクトルと前記写像値とを関連付けて学習する工程とを備えることが好ましい。
【００１７】
更に、本発明の顔の回転角度検出方法では、前記検出工程は、前記顔を含む画像を読取る工程と、前記顔から抽出した画像特徴量に基づいて特徴ベクトルを生成する工程と、前記特徴ベクトルから、周期関数により写像された写像値を推定する工程と、前記写像値を逆写像して顔の回転角度を算出する工程と、少なくとも２つ以上の周期関数から算出したそれぞれの前記回転角度の中から、前記周期関数と、前記回転角度の数値とに応じて、顔の回転角度を規定する工程とを備えることが好ましい。
上記方法によれば、前記請求項１のオブジェクトの回転角度検出装置と同様の効果を奏する。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態について、オブジェクトの回転角度検出装置の一例として、人物の顔画像の回転角度を検出する顔の回転角度検出装置を用いて説明する。
【実施例】
【００１９】
（Ａ．装置の構成）
以下、本発明を実施するための最良の形態を添付図面を参照しながら詳述する。
図１は、本発明に係る顔の回転角度検出装置１の実施の一形態の構成を示すブロック図である。また、図２は、画像８０中の顔８６の回転角度（θ）を示す図である。
図１に示すように、この顔の回転角度検出装置１は、画像８０を読み取るための画像読取手段１０と、複数のブロックに分割した画像の特徴ベクトルを生成する特徴ベクトル生成手段３０と、顔８６の回転角度を周期関数で写像して写像値を算出する回転角度写像手段４０と、この特徴ベクトルに基づいて、周期関数により写像された写像値を推定するＳＶＭ（サポートベクタマシーン）から成る推定手段５０と、写像値を逆写像して、顔８６の回転角度を算出する回転角度算出手段６０と、周期関数と当該周期関数に基づいて算出した回転角度との組合わせの中から、適切な回転角度を規定する回転角度規定手段７０とから主に構成されている。
【００２０】
画像読取手段１０は、具体的には、デジタルスチルカメラやデジタルビデオカメラ等のＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ：電荷結合素子）カメラやビジコンカメラ、イメージスキャナ等であり、読み込んだ画像８０内の所定の領域をＡ／Ｄ変換して、そのデジタルデータを特徴ベクトル生成手段３０へ送る機能を提供する。
【００２１】
特徴ベクトル生成手段３０は、画像読取手段１０で読み取った画像を所定の大きさに正規化する正規化部３１と、正規化された画像の画像特性を数値化して算出する画像特性算出部３２と、画素領域を所定の大きさで複数のブロックに分割して、数値化された数値の平均値または分散値を算出する平均・分散値算出部３８とを備える。また、この画像特性算出部３２は、画像中の輝度を算出する輝度算出部３４と、画像中のエッジの強度を算出するエッジ強度算出部３６とを備える。そして、これらの機能部により、画像８０の画像特性を示す特徴ベクトルが生成される。
【００２２】
この中で、正規化部３１は、画像８０の大きさを所定の大きさ（例えば、２４×２４ピクセル）に正規化する。ここで、正規化する方法としては、画像ピクセル間の補間方法であるバイリニア法やバイキュービック法を採用できる。また、特徴ベクトル生成手段３０を構成する他の機能の詳細は、後述する。
【００２３】
回転角度写像手段４０は、後述するＳＶＭ５０の学習工程において、画像８０中の顔８６の回転角度を、周期関数で写像して写像値を算出する。ここで、周期関数は、三角関数である正弦関数（Ｓｉｎ）や余弦関数（Ｃｏｓ）を採用する。
【００２４】
ここで、識別手段としてのＳＶＭ５０について詳述する。このＳＶＭ５０は、１９９５年にＡＴ＆ＴのＶ．Ｖａｐｎｉｋによって統計的学習理論の枠組みで提案され、マージンという指標を用いて全ての２クラスの入力データを線形分離するのに最適な超平面を求めることができる学習機械のことであり、パターン認識の能力において最も優秀な学習モデルの一つであることが知られている。また、線形分離不可能な場合でもカーネルトリックというテクニックを用いることにより、高い推定能力を発揮できることが知られている。
【００２５】
そして、このＳＶＭ５０を用いてサポートベクタ回帰を行うことで、顔８６の回転角度を推定する。このサポートベクタ回帰とは、「A Tutorial on Support Vector Regression」（A.J.Smola & B.SscOlkopfシェルコプフ,NeuroCOLT Technical Report Series, NeuroCOLT2 Technical Report Series,NC2-TR-1998-030,Octorber,1998 http://www.neurocolt.com）に記述され、下記の式で示される。
【００２６】
【数１】
2006059215.tif 000003
【００２７】
ここで、ｘは特徴ベクトル、ｘｉはサポートベクトルであり、特徴ベクトル生成手段３０で生成された値を用いる。また、Ｋはカーネル関数であり、一般には、多項式やガウス関数が用いられる。本実施の形態では、非線形関数であるＲＢＦ関数を適用する。更に、νiは重み係数であり、ｂはバイアス項である。上記した式の値（ｆ）は、サポートベクタ回帰で推定する回転角度の写像値を示す。
また、このＳＶＭ５０は、次の２つの工程において、それぞれ異なる処理を行う。
（１）特徴ベクトルと写像値とを関連付けることで学習する学習工程
（２）学習に基づいて、特徴ベクトルから写像値を推定する推定工程
これらの工程における処理の詳細については、後述する。
【００２８】
回転角度算出手段６０は、ＳＶＭ５０の推定工程において、ＳＶＭ５０が推定した写像値に対して、逆写像を行い回転角度を算出する。この逆写像で用いる関数は、ＳＶＭ５０の学習工程において、回転角度写像手段４０で用いた周期関数に対して逆写像を行う関数を採用する。例えば、周期関数として、正弦関数（Ｓｉｎ）を用いた場合、逆写像関数は、逆正弦関数（ＡｒｃＳｉｎ）を採用する。また、周期関数として、余弦関数（Ｃｏｓ）を用いた場合、逆写像関数は、逆余弦関数（ＡｒｃＣｏｓ）を採用する。
【００２９】
回転角度規定手段７０は、ＳＶＭ５０の推定工程において、周期関数として正弦関数（Ｓｉｎ）を用いた場合に回転角度算出手段６０で算出した回転角度と、周期関数として余弦関数（Ｃｏｓ）を用いた場合に回転角度算出手段６０で算出した回転角度との中から、それぞれの周期関数と回転角度の値とに基づいて、より適切な値と推測できる方の回転角度を規定する。
【００３０】
次に、図３は、この顔の回転角度検出装置１のハードウェア構成を示す図である。この図に示すように、各種制御や演算処理を担う中央演算処理装置であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２４と、主記憶装置（Ｍａｉｎ  Ｓｔｏｒａｇｅ）に用いられるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３と、読み出し専用の記憶装置であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２と、ハードディスクドライブ装置（ＨＤＤ）や半導体メモリ等の補助記憶装置（Ｓｅｃｏｎｄａｒｙ  Ｓｔｏｒａｇｅ）２５、及びモニタ（ＬＣＤ（液晶ディスプレイ）やＣＲＴ（陰極線管））等からなる出力装置２７、イメージスキャナやキーボード、マウス、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）やＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）等の撮像センサ等からなる入力装置２６と、これらの入出力インターフェース（Ｉ／Ｆ）２１等との間を、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスやＩＳＡ（Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ；アイサ）バスやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）バス等からなるプロセッサバス、メモリバス、システムバス、入出力バス等の各種のバス２０によってバス接続されたものである。
【００３１】
そして、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記憶媒体、あるいは通信ネットワーク（ＬＡＮ，ＷＡＮ，インターネット等）２８を介して供給される各種制御用プログラムやデータを補助記憶装置２５等にインストールすると共に、そのプログラムやデータを必要に応じてＲＡＭ２３にロードし、そのＲＡＭ２３にロードされたプログラムに従ってＣＰＵ２４が各種リソースを駆使して所定の制御及び演算処理を行い、その処理結果（処理データ）をバス２０を介して出力装置２７に出力して表示すると共に、そのデータを必要に応じて補助記憶装置２５によって形成されるデータベースに適宜記憶、保存（更新）処理する。
【００３２】
尚、この顔の回転角度検出装置１を構成する画像読取手段１０、特徴ベクトル生成手段３０、回転角度写像手段４０、ＳＶＭ５０、回転角度算出手段６０および回転角度規定手段７０等は、実際には、ＣＰＵ２４やＲＡＭ２３等からなるハードウェア資源と、ＲＯＭ２２や補助記憶装置２５に記憶されたソフトウェアとが有機的に協働することにより、それぞれの機能を実現している。
【００３３】
（Ｂ．ＳＶＭの学習工程）
次に、ＳＶＭ５０による学習工程について説明する。図４は、ＳＶＭ５０に対する学習方法を説明する図である。なお、本実施例である顔の回転角度検出装置１では、回転角度写像手段４０を２つ備える。即ち、一方の回転角度写像手段４２は、周期関数として正弦関数（Ｓｉｎ）を採用する。また、他方の回転角度写像手段４４は、周期関数として余弦関数（Ｃｏｓ）を採用する。加えて、ＳＶＭ５０についても２つ備え、一方の推定手段（ＳＶＭ）５２は、周期関数として正弦関数（Ｓｉｎ）を採用した一方の回転角度写像手段４２が算出した写像値を学習する。また、他方の推定手段（ＳＶＭ）５４は、周期関数として余弦関数（Ｃｏｓ）を採用した回転角度写像手段４４が算出した写像値を学習する。
【００３４】
図５は、ＳＶＭ５０による学習方法の一例を示すフローチャートであり、この図に従って学習工程の流れを説明する。
本実施例における顔の回転角度検出装置１は、学習工程を開始すると、先ず、学習対象画像と、顔の回転角度とを入力する工程を実行する。即ち、顔の回転角度検出装置１は、画像読取手段１０により、例えば、イメージスキャナのような入力装置２６を介して、学習の対象となる学習顔画像８２を入力し、更に、この学習顔画像８２の顔の回転角度を、例えば、キーボードのような入力装置２６を介して入力する（ステップＳ１００）。
【００３５】
次に、顔の回転角度検出装置１は、特徴ベクトル生成手段により、所定の画像特性を用いて特徴ベクトルを生成する。この特徴ベクトルの生成については、後述する（ステップＳ１０２）。
次に、一方の回転角度写像手段４２は、正弦関数（Ｓｉｎ）を周期関数として、入力された学習顔画像８２の顔の回転角度の写像値を算出する（ステップＳ１０４）。
続いて、一方の推定手段（ＳＶＭ）５２は、前記特徴ベクトルと、前記一方の回転角度写像手段４２が算出した写像値とを学習する（ステップＳ１０６）。
次に、他方の回転角度写像手段４４は、余弦関数（Ｃｏｓ）を周期関数として、入力された学習顔画像８２の顔の回転角度の写像値を算出する（ステップＳ１０８）。
続いて、他方の推定手段（ＳＶＭ）５４は、前記特徴ベクトルと、前記他方の回転角度写像手段４４が算出した写像値とを学習する（ステップＳ１１０）。
そして、両方のＳＶＭ５２，５４が正しく学習できたか、否かの学習結果９２を、例えば、モニターのような出力装置２７に出力して学習工程を終了する。
なお、前記学習工程で用いた学習対象画像を回転させることで、顔の回転角度を変化させ、再度、前記学習工程で学習を行う動作を反復することもできる。
【００３６】
次に、所定の画像特性で特徴ベクトルを生成する方法について説明する。図６は、画像特徴ベクトルの生成を示すフローチャートである。この画像特徴ベクトルの生成処理が開始されると、先ず、顔の回転角度検出装置１は、正規化部３１により、検出対象領域の大きさを所定のサイズ、例えば２４×２４画素に正規化（リサイズ）する。（ステップＳ１２０）。
次に、顔の回転角度検出装置１は、画像特性はエッジ強度を採用するか否かを判断する（ステップＳ１２２）。ここで、画像特性としてエッジ強度を採用するか、または画素の輝度を採用するかについては、画像特徴ベクトルの生成処理が開始される前に、予め決定されている。
前記決定に従い、画像特性はエッジ強度を採用すると判断された場合（ステップＳ１２２でＹｅｓ）、顔の回転角度検出装置１は、エッジ強度算出部３６により画像特徴量として、検出対象領域の画像のエッジ強度を算出する（ステップＳ１２４）。その後、次の工程（ステップＳ１２８）に進む。
【００３７】
尚、このエッジを検出する方法としては、図７に示すような差分型エッジ検出オペレータの１つである「Ｓｏｂｅｌのオペレータ」を適用できる。図７（ａ）に示すオペレータ（フィルタ）は、２行２列目の注目画素を囲む８つの画素値のうち、左列及び右列に位置するそれぞれ３つの画素値を調整することで横方向のエッジを強調し、図７（ｂ）に示すオペレータは、２行２列目の注目画素を囲む８つの画素値のうち、上行及び下列に位置するそれぞれ３つの画素値を調整して縦方向のエッジを強調することで縦横のエッジを検出するものである。
そして、このようなオペレータで生成した結果を二乗和した後、平方根をとることでエッジの強度を求め、各画素におけるエッジの強さ、又はエッジの分散値を生成することにより、画像特徴ベクトルを精度良く検出することができる事が知られている。
【００３８】
また、前記決定に従い、画像特性はエッジ強度を採用すると判断されない場合（ステップＳ１２２でＮｏ）、顔の回転角度検出装置１は、輝度算出部３４により画像特徴量として、検出対象領域の画素の輝度を算出する（ステップＳ１２６）。その後、次の工程（ステップＳ１２８）に進む。
【００３９】
顔の回転角度検出装置１は、検出対象領域内を複数のブロックに分割する（ステップＳ１２８）。
なお、ブロックの分割画素は、本実施例においては、４×３ピクセルの大きさのブロックで分割している。
次に、顔の回転角度検出装置１は、平均・分散値算出部３８において、平均値を採用するか否かを判断する（ステップＳ１３０）。ここで、代表値として、平均値を採用するか、または分散値を採用するかについては、画像特徴ベクトルの生成処理が開始される前に、予め決定されている。
前記決定に従い、平均値を採用すると判断された場合（ステップＳ１３０でＹｅｓ）、各ブロック内の画像特徴量の平均値を算出して（ステップＳ１３２）、画像特徴ベクトルの生成処理を終了する。
また、前記決定に従い、平均値を採用すると判断されない場合（ステップＳ１３０でＮｏ）、各ブロック内の画像特徴量の分散値を算出して（ステップＳ１３４）、画像特徴ベクトルの生成処理を終了する。
【００４０】
（Ｃ．ＳＶＭによる推定工程）
次に、ＳＶＭ５０による推定工程について説明する。図８は、ＳＶＭ５０による推定方法を説明する図である。なお、本実施例である顔の回転角度検出装置１では、回転角度算出手段６０を２つ備える。即ち、一方の回転角度算出手段６２は、前記一方の推定手段（ＳＶＭ）５２が推定した写像値を逆写像して回転角度を算出する。また、他方の回転角度算出手段６４は、前記他方の推定手段（ＳＶＭ）５４が推定した写像値を逆写像して回転角度を算出する。
ここで、前記一方の推定手段（ＳＶＭ）５２は、学習工程において、正弦関数（Ｓｉｎ）を用いて算出した写像値を学習しているため、一方の回転角度算出手段６２は、逆写像関数として、逆正弦関数（ＡｒｃＳｉｎ）を採用する。同様に、前記他方の推定手段（ＳＶＭ）５４は、学習工程において、余弦関数（Ｃｏｓ）を用いて算出した写像値を学習しているため、他方の回転角度算出手段６４は、逆写像関数として、逆余弦関数（ＡｒｃＣｏｓ）を採用する。
【００４１】
図９は、ＳＶＭ５０による推定方法の一例を示すフローチャートであり、この図に従って推定工程の流れを説明する。
本実施例における顔の回転角度検出装置１は、推定工程を開始すると、先ず、顔の回転角度を検出する検出対象画像８４を入力する工程を実行する。即ち、顔の回転角度検出装置１は、画像読取手段１０により、例えば、イメージスキャナのような入力装置２６を介して、検出対象画像８４を入力する（ステップＳ１４０）。
【００４２】
次に、顔の回転角度検出装置１は、特徴ベクトル生成手段により、所定の画像特性を用いて特徴ベクトルを生成する（ステップＳ１４２）。
次に、顔の回転角度検出装置１は、一方の推定手段（ＳＶＭ）５２により、学習工程における学習に基づいて、特徴ベクトルから正弦関数（Ｓｉｎ）を周期関数とする写像値を推定する（ステップＳ１４４）。
続いて、顔の回転角度検出装置１は、一方の回転角度算出手段６２により、写像値を逆正弦関数（ＡｒｃＳｉｎ）で逆写像することで、一方の回転角度を算出する（ステップＳ１４６）。
次に、顔の回転角度検出装置１は、他方の推定手段（ＳＶＭ）５４により、学習工程における学習に基づいて、特徴ベクトルから余弦関数（Ｃｏｓ）を周期関数とする写像値を推定する（ステップＳ１４８）。
続いて、顔の回転角度検出装置１は、他方の回転角度算出手段６４により、写像値を逆余弦関数（ＡｒｃＣｏｓ）で逆写像することで、他方の回転角度を算出する（ステップＳ１５０）。
【００４３】
次に、顔の回転角度検出装置１は、一方の回転角度算出手段６２で算出した回転角度と、他方の回転角度算出手段６４で算出した回転角度との中から、より適切な値と推測できる方の回転角度を規定する（ステップＳ１５２）。
ここで、適切な回転角度を規定する方法について説明する。図１０は、回転角度の数値による周期関数の誤差を示す図である。この図によると、周期関数として正弦関数（Ｓｉｎ）を使用した場合と、余弦関数（Ｃｏｓ）を使用した場合とでは、回転角度の値に依り、推定される誤差の分布が異なる。従って、推定される誤差がより少ない方の周期関数を回転角度の値により選定して、選定した周期関数が示す回転角度を、顔の回転角度検出装置１が示す回転角度９４として結果出力９０する。例えば、一方の回転角度算出手段６２で算出した回転角度と、他方の回転角度算出手段６４で算出した回転角度とが共に４５度から１３５度の範囲、または、２２５度から３１５度の範囲であれば、逆余弦関数（ＡｒｃＣｏｓ）で逆写像した他方の回転角度算出手段６４が算出した角度を採用する。また、上記角度以外の範囲であれば、逆正弦関数（ＡｒｃＳｉｎ）で逆写像した他方の回転角度算出手段６４が算出した角度を採用する。
【００４４】
以上、顔の回転角度検出装置１を上述した方法で用いることにより、顔の回転角度を取得できる。そして、取得した顔の回転角度は、図示を略すが、回転装置等に送信される。この回転装置等の近傍には、ニューラルネットやＳＶＭ等によるパターン認識装置が更に設置され、このパターン認識装置が検出対象画像８４の顔をパターン認識できるように、回転装置等は、検出対象画像８４を顔の回転角度を小さくする方向に回転させる。
【００４５】
以上述べたような実施例によれば、次のような効果がある。
（１）検出対象領域内のエッジ強度や画素の輝度等の画像特性を示す画像特徴量から生成した特徴ベクトルを用いて、回転角度との組み合わせを予め学習し、学習を基に推測して回転角度を算出するため、顔の向きや照明などの影響を受け難い。
（２）周期関数として使用する正弦関数（Ｓｉｎ）および余弦関数（Ｃｏｓ）、ならびに、これらの逆関数は、種々の分野で多様される関数であるため、市販のソフトウェア等により、容易かつ高精度に近似計算できる。
【００４６】
以上、本発明を図示した実施形態に基づいて説明したが、本発明は、これに限定されるものではなく、以下に述べるような変形例も想定できる。
（１）本発明では、検出対象画像として、人間の顔全体の画像を対象としたが、これに限らず、人間の顔や体の特定の部位、あるいは、人間に限らない動物の顔の識別にも適用できる。
（２）エッジの強度を求める方法として、「Ｓｏｂｅｌのオペレータ」を採用したが、これに限らず、「Ｒｏｂｅｒｔｓ」や「Ｐｒｅｗｉｔｔ」等のオペレータも採用できる。
【図面の簡単な説明】
【００４７】
【図１】本発明に係る顔の回転角度検出装置の実施の一形態を示すブロック図。
【図２】画像中の顔の回転角度を示す図。
【図３】顔の回転角度検出装置のハードウェア構成を示す図。
【図４】ＳＶＭに対する学習方法を説明する図。
【図５】ＳＶＭによる学習方法の流れを示すフローチャート。
【図６】画像特徴ベクトルの生成を示すフローチャート。
【図７】Ｓｏｂｅｌのフィルタの形状を示す図。
【図８】ＳＶＭによる推定方法を説明する図。
【図９】ＳＶＭによる推定方法の流れを示すフローチャート。
【図１０】回転角度の数値による周期関数の誤差を示す図。
【符号の説明】
【００４８】
１…顔の回転角度検出装置、１０…画像読取手段、２０…バス、２２…ＲＯＭ、２３…ＲＡＭ、２４…ＣＰＵ、２５…補助記憶装置、２６…入力装置、２７…出力装置、３０…特徴ベクトル生成手段、３１…正規化部、３２…画像特性算出部、３４…輝度算出部、３６…エッジ強度算出部、３８…平均・分散値算出部、４０，４２，４４…回転角度写像手段、５０，５２，５４…推定手段（ＳＶＭ）、６０，６２，６４…回転角度算出手段、７０…回転角度規定手段、８０…画像、８２…学習顔画像、８４…検出対象画像、８６…顔、９０…結果出力、９２…学習結果、９４…回転角度。
【図１】
2006059215.tif 000004
【図２】
2006059215.tif 000005
【図３】
2006059215.tif 000006
【図４】
2006059215.tif 000007
【図５】
2006059215.tif 000008
【図６】
2006059215.tif 000009
【図７】
2006059215.tif 000010
【図８】
2006059215.tif 000011
【図９】
2006059215.tif 000012
【図１０】
2006059215.tif 000013