(57)【特許請求の範囲】
【請求項１】
動画化３Ｄオブジェクトの３Ｄジオメトリックモデルと、動画化３Ｄオブジェクトの表面の色およびシェーディングの情報とを取り込む方法において、
３Ｄオブジェクトのベースメッシュを取り込むこと、
マーカを表面に付けられた動画化３Ｄオブジェクトのｎ個の同時ビデオシーケンスを前記３Ｄオブジェクトの周りに配置されたｎ個のカメラそれぞれから取り込むことであって、ｎは２以上であり、ビデオシーケンスは１フレームにつきｎ個のカメラ画像を含むこと、
ビデオシーケンス中のフレームに対するｎ個の２Ｄカメラ画像からマーカの３Ｄポジションを決定すること、
マーカの３Ｄポジションとベースメッシュの頂点間の関連を決定すること、
マーカの３Ｄポジションを使用してベースメッシュの頂点の動きを決定すること、
ベースメッシュの動きを変形ベクトルのセットとして表すことであって、変形ベクトルの各セットはベースメッシュの位置に対応すること、
変形ベクトルのセットの行列を基底ベクトルと係数に分解すること、
送信または記憶のために基底ベクトルおよび係数を符号化すること、および
ビデオシーケンス中の複数のフレームそれぞれに対するｎ個のカメラ画像からテクスチャマップを構築すること
を含むことを特徴とする方法。
【請求項２】
マーカの色を色クラス中に分類することによってビデオシーケンス中の複数のフレームに対するｎ個のカメラ画像中におけるマーカの２Ｄポジションを識別することであって、色クラスのそれぞれはマーカ色に関連する色のリストを有すること、カメラ画像中の画素の色値を求めて、前記画素を色クラスに割り当てるかどうかを決定すること、および、同じ色に割り当てられた隣接画素のグループを分析して、前記グループがマーカを表すかどうかを判定することを特徴とする請求項１に記載の方法。
【請求項３】
ａ）ビデオシーケンス中のフレームに対するｎ個のカメラ画像中におけるマーカの２Ｄポジションを識別すること、
ｂ）フレームに対するｎ個のカメラ画像のそれぞれにおけるマーカの２Ｄポジションを使用して、マーカ間の対応をフレームに対して決定すること、
ｃ）マーカ間の対応および２Ｄポジションを使用して、マーカのための３Ｄポジションをフレームに対して決定すること、
ｄ）ステップａ）〜ｃ）を繰り返してマーカのための３Ｄポジションを複数のフレームに対して決定すること
を含むことを特徴とする請求項１に記載の方法。
【請求項４】
（ｅ）第１のフレームおよび第２のフレームに対してマーカの３Ｄポジションの間の対応を決定すること、および、
（ｆ）複数のフレームのそれぞれに対して各マーカが対応する３Ｄポジションを有するように、追加のフレームの対に対してステップ（ｅ）を繰り返すこと
をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
各テクスチャマップは、ベースメッシュの変形を規定する、対応するマーカの３Ｄポジションのセットを有することを特徴とする請求項１に記載の方法。
【請求項６】
複数のフレームのそれぞれがｎ個の２Ｄカメラ画像を有し、各フレームに対するテクスチャマップおよび対応する３Ｄポジションのセットは前記フレームに対するｎ個の２Ｄカメラ画像から導き出されることを特徴とする請求項５に記載の方法。
【請求項７】
３Ｄポジションの各セットはビデオシーケンス中のフレームの１つに対応し、
３Ｄポジションの各セットは対応するフレームで３Ｄオブジェクトの位置にベースメッシュを変形するのに使用され、
変形されたメッシュは対応するフレームに対するテクスチャ空間中のテクセルがどのようにカメラ画像中の場所に変換されるかを決定するのに使用され、変換されたテクセルにまたはその近くに位置するカメラ画像中の画素の色値に基づいてテクセルに対する色値が決定される
ことを特徴とする請求項５に記載の方法。
【請求項８】
テクスチャマップを構築するステップは、
ｎ個のカメラ画像のそれぞれから事前テクスチャマップを計算すること、および、
フレームに対するテクスチャマップをｎ個の事前テクスチャマップの加重平均として計算すること
を含むことを特徴とする請求項１に記載の方法。
【請求項９】
複数のフレームのそれぞれは対応するマーカの３Ｄポジションのセットを有し、
マーカの３Ｄポジションのセットを使用して対応するフレームに対しベースメッシュの変形を決定すること、および、
前記変形を使用し、各事前テクスチャマップのテクセルの各カメラ画像へのマッピングを判定してカメラ画像からテクセルに対する色値を決定すること
をさらに含むことを特徴とする請求項８に記載の方法。
【請求項１０】
基準マーカを描写するカメラ画像の一部を基準マーカでカバーされていない３Ｄオブジェクトの一部の画像から生成されたテクスチャで置き換えることをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
係数に対して時間予測を行うことをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１２】
基底ベクトルおよび係数を量子化することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１３】
基底ベクトルおよび係数をエントロピー符号化することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１４】
３Ｄオブジェクトの周りに配置されたｎ個のカメラから撮られた動画化３Ｄオブジェクトのビデオシーケンスから、マーカを付けられた動画化３Ｄオブジェクトの３Ｄジオメトリック動きモデル（motion model）を取り込む方法であって、ｎは２以上であり、
ビデオシーケンス中のフレームに対するｎ個の２Ｄカメラ画像からマーカの３Ｄポジションを決定すること、
マーカの３Ｄポジションとオブジェクトのベース３Ｄモデル中の位置との間の関連を決定すること、
マーカの３Ｄポジションを使用してベース３Ｄモデルの動きを決定すること、
ベースモデルの動きをベースモデルに関連付けられる３Ｄポジションのセットとして表すことであって、３Ｄポジションの各セットはベースモデルの位置に対応すること、
３Ｄポジションのセットの行列を基底ベクトルと係数に分解すること、
送信または記憶のために基底ベクトルおよび係数を符号化すること、および
ビデオシーケンス中の複数のフレームそれぞれに対するｎ個のカメラ画像からテクスチャマップを構築すること
を含むことを特徴とする方法。
【請求項１５】
各テクスチャマップは対応するマーカの３Ｄポジションのセットに関連付けられることを特徴とする請求項１４に記載の方法。
【請求項１６】
各テクスチャマップおよび対応するマーカの３Ｄポジションのセットは、関連するビデオシーケンスのフレームから導き出され、ビデオシーケンスの各フレームはｎ個のカメラ画像を含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
テクスチャマップは、
関連付けられるフレームの３Ｄポジションのセットに基づいてベースモデルを変形すること、
変形したベースモデルを使用してカメラ画像中の場所とテクスチャ空間中のテクセルロケーション（texel location）間のマッピングを決定すること、および、
カメラ画像中の、またはその近くの場所の画素の色値に基づいてテクセルに色値を割り当てること
によって作られることを特徴とする請求項１６に記載の方法。
【請求項１８】
事前テクスチャマップ中のテクセルに対するマッピングの決定および色値の割当てのステップを繰り返すことであって、各事前テクスチャマップはフレームに対して対応するカメラ画像から導き出されること、および、
事前テクスチャマップの加重平均を計算して、フレームに対するテクスチャマップを決定することをさらに含むこと
を特徴とする請求項１７に記載の方法。
【請求項１９】
請求項１４に記載の方法をコンピュータに実行させるための命令を記録したことを特徴とするコンピュータ読取可能な記録媒体。
【請求項２０】
表情の動画を生成する方法において、
顔のベース３Ｄモデルに関連付けられる３Ｄ基準ポイントの３Ｄポジションのセットを検出することであって、３Ｄポジションのセットは、基準マーカを付けられた顔が同時に取り込まれたｎ個のビデオシーケンスのｎ個のカメラ画像から導き出されること、
テクスチャマップを検出することであって、各テクスチャマップは３Ｄポジションのセットに関連付けられ、テクスチャマップはビデオシーケンスのフレームから導き出されること、
３Ｄポジションの第１のセットに基づいてベースモデルを変形することによって、出力画像に対する顔のベース３Ｄモデルの位置を決定すること、
符号化されたテクスチャマップを、ビデオ復号器を使用して圧縮解除して、一連のテクスチャマップを再構築すること、
変形したベースモデルを３Ｄポジションのセットとして表すように、基底ベクトルと係数に分解されている行列から３Ｄポジションのセットの行列を再構築すること、
３Ｄポジションの第１のセットに関連付けられるテクスチャマップを、変形したベースモデル上にテクスチャマッピングすることを含めて、変形したベースモデルを出力画像にレンダリングすること、および、
３Ｄポジションの連続するセットに対してレンダリングステップを繰り返して、表情をシミュレートする一連の出力画像を生み出すこと
を含むことを特徴とする方法。
【請求項２１】
３Ｄポジションの各セットは対応するテクスチャマップを有し、３Ｄポジションの各セットおよび対応するテクスチャマップはビデオシーケンス中の単一かつ共通のフレームから導き出されることを特徴とする請求項２０に記載の方法。
【請求項２２】
３Ｄポジションの各セットおよび対応するテクスチャマップは共通フレームに対するｎ個のカメラ画像から導き出されることを特徴とする請求項２１に記載の方法。
【請求項２３】
３Ｄポジションのセットはｎ個のカメラ画像中における基準マーカの２Ｄポジションから導き出されることを特徴とする請求項２０に記載の方法。
【請求項２４】
量子化およびエントロピー符号化された対応する基底ベクトルのサンプルから基底ベクトルを再構築することをさらに含むことを特徴とする請求項２０に記載の方法。
【請求項２５】
時間予測された係数から係数を再構築することをさらに含むことを特徴とする請求項２０に記載の方法。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は３Ｄ動画に関し、特に、人間の表情などの動画化（animated）３Ｄオブジェクトのコンピュータモデルを取り込む方法に関する。
【０００２】
（発明の背景）
コンピュータ動画（computer animation）の分野における不断の探求は、コンピュータによって生成される画像の現実感を高めることである。これに関連する目標は、オブジェクトの色およびシェーディングと、時間経過につれてオブジェクトが動くのに伴うその外観の変化とを正確に表す、現実的な動くオブジェクトの３Ｄモデルを作り出す技術を開発することである。
【０００３】
コンピュータ動画における最も捉え難い目標の１つは、人間の顔の現実的な動画であった。多くの自由度で処理され、多くの方式で変形させることができるものの、顔は、動画チューリングテスト−普通の人をだまして、１個のコンピュータ動画が本当に現実の人の画像であると思い込ませること−をパスするだけの十分な正確さでシミュレートすることが難しかった。
【０００４】
顔の動画における以前の研究の例は、Lee,Y.、Terzopoulos,D.、Waters,K.の「Realistic modeling for facial animation」Computer Graphics29,2（１９９５年７月）、５５〜６２；Waters,K.の「A muscle model for animating three-dimensional facial expression」、Computer Graphics（SIGGRAPH′87Proceedings）（１９８７年７月）、M.C.Stone,Ed.、vol.21、pp.17〜24；およびCassell,J.、Pelachaud,C.、Badler,N.、Steedman,M.、Achorn,B.、Becket,T.、Doubille,B.、Prevost,S、Stone,M.の「Animated conversation:Rule-based generation of facial expression,gesture and spoken intonation for multiple conversational agents」、Computer Graphics28,2（１９９４年８月）、413〜420で論じられている。これらの手法は、現実のデータから動き（motion）を引き出すのではなく、顔のアクションまたは構造の合成モデルを使用する。Lee他およびWaters他のシステムは、表情を手作業で動画化することを比較的容易にするように設計されている。Badler他のシステムは、特定の人の表情を忠実に再構築するのではなく、ダイアログを自動的に作り出すように設計されている。
【０００５】
顔の動画の他の例には、WilliamsおよびBregler他による研究が含まれる。Williams,L.の「Performance-driven facial animation」Computer Graphics24,2（１９９０年８月）２３５〜２４２と、Bregler,T.およびNeely,S.による論文「Feature-based image metamorphosis」Computer Graphics（SIGGRAPH′92Proceedings）（１９９２年７月）、E.E.Catmull,Ed,、vol.26、pp.35〜42を参照されたい。Williamsは、現実の人の顔の、単一の静的テクスチャ画像を使用し、２Ｄのみにおいて点を追跡する。Bregler他は、音声認識を使用して、話している人のビデオ中で「visemes」を位置付け、次いで、元のビデオシーケンスに基づいて、合成発話と一致するように顔の口および顎の領域に対して新しいビデオを合成する。音素の視覚類似物、「visemes」は、特定の音素に対応する唇、舌、歯の形および配置からなる。Bregler他は、３次元の顔モデルを作り出さず、顔の残りの部分の表情を変えることもしない。
【０００６】
現実的な顔動画の作成の重要な部分は、正確な３Ｄモデルを取り込むプロセスを含む。しかし、正確な３Ｄモデルを取り込むことは、問題の一部しか解決しない。色、シェーディング、およびシャドウイング（shadowing）の効果も、なお取り込む必要がある。Proesmans他は、人間の顔に適用できる動画化オブジェクト用のワンショット３Ｄ獲得システムを提案している。Proesmans,M.、Van Gool,L.、およびOosterlinck,A．の「One-Shot Active 3d Shape Acquisition」、Proceedings13thIAPR International Conference on Pattern Recognition、August25-26、1996、vol.IIIC、pp.336〜340を参照されたい。彼らの手法は、動くオブジェクト上に一定のパターンを投影するスライドプロジェクタを使用する。パターン付けされた動くオブジェクトを撮ったビデオシーケンスの各画像中で、パターンが検出される。次いで、動くオブジェクトの形が、オブジェクト上のパターンの疑似正射影を呈することによって、検出されたパターンから引き出される。
【０００７】
従来の試みが大きな前進を遂げたものの、表情およびその他の複雑な実世界オブジェクトの複雑な構造、色、シェーディングの現実的かつ効率的なモデルを作り出すために、より効果的な方法が必要とされている。
【０００８】
（発明の概要）
本発明は、複雑な動画化（animated）３Ｄオブジェクトの３Ｄジオメトリックモーションおよびシェーディングを取り込むための方法およびシステムを提供する。この方法は、特に表情を取り込んで表すためのものだが、他の形の動画（animation）に適合させることもできる。
【０００９】
この方法の初期実施態様は、ベース３Ｄモデル、ベースモデルを動かすのに使用される変形ベクトルのセット、および一連のテクスチャマップを含む、人間の表情の現実的な３Ｄモデルを作り出す。この方法は、基準マーカを人間の顔に付けることによって開始する。次に、同時に複数のカメラを通してライブビデオシーケンスが取り込まれる。ベース３Ｄモデルもまた、３Ｄスキャナを使用して取り込まれる。ビデオのフレーム毎のカメラ画像中でそれらを識別し、それらの間の対応を決定することによって、基準マーカの３Ｄポジション（３Ｄ position）が決定される。３Ｄポジションを識別した後、この方法は、フレーム間のマーカの対応を決定することによって、時間経過に伴うマーカの３Ｄモーションを追跡する。
【００１０】
初期実施態様は、ビデオデータからテクスチャを計算することによってシェーディングの正確なモデルを作り出す。３Ｄポジションデータを使用して複数のフレームシーケンスのフレーム毎にテクスチャが計算され、したがって各テクスチャは３Ｄポジションのセットに関連付けられる。得られるモデルは、ベースメッシュを変形する３Ｄ動きデータ（motion data）のセット、および各変形に対応するテクスチャマップを含む。
【００１１】
ジオメトリック動きデータ（geometric motion data）およびテクスチャデータは、より効率的に送信および記憶するために圧縮することができる。初期実施態様は、変形ベクトルの行列を基底ベクトルおよび係数に圧縮することによってジオメトリック動きデータを圧縮する。また、テクスチャをビデオフレームのシーケンスとして扱い、ビデオ符号化を使用して圧縮することによって、テクスチャを圧縮する。
【００１２】
以上に要約したこの方法を使用して、人間の表情を取り込み、例えば４８００ポリゴンしかない複雑性の低い３Ｄポリゴン顔モデルによって再構築することができる。得られる動画は、チューリングテストをパスするのに非常に近いところまでいく。この方法は、様々な実施態様で使用することができる。例えば、この方法を使用して、本当のように思える仮想キャラクタを映画およびテレビジョン用に作り出すことができる。表情を表すのに使用されるプロセスは、ビデオ圧縮の形として使用することができる。例えば、顔の動画をスタジオで取り込み、ＣＤＲＯＭまたはインターネットを介してユーザに送達し、次いで、仮想３Ｄ環境にあるユーザのコンピュータ上でリアルタイムに再構築することができる。ユーザは、顔に対して任意のどんな位置、どんな仮想カメラ視点も選択することができ、結果をどんなサイズでもレンダリングすることができる。
【００１３】
上記の手法を使用して、正確な３Ｄ変形情報と、フレーム間で厳密に合わせられるテクスチャ画像データとを生成することができる。対象（subject）の顔が時間経過につれて動くとき、テクスチャがその正確な３Ｄモデルに関連付けられるため、ジオメトリックモーションによる画像輝度（image intensity）の変化の大部分は除去され、主としてシェーディングおよびセルフシャドウイング効果が残る。これらの効果は、空間周波数が低い傾向があり、非常に効率的に圧縮することができる。このシステムのテストでは、圧縮された動画は、２４０ｋｂｉｔｓ／ｓｅｃのデータ転送率で、テクスチャ画像サイズが５１２×５１２画素であって毎秒３０フレームで更新する場合に現実的に見える。
【００１４】
本発明の他の利点および特徴は、後続の詳細な説明および添付の図面の中で明らかとなるであろう。
【００１５】
（詳細な説明）
序説
後続のセクションで、人間の表情に対する３次元ジオメトリ情報とシェーディング情報の両方を取り込む方法の実施態様を説明する。表情を動画化（animating）する具体的なコンテキストでこの方法を説明するが、同じ概念を、その他の複雑な動画化オブジェクトの現実的なモデルを取り込むのに適用することもできる。
【００１６】
図１は、アクターの顔の表情を取り込む方法の概要を示す流れ図である。以下に参照するすべての図でもそうだが、後続の図１の説明には、図中の対応するフィーチャをラベリングしている参照番号で注を付ける。図１に示すように、第１のステップは、アクターの顔にマーカを付けることである（２０）。次いで、アクターが話し、感情を示すときに、アクターの顔の周りの位置にある複数のカメラが、アクターの顔のビデオシーケンスを同時に記録する（２２）。ビデオの取込みに加え、付けたマーカを用いてアクターの顔のベースメッシュも取り込む（２４）。
【００１７】
この方法は、ベースメッシュ上およびビデオシーケンス中のマーカを使用して、時間経過に伴うベースメッシュの変形を追跡する。具体的には、フレーム毎にカメラビュー中のマーカを識別し（２６）、次いで、カメラビューのマーカ間の対応を計算して、それらの３Ｄポジションを決定する（２８）。次に、フレーム間のマーカの対応を計算する（３０）。このステップ（３０）はまた、ベースメッシュ中のマーカをビデオデータ中のマーカでマッピングすることも含む。フレーム間のマーカの対応を決定することによって、この方法は、時間経過に伴って顔の上の場所がどのように動くかを追跡することができる。次いで、マーカの３Ｄポジションを使用して、現実の顔の歪みをまねて３Ｄモデルを歪めることができる。
【００１８】
カメラからのビデオシーケンスはまた、表情の色およびシェーディングを表すテクスチャマップをフレーム毎に作り出すのにも使用することができる（３２）。テクスチャを作り出すために、画像処理技術を使用してカメラ画像からマーカを除去する。次いで、複数のカメラからのカメラ画像を１フレームにつき単一のテクスチャマップに合体させる。得られたマーカなしテクスチャマップが３Ｄ再構築された顔メッシュに加えられると、表情の、非常に真に迫った３Ｄ動画(animation)が得られる。ビデオストリームから生成された時間変化するテクスチャと３Ｄ顔構造の正確な再生との両方が、得られる動画を本当のように思えるものにするのに貢献する。
【００１９】
伝送帯域幅およびメモリ要件を減少するために、３Ｄジオメトリマップおよびテクスチャマップは圧縮される（３４）。ＭＰＥＧ４ビデオ圧縮などのビデオ圧縮を使用して、テクスチャマップの時間整合性を活用することができる。３Ｄ変形の時間整合性はまた、３Ｄ変形データの行列をその主成分および係数に変換することによって活用することもできる。
【００２０】
図１に示す方法の各ステップを、以下により詳細に説明する。この方法を、我々の初期実施態様を例として使用しながら述べる。この実施態様の動作を示すために、我々がどのようにそれをテストケースに使用してアクターの顔のモデルを作り出したかを述べる。最初のセクションは、データ取込み段階の説明で始まる。次いで、次のセクションで、各カメラビュー中の、かつ時間経過に伴うマーカ間の対応をどのように決定するかを述べる。後続の諸セクションで、メッシュを取り込んで動かすためのプロセス、およびテクスチャマップを作成するためのプロセスを述べる。最後のセクションで、顔モデルのデータ構造および圧縮と、テストケースで得られた結果を述べる。
【００２１】
データ取込み
図１に示す方法は、複数のカメラを使用して、対象（subject）の周りの異なる位置から動画化の対象のビデオシーケンスを取り込む。我々のテストケースの場合、図２に示すパターンに配置した６台のスタジオ品質ビデオカメラを使用してビデオデータを取り込んだ。図２に、アクターの顔のカメラビュー６つを示す。
【００２２】
テストケースでは、６台のカメラはそれぞれ個別に較正されて、その内因性および外因性パラメータが決定され、レンズの歪が補正された。較正プロセスに関する追加情報については、Faugeras,O.のThree-dimentional computer vision、MIT Press,Cambridge,MA、1993を参照されたい。
【００２３】
テストケースで使用したマーカは、異なる６つの色をした１／８インチ（約３．１８ｍｍ）の円の蛍光着色紙（ドットと呼ぶ）であった。我々は、１８２個のドットをアクターの顔の上に貼り付け、同じ色のドットがなるべく相互に離れるようにそれらを配置した。これにより、フレーム間のドットの対応を決定する作業がより容易になった。
【００２４】
アクターは、可視光線とＵＶに近い光線の組合せによって照明された。ドットに蛍光顔料が塗られていたため、ＵＶ照明は、ドットの明るさを著しく増大させ、色空間においてそれらが通常そうなるよりもずっと遠くにそれらを顔の色から引き離した。これにより、それらを確実に追跡することがより容易になった。
【００２５】
ビデオ撮影の前に、アクターの顔は、３Ｄオブジェクトの３Ｄモデルを生成するために３Ｄグラフィックスで使用される従来システムであるサイバーウェア（Cyberware）スキャナを使用してディジタル化された。このスキャンを使用してベース３Ｄ顔メッシュが作り出され、次いでこれは、追跡されたドットの位置を使用して歪められた。この特定のケースでは、３Ｄモデルは、頂点の配列を含む多角形メッシュであり、各頂点は、３Ｄ座標空間中の座標で指定された。ベースメッシュの取込みの詳細は本発明にとってクリティカルではなく、周知の技術を使用して実施できるため、最初のベースメッシュを取り込むためのプロセスの詳細をさらに述べる必要はない。
【００２６】
我々はテストケースで蛍光紙ドットを使用したが、異なるタイプおよび色の様々なマーカを使用することができる。ある代替タイプのマーカは、逆反射ガラスビーズである。マーカは、モデリングされるオブジェクト上の色から容易に識別可能なように選択すべきであることが好ましい。
【００２７】
マーカのラベリング
この方法は、マーカを使用して、モデリングされる３Ｄオブジェクトのベースメッシュを曲げるための制御ポイントの役割をする３Ｄポイントのセットを生成する。また、それらを使用して、各カメラビューから生成されたテクスチャに対する安定したマッピングを確立する。これには、各マーカが一貫したメッシュ頂点のセットに関連付けられるように、それらが時間経過に伴って固有かつ一貫したラベリングを有することが必要である。
【００２８】
マーカをラベリングするプロセスは、まず、マーカに対応する画素の結合成分（connected component）を（カメラビュー毎に）突き止めることによって開始する。各マーカに対する２Ｄポジション（２Ｄ positions）は、これらの結合成分の２次元図心を検出することによって計算される。次いでラベリングプロセスは、異なるカメラビュー中の２Ｄドット間の対応を計算することによって進行する。次いで、各カメラビュー中の２Ｄポジションを使用して、ドットの潜在的な３Ｄロケーション（３Ｄ locations）を三角測量によって再構築する。時間経過に伴うマーカの動きを追跡するために、最初のベースメッシュ中のドットロケーション（dot location）に基づくドットの基準セットで始め、この基準セットを各フレーム中の３Ｄロケーションとペアにする。これは、ビデオシーケンス全体にわたって維持される、ドットに対する固有のラベリングをもたらす。
【００２９】
カメラビュー中におけるマーカの２Ｄポジションの識別
カメラビュー毎に、各マーカの２Ｄ座標が計算される。マーカは通常、画像中の結合画素のグループとして表されるため、この実施態様は、カメラ画像中のその２Ｄポジションとしてマーカの図心を使用する。図３に、ビデオシーケンスの画像中でマーカの図心を計算する方法の概要を示す。図示のように、この方法は次のステップを含む。すなわち、１）色の分類（４０）、２）結合色成分の生成（４２）、および３）図心の計算（４４）である。我々のこれら各ステップの初期実施態様を以下に詳述する。
【００３０】
まず、各画素が、６色のドット色のうちの１色または背景に属するように分類される。次いで、深さ優先サーチ（depth first search）を使用して、似た色の画素の結合斑点（concted blobs）が突き止められる。色付き結合斑点はそれぞれ１画素増やされて、図心計算に含めるべき画素をマークするのに使用されるマスクが作り出される。
【００３１】
マーカ色毎の色クラス画像が、ビデオシーケンスのフレームをとり、その色に属する画素をマークすることによって、手作業で作り出される。マークされないすべての画素は、ＲＧＢ色（０，０，０）に設定される。純粋な黒など、どのカメラ画像中にも決して表れない色は、クラス外の色レベルとして使用されるべきであることが好ましい。色クラス画像中のマークされたすべての画素は、それらのＲＧＢ色を保持する。これらの色クラス画像は、多くの画像編集プログラム中で利用可能な「マジックワンド（magic wand）」を使用して容易に生成される。
【００３２】
色クラス画像は、前にいずれかのマーカ色クラス画像中でマーカとしてマークされた画像中の画素をクラス外とラベリングすることによって、背景色（例えば肌や髪）に対しては自動的に作り出される。これは、前にマーカが突き止められたところに黒い穴のある顔の画像を生み出す。黄色いドットに対する典型的な色クラス画像の一例を、図４および５に示す。図４は、アクターの顔の画像を示し、図５は、図４中の画像から選択された黄色いドットに対する色クラス画像を示す。
【００３３】
色クラス画像を使用して、色クラスＣiが生成される。色クラスＣiに対する色クラス画像がｎ個の異なる色ｃ1．．．ｃnを有すると仮定する。これらの異なる色はそれぞれ、色クラスＣiに追加される。すべての色に対する色クラスが構築された後で、それらを使用して、Schurmann,J.のPattern Classification:A Unified View of Statistical and Neural Approaches、John Wiley and Sons,Inc.、New York、1996に記載のように最近隣分級機（nearest neighbor classifier）を利用して新しい色データが分類される。
【００３４】
最近隣分級機中で、色ｐに対するクラスラベルは、各色クラスＣｉ中のすべての色にわたってサーチし、ＲＧＢ空間でｐに最も近い色を検出することによって計算される。色ｐには、最も近い色を含む色クラスのラベルが与えられる。訓練セットデータおよび分類すべき色が我々のデータセットの場合のように量子化され制限されている場合は、色には３次元Ｒ、Ｇ、Ｂしかないために、非常に効率的かつ単純な分級機が容易に構築される。我々の実施態様は、一様な量子化を採用し、０．．．２５５の制限を色に設けた。
【００３５】
各ＲＧＢ色ベクトルｃiは、量子化ベクトルｃ＾iにマッピングする。要素ｃ＾i［１］、ｃ＾i［２］、ｃ＾i［３］が、３次元配列Ｍ中への指標として使用される。Ｍの３つの指標は、ＲＧＢ色空間中のＲ軸、Ｇ軸、Ｂ軸に対応し、Ｍ中のあらゆる要素は、ＲＧＢ色立方体中の立方体格子上の点に対応する。訓練セットデータを使用して、色クラスラベルがＭの要素中に入れられる。
【００３６】
【数１】
0004335449.tif 000002
【００３７】
上式で、関数colorClassは、色が２つ以上の色クラス中にあるときを除き、色ｃ＾iの色クラスを返す。この場合では、colorClassは背景色の色クラスを返す。
【００３８】
Ｍ中に残った、色クラスラベルを受け取っていないあらゆる要素には、ラベルを有する最も近い要素のラベルが与えられる。最も近い要素は、Ｍ中の２つの配列要素に対応するＲＧＢ空間中の２つのポイント間のユークリッド距離を求めることによって決定される。Ｍが構築された後は、新しい色ｐの分類は、非常に速く単純である。まず、カラークラシファイアメソッド（color classifier method）は、ｐのＲ、Ｇ、Ｂの値を量子化する。量子化された値は、今やあらゆる要素中に色レベルを有する配列Ｍ中への指標として使用される。指標を付けられた要素は、色ｐに対する色ラベルを含む。初期実施態様では、配列Ｍは３２×３２×３２要素立方体であり、立方体の３本の軸は、赤、緑、青の色値にそれぞれ対応する。他の形の色空間構造および色フォーマットも同様に使用することができる。
【００３９】
このクラシファイアメソッドは非常に頑強である。色クラス訓練データは、ビデオシーケンス中の単一フレームから作り出すことができる。例えば我々のテストケースでは、データセット用の色訓練データを３３３０フレームシーケンスの単一フレームから作り出した。色分級機は、ビデオシーケンス全体にわたってドット色を確実にラベリングした。ある主要な例外を除き、偽陽性（false positives）のものは非常に希であり、ほぼ常に、孤立した画素または２つの画素のかたまりである。ほとんどの例外は、歯および口の上のハイライトが、白いマーカの訓練セットの色と一致するために起こる。幸いにも、白いマーカの間違ったラベリングは一貫した３Ｄロケーションで起こり、３Ｄドット処理段階で容易に除去される。マーカ色は、モデリングする対象上の色とコンフリクトするのを避けるように選択すべきであることが好ましい。
【００４０】
色分級機は、時間経過につれてマーカ色がかなり劇的に変化しても間違った分類が生じないように、うまく一般化する。これは、異なるカメラから見た同じドット、または同じカメラを通して見た異なるフレーム中の同じドットの間の違いが相当なものになる可能性があるために重要である。この問題を例示するために、図６に、異なる３つのカメラから見た２つのドット、緑のドットおよび紫のドットを示す。図６には、紫のドットのバージョンは２つしか示していない。というのは、このドットは第３のカメラのビューでは見えなくされるからである。図７に、単一のカメラから見た単一の、ただし２つの異なるフレーム中にある緑のドットを示す。色分級機は、図７中のドットを両方のフレーム中で正しく緑として分類するだけの十分な頑強性を有する。
【００４１】
結合色成分を検出する具体的な方法は、ビデオがインターレースされるかどうかによって異なる可能性がある。初期実施態様は、時間的に間隔の空いたインターレースドフィールドのペアの中で色成分を検出するようにされている。インターレースドビデオでは、特に唇および顎のまわりに、重要なフィールド間の動きがある。動きは時々、あるフィールド中のマーカの画素と次のフィールド中の同じマーカの画素との間に空間的な重なりがまったくないほど大きいことがある。２つのフィールドが単一のフレームとして扱われる場合、単一のマーカはばらばらにされ、時として多くの部分に分割される可能性がある。
【００４２】
ある手法は、各フィールド中で結合色成分を検出し、それらを使用して２Ｄドットロケーションを計算することである。残念ながらこれは、マーカがしばしば変形し、部分的に見えなくされることもあるために、うまく機能しない。したがって、画素のグループをマーカとして分類するのに必要とされる画素数に対するしきい値を非常に低く設定しなければならない。インターレースドビデオに向けた我々の実施態様では、４つ以上の画素を有する結合成分は、ノイズではなくマーカとして分類される。単一フィールド中の結合画素がカウントされるだけであれば、しきい値は１画素に下げなければならないことになる。これは、誤った色分類が２画素の大きさのかたまりで起こる可能性があるため、誤ったマーカ分類を生じることになる。
【００４３】
代わりに、インターレースドビデオに向けた我々の実施態様は、結合成分を検出し、潜在的な２Ｄドットのリストを各フィールド中に生成する。次いで、フィールド１にある潜在的な２Ｄドットのそれぞれは、フィールド２にある最も近い潜在的な２Ｄドットとペアにされる。同じ色のマーカの間隔が広く空いており、フィールド間の動きがあまり大きくないために、最も近い潜在的な２Ｄドットは、正しいマッチであるとほぼ保証される。２つの潜在的な２Ｄドット内の画素の合計が４つ以上である場合は、２つの潜在的な２Ｄドットの結合成分は合体され、得られた結合成分が２Ｄドットとしてマークされる。
【００４４】
結合色成分を検出するプロセスは、ノンインターレースドビデオを生成するカメラを使用することによって簡略化することができる。この場合、各カメラビューに対して１フレームにつき単一の画像しかない。したがって、時間的に間隔の空いた２つのフィールドのサーチに関連する問題は除去される。具体的には、異なるフィールドからの潜在的なドットのペアを探す必要がないため、結合画素のサーチは簡略化される。結合画素のサーチは、より高いしきい値を使用して行うことができ、例えば４つ以上の結合画素がドットとして認められる。
【００４５】
結合成分の識別後、マーカロケーション（marker location）の識別における次のステップは、前のステップで２Ｄドットとしてマークした結合成分の図心を検出することである。我々の初期実施態様は、ガウス形１次元一次導関数をｘ方向およびｙ方向に沿って進み、次いでこの２つの値の大きさを各画素でとることによって、２次元勾配規模の画像を計算する。色付き斑点の図心は、勾配マスク内部にある画素（ｘ，ｙ）座標の位置の加重合計をとることによって計算され、重みは勾配規模と等しい。
【００４６】
２Ｄマーカ間の対応の検出および３Ｄ再構築
マーカの２Ｄポジションが各カメラビューからの画像中で識別された後で、画素マッチング法を使用して、フレーム毎にマーカ間の対応を検出することができる。マーカ間の対応、およびアクターに対して相関的なカメラの場所が分かれば、３Ｄ再構築方法は、マーカに対する可能な３Ｄロケーションを計算することが可能である。
【００４７】
初期実施態様では、顔の正面と側面の両方のよい画像を取り込むために、カメラは広く間隔を空けられた。６台のカメラの位置は、異なるカメラビュー間からみて極度に変化があるような位置であった。したがって、色付きマーカの投影画像は、図６に示すように大きく異なった。この図は、カメラビュー間におけるマーカの形および色の変化のいくつかの例を示している。
【００４８】
カメラビュー中のマーカ間の対応を確立することは、様々なマッチング技術のいずれによっても達成することができる。しかし、オプティカルフローやテンプレートマッチングなどのマッチング技術は、間違ったマッチを生成する傾向がある。さらに、ほとんどのカメラビューにはマーカの断片しか見えず、したがって対応は、いくつかのカメラビュー中でマーカが見えなくされるのに対処するだけの十分な頑強性を有する必要がある。３Ｄモーションの正確なモデルを決定するためには、人間の顔などの複雑なオブジェクトの表面にかなりの数のマーカが必要である。しかし、マーカが多くなるほど誤ったマッチも起こりやすくなり、それらは検出して除去すべきである。
【００４９】
我々の初期実施態様は、Fischler,M.A.およびBooles,R.C.の「Random sample consensus:A paradigm for model fitting with applications to imageanalysis and automated carography」、Communications of the ACM24,6（１９８１年８月）、３８１〜３９５に記載のアルゴリズムと組み合わせた光線追跡を使用して、マーカの対応を確立し、正確な３Ｄドットポジションを計算する。このアルゴリズムは、見えなくされたマーカおよび誤ったマッチに対処するのに十分な頑強性を有する。
【００５０】
図８は、マーカの３Ｄポジションを計算する方法の具体的な実施態様を示す流れ図である。まず、上に言及した３Ｄ再構築方法を使用して、カメラ間の潜在的なポイント対応のすべてが生成される（６０）。ｋ個のカメラがあり、ｎ個の２Ｄドットが各カメラビュー中にある場合、以下の数の対応がテストされることになる。
【００５１】
【数２】
0004335449.tif 000003
【００５２】
各対応は、２つのカメラビュー中の２Ｄドットから放たれた光線の最も近い交差ポイントとして定義される３Ｄ候補ポイントを生み出す。
【００５３】
次に、３Ｄ候補ポイントは、その生成に使用された２つのカメラビューのそれぞれに投影される（６２）。投影が、ユーザによって定義されたしきい値距離（我々のケースでは２画素）よりもいずれかの２Ｄポイントの図心から離れている場合は（６４）、そのポイントは、潜在的３Ｄポイント候補から切り捨てられる（６６）。残ったすべての３Ｄ候補ポイントが、３Ｄポイントリストに加えられる（６８）。
【００５４】
３Ｄポイントリスト中の各ポイントが、基準カメラビュー中に投影される（７０）。基準カメラビューは、顔の上にあるすべてのマーカの最良のビューを有するカメラのビューである。投影されたポイントが基準カメラビュー中で見える２Ｄドットの図心から所定の距離（例えば２画素）内にある場合（７２）、それは、その２Ｄドットに対する潜在的３Ｄ候補位置のリストに追加される（７４）。このリストは、所与の２Ｄドットに対する潜在的３Ｄマッチのリストである。基準カメラビュー中のマーカの２Ｄポジションから所定の距離内にない他の候補位置は、切り捨てられる（７６）。
【００５５】
潜在的３Ｄマッチリスト中の３Ｄポイント毎に、３Ｄポイントリスト中の３つのポイントの可能な各組合せが計算され（７８）、最小の相違を有する組合せが選択される（８０）。最低の相違を有する３つのポイントの平均場所が、３Ｄポイントの一時的な場所として設定される（８２）。次いで、ユーザによって定義される距離内にあるすべての３Ｄポイントが識別され（８４）、平均されて最終的な３Ｄドットポジションが生成される（８６）。我々のケースでは、ユーザによって定義される距離は、一時的な３Ｄポイントの距離で円錐形に延びた半径２画素の円として定義した。この３Ｄドットポジションが、基準カメラビュー中の対応する２Ｄドットに割り当てられる（８８）。
【００５６】
図８に示した手法に対して、いくつかの最適化が可能である。より効率的となるように、この方法は、エピポーラライン（epipolar lines）だけに沿って潜在的なカメラ間の対応をサーチし、知られている多くの様々な空間細分技術のいずれかを使用して、所与の２Ｄポイントをテストするための３Ｄ候補ポイントを検出するように適合させることができる。しかし、我々のテストケースでは、色セットそれぞれにおけるマーカの数が少なかった（４０よりも多いことはなかった）ため、２Ｄドット対応ステップも３Ｄポジション再構築も両方とも、適度に速かった。初期実施態様は、１秒に満たない時間をかけて、２Ｄドット対応および３Ｄポジションを６つのカメラビューに対して生成した。これらの結果は、Intel Corp.から発売の２００ＭＨｚのPentium Proマイクロプロセッサを備えるコンピュータ上で生み出された。
【００５７】
我々のテストケースの場合、２Ｄドット対応の計算は、６つのカメラビューの画像中で読み取り、かつ各ビュー中で２Ｄドットを突き止めるのにかかった時間に支配された。したがって、様々なステレオマッチング法を使用することができるが、より効率的なステレオマッチングアルゴリズムの追加の複雑性は、この特定の用途に対して正当化されないと思われる。
【００５８】
フレーム間のマーカの対応
我々の方法の３Ｄ取込み段階におけるこの時点で、ラベリングされない３Ｄドットロケーションのセットがフレーム毎にある。次の段階は、シーケンス全体にわたって３Ｄドットロケーションに一貫したラベルを割り当てる。これは、ドットの基準セットＤを定義して、このセットを各フレームに与えられた３Ｄドットロケーションにマッチさせることによって達成される。時間経過に伴う基準ドットの動き（motion）は、次のように記述することができる。ｄj∈Ｄを基準ドットｊに対するニュートラルロケーション（neutral lacaton）とする。フレームｉにあるｄjの位置をオフセットベクトルｖijによって定義する。すなわち以下の通りである。
【００５９】
【数３】
0004335449.tif 000004
【００６０】
短いビデオシーケンスであっても、１フレームにつき何千ものフレームおよび１００個を超える基準マーカを必要とする可能性がある事実からみて、対応の計算は、非常に効率的であるべきであることが好ましい。マッチングを簡略化するために、我々のテストケースでは、ラベリングされない３Ｄドットの小さなサブセットだけを最良のマッチのためにチェックすればよいように、所与の色のマーカをなるべく大きく引き離すマーカパターンを使用した。残念ながら、単純な最近隣マッチングは、いくつかの理由でうまく機能しない。すなわち、いくつかのマーカが時々いくつかのカメラビューから消える、いくつかの３Ｄドットが同じ色の３Ｄドット間の平均距離よりも多く動くことがある、目および歯の中のハイライトによって生じた異質の３Ｄドットが時々現れるといった理由である。幸いにも、近隣マーカは同様に動き、この事実は、最近隣マッチングアルゴリズムを一層効率的かつ頑強になるように修正することによって活用することができる。
【００６１】
図９は、初期実施態様で使用されるフレーム間対応方法の概要を示す流れ図である。この方法は、各フレームｉに対し、基準ドットを直前のフレーム中で検出された場所に動かすことによって開始する（１００）。次に、基準ドットとフレームｉに対する３Ｄドットロケーションとの間のマッチ（おそらく不完全）を検出する（１０２）。次いで、マッチされた基準ドットをそれに対応する３Ｄドットの場所に動かす（１０４）。基準ドットがマッチを有しない場合は、それをその近隣物と同じ方向に動かすことによって、それに対する新しい場所を「推測」する（１０６、１０８）。マッチされないドットを動かすためのステップは、マッチしないドットがすべて動かされるまで繰り返される（ステップ１０６、１０８、１１０参照）。
【００６２】
ドットの基準セットの獲得
前述のように、モデリングする対象の表面に付けられたマーカ（「ドット」）によって、３Ｄメッシュが得られる。ドットはスキャンのジオメトリックおよびカラー情報の両方において可視であるため、ユーザは、基準ドットを手で配置することができる。我々のテストケースでは、ベースメッシュのスキャン用の座標系は、３Ｄドット用に使用したものとは違っていたが、剛体運動および等分目盛が違うだけであった。座標系の違いは、ある座標系中のポイントを別の座標系にマッピングするための変換を計算することによって対処し、これをすべてのフレームに使用した。我々のテストケースの場合の変換を計算するために、我々はまず、対象がニュートラルの顔をしているフレームをとった。我々は、スキャンから得られた基準ドットにフレームからの３Ｄドットを手で整列させた。手で整列させた位置は、以下に述べるマッチングルーチン用の最初の開始位置の働きをした。マッチングルーチンを使用して、３Ｄドットロケーションｆiと基準ドットｄiの間の対応が検出された。我々は、Horn,B.K.P.の「Closed-form solution of absolute orientation using unit quaternions」、Journal of the Optical Society of America4,4（１９８７年４月）に記載の方法を使用して、ドットの２セット間の変換Ｔを出した。基準ドットの一時的な場所は、以下の式で表される新しい場所で置き換えられた。
【００６３】
ｄi＝Ｔｆi
マッチングルーチン
フレームのシーケンスにわたって３Ｄドットをマッチさせるために、我々の初期実施態様は、フレーム毎に、控えめなマッチを行い、次いで第２のより控えめでないマッチを行う。控えめなマッチの後、基準ドットを（次のセクションで述べるように）控えめなマッチで検出された場所に動かし、第２のより控えめでないマッチを行う。マッチの間で基準ドットを動かすことによって、このフレーム間対応方法は、３Ｄドットポジションが大きくずれる問題を減少する。
【００６４】
初期実施態様で使用するマッチングルーチンは、グラフ問題として考えることができ、この中で、基準ドットとフレームドットの間のエッジは、これらのドットが潜在的に対であることを示す。マッチングルーチンの動作を例証するために、図１０Ａ〜Ｃに、４つの基準ドット（０、１、２、３とラベリングされている）および近隣の３Ｄドット（ａ、ｂ、ｃ、ｄとラベリングされている）の例を示し、図１１に、ルーチン中の諸ステップを示す。図１０Ａには、基準ドットと３Ｄドットの相対的な間隔の例を、単純化した２Ｄの観点で示す。次の図、図１０Ｂには、マッチングルーチンによって計算されたグラフの例を示す。基準ドットと３Ｄドットの潜在的な組合せを、グラフ中のエッジとして示してある。最後に、図１０Ｃに、マッチされたグラフ中のドットがどのようにソートされてペアにされるかを示す。
【００６５】
マッチングルーチンは、次のように進行する。まず、基準ドット毎に（１２０）、所与の距離、エプシロン内のあらゆる３Ｄドットを次のフレーム中でサーチする（１２２）。グラフを構築するために、距離エプシロン内にある同じ色のあらゆる３Ｄドットに向けてエッジを加える（１２４）（例えば図１０Ｂ参照）。次いで、等しい数の３Ｄドットおよび基準ドットを有する結合成分をグラフ中でサーチする（大部分の結合成分は、各タイプに１ドットずつ、ちょうど２ドットを有することになる）（１２６）。これによりマッチングルーチンは、さらに処理を必要とするグラフ中の曖昧なマッチを識別することができる。次に、顔の平面の垂直次元でドットをソートし（１２８）、得られた順序付けを使用して基準ドットを３Ｄドットロケーションとペアにする（１３０）。図１０Ｃでは、基準ドットおよび３Ｄドットは垂直次元でソートされており、これにより、曖昧な潜在的組合せを、各基準ドットと各３Ｄドットの間の単一の組合せに変換することができることに留意されたい。
【００６６】
我々が取り込んだビデオシーケンス中では、フレーム間の３Ｄドットポジションは、０から、最も近いドットを引き離す平均距離の約１．５倍までの差があった。これを調節するために、マッチングルーチンをいくつかの値のエプシロンで実行して、最多マッチを生成した実行を選び取った。エプシロンの異なる選択は、図１２に示すように異なる結果を生む。図１２Ａには、大きいエプシロンおよび小さいエプシロンの場合のマッチングルーチンの結果の例を示す。エプシロンが小さすぎると、マッチングルーチンは、図１２Ａの右側に示すように、あるフレームから次のフレームまで大きく動いた３Ｄドットに対してマッチを検出しない可能性がある（ドットにエッジがなければ、それは別のドットとマッチされていない）。反対にエプシロンが大きすぎると、図１２Ａの左側に示すように、グラフ中の結合成分は伸張して、多すぎる３Ｄドットを含めることになる。図１２Ｂに、足りない３Ｄドットがあるケースを、大きいエプシロン値および小さいエプシロン値で示す。マッチングルーチンは、大きい方のエプシロンを使用すると、１つの３Ｄドットに２つ以上の基準ドットを割り当て、小さい方のエプシロンを使用すると、基準ドットをマッチされないままにする。図１２Ｃに、余分な３Ｄドットがあるケースを、大きいエプシロン値および小さいエプシロン値で示す。ここでマッチングルーチンは、大きい方のエプシロンを使用すると、基準ドットに対して２つ以上のマッチング３Ｄドットを検出し、小さい方のエプシロンを使用すると、３Ｄドットをマッチされないままにする。
【００６７】
我々のテストケースの場合、我々は、最も近い基準ドット間の平均距離の０．８から１．８までに及ぶおよそ５つの距離をエプシロンに試した。
【００６８】
フレームに対する第２のより控えめでないマッチでは、我々の実施態様は、追加ステップを行って、ドットが失われている（または余分である）可能性がある場合にマッチを突き止める。具体的には、マッチされていないドットに対してマッチングルーチンを呼び出し、毎回エプシロン値をどんどん小さくする。これは、図１２Ｃに示すような状況を解決する。
【００６９】
ドットの移動
フレーム間対応方法は、基準ドットをそれらがマッチする３Ｄドットの場所に動かし、残りのマッチされない基準ドットに対する場所を、それらに最も近いマッチされた近隣物を使用して補間する。図１３は、初期実施態様でドットを動かすのに使用される方法を示す流れ図である。この方法は、マッチされた基準ドットをマッチする３Ｄドットロケーションに動かすことによって開始する（１５０）。
【００７０】
マッチされない基準ドット毎に（１５２）、この実施態様は、以下に述べる「メッシュの移動」という名称のルーチンを使用して近隣物の有効セットを定義し、ルーチンによって返される混合値は無視する（１５４）。
【００７１】
近隣物が決定された後で、実施態様は進行して、マッチされない基準ドット毎に変形ベクトル（オフセット）を計算する（１５６）。マッチされないドットｄkに対するこのベクトルを計算するために、その有効なすべての近隣物のオフセットの組合せを使用する。ｎk⊂Ｄを、ドットｄkに対する近隣ドットのセットとする。ｎ＾kを、現在フレームｉに対するマッチを有する近隣物のセットとする。
【００７２】
【数４】
0004335449.tif 000005
【００７３】
とすれば、ドットｄikに対するオフセットベクトルは、次のように計算される。ｖij＝ｄij−ｄjを、ドットｊのオフセットとする（ｄjは基準ドットｊに対する最初の位置であることを想起されたい）。オフセットベクトルを比較するのに使用される式は、
【００７４】
【数５】
0004335449.tif 000006
【００７５】
と表される。
【００７６】
この実施態様は、近隣物がそれらに関連するオフセットを必ず有することをチェックする（１５８）。マッチされたドットのオフセットは、ドットのｘおよびｙの、当該のフレーム中の対応するドットとの変位を規定するベクトルである。現在ドットが少なくとも１つのマッチされた近隣物を有する場合、実施態様は、その変形ベクトルを、前述のように近隣物のオフセットに基づいて計算する（１６０）。マッチされる近隣物がない場合は、ルーチンは必要に応じて、動かされたマッチされない基準ドットをマッチされたドットとして扱うことを繰り返す。ルーチンの反復性を、次のマッチされない基準ドットの処理を開始するためのステップ１５６へのループバック（１６２）によって図１３に示す。最終的に、すべての基準ドットにわたって移動が広がることになる。
【００７７】
メッシュの構築および変形
我々のテストケース用のメッシュを構築するために、我々は、アクターの頭のサイバーウェアスキャンで開始した。３Ｄメッシュを３Ｄビデオドットデータに整列させるために、アクターの顔は、それに付けられたマーカでスキャンされた。得られたスキャンは、４つの問題を被っていた。
【００７８】
・マーカがメッシュ上に「バンプ」を引き起こした。
・メッシュのいくつかの部分が適切にスキャンされなかった。すなわち、耳、鼻の片側、目、顎の下であった。これらは、手作業で補正された。
・メッシュには口にあたる開口部がなかった。
・スキャンにはポリゴンが多すぎた。
【００７９】
我々は、所定の位置にない頂点（１ドットにつき約１０〜３０個）を選択し、正しい４つの近隣物間で混合することでそれらに対する新しい場所を検出することによって、マーカによって引き起こされたバンプを除去した。スキャンが頂点の矩形グリッドを生じたため、近隣物、すなわち正および負のｕおよびｖ方向で最も近い有効な近隣物を選び取って（ｕ，ｖ）空間中で混合した。口にあるポリゴンは、分割され、次いで唇のやや後ろに位置する６列のポリゴンで埋められた。我々は、口が開いたときに、これらのポリゴン上に歯および舌をマッピングした。
【００８０】
我々は、Hoppeのメッシュ簡略化方法を使用して、メッシュ中のポリゴンの数を約４６００００から４８００に削減した。Hoppe,H.の「Progressive meshes」、SIGGRAPH96Conference Proceedings（１９９６年８月）、H.Rushmeier,ed.、Annal Conference series、ACM SIGGRAPH、Addison Wesley、pp.99〜108、ルイジアナ州New Orleansにて開催、１９９６年８月０４〜０９を参照されたい。
【００８１】
メッシュの移動
オブジェクトの動きをシミュレートするために、我々の初期実施態様は、近隣の３Ｄマーカのオフセットに基づいて計算された変形ベクトルによって、オブジェクトの３Ｄモデル中の各頂点を動かす。具体的には、ルーチンが、最も近いドットのオフセットの一次結合として各変形ベクトルを計算する。このルーチンでは、各頂点ｖjに対する一次結合は、ドットにつき１つずつの混合係数のセットｄjkとして表され、したがって、
【００８２】
【数６】
0004335449.tif 000007
【００８３】
フレームｉ中の頂点ｖjの新しい場所ｐijは、この場合、ｐij＝ｐj＋Σｄjk‖ｄik−ｄk‖であり、ｐjは頂点ｖjの最初の場所である。
【００８４】
ほとんどの頂点に対し、αjkは、最も近いドットの加重平均である。しかし、共に動かすことが分かっているモデルのサブパートに対しては例外とすべきである。人間の顔を動画化する際は、目、口、口の後ろ、および顔エリア外にある頂点は、やや異なる扱いをすべきである。というのは例えば、下唇にあるドットの移動は、唇の上部にある頂点に影響すべきではないからである。また、近隣のマーカの影響を直接受けない頂点（例えば後頭部にある頂点）について残余の剛体運動を補償することも必要である。
【００８５】
図１６は、初期実施態様で使用される、頂点に混合係数を割り当てる方法を示す流れ図である。最初にこの方法は、グリッドポイントと呼ばれる、顔の表面上のポイントの均等な分散を検出する（１８０）。次いで、顔じゅうに均等に分散されたグリッドポイントに対する混合係数を出し（１８２）、グリッドポイントを使用して混合係数を頂点に割り当てる（１８４）。いくつかのケースでは、グリッドポイントを使用する中間ステップなしに３Ｄモデル中の要素に混合係数を割り当てることも可能である。しかし、我々のテストケースの場合、マーカとメッシュ頂点の両方が顔じゅうに不均等に分散され、スムーズに変化する混合係数を得るのを困難にしていたため、グリッドポイントは有用である。次のセクションで、メッシュを動かすこの方法の態様をより詳細に述べる。
【００８６】
我々のテストケースでは、グリッドは、およそ１４００ポイントからなり、均等に分散され、顔の外形に沿って配置された。図１４に、赤いグリッドポイントを示す。この特定の例では、鼻唇のすじ（緑）、鼻孔（緑）、目（緑）、および唇（青）に沿ったポイントは、唇などのフィーチャにわたる混合を避けるために、他のポイントとはやや異なる扱いをした。
【００８７】
顔の外へのメッシュの動きがゼロとなるようにしたかったため、我々のテストケースでは、動かないドットのセットをさらに基準セットに追加した。これらの新しいドットは、顔の周りですべての基準ドットを囲むリングを形成した。図１５に、元のドットおよび白い追加のドットのリングの例を示す。フレーム毎に、これらの追加の基準ドットを利用して、比較的安定性のあるこれらの基準ドットのサブセットを使用する頭の剛体運動（もしあれば）を決定することができる。次いで、この剛体変換を新しいドットに適用することができる。
【００８８】
図１４に示す例では、我々は、ドット、グリッドポイント、および頂点を、目および口のそれぞれからみて上（above）、下（below）、およびどちらでもない（neither）とラベリングした。独立した動きをする傾向があるフィーチャおよび顔領域を区別するために、所与のフィーチャの上（above）にあるドットをその同じフィーチャの下（below）にあるドットと結合することができない（またはその逆）という制約を設けた。我々は、目のそれぞれに１本ずつと口に１本の、３本の曲線を使用してドットをラベリングした。曲線のちょうど上（または下）にあるドットは、その曲線の上または下とラベリングした。そうでない場合は、それらをどちらでもないとラベリングした。
【００８９】
グリッドポイントへの混合の割当て
図１６中の図に、初期実施態様で混合値をグリッドポイントに割り当てるのに使用されるルーチンの諸ステップを示す。このルーチンは、各グリッドポイントに最も近い基準マーカを検出し（１９０）、これらの基準マーカに混合値を割り当て（１９２）、次いで、ローパスフィルタを使用して混合係数をフィルタリングして、混合係数をより均等にグリッドポイント間に分散させる（１９４）。
【００９０】
理想的な基準ドットのセットを検出してグリッドポイントに影響を及ぼすことは、基準ドットが図１５に示す例におけるように顔じゅうに均等に分散されていない場合には複雑である可能性がある。我々の実施態様におけるルーチンは、所与のグリッドポイントの周りの大まかな円の中に分布した２つ以上のドットを検出することを試みる。こうするために、最も近い２つのドットを使用してサーチ距離を設定し、同じ方向に「引っ張る」ことになるドットがあるかチェックすることよって、ドット密度を補償する。
【００９１】
グリッドポイントｐに最も近いドットを検出するために、ルーチンは、まずδ1およびδ2を検出するが、これらはそれぞれ、最も近いドットおよび２番目に近いドットへの距離である。次いで、これらの距離を使用して、さらに分析するためにドットの最初のセットＤnを検出する。Ｄn⊂Ｄを、グリッドポイントｐのラベルと矛盾しないラベルを有する、
【００９２】
【数７】
0004335449.tif 000008
【００９３】
にあるドットのセットとする。次に、ｐからほぼ同じ方向にあるドットのペアがあるかチェックし、最も遠いドットを除去する。より正確には、このルーチンでは以下の手法を採用する。
【００９４】
ｖ＾iを、ｐからドットｄi∈Ｄnへの正規化ベクトルとし、ｖ＾jを、ｐからドットｄj⊂Ｄnへの正規化ベクトルとする。ｖ＾・ｖ＾＞０．８である場合、ｄiおよびｄjのうち最も遠いものをセットＤnから除去する。
【００９５】
ルーチンは、グリッドポイントｐからのマーカの距離に基づいて、基準マーカに混合値を割り当てる。ドットがＤn中にない場合は、それに対応する∝値は０である。Ｄn中のドットに対し、
【００９６】
【数８】
0004335449.tif 000009
【００９７】
とする。この場合、対応する∝は
【００９８】
【数９】
0004335449.tif 000010
【００９９】
である。
【０１００】
次に、グリッドポイントに対する混合係数をフィルタリングする。グリッドポイント毎に、前述のルーチン（ドットをグリッドポイントで置き換える）を使用して、最も近いグリッドポイントを検出する。輪郭を描くグリッドポイントは、特殊なケースとして扱われる。これらは、輪郭を描く他のグリッドポイントとしか混合されない。新しい混合係数は、グリッドポイントの混合係数を０．７５で重み付けし、近隣グリッドポイントの混合係数を０．２５で重み付けすることによって出される。より正式には、ｇi＝［α0，．．．，αn］を、グリッドポイントｉに対する混合係数のベクトルとする。この場合、新しいベクトルｇi′は以下のように出され、Ｎiはグリッドポイントｉに対する近隣グリッドポイントのセットとする。
【０１０１】
【数１０】
0004335449.tif 000011
【０１０２】
ルーチンは、このフィルタを２回適用して、ワイドローパスフィルタをシミュレートする。
【０１０３】
頂点への混合の割当て
図１６に示すように、混合係数をグリッドポイントから頂点に割り当てるプロセスは、次のステップを含む。１）頂点と同じラベルを有するグリッドポイントを検出するステップ（２００）、および２）このグリッドポイントの混合係数を頂点にコピーするステップ（２０２）である。
【０１０４】
このプロセスの唯一の例外は、口の内部のポリゴンにあたる頂点である。これらの頂点に対し、我々は、上唇の上で最も近いグリッドポイントのベータをとり、下唇の上で最も近いグリッドポイントの１．０−ベータをとる。初期実施態様では、口のポリゴンの上から下まで０．８、０．６、０．４、０．２５、０．１のベータ値を使用した。
【０１０５】
ビデオフレームからのマーカの除去
ビデオシーケンスからテクスチャが作り出される前に、基準マーカおよびそれらに関連する照明効果がカメラ画像から除去される。蛍光マーカを使用するときは、顔のいくつかの部分が劇的に折り重なり、それによっていくつかのマーカの反射面が肌に極めて近くなるために、相互反射効果が目立つ場合がある。これは、色付きドットから顔の上への拡散相互反射が肌色を著しく変える可能性がある鼻唇のすじに沿った問題である。
【０１０６】
基準マーカは、基準マーカで覆われた画素を周囲の画素のテクスチャで置き換えることによって、各カメラ画像シーケンスから除去することができる。例えば、覆われた画素を肌テクスチャで置き換えることによって、マーカを除去することができる。我々の初期実施態様はまた、拡散相互反射効果と、正しく置き換えられなかった、それた画素からの残りの色合いも除去する。
【０１０７】
図１７は、初期実施態様でカメラ画像から基準マーカを除去するのに使用されるプロセスを示す流れ図である。プロセスは、色付きドットに対応する画素を検出することで開始する（２２０）。２Ｄマーカのラベリングで使用した最近隣色分級機を使用して、いずれかのドット色を有するすべての画素がマークされる。このケースでは、偽陽性のものの有害性はドット追跡ケースの場合よりもずっと少ないため、特別な訓練セットが使用される。また、ドット色を区別する必要はなく、ドット色と背景色を区別するだけでよい。訓練セットは、ドット色、およびドットと背景色の間の境界領域をできるだけ多く取り込むように作り出される。
【０１０８】
画像中の各画素に分級機を適用することによって、ドットマスクが生成される（２２２）。マスクは、わずかな画素ずつ増加されて、ドット色で汚れる可能性のある画素が残っていればそれを補償する。ドットマスクは、肌テクスチャが置き換えられなければならないすべての画素をマークする。
【０１０９】
肌テクスチャは、低空間周波数および高周波数の成分に分解される（２２４、２２６）。肌テクスチャの低周波成分は、輝度の不連続性を導入する可能性のあるフィーチャに平行に向けられた方向ローパスフィルタを使用することによって補間される。これは、唇と口の周りのより明るい色の領域との間の境界などのはっきりした輝度境界を越えて色がにじむのを防止する。フィルタの方向性は、３Ｄ顔モデル上にある３次元ポリゴンマスクの像平面への投影である２次元マスクによって制御される。ポリゴンマスクが３Ｄメッシュ上に固定されているため、ポリゴンマスクの２Ｄ投影は、顔が変形するときにテクスチャマップとの位置がずれない。
【０１１０】
すべての重要な輝度勾配は、それら自体のポリゴンマスクを有する。すなわち目、眉、唇、鼻唇のすじである。図１８に、輝度の不連続性を導入する可能性のある顔フィーチャを取り巻くマスクの例を示す。２Ｄポリゴンマスクは白で埋められ、マスクの外の画像領域は黒で埋められて、画像が作り出されている。画像はローパスフィルタリングされる。得られた画像の輝度を使用して、そのフィルタがどんな方向性であるかが制御される。フィルタは、画像が黒い場合はサーキュラ対称（circular symmetric）、すなわち輝度不連続性に遠く及ばず、画像が白い場合は、非常に方向性である。
【０１１１】
方向フィルタは、その長い軸がこの画像の勾配に直交するように向けられる。高周波数の肌テクスチャは、顔のドットなし部分からとられた肌テクスチャの矩形サンプルから作り出される。肌サンプルはハイパスフィルタリングされて、低周波数成分が除去される。各ドットマスク画素の場所で、ハイパスフィルタリングされた肌テクスチャは、まず結合ドット領域の２Ｄ枠の中心に合わせられ、次いで、補間される低周波数の肌テクスチャに加えられる。
【０１１２】
残りの拡散相互反射効果は、肌色の色相を実際の肌色から決定された狭い範囲に固定することによって除去される（２２８）。まず、画素値は、ＲＧＢからＨＳＶ空間に変換され、次いで、合法範囲を外れる色相があれば、範囲の極限に固定される。図１８に示すマスクのうちの３つを使用して検出された目および口の画素は、変化しないままである。
【０１１３】
高周波数テクスチャをフレーム間で合わせることが不完全だったせいで、置換された肌テクスチャ中にいくつかの時間的変化が残る。テクスチャマップ空間中でドットは比較的動かないため、ローパス時間フィルタがテクスチャ画像中のドットマスク領域に適用される。この時間フィルタは、時間的なテクスチャ置換アーチファクトを効果的に除去する。
【０１１４】
図１９Ａおよび１９Ｂに、ドットを除去する前と後の、顔のカメラ画像の例を示す。図２０Ａ〜Ｄに、ドット除去プロセスにおける諸ステップ中のカメラ画像の一部を詳細に示す。図２０Ａには、ドットの付いた顔の一部の画像を示す。図２０Ｂには、ドットが低周波数の肌テクスチャで置き換えられた、同じ画像を示す。図２０Ｃには、高周波数のテクスチャが加えられた画像を示す。最後に、図２０Ｄには、前述のように色相が固定された画像を示す。
【０１１５】
テクスチャマップの作成
我々の初期実施態様は、４ステップのプロセスで入力ビデオのフレーム毎にテクスチャマップを作り出す。図２１は、このプロセス中の諸ステップを示す図である。最初の２つのステップは、１メッシュにつき一度だけ行われる。テクスチャの作成における第１のステップは、メッシュのパラメータ化を定義することである（２４０）。次のステップは、このパラメータ化を使用して、各テクセルに対するメッシュ上の場所を含むジオメトリマップを作成することである（２４２）。第３に、各カメラ画像から１つずつ、６つの事前テクスチャマップを、重みマップと共にフレーム毎に作成する（２４４）。重みマップは、異なるカメラからのデータの相対的な質を示す。第４に、これらのテクスチャマップの加重平均を計算して、フレーム毎に最終的なテクスチャマップを作成する（２４６）。
【０１１６】
我々は、メッシュを後ろに１０度傾けて鼻孔をあらわにさせ、メッシュ頂点を柱面上に投影することによって、頭用のテクスチャ座標のイニシャルセット（initial set）を作り出す。このパラメータ化によって生成されたテクスチャマップを、図２２Ａに示す。ＢｅｉｅｒおよびＮｅｅｌｙによって記述された技術を使用して、ラインペアのセットを指定し、テクスチャ座標を曲げる。Beier,T.およびNeely,S.の「Feature-based image metamorphosis」、Computer Graphics（SIGGRAPH′92Proceedings）、（１９９２年７月）、E.E.Catmull,ed.、vol.26、pp.35〜42を参照されたい。このパラメータ化によって、図２２Ｂに示すテクスチャマップが得られる。図２２Ｂでは、曲げられたテクスチャマップは、顔、特に目および口に焦点を合わせていることに留意されたい。この例では、６つのビデオストリームからのデータで頭の正面だけがテクスチャリングされている。
【０１１７】
次に、この方法によって、各テクセルに対するメッシュロケーション（mesh location）を含むジオメトリマップを作り出す。メッシュロケーションは、三角形ｋおよび三角形中の重心座標（β1，β2，１−β1−β2）を指定する３つ組（ｋ，β1，β2）である。テクセル（ｕ，ｖ）に対する三角形識別子ｋを検出するために、メッシュの三角形にわたって余さずサーチして、テクスチャ座標（ｕ，ｖ）を含む三角形を検出する。次いで、βiを三角形ｋのテクスチャ座標のポイント（ｕ，ｖ）の重心座標に設定する。画素に対するメッシュロケーションを検出するとき、直前のサーチが、その上および左にある近隣物が位置する三角形をすでに検出している。したがってこの方法は、まずこれらの三角形およびその近隣物にわたってサーチするように最適化されている。しかし、ジオメオトリマップは一度作成されるだけでよいため、この作業に必要な時間はクリティカルではない。
【０１１８】
次に、フレームｆに対する事前テクスチャマップを各カメラに１つずつ作成する。これは、Pighin,F.、Auslander,J.、Lishinski,D.、Szeliski,R.、およびSalesin,D.の「Realistic facial animation using image based 3d morphing」、Tech.Report TR-97-01-03、Department of Computer Science and Engineering、University of Washington、ワシントン州Seattle、１９９７年に記載の技術の修正バージョンである。この方法は、カメラｃ用のテクスチャマップを作成するために、メッシュをそのフレームｆ位置に変形することで開始する。次いで、テクセル毎に、ジオメトリマップからそのメッシュロケーション（ｋ，β1，β2）を検出する。三角形ｋの頂点の３Ｄ座標および重心座標βiによって、テクセルの３Ｄロケーションｔを計算する。カメラｃの投影行列によってｔを変換して、カメラｃの像平面上の場所（ｘ，ｙ）を得る。次いで、テクセルを（ｘ，ｙ）におけるカメラｃの画像からの色で色付けする。
【０１１９】
図２３は、テクセルの重みが、テクセルにおける表面垂線ｎとカメラへの方向ｄとの間の関係に基づいてどのように計算されるかを示すための、人間の頭（２６０）のモデルの単純な２Ｄの例を示す図である。カメラの像平面を、射出瞳（２６４）と頭（２６０）の間のライン（２６２）で示す。テクセルの重みを、テクセルｔにおけるメッシュ垂線ｎと、カメラに返る方向ｄとのドットの積に設定する。負の値は０に固定される。したがって、カメラのビューが斜めに当たる場合は重みが低い。この重みマップは、三角形の境界ではスムーズではないが、ガウス核でそれを巻き込むことによってスムーズにすることができる。
【０１２０】
最後に、６つの事前テクスチャマップを合体させる。これらは完全に整合しないため、これらを平均化するとテクスチャがぼやけ、細部が失われる。したがって我々のテストケースでは、最終テクスチャマップの中央４６％に対して底部かつ中央のカメラのテクスチャマップだけを使用した。この方法は、側部で各事前テクスチャマップの加重平均を使用して、スムーズに（２３画素にわたり）移行する。
【０１２１】
図２４Ａ〜Ｂおよび図２５Ａ〜Ｄに、テストケース用の我々の初期実施態様によって生成されたテクスチャマップの例を示す。図２４Ａおよび２４Ｂには、フレーム番号４５１および１３０３にあたるカメラビューおよびそれらに対応するテクスチャマップをそれぞれ示す。図２５Ａ、２５Ｂ、２５Ｃ、および２５Ｄには、フレーム番号０、１０００、２０００、および３０００にあたるカメラビューおよびそれらに対応するテクスチャをそれぞれ示す。
【０１２２】
図２４および２５に示す例では、テクスチャマップはアクターの頭の一部をカバーしていない。我々のテストケースでは、カバーされないこれらの部分を、サイバーウェアスキャンから取り込んで２通りに修正した反射率データでシミュレートした。第１に、メッシュの耳をストックメッシュからの耳で置き換え、テクスチャ中で耳を動かして、よりよい位置合わせを達成した。第２に、頭の正面にあたるテクスチャの領域中でアルファチャネルを０に（ソフトエッジで）合わせた。次いで、２つのパスでレンダリングして、両方のテクスチャマップが加えられた頭の画像を作り出した。
【０１２３】
圧縮
ジオメトリックおよびテクスチャマップデータは異なる統計学的特長を有し、したがって、これらを別々に圧縮するのがより効果的である。ジオメトリックデータは、ベースモデルと、ベース３Ｄモデルを動かして動画を作り出すために使用される３Ｄポジションとを含む。３Ｄジオメトリック動きデータを記憶するには、異なるいくつかの方式がある。基準マーカの３Ｄモーションは、基準マーカとベースモデルの頂点との間の参照と共に記憶することができる。別法として、選択されたメッシュ頂点の３Ｄジオメトリックモーションを記憶することもできる。いずれのケースでも、ジオメトリックモーションは、時間経過につれて変化する位置（例えばフレーム毎の新しい３Ｄフレーム）を有する、選択された３Ｄポイントの動きとして表される。
【０１２４】
選択された３Ｄポイントの動きもまた、様々な方式で表すことができる。ある手法は、３Ｄポイントの動きを規定する一連の変形ベクトルとしてこの動きを表すことである。これらの変形ベクトルは、時間のある瞬間から別の瞬間まで、または基準フレームから現在フレームまでの位置のインクリメンタルな変化を表すことができる。
【０１２５】
テクスチャマップデータは、３Ｄジオメトリック動きデータに関連付けられる画像のシーケンスとして表すことができる。上に詳述した実施態様は、取り込まれたアクターのビデオシーケンスのフレーム毎にテクスチャを計算するようになっており、各テクスチャは、特定時間のアクターの３Ｄジオメトリックモデルの位置を記述する３Ｄジオメトリックデータに関連付けられる。しかし、１）テクスチャが入力ビデオシーケンスの各フレームから作成されること、および２）３Ｄ動きデータの各インスタンス（instance）が異なるテクスチャマップに対応することは、絶対的な要件ではない。ジオメトリック動きデータの各インスタンスは、そのインスタンスでの変形に対応するテクスチャに関連付けられるべきであることが好ましい。これは、テクスチャに複数の変形ベクトルへの指標が付けられることを妨げない。
【０１２６】
類似する表情がシーケンス全体にわたって生じるため、ジオメトリック動きデータ中にかなり長期の時間的相関があることが分かった。テクスチャ画像空間ではマーカは本質的に動かないため、テクスチャデータの短期相関は、生ビデオ場面の短期相関にわたって著しく増大される。これにより、動きに関連するほとんどの輝度変化が除去され、主にシェーディング変化が残される。シェーディング変化は、低い空間周波数を有する傾向があり、高い圧縮が可能である。短期の時間的相関を利用することのできるＭＰＥＧ２やＭＰＥＧ４などの圧縮方式は、この短期の相関における増大を活用することができる。
【０１２７】
ジオメトリックデータの圧縮
ジオメトリックデータの場合、長期の相関を活用する１つの方式は、主成分分析を使用することである。上に説明したように、３Ｄモデルの動きを定義するのに使用したジオメトリックデータは、３Ｄモデルに関連付けられた３Ｄ基準ポイントに対する一連の変形ベクトルとして表すことができる。変形ベクトルは、行列の形で表すことができる。例えば、行列の列は時間の間隔に対応し、行は３Ｄ基準ポイントに対する変形ベクトルに対応する。この行列は、基底ベクトルと係数に行列を分解することによって効率的に符号化することができる。係数は、時間予測を使用して符号化することができる。量子化およびエントロピー符号化を使用しても、基底ベクトルおよび係数を符号化することができる。
【０１２８】
図２６は、どのように変形ベクトルの行列をより効率的なフォーマットで符号化して記憶および送信することができるかを示す図である。ジオメトリックデータは、変形ベクトルの行列として表される（２８０）。この特定の例では、列は、動画シーケンス中のフレームなど、時間のインクリメントに対応する。行は、対応する３Ｄ基準ポイントの位置を規定する３Ｄベクトルに対応する。
【０１２９】
分解ブロック（２８２）は、行列を係数（２８４）および基底ベクトル（２８６）に分解するためのモジュールである。時間予測ブロック（２８８）は、係数行列中の列の間で時間予測を行うためのモジュールを表す。係数および基底ベクトルは、量子化モジュールおよびエントロピー符号化モジュール（２９０、２９２、２９４、および２９６）中に示すように、量子化およびエントロピー符号化を使用して圧縮することができる。係数の場合は、係数を量子化する前または後に、係数の行列上で予測を行うことができる。ジオメトリックデータの形およびそれを記憶する行列に応じて、係数行列の列か行かいずれかの上で予測を使用することができる。
【０１３０】
エントロピー符号化モジュール（２９２、２９６）の出力は、トランスミッタに、またはハードディスクなどの記憶装置に転送される。いくつかのアプリケーションでは、おそらく何らかの形の入力に応答して、変形ベクトルが計算され、送信用に符号化される。「トランスミッタ」は、コンピュータネットワーク、電話回線、シリアル通信リンクなどの何らかの形の通信媒体を介して符号化済みデータを送信するのに使用されるシステムソフトウェアおよびハードウェアを指す。圧縮済みジオメトリックデータが転送される方式は、通信媒体によって決まる。
【０１３１】
変形データをすぐに転送する必要のない他のアプリケーションでも、変形ベクトルの圧縮は、なお利点をもたらす。具体的には、圧縮データはより少ない記憶空間を必要とし、メモリ帯域幅要件を削減する。
【０１３２】
行列を基底ベクトルおよび係数に分解する方法は色々ある。以下に、どのように主成分分析を適用して、時間と共に変化する３Ｄモデルの位置を表す行列を圧縮できるかを述べる。
【０１３３】
我々のデータセットを行列Ａと表し、データのフレームｉがＡの列ｉをマッピングする場合、Ａの第１の主成分は以下のとおりである。
【０１３４】
【数１１】
0004335449.tif 000012
【０１３５】
上の式を最大化するｕは、同じく最大値であるＡＡTの最大固有値に関連付けられる固有値である。続く主成分は、先行するすべての主成分と直交であることを除いて、同様に定義される。すなわち、ｕTiｕj＝０、ただしｊ≠ｉである。主成分は、行列Ｕで表される直交基底セットを形成し、Ｕの列は、Ｕの第１の列中の最上位主成分によって固有値サイズで順序付けられたＡの主成分である。
【０１３６】
Ａ行列中のデータは、以下のように主成分基底上に投影することができる。
【０１３７】
Ｗ＝ＵTＡ
Ｗの行ｉは、列Ａiの、基底ベクトルｕi上への投影である。より正確には、Ｗの列ｉ中のｊ番目の要素は、元データのフレームｊの、ｉ番目の基底ベクトル上への投影に対応する。Ｗ行列の要素を投影係数と呼ぶ。
【０１３８】
同様に、Ａは、基底セットを掛けることによってＷから正確に再構築することができる。
【０１３９】
Ａ＝ＵＷ
我々の目的にとって最も重要な主成分の特性は、それらがｌ2ノルムの点で再構築に最も適した一次基底セットであることである。いずれか所与の行列Ｕkの場合、ｋを行列の列の数とし、ｋ＞ｒａｎｋ（Ａ）とすると、再構築エラーは以下の通りである。
【０１４０】
【数１２】
0004335449.tif 000013
【０１４１】
上式で、‖Ａ‖2Fは、以下のように定義されるフロベーニウスノルムである。
【０１４２】
【数１３】
0004335449.tif 000014
【０１４３】
これは、ＵkがＡのｋ個の最上位主成分を含む行列である場合に最小化されることになる。
【０１４４】
データセットＡは、それに対応するＷ行列およびＵ行列の要素を量子化し、それらをエントロピー符号化することによって圧縮することができる。圧縮データは主成分基底ベクトルがなければ再構築できないため、Ｗ行列とＵ行列の両方を圧縮しなければならない。基底ベクトルは、ＤＣＴ基底など、元データセットに依存せずに計算できる基底セットと共には存在しないオーバーヘッドを追加する。
【０１４５】
特定の構造を有しないデータシーケンスの場合、基底ベクトルの追加のオーバーヘッドは、おそらく圧縮効率のどんな利得にも勝ることになる。しかし、通常のフレーム間構造を有するデータセットの場合、主成分基底ベクトルによる再構築に対する残余誤差は、他の基底の場合よりもずっと小さくすることができる。残余誤差におけるこの減少は、基底ベクトルのオーバーヘッドビットを補償するのに十分な著しい減少となることができる。
【０１４６】
主成分は、StrangのLinear Algebra and its Application、HBJ、１９９８年に記載の特異値分解（ＳＶＤ）法を使用して計算することができる。このアルゴリズムの効率的な実施は、広く利用可能である。行列ＡのＳＶＤは以下の通りである。
【０１４７】
Ａ＝ＵΣＶT
上式で、Ｕの列はＡＡTの固有ベクトルであり、対角行列Σに沿った特異値Σiは、ＡＡTの固有値の平方根であり、Ｖの列は、ＡTＡの固有ベクトルである。Ｕのｉ番目の列は、Ａのｉ番目の主成分である。Ａの最初のｋ個の左特異ベクトルの計算は、最初のｋ個の主成分の計算に相当する。
【０１４８】
あるタイプの主成分分析を示したが、他の形の主成分分析を使用してジオメトリックデータを圧縮することもできる。別の形の主成分分析は、ＫＬ変換（Karhunen-Loeve）と呼ばれる。
【０１４９】
３Ｄマーカの変形ベクトルの圧縮
ジオメトリックデータは、顔の動き（motion）が高度に体系化されるため、前述した長期の時間的整合性の特性を有する。我々のテストケースでは、顔の上に１８２個のマーカしかないために、ジオメトリックデータに対する基底ベクトルのオーバーヘッドは固定である。各マーカに関連して３つの数ｘ、ｙ、およびｚがあるため、基底ベクトルの最大数は１８２*３である。基底ベクトルオーバーヘッドは、動画シーケンスの長さが増加するにつれて着実に減少する。
【０１５０】
ジオメトリックデータは、ｉ番目のフレームに対する３Ｄオフセットデータをとり、それをデータ行列Ａgのｉ番目の列にマッピングすることによって、行列形にマッピングされる。投影係数は、行列Ｗg中に記憶される。
【０１５１】
３Ｄ基準ポイントの動きが時間経過につれて比較的スムーズであるため、投影係数の列の間にはかなりの相関がある。列ｉ−１から列ｉ中の投影係数を時間的に予測することによって、量子化された投影係数のエントロピーを減少することができる。すなわち、ｃi-1＋Δiであり、これらの列中の対応する要素間の差を符号化する。我々のテストケースでは、データセットを圧縮するために、一様な量子化を使用して係数を量子化し、次いで、時間予測を使用してそれらをさらに圧縮した。以下に述べるが、他の形の量子化も使用することができる。
【０１５２】
我々のデータセットの場合、Ｗgの最初の４５行に対応する最初の４５個の主成分に関連する投影係数だけが大きな時間的相関を有し、したがって、最初の４５行だけが時間的に予測される。残りの行は、直接にエントロピー符号化される。時間予測の後、エントロピーは、我々のテストケースでは約２０％減少される。図２７に、どのように最初の４５個の係数の時間予測がそれらのエントロピーを減少するかを示すグラフを示す。垂直軸は、サンプル毎のエントロピーをビットで表し、水平軸は係数指標を表す。この場合は、各係数がサンプルである。破線は、予測を伴わない係数のエントロピーのプロットであり、実線は、予測を伴う係数のエントロピーのプロットである。
【０１５３】
前述のように、基底ベクトルは、それらを量子化することによってさらに圧縮することができる。我々の実施態様では、基底ベクトルは、ピーク誤り率を選択し、次いでベクトル毎の投影係数の標準偏差に基づいて各ベクトルに割り振られた量子化レベルの数を変化させることによって圧縮される。こうした形の量子化は、スカラー量子化（ＳＱ）と呼ばれることがある。ＳＱは、丸めることによって実数を整数に変換することを含む量子化方法である。ＳＱでは、丸め関数（例えばｒｏｕｎｄ（．））が、次の例のように実数を整数に変換する。数４．７３はｒｏｕｎｄ（４．７３）＝５で概算され、数３．２１はｒｏｕｎｄ（３．２１）＝３で概算され、数−６．１はｒｏｕｎｄ（−６．１）＝−６で概算される。丸めは−０．５と０．５の間で変化する概算誤差を有する、すなわちその最大の絶対値は０．５であることに留意されたい。ｒｏｕｎｄ（．）関数の可能な値は、量子化レベルとも呼ばれる。
【０１５４】
ｘiが基底ベクトルのｉ番目の係数であり、ｉは１からＮまで変化し、Ｎはすべてのベクトル中にあるすべての係数の数であると考える。ＳＱ法の一例は以下の通りである。
【０１５５】
１）すべてのｘi（すなわちｉ＝１，２，．．．Ｎの場合）に目を向け、それらの最大絶対値をＶと呼ぶ。すなわち、すべてのｉに対してＶ＝ｍａｘ｛｜ｘi｜｝である。
【０１５６】
２）最大相対誤差（「ピーク誤り率」）ｄを設定する。例えば、ｄ＝０．００１は最大相対誤差０．１％を意味する。
【０１５７】
３）Ａ＝０．５／（ｄ*Ｖ）として、すべてのｘiを「利得」係数Ａで増減（scale）する。すなわち、すべてのｉに対してｙi＝Ａ*ｘiを計算する。
【０１５８】
４）ここで、最も近い整数に丸めることによって、値を量子化する。すべてのｉに対してｕi＝ｒｏｕｎｄ（ｙi）である。
【０１５９】
５）Ａの逆数によって、量子化された値を増減し直す。すなわち、すべてのｉに対してｖi＝ｕi／Ａを計算する。
【０１６０】
量子化されたｖiは、今や元の値ｘiの概算であることに留意されたい。最大相対誤差はｍａｘ（｜ｘi−ｖi｜）／ｍａｘ｛｜ｘi｜｝≦ｄを満たすため、概算の質はパラメータｄによって制御される。
【０１６１】
ｖiとｕiの間に１対１の関係があることに留意されたい。ｕiは整数であるため、これらは有限な数のビットで表される。さらに、小さい値のｕiは、大きい値のｕiよりも少ないビットを必要とする。
【０１６２】
最後に、所与の画像セットの場合に、ベクトルに対する値ｕiは、一様でない確率分布を有することになる。例えば、ｙiの値の多くは通常、非常に小さいため、ｕiの値の多くは０となる。したがって量子化により、量子化されるデータは、それらの発生の確率に基づいて各値にコードワードを割り当てるエントロピーコーダ（entropy coder）を介してより効率的に圧縮される。図２７のグラフに、このようなコーダに対するエントロピー（係数毎の平均ビット数）を示す。
【０１６３】
代替形の量子化を使用することもできる。例えば、数ｘiは、小さなベクトルにグループ化することができ（例えばＭ＝４やＭ＝８の値のグループ）、次いで、ベクトル量子化（ＶＱ）を使用して圧縮することができる。ＶＱでは、ベクトルは、Ｍ次元空間中のポイントの規則的または不規則的な格子中にある、それに最も近い近隣物によって概算される。
【０１６４】
実際には、我々のテストケースで生成されたデータの場合、ＶＱを使用してもほとんど改善はみられず、おそらくせいぜい２０％ましな圧縮となったであろう。
【０１６５】
述べたように、予測された係数および量子化された基底ベクトルは、算術符号化やハフマン符号化などのエントロピー符号化を使用して、さらに圧縮することができる。エントロピー符号化は、より頻繁に現れるサンプルにより短い符号を割り当て、より頻繁に現れないサンプルにより長い符号を割り当てることによって、ジオメトリックデータをさらに圧縮する。
【０１６６】
我々は、様々なピーク誤り率で圧縮したＷgを使用して、動画シーケンスを視覚的に検査した。すべてのジオメトリックデータに対して合計４０ｋｂｉｔｓ／ｓｅｃの場合、誤差レベルが約０．００１または０．００２の場合のＷgのエントロピーは３６ｋｂｉｔｓ／ｓｅｃであり、Ｕgのエントロピーは１３ｋｂｉｔｓ／ｓｅｃである。これらの値は、我々の３３３０フレーム動画秒シーケンスの場合の平均である。
【０１６７】
圧縮解除（decompression）
テクスチャデータおよびジオメトリックデータは、別々に送信され復号される。テクスチャデータは、圧縮されたテクスチャデータのフォーマットに適合する適切なＭＰＥＧ復号器を使用して復号される。ＭＰＥＧ復号器は各テクスチャマップを、ビデオシーケンス中のフレームであるかのように再構築する。動画シーケンスの特定のフレームに関連する変形ベクトルは、適切なテクスチャマップに対する参照を有する。したがって、圧縮解除された後は、テクスチャマップが必要に応じてアクセスされて、動画シーケンス中のフレームがレンダリングされる。
【０１６８】
ジオメトリックデータは、符号化ステップを逆に行うことによって復号される。まずエントロピー復号器が、可変長の符号から基底ベクトルおよび係数を再構築する。次に、予測された係数から係数が再構築される。
【０１６９】
次いで、逆量子化が、係数および基底ベクトルをリストアする。次いで、基底ベクトル行列および係数行列から変形ベクトルの元の行列が再構築される。
【０１７０】
応用例
前述の方法を使用して、複雑な動画化（animated）オブジェクトの、すなわち人間の顔のフィーチャの現実的な仮想モデルを作り出すことができる。仮想モデルが取り込まれた後は、それを様々な適用例で使用することができる。例えば、モデルを圧縮して、記憶装置（例えばＣＤＲＯＭ）上に、またはネットワークを介して配布することができる。ユーザは、記憶装置またはネットワークからモデルを取り出し、ローカルレンダリングハードウェアおよびソフトウェアを使用して、いずれかの仮想カメラ視点から仮想環境中のどんな位置にあるモデルもレンダリングすることができる。我々のテストケースでは、Intelから発売の２００ｍＨｚ Pentium Proプロセッサを有する、Gatewayから発売のパーソナルコンピュータを使用した。このコンピュータには、Matrox Graphicsから発売のMillenniumグラフィックスカードが装備されており、３Ｄグラフィックスレンダリング機能のハードウェアアクセラレーションは本質的に何も採用していなかった。
【０１７１】
従来の３Ｄレンダリングシステムを使用して、３Ｄモデルおよび対応するテクスチャに基づいて異なる様々な合成動画シーケンスを生成することができる。例えば、表情のデータベースをユーザのコンピュータに記憶することができる。各表情は、前述の方法を使用して、時間と共に変化する一連の変換ベクトルおよび対応するテクスチャで定義される。動画を作り出すために、レンダリングシステムは、選択された表情用の変形ベクトルおよびテクスチャを取り出してレンダリングする。
【０１７２】
レンダリングプロセスの間、メッシュの移動に関するセクションで上に述べたようにメッシュ頂点が変形される。各頂点は、ドットのいくつかのセットのオフセットの一次結合でずれる。変形ベクトルは、常に同じ方式で順序付けられる。すなわち、フレーム０〜ｎに対してドット０、ドット１、．．．以下同様である。メッシュ頂点および曲線に対する混合係数は、一度計算され、それら自体のファイルに記憶される。テクスチャはフレーム０〜ｎとして記憶され、したがって、テクスチャマップおよび変形ベクトルは、現在フレーム用のベクトルおよびテクスチャを選択することによってアクセスされる。
【０１７３】
図２８および後続の考察は、前述のソフトウェアルーチンを実施することのできる、適したコンピューティング環境の簡潔かつ一般的な記述である。
【０１７４】
図２８に、本発明のための動作環境として使用できるコンピュータシステムの例を示す。このコンピュータシステムは、処理ユニット３２１と、システムメモリ３２２と、システムメモリを含めた様々なシステム成分を処理ユニット３２１に結合するシステムバス３２３とを含む従来型のコンピュータ３２０を含む。システムバスは、メモリバスまたはメモリコントローラ、周辺バス、および、例を挙げればＰＣＩ、ＶＥＳＡ、Microchannel、ＩＳＡ、ＥＩＳＡなどの様々な従来型のバスアーキテクチャのいずれかを使用するローカルバスを含めた、いくつかのタイプのバス構造のいずれかを備えることができる。システムメモリは、リードオンリメモリ（ＲＯＭ）３２４およびランダムアクセスメモリ（ＲＡＭ）３２５を含む。ＲＯＭ３２４には、起動時などにコンピュータ３２０内の要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（basic input／output system）３２６が記憶される。コンピュータ３２０はさらに、ハードディスクドライブ３２７と、例えばリムーバブルディスク３２９に対して読取りまたは書込みをするための磁気ディスクドライブ３２８と、例えばＣＤ−ＲＯＭディスク３３１を読み取るため、あるいは他の光学媒体に対して読み取りまたは書込みをするための光学ディスクドライブ３３０も含む。ハードディスクドライブ３２７、磁気ディスクドライブ３２８、および光学ディスクドライブ３３０は、ハードディスクドライブインタフェース３３２、磁気ディスクドライブインタフェース３３３、および光学ドライブインタフェース３３４によってそれぞれシステムバス３２３に接続される。ドライブおよびそれらに関連するコンピュータ読取可能な媒体は、データ、データ構造、コンピュータ実行可能命令などの不揮発性記憶エリアをコンピュータ３２０に提供する。上記のコンピュータ読取可能な媒体の記述はハードディスク、リムーバブル磁気ディスク、およびＣＤに言及しているものの、磁気カセット、フラッシュメモリーカード、ディジタルビデオディスク、Bernoulliカートリッジなど、コンピュータによって読み取り可能な他のタイプの媒体も、このコンピューティング環境で使用することができる。
【０１７５】
ドライブおよびＲＡＭ３２５には、オペレーティングシステム３３５、１つまたは複数のアプリケーションプログラム（上に詳述した顔動画のルーチンや符号化方法など）３３６、その他のプログラムモジュール３３７、およびプログラムデータ３３８（ビデオシーケンス、ベースメッシュ、基準マーカの２Ｄおよび３Ｄロケーション、変形ベクトルなど）を含めた、いくつかのプログラムモジュールを記憶することができる。ユーザは、キーボード３４０およびマウス３４２などのポインティングデバイスを介してコンピュータ３２０中にコマンドおよび情報を入力することができる。その他の入力装置（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含めることができる。これらおよびその他の入力装置は、システムバスに結合されたシリアルポートインタフェース３４６を介して処理ユニット３２１に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）など、その他のインタフェースによって接続してもよい。
【０１７６】
モニタ３４７またはその他のタイプの表示装置も、ビデオコントローラ３４８などのインタフェースを介してシステムバス３２３に接続される。ビデオコントローラは、画素輝度の値を、表示装置にわたってスキャンされるアナログ信号に変換することで、レンダリングパイプラインによって生成された出力画像の表示を管理する。いくつかのグラフィックスワークステーションは、コンピュータ上の拡張スロットに差し込まれるグラフィックスアクセラレータや、マザーボード上のバス構造を介してプロセッサおよびメモリに接続されるグラフィックスレンダリングチップセットなどの追加のレンダリング装置を含む。このようなグラフィックスレンダリングハードウェアは、通常、特殊目的ハードウェアを使用してベースメッシュのポリゴンなどのジオメトリックプリミティブ（geometric primitives）を走査変換することによって、画像生成を加速する。
【０１７７】
コンピュータ３２０は、リモートコンピュータ３４９などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化環境で動作することができる。リモートコンピュータ３４９は、サーバ、ルータ、ピアデバイス、またはその他の共通ネットワークノードとすることができ、図２９にはメモリストレージ３５０だけしか示していないが、通常、コンピュータ３２０に関連して述べた要素の多くまたはすべてを含む。図２９中に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）３５１およびワイドエリアネットワーク（ＷＡＮ）３５２を含む。このようなネットワーキング環境は、職場、企業全体のコンピュータネットワーク、イントラネット、およびインターネットでよくみられる。
【０１７８】
ＬＡＮネットワーキング環境で使用されるとき、コンピュータ３２０は、ネットワークインタフェースまたはアダプタ３５３を介してローカルネットワーク３５１に接続される。ＷＡＮネットワーキング環境で使用されるとき、コンピュータ３２０は通常、インターネットなどのワイドエリアネットワーク３５２を介した通信を確立するために、モデム３５４またはその他の手段を含む。モデム３５４は、内蔵型でも外付けでもよく、シリアルポートインタフェース３４６を介してシステムバス３２３に接続される。ネットワーク化環境では、コンピュータ３２０に関連して述べたプログラムモジュールまたはそれらの一部は、リモートメモリストレージに記憶することもできる。図示のネットワーク接続は例に過ぎず、コンピュータ間の通信リンクを確立する他の手段を使用することもできる。
【０１７９】
初期実施形態で達成された結果
図２９に、再構築された３Ｄ表情のシーケンスからの典型的なフレームをいくつか示す。これらのフレームは、スクリプトから読み取る間にアクターがランダムな表情をする３３３０フレーム動画からとられたものである。アクターの頭のゴムキャップは、髪がアクターの顔に入らないようにするために使用した。
【０１８０】
表情は、非常に真に迫って見える。動画シーケンスも同様に興味をひく。色付きマーカおよび放散相互反射アーチファクトの形跡がほぼすべて消えており、これは、顔のいくつかの領域、特に唇の周辺ではアクトレスの肌がほとんど見えないこと、すなわち大部分の領域が色付きマーカで覆われていることを考えると、驚くべきことである。
【０１８１】
正確な３Ｄジオメトリと正確な顔テクスチャの両方が、再構築された表情を本当のように思えるようにするのに貢献している。咬合外形は正しいように見え、ジオメトリックデータとして取り込むのが非常に難しい顔のジオメトリの微妙な細部は、テクスチャ画像中にうまく現れている。この重要な例は、鼻孔のすぐ上から唇のやや下に下がる鼻唇のすじで起こる。額のすじおよび皺もまた取り込まれる。テクスチャデータではなくジオメトリックデータを使用してこれらのフィーチャを再現するとすれば、顔のジオメトリの詳細な３Ｄを取り込み、３Ｄモデル中で高ポリゴンカウントを得ることが必要となるであろう。さらに、これらの詳細がジオメトリとして表された場合にそれらを適切にシェーディングするには、正しく見えるようにシャドウおよび放散相互反射効果さえも計算することが必要になるため、困難となるであろう。肌の滑らかな部分の微妙なシェーディング変化は、頬骨でもっとも顕著だが、これもまたテクスチャ画像中でうまく取り込まれる。
【０１８２】
動画中には、目に見えるアーチファクトがまだあるが、これらのいくつかは、ポリゴン化アーチファクトまたはシェーディングアーチファクトであり、その他は、我々の現行の実施態様における制限によって生じるものである。
【０１８３】
顔の表面のいくつかのポリゴン化は、特に顎先の外形に沿って見られるが、これは、頭の前面が４５００ポリゴンしか含まないからである。これは、実施態様の制限ではない。我々は、安価な（２００ドルの）３Ｄグラフィックス上にリアルタイムで表示される可能性を有するのに十分な低いポリゴン解像度で、本当のように思える顔の動画を実施できることを検証したかったので、このポリゴン数を選択した。リアルタイムのレンダリングが問題ではない映画またはテレビジョン作品の場合は、ポリゴンカウントをずっと高くすることができ、ポリゴン化アーチファクトは消えることになる。グラフィックスハードウェアが高速になるにつれて、オフラインとオンラインのレンダリング済み顔画像の間の質における差は減少することになる。
【０１８４】
いくつかのアーチファクトは、この実施態様に小さな変更を加えることによって対処することができる。例えば、顔の縁、鼻孔の先、および眉がジッタとして現れることが時々ある。これは通常、最小サイズしきい値よりも低下するか、または３台以上のカメラに見えないことによって、ドットが失われたときに起こる。ドットが失われると、初期実施態様は、通常ジッタとして見えるのに十分なほど不正確なドットポジションデータを合成する。この問題は、より多くのカメラまたはよりよいカメラの配置によって除去されるであろう。しかし、全体的に画像は極度に安定性がある。
【０１８５】
頭が横顔に近い形で見られたときに最も良く見られる別の実施態様アーチファクトは、歯および舌がわずかに歪んでみえることである。これは、異なる３Ｄモデルを使用して対処することができる。初期実施形態では、歯および舌のテクスチャマップは、唇の間に伸びるポリゴンのシート上に投影される。歯および舌は、より複雑なコンピュータ視覚技術を使用して追跡でき、次いで、より正しいジオメトリックモデルを使用できることが考えられる。
【０１８６】
３Ｄモデルの一部で合成シェーディングモデルを使用することは、得られる動画の現実性を高めることができる。目の上のハイライトによるシェーディング効果は、３Ｄの目のモデルを構築して、視野状況（viewing situation）に適切な合成ハイライトを作り出すことによって補正することができる。肌のシェーディングは、肌の反射率モデルを使用してモデリングすることができる。セルフシャドウイングアーチファクトは、レンダリング性能を向上させること、特に、面光源のシャドウイング効果を適切にモデリングできるようにレンダリング性能を向上させることによって対処することができる。３Ｄモデルの使用および向上したレンダリング性能を通してシェーディング効果およびセルフシャドウイング効果に対処すると、ライブビデオシーケンスを取り込まずに顔の動画を作成することができ、３Ｄジオメトリックデータおよび肌の反射率特性だけしか必要ではなくなる。
【０１８７】
初期実施態様によって達成される圧縮は、限られた帯域幅およびリアルタイムのアプリケーションで効果的に使用できるようにするのに十分である。図３０に、再構築された一連のフレームを示す。左側のフレームは、メッシュおよび未圧縮のテクスチャで再構築したフレームを示す。中央のフレームは、４６０ｋｂｉｔｓ／ｓｅｃでＭＰＥＧ４によって圧縮した同じフレームである。最後に、右側のフレームは、２４０ｋｂｉｔｓ／ｓｅｃでＭＰＥＧ４によって圧縮した同じフレームである。画像はすべて、非常に良好に見える。動画化したシーケンスもまた良好に見え、２４０ｋｂｉｔｓ／ｓｅｃのシーケンスは、目に付く圧縮アーチファクトをわずかに示し始める。２４０ｋｂｉｔｓ／ｓｅｃのビデオは、単速度ＣＤＲＯＭドライブの帯域幅に充分収まる。このデータレート（data
rate）は、現在利用可能なパーソナルコンピュータ上のソフトウェア中でリアルタイムの圧縮解除を行えるだけの十分な低さである。したがって、前述の手法は、得られた動画をリアルタイム表示する可能性を有する。
【０１８８】
ジオメトリックデータの圧縮は、時間経過につれてテクスチャマップ空間中で大きく歪む目のメッシュパラメータ化を改善することによって向上させることができる。また、歯、唇の内側の縁、および舌も、時間経過に伴って追跡して少なくとも部分的に安定させることができる可能性を有し、その結果、口の領域に対するビットレートがかなり減少される。この２つの領域がビット供給の大多数を反映するため、ビットレートがさらに減少される可能性が大きい。
【０１８９】
結論
このシステムは、生きたアクターのパフォーマンスから記録された表情の、非常に真に迫った再構築を生み出す。顔の上にある多数のポイントの正確な３Ｄ追跡によって、表情の正確な３Ｄモデルが得られる。３Ｄ変形データと同時に取り込まれるテクスチャマップシーケンスは、他の方式で取り込むのが不可能ではないにしろ、困難な、表情の細部を取り込む。３Ｄ変形情報を使用してテクスチャマップをフレーム間で合わせることによって、テクスチャマップシーケンスの変動がかなり減少される。テクスチャマップシーケンスは、良好な画質をなお保持しながら、充分圧縮される。ジオメトリックデータに対するビットオーバーヘッドがテクスチャデータと比較して低いため、従来のビデオシーケンスとほぼ同じコストで３Ｄの話者の顔を得ることができる。表情の実際の３Ｄモデルを有するため、動画は、どの角度からも見ることができ、３Ｄ仮想環境に置くことができ、それによって従来のビデオよりもずっとフレキシブルになる。
【０１９０】
本発明の多くの可能な実施態様に鑑みて、前述の実施態様は本発明の一例に過ぎず、その範囲を限定するものと見なすべきではないことを理解されたい。そうではなく、本発明の範囲は、頭記の特許請求の範囲によって定義される。したがって、これらの特許請求の範囲および主旨に含まれるものすべてを我々の発明として請求する。
【図面の簡単な説明】
【図１】  アクターの顔の表情を取り込む方法の概要を示す流れ図である。
【図２】  図１の方法のテストケースの適用例でビデオシーケンスを取り込むのに使用されるビデオカメラのパターンを示すための、アクターの顔の異なるカメラビュー６つを示す図である。
【図３】  テストケースのビデオシーケンスに対して、アクターの顔に付けられた基準マーカの２Ｄポジションを計算する方法を示す流れ図である。
【図４】  テストケースでビデオカメラのうちの１台から撮られたアクターの顔のカメラ画像を示す図である。
【図５】  カメラ画像中で基準マーカを突き止めるのに使用される色クラス画像の例として、図４の画像から選択された黄色いドットに対する色クラス画像を示す図である。
【図６】  異なるカメラビュー中の基準ドットの違いを例示するために、異なる３台のカメラから撮られた緑および紫の基準ドットの例を示す図である（紫のドットは１台のカメラ中では見えなくされている）。
【図７】  単一のカメラから見た単一の、ただし異なるフレーム中にある緑の基準マーカの例を示す図である。
【図８】  基準マーカが付いたアクターの顔のカメラ画像から基準マーカの３Ｄポジションを計算する方法を示す流れ図である。
【図９】  フレーム間の基準マーカの対応を計算して、基準マーカの動きを追跡する方法を示す流れ図である。
【図１０Ａ】  図９のフレーム間対応方法を例示するために４つの基準ドットおよび近隣の３Ｄドットの例を示す図である。
【図１０Ｂ】  図９のフレーム間対応方法を例示するために４つの基準ドットおよび近隣の３Ｄドットの例を示す図である。
【図１０Ｃ】  図９のフレーム間対応方法を例示するために４つの基準ドットおよび近隣の３Ｄドットの例を示す図である。
【図１１】  異なるフレーム中の基準ドットを近隣の基準ドットとマッチさせるのに使用されるマッチングルーチン中の諸ステップを示す図である。
【図１２Ａ】  マッチングルーチンの動作を例示するために基準ドットおよび別のフレームからの近隣３Ｄドットを示す図であり、エプシロンの値、すなわちマッチングルーチンがマッチする可能性のある３Ｄドットをどれくらい遠くまでサーチするかを決定するのに使用される距離の値が小さい場合と大きい場合に、マッチングルーチンによって生成された結果の例を示す。
【図１２Ｂ】  マッチングルーチンの動作を例示するために基準ドットおよび別のフレームからの近隣３Ｄドットを示す図であり、足りない３Ｄドットがある特殊なケースを小さいエプシロン値と大きいエプシロン値の場合で示す。
【図１２Ｃ】  マッチングルーチンの動作を例示するために基準ドットおよび別のフレームからの近隣３Ｄドットを示す図であり、余分な３Ｄドットがあるケースを小さいエプシロン値と大きいエプシロン値の場合で示す。
【図１３】  初期実施態様で使用される、３Ｄ基準ドットの位置を動かす方法を示す流れ図である。
【図１４】  緑および青で示す輪郭ドットを有するアクターの顔のシミュレートバージョン上にある赤いグリッドポイントの画像を示す図である。
【図１５】  アクターの顔のシミュレートバージョンの基準マーカの位置を示す図である。
【図１６】  近隣の基準マーカの動きに基づいてベースメッシュ中の頂点に動きを割り当てる方法を示す図である。
【図１７】  初期実施態様でカメラ画像から基準マーカを除去するのに使用されるプロセスを示す流れ図である。
【図１８】  輝度の不連続性を導入する傾向のある顔フィーチャを囲むのに使用される筋の例を示す図である。
【図１９Ａ】  テストケースでドットを除去する前と後の、アクターの顔のカメラ画像の例を示す図である。
【図１９Ｂ】  テストケースでドットを除去する前と後の、アクターの顔のカメラ画像の例を示す図である。
【図２０Ａ】  ドット除去プロセス中のカメラ画像の一部を詳細に示す図であり、ドットの付いた顔の一部の画像を示す。
【図２０Ｂ】  ドット除去プロセス中のカメラ画像の一部を詳細に示す図であり、低周波数の肌テクスチャで置き換えられたドットを有する同じ画像を示す。
【図２０Ｃ】  ドット除去プロセス中のカメラ画像の一部を詳細に示す図であり、高周波数のテクスチャが加えられた画像を示す。
【図２０Ｄ】  ドット除去プロセス中のカメラ画像の一部を詳細に示す図であり、色相が固定されて放散相互反射効果が除去された画像を示す。
【図２１】  テストケースでアクターの周りに配置された各ビデオカメラから取り込まれたカメラ画像からテクスチャマップを作り出すプロセスを示す流れ図である。
【図２２Ａ】  テストケースにおけるアクターの顔の円筒形テクスチャマップを示す画像を示す図である。
【図２２Ｂ】  図２２Ａからのテクスチャマップが曲げられたバージョンの例であって、顔、特に目および鼻に焦点を合わせたバージョンの例を示す図である。図２２Ｂにおける曲がりは、図２２Ａに白で示すラインペアによって規定される。
【図２３】  各テクセルの重みが、そのテクセルにおける表面垂線ｎとカメラへの方向ｄとの間の関係に基づいてどのように計算されるかを示すために、人間の頭のモデルの単純な２Ｄの例を示す図である。
【図２４Ａ】  時間的に大きく離れたフレームの場合でもテクスチャマップが類似することを示すために、テストケース用の顔のカメラビューおよびそれらに対応するテクスチャマップの例を示す図である。具体的には、図２４Ａは、フレーム番号４５１に対するカメラ画像およびそれに対応するテクスチャマップを示し、図は、フレーム番号１３０３に対するカメラ画像およびそれに対応するテクスチャマップを示す。
【図２４Ｂ】  時間的に大きく離れたフレームの場合でもテクスチャマップが類似することを示すために、テストケース用の顔のカメラビューおよびそれらに対応するテクスチャマップの例を示す図である。具体的には、図２４Ａは、フレーム番号４５１に対するカメラ画像およびそれに対応するテクスチャマップを示し、図は、フレーム番号１３０３に対するカメラ画像およびそれに対応するテクスチャマップを示す。
【図２５Ａ】  テストケースにおける、フレーム番号０、１０００、２０００、および３０００にそれぞれ対するカメラビューおよびそれらに対応するテクスチャを示す図である。
【図２５Ｂ】  テストケースにおける、フレーム番号０、１０００、２０００、および３０００にそれぞれ対するカメラビューおよびそれらに対応するテクスチャを示す図である。
【図２５Ｃ】  テストケースにおける、フレーム番号０、１０００、２０００、および３０００にそれぞれ対するカメラビューおよびそれらに対応するテクスチャを示す図である。
【図２５Ｄ】  テストケースにおける、フレーム番号０、１０００、２０００、および３０００にそれぞれ対するカメラビューおよびそれらに対応するテクスチャを示す図である。
【図２６】  ジオメトリック動きデータの行列を、記憶および送信するのにより効率的なフォーマットにどのように符号化できるかを示す図である。
【図２７】  ジオメトリック動きデータを圧縮する際の時間予測の効果を示すグラフである。
【図２８】  本発明のための動作環境として使用できるコンピュータシステムの例を示す図である。
【図２９】  テストケースのジオメトリックデータおよびテクスチャデータから作り出されたテクスチャリング済みメッシュをレンダリングされた画像のシーケンスを示す図である。
【図３０】  テクスチャリング済みメッシュをレンダリングされた画像の異なる３つのバージョンを示す図である。左の画像は未圧縮のテクスチャを使用してレンダリングされ、中央の画像は４００ｋｂｉｔｓ／ｓｅｃに圧縮されたテクスチャでレンダリングされ、右の画像は２００ｋｂｉｔｓ／ｓｅｃに圧縮されたテクスチャでレンダリングされた。
【図１】
0004335449.tif 000015
【図２】
0004335449.tif 000016
【図３】
0004335449.tif 000017
【図４】
0004335449.tif 000018
【図５】
0004335449.tif 000019
【図６】
0004335449.tif 000020
【図７】
0004335449.tif 000021
【図８】
0004335449.tif 000022
【図９】
0004335449.tif 000023
【図１０Ａ】
0004335449.tif 000024
【図１０Ｂ】
0004335449.tif 000025
【図１０Ｃ】
0004335449.tif 000026
【図１１】
0004335449.tif 000027
【図１２Ａ】
0004335449.tif 000028
【図１２Ｂ】
0004335449.tif 000029
【図１２Ｃ】
0004335449.tif 000030
【図１３】
0004335449.tif 000031
【図１４】
0004335449.tif 000032
【図１５】
0004335449.tif 000033
【図１６】
0004335449.tif 000034
【図１７】
0004335449.tif 000035
【図１８】
0004335449.tif 000036
【図１９Ａ】
0004335449.tif 000037
【図１９Ｂ】
0004335449.tif 000038
【図２０Ａ】
0004335449.tif 000039
【図２０Ｂ】
0004335449.tif 000040
【図２０Ｃ】
0004335449.tif 000041
【図２０Ｄ】
0004335449.tif 000042
【図２１】
0004335449.tif 000043
【図２２Ａ】
0004335449.tif 000044
【図２２Ｂ】
0004335449.tif 000045
【図２３】
0004335449.tif 000046
【図２４Ａ】
0004335449.tif 000047
【図２４Ｂ】
0004335449.tif 000048
【図２５Ａ】
0004335449.tif 000049
【図２５Ｂ】
0004335449.tif 000050
【図２５Ｃ】
0004335449.tif 000051
【図２５Ｄ】
0004335449.tif 000052
【図２６】
0004335449.tif 000053
【図２７】
0004335449.tif 000054
【図２８】
0004335449.tif 000055
【図２９】
0004335449.tif 000056
【図３０】
0004335449.tif 000057