(57)【特許請求の範囲】
【請求項１】
固定された単眼カメラで人物の顔を撮影して得た画像データを入力して、この画像データと顔の向きに関する情報が予め記憶されている複数の顔向きテンプレートとを比較して、その画像データに撮影されている顔の向きを計算するか、または、この画像データの特徴点を抽出してその特徴点の位置関係から顔の向きを計算する顔向き計算方法であって、
カメラ座標系を、前記単眼カメラのレンズの中心Ｃを原点としたＸＣ軸、ＹＣ軸、ＺＣ軸の直交座標系で設定し、前記ＺＣ軸が光軸、前記ＸＣ軸が左右方向、ＹＣ軸が上下方向に対応し、
Ｈ座標系を、前記顔に固定されたＸＨ軸、ＹＨ軸、ＺＨ軸の直交座標系で設定し、顔の向きが正面向きのときの前記ＸＨ軸を身体の中心軸とし、この中心軸回りの回転である回旋の回転角をψとし、他の２つのＹＨ軸、ＺＨ軸回りの回転角をθ，φとした場合の回転角ψ，θ，φを顔の向きの変化である回転行列で表し、
前記顔向きの変化である回転行列を、前記カメラ座標系と前記Ｈ座標系との間の関係及び前記単眼カメラのカメラ回転行列とから求め、
前記画像データの中から、最も頻度の高い顔の向きを正面向きと定義すると共に、前記定義された正面向きの顔に対しては、３つの回転角ψ，θ，φの全てについて０を出力し、
前記画像データの中から、前記中心軸を中心にのみ回転した顔に対しては、その回転角ψを出力し、他の２つの回転角θ，φについて０に近い値を出力する
ことを特徴とする顔向き計算方法。
【請求項２】
前記身体の中心軸が、鉛直軸、または、前記画像データに基づいて最も回転する方向の中心軸である
ことを特徴とする請求項１記載の顔向き計算方法。
【請求項３】
前記顔向きテンプレートを作成する場合には、
様々な方向を向いた顔を撮影した複数の画像データを入力し、
前記複数の画像データを、回転角ψによって複数のクラスに分類し、
前記分類された画像データを用いてクラス毎にテンプレートを作成する
ことを特徴とする請求項１記載の顔向き計算方法。
【請求項４】
前記画像データを回転角ψによって複数のクラスに分類し、
この分類された画像データを主成分分析し、
前記主成分分析された第１主成分から第ｎ主成分までを入力ベクトルｘとして、回転角ψを出力する関数ｆ（ｘ）を学習させ、
前記学習したｆ（ｘ）を利用して顔の向きを計算する
ことを特徴とする請求項１記載の顔向き計算方法。
【請求項５】
前記カメラ回転行列を因子分解法によって求める
ことを特徴とする請求項１記載の顔向き計算方法。
【請求項６】
固定された単眼カメラで人物の顔を撮影して得た画像データを入力して、この画像データと顔の向きに関する情報が予め記憶されている複数の顔向きテンプレートとを比較して、その画像データに撮影されている顔の向きを計算するか、または、この画像データの特徴点を抽出してその特徴点の位置関係から顔の向きを計算する顔向き計算装置であって、
カメラ座標系を、前記単眼カメラのレンズの中心Ｃを原点としたＸＣ軸、ＹＣ軸、ＺＣ軸の直交座標系で設定し、前記ＺＣ軸が光軸、前記ＸＣ軸が左右方向、ＹＣ軸が上下方向に対応し、
Ｈ座標系を、前記顔に固定されたＸＨ軸、ＹＨ軸、ＺＨ軸の直交座標系で設定し、顔の向きが正面向きのときの前記ＸＨ軸を身体の中心軸とし、この中心軸回りの回転である回旋の回転角をψとし、他の２つのＹＨ軸、ＺＨ軸回りの回転角をθ，φとした場合の回転角ψ，θ，φを顔の向きの変化である回転行列で表し、
前記顔向きの変化である回転行列を、前記カメラ座標系と前記Ｈ座標系との間の関係及び前記単眼カメラのカメラ回転行列とから求め、
前記画像データの中から、最も頻度の高い顔の向きを正面向きと定義すると共に、前記定義された正面向きの顔に対しては、３つの回転角ψ，θ，φの全てについて０を出力し、
前記画像データの中から、前記中心軸を中心にのみ回転した顔に対しては、その回転角ψを出力し、他の２つの回転角θ，φについて０に近い値を出力する
ことを特徴とする顔向き計算装置。
【請求項７】
固定された単眼カメラで人物の顔を撮影して得た画像データを入力して、この画像データと顔の向きに関する情報が予め記憶されている複数の顔向きテンプレートとを比較して、その画像データに撮影されている顔の向きを計算するか、または、この画像データの特徴点を抽出してその特徴点の位置関係から顔の向きを計算する顔向き計算方法をコンピュータによって実現するプログラムであって、
カメラ座標系を、前記単眼カメラのレンズの中心Ｃを原点としたＸＣ軸、ＹＣ軸、ＺＣ軸の直交座標系で設定し、前記ＺＣ軸が光軸、前記ＸＣ軸が左右方向、ＹＣ軸が上下方向に対応し、
Ｈ座標系を、前記顔に固定されたＸＨ軸、ＹＨ軸、ＺＨ軸の直交座標系で設定し、顔の向きが正面向きのときの前記ＸＨ軸を身体の中心軸とし、この中心軸回りの回転である回旋の回転角をψとし、他の２つのＹＨ軸、ＺＨ軸回りの回転角をθ，φとした場合の回転角ψ，θ，φを顔の向きの変化である回転行列で表し、
前記顔向きの変化である回転行列を、前記カメラ座標系と前記Ｈ座標系との間の関係及び前記単眼カメラのカメラ回転行列とから求め、
前記画像データの中から、最も頻度の高い顔の向きを正面向きと定義すると共に、前記定義された正面向きの顔に対しては、３つの回転角ψ，θ，φの全てについて０を出力し、
前記画像データの中から、前記中心軸を中心にのみ回転した顔に対しては、その回転角ψを出力し、他の２つの回転角θ，φについて０に近い値を出力する機能とを実現する
ことを特徴とする顔向き計算方法のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像中から人物の顔画像を適切に切り出し、切り出された顔領域画像を用いて、高頑健性かつ高精度の顔向き計算を行う、顔画像による顔向き計算方法に関する。
【０００２】
【従来の技術】
顔画像による顔向き計算は、２次元顔画像からその人物の顔がどちらを向いているかを求める技術であり、様々な分野で利用可能である。しかしながら、カメラで撮影した画像中の顔画像を用いてその顔の向いている方向（顔向き）をコンピュータを利用してリアルタイムで自動的に求めることはコンピュータビジョン分野の最先端技術をもってしてもまだ未解決の問題であり、顔向き計算の応用分野はまだ顕在化しているとは言えない。
【０００３】
かりに顔向き計算技術が実用レベルに到達すれば、乗り物の運転者、展示物の観客、コンソール端末の操作者、ゲーム端末の操作者などに対して顔向き計算技術が応用可能である。
【０００４】
乗り物の運転者に対しては、顔向き計算により運転に支障となる脇見を検知して警報を鳴らせたり、顔向きに応じて安全運行のための適切な情報を提示することができる。
【０００５】
展示物の観客に対しては、顔向き計算により観客の注目している展示を見極めて、その展示に関する情報を自動提示することができる。
【０００６】
コンソール端末の操作者に対しては、顔向き計算により操作しようとしている表示窓を特定してカーソルを移動させて業務効率を高めることができる。
【０００７】
ゲーム端末の操作者に対しては、顔向き計算によりゲーム環境の視点を変更したり、シューティングの狙いを定めたり、首振り動作を用いて登場人物とのコミュニケーションに役立てたりすることができる。
【０００８】
従来の顔向き計算方法には、大きく分けて２通りの方法がある。
【０００９】
第１の従来方法は、目鼻口などの顔の特徴点を検出してそれらの画像座標を用いて幾何学的に向きを計算する方法である。
【００１０】
第２の従来方法は、向き毎の顔画像パターンをそのまま、または、次元圧縮してテンプレートとし、顔全体のパターンマッチングにより最もマッチしたテンプレートに対応する向きを顔の向きと判定する方法である。
【００１１】
第１の従来方法は、特徴点の座標が正確に求まりさえすれば顔向きも正確に計算できる精密な方法である。
【００１２】
しかし、特徴点追跡（トラッキング）の失敗が避けられず、頑健性に欠けるという問題点がある。これは、目鼻口などの特徴点の画像パターンは個人差があることに加え、顔向きの変化によっても特徴点のパターンが変化してしまうことが原因である。
【００１３】
また、顔向きの変化による特徴点画像パターンの変化を克服しようとする方法として、目鼻を円形の分離度フィルタと更新テンプレートマッチングの併用でトラッキングする方法がある（「目鼻の分離度と更新テンプレートマッチング」  林  健太郎，橋本  学，鷲見  和彦．頑健性と精緻性を備えた顔特徴点追跡による顔方向推定，電子情報通信学会論文誌，vol.J84-D-II, no.9, pp.1762-1771, 2001年8月.）。
【００１４】
しかし、更新テンプレートマッチングは、顔の素早い動作により特徴点画像パターンが不連続に変化した場合にはトラッキングを失敗して回復不能となる。
【００１５】
また、特徴点だけを用いるのではなく、顔の輪郭と鼻との相対位置により顔向きを計算する方法が提案されている（「顔の輪郭を利用した顔向き推定」特開平9-163212号）。
【００１６】
この方法は輪郭という大きい領域のロバストな情報と鼻の位置という狭い領域の精密な情報を組み合わせており、小さな特徴点のみを利用した方法に比べると頑健性に優れていると言える。
【００１７】
しかし、顔の輪郭をリアルタイムで求めることが困難である。輪郭は、肌色情報を用いたり、スネークという動的輪郭モデルを用いる方法があるが、肌色の検出は照明条件や個人差の影響を受け易く、また、スネークは計算時間が膨大なことが問題点である。
【００１８】
第２の従来方法は、特徴点の座標を求める必要が無いため、特徴点トラッキングの失敗による破綻は無く頑健な方法である。
【００１９】
しかしながら、予め所定の向きの顔画像データを撮影して向き毎のテンプレートを作成しておく必要があり、また、求められる向きの精度を高めるためにはテンプレートの個数を膨大に増やさなければならないという問題点がある。
【００２０】
さらに付け加えるならば、顔向き計算方法の従来技術においては、目鼻口などの特徴点こそ顔特有の特性を利用してはいるが、顔向きの変化の特性を利用したものは無かった。
【００２１】
【発明が解決しようとする課題】
そこで、本発明は、上記問題点を考慮して、下記の目的でなされたものである。
【００２２】
第１の目的は、人物の顔向きの変化が主として鉛直方向（重力方向）の軸の回りの回転であることを利用して、顔向き計算時に用いる座標系を効率的に設定し、頑健性の高い顔画像による顔向き計算方法を提供することにある。
【００２３】
第２の目的は、測定された人物の顔向きの変化の分布を利用して、顔向き計算時に用いる座標系を効率的に設定し、頑健性の高い顔画像による顔向き計算方法を提供することにある。
【００２４】
第３の目的は、予め所定の向きの顔画像データを撮影する必要の無い、顔全体のパターンマッチングによる顔向き計算方法のための顔向きテンプレート作成方法を提供することにある。
【００２５】
第４の目的は、テンプレートの個数を増加させなくとも高精度で顔向き計算を行う、顔全体のパターンマッチングによる顔向き計算方法を提供することにある。
【００２６】
第５の目的は、特徴点トラッキングを利用した場合の精密さと、顔全体のパターンを用いた場合の頑健性とを兼ね備えた、階層テンプレートを用いた顔向き計算方法を提供することにある。
【００２７】
【課題を解決するための手段】
本発明は、固定された単眼カメラで人物の顔を撮影して得た画像データを入力して、この画像データと顔の向きに関する情報が予め記憶されている複数の顔向きテンプレートとを比較して、その画像データに撮影されている顔の向きを計算するか、または、この画像データの特徴点を抽出してその特徴点の位置関係から顔の向きを計算する顔向き計算方法であって、カメラ座標系を、前記単眼カメラのレンズの中心Ｃを原点としたＸＣ軸、ＹＣ軸、ＺＣ軸の直交座標系で設定し、前記ＺＣ軸が光軸、前記ＸＣ軸が左右方向、ＹＣ軸が上下方向に対応し、Ｈ座標系を、前記顔に固定されたＸＨ軸、ＹＨ軸、ＺＨ軸の直交座標系で設定し、顔の向きが正面向きのときの前記ＸＨ軸を身体の中心軸とし、この中心軸回りの回転である回旋の回転角をψとし、他の２つのＹＨ軸、ＺＨ軸回りの回転角をθ，φとした場合の回転角ψ，θ，φを顔の向きの変化である回転行列で表し、前記顔向きの変化である回転行列を、前記カメラ座標系と前記Ｈ座標系との間の関係及び前記単眼カメラのカメラ回転行列とから求め、前記画像データの中から、最も頻度の高い顔の向きを正面向きと定義すると共に、前記定義された正面向きの顔に対しては、３つの回転角ψ，θ，φの全てについて０を出力し、前記画像データの中から、前記中心軸を中心にのみ回転した顔に対しては、その回転角ψを出力し、他の２つの回転角θ，φについて０に近い値を出力することを特徴とする顔向き計算方法である。
【００３５】
請求項２の発明は、鉛直軸回りの回転を重要視することにより、人物の顔向きの変化の特徴を有効活用した頑健性の高い顔向き計算方法を提供することができる。また、高頻度の向き変化を重要視することにより、人物の顔向きの変化の特徴を有効活用した頑健性の高い顔向き計算方法を提供することができる。
【００３９】
【発明の実施の形態】
（座標系の説明）
以下、本発明の実施形態を説明する前に、図９〜図１２と式（１）〜（１８）を参照しながら前提となる座標系について説明する。
【００４０】
１．座標変換式の説明
基本となる３次元空間の回転（向きの変化）を記述する座標変換式について説明する。
【００４１】
回転の表現にはいろいろなものがあるが、ここでは、徐、辻著、３次元ビジョン（共立出版、１９９８）の表記法に従い、ロール・ピッチ・ヨー（ｒｏｌｌ．ｐｉｔｃｈ．ｙａｗ）の説明と、その表記法に基づき顔向きを最適に表現する方法について下記の式（１）〜（７）に基づいて説明する。
【００４２】
【数１】
0003822482.tif 000002
座標軸Ｘ、Ｙ、ＺをＺ軸回りに角度φだけ回転させた座標軸をＸ’Ｙ’Ｚ’とすると、２つの座標値相互の変換式は式（１）で表される。φはロール（ｒｏｌｌ）と呼ばれる。ベクトルを大文字のＭ，Ｍ’で表し、回転行列をＲで表すと式（１）は式（１’）のように簡潔に表される。逆変換は式（２）で表される。
【００４３】
また、座標軸Ｘ’Ｙ’Ｚ’をＹ’軸回りに角度θだけ回転させた座標軸をＸ''Ｙ''Ｚ''とすると、２つの座標値相互の変換式は式（３）で表される。θはピッチ（ｐｉｔｃｈ）と呼ばれる。ベクトルを大文字のＭ’，Ｍ''で表し、回転行列をＲで表すと式（３）は式（３’）のように簡潔に表される。逆変換は式（４）で表される。
【００４４】
さらに、座標軸をＸ''Ｙ''Ｚ''をＸ''軸回りに角度ψだけ回転させた座標軸をＸ''’Ｙ''’Ｚ''’とすると、２つの座標値相互の変換式は式（５）で表される。ψはヨー（ｙａｗ）と呼ばれる。ベクトルを大文字のＭ''，Ｍ''' で表し、回転行列をＲで表すと式（５）は式（５’）のように簡潔に表される。逆変換は式（６）で表される。
【００４５】
以上の３つの回転を合成する。すなわち、座標軸ＸＹＺをＺ軸の回りにφ回転させ、次に新しいＹ軸の回りにθ回転させ、次に新しいＸ軸の回りにψ回転させてできる座標軸Ｘ’Ｙ’Ｚ’による座標系への変換式は式（７）で表される。
【００４６】
２．カメラ座標系と顔に固定された座標系との関係
画像を用いて物体の３次元的な向きを計測する方法を、カメラの台数によって単眼視法とステレオ画像法に分類することができる。単眼視法は１つのカメラによって撮影された１枚の画像を利用する方法であり、同時には１つの視点からしか撮影しない。因子分解法は単眼カメラによる単眼視法の代表的手法である。一方、ステレオ画像法は複数台のカメラから得られた複数の画像を用い、同時に複数の視点から撮影した画像を用いて、それらの画像間で三角測量法を適用する方法である．本発明は、単眼視法に関する。
【００４７】
そして、本実施形態に使用されるカメラは、単眼カメラであり、その設置位置としては、人物の顔が撮影できる位置に固定されておればよく、従来のように顔の正面から撮影する必要はなく、顔の非正面位置から撮影してもよい。但し、顔を正面から撮影しても本実施形態は実施できる。
【００４８】
単眼カメラのカメラ座標系と顔に固定された座標系との関係を説明する。
【００４９】
図９は、カメラ座標系ＸＣ、ＹＣ、ＺＣを表したものである。Ｃは単眼カメラのレンズ中心、（ｘ，ｙ）は画像座標である。
【００５０】
図１０は、顔を正面から撮影したときのカメラ座標と顔との位置関係を表したものである。単眼カメラの位置が顔のほぼ正面に有れば、解剖学的に左が＋ＸＣ、下が＋ＹＣ、後ろが＋ＺＣとなる。
【００５１】
図１１は、顔に固定された（顔と同じ回転をする）Ｈ（Ｈｅａｄ）座標を表したものであり、解剖学的に上が＋ＸＨ、左が＋ＹＨ、後ろが＋ＺＨとなる。「解剖学的」とは、左右の定義が、右目のある側が右で、左目のある側が左とすることを意味する。画像を見る人が顔画像に向かって右というと、これは解剖学的には左になることに注意しなければならない。このようにＨ座標を定義することにより、顔向きを効率的にロール・ピッチ・ヨーで表現することができる。
【００５２】
次に、顔向きが時々刻々変化する場合を、式（８）〜（１８）を参照して説明する。
【００５３】
【数２】
0003822482.tif 000003
動画像をＦフレーム撮影し、そのフレーム番号をｆとし（ｆ＝１，…，Ｆ）、第１フレーム（ｆ＝１）を基準にとることにする。第ｆフレームのカメラ画像を［ＸＣｆＹＣｆＺＣｆ］Ｔ（Ｔは転置を表す）とすると、式（８）で定義される回転行列ＲＣｆＣが得られる。このＲＣｆＣは因子分解法の計算結果として得られるものであり、顔が固定されカメラが動いたと解釈したときのカメラの回転を表す。式（８）をベクトルＭＣｆ，ＭＣを使って書くと式（８’）となる。同様に、カメラが固定され顔が動いたと解釈したときの顔の回転を表す回転行列ＲＨｆＨを式（１０）で定義する。
【００５４】
因子分解法とは、複数フレームの２次元画像から３次元形状と各フレームの向きを求める為の代表的な優れた方法であり、Ｔｏｍａｓｉと金出によって１９９１年に提案されたものである（Ｔｏｍａｓｉ．Ｃ．ａｎｄ  Ｔ．Ｋａｎａｄｅ；Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  ＣＭＵ−ＣＳ−９１−１７２．ＣＭＵ（１９９１）；Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ．９：２．１３７−１５４（１９９２））。
【００５５】
図１２はＨ座標系とカメラ座標系との関係を、カメラを顔の正面やや下側に設置して撮影した場合を例に説明したものである。
【００５６】
これはｆ＝１の場合と考えて良い。このとき、カメラ座標ＭＣとＨ座標ＭＨとの関係は式（９）となる。すなわち、座標軸ＸＣＹＣＺＣをＺＣ軸の回りに−π／２回転させ、次に新しいＸＣ軸の回りに−δＨ回転させてできる座標軸をＸＨＹＨＺＨとする。
【００５７】
−π／２の回転は、ロール・ピッチ・ヨーで表現するときに、顔の横方向への回転を重視するような回転角の定義にするために必要となる。ここで、ＲＣＨはカメラ座標ＭＣとＨ座標ＭＨとを変換する回転行列を表すものとし、以下の説明における添え字の使い方はこれにならう。
【００５８】
さらにｆフレーム目の状態を考える。カメラ座標ＭＣを固定してＨ座標ＭＨをさまざまに回転させてｆフレーム目の座標がＭＨｆになったときの、ＭＣとＭＨｆとの関係式は、式（９）と（１０）から計算できて、式（１１）で表される。
【００５９】
逆に、Ｈ座標ＭＨを固定してカメラ座標ＭＣをさまざまに回転させてｆフレーム目の座標がＭＣｆになったときの関係式は、式（８’）と（９）から計算できて、式（１３）で表される。
【００６０】
そして、これら２つの動きが同値（等価）であることを利用すると、式（１１）と式（１３）が等価であることが結論され、式（１４）が導かれる。さらに、式（１１），（１４）から式（１７）が導かれ、Ｈ座標における顔向きの変化である回転行列ＲＨｆＨが、式（９）で表される座標間の関係と、因子分解法で求められるカメラ回転行列ＲＣｆＣとで計算できることが分かる。
【００６１】
因子分解法などの幾何学的手法によって３次元の形状獲得の計算や顔（物体）の向き（姿勢）の計算を行わせると、通常はカメラ座標によって向きが求められる。
【００６２】
それは、図９で示されるようにカメラ座標系のＸＣ軸ＹＣ軸と画像座標のｘ軸ｙ軸がスケールを除いて等しくなることが要因である。
【００６３】
因子分解法で求められる顔向きは、式（８）−（１７）におけるＲＣｆＣである。このＲＣｆＣはカメラ座標ＭＣを基準として、ｆフレーム目のカメラの姿勢（向き）を表す回転行列のことであり、式（８）で定義される。
【００６４】
顔の向きの変化を計算する場合にはカメラ座標のＺＣ軸（光軸）ではなく、人物が通常の行動をとるときにどちらを向き易いかを基準にとる方が計算結果を応用する際に利便性が高くなる。
【００６５】
そこで、正面を向いた顔に固定されたＨ座標であるＭＨが回転しＭＨｆに変化したときの回転行列ＲＨｆＨを考えてみると、この回転行列ＲＨｆＨをロール（φＨｆ）・ピッチ（θＨｆ）・ヨー（ψＨｆ）で表すと、それは式（１８）で示されるように人物の顔の解剖学的な向きの変化に対応づけ易くなる。また、ヨー（ψＨｆ）の回転角は、身体の中心軸を中心にして回転する回旋の回転角とも言える。
【００６６】
さらに、人物の顔向きの変化を調査すると、右向き度が大きく変化し、他の角度の変化は少ないことと、右向き度が鉛直軸（鉛直方向を向いた軸）の回りの回転であることが分かり、このことより、顔向きの変化を鉛直軸回りの右向き度で代表することが便利であることが分かった。ここで、横向き度ではなく、右向き度としたのは、符号の値を考慮した為である。
【００６７】
上記において、カメラ位置が正面やや下方からの撮影の場合を例に取ったが、式（９）のＲＣＨのみを適宜設定することにより、他の変換処理は同一のままで、任意の角度から顔を撮影しても、顔向きの変化を同一の回転行列ＲＨｆＨで処理することが可能である。
【００６８】
また、カメラ取り付け位置が不明の場合であっても、顔の向きの頻度分布を調べ、ロール（φＨｆ）とピッチ（θＨｆ）はなるべく不変に保ち、身体の中心軸を中心にして回転する回旋の回転角であるヨー（ψＨｆ）が大きく変化するようなＲＣＨを設定することにより最適なＨ座標系を設定することができる。
【００６９】
（第１の実施形態）
以下、本発明の第１の実施形態について、図１〜図５に基づいて説明する。
【００７０】
１．顔向きテンプレート作成システムの構成
図１は、本発明の第１の実施形態に係る顔向きテンプレート作成システムの一例を示す構成図である。
【００７１】
この顔向きテンプレート作成システム１は、画像を入力し、入力画像に対応した特徴点情報を手操作入力すると、使用座標系を含むテンプレート情報とテンプレートを出力するものであり、システム内部に、特徴点情報を利用した顔向き計算と、それに基づく座標系定義と、顔向きによる画像の分類を行う部分を持つことが特徴である。
【００７２】
具体的には、特徴点情報設定部２と、顔画像格納部３と、顔向き計算部４と、テンプレート情報格納部５と、座標系定義部６と、顔向き分類部７と、テンプレート作成部８と、顔向きテンプレート格納部９から構成され、これら構成部分の機能は、コンピュータに記憶されたプログラムによって実現される。
【００７３】
以下、各構成を順番に説明する。
【００７４】
特徴点情報設定部２は、顔画像格納部３に入力された顔画像の数フレームに対して目鼻口などの特徴点の座標を手操作入力により受け取り、さらにその数フレームをキーフレームとして特徴点トラッキングにより他の画像フレームに対して特徴点座標を求める。
【００７５】
そして、特徴点トラッキングが成功した画像に対する特徴点情報を顔向き計算部４に送る。この際、特徴点トラッキングが失敗した画像フレームに関する特徴点情報は特徴点情報設定部２の内部で廃棄し、顔向き計算部４へは送らない。
【００７６】
顔画像格納部３は、画像入力を受け取り、格納し、必要に応じて特徴点情報設定部２やテンプレート作成部８に画像データを送る。
【００７７】
顔向き計算部４は、特徴点情報設定部２から受け取った特徴点の座標値などの特徴点情報を用い、因子分解法などの幾何学的計算によって３次元形状の獲得計算と各画像フレームの顔向き計算を行い、結果をテンプレート情報格納部５に格納する。
【００７８】
３次元形状の獲得計算の際に、形状誤差が非常に大きい特徴点についてはそれを用いないようにマークを付ける。
【００７９】
また、顔向き計算の際に、顔向きの誤差が非常に大きい画像フレームについては、それを用いないようにマークを付ける処理も顔向き計算部４で行う。
【００８０】
テンプレート情報格納部５は、顔向き計算部４から３次元形状情報と各画像フレームの顔向き情報を受け取り、座標系定義部６から顔向き計算に適した座標系の情報を受け取り、これらの情報を格納し、また、必要に応じて座標系定義部６やシステム外部へテンプレート情報を出力する。
【００８１】
座標系定義部６は、顔向き計算部４またはテンプレート情報格納部５から３次元形状情報と各画像フレームの顔向き情報を受け取り下記のことを行う。
【００８２】
第１は、３自由度の顔向きを最適に表現し、且つ、回転角φ，θ，ψで表現される座標系を定義する。
【００８３】
第２に、各画像フレームの顔向きをこの座標系で表現した数値を計算する。
【００８４】
第３に、これらの処理結果を顔向き分類部７へ送る。
【００８５】
顔向き分類部７は、座標系定義部６から定義された座標系の情報と、各画像フレームの顔向きの情報を受け取り、顔向きを最適に分類する１つの回転角ψの値によって画像フレームを分類し、これらの処理結果をテンプレート作成部８へ送る。
【００８６】
テンプレート作成部８は、顔向き分類部７から各画像フレームの顔向きの情報と分類の情報を受け取り、それに基づいて、顔画像格納部３から向き毎の画像を受け取り、画像縮小処理と主成分分析処理により、向き毎のテンプレートを作成し、顔向きテンプレート格納部９へ結果を送付する。
【００８７】
顔向きテンプレート格納部９は、テンプレート作成部８から向き毎のテンプレートを受け取り、格納し、必要に応じてシステム外部に出力する。
【００８８】
２．顔向きテンプレート作成手順
図２は、本実施形態における顔向きテンプレート作成手順を示す流れ図である。
【００８９】
最初に、標準的な動作をしている顔を撮影した顔動画像を入力し（ＳＴ１）、それから複数の静止画を作成して顔画像格納部３に格納する（ＳＴ２）。
【００９０】
次に、特徴点情報設定部２にて複数の静止画の中から正面を向いている基準となる画像フレーム１枚を選択し手操作入力する（ＳＴ３）。この画像フレームは顔向き計算で基準として用いられる座標系を定義する際にも利用される。
【００９１】
次に、特徴点情報設定部２にて正面向きフレームを含む、数フレームの画像に対して手操作にて特徴点座標を入力し（ＳＴ４）、テンプレートマッチングによる特徴点トラッキングにより、他の画像フレームの特徴点座標を検出する（ＳＴ５）。
【００９２】
さらに、トラッキングにより検出された特徴点のマッチング誤り可能性を分析して、特徴点検出が成功している画像フレームを選択する（ＳＴ６）。
【００９３】
次に、顔向き計算部４は、各画像フレームの特徴点の画像座標を利用して３次元顔形状の獲得と各画像フレームの顔向き計算を行う（ＳＴ７）。
【００９４】
次に、座標系定義部６は、顔向き変化を最適に表現する座標系と回転角φ，θ，ψを定義し、各画像フレームの顔向きをこの回転角φ，θ，ψの数値として計算し、記録する（ＳＴ８）。ステップＳＴ８において、座標系の定義は鉛直軸の回りの顔の回転をψとする場合と、ステップＳＴ７にて得られた顔向き変化の頻度分布を考慮して、顔向き変化をなるべく１つの回転角ψで表すことができるように座標軸及び回転角φ，θ，ψを定義する場合がある。これにより、頑健性の高い正確な顔向き計算を行うことが可能となる。
【００９５】
次に、顔向き分類部７は、回転角ψを右向き度と捉え、右向き度ψの値によって顔画像を分類し、分類結果をテンプレート作成部８へ送る（ＳＴ９）。
【００９６】
さらに、テンプレート作成部８は分類結果に基づき、顔画像を縮小し主成分分析により次元圧縮を行い部分空間を求めることにより、各向き毎のテンプレートを作成し、格納及び出力する（ＳＴ１０）。
【００９７】
３．顔向き計算システムの一例
図３は、本実施形態における顔向き計算システム１０の一例を示す構成図である。
【００９８】
この顔向き計算システム１０は、顔が映っている画像の入力を受け取り、２種類の顔向き計算の結果（概略結果、詳細結果）を出力するものであり、システム内部に、次元削減機能と２種類の向き計算機能を持つことが特徴である。
【００９９】
具体的には、画像入力部１１と、顔検出部１２と、検出テンプレート格納部１３と、概略向き計算部１４と、次元削減部１５と、詳細向き計算部１６から構成され、これら構成部分の機能は、コンピュータに記憶されたプログラムによって実現される。
【０１００】
画像入力部１１は、単眼カメラから画像を受け取り、顔検出部１２へ画像データを送る。
【０１０１】
顔検出部１２は、検出テンプレート格納部１３から顔検出用のテンプレートを受け取り、画像入力部１１から画像を受け取り、顔領域を検出し、その結果を概略向き計算部１４へ送る。
【０１０２】
検出テンプレート格納部１３は、顔向きテンプレート作成システム１で作成されたテンプレートが格納され、必要に応じて顔検出部１２へテンプレートを送る。
【０１０３】
概略向き計算部１４は、顔領域検出の際に計算した各向き毎のテンプレートと画像データとの類似度に基づき、向きを計算し、出力する。
【０１０４】
次元削減部１５は、予め顔向き毎に分類した顔画像を縮小し、主成分分析することにより得られた主な固有ベクトルを利用して部分空間を作成しておき、その部分空間へ射影することにより、画像データの次元削減を行い特徴ベクトルｘを作成し、結果を詳細向き計算部１６へ送る。
【０１０５】
詳細向き計算部１６は、次元削減部１５から受け取った特徴ベクトルｘを顔向き関数ｆ（ｘ）に作用させ、ｆ（ｘ）の出力として顔の右向き度を計算し、詳細向きとして出力する。
【０１０６】
４．顔向き関数ｆ（ｘ）の学習手順
図４は、本実施形態における顔向き関数ｆ（ｘ）の学習手順を示す流れ図である。
【０１０７】
最初に、顔向き毎の顔画像を利用して、主成分分析により数本のベクトル、及び、それらのベクトルにより張られる部分空間ｖを求める（ＳＴ２１）。
【０１０８】
次に、顔向きの回転角ψが対応づけられた各画像フレームを利用して、ｆ（ｘ）を学習させる（ＳＴ２２）。ステップＳＴ２２の学習を以下で詳しく説明する。
【０１０９】
すなわち、各画像フレームの顔領域画像を縮小してさらに部分空間ｖに射影して得られたベクトルｘを各画像フレームの入力とし、各画像フレームに対応した顔向きの回転角ψを出力とし、この入出力の対を学習データとして、ψ＝ｆ（ｘ）が成立するようにｆ（ｘ）を学習させる。
【０１１０】
ｆ（ｘ）として、線形重回帰モデル、非線型重回帰モデル、多層パーセプトロンなどを利用する。学習の評価関数としては、各画像フレームの出力誤差の２乗和を用いたり、外れ値を考慮したロバスト推定における推定関数を適用する。
【０１１１】
線形重回帰モデルの例として、下記の式（１９）で表される数理モデルが挙げられる。
【０１１２】
ここでｘ１、…、ｘｎはベクトルｘの各成分を表すものとする。学習するパラメータは、ａ０、ａ１、…、ａｎである。
【０１１３】
非線型重回帰モデルの例として、式（２０）で表される数理モデルが挙げられる。学習するパラメータは、ａ０、ａ１、…、ａｍ、ω１１、…、ωｍｎ、θ１、…、θｍである。
【０１１４】
多層パーセプトロンの例として、式（２１）（２２）で表される数理モデルが挙げられる。学習するパラメータはｗ０Ｈ１、…、ｗ０Ｈｍ、ｗＨＩ１１、…、ｗＨＩｍｎ、θＨ１、…、θＨｍ、θ０である。
【０１１５】
【数３】
0003822482.tif 000004
５。顔向き計算処理の手順
図５は、本実施形態における顔向き計算処理の手順を示す流れ図である。
【０１１６】
最初に、画像入力部１１に画像を入力する（ＳＴ３１）。
【０１１７】
次に、顔検出部１２が顔向き毎のテンプレートと入力画像とのマッチングを取り、顔位置検出を行い、顔位置検出の結果を用いて概略向き計算部１４が顔向き計算（概略顔向き）を行う（ＳＴ３２）。
【０１１８】
次に、次元削減部１５が顔領域部分を縮小した画像を図４のステップＳＴ２１で求めた部分空間ｖへ射影してベクトルｘを求める（ＳＴ３３）。
【０１１９】
次に、詳細向き計算部１６が顔向き関数ｆ（ｘ）を用いてベクトルｘから回転角ψを計算し、詳細な顔向きの値として出力する（ＳＴ３４）。
【０１２０】
次に、顔向き計算処理を続ける場合はステップＳＴ３１へ戻り、続けない場合は顔向き計算処理を終了する（ＳＴ３５）。
【０１２１】
（第２の実施形態）
以下、本発明の第２の実施形態について、図６〜図８に基づいて説明する。
【０１２２】
図６は、本発明の第２の実施形態に係る顔画像による顔向き計算方法の一例を示す顔向き計算システム２０の構成図である。
【０１２３】
図７、８は顔全体テンプレート対応領域３１と、部分テンプレート対応領域３２と、特徴点３３との位置関係を説明する為の概念図である。図７はカメラに対して真っ直ぐに向いている顔画像であり、図８は少し左を向いた（図に向かっては右）顔画像である。
【０１２４】
顔向き計算システム２０は、顔が映っている画像の入力を受け取り、２種類の顔向き計算の結果（概略結果、詳細結果）を出力するものであり、詳細な顔向き計算方法として、部分空間における関数近似の手法に加えて、階層的テンプレートマッチングの技術を用いる。
【０１２５】
具体的には、画像入力部１１と、顔検出部１２と、検出テンプレート格納部２３と、概略向き計算部１４と、次元削減部１５と、詳細向き計算部２６と、断片マッチング部２７から構成されている。なお、第１の実施形態の構成を示す図３と同一部分には同一符号を付して説明を省略し、ここでは異なる部分についてのみ述べる。
【０１２６】
検出テンプレート格納部２３は、顔向きテンプレート作成システム１で作成されたテンプレートが格納され、必要に応じて顔検出部１２と断片マッチング部２７へテンプレートを送る。テンプレートとして、顔全体パターンのテンプレートに加え、顔全体の大きさと特徴点トラッキングに用いるテンプレートの大きさの中間程度の大きさの小領域テンプレートを格納している。
【０１２７】
詳細向き計算部２６は、次元削減部１５から入力画像に対応したベクトルｘを受け取り、断片マッチング部２７から小さいテンプレートの顔全体テンプレートに対する相対位置座標データｙを受け取り、顔向き関数ｇ（ｘ、ｙ）を用いてベクトルｘ、ｙから回転角ψを計算し、詳細な顔向きの値として出力する。
【０１２８】
相対位置座標とは、図７、８において、顔全体テンプレート対応領域３１を基準とした部分テンプレート対応領域３２の座標を表す。図７に比べて図８では、右目の相対座標はＸＣが不変、ＹＣが減少しており、左目の相対座標はＸＣが減少、ＹＣが増加しており、鼻の相対座標はＸＣが増加、ＹＣが不変であり、右口端の相対座標はＸＣが減少、ＹＣが不変であり、左口端の相対座標はＸＣが減少、ＹＣが増加している。このように、大きなテンプレートがマッチする位置を基準にした小さなテンプレートのマッチ位置の変化に顔向きに関係した情報が含まれており、それを利用して顔向きを計算することができる。
【０１２９】
断片マッチング部２７は、概略向き計算部２６から顔検出位置を受け取り、検出テンプレート格納部２３から小領域テンプレートを受け取り、テンプレートマッチングを行い、マッチ位置を詳細向き計算部２６へ送る。
【０１３０】
（第３の実施形態）
図１３は、本発明の第３の実施形態における顔向き計算システム４０の一例を示す構成図である。
【０１３１】
本実施形態は、特徴点トラッキングによる顔向き推定である。
【０１３２】
この顔向き計算システム４０は、顔が映っている画像の入力を受け取り、顔向き計算の結果を出力するものであり、システム内部にＨ座標計算部４３を持つことが特徴である。
【０１３３】
具体的には、画像入力部１１と、特徴点検出部４１と、幾何的向き計算部４２と、Ｈ座標計算部４３から構成され、これら構成部分の機能は、コンピュータに記憶されたプログラムによって実現される。
【０１３４】
画像入力部１１は、単眼カメラから画像を受け取り、特徴点検出部４１へ画像データを送る。
【０１３５】
特徴点検出部４１は、画像データから目や鼻などの特徴点３３の座標を検出し、その結果を幾何的向き計算部４２へ送る。
【０１３６】
幾何的向き計算部４２は、カメラ座標を基準とした顔向きを計算し、その結果をＨ座標計算部４３へ送る。
【０１３７】
Ｈ座標計算部４３は、カメラ座標を基準とした顔向き計算結果を式（１７）を利用してＨ座標における顔向きに変換する計算処理を行い、結果を詳細向き出力として出力する。
【０１３８】
【発明の効果】
上記したように本発明によれば、顔向きの変化の特性を利用することにより、頑健性が高く、利用し易い顔画像による顔向き計算方法を提供することができる。また、予め所定の向きに対応した顔画像を採取する必要が無い。さらに、トラッキングの頑健性と、向き計算の精密性を兼ね備えものである。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る顔向きテンプレート作成システムの一例を示す構成図である。
【図２】同実施形態の顔向きテンプレート作成の一例を示す流れ図である。
【図３】同実施形態に係る顔向き計算システムの一例を示す構成図である。
【図４】同実施形態に係る顔向き関数の学習処理の一例を示す流れ図である。
【図５】同実施形態に係る顔向き計算処理の一例を示す流れ図である。
【図６】本発明の第２の実施形態に係る顔向き計算システムの一例を示す構成図である。
【図７】同実施形態に係る階層テンプレートを説明する顔画像正面の概念図である。
【図８】同実施形態に係る階層テンプレートを説明する顔画像左向きの概念図である。
【図９】カメラ座標系を説明する概念図である。
【図１０】カメラ座標系と顔画像との関係を説明する概念図である。
【図１１】Ｈ座標系と顔画像との関係を説明する概念図である。
【図１２】カメラ座標系とＨ座標系との関係を説明する概念図である。
【図１３】第３の実施形態における顔向き計算システムの一例を示す構成図である。
【符号の説明】
１  顔向きテンプレート作成システム
２  特徴点情報設定部
３  顔画像格納部
４  顔向き計算部
５  テンプレート情報格納部
６  座標系定義部
７  顔向き分類部
８  テンプレート作成部
９  顔向きテンプレート格納部
１０、２０  顔向き計算システム
１１  画像入力部
１２  顔検出部
１３、２３  検出テンプレート格納部
１４  概略向き計算部
１５  次元削減部
１６、２６  詳細向き計算部
２７  断片マッチング部
３１  顔全体テンプレート対応領域
３２  部分テンプレート対応領域
３３  特徴点
【図１】
0003822482.tif 000005
【図２】
0003822482.tif 000006
【図３】
0003822482.tif 000007
【図４】
0003822482.tif 000008
【図５】
0003822482.tif 000009
【図６】
0003822482.tif 000010
【図７】
0003822482.tif 000011
【図８】
0003822482.tif 000012
【図９】
0003822482.tif 000013
【図１０】
0003822482.tif 000014
【図１１】
0003822482.tif 000015
【図１２】
0003822482.tif 000016
【図１３】
0003822482.tif 000017