説明

画像処理装置およびコンピュータプログラム

【課題】三次元物体を撮影した画像を元に画像上の画素の位置を被写体表面の位置に対応させる場合、非線形的歪みにも対応してアラインできる画像処理装置を提供する。
【解決手段】画像処理装置は、三次元物体の複数のフレーム画像に含まれる画素位置を推定して得られる貼り付け画像を取得する貼り付け画像取得部と、取得した複数の貼り付け画像の和に、所定の解像度によるローパスフィルターをかけて当該解像度のリファレンス画像を生成するリファレンス画像生成部と、貼り付け画像とリファレンス画像とに基づき画素の位置ずれ量を計算し、貼り付け画像をアラインするワーピング処理部とを備える。制御部は、所定の解像度においてアラインして得られた貼り付け画像を、貼り付け画像取得部に取得させ、次の解像度においてリファレンス画像生成部にリファレンス画像を生成させ、低解像度側から高解像度側へ、アラインを順次繰り返すように制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置およびそのコンピュータプログラムに関する。特に、複数の画像間で対応する点の位置を対応付ける画像処理装置およびそのコンピュータプログラムに関する。
【背景技術】
【0002】
三次元形状を有する被写体を撮像した複数の画像間において、被写体上のある特徴点がそれら複数の画像上のどの位置に対応するかを算出することが求められる。
例えば、非特許文献1には、2枚の画像間における被写体の位置ずれと、被写体の回転の中心および回転角度と、被写体の拡大または縮小の中心と拡大率(または縮小率)とを推定する手法が記載されている。同文献に記載された技術では、2枚の画像にそれぞれ含まれるパッチのフーリエ変換を計算して、2つの最大のフーリエ成分により、両パッチ間のアフィン変換を推定する。
【0003】
また、非特許文献2には、2つの画像パッチに含まれる特徴点で計測したガボールウェーブレット(Gabor wavelet)係数の比較により、特徴点同士の間での位置ずれを推定する技術が記載されている。非特許文献2に記載されたシステムは、1枚の入力顔画像と顔テンプレートとを照合し、その結果に基づいて入力された顔の認識を行なう。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Stefan Kruger,Andrew Calway,“Image Registration using Multiresolution Frequency Domain Correlation”,Proceedings of the British Machine Vision Conference BMVC98,1998年,pp.316−325
【非特許文献2】Laurenz Wiskott,Jean-Marc Fellous,Norbert Kruger,Christoph von der Malsburg,“Face Recognition by Elastic Bunch Graph Matching”,TR96-08,Institut fur Neuroinformatik,Ruhr-Universitat Bochum,1996年
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1に記載された技術は、パッチ全体(つまり両パッチの全画素)の間のグローバルなアフィン変換を推定するのみである。現実には被写体を撮像した複数の画像間では、そのようなグローバルなアフィン変換だけでなく、局所的なパッチ間の非線形的歪み(warping)が存在するが、非特許文献1に記載された技術ではそのような非線形的歪みに対応した点を画像間で対応付けることはできない。
【0006】
また、非特許文献1または2に記載された技術では、同一の被写体を撮影した2枚の画像が与えられ、それら2枚の画像のうちの片方をリファレンスとし、他方をテストとして、テストの画像をリファレンスの画像にあわせるようにワーピング(warping)する。しかしながら、一般に多数(3枚以上)の画像(画像パッチ)が与えられ、それらの画像内に含まれる点の位置の対応付けをする場合には、どの画像をリファレンスとして使用すればよいかが不明である。
【0007】
本発明は、上記のような事情を考慮してなされたものであり、三次元形状を有する被写体を撮影した画像を元に画像上の画素の位置を被写体表面の位置に対応させる場合に、非線形的歪みにも対応してアラインメントを行なえる画像処理装置を提供する。
【課題を解決するための手段】
【0008】
[1]上記の課題を解決するため、本発明の一態様による画像処理装置は、三次元物体を撮像した複数のフレーム画像に含まれる画素の前記三次元物体の表面における位置を推定して得られる貼り付け画像を取得する貼り付け画像取得部と、前記貼り付け画像取得部が取得した複数の前記貼り付け画像の和に、所定の解像度によるローパスフィルターをかけることによって当該解像度のリファレンス画像を生成するリファレンス画像生成部と、前記貼り付け画像と前記リファレンス画像とに基づき前記貼り付け画像に含まれる画素の位置ずれ量を計算し、得られた前記位置ずれ量により前記貼り付け画像の前記画素の位置をアライン(align)するワーピング処理部とを具備する。
【0009】
画像取得部が取得する貼り付け画像は、三次元物体を撮像したものであり、それぞれの画素に対応する三次元物体上での位置が推定されている。但し、この推定は、所定の精度を有しているものの、位置ずれを含んでいる可能性がある。リファレンス画像生成部は、これら複数の貼り付け画像を元に、所定の解像度でのリファレンス画像を生成する。つまり、リファレンス画像を別に与えたり、何をリファレンスとすべきかを指定したりすることなく、貼り付け画像を元にリファレンス画像を構築できる。上記において、画像の和とは、単純な和であってもよく、また画像ごとに重み付けして得られる画素値と重み値との積和(sum of products)等であってもよい。一例としては、重み値としては、撮像方向と三次元物体の表面法線とがなす角度によって定まる重み値を用いるが、これに限られない。ワーピング処理部は、得られたリファレンス画像と各貼り付け画像とに基づき、貼り付け画像の画素ごとに位置ずれ量を算出する。言い換えれば、一枚の貼り付け画像についての各画素の位置ずれ量は、アフィン変換に相当するものに限定されず、非線形歪みに対応するものであり得る。
【0010】
[2]また、本発明の一態様は、上記の画像処理装置において、前記所定の解像度において前記ワーピング処理部が前記画素の位置をアラインして得られた前記貼り付け画像を、前記貼り付け画像取得部に取得させ、次の解像度において前記リファレンス画像生成部に前記リファレンス画像を生成させるとともに、低解像度側から高解像度側へ、前記貼り付け画像の前記画素の位置のアラインを順次繰り返すように制御する制御部をさらに具備する。
【0011】
上記の構成により、まず低解像度側で位置ずれのアラインメントを行い、次に上の段階の解像度で位置ずれのアラインメントを行い、順次解像度を上げながら徐々に位置ずれのアラインメントを行い、これを最高解像度まで繰り返すこととなる。
【0012】
[3]また、本発明の一態様は、上記の画像処理装置において、三次元物体の表面のテクスチャを表すテクスチャ画像を記憶するテクスチャ画像記憶部と、前記ワーピング処理部によってアライン済みの複数の前記貼り付け画像を合成して得られる前記テクスチャ画像を前記テクスチャ画像記憶部に書き込むテクスチャ画像書き込み部とをさらに具備する。
【0013】
上記の構成により、複数の貼り付け画像を合成してテクスチャ画像を得ることができる。このとき、複数の貼り付け画像を、重み値によって重みを付けて合成する(加算する)ようにしても良い。
【0014】
[4]また、本発明の一態様は、前記三次元物体として人の顔(頭部)を対象として、上記の画像処理装置において、顔の特徴点に対応する二次元座標値データを人物識別情報と頭部姿勢を表わす角度データに関連付けて記憶する顔特徴データベース部と、前記顔特徴データベース部から読み出した前記特徴点に対応する二次元座標値データに基づいて、読み込んだ画像フレームに含まれる顔の特徴点の二次元座標値データを推定する顔領域検出照合部と、予め定められたジェネリックモデルにおけるメッシュ頂点に対応する三次元座標値データを記憶する顔モデル記憶部と、前記顔領域検出照合部によって推定された前記特徴点の二次元座標値データと、前記顔モデル記憶部から読み出した前記メッシュ頂点に対応する三次元座標値データとに基づいて、前記画像フレームに含まれる前記特徴点の三次元座標値データと前記画像フレームについての頭部姿勢を表わす角度データとを推定する位置・姿勢推定部と、前記位置・姿勢推定部によって推定された前記特徴点の三次元座標値データと前記角度データとに基づき、前記ジェネリックモデルにおける前記メッシュ頂点をワーピングさせることによって修正顔モデルを生成し、前記メッシュ頂点に対応して前記修正顔モデルにおけるメッシュ頂点の三次元座標値データを算出するメッシュワーピング部と、前記メッシュワーピング部によって生成された修正顔モデルに基づき、頭部姿勢を表わす前記角度データを変えたときのレンダリング処理を行って複数の合成顔画像モデルを生成し、前記特徴点の二次元座標値データを算出するレンダリング部と、前記レンダリング部が算出した前記特徴点の二次元座標値データを、対応する前記角度データと関連付けて前記顔特徴データベース部に登録するデータベース登録部とを備え、前記顔特徴データベース部は、前記人物識別情報と頭部姿勢の前記角度データとに関連付けて、少なくとも前記特徴点の近傍の画像特徴情報を記憶するものであり、前記レンダリング部は、前記テクスチャ画像書き込み部が書き込んだテクスチャ画像を前記テクスチャ画像記憶部から読み出し、このテクスチャ画像に基づくレンダリング処理を行うものであり、前記データベース登録部は、前記レンダリング部が行なったレンダリング処理の結果に基づく前記画像特徴情報を、対応する前記角度データと関連付けて前記顔特徴データベース部に登録することを特徴とする。
【0015】
[4A]また、本発明の一態様は、上記[4]の画像処理装置において、前記テクスチャマッピング部は、前記修正顔モデルに対する視線の光軸と前記修正顔モデルの表面法線との角度に基づき、前記画像フレームに含まれる前記濃淡・色彩情報を前記二次元顔テクスチャ画像にマッピングする際の方向の重みを調整する。
[4B]また、本発明の一態様は、上記[4]の画像処理装置において、前記テクスチャマッピング部は、前記二次元顔テクスチャ画像において前記修正顔モデルにおける前記特徴点に対応する位置からの距離に基づき、前記画像フレームに含まれる前記濃淡・色彩情報を前記二次元顔テクスチャ画像にマッピングする際の距離の重みを調整するものであり、前記距離に対する前記距離の重みの変化度合いを第1のパラメータにより可変とするとともに、前記視線の光軸と前記表面法線との前記角度に対する前記方向の重みの変化度合いを第2のパラメータにより可変としたものである。
【0016】
[5]また、本発明の一態様は、三次元物体を撮像した複数のフレーム画像に含まれる画素の前記三次元物体の表面における位置を推定して得られる貼り付け画像を取得する貼り付け画像取得部と、前記貼り付け画像取得部が取得した複数の前記貼り付け画像の和に、所定の解像度によるローパスフィルターをかけることによって当該解像度のリファレンス画像を生成するリファレンス画像生成部と、前記貼り付け画像と前記リファレンス画像とに基づき前記貼り付け画像に含まれる画素の位置ずれ量を計算し、得られた前記位置ずれ量により前記貼り付け画像の前記画素の位置をアラインするワーピング処理部とを具備する画像処理装置としてコンピュータを機能させるコンピュータプログラムである。
【発明の効果】
【0017】
本発明によれば、三次元形状を有する被写体を撮影した画像を元に、画像上の画素の位置を被写体表面の位置に対応させる場合に、非線形的歪みにも対応して位置ずれ量を算出し、アラインメントを行なうことができる。
また、本発明によれば、リファレンスとすべき画像を特定できない場合も、撮影した画像を元にリファレンス画像を構築し、そのリファレンス画像との関係によって画素の位置ずれ量を算出することができる。
【図面の簡単な説明】
【0018】
【図1】本発明の第1の実施形態による画像処理装置の機能構成を示すブロック図である。
【図2】同実施形態によるテクスチャマッピング部のより詳細な機能構成を示すブロック図である。
【図3】同実施形態によるテクスチャ画像記憶部が記憶するテクスチャ画像と、被写体の三次元モデルとの関係を示した概略図である。
【図4】同実施形態による処理手順を示したフローチャートである。
【図5】本発明の第2の実施形態による顔画像処理装置の機能構成を示すブロック図である。
【図6】同実施形態において、顔領域検出照合部が顔画像領域から推定した特徴点位置を模式的に示した図である。
【図7】同実施形態において、メッシュ頂点割当情報記憶部に記憶される対応関係に関する情報のデータ構造を示した図である。
【図8】同実施形態において、画素割当情報記憶部に記憶される対応関係に関する情報のデータ構造を示した図である。
【図9】同実施形態において、データベース登録部が生成する可変テンプレート構造体のデータ構造を示す図である。
【図10】同実施形態において、顔領域検出照合部が映像データの各画像フレームから顔画像領域を検出して顔特徴データと照合し、追跡結果または認識結果を出力する手順を示すフローチャートである。
【図11】同実施形態において、映像データの各画像フレームにおける二次元の特徴点位置から、三次元の特徴点位置と画像フレームごとの頭部姿勢とを対応付けて推定する処理の手順を示すフローチャートである。
【図12】同実施形態において、メッシュワーピング部が実行するメッシュワーピング処理の手順を示したフローチャートである。
【図13】同実施形態において、三次元CG顔モデルのメッシュを示す図である。
【図14】同実施形態において、三次元CG顔モデルのメッシュ頂点のワーピング処理を説明するための図である。
【図15】同実施形態において、UVテクスチャ画像の修正処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、図面を参照しながら、本発明の実施形態について説明する。
[第1の実施形態]
図1は、第1の実施形態による画像処理装置の機能構成を示すブロック図である。図示するように、画像処理装置1は、画像データ記憶部11と逆ポーズ変換処理部12とテクスチャマッピング処理部14とテクスチャ画像記憶部15とを含んで構成される。
画像データ記憶部11は、カメラ等を用いて、ある被写体を撮影して得られた画像データを記憶する。画像データは、ある被写体について複数の画像フレームを含む。個々の画像フレームのデータは、各画素の色値(例えば、RGB値)を含む。ここで各々の画像フレームは、時間間隔をおいて撮影された静止画であっても良いし、映像(動画)に含まれる1枚の画像フレームであっても良い。ここで、複数の画像フレームは、被写体を撮像する際の位置や方向や距離や画角等が異なっていても良い。
テクスチャ画像記憶部15は、上記被写体の全表面、または少なくとも一部表面のテクスチャを表すテクスチャ画像を含む。テクスチャ画像は、被写体表面の色彩や濃淡や模様のパターンや質感を表す。テクスチャ画像記憶部15に記憶されるテクスチャ画像は、u座標およびv座標で表される2次元直交座標系平面の画像であり、当該平面が上記被写体の表面に対応する。言い換えれば、当該平面画像上の1画素(座標(u,v)で特定される)が、被写体の表面におけるある点に対応する。テクスチャ画像のデータは、各画素の色値(例えば、RGB値)で表される。
【0020】
逆ポーズ変換処理部12は、画像データ記憶部11から読み出したフレーム画像に基づき、フレーム画像上に撮影されている被写体のポーズを推定する。ここで、ポーズとは、フレーム画像を撮影したカメラとの関係における、被写体の位置や向きや拡大/縮小の度合いである。ポーズとは、空間における被写体の平行移動と、回転量(例えば互いに直交する3軸を中心とする、それぞれの軸についての回転量)と、拡大/縮小の量との組み合わせによって表される量である。拡大/縮小を決める要素は、カメラと被写体との間の距離と、撮影に用いたレンズの画角である。逆ポーズ変換処理部12は、フレーム画像に写された複数の特徴点を認識し、それらの特徴点の関係に基づいて上記のポーズを推定する。そして、逆ポーズ変換処理部12は、各々のフレーム画像に、上で推定されたポーズの逆変換をかけることによって、被写体の位置、向き、および拡大/縮小を正規化することができる。また、逆ポーズ変換処理部12は、不図示の三次元形状モデル記憶部から、被写体の三次元形状の情報を読み出す。この被写体の三次元形状の情報とは、例えば、被写体をメッシュで表現したときの各々のメッシュ頂点の三次元座標値である。逆ポーズ変換処理部12は、ポーズの逆変換をしたフレーム画像と、この三次元形状の情報とから、フレーム画像上の画素と、テクスチャ画像上の画素との間の対応関係(写像関係)を推定する。逆ポーズ変換処理部12は、この写像関係を用いてフレーム画像を展開することにより、貼り付け画像を得る。つまり、逆ポーズ変換処理部12は、第k番目(0≦k<Nframes)のフレーム画像から、第k番目の貼り付け画像s(u,v)を得る。なお、Nframesは画像フレームの枚数である。
【0021】
逆ポーズ変換処理部12は、また、貼り付け画像の各画素における方向の重みα(u,v)を算出する。ここで、方向の重みとは、例えば、α(u,v)=cos(θ(u,v))で与えられる重み値である。ここで、mは適宜定められる1以上の整数である。また、θ(u,v)は、k番目の貼り付け画像上の座標(u,v)における画素に対応する、フレーム画像撮影時の被写体の表面法線と視線の光軸(カメラの光軸)とがなす角度であり、−(π/2)≦θ(u,v)≦(π/2)である。既に上でk番目のフレーム画像における被写体のポーズが計算されており、また、貼り付け画像上の座標(u,v)に対応する被写体表面における表面法線の方向を前記の三次元形状の情報から求めることができるため、逆ポーズ変換処理部12はθ(u,v)を計算することができる。なお、逆ポーズ変換処理部12は、ここで計算された角画素における方向の重みα(u,v)を、不図示のメモリに書き込むことにより、後で参照できるようにしておく。
【0022】
テクスチャマッピング部14は、画像データ記憶部11に記憶されているフレーム画像から、テクスチャ画像記憶部15に記憶されているテクスチャ画像へのマッピングを行なう。言い換えれば、テクスチャマッピング部14は、個々のフレーム画像に撮像された被写体表面に対応する画素に対応する、テクスチャ画像上の1画素を特定する。さらに、テクスチャマッピング部14は、このマッピング結果を利用して、単数または複数のフレーム画像から、テクスチャ画像を作成して、テクスチャ画像記憶部15に書き込むことができる。
【0023】
つまり、テクスチャマッピング部14は、テクスチャマッピングにより、テクスチャ画像に、各フレーム画像からの貢献分の和を貼り付ける。フレーム画像の枚数に関する正規化の項をのぞくと、座標(u,v)における和は、次の式(1)のf(u,v)の通りである。
【0024】
【数1】

【0025】
ここで、α(u,v)は座標(u,v)における方向の重みであり、r(ハット)(u,v)は座標(u,v)におけるテクスチャ画像がk番目の画像フレームにおいて映ると推定された位置であり、s(u,v)=p(r(ハット)(u,v))はその推定された位置におけるRGB値である。方向の重みの値は、既に逆ポーズ変換処理部12によって得られている。
【0026】
テクスチャマッピング部14は、s(u,v),0≦k<NframesのNframes枚の貼り付け画像をアラインする。つまり、k番目の貼り付け画像におけるs(u,v)をs(u+m(u,v),v+n(u,v))に置き換える。ここで、(m(u,v),n(u,v))が、k枚目の貼り付け画像を他の貼り付け画像にアラインさせるための最適位置ずれ量である。
なお、テクスチャマッピング部14による、位置ずれ量の算出、およびその補正の方法については、後述する。
【0027】
図2は、テクスチャマッピング部14内部のより詳細な機能構成を示すブロック図である。図示するように、テクスチャマッピング部14は、貼り付け画像取得部51−0,51−1,51−2,・・・と、ワーピング処理部52−0,52−1,・・・と、リファレンス画像生成部53と、制御部54と、テクスチャ画像書き込み部55とを含んで構成される。また、リファレンス画像生成部53は、内部に、画像加算部61−0,61−1,・・・、およびガウシアンウィンドウ(Gaussian window)処理部62−0,62−1,・・・を含んでいる。
なお、同図には、k−1番目とk番目とk+1番目のフレーム画像に関する構成のみを示して他を省略しているが、実際には、テクスチャマッピング部14は、第0番目から第(Nframes−1)番目までのフレーム画像に対応した構成を備えている。また、同図には、第2の解像度の貼り付け画像を記憶する貼り付け画像取得部51−2までを示してその後の段階の構成を省略しているが、実際には、テクスチャマッピング部14は、その後段(より高い解像度に対応)のワーピング処理部および貼り付け画像取得部を備えている。
【0028】
また、同図では記載を省略しているが、テクスチャマッピング部14は、画像データ記憶部11から読み出したデータ、および逆ポーズ変換処理部12から取得したデータを用いて、以下に述べる処理を行なう。
【0029】
貼り付け画像取得部51−0,51−1,51−2,・・・は、テクスチャ画像に貼り付ける画像を生成するための処理過程の画像データを取得し、記憶する。具体的には、貼り付け画像取得部51−0,51−1,51−2,・・・は、三次元物体を撮像した複数のフレーム画像に含まれる画素の三次元物体の表面における位置を推定して得られる貼り付け画像を取得する。貼り付け画像取得部51−0は、第0番目の解像度(解像度等については後述する)の貼り付け画像を取得する。貼り付け画像取得部51−1は、第1番目の解像度の貼り付け画像を取得する。以下同様に、最高解像度(Nres−1)まで、各解像度に応じた貼り付け画像取得部が貼り付け画像を取得し、保持する。
【0030】
リファレンス画像生成部53は、貼り付け画像取得部51−0,51−1,51−2,・・・から読み出した各解像度の貼り付け画像に基づき、各解像度のリファレンス画像q(u,v),q(u,v),・・・を生成する。具体的には、リファレンス画像生成部53は、複数の貼り付け画像の和に、所定の解像度によるローパスフィルターをかけることによって当該解像度のリファレンス画像を生成する。リファレンス画像生成の詳細な手順については、後述する。
画像加算部61−0,61−1,・・・は、それぞれの解像度における第0番目から第(Nframes−1)番目までのフレーム画像に対応する貼り付け画像を、重み付けして加算する。なお、ここで用いる重み値α(u,v)は、前述の方向の重みである。
ガウシアンウィンドウ処理部62−0,62−1,・・・は、それぞれの解像度における画像加算部61−0,61−1,・・・の出力に、当該解像度のガボールウェーブレットが持つ二次元ガウシアンウィンドウ(窓関数)によるローパスフィルターをかける処理を行なう。
【0031】
ワーピング処理部52−0,52−1,・・・は、それぞれ、貼り付け画像取得部51−0,51−1,・・・から読み出した当該解像度における貼り付け画像と、当該解像度のリファレンス画像q(u,v),q(u,v),・・・とに基づき、貼り付け画像の各画素における位置ずれ量を推定するとともに、推定された位置ずれ量を用いて次の(一段階高い)解像度の貼り付け画像を生成する。言い換えれば、ワーピング処理部52−0,52−1,・・・は、貼り付け画像とリファレンス画像とに基づき貼り付け画像に含まれる画素の位置ずれ量を計算し、得られた位置ずれ量により貼り付け画像の画素の位置をアラインする。このアラインメントの結果により、位置ずれをアラインされた貼り付け画像が得られる。そして、生成された貼り付け画像は、当該解像度用の貼り付け画像取得部51に渡される。
【0032】
制御部54は、所定の解像度においてワーピング処理部が画素の位置をアラインして得られた貼り付け画像を、貼り付け画像取得部に取得させ、次の解像度においてリファレンス画像生成部にリファレンス画像を生成させるとともに、低解像度側から高解像度側へ、貼り付け画像の画素の位置のアラインを順次繰り返すように制御する。制御部54の制御による繰り返しを含む具体的処理手順については後述する。
【0033】
テクスチャ画像書き込み部55は、ワーピング処理部52−0,52−1,・・・によって順次、位置ずれをアラインされたの複数の貼り付け画像を合成して得られるテクスチャ画像をテクスチャ画像記憶部15に書き込む。
【0034】
ここで、上記の解像度について説明する。解像度は、第0番目の解像度(低解像度)から、第(Nres−1)番目の解像度(最高解像度)まで、Nres個の段階を有する。Nresの値は、対象とする画像の解像度に応じて適宜設定される。
そして、一例として、第i番目(0≦i<Nres)の解像度がbとなるようにする。ここで、bは適宜定められる整数である。例えば、b=2とするとき、第i番目の解像度は2である。つまり、第0番目から順に、解像度は1,2,4,8,16,・・・という系列となる。そして、対象とする画像の解像度をフルに利用できるようにNresの値を定める。一例として、対象とする画像の解像度が2048(縦)×2048(横)である場合、b=2、Nres=12とすれば、第0番目から第11番目まで、1,2,4,8,16,32、64、128,256,512,1024,2048という系列の解像度を用いることとなる。
【0035】
図3は、撮像される被写体と、テクスチャ画像記憶部15が保持するテクスチャ画像との関係を示す図である。同図(a)は、被写体を表した三次元物体CG(コンピュータグラフィクス)モデルにテクスチャマッピングを施した状態を示すものであり、同図(b)は、テクスチャ画像に三次元物体CGモデルのメッシュを重ね合わせた状態を示す。図示するように、被写体の表面上の一つの点(n番目のメッシュ頂点x(三次元座標値に対応するベクトル)と、テクスチャ画像上の画素位置である座標値(u,v)(0≦u≦1,0≦v≦1,0≦n<NVT)とが関係付けられる。なお、NVTは、ここで用いるメッシュ頂点の総数である。具体的には、画像処理装置1は、nごとに、xの三次元座標値とUVテクスチャ画像上の画素の座標値(u,v)とを関連付けて保持するテーブルのデータ(不図示)を記憶している。
なお、ここでは被写体である三次元物体として、人の顔(頭部)の例を示したが、実際にはこれに限らず、被写体となり得る全ての三次元物体を扱うことができる。
【0036】
図4は、画像処理装置1の処理手順を示すフローチャートである。以下、このフローチャートに沿って処理手順を説明する。
まず、ステップS1において、貼り付け画像取得部51−0は、初期の貼り付け画像s(u,v),s(u,v),・・・,s(u,v),・・・,sNframes(u,v)を取得し、記憶する。第k番目(0≦k<Nframes)のフレームの初期の貼り付け画像は、第k番目のフレーム画像に基づくものであり、逆ポーズ変換処理部12の処理に基づいてuv直交座標系に変換されている画像である。
そして、ステップS2において、テクスチャマッピング部14は、変数iの値を0に初期化する。この変数iは、解像度の段階を表すものである。
【0037】
(a0)リファレンス画像の構築
次にステップS3において、リファレンス画像生成部53が、既に得られている貼り付け画像を元に、第i番目の解像度のリファレンス画像を構築する。i=0であるので、リファレンス画像生成部53は、貼り付け画像取得部51−0から貼り付け画像を読み出す。そして、リファレンス画像生成部53は、低解像度(第0番目の解像度)でリファレンス画像q(u,v)を構築する。この画像は、各映像フレームからの貼り付け画像の重み付きの和に、低解像度のガボールウェーブレットが持つ二次元ガウシアンウィンドウによりローパスフィルターを掛けたものである。リファレンス画像生成部53は、次の式(2)で表される計算によりリファレンス画像q(u,v)を生成する。
【0038】
【数2】

【0039】
なおこのとき、画像加算部61−0が貼り付け画像の重み付きの和の計算を行い、ガウシアンウィンドウ処理部62−0が当該解像度の二次元ガウシアンウィンドウの畳み込み計算を行なう。
【0040】
(b0)リファレンス画像とのワーピングの算出
次にステップS4において、ワーピング処理部52−0が、低解像度のガボールウェーブレットにより、各貼り付け画像s(u,v)の各画素において、リファレンス画像q(u,v)との位置ずれを推定する。なお、i=0である。
位置ずれ量を推定するための具体的な計算方法については、後述する。
そして、この計算により、(m(u,v),n(u,v))という、低解像度の(第0番目の解像度の)画像成分のみから推定した位置ずれ量が得られる。
そして、ステップS5において、ワーピング処理部52−0が、上のステップで得られた位置ずれ量を用いて、貼り付け画像をワーピングする。これは、即ち、各々のkについて、s(u+m(u,v),v+n(u,v))という貼り付け画像を得ることである。そして、ワーピング処理部52−0は、ワーピングによって得られた貼り付け画像を、貼り付け画像取得部51−1に供給する。
【0041】
次にステップS6において、テクスチャマッピング部14は、最高解像度の処理を完了したか否かを判断する。最高解像度までの処理を完了した場合(ステップS6:YES)にはこのフローチャート全体の処理を終了し、未完了の場合(ステップS6:NO)にはステップS7に進む。
ステップS7に進んだ場合、同ステップでは、テクスチャマッピング部14は、変数iに1を加算する。これにより、変数iの値は、次の解像度の段階を表すことになる。ここでは、i=1となる。このステップの処理を終えると、ステップS3に移る。
【0042】
(a1)次の解像度でのリファレンス画像の構築
次にステップS3において、リファレンス画像生成部53が、既に得られている貼り付け画像を元に、第i番目の解像度のリファレンス画像を構築する。i=1となったので、次に高い解像度(第1番目の解像度)でリファレンス画像q(u,v)を構築する。このリファレンス画像q(u,v)は、低解像度(第0番目の解像度)で得られた位置ずれ量を反映させた後、各映像フレームからの貼り付け画像の重み付きの和に、第1番目の解像度のガボールウェーブレットが持つ二次元ガウシアンウィンドウによりローパスフィルターをかけたものである。リファレンス画像生成部53は、次の式(3)で表される計算によりリファレンス画像q(u,v)を生成する。
【0043】
【数3】

【0044】
なおこのとき、画像加算部61−1が貼り付け画像の重み付きの和の計算を行い、ガウシアンウィンドウ処理部62−1が当該解像度の二次元ガウシアンウィンドウの畳み込み計算を行なう。
【0045】
(b1)リファレンス画像とのワープの算出
次にステップS4において、ワーピング処理部52−1が、第1番目のガボールウェーブレットにより、各貼り付け画像s(u,v)の各画素において、リファレンス画像q(u,v)との位置ずれを推定する。なお、i=0である。
つまり、ワーピング処理部52−1は、低解像度(第0番目の解像度)でワープされた各貼り付け画像s(u+m(u,v),v+n(u,v))の各画素において、リファレンス画像q(u,v)との位置ずれ量を推定する。位置ずれ量を計算する方法は、第0番目の解像度の場合と同様である。この計算により、(m(u,v),n(u,v))という、第1番目の解像度の画像成分のみから推定した位置ずれ量が得られる。
【0046】
そして、ステップS5において、ワーピング処理部52−1が、上のステップで得られた位置ずれ量を用いて、貼り付け画像をワーピングする。これは、即ち、各々のkについて、s(u+m(u,v)+m(u,v),v+n(u,v)+n(u,v))という貼り付け画像を得ることである。そして、ワーピング処理部52−1は、ワーピングによって得られた貼り付け画像を、貼り付け画像取得部51−2に供給する。
【0047】
そして、ステップS6およびS7では、テクスチャマッピング部14は、再び、変数iに1を加算し、即ちi=2として、次の解像度の処理に移る。
以上、(a0),(b0),(a1),(b1)と、第0番目および第1番目の解像度において、それぞれ、位置ずれ量を計算し、その位置ずれ量によるワーピングを行なった。そして、その後、第2番目以降の解像度についても同様に処理を行なう。
第i番目の解像度(i=0,1,2,・・・,Nres−1)における一般的な処理は次の通りである。
【0048】
(a)第i番目の解像度でリファレンス画像の構築
ステップS3において、リファレンス画像生成部53が、既に得られている貼り付け画像を元に、第i番目の解像度のリファレンス画像q(u,v)を構築する。この画像は、各映像フレームからの貼り付け画像の重み付きの和に、低解像度のガボールウェーブレットが持つ二次元ガウシアンウィンドウによりローパスフィルターを掛けたものである。q(u,v)は、下の式(4)で表される。
【0049】
【数4】

【0050】
但し、ここでu(u,v)およびv(u,v)は、それぞれ、第0番目の解像度から第i番目の解像度までの位置ずれ量をアラインした座標値であり、下の式(5)および式(6)の通りである。
【0051】
【数5】

【0052】
【数6】

【0053】
(b)リファレンス画像とのワープの算出
ステップS4において、ワーピング処理部(52−i)が、第i番目の解像度でのガボールウェーブレットにより、第i番目より前の解像度においてワープされた貼り付け画像の各画素における、リファレンス画像と間の位置ずれ量を、推定する。0<iのとき、第(i−1)番目の解像度においてワープされた貼り付け画像は、s(ui−1(u,v),vi−1(u,v))である。
位置ずれ量を計算する方法は、第0番目および第1番目の解像度の場合について述べた方法と同様である。この計算により、(m(u,v),n(u,v))という、第i番目の解像度の画像成分のみから推定した位置ずれ量が得られる。
この位置ずれ量をアラインすることにより、第i番目の解像度においてワープされた貼り付け画像s(u(u,v),v(u,v))が得られる。
【0054】
ステップS5において、ワーピング処理部(52−i)が、ステップS4で得られた位置ずれ量を用いて、貼り付け画像をワーピングする。そして、ワーピング処理部(52−i)は、ワーピングによって得られた貼り付け画像を、次の解像度に対応する貼り付け画像取得部に供給する。
【0055】
第i番目の解像度における(a)リファレンス画像の構築および(b)リファレンス画像とのワープの算出については上に説明したとおりである。この処理を、第0番目の解像度から最高解像度Nres−1まで繰り返すことにより、正確に非線形的アラインメントを計算することができる。
【0056】
なお、ベクトルx(矢印)で表される座標における上記のガボールウェーブレットgr,φ(x(矢印))は、式(7)および式(8)に示す通りである。
【0057】
【数7】

【0058】
【数8】

【0059】
また、それをもつガウシアンg(x(矢印))は、式(9)に示す通りである(r=1,2,・・・)。
【0060】
【数9】

【0061】
そして、テクスチャマッピング部14は、位置ずれのアライン済みの貼り付け画像をテクスチャ画像に貼り付ける。下の式(10)は、貼り付け画像を貼り付けた後のテクスチャ画像の例を表す。
【0062】
【数10】

【0063】
式(10)において、t(u,v)は、貼り付け画像を貼り付けた後のテクスチャ画像の座標(u,v)における色値である。α´(u,v)は、位置ずれをアラインした後の座標(u,v)におけるフレーム画像k(0≦k<Nframes)に対応した方向の重みである。s´(u,v)は、位置ずれをアラインした後の、フレーム画像kに対応した貼り付け画像である。t(u,v)は、テクスチャ画像の初期値である。テクスチャ画像の初期値を用いない場合は、一律にt(u,v)=0として式(10)を用いればよい。そして、γは、テクスチャ画像の初期値の重みを調整するためのパラメータ値である。
このように、テクスチャマッピング部14は、位置ずれをアラインした後の貼り付け画像を、適宜重み付けして加算し、テクスチャ画像に貼り付ける(合成する)計算を行なう。そして、テクスチャマッピング部14内のテクスチャ画像書き込み部55は、得られたテクスチャ画像をテクスチャ画像記憶部15に書き込む。
【0064】
[位置ずれ量を推定する方法]
次に、図4のステップS4において説明した、位置ずれを推定する計算方法の詳細について説明する。
ここで、まず「ジェット」(jet)について説明する。ジェットとは、u−v座標における画像上の1画素に対応する量である。座標(u,v)におけるジェットJ(u,v)は、40個の値J(u,v) (但し、0≦j<40,jは整数)の集合体である。
ここで、jは指標値であり、jは別の指標値μ(但し、0≦μ<8,μは整数)およびν(但し、0≦ν<5,νは整数)を用いて、j=μ+8ν、と表される。
なお、νは、ガボールウェーブレットの周波数に関する指標値である。また、μは、ガボールウェーブレットの方向に関する指標値である。
【0065】
ジェットを構成する上記のJ(u,v)は、次の式(11)で表される。
【0066】
【数11】

【0067】
なお、ベクトルx(矢印)は、座標(u,v)を示す。また、ψ(x(矢印))は、次の式(12)で表されるガボールカーネルである。
【0068】
【数12】

【0069】
上の式(12)で表されるガボール関数は、ガウス包絡関数によって制約されており、またベクトルk(矢印)はウェーブベクトルである。このウェーブベクトルk(矢印)は、次の式(13)で表される。
【0070】
【数13】

【0071】
なお、前記の指標値νを用いて表されるkνは、次の式(14)の通りである。
【0072】
【数14】

【0073】
また、前記の指標値μを用いて表されるθμは、次の式(15)の通りである。
【0074】
【数15】

【0075】
上記のように定義されるJ(u,v)は、次の式(16)のように表すことができる。
【0076】
【数16】

【0077】
そして、上記のように定義されるジェットを用いて位置のずれ量を推定する。2つのジェット(JおよびJ´)の間の類似度SΦは、次の近似式(17)で表される。
【0078】
【数17】

【0079】
ここで、上記のジェット間の類似度SΦが最大となるように、ずれ量ベクトルd(矢印)=(d,d)を求める。そのために式(18)の条件を設定する。
【0080】
【数18】

【0081】
この条件を満たすようにずれ量ベクトルd(矢印)(J,J´)を解くと、次の式(19)による解が得られる(但し、ΓxxΓyy−ΓxyΓyx≠0 の場合)。
【0082】
【数19】

【0083】
ここで得られたずれ量ベクトルが、当該解像度における位置ずれ量である。なお、上の式において、それぞれ、次の式(20)〜(24)の通りである。
【0084】
【数20】

【0085】
【数21】

【0086】
【数22】

【0087】
【数23】

【0088】
【数24】

【0089】
[第2の実施形態]
次に第2の実施形態について説明する。第2の実施形態は、第1の実施形態による画像処理装置の応用であり、顔画像をモデル化してデータベースに登録する顔画像処理装置である。以下では、本実施形態特有の事項を記載し、第1の実施形態と共通する事項については記載を省略する。
【0090】
図5は、同実施形態による顔画像処理装置の機能構成を示すブロック図である。同図に示すように、顔画像処理装置100(画像処理装置)は、画像データ記憶部110と、顔領域検出照合部120と、三次元推定部130と、レンダリング部140と、データベース登録部150と、顔特徴データベース部160とを含んで構成される。
同図における顔画像処理装置100は、登録モードまたは認識モードいずれかのモードに設定されて動作する。顔画像処理装置100は、人物の顔画像が含まれた、映像データの画像フレームまたは複数の静止画像データ(静止画像データも、以下では画像フレームと呼ぶ。)を入力ソースとして、画像フレームから顔画像領域を検出し、この顔画像領域から顔特徴データを生成して登録する処理(登録モード)または照合する処理(認識モード)を実行する。また、顔画像処理装置100は、画像フレームに含まれない頭部姿勢の顔画像に対応する顔特徴データを近似合成して登録または照合する処理を実行する。
【0091】
なお、入力ソースが映像データであるか複数の静止画像データであるかによって、本実施形態の処理に大きな差異は生じない。よって、本実施形態の以下の記載では、映像データの各画像フレームに含まれた人物の顔画像に基づいて顔特徴データを生成し、近似合成して、登録または照合する処理について説明する。入力ソースが静止画像データである場合における処理は、本質的には入力ソースが映像データである場合と同様である。
【0092】
画像データ記憶部110は、登録対象人物の顔画像が含まれた映像データを記憶する。顔領域検出照合部120は、画像データ記憶部110から映像データを読み込み、画像フレームごとに顔画像領域を検出して複数の特徴点の位置を推定する。この推定処理は、時間的に連続した画像フレームについて行われるものである。そして、顔領域検出照合部120は、推定した位置の特徴点と顔特徴データベース部160に記憶された顔特徴データである可変テンプレート構造体(詳細は後述)とを照合し、特徴点の追跡結果または認識結果を出力する。つまり、顔領域検出照合部120は、特徴点ベースの顔画像照合アルゴリズムによって特徴点の追跡または認識を行うものであり、特徴点の追跡および顔領域の検出自体は既存技術を用いて行なえる。例えば、参考文献[Clippingdale, S., 伊藤崇之,“動画像の顔検出・追跡・認識への統一されたアプローチ,”電子情報通信学会技術研究報告,PRMU98-200,大阪大学,1999.]や、参考文献[Clippingdale, S., Ito, T., “A Unified Approach to Video Face Detection, Tracking and Recognition,” Proc. ICIP’99, Kobe, Japan, 1999.]などに記載されたFAVRETシステムを適用することができる。FAVRETシステムは、映像(動画)にも対応でき、時間経過に伴って変化する頭部姿勢にも対応できる。FAVRETシステムにおけるデータ表現は、EBGMアルゴリズムにおけるデータ表現(つまり、各特徴点の位置、およびその位置で計測されたガボールウェーブレット特徴)に基づいている。FAVRETシステムでは、複数の頭部姿勢への対応と、リアルタイム映像における動作とを実現するために、複数の頭部姿勢についての認識対象顔画像を顔画像データベースに登録し、各画像フレームでの特徴点の探索を、前画像フレームで推定した位置から開始するようにしている。つまり、FAVRETシステムは、特徴点の追跡処理を実行することによって探索範囲を削減している。
【0093】
顔領域検出照合部120は、登録モードまたは認識モードいずれのモードに設定されている場合でも、画像フレームごとに顔画像領域から複数の特徴点の位置を推定してそれらの特徴点位置(画像における二次元座標値)を照合の結果として出力する。また、認識モードに設定されている場合は、顔領域検出照合部120は、顔特徴データベース部160に記憶された登録済人物ごとの顔特徴データとの類似度を計算し、類似度の最も高い顔特徴データに関するマッチスコアを出力する。このマッチスコアは、例えば、登録済人物の氏名又は登録済人物を特定するための名称(ニックネーム等)と、同人物の識別情報(識別番号等)と、計算された類似度とを関連付けた情報である。
【0094】
図6は、顔領域検出照合部120が顔画像領域から推定した特徴点位置を模式的に示した図である。同図において、顔領域検出照合部120が推定する特徴点位置は、顔画像領域における目頭、目尻、および口元に相当する位置(それぞれ2箇所ずつ)、ならびに鼻元、鼻先、唇先に相当する位置(それぞれ1箇所ずつ)である。なお、顔領域検出照合部120は、上記の特徴点位置のうち、人物の頭部姿勢に応じて可視である部分の特徴点位置のみを推定する。
【0095】
図5に戻り、三次元推定部130は、各特徴点の三次元位置を推定し、この推定位置に、ジェネリック(人物不特定)な三次元コンピュータグラフィックス顔メッシュモデル(三次元CG顔モデル,ジェネリックモデル)のメッシュ形状をワーピングさせる。このワーピングは、三次元推定部130が、推定された各特徴点の三次元位置に、三次元CG顔モデルにおけるこれら特徴点に相当するメッシュ頂点の三次元位置を合わせ、メッシュ形状を合わせ込んで修正三次元CG顔モデル(修正顔モデル)を生成する処理のことをいう。三次元CG顔モデルおよび修正三次元CG顔モデルは、メッシュで構成される多角形からなる立体を表わすモデルである。それらの多角形が、このモデルにおける頭部形状の表面を構成する。人の頭部形状によりこのモデルが表わす立体は、頭部全体にわたって大まかにはほぼ単調に凸状である。そして、三次元推定部130は、映像データから修正三次元CG顔モデルにテクスチャを貼り付けて、映像データに含まれた顔が適用されたCG顔モデルを出力する。
【0096】
同図に示すように、三次元推定部130は、位置・姿勢推定部131と、メッシュワーピング部132と、テクスチャマッピング部133と、顔モデル記憶部134と、メッシュ頂点割当情報記憶部135と、テクスチャ画像記憶部136と、画素割当情報記憶部137とを含んで構成される。
【0097】
位置・姿勢推定部131は、顔領域検出照合部120で推定された、映像データの各画像フレームにおける特徴点位置である特徴点二次元座標値から、各特徴点の三次元位置である特徴点三次元座標値と画像フレームごとの頭部姿勢の角度データ(鉛直方向の軸を中心とする回転位置(角度)、もしくは水平方向の軸を中心とする回転位置(角度)、またはそれらの組み合わせ)とを対応付けて推定する。
【0098】
メッシュワーピング部132は、位置・姿勢推定部131で推定された各特徴点の特徴点三次元座標値位置に、顔モデル記憶部134に記憶された三次元CG顔モデルのメッシュ頂点をワーピングさせて、修正三次元CG顔モデルを生成する。
【0099】
メッシュ頂点割当情報記憶部135は、メッシュワーピング部132が三次元CG顔モデルのメッシュ頂点をワーピングさせる際に、各メッシュ頂点と、メッシュ頂点を頂点とする三角形との割当ての対応関係であるメッシュ頂点割当情報を記憶する。
図7は、メッシュ頂点割当情報記憶部135が記憶するメッシュ頂点割当情報のデータ構造を示した概略図である。同図に示すように、メッシュ頂点割当情報記憶部135は、表形式のデータであり、メッシュ頂点の三次元座標値と、そのメッシュ頂点が割当てられる三角形(メッシュが三角形以外の多角形を含んで構成される場合にも、後述するようにそれら多角形を適宜三角形に分割する)の識別情報とを関連付けて記憶する。この表における主キーは、メッシュ頂点の三次元座標値である。
【0100】
テクスチャマッピング部133は、画像データ記憶部110に記憶された映像データの濃淡・色等の画像情報を含むテクスチャを、後述する重みの比率で、テクスチャ画像記憶部136に記憶されたUVテクスチャ画像(二次元顔テクスチャ画像)における顔の特徴点に対応する位置および少なくともその近傍部分のUVテクスチャ画像に合成して、修正三次元CG顔モデルに貼り付けることによりCG顔モデルを生成する。UVテクスチャ画像は、直交するU軸およびV軸による二次元平面における顔画像データである。UVテクスチャ画像は、画素の位置(u,v)(但し、0≦u≦1,0≦v≦1)と三次元CG顔モデルのメッシュ頂点とが対応付けられて三次元CG顔モデルにマッピングされる。このマッピング処理の結果、修正三次元CG顔モデルのテクスチャ表面にはRGB各色による色彩および濃淡が表現される。
なお、テクスチャマッピング部133は、第1の実施形態で説明したテクスチャマッピング部14と同等の構成および機能を内部に有している。そしてテクスチャマッピング部133は、後述するように、貼り付け画像をUVテクスチャ画像に貼り付ける際に、画素の位置ずれ量を算出して、算出された位置ずれ量を用いて画素位置をアラインする。
【0101】
画素割当情報記憶部137は、テクスチャマッピング部133がUVテクスチャ画像を貼り付ける際の、特徴点近傍のUVテクスチャ画像の画素位置と割り当てられる三角形との対応関係を表わす画素割当情報を記憶する。
図8は、画素割当情報記憶部137が記憶する画素割当情報のデータ構造を示した概略図である。同図に示すように、この画素割当情報は、表形式のデータであり、UVテクスチャ画像上の画素の画素位置(u,v)と、当該画素が割当てられる三角形(メッシュが三角形以外の多角形を含んで構成される場合にも、後述するようにそれら多角形を適宜三角形に分割する)の識別情報とを関連付けて記憶する。なお、この表における主キーは、UV画像の画素位置である。
【0102】
レンダリング部140は、三次元推定部130から出力されたCG顔モデルを所定の頭部姿勢に回転させ、レンダリング処理を行って合成顔画像モデルを生成する。レンダリング部140は、登録に必要な全ての頭部姿勢の合成顔画像モデルを生成する。この登録に必要な頭部姿勢の数は、例えば、登録対象人物の左右方向に0度から180度まで(顔正面が90度の位置である。)を10度刻みとした19パターンそれぞれについて、水平方向を0度として、上下方向にそれぞれ0度,±15度,±30度の5パターンで、合計95パターンである。
【0103】
データベース登録部150は、レンダリング部140でレンダリング処理した各合成顔画像モデルにおいて、可視である特徴点を中心にして、ガボールウェーブレット特徴(画像特徴情報)を所定数の解像度と所定数の方位とによって畳み込む処理を行う。そして、データベース登録部150は、登録人物を認識するために必要な顔特徴データである可変テンプレート構造体を生成して顔特徴データベース部160に記憶する。
図9は、データベース登録部150が生成する可変テンプレート構造体のデータ構造を示す概略図である。同図に示す可変テンプレート構造体は、登録人物ごとに、登録人物の氏名または登録人物を特定するための名称、および識別情報を含む人物識別情報を有する。また、各人物ごとに、頭部姿勢の個数分の頭部姿勢インデックス(角度データ)を有する。さらに、この頭部姿勢インデックスごとに、特徴点の個数分の特徴点情報を有する。 この特徴点情報は、特徴点番号(0から始まる整数)をキーとして、当該特徴点番号に対応する特徴点が可視であるか非可視であるかを示す可視性フラグと、その特徴点の特徴点二次元座標値(但し、可視性フラグが可視である場合にのみこの二次元座標値が示される。)と、所定数の解像度(ウェーブレットサイズ)×所定数の方位におけるガボールウェーブレット特徴(画像情報)の値とを関連付けて保持するものである。
なお、頭部姿勢インデックスは、例えば、頭部の鉛直方向(y方向)の軸を中心とする回転位置(角度)および水平方向(x方向)の軸を中心とする回転位置(角度)の組み合わせを表わす指標データである。但し、頭部姿勢インデックスがそれらの角度そのもののデータであってもよい。
【0104】
例えば、データベース登録部150は、登録人物一人あたり、1個の人物識別情報と、例として前述した95種類の頭部姿勢に対応する頭部姿勢インデックスとを可変テンプレート構造体のメンバとして作成する。さらに、各頭部姿勢に対して、図6に示した9個の特徴点(特徴点番号が、0から8まで)ごとの特徴点情報をメンバとして作成する。さらに、それら特徴点の各々に対して、可視性フラグと特徴点二次元座標値の各メンバを作成するとともに、5種類の解像度×8方向(22.5度ごと)で40個のガボールウェーブレット特徴の値のデータをとのメンバをとして作成する。
【0105】
次に、顔画像処理装置100の各部の動作について説明する。
[顔領域検出・照合処理]
図10は、顔領域検出照合部120が映像データの各画像フレームから顔画像領域を検出して顔特徴データと照合し、追跡結果または認識結果を出力する手順を示すフローチャートである。ステップS601において、顔領域検出照合部120は、モードを登録モードまたは認識モードいずれかに設定する。このモード設定は、例えば、顔画像処理装置100の操作部(不図示)の操作による指定によって行われる。
【0106】
次に、ステップS602において、顔領域検出照合部120は、画像データ記憶部110に記憶された映像データの画像フレームを時刻情報の古い順に読み込む。
次に、ステップS603において、顔領域検出照合部120は、画像フレームを読み込んだとき(S603:YES)はステップS604の処理に移り、画像フレームを読み込まなかったとき(S603:NO)はこのフローチャートの処理を終了する。
【0107】
ステップS604において、顔領域検出照合部120は、読み込んだ画像フレームから顔画像領域を検出する。このとき顔領域検出照合部120は、例えば、画像フレームをスキャンして色情報を取得し、人間の身体の色に対応する特定の色の画素を抽出することによって顔画像領域を検出する方法や、目、鼻、口等の顔の部位を形状として認識する周知の顔認識アルゴリズムを用いて顔画像領域を検出する方法、またはこれらを組み合わせて用いる方法を使用する。
【0108】
次に、ステップS605において、顔領域検出照合部120は、顔画像領域から特徴点位置を推定する。特徴点は図6に示したものである。なお、特徴点位置の部位が非可視である場合は、顔画像領域検出照合部120はその特徴点位置を推定しない。顔領域検出照合部120による特徴点位置の推定処理は、例えば次のようにして行う。顔領域検出照合部120は、現画像フレームにおける特徴点が前画像フレームにおける特徴点と同位置またはその近傍に存在するとの仮定に基づき、同位置を初期位置として、その初期位置を中心とした所定範囲内の近傍を探索する。過去の画像フレームにおいて推定された特徴点位置は、顔特徴データベース部160の可変テンプレート構造体に特徴点時次元座標値として登録されているため、顔画像領域検出照合部120は、その可変テンプレート構造体から前フレームの特徴点二次元座標値を読み出すことにより初期位置を設定することができる。顔画像領域検出照合部120は、ガボールウェーブレット特徴を解像度の低い領域から高い領域まで計測することによって探索を行う。ガボールウェーブレット特徴は複素数であり、実部のコサイン波形と虚部のサイン波形とは位相が90度ずれたものである。そこで、顔領域検出照合部120は、実部および虚部のそれぞれについての係数を用いて位置ずれを推定し、位置をずらしながら繰り返し探索処理を行う。そして、位置ずれが収束した時点で探索処理を終了させる。このときの位置が、類似度が最大となる特徴点位置であると推定され、すなわち推定された特徴点二次元座標値である。1画像フレームあたりの顔画像領域中に推定された特徴点の個数をNFP個とする。
【0109】
次に、ステップS606において、顔領域検出照合部120は、ステップS601の処理において設定されたモードに応じて処理を分ける。設定モードが登録モードである場合(S606:登録モード)はステップS607の処理に移り、設定モードが認識モードである場合(S606:認識モード)はステップS608の処理に移る。
【0110】
ステップS607において、登録モードの顔領域検出照合部120は、ステップS605の処理で推定されたNFP個の特徴点位置である特徴点二次元座標値を出力してステップS602の処理に戻る。一方、ステップS608において、認識モードの顔領域検出照合部120は、ステップS605の処理で推定されたNFP個の特徴点二次元座標値を出力するとともに、類似度の最も高い顔特徴データに関するマッチスコアを生成して出力し、ステップS602の処理に戻る。
【0111】
[特徴点の三次元位置・頭部姿勢推定処理]
図11は、映像データの各画像フレームにおける二次元の特徴点位置(特徴点二次元座標値)から、三次元の特徴点位置と画像フレームごとの頭部姿勢とを対応付けて推定する処理の手順を示すフローチャートである。ステップS701において、位置・姿勢推定部131は、顔領域検出照合部120から、Nframes枚の画像フレームそれぞれについてのNFP個の特徴点二次元座標値を取り込む。このとき、k枚目(0≦k<Nframes)の画像フレームにおけるj番目(0≦j<NFP)の特徴点二次元座標値は、下の式(25)に示す要素(x,y)を有するベクトルy(ボールド体)(ハット)で示される。ここで、要素(x,y)は、k枚目の画像フレームを直交するx軸およびy軸による二次元平面で表したときのj番目の特徴点のx座標推定値,y座標推定値に相当する。すなわち、式(25)におけるy(ボールド体)は実数(R)の二次元ベクトルである。なおここで、「(ボールド体)」という記載は、その記載直前の文字がボールド体の書体であることを指し、当該表現が行列またはベクトルであることを意味している。また、「(ハット)」という記載は、同様に、当該表現の値が推定値であることを意味している。
【0112】
【数25】

【0113】
次に、ステップS702において、位置・姿勢推定部131は、k枚目(0≦k<Nframes)の画像フレームにおけるj番目(0≦j<NFP)の特徴点が可視であるかまたは非可視であるかを推定した可視性v(ハット)∈{0,1}を取得する。値は、非可視が0であり可視が1である。登録モードにおいては、画像フレームごとの可視性v(ハット)は、特徴点位置が見えるか否かにより外部から入力される。
【0114】
次に、ステップS703において、位置・姿勢推定部131は、顔モデル記憶部134から、三次元CG顔モデルにおけるj番目(0≦j<NFP)特徴点に対応するメッシュ頂点の位置であるメッシュ頂点三次元座標値m(ボールド体)∈R(但し、0≦j<NFP)を読み込む。
【0115】
次に、ステップS704において、位置・姿勢推定部131は、ステップS701からS703までの処理で得られたデータに基づいて、映像データにおける各特徴点の三次元位置である特徴点三次元座標値と画像フレームごとの頭部姿勢とを対応付けて推定する。この推定処理は、公知文献である「サイモン クリピングデル、藤井真人、八木伸行、“遮蔽とノイズのある二次元観測データから三次元顔特徴点推定の一検討”、電子情報通信学会技術研究報告、PRMU2008−42、2008/06、pp.133−138.」に記載された二次元特徴データから三次元特徴データの推定処理を適用する。または、後に記載する「顔の三次元モデル推定処理」を適用する。
【0116】
次に、ステップS705において、位置・姿勢推定部131は、映像データにおけるNFP個の特徴点三次元座標値m(ボールド体)(ハット)∈R(但し、0≦j<NFP)と、k枚目の画像フレームにおける頭部姿勢Q(ボールド体)(ハット)∈R2×3(但し、0≦k<Nframes)と、k枚目の画像フレームにおける二次元の特徴点の重心y(ボールド体)(バー)∈R(但し、0≦k<Nframes)とを出力する。
【0117】
ステップS704の処理における推定アルゴリズムは、非線形条件付最小自乗法推定クラスに属するものであり、式(26)に示す自乗誤差を式(27)に示す直交性条件下で最小化するものである。
【0118】
【数26】

【0119】
【数27】

【0120】
なお、式(27)において、Iは二次元単位行列であり、λは定数である。
【0121】
[メッシュワーピング処理]
次に、メッシュワーピング部132は、推定された各特徴点の特徴点三次元座標値m(ボールド体)(ハット)∈R(但し、0≦j<NFP)で示される位置に、顔モデル記憶部134に記憶された三次元CG顔モデルのメッシュ頂点三次元座標値x(ボールド体)∈R(但し、0≦n<NVT)で示されるメッシュ頂点をワーピングさせることによって修正三次元CG顔モデルを生成する。
図12は、メッシュワーピング部132が実行するメッシュワーピング処理の手順を示したフローチャートである。また、図13は、三次元CG顔モデルのメッシュを示す図である。以下、図12のフローチャートの手順に沿って説明する。
【0122】
ステップS801において、メッシュワーピング部132は、特徴点に対応する三次元CG顔モデルのメッシュ頂点(特徴点頂点と呼ぶ。)と、三次元CG顔モデルと外界との境界部分に位置する所定数のメッシュ頂点(固定頂点と呼ぶ。)とを指定する。そして、メッシュワーピング部132は、これらのメッシュ頂点を頂点とするNtri個の三角形i(但し、0≦i<Ntri)を設定する。これらの三角形の頂点の座標はx(ボールド体)i,l,(但し、0≦i<Ntri,0≦l(エル)<3)である。
図13は、特徴点頂点(色抜きの丸印)と、固定頂点(ハッチングの丸印)と、これらを頂点とする三角形とを、模式的に示している。
【0123】
次に、ステップS802において、メッシュワーピング部132は、下の式(28)により、三次元CG顔モデルのn番目のメッシュ頂点三次元座標値x(ボールド体)∈R,0≦n<NVTを、ステップS801の処理において設定した三角形i(0≦i<Ntri)のうちのimin(n)番目(但し、0≦n<Nvt)の三角形に割当てる。そして、メッシュワーピング部132は、メッシュ頂点三次元座標値とそれが割当てられる三角形の識別情報とを、メッシュ頂点割当情報記憶部135に記憶されたメッシュ頂点割当情報に書き込む。メッシュワーピング部132は、2回目以降の処理において既に計算されたメッシュ頂点が再度選択された場合にメッシュ頂点割当情報記憶部135を参照するようにすれば、再度計算処理を行う必要がなく効率的な処理を行うことができる。
【0124】
【数28】

【0125】
なお、式(28)における関数f(x)はペナルティ関数であり、メッシュ頂点が三角形内に含まれる場合にはこのペナルティ関数の値は0である。
【0126】
次に、ステップS803において、メッシュワーピング部132は、n番目のメッシュ頂点三次元座標値x(ボールド体),0≦n<NVTを、下の式(29)で示すn番目の修正メッシュ頂点三次元座標値x(ボールド体)(ハット)(0≦n<NVT)に置き換える。
【0127】
【数29】

【0128】
式(29)において、p=imin(n)であり、x(ボールド体)p,l(ハット),0≦l(エル)<3は、前述した特徴点の三次元位置・頭部姿勢推定処理において推定した特徴点三次元座標値m(ボールド体)(ハット),0≦j<NFPに対応するメッシュ頂点および固定頂点の三次元座標値である。
【0129】
図14は、三次元CG顔モデルのメッシュ頂点のワーピング処理を説明するための図である。同図は、前述した特徴点の三次元位置・頭部姿勢推定処理において推定した特徴点および固定頂点のうち3個のメッシュ頂点三次元座標値x(ボールド体)p,l(l(エル)∈{0,1,2})が、映像データから推定された修正メッシュ頂点三次元座標値x(ボールド体)p,l(ハット),l(エル)∈{0,1,2}に置き換えられ、さらに、これら置き換えられた特徴点頂点および固定頂点に合わせて、一般メッシュ頂点のメッシュ頂点三次元座標値x(ボールド体)が修正メッシュ頂点三次元座標値x(ボールド体)(ハット)に置き換えられた様子を示す。同図において、メッシュ頂点三次元座標値x(ボールド体)p,1は固定頂点であり、メッシュ頂点三次元座標値x(ボールド体)p,l,l(エル)∈{0,2}は特徴点に対応するメッシュ頂点である。
【0130】
[テクスチャマッピング処理]
映像データの顔画像を三次元CG顔モデルに合わせてワーピングして生成した修正三次元CG顔モデルにテクスチャを貼り付ける(マッピングする)と、そのマッピング後の修正三次元CG顔モデルを任意の頭部姿勢でレンダリングしたときに、登録対象人物の顔テクスチャがその頭部姿勢で映ることになる。レンダリングされた修正三次元CG顔モデルの表面に映るテクスチャの質感は、頭部姿勢や照明条件等の他、UVテクスチャ画像により定められるため、特定の人物の顔にモデルを合わせるためには、以下のようにしてUVテクスチャ画像の修正を行う。
【0131】
テクスチャマッピングされた三次元CG顔モデルとUVテクスチャ画像との関係は、既に図3に示した通りである。同図(a)は、三次元CG顔モデルにテクスチャマッピングを施した状態を示すものであり、同図(b)は、UVテクスチャ画像にメッシュを重ね合わせた図である。同図が示すように、UVテクスチャ画像にメッシュを重ね合わせると、n番目のメッシュ頂点三次元座標値x(ボールド体)(0≦n<NVT)とUVテクスチャ画像上の画素位置である座標値(u,v)(0≦u≦1,0≦v≦1,0≦n<NVT)とが関係付けられる。具体的には、n番目のメッシュ頂点三次元座標値x(ボールド体)のデータが、UVテクスチャ画像上の画素の座標値(u,v)を、UVテクスチャ画像上へのポインタとして関連付けて有していることによって、これら両者が関係付けられる。
【0132】
図15は、UVテクスチャ画像の修正処理の手順を示すフローチャートである。ステップS1201において、テクスチャマッピング部133は、三次元CG顔モデルのメッシュを構成する四角形以上の多角形を三角形に分割する。つまり、テクスチャマッピング部133は、三次元CG顔モデルのメッシュ頂点三次元座標値x(ボールド体)(0≦j<N)に対応する頂点によって構成されるN角形を、{x,x,x},{x,x,x},・・・,{x,xN−2,xN−1}(xはそれぞれボールド体)を頂点とした(N−2)個の三角形に分割する。これによって、テクスチャマッピング部133が三次元CG顔モデル上に設ける三角形の個数をNuvtri個としたとき、i番目の三角形{xi,0,xi,1,xi,2}(xはそれぞれボールド体)(0≦i<Nuvtri)に、UVテクスチャ画像におけるi番目の三角形{(ui,0,vi,0),(ui,1,vi,1),(ui,2,vi,2)}が対応付けられる。
【0133】
次に、ステップS1202において、テクスチャマッピング部133は、UVテクスチャ画像において、特徴点に対応するメッシュ頂点のうちの、1つのメッシュ頂点に対応する画素およびその近傍(半径=R画素の範囲内)にある画素を選択する(それらの画素の座標を(u,v)で表わす)。
次に、ステップS1203において、画素(u,v)が選択されている場合(ステップS1203:YES)は、ステップS1204の処理に移る。一方、画素(u,v)が選択されていない場合(ステップS1203:NO)は、ステップS1210の処理に移る。
【0134】
ステップS1204において、テクスチャマッピング部133は、選択された画素(u,v)を、式(30)によってUVテクスチャ画像上のimin(u,v)番目の三角形に割当てる。
【0135】
【数30】

【0136】
テクスチャマッピング部133は、これらの各画素(u,v)と、その画素に割当てられた三角形の番号imin(u,v)とを、画素割当情報記憶部137に記憶される画素割当情報に書き込む。テクスチャマッピング部133は、2回目以降の処理において既に計算された画素(u,v)が再度選択された場合に画素割当情報記憶部137を参照するようにすれば、再度計算処理を行う必要がなく効率的な処理を行うことができる。
【0137】
ここで、imin(u,v)を「imin」と表記する(以後において同様)。ステップS1204の処理で画素(u,v)が割り当てられたimin番目の三角形の頂点を(uimin,l,vimin,l)(l(エル)=0,1,2)とし、これらが対応付けられた修正メッシュ頂点三次元座標値をx(ボールド体)imin,l(ハット)(l(エル)=0,1,2)とし、それらに対応する三次元CG顔モデルの頂点における表面法線をn(ボールド体)imin,l(l(エル)=0,1,2)とする。
【0138】
次に、ステップS1205において、テクスチャマッピング部133は、映像データの各画像フレームにおける射影位置を推定する。具体的には、テクスチャマッピング部133は、式(31)により、修正メッシュ頂点三次元座標値x(ボールド体)imin,l(ハット)(l(エル)=0,1,2)を、前述した特徴点の三次元位置・頭部姿勢推定処理のステップS705の処理において推定した頭部姿勢Q(ボールド体)(ハット),0≦k<Nframesに基づいて変換し、これに映像データのk枚目の画像フレームにおける二次元の特徴点の重心y(ボールド体)(バー),0≦k<Nframesを加算して射影位置r(ボールド体)imin,l(ハット)を求める。
【0139】
【数31】

【0140】
この射影位置r(ボールド体)imin,l(ハット)は、遮蔽されない(可視である)場合の、映像データのk枚目の画像フレームに当該頂点が射影される位置の推定値である。
【0141】
次に、ステップS1206において、テクスチャマッピング部133は、UVテクスチャ画像上の画素の、映像データの各画像フレームにおける射影位置を推定する。具体的には、テクスチャマッピング部133は、ステップS1205の処理で求めた射影位置r(ボールド体)imin,l(ハット)の、ステップS1204の処理で求めたb(ボールド体)imin=b(ボールド体)imin(u,v)による重み付組み合わせr(ボールド体)(u,v)(ハット)を下の式(32)のように計算し、UVテクスチャ画像上の画素(u,v)に対応する、映像データのk枚目の画像フレームにおけるRGB値p(ボールド体)(r(ボールド体)(u,v)(ハット))(0≦k<Nframes)を求める。このRGB値p(ボールド体)(r(ボールド体)(u,v)(ハット))は、元の画像フレームに含まれていた濃淡・色彩情報である。
【0142】
【数32】

【0143】
次に、ステップS1207において、テクスチャマッピング部133は、三次元CG顔モデルにおけるUVテクスチャ画像の画素(u,v)に対応する位置での表面法線を推定する。具体的には、テクスチャマッピング部133は、表面法線n(ボールド体)imin,l(l(エル)=0,1,2)の、ステップS1204の処理で求めたb(ボールド体)imin=b(ボールド体)imin(u,v)による重み付組み合わせn(ボールド体)(u,v)(ハット)を下の式(33)のように計算する。
【0144】
【数33】

【0145】
次に、ステップS1208において、テクスチャマッピング部133は、映像データのk枚目の画像フレームにおける頭部姿勢Q(ボールド体)(ハット)に基づいて回転された表面法線であるQ(ボールド体)(ハット)n(ボールド体)(u,v)(ハット)と視線の光軸(カメラの光軸)[001]との間の角度であるθ(u,v)(ハット)を用いて、下の式(34)によって方向の重みα(u,v)を計算する。なお、視線の光軸とは、画像フレームに映る頭部姿勢Q(ボールド体)(ハット)を見る仮想的な観察者の視線、または頭部姿勢Q(ボールド体)(ハット)を撮像する仮想的なカメラの撮像レンズの光軸のことである。
【0146】
【数34】

【0147】
方向の重みα(u,v)は、式(34)のmの値をパラメータ(第2のパラメータ)設定によって調整できるようにする。このパラメータの調整により、映像データのk枚目の画像フレームにUVテクスチャ画像の画素(u,v)が映る位置における表面法線Q(ボールド体)(ハット)n(ボールド体)(u,v)(ハット)と視線の光軸(カメラの光軸)との、角度に対する方向の重みα(u,v)の変化度合いを可変にすることができる。
【0148】
一般的に、三次元コンピュータグラフィックスのレンダリング処理において、三次元モデルの表面のある箇所が遮蔽されているか否かを判定するためのZバッファ計算の負担は大きい。しかしながら、本実施形態におけるテクスチャマッピング処理においては、人物の顔の形状がおおよそ凸面形状を有していることにより、上記の方向の重みα(u,v)を用いることによって、UVテクスチャ画像上の画素(u,v)の映像データの各画像フレームに映る位置r(ボールド体)(u,v)(ハット)(0≦k<Nframes)が遮蔽されているか否かの計算を省略することができる。すなわち、方向の重みα(u,v)が大きい程、当該頭部姿勢における当該位置r(ボールド体)(u,v)(ハット)がより正対に近い形でカメラに向いており、よって当該位置が遮蔽されていない確率が高い。また、その方向からずれるに従って、方向の重みα(u,v)の値が単調に減少していく。
方向の重みのこのような性質上、テクスチャマッピング部133は、三次元CG顔モデルに対する視線の光軸と三次元CG顔モデルの表面法線との角度に基づき、画像フレームに含まれるテクスチャをUVテクスチャ画像にマッピングする際の方向の重みα(u,v)を調整することが好ましい。このようにすることにより、テクスチャの解像度を高く維持することができる。
【0149】
次に、ステップS1209において、テクスチャマッピング部133は、前述した特徴点の三次元位置・頭部姿勢推定処理のステップS704の処理において推定した特徴点三次元座標値m(ボールド体)(ハット),0≦j<NFPに対応するメッシュ頂点に対応付けられたUVテクスチャ画像上の画素位置(u,v),0≦j<NFPへの、UVテクスチャ画像におけるユークリッド距離による距離の重みδ(u,v)を下の式(35)により計算する。
【0150】
【数35】

【0151】
距離の重みδ(u,v)は、式(35)のnの値をパラメータ(第1のパラメータ)設定によって調整できるようにする。このパラメータの調整により、UVテクスチャ画像上の特徴点からの距離が遠いほど距離の重みδ(u,v)が小さくなるときに、距離に対する距離の重みδ(u,v)の変化度合いを可変にすることができる。
なお、三次元推定部130は、各々の画素についてステップS1202からS1209までの処理で計算した結果のデータをメモリに記憶させておく。そして、ステップS1209の処理が終了すると、ステップS1202に戻る。
【0152】
ステップS1203からステップS1210に進んだ場合には、ステップS1210において、テクスチャマッピング部133は、距離の重みδ(u,v)および方向の重みα(u,v)を用いてUVテクスチャ画像上の画素(u,v)におけるRGBベクトル値を更新する。具体的には、テクスチャマッピング部133は、画素(u,v)におけるRGBベクトルt(ボールド体)(u,v)を式(36)によって計算(合成)し、画素(u,v)における初期のテクスチャ値t(ボールド体)(u,v)をt(ボールド体)(u,v)で更新する。
【0153】
このとき、テクスチャマッピング部133(テクスチャ画像書き込み部)は、既に第1の実施形態において述べた方法と同様の方法で、低解像度から高解像度に順次、既に得られている貼り付け画像r(ボールド体)(u,v)(ハット)を用いて所定の解像度によるリファレンス画像を生成し、そのリファレンス画像と各貼り付け画像とに基づき、貼り付け画像の画素の位置ずれ量を算出し、そして、得られた位置ずれ量を用いて画素の位置をアラインする。このとき、既に計算されている重み値、つまりフレーム画像ごとの各画素における方向の重みα(u,v)を適宜、用いる。そして低解像度から最高解像度まで順次上記のアラインメント処理を行なうことは、つまり、貼り付け画像r(ボールド体)(u,v)(ハット)の画素(u,v)の各画素を、r(ボールド体)(u+m(u,v),v+n(u,v))(ハット)にアラインすることである。以下の、テクスチャ画像への貼り付けの処理では、アラインされた後の位置を再び(u,v)として表しながら説明する。
【0154】
【数36】

【0155】
式(36)おいて、t(ボールド体)(u,v)は、三次元CG顔モデル上のUVテクスチャ画像の画素(u,v)における初期RGBベクトル値(テクスチャ値)である。定数γは、このt(ボールド体)(u,v)と、映像データから三次元CG顔モデルに貼り付けるテクスチャとのバランスを調整するものである。w(ボールド体)(u,v)は、映像データの平均輝度をt(ボールド体)(u,v)の平均輝度に合わせるための調整量である。この調整は、例えば、ヒストグラムイコライゼーション等の前処理によって、映像データの輝度を三次元CG顔モデルのテクスチャの輝度に合わせるようにする。
【0156】
また、式(36)に示すように、テクスチャマッピング部133は、k番目の画像フレームにおけるRGB値p(ボールド体)(r(ボールド体)(u,v)(ハット))に、方向の重みα(u,v)を乗じる計算を行っている。つまり、テクスチャマッピング部133は、元の画像フレームに含まれる濃淡・色彩情報を二次元顔テクスチャ画像にマッピングする際に、この方向の重みによる調整を行なっている。
同じく、テクスチャマッピング部133は、Nframes枚の画像フレームについてのRGB値の総和(但し、上記の方向の重みで調整したもの)に、距離の重みδ(u,v)を乗じる計算を行っている。つまり、テクスチャマッピング部133は、元の画像フレームに含まれる濃淡・色彩情報を二次元顔テクスチャ画像にマッピングする際に、この距離の重みによる調整を行なっている。
前述の通り、式(34)のmの値をパラメータ(第2のパラメータ)設定によって調整可能としており、これにより、三次元CG顔モデルの表面法線と視線の光軸(カメラの光軸)とがなす角度に対する方向の重みα(u,v)の変化度合いを可変としている。また、式(35)のnの値をパラメータ(第1のパラメータ)設定によって調整可能としており、これにより、UVテクスチャ画像上の特徴点からの距離に対する距離の重みδ(u,v)の変化度合いを可変としている。このようにmとnの両方を可変とした場合に、両者の重みのバランスを調整することができる。例えば、角度に対する方向の重みの変化度合いが比較的なだらかになるように調整した場合、表面法線と視線の光軸がなす角度がある程度大きくても、単なるUVテクスチャ画像の値だけではなく、現実に撮像した結果である画像フレームにおけるRGB値がある程度反映された特徴量をデータベースに登録することができる。
【0157】
[レンダリング処理]
レンダリング部140は、三次元推定部130で修正した修正三次元CG顔モデルを所定の頭部姿勢(θ,θx1)に回転させ、レンダリング処理を行って合成顔画像モデルを生成する。なお、θは顔の鉛直方向の軸を中心とする角度、θx1は顔の水平方向の軸を中心とする角度を示す。レンダリング部140は、三次元CG顔モデルの鉛直方向の軸を中心とした回転、次に水平方向の軸を中心とした回転を行う。よって、鉛直方向の回転軸は三次元CG顔モデルのy軸であり、水平方向の回転軸は水平方向であり且つ顔正面と平行な軸である。即ち、水平方向の回転軸そのものが、鉛直方向の回転軸を中心とする回転によって回転する。
【0158】
具体的には、レンダリング部140は、特徴点三次元座標値m(ボールド体)(ハット)∈R,0≦j<NFPを推定した各特徴点が、頭部姿勢(θ,θx1)でレンダリングされた画像Rθy,θx1(z(ボールド体)),z(ボールド体)∈Rに見えるか否かを示す可視性v(ボールド体)θy,θx1∈{0,1}(0≦j<NFP)と、v(ボールド体)θy,θx1=1(可視)である場合に、その特徴点が画像Rθy,θx1(z(ボールド体))に映る位置z(ボールド体)θy,θx1とを計算してレンダリング処理を行う。つまり、レンダリング部140は、特徴点の二次元座標値データを算出する。
【0159】
[データベース登録処理]
データベース登録部150は、レンダリング部140がレンダリング処理した画像Rθy,θx1(z(ボールド体))上の可視である(v(ボールド体)θy,θx1=1)特徴点の座標z(ボールド体)θy,θx1における、ガボールウェーブレット特徴fθy,θx1(r,θ)を、Nres個の解像度r∈{r,r,・・・,rNres−1}と、Norn個の方位φ∈{φ,・・・,φNorn−1}とによる一点畳み込み計測を式(37)によって行う。
【0160】
【数37】

【0161】
次に、データベース登録部150は、図9に示す可変テンプレート構造体を生成してデータを各メンバに格納し、顔特徴データベース部160に登録する。具体的には、データベース登録部150は、登録人物ごとに、登録対象人物の氏名または登録人物を特定するための名称、および識別情報を人物識別情報に格納し、頭部姿勢の個数分の頭部姿勢インデックスと各頭部姿勢における特徴点情報とを格納する。頭部姿勢インデックスは、頭部姿勢(θ,θx1)である。特徴点情報には、特徴点番号j番目(0≦j<NFP)に対応させて、示す可視性フラグvθy,θx1と、その特徴点の特徴点二次元座標値z(ボールド体)θy,θx1と、Nres個の解像度(ウェーブレットサイズ)×Norn個の方位におけるガボールウェーブレット特徴fθy,θx1(r,θ)とを格納する。
【0162】
以上述べたように、本実施形態によれば、非線形的な位置ずれに対応したアラインメントを行いながら、複数の頭部姿勢についての特徴点に係る情報の登録の手間を軽減し、登録用の映像または複数の静止画像の画像フレームに含まれていない頭部姿勢についても容易に登録することができる。
【0163】
なお、上述した実施形態における画像処理装置あるいは顔画像処理装置の機能の全部または一部を、コンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0164】
以上、複数の実施形態を説明したが、本発明はさらに次のような変形例でも実施することが可能である。
例えば、第2実施形態においては、人の顔(頭部)を対象とした画像を処理する顔画像処理装置について説明したが、被写体はこれに限らず、三次元形状を有する任意の被写体を対象とする画像処理装置としても良い。但し、被写体がある程度の剛体性を有する場合に、特徴点間の位置関係の推定精度が良くなる。また、被写体表面がある程度の非線形的変形をする場合(但し、その場合には限られない)に、特に本発明特有の効果が得られる。
【0165】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0166】
本発明は、撮像画像に基づく三次元形状物体のモデリングに、広く利用可能である。また、ヒューマンマシンインタフェースの分野にも利用可能である。
【符号の説明】
【0167】
1 画像処理装置
11 画像データ記憶部
12 逆ポーズ変換処理部
14 テクスチャマッピング部
15 テクスチャ画像記憶部
51−0,51−1,51−2,・・・ 貼り付け画像取得部
52−0,52−1,・・・ ワーピング処理部
53 リファレンス画像生成部
54 制御部
55 テクスチャ画像書き込み部
61−0,61−1,・・・ 画像加算部
62−0,62−1,・・・ ガウシアンウィンドウ処理部
100 顔画像処理装置(画像処理装置)
110 画像データ記憶部
120 顔領域検出照合部
130 三次元推定部
131 位置・姿勢推定部
132 メッシュワーピング部
133 テクスチャマッピング部
134 顔モデル記憶部
135 メッシュ頂点割当情報記憶部
136 テクスチャ画像記憶部
137 画素割当情報記憶部
140 レンダリング部
150 データベース登録部
160 顔特徴データベース部

【特許請求の範囲】
【請求項1】
三次元物体を撮像した複数のフレーム画像に含まれる画素の前記三次元物体の表面における位置を推定して得られる貼り付け画像を取得する貼り付け画像取得部と、
前記貼り付け画像取得部が取得した複数の前記貼り付け画像の和に、所定の解像度によるローパスフィルターをかけることによって当該解像度のリファレンス画像を生成するリファレンス画像生成部と、
前記貼り付け画像と前記リファレンス画像とに基づき前記貼り付け画像に含まれる画素の位置ずれ量を計算し、得られた前記位置ずれ量により前記貼り付け画像の前記画素の位置をアラインするワーピング処理部と、
を具備することを特徴とする画像処理装置。
【請求項2】
前記所定の解像度において前記ワーピング処理部が前記画素の位置をアラインして得られた前記貼り付け画像を、前記貼り付け画像取得部に取得させ、次の解像度において前記リファレンス画像生成部に前記リファレンス画像を生成させるとともに、低解像度側から高解像度側へ、前記貼り付け画像の前記画素の位置のアラインを順次繰り返すように制御する制御部、
をさらに具備することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
三次元物体の表面のテクスチャを表すテクスチャ画像を記憶するテクスチャ画像記憶部と、
前記ワーピング処理部によってアライン済みの複数の前記貼り付け画像を合成して得られる前記テクスチャ画像を前記テクスチャ画像記憶部に書き込むテクスチャ画像書き込み部と、
をさらに具備することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記三次元物体は顔であり、
顔の特徴点に対応する二次元座標値データを人物識別情報と頭部姿勢を表わす角度データに関連付けて記憶する顔特徴データベース部と、
前記顔特徴データベース部から読み出した前記特徴点に対応する二次元座標値データに基づいて、読み込んだ画像フレームに含まれる顔の特徴点の二次元座標値データを推定する顔領域検出照合部と、
予め定められたジェネリックモデルにおけるメッシュ頂点に対応する三次元座標値データを記憶する顔モデル記憶部と、
前記顔領域検出照合部によって推定された前記特徴点の二次元座標値データと、前記顔モデル記憶部から読み出した前記メッシュ頂点に対応する三次元座標値データとに基づいて、前記画像フレームに含まれる前記特徴点の三次元座標値データと前記画像フレームについての頭部姿勢を表わす角度データとを推定する位置・姿勢推定部と、
前記位置・姿勢推定部によって推定された前記特徴点の三次元座標値データと前記角度データとに基づき、前記ジェネリックモデルにおける前記メッシュ頂点をワーピングさせることによって修正顔モデルを生成し、前記メッシュ頂点に対応して前記修正顔モデルにおけるメッシュ頂点の三次元座標値データを算出するメッシュワーピング部と、
前記メッシュワーピング部によって生成された修正顔モデルに基づき、頭部姿勢を表わす前記角度データを変えたときのレンダリング処理を行って複数の合成顔画像モデルを生成し、前記特徴点の二次元座標値データを算出するレンダリング部と、
前記レンダリング部が算出した前記特徴点の二次元座標値データを、対応する前記角度データと関連付けて前記顔特徴データベース部に登録するデータベース登録部と、
を備え、
前記顔特徴データベース部は、前記人物識別情報と頭部姿勢の前記角度データとに関連付けて、少なくとも前記特徴点の近傍の画像特徴情報を記憶するものであり、
前記レンダリング部は、前記テクスチャ画像書き込み部が書き込んだテクスチャ画像を前記テクスチャ画像記憶部から読み出し、このテクスチャ画像に基づくレンダリング処理を行うものであり、
前記データベース登録部は、前記レンダリング部が行なったレンダリング処理の結果に基づく前記画像特徴情報を、対応する前記角度データと関連付けて前記顔特徴データベース部に登録する、
ことを特徴とする請求項3に記載の画像処理装置。
【請求項5】
三次元物体を撮像した複数のフレーム画像に含まれる画素の前記三次元物体の表面における位置を推定して得られる貼り付け画像を取得する貼り付け画像取得部と、
前記貼り付け画像取得部が取得した複数の前記貼り付け画像の和に、所定の解像度によるローパスフィルターをかけることによって当該解像度のリファレンス画像を生成するリファレンス画像生成部と、
前記貼り付け画像と前記リファレンス画像とに基づき前記貼り付け画像に含まれる画素の位置ずれ量を計算し、得られた前記位置ずれ量により前記貼り付け画像の前記画素の位置をアラインするワーピング処理部と、
を具備する画像処理装置としてコンピュータを機能させるコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−22403(P2012−22403A)
【公開日】平成24年2月2日(2012.2.2)
【国際特許分類】
【出願番号】特願2010−158178(P2010−158178)
【出願日】平成22年7月12日(2010.7.12)
【出願人】(000004352)日本放送協会 (2,206)
【Fターム(参考)】