(57)【特許請求の範囲】
【請求項１】
入力された画像に対し、人の顔画像における複数の特徴点にそれぞれ対応する複数のノードを予め決められた初期位置に配置する配置手段と、
前記配置手段によって配置された各ノードの周囲に複数のサンプリング点を配置し、前記複数のサンプリング点における特徴量を、対応する各ノードのノード特徴量として取得する特徴量取得手段と、
学習用の画像において、複数のノードがそれぞれに対応する特徴点の正しい位置からずれた位置に配置された状態で取得される前記ノード特徴量及び各ノードにおける前記正しい位置と前記ずれた位置との差、についての相関関係の情報を予め記憶している記憶手段と、
前記記憶手段に記憶される前記相関関係の情報と、前記特徴量取得手段によって取得された各ノードのノード特徴量とに基づいて、現在の各ノードの位置とそれぞれに対応する特徴点の位置とのずれを示す誤差推定量を取得する誤差推定量取得手段と、
前記誤差推定量取得手段によって得られた前記誤差推定量と、現在の各ノードの位置とに基づいて、入力された画像における各特徴点の位置を推定する推定手段と
を備える顔特徴点検出装置。
【請求項２】
繰り返し処理の終了を判定する終了判定手段をさらに備え、
前記配置手段は、前記誤差推定量が得られた場合は、この誤差推定量に基づいて現在の各ノードの位置を移動させ、
前記配置手段と前記誤差推定量取得手段とは、繰り返して処理を実行し、
前記推定手段は、前記終了判定手段によって終了が判定された時点での誤差推定量と、この時点での各ノードの位置とに基づいて、入力された画像における各特徴点の位置を推定する
請求項１に記載の顔特徴点検出装置。
【請求項３】
前記終了判定手段は、前記誤差推定量取得手段によって得られた誤差推定量が閾値以下になった場合に、繰り返し処理の終了と判定する請求項２に記載の顔特徴点検出装置。
【請求項４】
前記入力された画像から少なくとも人の顔又は人の顔の要素の位置を検出する検出手段をさらに備え、
前記配置手段は、前記検出された人の顔又は人の顔の要素の位置に基づいて、前記各ノードの初期位置を決定する請求項１〜３のいずれかに記載の顔特徴点検出装置。
【請求項５】
前記検出手段は、人の顔の向きをさらに検出し、
前記配置手段は、各ノードの相対的な位置関係を定めたノードモデルを有し、前記ノードモデルに基づいて各ノードを前記初期位置に配置する際に、前記顔検出手段によって検出された顔の向きに基づいて、ノードモデルを変形させて使用する請求項４に記載の顔特徴点検出装置。
【請求項６】
前記検出手段は、人の顔の大きさをさらに検出し、
前記配置手段は、各ノードの相対的な位置関係を定めたノードモデルを有し、前記ノードモデルに基づいて各ノードを前記初期位置に配置する際に、前記顔検出手段によって検出された顔の大きさに基づいて、ノードモデルを変形させて使用する請求項４に記載の顔特徴点検出装置。
【請求項７】
前記検出手段は、人の顔の向きをさらに検出し、
前記配置手段は、各ノードの相対的な位置関係を定めたノードモデルを、顔の向きに応じて複数有し、
前記記憶手段は、それぞれに対応する向きの顔が撮像された前記学習用画像を用いて予め得られた各ノードモデルに対応する前記相関関係の情報を記憶し、
前記配置手段は、前記ノードモデルに基づいて各ノードを前記初期位置に配置する際に、前記顔検出手段によって検出された顔の向きに基づいて、使用するノードモデルを選択し、
前記誤差推定量取得手段は、前記配置手段によって選択されたノードモデルに対応する前記相関関係の情報を前記記憶手段から読み出し使用する
請求項４に記載の顔特徴点検出装置。
【請求項８】
前記検出手段は、人の顔の大きさをさらに検出し、
前記配置手段は、各ノードの相対的な位置関係を定めたノードモデルを、顔の大きさに応じて複数有し、
前記記憶手段は、それぞれに対応する大きさの顔が撮像された前記学習用画像を用いて予め得られた各ノードモデルに対応する前記相関関係の情報を記憶し、
前記配置手段は、前記ノードモデルに基づいて各ノードを前記初期位置に配置する際に、前記顔検出手段によって検出された顔の大きさに基づいて、使用するノードモデルを選択し、
前記誤差推定量取得手段は、前記配置手段によって選択されたノードモデルに対応する前記相関関係の情報を前記記憶手段から読み出し使用する
請求項４に記載の顔特徴点検出装置。
【請求項９】
前記特徴量取得手段は、ノードに近いほど密に、ノードから遠いほど疎にサンプリング点を配置する請求項１〜８のいずれかに記載の顔特徴点検出装置。
【請求項１０】
前記特徴量取得手段は、レティナ構造に従ってサンプリング点の配置を行う請求項９に記載の顔特徴点検出装置。
【請求項１１】
前記特徴量取得手段は、複数の異なるレティナ構造を記憶し、各ノードに応じたレティナ構造に従って前記サンプリング点を配置する請求項１０に記載の顔特徴点検出装置。
【請求項１２】
前記記憶手段は、学習用の画像において、複数のノードがそれぞれに対応する特徴点の正しい位置に配置された状態で取得される前記ノード特徴量と、その画像における人の顔の姿勢を示す情報と、についての相関関係の情報をさらに予め記憶し、
前記推定手段によって推定された各ノードの位置と、前記記憶手段に記憶される顔の姿勢についての相関関係の情報とに基づいて、前記入力された画像に撮像された人の顔の姿勢を推定する姿勢推定手段をさらに備える請求項１〜１１のいずれかに記載の顔特徴点検出装置。
【請求項１３】
アクティブシェイプモデル（Ａｃｔｉｖｅ  Ｓｈａｐｅ  Ｍｏｄｅｌ）で使用される顔形状モデルを用いて、入力画像における顔の特徴点検出を行う顔特徴点検出装置であって、
入力された画像に対し前記顔形状モデルを初期位置に配置する配置手段と、
前記配置手段によって配置された顔形状モデルの各ノード位置に基づいてレティナ構造に従って複数の特徴量を取得し、同一のノード位置に基づいて取得された複数の特徴量を一つのノード特徴量として取得する特徴量取得手段と、
前記顔形状モデルが誤った位置に配置された場合に各ノードについて得られるノート特徴量の集合及び前記顔形状モデルが正しい位置に配置された場合と誤った位置に配置された場合における各ノードの位置の差を示すベクトルの集合、を入力とした正準相関分析により予め取得された変換ベクトル行列を誤差推定行列として記憶する記憶手段と、
前記記憶手段に記憶される誤差推定行列と、前記特徴量取得手段によって取得されたノード特徴量の集合とに基づいて、顔形状モデルの各ノードの現在位置と顔の特徴点の位置とのずれを示す誤差推定量を取得する誤差推定量取得手段と、
前記誤差推定量取得手段によって得られた前記誤差推定量に基づいて、現在の顔形状モデルの各ノード位置を変更する変更手段と、
前記変更手段によって位置が変更された後の各ノード位置を顔特徴点の位置として推定する推定手段と
を備える顔特徴点検出装置。
【請求項１４】
入力された画像に対し、所定の対象物の画像における複数の特徴点にそれぞれ対応する複数のノードを予め決められた初期位置に配置する配置手段と、
前記配置手段によって配置された各ノードの周囲に複数のサンプリング点を配置し、前記複数のサンプリング点における特徴量を、対応する各ノードのノード特徴量として取得する特徴量取得手段と、
学習用の画像において、複数のノードがそれぞれに対応する特徴点の正しい位置からずれた位置に配置された状態で取得される前記ノード特徴量及び各ノードにおける前記正しい位置と前記ずれた位置との差、についての相関関係の情報を予め記憶している記憶手段と、
前記記憶手段に記憶される前記相関関係の情報と、前記特徴量取得手段によって取得された各ノードのノード特徴量とに基づいて、現在の各ノードの位置とそれぞれに対応する特徴点の位置とのずれを示す誤差推定量を取得する誤差推定量取得手段と、
前記誤差推定量取得手段によって得られた前記誤差推定量と、現在の各ノードの位置とに基づいて、入力された画像における各特徴点の位置を推定する推定手段と
を備える特徴点検出装置。
【請求項１５】
情報処理装置が、入力された画像に対し、人の顔画像における複数の特徴点にそれぞれ対応する複数のノードを予め決められた初期位置に配置するステップと、
情報処理装置が、配置された各ノードの周囲に複数のサンプリング点を配置するステップと、
情報処理装置が、前記複数のサンプリング点における特徴量を、対応する各ノードのノード特徴量として取得するステップと、
学習用の画像において、複数のノードがそれぞれに対応する特徴点の正しい位置からずれた位置に配置された状態で取得される前記ノード特徴量及び各ノードにおける前記正しい位置と前記ずれた位置との差、についての相関関係の情報を予め記憶している記憶手段に記憶される前記相関関係の情報と、取得された各ノードのノード特徴量とに基づいて、情報処理装置が、現在の各ノードの位置とそれぞれに対応する特徴点の位置とのずれを示す誤差推定量を取得するステップと、
情報処理装置が、前記誤差推定量と、現在の各ノードの位置とに基づいて、入力された画像における各特徴点の位置を推定するステップと
を含む顔特徴点検出方法。
【請求項１６】
情報処理装置が、入力された画像に対し、所定の対象物の画像における複数の特徴点にそれぞれ対応する複数のノードを予め決められた初期位置に配置するステップと、
情報処理装置が、配置された各ノードの周囲に複数のサンプリング点を配置するステップと、
情報処理装置が、前記複数のサンプリング点における特徴量を、対応する各ノードのノード特徴量として取得するステップと、
学習用の画像において複数のノードがそれぞれに対応する特徴点の正しい位置からずれた位置に配置された状態で取得される前記ノード特徴量及び各ノードにおける前記正しい位置と前記ずれた位置との差、についての相関関係の情報を予め記憶している記憶手段に記憶される前記相関関係の情報と、取得された各ノードのノード特徴量とに基づいて、情報処理装置が、現在の各ノードの位置とそれぞれに対応する特徴点の位置とのずれを示す誤差推定量を取得するステップと、
情報処理装置が、前記誤差推定量と、現在の各ノードの位置とに基づいて、入力された画像における各特徴点の位置を推定するステップと
を含む特徴点検出方法。
【請求項１７】
入力された画像に対し、人の顔画像における複数の特徴点にそれぞれ対応する複数のノードを予め決められた初期位置に配置するステップと、
配置された各ノードの周囲に複数のサンプリング点を配置するステップと、
前記複数のサンプリング点における特徴量を、対応する各ノードのノード特徴量として取得するステップと、
学習用の画像において、複数のノードがそれぞれに対応する特徴点の正しい位置からずれた位置に配置された状態で取得される前記ノード特徴量及び各ノードにおける前記正しい位置と前記ずれた位置との差、についての相関関係の情報を予め記憶している記憶手段に記憶される前記相関関係の情報と、取得された各ノードのノード特徴量とに基づいて、現在の各ノードの位置とそれぞれに対応する特徴点の位置とのずれを示す誤差推定量を取得するステップと、
前記誤差推定量と、現在の各ノードの位置とに基づいて、入力された画像における各特徴点の位置を推定するステップと
を情報処理装置に実行させるためのプログラム。
【請求項１８】
入力された画像に対し、所定の対象物の画像における複数の特徴点にそれぞれ対応する複数のノードを予め決められた初期位置に配置するステップと、
配置された各ノードの周囲に複数のサンプリング点を配置するステップと、
前記複数のサンプリング点における特徴量を、対応する各ノードのノード特徴量として取得するステップと、
学習用の画像において、複数のノードがそれぞれに対応する特徴点の正しい位置からずれた位置に配置された状態で取得される前記ノード特徴量及び各ノードにおける前記正しい位置と前記ずれた位置との差、についての相関関係の情報を予め記憶している記憶手段に記憶される前記相関関係の情報と、取得された各ノードのノード特徴量とに基づいて、
現在の各ノードの位置とそれぞれに対応する特徴点の位置とのずれを示す誤差推定量を取得するステップと、
前記誤差推定量と、現在の各ノードの位置とに基づいて、入力された画像における各特徴点の位置を推定するステップと
を情報処理装置に実行させるためのプログラム。
【請求項１９】
情報処理装置が、アクティブシェイプモデル（Ａｃｔｉｖｅ  Ｓｈａｐｅ  Ｍｏｄｅｌ）で使用される顔形状モデルを用いて、入力画像における顔の特徴点検出を行う方法であって、
情報処理装置が、入力された画像に対し前記顔形状モデルを初期位置に配置するステップと、
情報処理装置が、配置された顔形状モデルの各ノード位置に基づいてレティナ構造に従って複数の特徴量を取得し、同一のノード位置に基づいて取得された複数の特徴量を一つのノード特徴量として取得するステップと、
前記顔形状モデルが誤った位置に配置された場合に各ノードについて得られるノート特徴量の集合及び前記顔形状モデルが正しい位置に配置された場合と誤った位置に配置された場合における各ノードの位置の差を示すベクトルの集合、を入力とした正準相関分析により予め取得された変換ベクトル行列を誤差推定行列として記憶する記憶手段に記憶される誤差推定行列と、取得されたノード特徴量の集合とに基づいて、情報処理装置が、顔形状モデルの各ノードの現在位置と顔の特徴点の位置とのずれを示す誤差推定量を取得するステップと、
情報処理装置が、得られた前記誤差推定量に基づいて、現在の顔形状モデルの各ノード位置を変更するステップと、
情報処理装置が、位置が変更された後の各ノード位置を顔特徴点の位置として推定するステップと
を含む方法。
【請求項２０】
情報処理装置に、アクティブシェイプモデル（Ａｃｔｉｖｅ  Ｓｈａｐｅ  Ｍｏｄｅｌ）で使用される顔形状モデルを用いて、入力画像における顔の特徴点検出を実行させるためのプログラムであって、
入力された画像に対し前記顔形状モデルを初期位置に配置するステップと、
配置された顔形状モデルの各ノード位置に基づいてレティナ構造に従って複数の特徴量を取得し、同一のノード位置に基づいて取得された複数の特徴量を一つのノード特徴量として取得するステップと、
前記顔形状モデルが誤った位置に配置された場合に各ノードについて得られるノート特徴量の集合及び前記顔形状モデルが正しい位置に配置された場合と誤った位置に配置された場合における各ノードの位置の差を示すベクトルの集合、を入力とした正準相関分析により予め取得された変換ベクトル行列を誤差推定行列として記憶する記憶手段に記憶される誤差推定行列と、取得されたノード特徴量の集合とに基づいて、顔形状モデルの各ノードの現在位置と顔の特徴点の位置とのずれを示す誤差推定量を取得するステップと、
得られた前記誤差推定量に基づいて、現在の顔形状モデルの各ノード位置を変更するステップと、
位置が変更された後の各ノード位置を顔特徴点の位置として推定するステップと
を情報処理装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の中から対象物の特徴点を検出するための装置や方法やプログラム等に適用されて有効な技術に関する。
【背景技術】
【０００２】
画像の中から対象物の特徴点を検出する技術として、顔を対象物として、顔の特徴点を検出する技術がある。以下、顔を対象物とした場合の背景技術について述べる。【０００３】
人物が撮像された画像から顔の特徴点位置を得ることにより、例えば、その人物の目の開閉情報、顔姿勢、視線方向、顔の表情などを推定することができる。また、これらの推定結果から、その人物の状態をより詳細に知ることが可能となる。そして、人物の状態を詳細に把握することにより、マン・マシン・インタフェースの性能向上や新たなサービスの提供等を図ることができる。このように、顔の特徴点位置を正確に知ることは、マン・マシン・インタフェースの開発の上で重要な課題となっている。【０００４】
このようなマン・マシン・インタフェースの例として、運転者モニタリングシステムがある。このシステムでは、運転者の目の開閉、顔姿勢、視線方向などが逐次観察される。そして、この観察結果に基づいて運転者の疲労度合い等が判断され、状況に応じた的確なアドバイスが可能となる。【０００５】
また、他のマン・マシン・インタフェースの例として、動画ビデオカメラや静止画カメラなどへの応用がある。これらの装置において、被撮影者の顔姿勢を知ることにより、撮影条件を変化させるなど、多彩な処理が可能となる。この他、目や口などの特徴点の画像を詳細に解析することで、個人の識別を高い精度で行うことも可能となる。【０００６】
画像から顔の特徴点位置を得る方法（以下、「特徴点検出方法」と呼ぶ）としては、テンプレートマッチングによるもの、及びその応用によるものが一般的である。これらの方法では、各特徴点の一般的な情報（以下、「特徴量」と呼ぶ）が予め保存される。そして、画像内の一部の領域から得られる特徴量と、保存されている特徴量とが比較されることにより、取得すべき特徴点であるか否かが判断される。このとき使用される特徴量の具体例としては、画像の輝度値ベクトルがある。また、両特徴量の比較手段としては、正規化相関やユークリッド距離を使用するものが一般的である。【０００７】
このような技術の例として、分離度フィルタによって予め探索点数を減らした後、パターンマッチングにより特徴点候補を検出する技術が提案されている（特許文献１参照）。この技術では、特徴点候補が検出された後、幾何的な拘束条件を適用し、最も人間の顔らしいと判断される候補点の組み合わせが出力される。【０００８】
しかしこの技術では、ほぼ正面を向いた、撮影条件のよい人物画像の特徴点しか検出することができない。従って、特徴点の一部が遮蔽物によって隠れてしまった画像や、予め保存されている特徴点の取得時と撮影条件（例えば照明条件）が大きく異なる画像からは、特徴点を正確に検出することは困難であった。【０００９】
また、顔の特徴点位置を得ることにより顔姿勢を推定する技術もある（特許文献２，３参照）。このような技術では、顔の特徴点位置が取得された後、その全体配置や特徴量を用いて推定する手法が一般的である。例えば、目や口や眉や鼻を示す特徴点の座標と顔姿勢との関係が予めルックアップテーブルとして保存されている。そして、画像から取得された特徴点の座標に対応する顔姿勢が、このルックアップテーブルから判断され、推定結果として出力される。この他にも、顔全体又は顔の特徴量のテンプレートを複数の顔の向きに対応して用意し、これらのテンプレートとマッチングをとることによって顔姿勢を求める手法もある。しかしながら、これらの手法においても、顔姿勢の推定が正確に実行できるか否かは、顔の特徴点位置の精度に依存する。従って、顔の特徴点位置の取得を正確に実行できなければ、顔姿勢の推定も正確に行うことができなかった。【００１０】
このような問題を解決する技術として、ＡＳＭ（Ａｃｔｉｖｅ  Ｓｈａｐｅ  Ｍｏｄｅｌ）と呼ばれる技術がある（非特許文献１参照）。ＡＳＭでは、予め、学習用の顔画像について特徴点の位置が取得され、顔形状モデルが作成され保持される。顔形状モデルは、各顔特徴点に対応するノードによって構成される。なお、顔形状モデルの詳細については、発明を実施するための最良の形態の欄で説明する。【００１１】
次に、ＡＳＭにより画像から特徴点の位置を検出する処理について説明する。まず、処理対象となる画像の適当な初期位置に、この顔形状モデルが配置される。次に、顔形状モデルの各ノード周りにおいて、特徴量の取得が行われる。各ノードは、取得された特徴量と予めそのノードに対応づけて保持されている特徴量とを比較する。この比較により、各ノードに対応する特徴量に最も近い特徴量が取得された位置（即ち、各ノードに対応する特徴点である可能性が最も高いと判断される位置）に移動される。この時点で、顔形状モデルの各ノードの位置は、初期の位置からずれている。そこで、変形されたノード集合が、顔形状モデルに射影されることにより整形される。各ノード周りにおける特徴量の取得以降の処理が、所定の回数、又は一定の条件（収束条件）が満たされるまで繰り返し実行される。そして、各ノードの最終的な位置が、各特徴点の位置と判断される。【００１２】
ＡＳＭでは、上記のように、各ノードの位置が移動した後に、顔形状モデルへの射影が行われる。この処理により、各ノードの位置関係が顔らしい形状を保ったまま、特徴点の正確な位置を検出することができる。即ち、一般の人の顔の形状からは到底ありえない位置に偶然的に特徴点と似た特徴量を有する部分が存在した場合にも、このような点を特徴点として誤検出することが防止される。【００１３】
しかしながら、従来のＡＳＭでは、各ノードにおいて周囲の探索処理（特徴量の取得と、その比較）を行う必要があった。このため、多くの計算時間を必要とするという欠点があった。また、従来のＡＳＭには、ロバスト性が低いという問題があった。即ち、処理対象となる画像中の顔の向きが、初期位置に配置された顔形状モデルにおいて想定されている顔の向きと大きく異なる場合、特徴点の検出に失敗する場合が多いという問題があった。【００１４】
ＡＳＭのこのような問題を解決するための技術として、ＡＡＭ（Ａｃｔｉｖｅ  Ａｐｐｅａｒａｎｃｅ  Ｍｏｄｅｌ）がある（非特許文献２参照）。ＡＡＭでは、以下のようにして顔特徴点の位置が求められる。まず、ＡＳＭの場合と同様に、学習用の顔画像について特徴点の位置が取得され、顔形状モデルが作成される。次に、各ノード位置の平均値が取得され、平均位置のノードの集合により構成される平均形状モデルが作成される。次に、学習用の顔画像において各特徴点により構成される複数のパッチが作成され、各パッチが平均形状モデルに射影され、シェイプフリーイメージが作成される（この処理を「形状修正処理」と呼ぶ）。そして、シェイプフリーイメージの集合について主成分分析が実施されることにより、顔輝度値モデル（シェイプフリー顔輝度値モデル）が作成される。次に、顔形状モデルを正解位置から一定ずつ各方向に微小にずらした際のシェイプフリー顔輝度値ベクトルが求められる。これらの集合について線形回帰計算が行われる。これにより、微小にずれた顔輝度値ベクトルから顔形状モデルの正解点への移動・変形方向、量を推定することが可能になる。ＡＡＭでは、以上の処理が学習処理として、予め実行される。【００１５】
次に、ＡＡＭにより画像から特徴点の位置を検出する処理について説明する。まず、処理対象となる画像の適当な初期位置に、顔形状モデルが配置される。次に、配置された顔形状モデルのノード位置に基づいてパッチが作成され、各パッチにおける輝度分布がサンプリングされる。そして、サンプリングされた輝度分布が射影されることにより、シェイプフリー顔輝度値モデルが作成される。【００１６】
次に、このシェイプフリー顔輝度値モデルから、予め求められている回帰式により、顔形状モデルの移動・変形量が推定される。顔形状モデルは、この推定結果に従って移動・変形される。以上の処理が、所定の回数、又は一定の条件（収束条件）が満たされるまで繰り返し実行される。そして、各ノードの最終的な位置が、各特徴点の位置と判断される。【００１７】
ＡＡＭによれば、上記のように、各ノード周りの探索処理を行うことなく各特徴点の位置を検出することができる。このため、ＡＳＭの場合と異なり、各ノード周りの探索処理に時間を要することが無く、計算時間を削減できる。また、形状モデルを変形させることにより探索を行うため、ＡＳＭの場合と同様に、各ノードの位置関係が顔らしい形状を保ったまま、特徴点の正確な位置を検出することが可能となる。
【特許文献１】特開平９−２５１５３４号公報
【特許文献２】特開２０００−９７６７６号公報
【特許文献３】特開２００３−１４１５５１号公報
【非特許文献１】Ａ．  Ｌａｎｉｔｉｓ，  Ｃ．  Ｊ．Ｔａｙｌｏｒ，  Ｔ．  Ｆ．  Ｃｏｏｔｅｓ，  “Ａｕｔｏｍａｔｉｃ  Ｉｎｔｅｒｐｒｅｔａｔｉｏｎ  ａｎｄ  Ｃｏｄｉｎｇ  ｏｆ  Ｆａｃｅ  Ｉｍａｇｅｓ  Ｕｓｉｎｇ  Ｆｌｅｘｉｂｌｅ  Ｍｏｄｅｌｓ．  ＩＥＥＥ  ＰＡＭＩ  Ｖｏｌ．１９  Ｎｏ．７  ｐｐ．７４３−７５６，  Ｊｕｌｙ  １９９７．
【非特許文献２】Ｔ．Ｆ．Ｃｏｏｔｅｓ，  Ｇ．  Ｊ．  Ｅｄｗａｒｄｓ  ａｎｄ  Ｃ．Ｊ．Ｔａｙｌｏｒ．  “Ａｃｔｉｖｅ  Ａｐｐｅａｒａｎｃｅ  Ｍｏｄｅｌｓ”，  ＩＥＥＥ  ＰＡＭＩ，Ｖｏｌ．２３，  Ｎｏ．６，  ｐｐ．６８１−６８５，  ２００１
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、ＡＡＭには以下のような問題点がある。【００１９】
ＡＡＭによって各特徴点の位置検出の精度を維持するためには、各パッチの輝度分布を取得する際に均質で密度の高いサンプリングを行う必要がある。このため、そのサンプリングや、輝度分布を平均形状モデルへ射影する際の計算量が多大となり、多くの計算時間を要してしまう。さらに、ＡＡＭでは、正解点周りの微小なずれによる線形回帰に基づいて、顔形状モデルの移動量や変形量が推定される。このため、大きなずれに対しては正しい推定を行うことができず、正しい結果を得ることができない。【００２０】
このように、従来のＡＳＭやＡＡＭを用いた処理では、探索処理や、均質且つ高密度なサンプリングによる輝度分布の形状修正処理などにおいて多くの計算量を必要とするため、高速に特徴点の検出を行うことができなかった。しかしながら、上記したように、特徴点の検出結果はマン・マシン・インタフェース等において入力データとして利用されるため、応答性が求められる場合が多い。このため、高速に特徴点の検出を行う事への要求が高まっていることも事実である。【００２１】
そこで本発明はこれらの問題を解決し、顔画像から特徴点の位置を高速に検出することを可能とする装置やプログラム等を提供することを目的とする。
【課題を解決するための手段】
【００２２】
従来は、ＡＡＭのように、形状修正処理を行うことによって、誤差推定（顔形状モデルにおける各ノードの正解点への移動方向や移動量を推定すること）を行うことが一般であった。従って、これまで、誤差推定を行うにあたり形状修正処理を省くことは検討されてこなかった。しかし、従来のＡＡＭにおいて、計算量の増大を招いていた要因を検討すると、必要とされている形状修正処理がその要因として挙げられる。そこで、本発明者は、このような形状修正処理を行うことなく顔特徴点の検出を可能とする装置について検討した。【００２３】
また、従来は、誤差推定の精度を高く維持するため、各ノードの周囲で高密度なサンプリングが実施されることが一般であった。例えば、従来のＡＡＭでは、各ノードによって構成されるパッチ内において均質且つ高密度なサンプリング（具体的には、通常１万点以上のサンプリング）が必要とされていた。従って、これまで、誤差推定を行うにあたり低密度なサンプリングを実施することは検討されてこなかった。しかし、従来のＡＡＭにおいて、計算量の増大を招いていた要因の一つとして、このような均質で高密度なサンプリングも挙げることができる。そこで、本発明者は、このような均質且つ高密度なサンプリングを行うことなく顔特徴点の検出を可能とする装置について検討した。【００２４】
これらの検討の結果、本発明者は以下のような考えに至った。まず、従来のＡＡＭにおける誤差推定では、各ノードにより構成されるパッチにおいてサンプリングが実施されていた。このため、パッチのように面としてサンプリングの結果を捉えると、誤差推定の結果に基づくノードの移動に伴う形状変形を形状修正処理によって修正しなければ処理の精度を維持することが難しかった。しかし、各ノードの周囲の複数の点について非均質且つ低密度のサンプリングを行う場合、形状が変形しても点は変形しないため、またサンプリング点が低密度であるため、ノードの移動に伴う形状変形の影響を受けにくい。このため、形状修正処理を特に実施することなく処理の精度を維持することが可能となる。このような検討結果に基づき、本発明者は以下のような顔特徴点検出装置を提案する。【００２５】
本発明の第一の態様は、顔特徴点検出装置であって、配置手段，特徴量取得手段，記憶手段，誤差推定量取得手段，及び推定手段を備える。配置手段は、入力された画像に対し、人の顔画像における複数の特徴点にそれぞれ対応する複数のノードを予め決められた初期位置に配置する。各ノードは、検出の対象となる特徴点各々に対応づけられている。また、初期位置とは、入力された画像中において各ノードの対応する特徴点に近いと想定される位置であることが望ましい。従って、このような基準に基づいて初期位置が予め定められると良い。例えば、人の顔は画面中央に撮像されることが多いという経験に基づいて、画面中央を初期位置とすることができる。【００２６】
特徴量取得手段は、配置手段によって配置された各ノードの周囲に複数のサンプリング点を配置する。そして、特徴量取得手段は、複数のサンプリング点における特徴量を、対応する各ノードのノード特徴量として取得する。特徴量の具体例として、画素の輝度値，Ｓｏｂｅｌフィルタ特徴量，ＨａｒｒＷａｖｅｌｅｔ特徴量，ＧａｂｏｒＷａｖｅｌｅｔ特徴量やこれらを複合した値がある。また、サンプリング点の配置は、非均質で低密度であっても良い。【００２７】
記憶手段は、予め実行されている学習結果を記憶する。この学習結果は、複数の学習用の画像について学習処理を行うことにより取得される。具体的には、以下に示す二つの値についての相関関係の情報が、予め学習結果として取得される。一方の値は、複数のノードがそれぞれに対応する特徴点の正しい位置に配置された状態で取得されるノード特徴量と、複数のノードがそれぞれに対応する特徴点の正しい位置からずれた位置に配置された状態で取得されるノード特徴量との差である。他方の値は、各ノードにおける正しい位置と前記ずれた位置との差である。このような二つの値についての相関関係の情報は、例えば正準相関分析や、線形回帰，線形重回帰，非線形重回帰などの分析手法によって取得される。【００２８】
誤差推定量取得手段は、記憶手段に記憶される相関関係の情報と、特徴量取得手段によって取得された各ノードのノード特徴量とに基づいて、現在の各ノードの位置とそれぞれに対応する特徴点の位置とのずれを示す誤差推定量を取得する。【００２９】
推定手段は、誤差推定量取得手段によって得られた誤差推定量と、現在の各ノードの位置とに基づいて、入力された画像における各特徴点の位置を推定する。即ち、顔特徴点検出手段は、推定手段によって推定された各位置において各特徴点を検出したこととなる。【００３０】
本発明の第一の態様によれば、第一に、形状修正処理が必要とされない。言い換えれば、本発明の第一の態様によれば、形状修正処理が実施されない。このため、これまで形状修正処理に費やされていた多くの処理を省き、処理の高速化を図ることが可能となる。【００３１】
本発明の第一の態様によれば、第二に、各ノードの周囲において探索処理をする必要はなく、各ノードによって構成されるパッチにおいて面としての高密度なサンプリングを行う必要もない。このため、従来技術によるこのようなサンプリングによって必要とされていた多くの計算量を削減することが可能となる。【００３２】
顔特徴点の検出処理が高速化されることにより、上記したマン・マシン・インタフェースを高速に動作させることが可能となる。例えば、運転手モニタリングシステムはその性質から応答性が要求されるが、従来実現されていなかったこの要求を解決することが可能となる。【００３３】
本発明の第一の態様は、繰り返し処理の終了を判定する終了判定手段をさらに備えても良い。終了判定手段は、例えば繰り返し処理が実行された回数をカウントし、所定の回数に達した場合に終了を判定するように構成されても良い。終了判定手段がさらに備えられる場合、配置手段は、誤差推定量が得られた場合は、この誤差推定量に基づいて現在の各ノードの位置を移動させる。そして、配置手段と誤差推定量取得手段とは、繰り返して処理を実行し、推定手段は、終了判定手段によって終了が判定された時点での誤差推定量と、この時点での各ノードの位置とに基づいて、入力された画像における各特徴点の位置を推定する。【００３４】
このように構成された本発明の第一の態様によれば、誤差推定量に基づいて移動された各ノードの新たな位置に基づいて、再び誤差推定量が求められ、この処理が繰り返される。そして、終了判定手段によって、この繰り返し処理の終了が判定された時点での誤差推定量と、この時点での各ノードの位置とに基づいて、各特徴点の位置が推定される。従って、各ノードの初期位置に基づいた一度の誤差推定量の取得により各特徴点の位置が推定される場合に比べて、その精度が向上する。【００３５】
本発明の第一の態様における終了判定手段は、誤差推定量取得手段によって得られた誤差推定量が閾値以下になった場合に、繰り返し処理の終了と判定するように構成されても良い。このように構成されることにより、各特徴点の位置をより正確に検出することが可能となる。【００３６】
本発明の第一の態様は、入力された画像から少なくとも人の顔又は人の顔の要素（顔に含まれる器官や部分を指し、例えば目，鼻，口，額などである）の位置を検出する顔検出手段をさらに備えても良い。この場合、配置手段は、検出された人の顔又は人の顔の要素の位置に基づいて、各ノードの初期位置を決定する。このように構成されることにより、各ノードの初期位置が適切な位置、即ちそれぞれが対応する特徴点に近い位置となる。このため、各特徴点の位置をより正確に検出することが可能となる。【００３７】
本発明の第一の態様における顔検出手段は、人の顔の向きをさらに検出するように構成されても良い。この場合、配置手段は、各ノードの相対的な位置関係を定めたノードモデルを有し、ノードモデルに基づいて各ノードを初期位置に配置する際に、顔検出手段によって検出された顔の向きに基づいて、ノードモデルを変形させて使用するように構成されても良い。例えば、配置手段は、顔検出手段によって顔の向きが左向きとして検出された場合には、ノードモデルの各ノードを、左向きの顔にマッチするように変形しても良い。具体的には、配置手段は、例えば顔の左側に位置する特徴点に対応するノード間のベクトルのうち水平方向の成分を小さくし、逆に顔の右側に位置する特徴点に対応するノード間のベクトルのうち水平方向の成分を大きくしても良い。配置手段は、他の方向の顔が検出された場合にも、それぞれの方向について上記のような変形処理を行うように構成されても良い。このように構成されることにより、予め用意されたノードモデルを変形せずに使用する場合に比べて、各特徴点の位置をより正確に検出することが可能となる。【００３８】
本発明の第一の態様における顔検出手段は、人の顔の大きさをさらに検出するように構成されても良い。この場合、配置手段は、各ノードの相対的な位置関係を定めたノードモデルを有し、ノードモデルに基づいて各ノードを初期位置に配置する際に、顔検出手段によって検出された顔の大きさに基づいて、ノードモデルを変形させて使用するように構成されても良い。例えば、配置手段は、顔検出手段によって検出された顔の大きさに基づいて、ノードモデルを拡大又は縮小して使用するように構成されても良い。このように構成されることにより、予め用意されたノードモデルを変形せずに使用する場合に比べて、各特徴点の位置をより正確に検出することが可能となる。【００３９】
本発明の第一の態様における顔検出手段は、人の顔の向きをさらに検出するように構成されても良い。この場合、配置手段は、各ノードの相対的な位置関係を定めたノードモデルを、顔の向きに応じて複数有するように構成されても良い。例えば、配置手段は、右向きの顔，正面向きの顔，左向きの顔，上向きの顔，下向きの顔それぞれに対応するノードモデルを有するように構成されても良い。また、記憶手段は、それぞれに対応する向きの顔が撮像された学習用画像を用いて予め得られた各ノードモデルに対応する相関関係の情報を記憶するように構成されても良い。また、配置手段は、ノードモデルに基づいて各ノードを初期位置に配置する際に、顔検出手段によって検出された顔の向きに基づいて、使用するノードモデルを選択するように構成されても良い。そして、誤差推定量取得手段は、配置手段によって選択されたノードモデルに対応する相関関係の情報を記憶手段から読み出し使用するように構成されても良い。【００４０】
このように構成された本発明の第一の態様では、顔検出手段によって検出された顔の向きに特化したノードモデル及びこのノードモデルに対応する相関関係の情報を用いて顔特徴点検出が行われる。従って、常に一つのノードモデルが使用される場合に比べて、各特徴点の位置をより正確に検出することが可能となる。【００４１】
本発明の第一の態様における顔検出手段は、人の顔の大きさをさらに検出するように構成されても良い。この場合、配置手段は、各ノードの相対的な位置関係を定めたノードモデルを、顔の大きさに応じて複数有するように構成されても良い。また、記憶手段は、それぞれに対応する大きさの顔が撮像された学習用画像を用いて予め得られた各ノードモデルに対応する相関関係の情報を記憶するように構成されても良い。また、配置手段は、ノードモデルに基づいて各ノードを初期位置に配置する際に、顔検出手段によって検出された顔の大きさに基づいて、使用するノードモデルを選択するように構成されても良い。また、誤差推定量取得手段は、配置手段によって選択されたノードモデルに対応する相関関係の情報を記憶手段から読み出し使用するように構成されても良い。【００４２】
このように構成された本発明の第一の態様では、顔検出手段によって検出された顔の大きさに特化したノードモデル及びこのノードモデルに対応する相関関係の情報を用いて顔特徴点検出が行われる。従って、常に一つのノードモデルが使用される場合に比べて、各特徴点の位置をより正確に検出することが可能となる。【００４３】
本発明の第一の態様における特徴量取得手段は、ノードに近いほど密に、ノードから遠いほど疎にサンプリング点を配置するように構成されても良い。また、本発明の第一の態様における特徴量取得手段は、レティナ構造に従ってサンプリング点の配置を行うように構成されても良い。また、本発明の第一の態様における特徴量取得手段は、複数の異なるレティナ構造を記憶し、各ノードに応じたレティナ構造に従ってサンプリング点を配置するように構成されても良い。【００４４】
本発明の第一の態様における記憶手段は、学習用の画像において、複数のノードがそれぞれに対応する特徴点の正しい位置に配置された状態で取得されるノード特徴量と、その画像における人の顔の姿勢を示す情報と、についての相関関係の情報をさらに予め記憶するように構成されても良い。この場合、本発明の第一の態様は、推定手段によって推定された各ノードの位置と、記憶手段に記憶される顔の姿勢についての相関関係の情報とに基づいて、入力された画像に撮像された人の顔の姿勢を推定する姿勢推定手段をさらに備えるように構成されても良い。【００４５】
このように構成されることにより、入力された画像に含まれる人の顔がどのような姿勢であるかを判断することが可能となる。顔の姿勢とは、例えば顔の向いている方向のｘ軸成分，ｙ軸成分，及びｚ軸成分により表される状態であっても良い。また、顔の姿勢とは、右向き，左向き，正面向き，上向き，下向きとして表される状態であっても良い。【００４６】
本発明の第二の態様は、アクティブシェイプモデル（Ａｃｔｉｖｅ  Ｓｈａｐｅ  Ｍｏｄｅｌ）で使用される顔形状モデルを用いて、入力画像における顔の特徴点検出を行う顔特徴点検出装置であって、配置手段，特徴量取得手段，記憶手段，誤差推定量取得手段，変更手段，及び推定手段を備える。【００４７】
配置手段は、入力された画像に対し前記顔形状モデルを初期位置に配置する。【００４８】
特徴量取得手段は、配置手段によって配置された顔形状モデルの各ノード位置に基づいてレティナ構造に従って複数の特徴量を取得し、同一のノード位置に基づいて取得された複数の特徴量を一つのノード特徴量として取得する。【００４９】
記憶手段は、顔形状モデルが正しい位置に配置された場合に顔形状モデルの各ノードについて得られるノード特徴量の集合と、顔形状モデルが誤った位置に配置された場合に各ノードについて得られるノート特徴量の集合との差、及び正しい位置に配置された場合と誤った位置に配置された場合における各ノードの位置の差を示すベクトルの集合、を入力とした正準相関分析により予め取得された変換ベクトル行列を誤差推定行列として記憶する。【００５０】
誤差推定量取得手段は、記憶手段に記憶される誤差推定行列と、特徴量取得手段によって取得されたノード特徴量の集合とに基づいて、顔形状モデルの各ノードの現在位置と顔の特徴点の位置とのずれを示す誤差推定量を取得する。【００５１】
変更手段は、誤差推定量取得手段によって得られた誤差推定量に基づいて、現在の顔形状モデルの各ノード位置を変更する。【００５２】
そして、推定手段は、変更手段によって位置が変更された後の各ノード位置を顔特徴点の位置として推定する。【００５３】
このように構成された本発明の第二の態様によっても、本発明の第一の態様と同様の作用や効果を奏することができる。【００５４】
本発明の第三の態様は、特徴点検出装置であって、配置手段，特徴量取得手段，記憶手段，誤差推定量取得手段，及び推定手段を備える。本発明の第三の態様における特徴点検出装置は、処理の対象となる対象物が顔に限定されない点で、本発明の第一の態様や第二の態様における顔特徴点検出装置と異なる。よって、本発明の第三の態様における配置手段は、入力された画像に対し、所定の対象物の画像における複数の特徴点にそれぞれ対応する複数のノードを予め決められた初期位置に配置する。【００５５】
上記のように、ここでいう対象物とは、第一の態様や第二の態様において示した顔には限定されない。即ち、対象物とは、形状モデルを設定できるものであればどのような対象物であっても良い。例えば、対象物は、人の全体（全身）、レントゲン画像やＣＴ（Ｃｏｍｐｕｔｅｒｉｚｅｄ  Ｔｏｍｏｇｒａｐｈｙ）画像における臓器であっても良い。言い換えれば、大きさの個人差がある対象物や基本的な形が変わらずに変形する対象物について本技術は適用可能である。また、他の例として、自動車などの工業製品のように変形しない剛体の対象物であっても、形状モデルを設定することができるため本技術を適用することができる。【００５６】
第一〜第三の態様は、プログラムが情報処理装置によって実行されることによって実現されても良い。即ち、本発明は、上記した第一〜第三の態様における各手段が実行する処理を、情報処理装置に対して実行させるためのプログラム、或いは当該プログラムを記録した記録媒体として特定することができる。また、本発明は、上記した各手段が実行する処理を情報処理装置が実行する方法をもって特定されても良い。また、ここに示す情報処理装置とは、パーソナルコンピュータ，デジタルカメラ，デジタルビデオカメラ，防犯カメラ，デジタルカメラを搭載した携帯電話機，デジタルビデオレコーダ，画像処理を行うサーバ（ネットワークに接続されたサーバであっても良い），デジタルフォトプリンタ，ミニラボ機などである。
【発明の効果】
【００５７】
本発明によれば、顔画像から顔の特徴点の位置を検出する際に、形状修正処理や高密度なサンプリングを必要としない。このため、特徴点の検出処理をより高速に実現することが可能となる。
【発明を実施するための最良の形態】
【００５８】
以下の説明において、顔画像とは、少なくとも人物の顔の一部または全部の画像を含む画像である。従って、顔画像とは、人物全体の画像を含んでも良いし、人物の顔だけや上半身だけの画像を含んでも良い。また、顔画像は、複数の人物についての画像を含んでも良い。さらに、顔画像は、その背景に人物以外の風景（背景：被写体として注目された物も含む）や模様などのいかなるパターンを含んでも良い。【００５９】
本発明者は、ＡＳＭに対し、可変レティナ構造による特徴量サンプリングと、正準相関分析による誤差推定行列学習とを組み合わせることにより、高速な顔特徴点検出を実現した。また、この組み合わせにより、ロバスト性の高い顔特徴点検出も実現することができる。以下、本発明者の提案する技術について説明する。【００６０】
まず、顔特徴点の検出に必要となる学習処理について説明する。次に、この学習処理の結果に基づいて、本発明者が提案する顔特徴点検出を実施する顔特徴点検出装置１について、構成例や動作例などを説明する。次に、顔特徴点検出装置１の構成に当たり採用可能な変形例について説明する。さらに、本発明者が提案する技術の応用例として、顔の姿勢（顔姿勢）を推定するために必要な学習処理、及び顔姿勢推定を行う顔特徴点検出装置１ａについて説明する。【００６１】
〔学習処理〕
まず、顔特徴点検出装置１を動作させるために必要となる学習処理について説明する。この学習処理は、顔特徴点検出装置１によって顔画像から顔特徴点（以下、単に「特徴点」と呼ぶ）の位置を検出するために予め実施しておく必要のある処理である。まず、本学習処理のフローを説明するにあたって必要となる処理、顔形状モデルの取得、レティナサンプリング、及び誤差推定行列の取得について説明する。その後、学習処理の具体的なフローの例について説明する。【００６２】
〈顔形状モデルの取得〉
学習処理では、まず、複数の学習用顔画像（以下、学習処理の説明において「顔画像」と呼ぶ）を用意し、各画像において特徴点を抽出する。この処理は、学習処理の精度を高めるためにも、人間によって実施されることが望ましい。図１は、顔画像から抽出された特徴点の例を示す図である。図１において、斜線を含む円の中心位置が特徴点となる。具体的には、両目の両端（目頭と目尻）及び中心部分、左右のほお骨部分（眼窩底部分）、鼻の頂点、左右の口角、口の中心、鼻の左右端点と左右の口角の中間点などを特徴点とすることができる。なお、特徴点の抽出は、上記した非特許文献１に記載された方法が適用されても良い。各特徴点ｐｉの座標を、ｐｉ（ｘｉ，ｙｉ）とする。このとき、ｉは、１からｎ（ｎは特徴点の数を示す）の値を示す。【００６３】
次に、各顔画像についての特徴点配置ベクトルＸを数１のように定義する。ある顔画像ｊについての特徴点配置ベクトルは、Ｘｊと記す。なお、Ｘの次元数は２ｎである。【００６４】
【数１】
0004501937.tif 000002
【００６５】
次に、取得された全ての特徴点配置ベクトルＸを、適当な基準に基づき正規化する。このときの正規化の基準は、設計者によって適宜決定されて良い。以下、正規化の具体例について説明する。例えば、ある顔画像ｊについての特徴点配置ベクトルＸｊについて、点ｐ１〜ｐｎの重心座標をｐＧとするとき、数２によって定義されるＬｍを用いて、その大きさを正規化することができる。具体的には、Ｌｍによって移動後の座標値を割ることにより、大きさを正規化することができる。ここで、Ｌｍは、重心を原点とする座標系に各点ｐｉを移動させた場合の、重心から各点までの直線距離の平均値である。【００６６】
【数２】
0004501937.tif 000003
【００６７】
また、回転に対しては、例えば両目の中心を結ぶ直線が水平になるように特徴点座標に対して回転変換を行うことにより、正規化することができる。以上の処理は、回転、拡大・縮小の組み合わせで表現できるため、正規化後の特徴点配置ベクトルｘは数３のように表すことができる（相似変換）。【００６８】
【数３】
0004501937.tif 000004
【００６９】
次に、この正規化特徴点配置ベクトルの集合に対し、主成分分析を行う。主成分分析は例えば以下のように行うことができる。まず、数４に示される式に従って平均ベクトル（平均ベクトルはｘの上部に水平線を記すことにより示される）を取得する。なお、数４において、Ｎは、顔画像の数、即ち特徴点配置ベクトルの数を示す。【００７０】
【数４】
0004501937.tif 000005
【００７１】
そして、数５に示されるように、全ての正規化特徴点配置ベクトルから平均ベクトルを差し引くことにより、差分ベクトルｘ’を取得する。画像ｊについての差分ベクトルは、ｘｊと示される【００７２】
【数５】
0004501937.tif 000006
【００７３】
上記した主成分分析の結果、固有ベクトルと固有値との組が２ｎ個得られる。任意の正規化特徴点配置ベクトルは、数６に示される式によって表すことができる。【００７４】
【数６】
0004501937.tif 000007
【００７５】
ここで、Ｐは固有ベクトル行列を示し、ｂは形状パラメタベクトルを示す。それぞれの値は数７に示される通りである。なお、ｅｉは、固有ベクトルを示す。【００７６】
【数７】
0004501937.tif 000008
【００７７】
実際には、固有値の大きい上位ｋ次元までの値を用いることにより、任意の正規化特徴点配置ベクトルｘは数８のように近似して表すことができる。以下、固有値の大きい順に、ｅｉを第ｉ主成分と呼ぶ。【００７８】
【数８】
0004501937.tif 000009
【００７９】
なお、実際の顔画像に顔形状モデルをあてはめる（フィッティングさせる）際には、正規化特徴点配置ベクトルｘに対して相似変換（平行移動，回転，拡大・縮小）を行う。相似変換のパラメタをｓｘ，ｓｙ，ｓθ，ｓｓｃａｌｅとすると、形状パラメタとあわせて、モデルパラメタｋを数９のように表すことができる。【００８０】
【数９】
0004501937.tif 000010
【００８１】
このモデルパラメタｋによって表される顔形状モデルが、ある顔画像上の特徴点位置にほぼ正確に一致する場合に、そのパラメタをその顔画像における正解モデルパラメタと呼ぶ。正確に一致しているか否かは、設計者により設定される閾値や基準に基づいて判断される。【００８２】
〈レティナサンプリング〉
次に、特徴量のサンプリングについて説明する。特徴量のサンプリングは、顔形状モデルに対し可変レティナ構造を組み合わせることによって行う。レティナ構造とは、ある着目したい特徴点（ノード）の周囲に放射状にサンプリング点を配置した構造のことである。図２は、レティナ構造の例を示す図である。図２では、注目したい特徴点の座標は原点であり、その他の座標に位置する各点がレティナ構造におけるサンプリング点を示す。レティナ構造によるサンプリングを実施することにより、特徴点周りの情報を、低次元で効率的にサンプリングすることが可能となる。本学習処理では、顔形状モデルの各ノード（各点ｐ）においてレティナ構造によるサンプリングを実施する。図３は、顔形状モデルのある一つのノードに対してレティナ構造を適用した場合のサンプリング点の分布例を示す図である。図３において、斜線を含む円は顔形状モデルのノードを示し、黒丸はレティナ構造におけるサンプリング点を示す。【００８３】
レティナ構造は、ｉ番目のサンプリング点の座標をｑｉ（ｘｉ，ｙｉ）とすると、数１０のように表すことができる。【００８４】
【数１０】
0004501937.tif 000011
【００８５】
従って、例えばある点ｐ（ｘｐ，ｙｐ）について、レティナ構造によるサンプリングを行うことにより得られるレティナ特徴量ｆｐは、数１１のように表すことができる。なお、レティナ構造によるサンプリングとは、レティナ構造に従ってサンプリング点を配置し、配置されたサンプリング点においてサンプリングを実施することを言う。【００８６】
【数１１】
0004501937.tif 000012
【００８７】
ただし、ｆ（ｐ）は、点ｐ（サンプリング点ｐ）での特徴量を示す。また、レティナ構造における各サンプリング点では、画像の輝度値，Ｓｏｂｅｌフィルタ特徴量，ＨａｒｒＷａｖｅｌｅｔ特徴量，ＧａｂｏｒＷａｖｅｌｅｔ特徴量やこれらを複合した値が、そのサンプリング点における特徴量として取得される。特徴量が多次元の場合、レティナ特徴量は数１２のように表すことができる。【００８８】
【数１２】
0004501937.tif 000013
【００８９】
ここで、Ｄは特徴量の次元数、ｆｄ（ｐ）は、点ｐでの第ｄ次元の特徴量を表す。また、ｑｉ（ｄ）第ｄ次元に対するレティナ構造の、ｉ番目のサンプリング座標を示す。【００９０】
レティナ構造は、顔形状モデルのスケールに応じてその大きさを変化させることができる。例えば、パラメタｓｓｃａｌｅに比例させて、レティナ構造の大きさを変化させることができる。このとき、レティナ構造ｒは数１３のように表すことができる。なお、αは適当な固定値である。また、レティナ構造は、顔形状モデルにおける他のパラメタに応じて回転や形状変化させても良い。また、レティナ構造は、顔形状モデルの各ノードによってその形状（構造）が異なるように設定されても良い。【００９１】
【数１３】
0004501937.tif 000014
【００９２】
あるモデルパラメタによって定まる顔形状モデルにおいて、各ノードのレティナ特徴量を一列に並べたベクトルを、その顔形状モデルにおけるサンプリング特徴量ｆと呼ぶ。サンプリング特徴量ｆは数１４のように表すことができる。数１４において、ｎは顔形状モデルにおけるノードの数を示す。【００９３】
【数１４】
0004501937.tif 000015
【００９４】
なお、サンプリング時に、各ノードにおいて正規化を行う。例えば、特徴量が０から１の範囲に収まるようにスケール変換を行うことにより正規化を行っても良い。また、一定の平均や分散をとるように変換を行うことによって正規化を行っても良い。また、特徴量によっては正規化を行わなくても良い場合がある。【００９５】
〈誤差推定行列の取得〉
次に、本学習処理において実行する誤差推定行列の取得について説明する。誤差推定行列の取得は、正準相関分析（Ｃａｎｏｎｉｃａｌ  Ｃｏｒｒｅｌａｔｉｏｎ  Ａｎａｌｙｓｉｓ）を用いることにより実施する。正準相関分析は、二つの次元の異なる変量間の相関関係を求める手法の一つである。正準相関分析により、顔形状モデルの各ノードが誤った位置（検出すべき特徴点と異なる位置）に配置されてしまった際にどの方向に修正すべきかの相関関係について学習結果を得ることができる。【００９６】
まず、顔形状モデルの取得の欄で説明した処理によって取得された正解モデルパラメタを、乱数などにより一定範囲内でずらすことにより、ずれ配置モデルを作成する。図４は、ずれ配置モデルの例を示す図である。図４において、斜線を含む円がノード位置を示す。図４（ａ）は、ある顔画像における正解モデルパラメタに基づいた各ノードの位置を示す図である。図４（ｂ）は、図４（ａ）に示された正解モデル（正解モデルパラメタによって表される顔形状モデル）をずらすことによって作成されたずれ配置モデルの例である。そして、ずれ配置モデルに基づいて取得したサンプリング特徴量と、ずれ配置モデルと正解モデルとの差と、を組として、相関関係についての学習結果を取得する。以下、具体的な処理を説明する。
【００９７】
まず、二組の変量ベクトルｘとｙを数１５のように定義する。ｘは、ずれ配置モデルに対するサンプリング特徴量を示す。ｙは、正解モデルパラメタ（ｋｏｐｔ）とずれ配置モデルパラメタ（ずれ配置モデルを示すパラメタ：ｋｄｉｆ）との差を示す。【００９８】
【数１５】
0004501937.tif 000016
【００９９】
二組の変量ベクトルは、予め各次元ごとに平均０、分散１に正規化する。正規化するために用いたパラメタ（各次元の平均、分散）は、後述する顔特徴点の検出処理において必要となる。以下、それぞれをｘａｖｅ，ｘｖａｒ，ｙａｖｅ，ｙｖａｒとし、正規化パラメタと呼ぶ。【０１００】
次に、二つの変量に対する線形変換を数１６のように定義した場合、ｕ，ｖ間の相関を最大にするようなａ，ｂを求める。【０１０１】
【数１６】
0004501937.tif 000017
【０１０２】
上記ａとｂとは、ｘ，ｙの同時分布を考え、その分散共分散行列Σを数１７のように定義した場合に、数１８に示す一般固有値問題を解いたときの最大固有値に対する固有ベクトルとして得られる。【０１０３】
【数１７】
0004501937.tif 000018
【０１０４】
【数１８】
0004501937.tif 000019
【０１０５】
これらのうち、次元の低い方の固有値問題を先に解く。例えば、１番目の式を解いて得られる最大固有値がλ１、対応する固有ベクトルがａ１であった場合、ベクトルｂ１は、数１９に表される式によって得られる。【０１０６】
【数１９】
0004501937.tif 000020
【０１０７】
このようにして求められたλ１を第一正準相関係数と呼ぶ。また、数２０によって表されるｕ１，ｖ１を第一正準変量と呼ぶ。【０１０８】
【数２０】
0004501937.tif 000021
【０１０９】
以下、２番目に大きい固有値に対応する第二正準変量、３番目に大きい固有値に対応する第三正準変量というように、固有値の大きさに基づいて順に求めていく。なお、後述する顔特徴点の検出処理に用いるベクトルは、固有値がある一定以上の値（閾値）を有する第Ｍ正準変量までのベクトルとする。このときの閾値は、設計者によって適宜決定されて良い。以下、第Ｍ正準変量までの変換ベクトル行列を、Ａ’，Ｂ’とし、誤差推定行列と呼ぶ。Ａ’，Ｂ’は、数２１のように表すことができる。【０１１０】
【数２１】
0004501937.tif 000022
【０１１１】
Ｂ’は、一般に正方行列とはならない。しかし、顔特徴点の検出処理において逆行列が必要となるため、Ｂ’に対し擬似的に０ベクトルを追加し、正方行列Ｂ’’とする。正方行列Ｂ’’は数２２のように表すことができる。【０１１２】
【数２２】
0004501937.tif 000023
【０１１３】
なお、誤差推定行列を求めることは、線形回帰，線形重回帰，非線形重回帰などの分析手法によっても可能である。しかし、正準相関分析を用いることにより、小さな固有値に対応する変量の影響を無視することが可能となる。従って、誤差推定に影響しない要素の影響を排除することが可能となり、より安定した誤差推定が可能となる。よって、係る効果を必要としないのであれば、正準相関分析ではなく上記した他の分析手法を用いて誤差推定行列の取得を実施することも可能である。【０１１４】
〈学習処理の流れ〉
以上、本学習処理に必要となる三つの処理、即ち顔形状モデルの取得、レティナサンプリング、及び誤差推定行列の取得について説明した。次に、これらの処理を用いて学習処理を行う際のフローについて説明する。図５は、学習処理のフローの例を示すフローチャートである。以下、図５を用いて学習処理の流れの例について説明する。なお、以下に説明する処理は、学習処理プログラムがインストールされた情報処理装置によって実行される。この情報処理装置は、接続された記憶装置から学習用の顔画像及び各顔画像において予め抽出されている各特徴点の座標位置（特徴点の正解座標）を読み出すことが可能に構成される。この情報処理装置は、上記した記憶装置からのみならず、ネットワークを介することにより、又は記録媒体にアクセスすること等によって、上記データを読み出すことが可能に構成されても良い。【０１１５】
まず、変数ｉを定義し、１を代入する（Ｓ０１）。次に、予め特徴点の位置が取得されている学習用の顔画像のうち、ｉ番目の顔画像（Ｉｍｇ＿ｉ）を読み込む（Ｓ０２）。ここでは、ｉに１が代入されているため１番目の顔画像（Ｉｍｇ＿１）が読み込まれる。次に、顔画像Ｉｍｇ＿ｉの特徴点の正解座標の集合を読み出し、正解モデルパラメタｋｏｐｔを取得し顔形状モデルを作成する（Ｓ０３）。次に、正解モデルパラメタｋｏｐｔに基づいてずれ配置モデルパラメタｋｄｉｆを取得し、ずれ配置モデルを作成する（Ｓ０４）。次に、ずれ配置モデルに基づいて、レティナ構造を用いたサンプリングを実行し、サンプリング特徴量ｘを取得する（Ｓ０５）。また、正解モデルパラメタｋｏｐｔとずれ配置モデルパラメタｋｄｉｆとに基づいてｙを取得する（Ｓ０６）。ここで、全ての学習用の顔画像について処理が完了したか否か判断する（Ｓ０７）。例えば、ｉの値と、学習用の顔画像の数を示すｎとを比較することにより判断することができる。処理していない顔画像がある場合には（Ｓ０７−Ｎｏ）、ｉの値をインクリメントし（Ｓ０８）、新たなｉの値に基づいてＳ０２以降の処理を実行する。一方、全ての顔画像について処理が完了したと判断した場合（Ｓ０７−Ｙｅｓ）、各顔画像について得られたｘとｙとの集合について正準相関分析を実行する（Ｓ０９）。そして、予め定められた閾値よりも小さい固定値に対応する不要な相関行列を削除し（Ｓ１０）、最終的に誤差推定行列を取得する（Ｓ１１）。【０１１６】
〔顔特徴点検出装置〕
次に、顔特徴点検出装置１について説明する。顔特徴点検出装置１は、上記した学習処理によって得られる誤差推定行列や正規化パラメタ等に基づいて、入力された顔画像から特徴点を検出する。まず、顔特徴点検出装置１の装置構成について説明する。【０１１７】
〈装置構成〉
例えば、顔特徴点検出装置１は、ハードウェア的には、バスを介して接続されたＣＰＵ（中央演算処理装置），主記憶装置（ＲＡＭ），補助記憶装置などを備えるように構成されても良い。この場合は、プログラムがＣＰＵによって実行されることにより、顔特徴点検出装置１が実現される。ここで言う補助記憶装置は、不揮発性記憶装置を用いて構成される。不揮発瀬記憶装置とは、いわゆるＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ：ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ），マスクＲＯＭ等を含む），ＦＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ），ハードディスク等を指す。【０１１８】
図６は、顔特徴点検出装置１の機能ブロック例を示す図である。顔特徴点検出装置１は、補助記憶装置に記憶された各種のプログラム（ＯＳ，アプリケーション等）が主記憶装置にロードされＣＰＵにより実行されることによって、画像入力部２，顔検出処理３，特徴量取得部４，学習結果記憶部５，及び誤差推定部６等を含む装置として機能する。また、顔特徴点検出装置１の全部又は一部は、専用のチップとして構成されても良い。次に、顔特徴点検出装置１が含む各機能部について説明する。【０１１９】
画像入力部２は、顔画像のデータを顔特徴点検出装置１へ入力するためのインタフェースとして機能する。画像入力部２によって、顔画像のデータが顔特徴点検出装置１へ入力される。画像入力部２は、顔特徴点検出装置１へ顔画像のデータを入力するためのどのような既存技術を用いて構成されても良い。【０１２０】
例えば、ネットワーク（例えばローカル・エリア・ネットワークやインターネット）を介して顔画像のデータが顔特徴点検出装置１へ入力されても良い。この場合、画像入力部２はネットワークインタフェースを用いて構成される。また、デジタルカメラやスキャナやパーソナルコンピュータや記録装置（例えばハードディスクドライブ）等から顔画像のデータが顔特徴点検出装置１へ入力されても良い。この場合、画像入力部２は、デジタルカメラやパーソナルコンピュータや記録装置などと顔特徴点検出装置１とをデータ通信可能に接続する規格（例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）やＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）等の有線接続やｂｌｕｅｔｏｏｔｈ（登録商標）等の無線接続の規格）に応じて構成される。また、記録媒体（例えば各種フラッシュメモリやフロッピーディスク（登録商標）やＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）やＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ、Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｃ））に記録された顔画像のデータが顔特徴点検出装置１へ入力されても良い。この場合、画像入力部２は、記録媒体からデータを読み出す装置（例えばフラッシュメモリリーダやフロッピーディスク（登録商標）ドライブやＣＤドライブやＤＶＤドライブ）を用いて構成される。【０１２１】
また、顔特徴点検出装置１がデジタルカメラ等の撮像装置又はデジタルカメラ等の撮像装置を備える各種装置（例えばＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）や携帯電話機）の内部に含まれ、撮像された画像が顔画像のデータとして顔特徴点検出装置１へ入力されても良い。この場合、画像入力部２は、ＣＣＤ（Ｃｈａｒｇｅ−Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅｓ）やＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）センサ等を用いて構成されても良いし、ＣＣＤやＣＭＯＳセンサなどによって撮像された顔画像のデータを顔検出装置４ａに入力させるためのインタフェースとして構成されても良い。また、顔特徴点検出装置１が、プリンタやディスプレイ等の画像出力装置の内部に含まれ、出力データとしてこれらの画像出力装置に入力された画像が顔画像のデータとして顔特徴点検出装置１へ入力されても良い。この場合、画像入力部２は、これらの画像出力装置に入力された顔画像のデータを顔特徴点検出装置１において取り扱い可能なデータに変換する装置などを用いて構成される。【０１２２】
また、画像入力部２は上記された複数の場合に応じることが可能となるように構成されても良い。【０１２３】
顔検出部３は、画像入力部２を介して入力された顔画像から、人の顔を検出する。顔検出部３は、例えば、顔全体の輪郭に対応した基準テンプレートを用いたテンプレートマッチングによって顔を検出するように構成されても良い。また、顔検出部３は、顔の構成要素（目，鼻，耳など）に基づくテンプレートマッチングによって顔を検出するように構成されても良い。また、顔検出部３は、クロマキー処理によって頭部などの頂点を検出し、この頂点に基づいて顔を検出するように構成されても良い。また、顔検出部３は、肌の色に近い領域を検出し、その領域を顔として検出するように構成されても良い。また、顔検出部３は、ニューラルネットワークを使って教師信号による学習を行い、顔らしい領域を顔として検出するように構成されても良い。また、顔検出部３による顔検出処理は、その他、既存のどのような技術が適用されることによって実現されても良い。【０１２４】
顔検出部３は、検出された顔の位置を特定し、その位置を特徴量取得部４へ渡す。このとき、顔検出部３は、顔の傾きや顔の大きさを取得して、その値を特徴量取得部４にさらに渡すように構成されても良い。【０１２５】
特徴量取得部４は、顔検出部３によって検出された人の顔の画像からサンプリング特徴量を取得する。以下、特徴量取得部４の具体的な処理について説明する。【０１２６】
特徴量取得部４は、顔検出部３によって検出された顔について初めてサンプリング特徴量を取得する場合には、まず、検出された顔の初期位置に、初期パラメタｋｉｎｉｔによって定義される顔形状モデルを配置する。この初期位置は、例えば検出された顔の中心と顔形状モデルの中心とが一致するような位置であっても良い。また、初期位置とは、例えば顔検出部３によって顔矩形（検出された顔を囲む矩形）が取得される場合には、この顔矩形のある頂点（例えば左上のかど）から所定の位置に顔形状モデルの所定のノードが配置されるような位置であっても良い。初期位置は、検出された顔に対し適当に顔形状モデルが配置されるのであれば、その他どのように設計者によって定義されても良い。【０１２７】
また、初期パラメタｋｉｎｉｔとは、数９によって表されるモデルパラメタｋのうち、初期値によって表されるモデルパラメタをいう。初期パラメタｋｉｎｉｔには、適当な値が設定されて良い。ただし、一般的な顔画像から得られる平均的な値を初期パラメタｋｉｎｉｔに設定することにより、様々な顔の向きや表情変化などに対応することが可能となる。従って、例えば、相似変換のパラメタｓｘ，ｓｙ，ｓθ，ｓｓｃａｌｅについては、学習処理の際に用いた顔画像の正解モデルパラメタの平均値を用いても良い。また、例えば、形状パラメタｂについては、ゼロとしても良い。また、顔検出部３によって顔の向きの情報が得られる場合には、この情報を用いて初期パラメタを設定しても良い。この他、設計者が経験的に得た他の値をもって初期パラメタとしても良い。【０１２８】
次に、特徴量取得部４は、設定された初期パラメタによって表される顔形状モデルについて、レティナ構造に基づいたサンプリングを実施し、サンプリング特徴量ｆを取得する。そして、特徴量取得部４は、得られたサンプリング特徴量ｆを、誤差推定部６へ渡す。【０１２９】
一方、特徴量取得部４は、顔検出部３によって検出された顔についてサンプリング特徴量を取得するのが二度目以降の場合には、誤差推定部６によって得られた新たなモデルパラメタｋ（即ち、正解モデルパラメタの推定値ｋｉ＋１）によって表される顔形状モデルについて、サンプリング特徴量ｆを取得する。そして、この場合も、特徴量取得部４は、得られたサンプリング特徴量ｆを、誤差推定部６へ渡す。【０１３０】
学習結果記憶部５は、不揮発性記憶装置を用いて構成され、上記した学習処理によって得られる学習結果を記憶する。具体的には、学習結果記憶部５は、誤差推定行列，正規化パラメタなどを記憶する。また、必要に応じて、学習結果記憶部５は、初期パラメタｋｉｎｉｔ又は初期パラメタｋｉｎｉｔを構成する値の一部（例えば、学習処理の際に用いた顔画像の正解モデルパラメタにおける相似変換パラメタの平均値など）をさらに記憶しても良い。【０１３１】
誤差推定部６は、特徴量取得部４によって取得されたサンプリング特徴量ｆ、及び学習結果記憶部５に記憶される誤差推定行列や正規化パラメタなどに基づいて、誤差量を推定し新たなモデルパラメタｋを取得する。以下、誤差推定部６の具体的な処理例について説明する。【０１３２】
まず、誤差推定部６は、正規化パラメタ（ｘａｖｅ，ｘｖａｒ）を用いて、特徴量取得部４により取得されたサンプリング特徴量ｆを正規化し、正準相関分析を行うためのベクトルｘを取得する。そして、誤差推定部６は、数２３により表される式に基づいて第一〜第Ｍ正準変量を算出することにより、変量ｕを取得する。【０１３３】
【数２３】
0004501937.tif 000024
【０１３４】
次に、誤差推定部６は、数２４に表される式を用いて、正規化誤差推定量ｙｅｒｒを取得する。なお、数２４において、ｕ’は、Ｂ’’と同一次元となるように、ｕに対しゼロを追加したベクトルである。【０１３５】
【数２４】
0004501937.tif 000025
【０１３６】
次に、誤差推定部６は、正規化誤差推定量ｙｅｒｒに対し、正規化パラメタ（ｙａｖｅ，ｙｖａｒ）を用いて復元処理を行い、誤差推定量ｋｅｒｒを取得する。ｋｅｒｒは、現在のモデルパラメタｋｉから正解モデルパラメタｋｏｐｔまでの誤差推定量である。従って、正解モデルパラメタの推定値ｋｉ＋１は、現在のモデルパラメタｋｉに誤差推定量ｋｅｒｒを加算することにより取得できる。ただし、ｋｅｒｒは誤差を含んでいる可能性がある。このため、より安定した検出を行うために、数２５に表される式によって正解モデルパラメタの推定値ｋｉ＋１を取得することができる。数２５において、σは適当な固定値であり、設計者によって適宜決定されて良い。また、σは、例えばｉの変化に従って変化しても良い。【０１３７】
【数２５】
0004501937.tif 000026
【０１３８】
次に、誤差推定部６は、終了判定を行う。例えば、誤差推定部６は、ｉの値が閾値を超えた場合に、処理を終了すると判定しても良い。また、例えば誤差推定部６は、数２６によって表されるΔｋの値が閾値以下になった場合に、処理を終了すると判定しても良い。また、誤差推定部６は、取得されたｋｉ＋１の値が正常範囲内であるか否かに基づいて終了判定を行っても良い。例えば、誤差推定部６は、取得されたｋｉ＋１の値が、明らかに人の顔の画像における正解位置を示すものでない場合には、エラーを出力することにより終了することを決定しても良い。また、誤差推定部６は、取得されたｋｉ＋１によって表されるノードの一部が、処理対象の画像からはみでてしまった場合にも、エラーを出力することにより終了することを決定しても良い。【０１３９】
【数２６】
0004501937.tif 000027
【０１４０】
誤差推定部６は、処理を続行すると判定した場合、取得された正解モデルパラメタの推定値ｋｉ＋１を特徴量取得部４へ渡す。一方、誤差推定部６は、処理を終了すると判定した場合、その時点で得られている正解モデルパラメタの推定値ｋｉ（又はｋｉ＋１であっても良い）を、最終推定パラメタｋｅｓｔとして出力する。【０１４１】
〈動作例〉
図７は、顔特徴点検出装置１の動作例を示すフローチャートである。以下、図７を用いて顔特徴点検出装置１の動作例について説明する。まず、顔特徴点検出装置１は、画像入力部２を介して、処理対象となる画像を読み込む（Ｓ１２）。次に、顔検出部３は、処理対象となる画像から人の顔を検出する。次に、特徴量取得部４は、初期パラメタｋｉｎｉｔに基づいた顔形状モデルを、顔検出部３による顔検出処理の結果に従って得られる初期位置に配置する（Ｓ１３）。次に、特徴量取得部４は、変数ｉを定義し１を代入する。また、特徴量取得部４は、ｋｉを定義し、初期パラメタｋｉｎｉｔを代入する（Ｓ１４）。そして、特徴量取得部４は、ｋｉに従って、レティナ構造に基づき、サンプリング特徴量ｆを取得する（Ｓ１５）。【０１４２】
次に、誤差推定部６は、取得されたサンプリング特徴量ｆや学習結果記憶部５に記憶される誤差推定式などにより、正解モデルパラメタの推定値ｋｉ＋１を取得する（Ｓ１６）。次に、誤差推定部６は、Δｋを二乗し絶対値をとることにより、Ｅを取得する（Ｓ１７）。そして、誤差推定部６は終了判定を行う。【０１４３】
終了判定において、誤差推定部６は、まず取得されたｋｉ＋１の値が正常範囲内であるか否か判断する（Ｓ１８）。ｋｉ＋１の値が正常範囲内でない場合（Ｓ１８−Ｎｏ）、誤差推定部６は、不図示の出力装置などにエラーを出力し（Ｓ１９）、顔特徴点検出装置１としての処理を終了する。一方、ｋｉ＋１の値が正常範囲内である場合（Ｓ１８−Ｙｅｓ）、Ｓ１７の処理で取得されたＥの値が閾値（ε）を超えているか否か判断する（Ｓ２０）。Ｅが閾値を超えていない場合（Ｓ２０−Ｙｅｓ）、誤差推定部６は、処理が収束したとして、ｋｅｓｔを出力し（Ｓ２１）、顔特徴点検出装置１としての処理を終了する。【０１４４】
一方、Ｅが閾値を超えている場合（Ｓ２０−Ｎｏ）、誤差推定部６は、ｋｉ＋１の値を特徴量取得部４に渡す。そして、特徴量取得部４は、このｋｉ＋１の値に基づいて新たな顔形状モデルを作成する（Ｓ２２）。この後、誤差推定部６は、ｉの値をインクリメントする（Ｓ２３）。特徴量取得部４は、新たな顔形状モデルに基づいてサンプリング特徴量ｆの取得などを行う。即ち、この場合、新たな顔形状モデルに基づいてＳ１５以降の処理が繰り返される。【０１４５】
〈作用／効果〉
従来のＡＳＭでは、顔形状モデルの各ノード周囲において探索処理を繰り返す必要があった。また、従来のＡＡＭでは、各ノードによって構成されるパッチ内で均質且つ高密度なサンプリングを行い、さらにこの結果に対し形状修正処理を行う必要があった。具体的には、従来のＡＡＭでは通常１万点以上のサンプリングが必要とされていた。即ち、顔特徴点の検出処理には処理速度や応答性が要求されているにも関わらず、従来のこれらの技術では、計算量を削減することが十分には実現されていなかった。【０１４６】
一方、顔特徴点検出装置１では、第一に、形状修正処理を必要としない。さらに、顔特徴点検出装置１では、レティナ構造に基づく非均質且つ低密度なサンプリングによって、特徴点の検出処理が行われる。具体的には、通常数百点程度のサンプリングで検出処理が可能である。このように、顔特徴点検出装置１によれば、特徴点の検出に要する計算量を従来に比べて大幅に削減することが可能となる。【０１４７】
〈変形例〉
学習結果記憶部５は、予め複数の顔の状態を示す初期パラメタｋｉｎｉｔを記憶していても良い。例えば、学習結果記憶部５は、横を向いた顔や上を向いた顔などに対応する初期パラメタｋｉｎｉｔの値を記憶していても良い。そして、特徴量取得部４は、取得されるｋｉ＋１の値によっては、使用する顔形状モデルを変更しても良い。具体的には、特徴量取得部４は、誤差推定部６によって新たに取得されたｋｉ＋１の値によっては、このｋｉ＋１の値を破棄して、使用された初期パラメタｋｉｎｉｔとは異なる別の初期パラメタｋｉｎｉｔを学習結果記憶部５から読み出し、その値に基づいてＳ１３以降の処理を再度実行するように構成されても良い。また、特徴量取得部４は、例えば、顔特徴点の検出処理が繰り返し実行される場合には、ある時点で得られたｋｅｓｔの値に応じて次に入力される顔画像に対する検出処理で用いる初期パラメタを変更しても良い。処理対象となっている画像に含まれる顔が横を向いている場合などには、正面を向いた顔の顔形状モデルを示す初期パラメタｋｉｎｉｔよりも、横を向いた顔の顔形状モデルを示す初期パラメタｋｉｎｉｔを用いて処理を行った方がより精度の高い結果を得られる場合がある。従って、このような場合には、上記の変形例に従って構成することが有効である。また、特徴量取得部４は、初期パラメタｋｉｎｉｔではなく、レティナ構造や、誤差推定行列などを切り替えるように構成されても良い。【０１４８】
また、誤差推定部６は、終了判定を行うことなく、その時点で得られたｋｉ＋１の値をｋｅｓｔとして出力しても良い。【０１４９】
また、顔特徴点検出装置１は、顔検出部３を備えることなく構成されても良い。この場合、特徴量取得部４は、例えば画面中央を初期位置とすることにより処理を行うように構成されても良い。また、顔検出部３が顔特徴点検出装置１の外部に設けられ、顔画像とともに検出された顔の位置情報が顔特徴点検出装置１に入力されても良い。【０１５０】
また、顔検出部３は、人の顔そのものではなく、人の目や口や他の特徴点を検出するように構成されても良い。この場合、特徴量取得部４は、これらの特徴点の位置に基づいて初期位置を決定するように構成されても良い。【０１５１】
また、特徴量取得部４は、レティナ構造以外の構造に基づいてサンプリング点の配置を行っても良い。【０１５２】
〔顔姿勢推定のための学習処理〕
次に、顔姿勢推定のための学習処理について説明する。顔姿勢推定とは、特徴点の位置の検出と共に、処理対象の画像に含まれる顔の顔姿勢を推定する処理である。顔姿勢とは、顔が向いている方向やその角度などを意味する。【０１５３】
〈姿勢相関学習〉
上記「学習処理」の節では、顔特徴点を検出するために必要となる誤差推定行列の取得処理について説明した。この節では、顔特徴点を検出することを目的とするのではなく、顔画像の人物の顔姿勢を推定することを目的とする姿勢推定処理のための学習処理（姿勢相関学習）について説明する。【０１５４】
正解モデルパラメタｋｏｐｔと、顔画像の正解顔姿勢パラメタｇｏｐｔとの間には、相関関係が存在する。そして、この関係も、正準相関分析を利用することにより、以下のように求めることができる。なお、正解顔姿勢パラメタｇｏｐｔは、数２７のように定義される。この場合、顔姿勢パラメタは、顔のｘ，ｙ，ｚ軸それぞれにおける回転角によって表現される。顔姿勢パラメタは、他の値で表されても良い。【０１５５】
【数２７】
0004501937.tif 000028
【０１５６】
まず、複数の学習用の顔画像について、二組の変量ベクトルをｘ＝ｋｏｐｔＴ，ｙ＝ｇｏｐｔと定義する。ｇｏｐｔは、正解顔姿勢における顔姿勢パラメタを示す。これらの変量ベクトルを予め各次元ごとに平均０，分散１に正規化する。その後、「学習処理」の節における説明と同様に、正準相関分析を行うことにより、第Ｌ正準変量までの変換ベクトル対を得る。数２８は、この処理によって得られる変換ベクトル対を示す式である。Ｌは正の整数であり、設計者によって決定される値である。また、このとき、正規化パラメタを記録する。【０１５７】
【数２８】
0004501937.tif 000029
【０１５８】
この後、第Ｌ正準変量までの変換ベクトル行列を、Ａ’ｐｏｓｅ，Ｂ’ｐｏｓｅとして取得する。以下、このようにして得られた二つの変換ベクトル行列を姿勢推定行列と呼ぶ。数２９に、このようにして得られたＡ’ｐｏｓｅと、Ｂ’ｐｏｓｅを正方行列とすることにより得られるＢ’’ｐｏｓｅとを示す。【０１５９】
【数２９】
0004501937.tif 000030
【０１６０】
なお、モデルパラメタｋに含まれる全ての値を使用する必要はない。例えば、スケーリングに対応するｓｓｃａｌｅは顔姿勢とは無関係であるため、この値を予め省くことにより、計算を簡略化することができる。【０１６１】
また、姿勢推定行列を求めることは、線形回帰，線形重回帰，非線形重回帰などの分析手法を適用することによっても可能である。【０１６２】
〈姿勢相関学習の流れ〉
次に、姿勢推定行列を取得するための処理例についてフローチャートを用いて説明する。図８は、姿勢推定行列を取得するための処理例、即ち姿勢相関学習の処理例を示すフローチャートである。なお、以下に説明する処理は、姿勢相関学習処理プログラムがインストールされた情報処理装置によって実行される。この情報処理装置は、接続された記憶装置から学習用の顔画像及び各顔画像において予め抽出されている各特徴点の座標位置（特徴点の正解座標）を読み出すことが可能に構成される。この情報処理装置は、上記した記憶装置からのみならず、ネットワークを介することにより、又は記録媒体にアクセスすること等によって、上記データを読み出すことが可能に構成されても良い。【０１６３】
まず、変数ｉを定義し、１を代入する（Ｓ２４）。次に、予め特徴点の位置が取得されている学習用の顔画像のうち、ｉ番目の顔画像（Ｉｍｇ＿ｉ）を読み込む（Ｓ２５）。ここでは、ｉに１が代入されているため１番目の顔画像（Ｉｍｇ＿１）が読み込まれる。次に、顔画像Ｉｍｇ＿ｉの特徴点の正解座標の集合を読み出し、正解モデルパラメタｋｏｐｔを取得し顔形状モデルを作成する（Ｓ２６）。次に、正解顔姿勢パラメタｇｏｐｔを取得し（Ｓ２７）、全ての学習用の顔画像についてＳ２５〜Ｓ２７の処理が完了したか否か判断する（Ｓ２８）。例えば、ｉの値と、学習用の顔画像の数を示すｎとを比較することにより判断することができる。処理していない顔画像がある場合には（Ｓ２８−Ｎｏ）、ｉの値をインクリメントし（Ｓ２９）、新たなｉの値に基づいてＳ２５以降の処理を実行する。一方、全ての顔画像について処理が完了したと判断した場合（Ｓ２８−Ｙｅｓ）、各顔画像について得られたｋｏｐｔとｇｏｐｔとの集合について正準相関分析を実行する（Ｓ３０）。そして、予め定められた閾値よりも小さい固定値に対応する不要な相関行列を削除し（Ｓ３１）、最終的に姿勢推定行列を取得する（Ｓ３２）。【０１６４】
〔顔姿勢推定を実施する顔特徴点検出装置〕
図９は、顔特徴点検出装置１ａの機能ブロック例を示す図である。顔特徴点検出装置１ａは、顔姿勢の推定をさらに行う点で、顔特徴点検出装置１と異なる。このような作用を導くため、顔特徴点検出装置１ａは、顔姿勢推定部７をさらに備える。また、顔特徴点検出装置１ａは、学習結果記憶部５に代えて学習結果記憶部５ａを備える。顔特徴点検出装置１ａが備える他の機能部は、顔特徴点検出装置１に備えられる各機能部と同じであるため、その説明は省く。【０１６５】
学習結果記憶部５ａは、姿勢相関学習によって得られる学習結果をさらに記憶する点で学習結果記憶部５と異なる。姿勢相関学習によって得られる学習結果とは、例えば姿勢推定行列と、この学習処理において用いられる正規化パラメタである。以上の点を除けば、学習結果記憶部５ａは、学習結果記憶部５と同じように構成されて良い。【０１６６】
顔姿勢推定部７は、誤差推定部６からｋｅｓｔを取得し、顔姿勢の推定を行う。まず、顔姿勢推定部７は、姿勢相関学習において得られた正規化パラメタを用いてｋｅｓｔを正規化し、正準相関分析に用いるためのベクトルｘｐｏｓｅを取得する。そして、顔姿勢推定部７は、数３０に表される式を用いて第Ｌ正準変量までを算出する。【０１６７】
【数３０】
0004501937.tif 000031
【０１６８】
次に、顔姿勢推定部７は、数３１に表される式を用いて正規化姿勢推定量ｙｐｏｓｅを算出する。なお、数３１において、ｕ’ｐｏｓｅは、Ｂ’’ｐｏｓｅと同一次元となるように、ｕｐｏｓｅにゼロを追加したベクトルである。【０１６９】
【数３１】
0004501937.tif 000032
【０１７０】
そして、顔姿勢推定部７は、正規化姿勢推定量ｙｐｏｓｅに対して正規化復元処理を行い、姿勢推定量ｇｅｓｔを取得する。正規化復元処理において、顔姿勢推定部７は、姿勢相関学習において取得された正規化パラメタを用いる。【０１７１】
〈作用／効果〉
このように構成された顔特徴点検出装置１ａによれば、誤差推定部６によって取得されたｋｅｓｔに基づいて、入力された画像における人の顔の顔姿勢を検出することが可能となる。例えば、運転手の顔の姿勢検出を必要とする居眠り検出装置などに適用されると有効である。【０１７２】
〈変形例〉
顔姿勢推定部７は、最終的に誤差推定部６から得られるｋｅｓｔではなく、各ｉの値において得られるｋｉの値を用いて、ｉの値ごとに姿勢推定量ｇｉを取得するように構成されても良い。そして、顔姿勢推定部７は、最終的に、ｋｅｓｔの値を用いて、姿勢推定量ｇｅｓｔを取得するように構成されても良い。【０１７３】
また、顔特徴点検出装置１の変形例と同様に、学習結果記憶部５ａは、予め複数の顔の状態を示す初期パラメタｋｉｎｉｔを記憶していても良い。例えば、学習結果記憶部５ａは、横を向いた顔や上を向いた顔などに対応する初期パラメタｋｉｎｉｔの値を記憶していても良い。そして、特徴量取得部４は、取得されるｋｉ＋１の値によっては、使用する顔形状モデルを変更しても良い。具体的には、特徴量取得部４は、誤差推定部６によって新たに取得されたｋｉ＋１の値や、顔姿勢推定部７によって新たに取得された姿勢推定量ｇｉによっては、このｋｉ＋１の値を破棄して、使用された初期パラメタｋｉｎｉｔとは異なる別の初期パラメタｋｉｎｉｔを学習結果記憶部５から読み出し、その値に基づいてＳ１３以降の処理を再度実行するように構成されても良い。また、特徴量取得部４は、例えば、顔特徴点の検出処理が繰り返し実行される場合には、ある時点で得られたｋｅｓｔの値又はｇｅｓｔに応じて次に入力される顔画像に対する検出処理で用いる初期パラメタを変更しても良い。処理対象となっている画像に含まれる顔が横を向いている場合などには、正面を向いた顔の顔形状モデルを示す初期パラメタｋｉｎｉｔよりも、横を向いた顔の顔形状モデルを示す初期パラメタｋｉｎｉｔを用いて処理を行った方がより精度の高い結果を得られる場合がある。従って、このような場合には、上記の変形例に従って構成することが有効である。また、特徴量取得部４は、初期パラメタｋｉｎｉｔではなく又は初期パラメタｋｉｎｉｔに加えて、レティナ構造や、誤差推定行列などを切り替えるように構成されても良い。
【図面の簡単な説明】
【０１７４】
【図１】顔画像から抽出された特徴点の例を示す図である。
【図２】レティナ構造の例を示す図である。
【図３】顔形状モデルのある一つのノードに対してレティナ構造を適用した場合のサンプリング点の分布例を示す図である。
【図４】ずれ配置モデルの例を示す図である。
【図５】学習処理の処理例を示すフローチャートである。
【図６】顔特徴点検出装置の機能ブロックの例を示す図である。
【図７】顔特徴点検出装置の動作例を示すフローチャートである。
【図８】姿勢相関学習のフローの例を示すフローチャートである。
【図９】顔特徴点検出装置の機能ブロックの例を示す図である。
【符号の説明】
【０１７５】
１          顔特徴点検出装置
２          画像入力部
３          顔検出部
４          特徴量取得部
５，５ａ    学習結果記憶部
６          誤差推定部
７          顔姿勢推定部
【図１】
0004501937.tif 000033
【図２】
0004501937.tif 000034
【図３】
0004501937.tif 000035
【図４】
0004501937.tif 000036
【図５】
0004501937.tif 000037
【図６】
0004501937.tif 000038
【図７】
0004501937.tif 000039
【図８】
0004501937.tif 000040
【図９】
0004501937.tif 000041