(57)【特許請求の範囲】
【請求項１】
人間対象のアバターを構築するための方法であって、
前記人間対象のデプスマップを取得するステップと、
前記デプスマップに基づいて前記人間対象の仮想骨格を得るステップと、
前記仮想骨格の所定の点の間の距離に対応する特性距離のセットを前記仮想骨格から集めるステップと、
前記特性距離を、機械学習を使用して訓練されるアルゴリズムへの入力として提供するステップであって、前記アルゴリズムが、前記特性距離の関数として仮想身体メッシュを出力するために、ある範囲の姿勢での少なくとも１人の人間、および、１つの姿勢でのある範囲の人間を使用して訓練されている、提供するステップと、
前記仮想身体メッシュを、前記デプスマップ上の点と、前記仮想身体メッシュの対応する点との間の距離を小さくするように前記特性距離を変動させることにより精緻化するステップと、
前記人間対象の顔特徴に似ている顔特徴を伴う、前記仮想身体メッシュとは別個の仮想頭部メッシュを構築するステップと、
前記仮想身体メッシュを前記仮想頭部メッシュに接続するステップと
を含む方法。
【請求項２】
請求項１に記載の方法であって、前記仮想骨格を再度位置決めするステップと、前記仮想身体メッシュの変形を、再度位置決めされた前記仮想骨格に基づいて計算するステップとをさらに含む方法。
【請求項３】
請求項２に記載の方法であって、前記変形を計算するステップが、前記仮想身体メッシュに線形スキニングモデルを適用するステップを含む、方法。
【請求項４】
請求項２に記載の方法であって、前記変形を計算するステップが、前記仮想身体メッシュに機械的スキニングシミュレーションを適用するステップを含む、方法。
【請求項５】
請求項２に記載の方法であって、前記アバターをアニメーションさせるために、再度位置決めする前記ステップと計算する前記ステップとを繰り返すステップをさらに含む方法。
【請求項６】
請求項５に記載の方法であって、アニメーションさせる前記アバターを、ビデオゲーム内のキャラクタとして使用するステップをさらに含む方法。
【請求項７】
請求項１に記載の方法であって、特性距離の前記セットが、前記人間対象の身体のサイズおよび形状に関係付けられる、方法。
【請求項８】
請求項１に記載の方法であって、回転、身体姿勢変換、および身体形状変換を、前記仮想身体メッシュを得るために仮想身体メッシュテンプレートに適用するステップをさらに含む方法。
【請求項９】
請求項１に記載の方法であって、前記デプスマップが第１のデプスマップであり、前記仮想頭部メッシュが、第２のデプスマップに基づいて構築され、前記第２のデプスマップにおいては、前記人間対象の１以上の顔特徴が、前記第１のデプスマップにおいてのものよりも微細に解像される、方法。
【請求項１０】
請求項９に記載の方法であって、仮想頭部メッシュテンプレートを、前記第２のデプスマップ上の点と、前記仮想頭部メッシュ上の対応する点との間の距離を最小化するように変形するステップをさらに含む方法。
【請求項１１】
請求項１に記載の方法であって、前記仮想身体メッシュを、前記人間対象の顔および皮膚テクスチャと調和するように合成される身体テクスチャによって補うステップをさらに含む方法。
【請求項１２】
請求項１に記載の方法であって、前記仮想身体メッシュを、前記人間対象に対しての売り物の実際の衣類に似ているようにモデリングされる仮想衣類によって補うステップをさらに含む方法。
【請求項１３】
請求項１２に記載の方法であって、構築され衣類があてがわれた前記アバターを、前記人間対象による再検討のために提示するステップをさらに含む方法。
【請求項１４】
人間対象のアバターを構築するための方法であって、
前記人間対象のデプスマップを取得するステップと、
前記デプスマップに基づいて前記人間対象の仮想骨格を得るステップと、
前記仮想骨格の所定の点の間の距離に対応する特性距離のセットを前記仮想骨格から集めるステップと、
前記特性距離を、機械学習を使用して訓練されるアルゴリズムへの入力として提供するステップであって、前記アルゴリズムが、前記特性距離の関数として仮想身体メッシュを出力するために、ある範囲の姿勢での少なくとも１人の人間、および、１つの姿勢でのある範囲の人間を使用して訓練されている、提供するステップと、
前記仮想身体メッシュを、前記デプスマップ上の点と、前記仮想身体メッシュの対応する点との間の距離を最小化するように前記特性距離を変動させることにより精緻化するステップと、
前記人間対象の顔特徴に似ている顔特徴を伴う、前記仮想身体メッシュとは別個の仮想頭部メッシュを構築するステップと、
前記仮想身体メッシュを前記仮想頭部メッシュに接続するステップと
を含む方法。
【請求項１５】
請求項１４に記載の方法であって、前記仮想身体メッシュが、反復最近傍点アルゴリズムを適用することにより精緻化される、方法。
【請求項１６】
人間対象のアバターを構築するためのシステムであって、
論理サブシステムと、
命令を保持する記憶サブシステムであって、前記命令は、前記論理サブシステムに、
デプスマップに基づいて前記人間対象の仮想骨格を得ることと、
前記仮想骨格の所定の点の間の距離に対応する特性距離のセットを前記仮想骨格から集めることと、
前記特性距離を、機械学習を使用して訓練されるアルゴリズムへの入力として提供することであって、前記アルゴリズムが、前記特性距離の関数として仮想身体メッシュを出力するために、ある範囲の姿勢での少なくとも１人の人間、および、１つの姿勢でのある範囲の人間を使用して訓練されている、提供することと、
前記仮想身体メッシュを、前記デプスマップ上の点と、前記仮想身体メッシュの対応する点との間の距離を小さくするように前記特性距離を変動させることにより精緻化することと、
前記仮想身体メッシュを仮想衣類によって補うことと、
前記人間対象の顔特徴に似ている顔特徴を伴う、前記仮想身体メッシュとは別個の仮想頭部メッシュを構築することと、
前記仮想身体メッシュを前記仮想頭部メッシュに接続することと
をさせる、記憶サブシステムと
を備えるシステム。
【請求項１７】
請求項１６に記載のシステムであって、
前記論理サブシステムに動作可能に結合され、前記人間対象のデプスマップを取得するように構成されるデプスカメラと、
前記論理サブシステムに動作可能に結合され、前記人間対象の顔のカラー画像を取得するように構成されるカラーカメラと
をさらに備え、
前記命令は、前記論理サブシステムに、前記仮想身体メッシュを、前記カラー画像から導出される皮膚色および皮膚テクスチャのうちの１つまたは複数によって補うことをさせる、システム。
【請求項１８】
請求項１６に記載のシステムであって、前記特性距離が、身長、脚長、腕長、肩幅、胸半径、ウエスト半径、臀部半径、腕半径、および脚半径のうちの１つまたは複数を含む、システム。
【請求項１９】
請求項１６に記載のシステムであって、前記ある範囲の姿勢が、１つまたは複数の立ち姿勢、および、１つまたは複数の座り姿勢を含む、システム。
【請求項２０】
請求項１６に記載のシステムであって、前記ある範囲の人間が、様々な身体の身長および様々な身体の体重の男性および女性の人間を含む、システム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]アバターは、対象、例えば人間対象のポーザブル（ｐｏｓａｂｌｅ）仮想表現である。現時ではアバターは、プレーヤを表すためにビデオゲームで普通に使用されるが、多くの他の用途が同様に可能である。ゲーミングの世界の外側の用途に対しては、アバターとしての人間対象の表現は、適した忠実度のアバターを構築することのコストおよび複雑度により制限される場合がある。特に、真に迫るアバターを構築するのに十分に詳細に対象の形状および顔特徴を捕捉することは、高価なスタジオ品質の機器を使用する長々しい画像取得を必要とする場合がある。
【発明の概要】
【０００２】
[0002]本開示の１つの実施形態は、人間対象のアバターを構築するための方法を提供する。方法は、対象のデプスマップを取得するステップと、デプスマップに基づいて対象の仮想骨格を得るステップと、特性距離のセットを仮想骨格から集めるステップとを含む。そのような距離は、仮想骨格の所定の点の間の距離に対応する。この例の方法では特性距離は、機械学習を使用して訓練されるアルゴリズムへの入力として提供される。アルゴリズムは、特性距離の関数として仮想身体メッシュを出力するために、ある範囲の姿勢での実際の人間モデル、および、単一の姿勢でのある範囲の人間モデルを使用して訓練され得る。方法は、対象の顔特徴に似ている顔特徴を伴う、仮想身体メッシュとは別個の仮想頭部メッシュを構築するステップと、仮想身体メッシュを仮想頭部メッシュに接続するステップとをさらに含む。
【０００３】
[0003]この概要は、詳細な説明においてさらに説明される概念の選択物を、単純化された形式で紹介するために提供されるものである。この概要は、請求される主題の重要な特徴または本質的な特徴を識別することは意図されず、この概要は、請求される主題の範囲を限定するために使用されることもまた意図されない。さらに請求される主題は、本開示の任意の部分で指摘される何らかの欠点を解決する実装形態に限定されない。
【図面の簡単な説明】
【０００４】
【図１】[0004]本開示の実施形態による、人間対象のアバターを構築するためのシステムを示す図である。
【図２】[0005]本開示の実施形態による、人間対象のアバターを構築するための方法を例示する図である。
【図３】[0006]本開示の実施形態による、仮想骨格の態様を示す図である。
【図４】[0007]本開示の実施形態による、仮想身体メッシュの態様を示す図である。
【図５】[0008]本開示の実施形態による、仮想頭部メッシュの態様を示す図である。
【図６】[0009]本開示の実施形態による、仮想身体メッシュに接続された仮想頭部メッシュの態様を示す図である。
【図７】[0010]本開示の実施形態による、アバターをアニメーションさせるための方法を例示する図である。
【図８】[0011]本開示の実施形態による、小売環境でアバターを使用するための方法を例示する図である。
【図９】[0012]本開示の実施形態による、アバターの提示および再検討を例示する図である。
【図１０】[0013]本開示の実施形態による、コンピューティングシステムの態様を概略的に示す図である。
【発明を実施するための形態】
【０００５】
[0014]次に本開示の態様が、例により、および、上記で列挙された例示される実施形態を参照して説明される。１つまたは複数の実施形態で実質的に同じである場合がある、構成要素、プロセスステップ、および他の要素は、同等に同一物であると認められ、最小限の繰り返しによって説明される。しかしながら、同等に同一物であると認められる要素が、いくらかの程度は異なる場合もあるということが留意されよう。本開示に含まれる図面の図は概略的であり、全体的に一定の縮尺で描画されないということがさらに留意されよう。むしろ、図に示される構成要素の様々な描画縮尺、アスペクト比、および数は、ある種の特徴または関係性を確認するのをより容易にするために、目的をもって実際とは異なるものにされる場合がある。
【０００６】
[0015]本開示による「アバター」は、人間対象のコンピュータ表現である。アバターは、ポリゴンメッシュを含む、ただしそれに限定されない、１つまたは複数の適したデータ構造により実施され得る。一部の実施形態ではアバターは、表示のためにレンダリングされる場合がある。他の実施形態ではアバターは、表示のためにレンダリングされない。本開示の残りの部分では、人間対象のアバターを構築するための様々なシステムおよび方法を提示する。これらのシステムおよび方法は、様々な用途、例えばビデオゲーム、対話型訓練ソフトウェア、物理療法で、または小売環境で使用され得る。より一般的にはアバターは、対象の仮想表現が所望される場合はいつでも使用され得る。
【０００７】
[0016]小売環境でのアバターの１つの例の用途は、顧客が様々な物品を仮想的に「試着する」ことを可能にすることである。そのような物品は、例として、衣類、アイウェア、履物、アクセサリ、人工的補充物、宝石類、入れ墨、および／または化粧を含み得る。自分のアバターがそのような物品によって仮想的な形式で補われることで、顧客は、対応する実際の物品を身に着けるときに自分がどのように見える可能性があるかを予測することが可能になり得る。この手法は、時間を節約するために、試着室に実際に足を運ぶ前に物品を事前に選別するために使用され得る。加えて顧客は、仮想的な物品によって補われた自分のアバターの画像を他者と共有することに決めることが可能である。一部のシナリオでは共有は、離れた状態で、例えば電子メールまたはセル電話を介して、物理的に存在しない友人または家族構成員との間で行われ得る。この様式では顧客は、物品を購入する意思決定を行う前に別の人の助言から得をする場合がある。アバターベースのオンラインの小売体験では、物品を選択すること、物品を試着すること、およびその後物品を購入することのプロセス全体は、顧客の自宅または仕事場で人目にふれずに行われ得る。
【０００８】
[0017]現在の技術をもってしても、アバター構築に関しては急峻な忠実度対コスト曲線が存在する。ビデオゲーム用途に適した低忠実度アバターは、高価でない機器を使用して簡単に構築され得る。これに対して、上記で指摘された用途は、はるかに高い忠実度のアバターを必要とする場合がある。高忠実度アバター、所与の人間対象に実際に似ているものは、典型的には、特殊化されたスタジオ品質の機器を使用して構築される。特に高解像度デプスカメラが、アバターが基づく３次元画像データを取得するために使用される場合がある。
【０００９】
[0018]近年では、現況技術の民生用デプスカメラが、ビデオゲームシステムおよびパーソナルコンピュータ用のユーザ入力デバイスの形式で出現している。１つの例は、Ｒｅｄｍｏｎｄ、ＷａｓｈｉｎｇｔｏｎのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ製のＫｉｎｅｃｔ（登録商標）システムである。本明細書で説明されるシステムおよび方法は、デプスデータを与えるためのデプスカメラを使用することが可能であり、そのデプスデータから人間対象の真に迫るアバターが構築される。これらのシステムおよび方法では、アバターの解像度はデプスカメラの解像度により制限されない。代わりにこの手法は、精巧な頭部および身体のモデリング技法を適用するものであり、デプスデータから導出される特性距離のセットが、高解像度の真に迫る身体モデルの構築を誘導し、次いでその身体モデルが、随意には、類似的に構築された頭部モデルに接続され、随意には、真に迫る皮膚色および皮膚テクスチャによって補われ得る。
【００１０】
[0019]図１は、１つの実施形態での、人間対象１２のアバターを構築するためのシステム１０を示す。システムは、対象を観測するように位置決めされる、視覚ベースのユーザ入力デバイス１４Ａを含む。例示される実施形態ではユーザ入力デバイスは、モニタ１８Ａに動作可能に結合されるパーソナルコンピュータ１６Ａに動作可能に結合される。１つの非限定的な実施形態では、ユーザ入力デバイスはＫｉｎｅｃｔ（登録商標）システムであり得るものであり、パーソナルコンピュータは、Ｍｉｃｒｏｓｏｆｔ  ｃｏｒｐｏｒａｔｉｏｎ製のＸＢＯＸ  ３６０（登録商標）などのビデオゲームシステムであり得る。パーソナルコンピュータは、以降でさらに詳細に説明されるように、論理サブシステム２２を、関連する記憶サブシステム２４とともに含み得る。記憶サブシステムは、論理サブシステムにここで説明される方法の態様を履行させる命令を含み得る。
【００１１】
[0020]図１に例示される実施形態では、ユーザ入力デバイス１４Ａは、対象１２のデプスマップを取得するように構成されるデプスカメラ２６を含む。ユーザ入力デバイスは、少なくとも対象の顔のカラー画像を取得するように構成されるカラーカメラ２８もまた含む。より一般的には、ユーザ入力デバイス内のカメラの性質および数は、本開示の様々な実施形態で異なる場合がある。そのようなカメラは、画像データを取得するように構成され得るものであり、その画像データからデプスマップが下流の処理によって得られる。本明細書では用語「デプスマップ」は、画像化されるシーンの対応する領域に記録される画素のアレイを指し、各々の画素のデプス値が、対応する領域のデプスを指示する。「デプス」は、ユーザ入力デバイスからの距離が増大するとともに増大する、デプスカメラの光学軸に平行な座標として定義される。
【００１２】
[0021]１つの実施形態では、１対のステレオカメラからの画像データが同時記録され（ｃｏ−ｒｅｇｉｓｔｅｒｅｄ）、デプスマップをもたらすように数学的に組み合わされ得る。他の実施形態ではユーザ入力デバイス１４Ａは、数多くの離散的な特徴部（例えば、線またはドット）を含む構造化赤外線照明を投射するように構成され得る。デプスカメラは、対象から反射される構造化照明を画像化するように構成され得る。画像化される対象の様々な領域での近接する特徴部の間の間隔に基づいて、対象のデプスマップが構築され得る。
【００１３】
[0022]他の実施形態ではユーザ入力デバイス１４Ａは、パルス赤外線照明を投射するように構成され得る。１対のカメラが、対象から反射されるパルス照明を検出するように構成され得る。両方のカメラは、パルス照明に同期させられる電子シャッタを含み得るが、カメラに対する積分時間は、発生源から対象へ、およびその後カメラへのパルス照明の画素解像飛行時間（ｐｉｘｅｌ−ｒｅｓｏｌｖｅｄ  ｔｉｍｅ−ｏｆ−ｆｌｉｇｈｔ）が、２つのカメラの対応する画素で受け取られる光の相対量から識別可能であるように異なる場合がある。
【００１４】
[0023]上記で説明された構成によって、人間対象のアバターを構築するための様々な方法が可能になる。一部のそのような方法が、次に例によって、上記の構成を引き続き参照して説明される。しかしながら、ここで説明される方法、および本開示の範囲内の他のものが、異なる構成により同様に使用可能にされ得るということが理解されよう。方法は、システム１０が動作しているときはいつでも始められ得るものであり、繰り返し実行され得る。本明細書で説明および／または例示されるプロセスステップの一部は、一部の実施形態では、本開示の範囲から逸脱することなく省略され得る。同じように、プロセスステップの指示されるシーケンスは、意図される結果を達成するために常に必要とされるとは限らない場合があり、例示および説明を容易にするために提供されるものである。例示される処置、機能、または動作の、１つまたは複数は、使用されている個別の方策に応じて繰り返し遂行され得る。
【００１５】
[0024]図２は、人間対象のアバターを構築するための例の方法３０を例示する。方法３０の３２で、対象のデプスマップが取得される。ここで企図される様々な実施形態では、デプスマップは、ユーザ入力デバイス１４Ａなどのユーザ入力デバイスで、またはそのユーザ入力デバイスから取得され得る。
【００１６】
[0025]３４で対象の仮想骨格が、取得されたデプスマップに基づいて得られる。図３は、１つの実施形態での例の仮想骨格３６を示す。仮想骨格は、複数の関節部４０に枢動可能に結合される複数の骨格断片３８を含む。一部の実施形態では身体部分名称が、各々の骨格断片および／または各々の関節部に割り当てられ得る。図３では各々の骨格断片３８の身体部分名称は、添えられる文字により表され、Ａは頭部を表し、Ｂは鎖骨を表し、Ｃは上腕を表し、Ｄは前腕を表し、Ｅは手を表し、Ｆは胴を表し、Ｇは骨盤を表し、Ｈは大腿を表し、Ｊは下腿を表し、Ｋは足を表す。同じように、各々の関節部４０の身体部分名称は、添えられる文字により表され、Ａは首を表し、Ｂは肩を表し、Ｃは肘を表し、Ｄは手首を表し、Ｅは腰を表し、Ｆは股関節を表し、Ｇは膝を表し、Ｈは足首を表す。当然ながら、図３に示される骨格断片および関節部の配置構成は決して限定的ではない。本開示と整合する仮想骨格は、事実上任意のタイプおよび数の骨格断片および関節部を含み得る。
【００１７】
[0026]１つの実施形態では各々の関節部は、様々なパラメータ、例えば、関節部位置を指定するデカルト座標、関節部回転を指定する角度、および、対応する身体部分の立体構造（開いた手、閉じた手等）を指定する追加的なパラメータが割り当てられ得る。仮想骨格は、各々の関節部に対するこれらのパラメータのいずれかまたはすべてを含むデータ構造の形式をとり得る。この様式では、仮想骨格を規定する距離データ、すなわち、その仮想骨格のサイズ、形状、向き、位置等が、関節部に割り当てられ得る。
【００１８】
[0027]次に図２に戻ると、仮想骨格の骨格断片および／または関節部は、方法３０の３４でデプスマップとフィッティングされ得る。この処置は、骨格の様々な関節部の適切な位置、回転角度、および他のパラメータ値を決定することが可能である。任意の適した最小化手法によって、骨格断片の長さ、ならびに、関節部の位置および回転角度は、デプスマップの様々な輪郭部との一致のために調整され得る。一部の実施形態では、骨格断片をフィッティングする行為は、デプスマップの複数の輪郭部に身体部分名称を割り当てることを含み得る。随意には身体部分名称は、最小化に先立って割り当てられ得る。したがってフィッティング手順は、身体部分名称により、または部分的に身体部分名称に基づいて通知され得る。例えば、身体モデルの前もって訓練された集合体が、デプスマップからのある決まった画素を、個別の身体部分に属するようにラベリングするために使用され得るものであり、その身体部分に対して適切な骨格断片が、次いで、ラベリングされた画素とフィッティングされ得る。所与の輪郭部が対象の頭部と命名されるならば、フィッティング手順は、単一の関節部、すなわち首に枢動可能に結合される骨格断片を、その輪郭部とフィッティングしようと努めることが可能である。輪郭部が前腕と命名されるならば、フィッティング手順は、骨格断片であって、その断片の各々の端部に１つである２つの関節部に結合される骨格断片をフィッティングしようと努めることが可能である。さらに、所与の輪郭部が対象のいずれの身体部分にも対応しそうにないと決定されるならば、その輪郭部は、マスクされる場合があり、または他の方法で、後続の骨格フィッティングから排除される場合がある。前述の説明は、仮想骨格を構築するために使用され得る手法の範囲を限定すると解釈されるべきではなく、その理由は、仮想骨格は、本開示の範囲から逸脱することなく任意の適した様式でデプスマップから導出され得るからというものである。
【００１９】
[0028]図２で続けると、４２で、特性距離のセットが、３４で得られた仮想骨格から集められる。そのような距離は、仮想骨格の所定の点の間の距離に対応し得る。一部の実施形態では特性距離のセットは、対象の身体のサイズおよび形状に明瞭に関係付けられ得る。例えば特性距離は、対象の身長、脚長、腕長、肩幅、胸半径、ウエスト半径、臀部半径、腕半径、および脚半径の、１つまたは複数を含み得る。
【００２０】
[0029]４４で、この様式で集められた特性距離のセットが、対象の身体に似ている仮想身体メッシュを出力するように構成されるアルゴリズムへの入力として提供される。換言すればアルゴリズムは、特性距離の関数として仮想身体メッシュを計算する。一部の実施形態では、この目的で使用されるアルゴリズムは、機械学習を使用して訓練されるアルゴリズムであり得る。より詳細にはアルゴリズムは、下記でさらに詳細に説明されるように、ある範囲の姿勢での実際の人間モデル、および、単一の姿勢でのある範囲の人間モデルを使用して訓練されているものであり得る。
【００２１】
[0030]１つの非限定的な実施形態では、仮想身体メッシュは、仮想身体メッシュテンプレートＭの変形により構築される。テンプレートは、実際の人間モデルの３６０度、３Ｄスキャンから捕捉された特定の起源の姿勢および形状を伴って用意される。このテンプレートに適用される姿勢および形状の変動は、テンプレートメッシュＭの各々の三角形のアフィン変換として計算される。具体的には、三角形ｐｋがその三角形の辺ｖｋ，ｊにより識別され、その辺ｖｋ，ｊは、第０の頂点から第ｊの頂点へのベクトルとして定義され、すなわち、ｊ＝１、２に対してｖｋ，ｊ＝ｙｋ，ｊ−ｙｋ，０である。次いで、新しい姿勢での、および新しい形状を伴う身体メッシュに対して、各々の新しい三角形ｐ＊ｋが、対応するテンプレートメッシュ三角形ｐｋの変換として計算される。記号では次式となる。
【００２２】
【数１】
0006018707.tif 000002
【００２３】
ただしＲＩは、第Ｉの関節でつながれた骨格での、その堅い骨の回転である。同じ第Ｉの骨格に属するすべての三角形は同じ回転が提供され、したがってＲＩ＝ＲＩ［ｋ］である。Ｑｋは、姿勢の変化により引き起こされる各々の三角形の辺の変形を記述するために使用される３×３アフィン変換行列である。Ｓｋは身体形状変形を表す。したがって回転、身体姿勢変換、および身体形状変換が各々、仮想身体メッシュを得るために仮想身体メッシュテンプレートに適用される。
【００２４】
[0031]このシステムでは回転ＲＩは、上記で、方法ステップ３４の文脈で説明されたように得られる。未知のＱｋは、以下のように線形回帰から計算される。単一の人間モデルのある範囲の３Ｄメッシュが、異なる姿勢で捕捉される。これらのメッシュＭｉは同じトポロジーを有し、アフィン変換Ｑｋｉが、次式を最小化することにより計算される。
【００２５】
【数２】
0006018707.tif 000003
【００２６】
ここでｗｓは、第２項の重みを調整するものである。推定されたＱ行列、および、捩れベクトルにより表される既知のＲのセットが与えられると、ＱとＲとの間の関係性が線形回帰され得る。このようにＱがＲから予測され得るものであり、ＲからＱへの線形変換が、高速計算のためにシステム内に記憶される。
【００２７】
[0032]身体形状変換Ｓを得るために、異なる人間モデルのある範囲の３Ｄメッシュが、同じ姿勢で捕捉される。Ｓは、次式を最小化することによりＲおよびＱから計算される。
【００２８】
【数３】
0006018707.tif 000004
【００２９】
女性の体型と男性の体型との間の自然の違いをより良好に表すために、訓練プロセスが、女性モデルおよび男性モデルに関して別々に適用される。特性距離が、３Ｄメッシュにおいてさらに測定される。線形マップが、距離、および、９×Ｎベクトルにより表される形状変換行列Ｓを基に築造され、ここでＮはテンプレートメッシュの三角形面の数である。主成分分析（ＰＣＡ：ｐｒｉｎｃｉｐａｌ  ｃｏｍｐｏｎｅｎｔ  ａｎａｌｙｓｉｓ）が、主要な部分空間を捕捉するためにこの線形空間上で遂行される。このように、特性距離のセット、例えば、身長、腕長、肩幅、胸半径、およびウエスト半径を含むセットが与えられると、身体形状変換ＳはＰＣＡにより概算され得る。
【００３０】
[0033]特性距離のセットが測定され、回転Ｒが、所与のデプスマップおよび仮想骨格に対して得られる。ＱおよびＳは、前述の段落で説明されたように計算され得る。次いで最終的なメッシュが、次式の最小二乗システムを解くことにより計算される。
【００３１】
【数４】
0006018707.tif 000005
【００３２】
ただし
【００３３】
【数５】
0006018707.tif 000006
【００３４】
は変数である。このモデルは並進不変であるので、頂点は、ｙ０＝（０，０，０）と設定することにより個別の場所に固定される。図４は、上記のアルゴリズムを使用して構築され得る例の仮想身体メッシュ４６を示す。
【００３５】
[0034]再び図２に戻ると、４８で、仮想身体メッシュは随意には精緻化され得る。より詳細には仮想身体メッシュは、デプスマップ上の点と、仮想身体メッシュの対応する点との間の距離を最小化するように特性距離を変動させることにより精緻化され得る。１つの実施形態では仮想身体メッシュは、非線形ＩＣＰアルゴリズムを適用することにより精緻化され得る。特性距離のセット、および、最終的なメッシュの頂点の位置を変数とみなして、以下の二次関数が、デプスマップと最終的なメッシュとの間の距離の分散が既定のしきい値より小さくなるまで、または、反復の最大数が達せられるまで、反復して最小化される。
【００３６】
【数６】
0006018707.tif 000007
【００３７】
[0035]最終的なメッシュは、上記の結果が提供される２つの式から初期化され、特性距離は測定から初期化される。メッシュとデプスマップとの間の距離は、最も近い近傍の点のすべての対の間の二乗距離の総和である。
【００３８】
[0036]方法３０の５０で、仮想身体メッシュとは別個の仮想頭部メッシュが構築される。仮想頭部メッシュは、本明細書の上記で言及された第１のデプスマップとは異なる第２のデプスマップに基づいて構築され得る。第２のデプスマップは、対象が、第１のデプスマップが取得されるときよりもデプスカメラの近傍にあるときに取得され得る。１つの実施形態では第２のデプスマップは、対象の頭部の３つの異なる画像捕捉物、すなわち、正面図、右に３０度転回された図、および、左に３０度転回された図の複合体であり得る。第２のデプスマップでは、対象の顔特徴が、第１のデプスマップでよりも微細に解像され得る。他の実施形態では対象の頭部は、連続する画像捕捉の間に３０度より大きい、または３０度より小さい角度だけ回転させられ得る。
【００３９】
[0037]仮想頭部メッシュを構築するために、仮想頭部メッシュテンプレートが、第２のデプスマップ上の点と、仮想頭部メッシュ上の対応する点との間の距離を最小化するように変形され得る。次いで仮想頭部メッシュは、ユーザ入力デバイスのカラーカメラからの１つまたは複数の画像捕捉物から導出される色およびテクスチャによって補われ得る。この様式では仮想頭部メッシュは、実際の人間対象に似ているように個人化され得るものであり、すなわちその仮想頭部メッシュは、形状で、および皮膚色／テクスチャでの両方で、対象の顔特徴に似ている顔特徴を提示し得る。
【００４０】
[0038]５２で仮想身体メッシュは、仮想頭部メッシュに接続される。このステップでは、仮想身体テンプレートメッシュの頭部が、最初に切り取られ、次いで、仮想頭部テンプレートメッシュに接続されることが、テンプレートメッシュの２つの開放状態の境界を三角形にすることにより行われる。次いで接続されたモデルは、システム内に記憶され、仮想身体メッシュおよび仮想頭部メッシュの準備が整ったときにロードされる。２つのテンプレートメッシュがそれぞれ２つの仮想メッシュにより置換されることが、それらは同じ接続性を有するので行われる。仮想頭部メッシュの縮尺は、仮想身体メッシュと整合する比率によって調整される。首の周囲の頂点はさらに平滑化され、一方で他の頂点は固定的に保たれる。この様式では、幾何学的に現実的で継ぎ目のない頭部／身体メッシュが構築され得る。
【００４１】
[0039]５４で仮想身体メッシュは、対象に対して適切な皮膚色および／または皮膚テクスチャによって補われる。一部の実施形態では、皮膚色および／または皮膚テクスチャは、対象の顔を含む領域からのカラー画像データなどの、ユーザ入力デバイス１４Ａからのカラー画像データに基づいて選択され得る。換言すれば、仮想身体メッシュに適用される皮膚色および／または皮膚テクスチャは、対象の顔のものと調和するように合成され得る。１つの実施形態ではシステムは、最初に、あらかじめ設計されたデータベース内の身体テクスチャ画像を選択し、次いで低周波数色成分を、その身体テクスチャ画像の全体的な色が顔の皮膚の色と整合するように変調する。図５は、例の仮想頭部メッシュ５６を示す。図６は、組み合わされた頭部／身体メッシュ５８を示し、仮想頭部メッシュ５６が仮想身体メッシュ４６に接続される。
【００４２】
[0040]図７は、アバターをアニメーションさせるための例の方法６０を例示する。方法６０の３０で、アバターが構築される。１つの実施形態ではアバターは、本明細書の上記で例示された方法によって構築され得る。６２で、アニメーションさせるアバターに対する初期の所望の姿勢が指定される。初期の所望の姿勢は、腕が広げられ、右手が持ち上げられ、左脚が引き上げられた状態の立ち姿勢等であり得る。６４で仮想骨格が、所望の姿勢に基づいて再度位置決めされる。６６で、仮想身体メッシュの変形が、上記で説明されたように、再度位置決めされた仮想骨格に基づいて計算される。１つの実施形態では、変形を計算することは、仮想身体メッシュに線形スキニングモデル（ｌｉｎｅａｒ  ｓｋｉｎｎｉｎｇ  ｍｏｄｅｌ）を適用することを含み得る。別の実施形態では、変形を計算することは、仮想身体メッシュに機械的スキニングシミュレーション（ｍｅｃｈａｎｉｃａｌ  ｓｋｉｎｎｉｎｇ  ｓｉｍｕｌａｔｉｏｎ）を適用することを含み得る。機械的スキニングシミュレーションでは、対象の肉付きおよび皮膚の動きが、ニュートン物理学によって、仮想骨格の変位の関数としてシミュレートされる。６６から方法は、後続の所望の姿勢が指定されると６２に戻ることが可能である。後続の所望の姿勢は、例えば漸次変化させられた姿勢であり得る。したがって、仮想骨格を再度位置決めするステップ、および、仮想身体メッシュの変形を計算するステップは、アバターをアニメーションさせるために繰り返され得る。１つの実施形態では、この手法によってアニメーションさせるアバターは、ビデオゲーム内のキャラクタとして使用され得る。
【００４３】
[0041]本明細書で企図される手法では、事実上任意の入力機構が、アバターに対する初期および後続の所望の姿勢を指定するために使用され得る。そのような機構は、身体運動を指図する口頭のコマンド、または、ユーザインターフェースを介した身体運動および／もしくはジェスチャのメニューの中からの選択を含み得る。さらに別の実施形態では、ユーザ入力デバイス１４Ａによるリアルタイム骨格追跡が、アニメーションさせるアバターの運動を誘導する場合がある。より詳細には対象は、単に、アバターに対して所望される様式でその対象自身の身体を動かすことにより、アバターの運動を指定することが可能である。ユーザ入力デバイスは、対象の身体の運動を追跡し、方法６０が履行されるパーソナルコンピュータにジェスチャデータのストリームを提供するように構成され得る。
【００４４】
[0042]図８は、小売環境でアバターを使用するための例の方法６８を例示する。方法６８の３０でアバターが、例えば本明細書の上記で例示された方法によって構築される。７０でアバターの仮想身体メッシュが、仮想衣類によって補われる。仮想衣類は、対象に対しての売り物の実際の衣類に似ているようにモデリングされ得る。７１で、そのように構築されそのように衣類があてがわれたアバターが、対象による再検討のために提示される。アバターは、小売施設で、または、対象の自宅もしくは仕事場内等で、ビデオモニタ上で再検討のために提示され得る。図９は、１つの例のシナリオでの、対象１２によるアバター７２の提示および再検討を例示する。本明細書で説明された様々な方法からの態様が一体で使用され得るということが留意されよう。例えば、方法６８で対象に対して再検討のために提示される、衣類があてがわれたアバターを、方法６０によってさらにアニメーションさせる場合がある。
【００４５】
[0043]一部の実施形態では、上記で説明された方法およびプロセスは、１つまたは複数のコンピューティングデバイスのコンピューティングシステムに結び付けられ得る。特にそのような方法およびプロセスは、コンピュータ・アプリケーション・プログラムもしくはサービス、アプリケーション・プログラミング・インターフェース（ＡＰＩ：ａｐｐｌｉｃａｔｉｏｎ−ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）、ライブラリ、および／または、他のコンピュータプログラム製品として実装され得る。
【００４６】
[0044]図１０は、上記で説明された方法およびプロセスの１つまたは複数を遂行することが可能である、コンピューティングシステム１６の非限定的な実施形態を概略的に示す。コンピューティングシステム１６は、単純化された形式で示される。事実上任意のコンピュータアーキテクチャが、本開示の範囲から逸脱することなく使用され得るということが理解されよう。異なる実施形態ではコンピューティングシステム１６は、メインフレームコンピュータ、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ホームエンターテイメントコンピュータ、ネットワークコンピューティングデバイス、ゲーミングデバイス、モバイルコンピューティングデバイス、モバイル通信デバイス（例えば、スマートフォン）等の形式をとり得る。
【００４７】
[0045]コンピューティングシステム１６は、論理サブシステム２２および記憶サブシステム２４を含む。コンピューティングシステム１６は随意には、表示サブシステム１８、入力デバイスサブシステム１４、通信サブシステム７６、および／または、図１０に示されない他の構成要素を含み得る。コンピューティングシステム１６はさらに随意には、例えばキーボード、マウス、ゲームコントローラ、カメラ、マイクロホン、および／もしくはタッチスクリーンなどの、１つもしくは複数のユーザ入力デバイスを含み得るものであり、または、それらのユーザ入力デバイスとインターフェース接続することが可能である。そのようなユーザ入力デバイスは、入力デバイスサブシステム１４の部分を形成し得るものであり、または、入力デバイスサブシステム１４とインターフェース接続することが可能である。
【００４８】
[0046]論理サブシステム２２は、命令を実行するように構成される１つまたは複数の物理的なデバイスを含む。例えば論理サブシステムは、１つまたは複数の、アプリケーション、サービス、プログラム、ルーチン、ライブラリ、オブジェクト、コンポーネント、データ構造、または他の論理構成物の部分である命令を実行するように構成され得る。そのような命令は、タスクを遂行する、データタイプを実装する、１つもしくは複数のコンポーネントの状態を変換する、または、他の方法で所望の結果に到達するように実装され得る。
【００４９】
[0047]論理サブシステムは、ソフトウェア命令を実行するように構成される１つまたは複数のプロセッサを含み得る。追加的に、または代替的に、論理サブシステムは、ハードウェアまたはファームウェアの命令を実行するように構成される、１つまたは複数のハードウェアまたはファームウェアの論理機械を含み得る。論理サブシステムのプロセッサは、シングルコアまたはマルチコアであり得るものであり、それらのプロセッサ上で実行されるプログラムは、順次、並列、または分散の処理のために構成され得る。論理サブシステムは随意には、離れて配置され得る、および／または、協調処理のために構成され得る、２つ以上のデバイスの中で分散される個々のコンポーネントを含み得る。論理サブシステムの態様は、クラウドコンピューティング構成で構成される、リモートアクセス可能なネットワーク化されたコンピューティングデバイスにより仮想化および実行され得る。
【００５０】
[0048]記憶サブシステム２４は、本明細書で説明された方法およびプロセスを実装するために論理サブシステムにより実行可能な、データおよび／または命令を保持するように構成される、１つまたは複数の物理的な非一時的なデバイスを含む。そのような方法およびプロセスが実装されるとき、記憶サブシステム２４の状態は、例えば異なるデータを保持するように変換され得る。
【００５１】
[0049]記憶サブシステム２４は、取り外し可能媒体および／または組み込みデバイスを含み得る。記憶サブシステム２４は、光学メモリデバイス（例えば、ＣＤ、ＤＶＤ、ＨＤ−ＤＶＤ、Ｂｌｕ−Ｒａｙ  Ｄｉｓｃ等）、半導体メモリデバイス（例えば、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等）、および／または、磁気メモリデバイス（例えば、ハードディスクドライブ、フロッピーディスクドライブ、テープドライブ、ＭＲＡＭ等）などを含み得る。記憶サブシステム２４は、揮発性、不揮発性、ダイナミック、スタティック、読み書き、読み出し専用、ランダムアクセス、順次アクセス、ロケーションアドレス可能、ファイルアドレス可能、および／または、内容アドレス可能のデバイスを含み得る。
【００５２】
[0050]記憶サブシステム２４が、１つまたは複数の物理的な非一時的なデバイスを含むということが十分認識されよう。これに対して一部の実施形態では、本明細書で説明された命令の態様は、有限の継続時間の間に物理的なデバイスにより保持されない、純粋な信号、例えば電磁気または光学の信号等により、一時的な方式で伝搬され得る。さらに、本開示に関係があるデータおよび／または他の形式の情報が、純粋な信号により伝搬され得る。
【００５３】
[0051]一部の実施形態では、論理サブシステム２２の、および記憶サブシステム２４の態様は、１つまたは複数のハードウェア論理構成要素内に一体に集積され得るものであり、それらの構成要素によって、本明細書で機能的に説明されたものが少なくとも部分的に履行され得る。そのようなハードウェア論理構成要素は、例えばフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定プログラムおよび用途向け集積回路（ｐｒｏｇｒａｍ−  ａｎｄ  ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）（ＰＡＳＩＣ／ＡＳＩＣ）、特定プログラムおよび用途向け標準製品（ｐｒｏｇｒａｍ−  ａｎｄ  ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｓｔａｎｄａｒｄ  ｐｒｏｄｕｃｔ）（ＰＳＳＰ／ＡＳＳＰ）、システムオンチップ（ＳＯＣ）システム、ならびに、複合プログラマブル論理デバイス（ＣＰＬＤ）を含み得る。
【００５４】
[0052]用語「モジュール」、「プログラム」、および「エンジン」は、個別の機能を遂行するために実装されるコンピューティングシステム１６の態様を説明するために使用され得る。一部の事例ではモジュール、プログラム、またはエンジンは、記憶サブシステム２４により保持される命令を実行する論理サブシステム２２によってインスタンスが生成され得る。異なるモジュール、プログラム、および／またはエンジンが、同じアプリケーション、サービス、コードブロック、オブジェクト、ライブラリ、ルーチン、ＡＰＩ、関数等からインスタンスが生成され得るということが理解されよう。同じように、同じモジュール、プログラム、および／またはエンジンが、異なるアプリケーション、サービス、コードブロック、オブジェクト、ルーチン、ＡＰＩ、関数等によりインスタンスが生成され得る。用語「モジュール」、「プログラム」、および「エンジン」は、実行可能ファイル、データファイル、ライブラリ、ドライバ、スクリプト、データベースレコード等の個々または群を内包し得る。
【００５５】
[0053]本明細書では「サービス」は、複数のユーザセッションにわたって実行可能なアプリケーションプログラムであるということが十分認識されよう。サービスは、１つまたは複数の、システムコンポーネント、プログラム、および／または他のサービスに利用可能であり得る。一部の実装形態ではサービスは、１つまたは複数のサーバコンピューティングデバイス上で稼働することが可能である。
【００５６】
[0054]含まれるとき、表示サブシステム１８は、記憶サブシステム２４により保持されるデータの視覚的表現を提示するために使用され得る。この視覚的表現は、グラフィカルユーザインターフェース（ＧＵＩ）の形式をとり得る。本明細書で説明された方法およびプロセスが、記憶サブシステムにより保持されるデータを変化させ、したがって記憶サブシステムの状態を変換する際に、表示サブシステム１８の状態が同じように、表層下のデータの変化を視覚的に表すように変換され得る。表示サブシステム１８は、事実上任意のタイプの技術を利用する１つまたは複数の表示デバイスを含み得る。そのような表示デバイスは、共用の筐体内で論理サブシステム２２および／もしくは記憶サブシステム２４と組み合わされ得るものであり、またはそのような表示デバイスは、周辺部の表示デバイスであり得る。
【００５７】
[0055]含まれるとき、通信サブシステム７６は、コンピューティングシステム１６を、１つまたは複数の他のコンピューティングデバイスと通信可能に結合するように構成され得る。通信サブシステム７６は、１つまたは複数の異なる通信プロトコルへの適合性がある、有線および／またはワイヤレスの通信デバイスを含み得る。非限定的な例として通信サブシステムは、ワイヤレス電話ネットワーク、または、有線もしくはワイヤレスのローカルエリアネットワークもしくはワイドエリアネットワークを介した通信のために構成され得る。一部の実施形態では通信サブシステムによって、コンピューティングシステム１６が、インターネットなどのネットワークを介して、他のデバイスに、および／または他のデバイスから、メッセージを送出および／または受信することが可能になり得る。
【００５８】
[0056]本開示の主題は、本明細書で開示された様々なプロセス、システム、および構成、ならびに、他の特徴、機能、行為、および／または特質の、すべての新規の、および自明でない、組合せおよび部分的組合せを、それらの一切の等価物と同様に含む。
【図１】
0006018707.tif 000008
【図２】
0006018707.tif 000009
【図３】
0006018707.tif 000010
【図４】
0006018707.tif 000011
【図５】
0006018707.tif 000012
【図６】
0006018707.tif 000013
【図７】
0006018707.tif 000014
【図８】
0006018707.tif 000015
【図９】
0006018707.tif 000016
【図１０】
0006018707.tif 000017