【文献】
小島 真一,個人差と個人内変動を分離した統計的顔形状モデル,電子情報通信学会技術研究報告 Vol.113 No.197,日本,一般社団法人電子情報通信学会,2013年 8月26日,第113巻 第197号,pp.13-18,ISSN 0913-5685
【文献】
大西 哲朗 外3名,固有残差画像のテクスチャ解析による顔の個人特徴の表現,情報処理学会研究報告 Vol.2006 No.51 2006−CVIM−154 コンピュータビジョンとイメージメディア,日本,社団法人情報処理学会,2006年 5月19日,第2006巻 第51号,pp.45-52,ISSN 0919-6072
(58)【調査した分野】(Int.Cl.,DB名)
推定対象物の形状に関する複数の状態の何れかが予め付与された、前記推定対象物と同一種類の物体を表す複数の形状データ又は画像の各々のうちの、前記複数の状態の中の基準の状態が付与された形状データ又は画像の各々について検出された特徴点に基づいて、前記複数の形状データ又は画像の各々について、前記物体の3次元形状における回転を表す回転パラメータ及び並進を表す並進パラメータを推定し、前記回転パラメータ及び前記並進パラメータを用いて、前記特徴点の座標を修正する座標値修正手段と、
前記座標値修正手段によって修正された、前記複数の形状データ又は画像の各々について検出された特徴点に基づいて、物体の個体差を表す個体差基底を算出する個体差基底算出手段と、
前記個体差基底算出手段によって算出された前記個体差基底と、前記座標値修正手段によって修正された、前記複数の形状データ又は画像の各々について検出された特徴点とに基づいて、物体の個体内の変動を表す個体内変動基底を算出する個体内変動基底算出手段と、
前記個体差基底算出手段によって算出された前記個体差基底と、前記個体内変動基底算出手段によって算出された前記個体内変動基底と、前記座標値修正手段によって修正された、前記複数の形状データ又は画像の各々について検出された特徴点とに基づいて、前記物体の個体差と個体内変動とが混在した混在基底を算出する混在基底算出手段と、
前記個体差基底算出手段によって算出された前記個体差基底と、前記個体内変動基底算出手段によって算出された前記個体内変動基底と、前記混在基底算出手段によって算出された前記混在基底とを含む少なくとも3種類の基底を用いて表される、前記推定対象物の形状に関する状態を識別するための形状モデルを生成するモデル生成手段と、
を含む形状モデル生成装置。
【発明の概要】
【発明が解決しようとする課題】
【0012】
上記非特許文献1、2に記載の技術では、時間変動するパラメータと時間変動しないパラメータが混合しているために、個人内の表情変化パラメータを変更すると、個人間差パラメータも変更されてしまう。従って、表情変化だけをフィッティングしたいのに、個人差形状も変化してしまうことが避けられないため、フィッティング精度が悪化してしまう、という問題がある。
【0013】
また、上記非特許文献3、4に記載の技術は、統計モデルではないので本質的に精度が低い。
【0014】
また、上記非特許文献5に記載の方法を適用したところ、個人間変動と個人内変動の分離が十分ではないことが分かっだ。つまり、表情変化だけをフィッティングしたいのに個人差形状も変化してしまう、という問題がある。
【0015】
また、上記の非特許文献1、2では、時間変動するパラメータと時間変動しないパラメータが混合しているために、常に全てのパラメータを推定する必要があり、処理時間がかかる、という問題がある。
【0016】
また、上記の非特許文献5に記載の手法では、パラメータの分離が試みられているが、個人間差が完全に分離できていないために、推定パラメータは多くなってしまう、という問題がある。
【0017】
上記の非特許文献7に記載の手法では、N-mode SVDを使うためにデータを用意する際に欠落が許されないという制約があるのと、出来上がったモデルが、以下の式に示すように積の形になっているため、扱い難い。
【0018】
【数3】
【0019】
また、上記の特許文献1及び非特許文献8に記載の技術では、計測中に対象者の3次元顔形状を復元するので処理結果がうまくいくかどうかに不確実性が残り、適用できるアプリケーションが限定される、という問題がある。
【0020】
本発明は、上記の問題点を解決するためになされたもので、短い処理時間で、形状に関する状態を精度よく推定することができる形状状態推定装置、形状モデル生成装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0021】
上記の目的を達成するために第1の発明に係る形状状態推定装置は、推定対象物を撮像する撮像手段によって撮像された前記推定対象物を表す画像から、特徴点を検出する特徴点検出手段と、推定対象物の形状に関する基準の状態である物体であって、前記推定対象物と同一種類の物体を表す複数の画像に基づいて求められる、物体の個体差を表す個体差基底と、前記推定対象物と同一種類の物体を表す複数の画像に基づいて求められる、物体の個体内の変動を表す個体内変動基底及び前記物体の個体差と個体内変動とが混在した混在基底とを含む少なくとも3種類の基底を用いて表される、前記推定対象物の形状に関する状態を識別するための予め学習された形状モデルを用いて、前記特徴点検出手段によって検出された特徴点に基づいて、前記画像が表す前記推定対象物の形状に関する状態を推定し、又は前記状態を表すパラメータを推定する推定手段と、を含んで構成されている。
【0022】
また、第2の発明に係るプログラムは、コンピュータを、推定対象物を撮像する撮像手段によって撮像された前記推定対象物を表す画像から、特徴点を検出する特徴点検出手段、及び推定対象物の形状に関する基準の状態である物体であって、前記推定対象物と同一種類の物体を表す複数の画像に基づいて求められる、物体の個体差を表す個体差基底と、前記推定対象物と同一種類の物体を表す複数の画像に基づいて求められる、物体の個体内の変動を表す個体内変動基底及び前記物体の個体差と個体内変動とが混在した混在基底とを含む少なくとも3種類の基底を用いて表される、前記推定対象物の形状に関する状態を識別するための予め学習された形状モデルを用いて、前記特徴点検出手段によって検出された特徴点に基づいて、前記画像が表す前記推定対象物の形状に関する状態を推定し、又は前記状態を表すパラメータを推定する推定手段として機能させるためのプログラムである。
【0023】
第1の発明及び第2の発明によれば、特徴点検出手段によって、推定対象物を撮像する撮像手段によって撮像された前記推定対象物を表す画像から、特徴点を検出する。そして、推定手段によって、推定対象物の形状に関する基準の状態である物体であって、前記推定対象物と同一種類の物体を表す複数の画像に基づいて求められる、物体の個体差を表す個体差基底と、前記推定対象物と同一種類の物体を表す複数の画像に基づいて求められる、物体の個体内の変動を表す個体内変動基底及び前記物体の個体差と個体内変動とが混在した混在基底とを含む少なくとも3種類の基底を用いて表される、前記推定対象物の形状に関する状態を識別するための予め学習された形状モデルを用いて、前記特徴点検出手段によって検出された特徴点に基づいて、前記画像が表す前記推定対象物の形状に関する状態を推定し、又は前記状態を表すパラメータを推定する。
【0024】
このように、物体の個体差を表す個体差基底と、物体の個体内の変動を表す個体内変動基底と、物体の個体差と個体内変動とが混在した混在基底とを含む少なくとも3種類の基底を用いて表される、推定対象物の形状に関する状態を識別するための形状モデルを用いて、短い処理時間で、形状に関する状態を精度よく推定することができる。
【0025】
第3の発明に係る形状モデル生成装置は、推定対象物の形状に関する複数の状態の何れかが予め付与された、前記推定対象物と同一種類の物体を表す複数の形状データ又は画像の各々のうちの、前記複数の状態の中の基準の状態が付与された形状データ又は画像の各々について検出された特徴点に基づいて、物体の個体差を表す個体差基底を算出する個体差基底算出手段と、前記個体差基底算出手段によって算出された前記個体差基底と、前記複数の形状データ又は画像の各々について検出された特徴点とに基づいて、物体の個体内の変動を表す個体内変動基底を算出する個体内変動基底算出手段と、前記個体差基底算出手段によって算出された前記個体差基底と、前記個人内変動基底算出手段によって算出された前記個体内変動基底と、前記複数の形状データ又は画像の各々について検出された特徴点とに基づいて、前記物体の個体差と個体内変動とが混在した混在基底を算出する混在基底算出手段と、前記個体差基底算出手段によって算出された前記個体差基底と、前記個人内変動基底算出手段によって算出された前記個体内変動基底と、前記混在基底算出手段によって算出された前記混在基底とを含む少なくとも3種類の基底を用いて表される、前記推定対象物の形状に関する状態を識別するための形状モデルを生成するモデル生成手段と、を含んで構成されている。
【0026】
第4の発明に係るプログラムは、コンピュータを、推定対象物の形状に関する複数の状態の何れかが予め付与された、前記推定対象物と同一種類の物体を表す複数の形状データ又は画像の各々のうちの、前記複数の状態の中の基準の状態が付与された形状データ又は画像の各々について検出された特徴点に基づいて、物体の個体差を表す個体差基底を算出する個体差基底算出手段、前記個体差基底算出手段によって算出された前記個体差基底と、前記複数の形状データ又は画像の各々について検出された特徴点とに基づいて、物体の個体内の変動を表す個体内変動基底を算出する個体内変動基底算出手段、前記個体差基底算出手段によって算出された前記個体差基底と、前記個人内変動基底算出手段によって算出された前記個体内変動基底と、前記複数の形状データ又は画像の各々について検出された特徴点とに基づいて、前記物体の個体差と個体内変動とが混在した混在基底を算出する混在基底算出手段、及び前記個体差基底算出手段によって算出された前記個体差基底と、前記個人内変動基底算出手段によって算出された前記個体内変動基底と、前記混在基底算出手段によって算出された前記混在基底とを含む少なくとも3種類の基底を用いて表される、前記推定対象物の形状に関する状態を識別するための形状モデルを生成するモデル生成手段として機能させるためのプログラムである。
【0027】
第3の発明及び第4の発明によれば、個体差基底算出手段によって、推定対象物の形状に関する複数の状態の何れかが予め付与された、前記推定対象物と同一種類の物体を表す複数の形状データ又は画像の各々のうちの、前記複数の状態の中の基準の状態が付与された形状データ又は画像の各々について検出された特徴点に基づいて、物体の個体差を表す個体差基底を算出する。
【0028】
そして、個体内変動基底算出手段によって、前記個体差基底算出手段によって算出された前記個体差基底と、前記複数の形状データ又は画像の各々について検出された特徴点とに基づいて、物体の個体内の変動を表す個体内変動基底を算出する。混在基底算出手段によって、前記個体差基底算出手段によって算出された前記個体差基底と、前記個人内変動基底算出手段によって算出された前記個体内変動基底と、前記複数の形状データ又は画像の各々について検出された特徴点とに基づいて、前記物体の個体差と個体内変動とが混在した混在基底を算出する。
【0029】
そして、モデル生成手段によって、前記個体差基底算出手段によって算出された前記個体差基底と、前記個人内変動基底算出手段によって算出された前記個体内変動基底と、前記混在基底算出手段によって算出された前記混在基底とを含む少なくとも3種類の基底を用いて表される、前記推定対象物の形状に関する状態を識別するための形状モデルを生成する。
【0030】
このように、基準の状態が付与された形状データ又は画像の各々について検出された特徴点に基づいて、物体の個体差を表す個体差基底を算出すると共に、複数の形状データ又は画像の各々について検出された特徴点に基づいて、個体内変動基底及び混在基底を算出して、算出された少なくとも3種類の基底を用いて表される形状モデルを生成することにより、短い処理時間で形状に関する状態を精度よく推定するための形状モデルを生成することができる。
【発明の効果】
【0031】
以上説明したように、本発明の形状状態推定装置及びプログラムによれば、物体の個体差を表す個体差基底と、物体の個体内の変動を表す個体内変動基底と、物体の個体差と個体内変動とが混在した混在基底とを含む少なくとも3種類の基底を用いて表される、推定対象物の形状に関する状態を識別するための形状モデルを用いて、短い処理時間で、形状に関する状態を精度よく推定することができる、という効果が得られる。
【0032】
また、本発明の形状モデル生成装置及びプログラムによれば、基準の状態が付与された形状データ又は画像の各々について検出された特徴点に基づいて、物体の個体差を表す個体差基底を算出すると共に、複数の形状データ又は画像の各々について検出された特徴点に基づいて、個体内変動基底及び混在基底を算出して、算出された少なくとも3種類の基底を用いて表される形状モデルを生成することにより、短い処理時間で形状に関する状態を精度よく推定するための形状モデルを生成することができる、という効果が得られる。
【発明を実施するための形態】
【0034】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、本実施の形態では、顔画像から、顔の形状に関する状態を推定する形状状態推定装置に本発明を適用した場合を例に説明する。
【0035】
図1に示すように、本発明の実施の形態に係る形状状態推定装置10は、対象とする被験者の顔を含む画像を撮像するカメラ12と、画像処理を行うコンピュータ14と、CRT等で構成された表示装置16と、外部記憶装置18とを備えている。
【0036】
コンピュータ14は、CPU20、後述する形状状態推定処理ルーチンのプログラムや顔形状モデルを記憶した内部メモリ22を含んで構成されている。このコンピュータ14をハードウエアとソフトウエアとに基づいて定まる機能実現手段毎に分割した機能ブロックで説明すると、
図2に示すように、コンピュータ14は、カメラ12から出力される濃淡画像である顔画像を入力する画像入力部30と、画像入力部30の出力である顔画像から、顔領域を検出する顔検出部32と、顔領域上の特徴点を検出する特徴点検出部34と、後述するモデル学習装置50によって予め学習された顔形状モデルのパラメータを記憶したモデルパラメータ記憶部36と、顔形状モデルのパラメータ及び検出された特徴点に基づいて顔の3次元の回転並進パラメータを最適化する回転並進パラメータ最適化部38と、顔形状モデルのパラメータ、回転並進パラメータ、及び検出された特徴点に基づいて、個人差基底の係数パラメータを最適化する個人差パラメータ最適化部40と、顔形状モデルのパラメータ、回転並進パラメータ、個人差基底の係数パラメータ、及び検出された特徴点に基づいて、個人内変動基底の係数パラメータ及び混在基底の係数パラメータを最適化し、個人差基底の係数パラメータ、個人内変動基底の係数パラメータ、及び混在基底の係数パラメータを外部記憶装置18に出力する個人内変動パラメータ最適化部42と、個人差基底の係数パラメータ、個人内変動基底の係数パラメータ、及び混在基底の係数パラメータに基づいて、顔形状を算出し、表示装置16に、顔画像に重畳させて表示させる顔形状算出部44とを含んで構成されている。なお、個人差パラメータ最適化部40、個人内変動パラメータ最適化部42、及び顔形状算出部44が、推定手段の一例である。また、個人差基底の係数パラメータ、個人内変動基底の係数パラメータ、及び混在基底の係数パラメータが、状態を表すパラメータの一例である。
【0037】
画像入力部30は、例えば、A/Dコンバータや1画面の画像データを記憶する画像メモリ等で構成される。
【0038】
顔検出部32は、顔画像から、パターンマッチングなどの周知の手法を用いて、顔を表す顔領域を検出する。
【0039】
特徴点検出部34は、検出された顔領域から、パターンマッチングなどの周知の手法を用いて、予め求められた顔形状モデルで用いる特徴点に対応する特徴点を各々検出する。
【0040】
特徴点の場所と数は任意であるが、顔形状モデルで用いる特徴点の場所及び数と一致させておく必要がある。
【0041】
顔形状の場合は目・口・鼻を含むように特徴点を検出するのが一般的であるが必ずしも全て必要と言うわけではなく、アプリケーションに合うように決めればよい。
【0045】
の2N次元のベクトルが得られる。ただし、Tは転置を表す。
【0046】
ここで、顔形状モデルの学習について説明する。
【0047】
顔形状モデルは、
図3に示すモデル学習装置50によって学習される。モデル学習装置50は、画像処理を行うコンピュータ52と、学習用のデータが記憶された外部記憶装置54とを備えている。
【0048】
コンピュータ52は、CPU60、後述するモデル学習処理ルーチンのプログラムを記憶した内部メモリ62を含んで構成されている。このコンピュータ52をハードウエアとソフトウエアとに基づいて定まる機能実現手段毎に分割した機能ブロックで説明すると、
図4に示すように、コンピュータ52は、外部記憶装置54から読み込んだ学習用のデータに基づいて、平均形状を計算する平均形状計算部64と、学習用のデータの座標値を、回転並進パラメータを用いて修正する座標値修正部66と、座標値が修正された学習用のデータに基づいて、個人差基底を算出する個人差基底算出部68と、算出された個人差基底及び座標値が修正された学習用のデータに基づいて、個人内変動基底を算出する個人内変動基底算出部70と、算出された個人内変動基底及び座標値が修正された学習用のデータに基づいて、個人差と個人内変動とが混在した混在基底を算出する混在基底算出部72と、算出された個人差基底、個人内変動基底、及び混在基底を含む顔形状モデルを生成し、顔形状モデルのパラメータを、外部記憶装置54へ出力するモデルパラメータ出力部74とを備えている。なお、モデルパラメータ出力部74が、モデル生成手段の一例である。また、個人差基底が、個体差基底の一例であり、個人内変動基底が、個体内変動基底の一例である。
【0049】
外部記憶装置54には、複数の被験者の顔の3次元顔形状データに基づいて各々求められた、各特徴点の座標を表す3次元データが、学習用データとして記憶されている。
【0050】
ここで、各特徴点の座標を表す3次元データの求め方について説明する。
【0051】
まず、元となる顔形状データとして、3元顔形状データを複数(M個とする)用意する。3次元顔形状データは3次元形状を直接計測する装置で得るか、正面顔を撮影したステレオ画像から3次元復元する方法や、様々な方向を向いた時系列顔画像からShape from Motion技術で3次元復元することで得る方法などがある。
【0052】
汎用モデルの構築のために、様々な個人形状が含まれていることが望ましい。個人内変動の表情変化は、顔形状モデルを適用するアプリケーションに合うように決める。例えば、閉眼検出のアプリケーションに対しては、個人内変動の表情変化として、目を開閉したときの3次元顔形状データを取得する。また、発話検出のアプリケーションに対しては、個人内変動の表情変化として、口を開閉したときの3次元顔形状データを取得する。また、感情推定のアプリケーションに対しては、個人内変動の表情変化として、基本6感情の表情に変化させたときの3次元顔形状データを取得する。
【0053】
次に、M個の3次元顔形状データから、
図5(B)に示すように、顔形状モデルで使う特徴点の座標値(x,y,z)をサンプリングする。なお、座標系は任意に決めて構わない。
【0054】
サンプリングする特徴点の場所と数は任意であるが、複数用意したデータ間でサンプリングする特徴点の場所と数は一致させておく必要がある。
【0055】
顔形状の場合は目・口・鼻を含むように特徴点をサンプリングするのが一般的であるが必ずしも全て必要と言うわけではなく、アプリケーションに合うように決めればよい。
【0056】
以下、サンプリングする点の数をNとする。
【0060】
また、3次元顔形状データをM個用意したので、以下の式に示すように、3N×Mの行列が得られる。
【0062】
上記の3N×Mの行列が、学習用のデータとして、外部記憶装置54に記憶されている。また、学習用のデータには、M個の3次元顔形状データの各々に対応して、顔形状の状態を識別するための個人内変動idが付与されている。また、個人内変動idのうちのデフォルト顔クラスに対応する個人内変動idが付与されているデータに対しては、個人を識別するための個人差idが更に付与されている。なお、個人内変動idが、形状に関する状態の一例であり、デフォルト顔クラスに対応する個人内変動idが、基準の状態の一例である。
【0063】
なお、上記では、3次元データを用いる場合を例に説明したが、これに限定されるものではなく、2次元データを用いてもよい。この場合には、
図5(A)に示すように、正面から撮影した顔画像を複数(M枚とする)用意して、各特徴点の座標をサンプリングすればよい。また、2次元データからは、以下の式に示すように、2N次元のベクトルが得られる。
【0065】
また、以下の式に示すように、2N×Mの行列が得られる。
【0067】
平均形状計算部64は、外部記憶装置54に記憶されている学習用のデータ(3N×Mの行列)を読み込み、以下の式のように、学習用のデータを表す行列について、行ごとに平均値を求める。
【0069】
これによって、以下の3N次元のベクトルが得られる。
【0071】
座標値修正部66は、学習用のデータ(3N×Mの行列)のM個の縦ベクトルごとに、以下の式に従って、各座標値と平均値の距離誤差の2乗和を計算する。
【0073】
ここで、x'
ij、y'
ij、z'
ijは、以下のようにx
ij、y
ij、z
ijと回転パラメータφ
j,θ
j,ψ
jと、並進パラメータt
1j、t
2j、t
3jとを用いて表される。
【0075】
座標値修正部66は、以下の式に示すように、各座標値と平均値の距離誤差の2乗和を最小化するような回転パラメータφ
j,θ
j,ψ
jと並進パラメータt
1j,t
2j,t
3jを、M個の縦ベクトルの各々に対して求める。アルゴリズムとしては例えば最急降下法が適用可能である。
【0077】
そして、求めた回転パラメータφ
j,θ
j,ψ
jと、並進パラメータt
1j,t
2j,t
3jとを使って、x
ij、y
ij、z
ijからx'
ij、y'
ij、z'
ijを計算し、以下の式に示すような、各座標値が修正された行列Xを作る。
【0079】
個人差基底算出部68は、各座標値が修正された行列Xに基づいて、以下のように、個人差基底を算出する。
【0080】
まず、個人差クラスのクラス数(すなわち、被験者の人数)をN
bとする。クラスの数はデータの数より少ないのでN
b ≦Mである。各座標値が修正された行列Xのうちの、デフォルト顔クラスに対応する個人内変動idとk番目の個人差idとの両方が付与されたデータ集合S
dを使って、デフォルト顔クラスに対応する個人内変動idとk番目の個人差idを持つデータの平均ベクトル[
-x'
1k、
-y'
1k、
-z'
1k、・・・
-x'
Nk、
-y'
Nk、
-z'
Nk]
Tを、以下の式に従って計算する。ここで、k番目の個人差idを持つデータの個数をN’
wkとする。また、データが欠けている個人差クラスは無いものとする。
【0082】
個人内変動id毎に上記の式に従って計算した平均ベクトルを並べて、以下の3N×N
b行列X
1を生成し、行列X
1で主成分分析を行う。主成分分析で得られた固有ベクトルを大きさが1になるように正規化してから固有値の大きい順に並べた行列をA
all_1とすると、A
all_1は3N×3Nの行列になる。ただし、3N>N
bの場合、有効な固有ベクトルはN
b個までになる。
【0084】
行列A
all_1のうち、固有値の大きい方からn
1個の固有ベクトルを取り出して並べた3N×n
1の行列を生成し、個人差基底A
1とする。
【0085】
n
1の決め方としては、固有値の寄与度累計が一定割合(例えば80%)以上になるように選ぶ方法や、経験的に個数(例えば4個)を決めるやり方がある。
【0086】
個人内変動基底算出部70は、各座標値が修正された行列Xと、算出された個人差基底A
1とに基づいて、以下のように、個人内変動基底A
2を算出する。
【0087】
まず、以下の式に従って計算して得られた行列をX
2とする。X
2はXと同じ次元の3N×M行列で、Xから個人差基底の影響を除いたものになる。
【0088】
X
2=X−A
1 A
1T X ・・・(1)
【0091】
また、個人内変動クラスのクラス数(形状に関する状態数)をNwとする。クラスの数はデータの数より少ないのでNw ≦Mである。k番目の個人内変動idを持つデータの個数をN’
bkとして、k番目の個人内変動idを持つ3次元顔形状データについての平均ベクトル[
-x"
1k、
-y"
1k、
-z"
1k、・・・
-x"
Nk、
-y"
Nk、
-z"
Nk、]
Tを、以下の式に従って、計算する。
【0093】
上記で計算した平均ベクトルを並べて、以下に示す3N×Nwの行列X’
2を生成し、行列X’
2をについて主成分分析を行う。主成分分析によって得られた固有ベクトルを大きさが1になるように正規化してから固有値の大きい順に並べた行列をA
all_2とすると、A
all_2は3N×3Nの行列になる。ただし、3N>Nwの場合、有効な固有ベクトルはNw個までになる。
【0095】
行列A
all_2うち、固有値の大きい方からn
2個の固有ベクトルを取り出して並べた3N×n
2の行列を個人差基底A
2とする。なお、n
2の決め方は、n
1と同様である。
【0096】
ここで、X
2=X−A
1A
1TXの演算で、A
1の影響が取り除ける理由について
図6を用いて説明する。
【0097】
まず、内積の定義から、a
i・x=|a
i||x|cosθであり、|a
i|=1で正規化してあるので、a
i・xはベクトルxをa
i軸に投影した点から原点までの距離になる。
【0098】
そのスカラー値である距離に大きさ1のベクトルa
iを掛けるので、a
ia
iT・xは、xをa
i軸に投影した点x’を表す。
【0099】
x-x’は、xから、xをa
i軸に投影した成分x’を引くことになるので、a
i軸に直交したベクトルになる。従って、a
i軸方向の成分は固有ベクトルとして選ばれなくなる。
【0100】
上述したように、X
2=X−A
1A
1TXの演算で、A
1の影響を取り除くことができる。
【0101】
混在基底算出部72は、各座標値が修正された行列Xと、算出された個人差基底A
1及び個人差基底A
2とに基づいて、以下のように、個人差と個人内変動が混在した混在基底A
3を算出する。
【0102】
まず、以下の式に従って計算して得られた行列をX
3とする。
【0103】
X
3=X
2 −A
2 A
2T X
2 ・・・(3)
【0104】
行列X
3で主成分分析を行い、得られた固有ベクトルを固有値の大きい順に並べた行列をA
all_3とすると、A
all_3は3N×3Nの行列になる。
【0105】
A
all_3のうち、固有値の大きい方からn
3個取り出して並べた3N×n
3の行列を個人差と個人内変動が混在した混在基底A
3とする。
【0106】
モデルパラメータ出力部74は、以下のように、形状モデルを表す式を作成する。
【0107】
まず、平均値x
0を計算する。平均値x
0はいくつか選び方があるが、本実施の形態では、以下の式に示すように、個人差基底算出部68で求めた行列X
1を列方向に平均化したものを、平均値x
0として用いることにする。
【0109】
また、形状モデルは、以下の式で表わされる。ここで、p
1、p
2、p
3は、それぞれ、個人差基底、個人内変動基底、混在基底の係数パラメータであり、それぞれn
1、n
2、n
3個の要素を持つパラメータベクトルである。
【0111】
ただし、n
1、n
2、n
3は以下の関係式を満たす。
【0112】
n
1≦N
b≦M, n
2≦N
bw≦M, n
1+n
2+n
3≦M
【0113】
モデルパラメータ出力部74は、各パラメータ(平均ベクトルx
0、全ての個人差基底A
all_1、個人差基底A
1、使用する個人差基底の数n
1、全ての個人内変動基底A
all_2、個人内変動基底A
2、使用する個人内変動基底の数n
2、全ての個人差と個人内変動が混在した基底A
all_3、個人差と個人内変動が混在した基底A
3、使用する個人差と個人内変動が混在した基底の数
n3)を、外部記憶装置54へ出力する。
【0114】
形状状態推定装置10のモデルパラメータ記憶部36には、外部記憶装置54と同様に、上記の各モデルパラメータが記憶されている。
【0115】
回転並進パラメータ最適化部38は、モデルパラメータ記憶部36に記憶されている各モデルパラメータと、特徴点検出部34によって検出された顔画像上の各特徴点の座標とに基づいて、以下に説明するように、回転パラメータ及び並進パラメータを最適化する。
【0116】
まず、顔形状モデルの係数パラメータp
1,p
2t,p
3t、回転パラメータφ
t,θ
t,ψ
t、並進パラメータ設定t
1t,t
2t,t
3tに、初期値を設定する。
【0117】
そして、顔形状モデルの係数パラメータp
1,p
2t,p
3tと、モデルパラメータ(平均ベクトルx
0、個人差基底A
1、個人内変動基底A
2、混在基底A
3)とに基づいて、以下の顔形状モデルを表す式に従って、各特徴点の3次元位置を計算する。
【0119】
また、上記で計算された各特徴点の3次元位置と、回転パラメータφ
t,θ
t,ψ
tと、並進パラメータ設定t
1t,t
2t,t
3tとに基づいて、回転パラメータ及び並進パラメータを考慮した、各特徴点の3次元位置を計算する。
【0121】
そして、上記で計算した各特徴点の3次元位置を、以下の式に従って、2次元投影し、2次元位置を計算する。
【0123】
そして、特徴点検出部34によって検出された各特徴点の座標と、上記の式で計算された各特徴点の2次元位置との距離誤差の2乗和を、以下の式に従って計算する。
【0125】
そして、f()を最小化する回転パラメータφ
t,θ
t,ψ
t、及び並進パラメータt
1t,t
2t,t
3tを求める。
【0126】
個人差パラメータ最適化部40は、上記で回転パラメータ及び並進パラメータを考慮して計算した各特徴点の3次元位置を、以下の式に従って、2次元投影し、2次元位置を再計算する。
【0128】
そして、以下の式で表わされるf()を最小化する個人差基底の係数パラメータp
1を求める。
【0130】
個人差基底の係数パラメータは、時間変動しないため、一度収束すると、上記の計算処理は行われない。
【0131】
個人内変動パラメータ最適化部42は、上記で回転パラメータ及び並進パラメータを考慮して計算した各特徴点の3次元位置を、以下の式に従って、2次元投影し、2次元位置を再計算する。
【0133】
そして、以下の式で表わされるf()を最小化する個人内変動基底の係数パラメータp
2t、及び混在基底の係数パラメータp
3tを求める。
【0135】
個人内変動パラメータ最適化部42は、最適化された個人内変動基底の係数パラメータp
2t、及び混在基底の係数パラメータp
3t、個人差基底の係数パラメータp
1を、外部記憶装置18へ出力する。
【0136】
顔形状算出部44は、最適化された個人内変動基底の係数パラメータp
2t、及び混在基底の係数パラメータp
3t、個人差基底の係数パラメータp
1に基づいて、上記で回転パラメータ及び並進パラメータを考慮して計算した各特徴点の3次元位置を、以下の式に従って、2次元投影することにより、2次元位置を再計算し、得られた各特徴点の2次元位置に基づいて、顔形状を生成し、顔形状を表示装置16に表示させる。
【0138】
次に、モデル学習装置50の動作について説明する。まず、予め用意されたM個の3次元顔形状データから得られた3N×Mの行列が、学習用のデータとして、外部記憶装置54に記憶される。
【0139】
そして、コンピュータ52において、
図7、
図8に示すモデル学習処理ルーチンが実行される。
【0140】
まず、ステップ100において、外部記憶装置54から、学習用のデータを読み込む。そして、ステップ102において、上記ステップ100で読み込んだ学習用のデータに基づいて、各特徴点の3次元位置の平均を計算し、3N次元の平均ベクトルを計算する。
【0141】
次に、M個の3次元顔形状データの各々について、ステップ104〜106を繰り返し行う。
【0142】
ステップ104では、j番目の3次元顔形状データについての各特徴点の3次元位置と、上記ステップ102で計算された平均ベクトルとに基づいて、j番目の3次元顔形状データに関する回転パラメータ及び並進パラメータを求める。そして、ステップ106では、上記ステップ104で求めた回転パラメータ及び並進パラメータを用いて、j番目の3次元顔形状データについての各特徴点の3次元位置の座標を修正する。
【0143】
ステップ108では、M個の3次元顔形状データの各々について上記ステップ106で修正された各特徴点の3次元位置の座標を並べて、3N×Mの行列Xを作成する。
【0144】
そして、ステップ110において、個人差id毎に、上記ステップ108で作成した行列Xから、デフォルト顔クラスに対応する個人内変動idと当該個人差idとの両方が付与された3次元顔形状データについての各特徴点の3次元位置の座標を表すベクトルを取得し、取得したベクトルの集合S
dに基づいて、デフォルト顔クラスに対応する個人内変動idと当該個人差idを持つ3次元顔形状データの平均ベクトル[
-x'
1k、
-y'
1k、
-z'
1k、・・・
-x'
Nk、
-y'
Nk、
-z'
Nk]
Tを計算する。
【0145】
そして、ステップ112において、上記ステップ110で計算された平均ベクトルを並べて、3N×N
bの行列X
1を作成し、行列X
1に対して主成分分析を行う。得られた固有ベクトルを大きさが1になるように正規化してから固有値の大きい順に並べた行列A
all_1を求める。
【0146】
次のステップ114では、上記ステップ112で求めた行列A
all_1から、固有値の大きい方からn
1個の固有ベクトルを取り出して並べた3N×n
1の行列を作成し、個人差基底A
1とする。
【0147】
そして、ステップ116において、上記ステップ108で作成された行列Xと、上記ステップ114で求められた行列A
1とに基づいて、上記(1)式に従って、行列X
2を計算する。
【0148】
次のステップ118では、個人内変動id毎に、上記ステップ116で計算した行列X
2から、当該個人内変動idが付与されたN’
bk個の3次元顔形状データについての各特徴点の3次元位置の座標を表すベクトルを取得し、取得したベクトルの集合に基づいて、上記(2)式に従って、当該個人内変動idを持つデータの平均ベクトル[
-x"
1k、
-y"
1k、
-z"
1k、・・・
-x"
Nk、
-y"
Nk、
-z"
Nk、]
Tを計算する。
【0149】
ステップ120では、上記ステップ118で個人内変動id毎に計算した平均ベクトルを並べて、3N×Nwの行列X'
2を作成し、行列X'
2に対して主成分分析を行う。得られた固有ベクトルを大きさが1になるように正規化してから固有値の大きい順に並べた行列A
all_2を求める。
【0150】
次のステップ122では、上記ステップ120で求めた行列A
all_2から、固有値の大きい方からn
2個取り出して並べた3N×n
2の行列を作成し、個人内変動基底A
2とする。
【0151】
そして、ステップ124において、上記ステップ116で作成された行列X
2と、上記ステップ122で求められた行列A
2とに基づいて、上記(3)式に従って、行列X
3を計算する。
【0152】
ステップ126では、上記ステップ124で計算した行列X
3に対して主成分分析を行う。得られた固有ベクトルを固有値の大きい順に並べた行列A
all_3を求める。求めた行列A
all_3から、固有値の大きい方からn
3個の固有ベクトルを取り出して並べた3N×n
3の行列を作成し、個人差と個人内変動とが混在した混在基底A
3とする。
【0153】
そして、ステップ128において、上記ステップ110で計算された平均ベクトルを用いて、形状モデルの平均ベクトルx
0を計算する。ステップ130では、上記ステップ114で求められた個人差基底A
1、上記ステップ122で求められた個人内変動基底A
2、上記ステップ126で求めた混在基底A
3、及び上記ステップ128で計算した平均ベクトルx
0を用いた形状モデルを生成すると共に、個人差基底A
1、個人内変動基底A
2、混在基底A
3、平均ベクトルx
0、及び変数n
1,n
2,n
3を、モデルパラメータとして、外部記憶装置54に出力し、モデル学習処理ルーチンを終了する。
【0154】
次に、形状状態推定装置10の動作について説明する。まず、外部記憶装置54に記憶されているモデルパラメータが、外部記憶装置18に記憶される。また、カメラ12によって、被験者の顔画像が逐次撮像されているときに、コンピュータ14において、
図9に示す形状状態推定処理ルーチンが実行される。
【0155】
ステップ150において、外部記憶装置18に記憶されているモデルパラメータが読み込まれる。そして、ステップ152において、プログラム初期設定として、p
1計算スキップフラグを0にセットする。ステップ154では、顔形状モデルの係数パラメータp
1,p
2t,p
3t、回転パラメータφ
t,θ
t,ψ
t、並進パラメータ設定t
1t,t
2t,t
3tに、初期値を各々設定する
【0156】
そして、ステップ156において、カメラ12によって撮像された画像を読み込む。ステップ158では、カメラ12による画像の撮像が終了したか否かを判定する。上記ステップ156で、画像が読み込まれなかった場合には、画像の撮像が終了したと判定し、形状状態推定処理ルーチンを終了する。一方、上記ステップで、画像が読み込まれた場合には、画像の撮像が終了していないと判定し、ステップ160へ進む。
【0157】
ステップ160では、上記ステップ156で読み込まれた顔画像から、顔領域を検出する。ステップ162では、上記ステップ160で検出された顔領域から、形状モデルの各特徴点に対応する特徴点を検出する。
【0158】
次のステップ164では、上記ステップ150で読み込んだモデルパラメータと、上記ステップ154で初期設定された顔形状モデルの係数パラメータp
1,p
2t,p
3t、又は後述するステップ176、182で前回求められた係数パラメータp
1,p
2t,p
3tとに基づいて、上記(4)式を計算し、各特徴点の3次元位置を計算する。
【0159】
そして、ステップ166において、上記ステップ164で計算された各特徴点の3次元位置と、上記ステップ154で初期設定された回転パラメータφ
t,θ
t,ψ
t、並進パラメータ設定t
1t,t
2t,t
3t、又は後述するステップ172で前回求められた回転パラメータφ
t,θ
t,ψ
t、並進パラメータt
1t,t
2t,t
3tとに基づいて、上記(5)式を計算し、各特徴点の3次元位置を計算する。
【0160】
そして、ステップ168において、上記ステップ166で計算された各特徴点の3次元位置を、上記(6)式に従って、2次元投影し、各特徴点の2次元位置を計算する。次のステップ170では、上記ステップ162で検出された各特徴点の座標と、上記ステップ168で計算された各特徴点の2次元位置とに基づいて、上記(7)式に従って、距離誤差の2乗和を計算する。
【0161】
ステップ172では、上記ステップ170で計算された距離誤差の2乗和を最小化する回転パラメータφ
t,θ
t,ψ
t、並進パラメータ設定t
1t,t
2t,t
3tを求める。
【0162】
ステップ174では、p
1計算スキップフラグが0であるか否かを判定する。p
1計算スキップフラグが0である場合には、ステップ176へ移行する。一方、p
1計算スキップフラグが1である場合には、ステップ182へ移行する。
【0163】
ステップ176では、上記ステップ166で計算された各特徴点の3次元位置を、上記(8)式に従って、2次元投影し、各特徴点の2次元位置を再計算する。そして、上記ステップ162で検出された各特徴点の座標と、再計算された各特徴点の2次元位置とに基づいて、上記(9)式に従って、距離誤差の2乗和を最小化する、顔形状モデルの係数パラメータp
1を求める。
【0164】
そして、ステップ178において、上記ステップ176で求められた係数パラメータp
1と、前回求められた係数パラメータp
1とに基づく時間変化量が閾値以下であるか否かを判定する。時間変化量が閾値より大きい場合には、係数パラメータp
1が収束していないと判断し、ステップ182へ移行する。一方、時間変化量が閾値以下である場合には、係数パラメータp
1が収束していると判断し、ステップ180へ移行する。ステップ180では、p
1計算スキップフラグを1に設定する。
【0165】
ステップ182では、上記ステップ166で計算された各特徴点の3次元位置を、上記(10)式に従って、2次元投影し、各特徴点の2次元位置を再計算する。そして、上記ステップ162で検出された各特徴点の座標と、再計算された各特徴点の2次元位置とに基づいて、上記(11)式に従って、距離誤差の2乗和を最小化する、顔形状モデルの係数パラメータp
2t、p
3tを求める。
【0166】
次のステップ184では、上記ステップ166で計算された各特徴点の3次元位置を、上記(12)式に従って、2次元投影し、各特徴点の2次元位置を再計算する。そして、表示装置16に、再計算された各特徴点の2次元位置を表示させて、顔形状を表示させる。ステップ186では、上記ステップ172で求められた回転パラメータφ
t,θ
t,ψ
t、並進パラメータ設定t
1t,t
2t,t
3tと、上記ステップ176、182で求められた係数パラメータp
1、p
2t、p
3tを、外部記憶装置54に出力する。
【0167】
ステップ188では、処理を終了するか否かを判定し、終了しない場合には、上記ステップ156へ戻り、新たに顔画像を読み込む。一方、処理を終了する場合には、形状状態推定処理ルーチンを終了する。
【0168】
以上説明したように、本発明の実施の形態に係る形状状態推定装置によれば、個人差基底と、個人内変動基底と、混在基底とを含む3種類の基底の線形和を用いて表される、顔形状に関する状態を識別するための形状モデルを用いて、短い処理時間で、形状に関する状態を精度よく推定することができる。
【0169】
また、時間変動するパラメータ(表情)と時間変動しないパラメータ(個人差)が分離されているために、顔表情にフィッティングさせて係数パラメータを推定する際に、顔形状個人差の部分が変化しないため、形状に関する状態を精度よく推定することができる。
【0170】
また、時間変動しない個人差基底の係数パラメータは、一旦収束したら以降は推定不要になる。以降は、時間変動する個人内変動基底の係数パラメータ及び混在基底の係数パラメータのみを推定すれば良いので、処理するパラメータが減る分、処理時間が短縮できる。
【0171】
また、表情変化が含まれない通常表情のクラス(デフォルト顔クラス)を導入し、通常表情のみで個人差基底を計算する。これにより、表情変化の影響を含まない個人形状差を取り出すことができる。
【0172】
また、本実施の形態に係るモデル学習装置によれば、デフォルト顔クラスの個人内変動idが付与された3次元形状データの各々について検出された特徴点の3次元座標に基づいて、個人差基底を算出すると共に、複数の3次元形状データの各々について検出された特徴点の3次元座標に基づいて、個人内変動基底及び混在基底を算出して、算出された3種類の基底の線形和を用いて表される形状モデルを生成することにより、短い処理時間で形状に関する状態を精度よく推定するための形状モデルを生成することができる。
【0173】
ここで、従来手法と本実施の形態に係る手法の違いを説明する。
【0174】
上記の非特許文献1、2に記載のPCAを使う手法では、データ準備の自由度が大きい(
図10(A)参照)。また、上記の非特許文献5、6に記載のCDAに基づく方法では、全てのデータにどちらかの軸でクラスidを付ける(例えば、個人内変動クラスidを付ける)。データの欠けは許容されるため、データ準備の自由度は大きい(
図10(B)参照)。
【0175】
また、上記の非特許文献7に記載のN-mode SVDを使う手法では、個人差クラスidと個人内変動idの両方が必要で、かつ同じidの組み合わせを持つデータは1つのみである。データの欠けは許容されないためデータ準備の自由度が低い(
図10(C)参照)。
【0176】
本実施の形態に係る手法は、CDAに基づく手法と類似だが、デフォルト顔クラスが必須であり、 全てのデータに個人内変動クラスidを付ける(
図10(D)参照)。また、 デフォルト顔クラスのみ、個人差クラスidと個人内変動idの両方付ける。データの欠けは許容されるため、データ準備の自由度は大きい。
【0177】
また、
図11に示すように、個人内変動に関するクラス平均、個人差に関するクラス平均は、理想的には、他の軸に対して直交するため、他の軸の影響を受けない。しかしながら、
図12に示すように、表情を正確に揃えるのは難しいので、個人差クラスの平均は個人内変動軸に対して直交しない。また、データ欠けがある場合は、それ以上に直交しなくなる。
【0178】
このように、個人内変動クラスの平均は、データ欠けがあると個人差軸に対して直交しない。
【0179】
また、上記の非特許文献5、6に記載の手法では、個々人の平均表情から個人差変動を計算しているため、その平均表情位置が個人毎に異なる(
図13参照)。そのため、平均表情位置の個人毎のばらつきが表情変化という形で個人差基底に含まれてしまう。
【0180】
これに対し、本実施の形態に係る手法では、
図14に示すように、表情変化が含まれない通常表情のクラスを導入し、通常表情のみで個人差基底を計算する。これにより、表情変化の影響を含まない個人形状差を取り出すことができる。
【0181】
なお、上記の実施の形態では、撮像された顔画像から、逐次、個人内変動基底及び混在基底の係数パラメータを推定する場合を例に説明したが、これに限定されるものではない。例えば、外部記憶装置に記憶されている顔画像から、個人内変動基底及び混在基底の係数パラメータを推定するようにしてもよい。
【0182】
また、人の顔の形状に関する形状モデルを生成する場合を例に説明したが、これに限定されるものではない。人以外の生物の形状に関する形状モデルを生成するようにしてもよい。
【0183】
また、形状モデルを用いて、個人差基底の係数パラメータ、個人内変動基底の係数パラメータ、及び混在基底の係数パラメータを求めて出力する場合を例に説明したが、これに限定されるものではなく、求められた個人差基底の係数パラメータ、個人内変動基底の係数パラメータ、及び混在基底の係数パラメータに基づいて、顔の形状に関する状態を推定するようにしてもよい。