IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ロブロックス・コーポレーションの特許一覧

特表2024-507849ニューラルネットワークを使用したビデオからのロバストな顔面アニメーション
<>
  • 特表-ニューラルネットワークを使用したビデオからのロバストな顔面アニメーション 図1
  • 特表-ニューラルネットワークを使用したビデオからのロバストな顔面アニメーション 図2
  • 特表-ニューラルネットワークを使用したビデオからのロバストな顔面アニメーション 図3
  • 特表-ニューラルネットワークを使用したビデオからのロバストな顔面アニメーション 図4
  • 特表-ニューラルネットワークを使用したビデオからのロバストな顔面アニメーション 図5A
  • 特表-ニューラルネットワークを使用したビデオからのロバストな顔面アニメーション 図5B
  • 特表-ニューラルネットワークを使用したビデオからのロバストな顔面アニメーション 図6
  • 特表-ニューラルネットワークを使用したビデオからのロバストな顔面アニメーション 図7
  • 特表-ニューラルネットワークを使用したビデオからのロバストな顔面アニメーション 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-21
(54)【発明の名称】ニューラルネットワークを使用したビデオからのロバストな顔面アニメーション
(51)【国際特許分類】
   G06T 13/40 20110101AFI20240214BHJP
   G06T 7/00 20170101ALI20240214BHJP
   G06T 7/20 20170101ALI20240214BHJP
   H04N 21/234 20110101ALI20240214BHJP
   G06F 3/0481 20220101ALI20240214BHJP
【FI】
G06T13/40
G06T7/00 350C
G06T7/20 300B
H04N21/234
G06F3/0481
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023550284
(86)(22)【出願日】2022-02-22
(85)【翻訳文提出日】2023-10-13
(86)【国際出願番号】 US2022017381
(87)【国際公開番号】W WO2022178453
(87)【国際公開日】2022-08-25
(31)【優先権主張番号】63/152,327
(32)【優先日】2021-02-22
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/152,819
(32)【優先日】2021-02-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520317055
【氏名又は名称】ロブロックス・コーポレーション
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】イナキ・ナヴァッロ
(72)【発明者】
【氏名】ダリオ・クノイブーラー
(72)【発明者】
【氏名】テイメン・フェルヒュルスドンク
(72)【発明者】
【氏名】エロワ・デュ・ボワ
(72)【発明者】
【氏名】ウィル・ウェルチ
(72)【発明者】
【氏名】ヴィヴェク・ヴェルマ
(72)【発明者】
【氏名】イアン・ザックス
(72)【発明者】
【氏名】キラン・バト
【テーマコード(参考)】
5B050
5C164
5E555
5L096
【Fターム(参考)】
5B050AA10
5B050BA08
5B050BA12
5B050CA08
5B050DA04
5B050EA24
5B050EA27
5B050FA02
5B050FA05
5C164MA03S
5C164SB01P
5E555AA04
5E555AA09
5E555AA11
5E555AA27
5E555AA61
5E555AA76
5E555BA20
5E555BA38
5E555BA45
5E555BB38
5E555BC04
5E555BC08
5E555CA42
5E555CB67
5E555DB32
5E555DB57
5E555DC43
5E555DC84
5E555DC85
5E555DD06
5E555EA05
5E555EA07
5E555EA19
5E555EA22
5E555FA00
5L096CA04
5L096DA02
5L096EA35
5L096GA34
5L096HA02
5L096HA11
5L096KA04
(57)【要約】
本明細書において説明される実装形態は、クライアントデバイスにおいて捉えられる入力ビデオから3Dアバターのためのアニメーションを生成するための、方法、システム、およびコンピュータ可読媒体に関する。カメラは顔のビデオを撮影してもよく、一方、訓練された顔検出モデルおよび訓練された回帰モデルは、3Dアバターのアニメーションへと変換されることになるFACS重み、頭部姿勢、および顔面ランドマークのセットを出力する。加えて、より高い詳細度が、ユーザの好みおよび/またはクライアントデバイスにおける計算条件に基づいてインテリジェントに選択されてもよい。
【特許請求の範囲】
【請求項1】
完全畳み込みネットワークを使用して、ビデオの第1のフレームからバウンディングボックス候補のセットを識別するステップであって、各バウンディングボックス候補が顔を含む、ステップと、
畳み込みニューラルネットワークを使用して、バウンディングボックス候補の前記セットをバウンディングボックスへと改良するステップと、
過負荷の出力畳み込みニューラルネットワークを使用して、前記バウンディングボックスおよび前記第1のフレームに基づいて、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットを取得するステップと、
前記事前定義された表情重み、前記頭部姿勢、および前記顔面ランドマークのうちの前記1つまたは複数の前記第1のセットに基づいて、3次元(3D)アバターのアニメーションの第1のアニメーションフレームを生成するステップであって、前記アバターの頭部姿勢が前記第1のセットの中の前記頭部姿勢と一致し、前記アバターの顔面ランドマークが前記第1のセットの中の前記顔面ランドマークと一致する、ステップと、
前記第1のフレームの後の前記ビデオの各々の追加のフレームに対して、
前記追加のフレームに適用される前記バウンディングボックスが前記顔を含むかどうかを検出するステップと、
前記バウンディングボックスが前記顔を含むことが検出される場合、前記過負荷の出力畳み込みニューラルネットワークを使用して、前記バウンディングボックスおよび前記追加のフレームに基づいて、前記1つまたは複数の事前定義された表情重み、頭部姿勢、および顔面ランドマークの追加のセットを取得するステップと、
前記追加のセットを使用して前記3Dアバターの前記アニメーションの追加のアニメーションフレームを生成するステップと
を備える、コンピュータで実施される方法。
【請求項2】
前記追加のフレームのための前記バウンディングボックスが前記顔を含まないことが検出される場合、前記追加のフレームを前記第1のフレームとして設定するステップを備える、請求項1に記載のコンピュータで実施される方法。
【請求項3】
前記過負荷の出力畳み込みニューラルネットワークによって、舌出し条件を識別するステップをさらに備え、舌が前記顔の中で検出される、請求項1に記載のコンピュータで実施される方法。
【請求項4】
前記舌出し条件を識別することが、前記過負荷の出力畳み込みニューラルネットワークのサブモデルに基づく、請求項3に記載のコンピュータで実施される方法。
【請求項5】
前記過負荷の出力畳み込みネットワークが第1のニューラルネットワークであり、前記方法がさらに、追加の過負荷の出力畳み込みニューラルネットワークを使用して、前記バウンディングボックスおよび前記第1のフレームに基づいて、前記事前定義された表情重み、前記頭部姿勢、および前記顔面ランドマークのうちの1つまたは複数の前記第1のセットを改良するステップを備える、請求項1に記載のコンピュータで実施される方法。
【請求項6】
前記追加の過負荷の出力畳み込みニューラルネットワークが、前記第1のニューラルネットワークと比較してより高い詳細度を提供する、請求項5に記載のコンピュータで実施される方法。
【請求項7】
前記追加の過負荷の出力畳み込みニューラルネットワークによって、舌出し条件を識別するステップをさらに備え、舌が前記顔の中で検出される、請求項5に記載のコンピュータで実施される方法。
【請求項8】
前記第1のニューラルネットワークの入力フレーム分解能が、前記追加の過負荷の出力畳み込みニューラルネットワークの入力フレーム分解能より低い、請求項5に記載のコンピュータで実施される方法。
【請求項9】
前記過負荷の出力畳み込みニューラルネットワークが、人工的なビデオの人工的に生成される入力フレームのセットで訓練される、請求項1に記載のコンピュータで実施される方法。
【請求項10】
前記過負荷の出力畳み込みニューラルネットワークがさらに、手動でラベリングされる現実の画像のセットを用いて訓練される、請求項9に記載のコンピュータで実施される方法。
【請求項11】
命令が記憶されたメモリと、
前記メモリに結合される処理デバイスとを備え、前記処理デバイスが、前記メモリにアクセスして前記命令を実行するように構成され、前記命令が、前記処理デバイスに、
完全畳み込みネットワークを使用して、ビデオの第1のフレームからバウンディングボックス候補のセットを識別することであって、各バウンディングボックス候補が顔を含む、識別することと、
畳み込みニューラルネットワークを使用して、バウンディングボックス候補の前記セットをバウンディングボックスへと改良することと、
過負荷の出力畳み込みニューラルネットワークを使用して、前記バウンディングボックスおよび前記第1のフレームに基づいて、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットを取得することと、
前記事前定義された表情重み、前記頭部姿勢、および前記顔面ランドマークのうちの前記1つまたは複数の前記第1のセットに基づいて、3次元(3D)アバターのアニメーションの第1のアニメーションフレームを生成することであって、前記アバターの頭部姿勢が前記第1のセットの中の前記頭部姿勢と一致し、前記アバターの顔面ランドマークが前記第1のセットの中の前記顔面ランドマークと一致する、生成することと、
前記第1のフレームの後の前記ビデオの各々の追加のフレームに対して、
前記追加のフレームに適用される前記バウンディングボックスが前記顔を含むかどうかを検出することと、
前記バウンディングボックスが前記顔を含むことが検出される場合、前記過負荷の出力畳み込みニューラルネットワークを使用して、前記バウンディングボックスおよび前記追加のフレームに基づいて、前記1つまたは複数の事前定義された表情重み、頭部姿勢、および顔面ランドマークの追加のセットを取得することと、
前記追加のセットを使用して前記3Dアバターの前記アニメーションの追加のアニメーションフレームを生成することと
を備える動作を実行させる、システム。
【請求項12】
前記追加のフレームのための前記バウンディングボックスが前記顔を含まないことが検出される場合、前記動作が、前記追加のフレームを前記第1のフレームとして設定することを備える、請求項11に記載のシステム。
【請求項13】
前記動作がさらに、前記過負荷の出力畳み込みニューラルネットワークによって、舌出し条件を識別することを備え、舌が前記顔の中で検出される、請求項11に記載のシステム。
【請求項14】
前記過負荷の出力畳み込みネットワークが第1のニューラルネットワークであり、前記動作がさらに、追加の過負荷の出力畳み込みニューラルネットワークを使用して、前記バウンディングボックスおよび前記第1のフレームに基づいて、前記事前定義された表情重み、前記頭部姿勢、および顔面ランドマークのうちの1つまたは複数の前記第1のセットを追加で改良することを備える、請求項11に記載のシステム。
【請求項15】
前記追加の過負荷の出力畳み込みニューラルネットワークが、前記第1のニューラルネットワークと比較してより高い詳細度を提供する、請求項14に記載のシステム。
【請求項16】
命令が記憶された非一時的コンピュータ可読媒体であって、前記命令が、処理デバイスによる実行に応答して、前記処理デバイスに、
完全畳み込みネットワークを使用して、ビデオの第1のフレームからバウンディングボックス候補のセットを識別することであって、各バウンディングボックス候補が顔を含む、識別することと、
畳み込みニューラルネットワークを使用して、バウンディングボックス候補の前記セットをバウンディングボックスへと改良することと、
過負荷の出力畳み込みニューラルネットワークを使用して、前記バウンディングボックスおよび前記第1のフレームに基づいて、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットを取得することと、
前記事前定義された表情重み、前記頭部姿勢、および前記顔面ランドマークのうちの前記1つまたは複数の前記第1のセットに基づいて、3次元(3D)アバターのアニメーションの第1のアニメーションフレームを生成することであって、前記アバターの頭部姿勢が前記第1のセットの中の前記頭部姿勢と一致し、前記アバターの顔面ランドマークが前記第1のセットの中の前記顔面ランドマークと一致する、生成することと、
前記第1のフレームの後の前記ビデオの各々の追加のフレームに対して、
前記追加のフレームに適用される前記バウンディングボックスが前記顔を含むかどうかを検出することと、
前記バウンディングボックスが前記顔を含むことが検出される場合、前記過負荷の出力畳み込みニューラルネットワークを使用して、前記バウンディングボックスおよび前記追加のフレームに基づいて、前記1つまたは複数の事前定義された表情重み、頭部姿勢、および顔面ランドマークの追加のセットを取得することと、
前記追加のセットを使用して前記3Dアバターの前記アニメーションの追加のアニメーションフレームを生成することと
を備える動作を実行させる、非一時的コンピュータ可読媒体。
【請求項17】
前記追加のフレームのための前記バウンディングボックスが前記顔を含まないことが検出される場合、前記動作が、前記追加のフレームを前記第1のフレームとして設定することを備える、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記動作がさらに、前記過負荷の出力畳み込みニューラルネットワークによって、舌出し条件を識別することを備え、舌が前記顔の中で検出される、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記過負荷の出力畳み込みネットワークが第1のニューラルネットワークであり、前記動作がさらに、追加の過負荷の出力畳み込みニューラルネットワークを使用して、前記バウンディングボックスおよび前記第1のフレームに基づいて、前記事前定義された表情重み、前記頭部姿勢、および顔面ランドマークのうちの1つまたは複数の前記第1のセットを追加で改良することを備える、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記追加の過負荷の出力畳み込みニューラルネットワークが、前記第1のニューラルネットワークと比較してより高い詳細度を提供する、請求項19に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年2月22日に出願された「Real Time Robust Facial Animation From Video」という表題の米国特許仮出願第63/152,327号、および2021年2月23日に出願された「Real Time Robust Facial Animation From Video」という表題の米国特許仮出願第63/152,819号の優先権の利益を主張し、これらの各々の内容全体が参照によって本明細書に組み込まれる。
【0002】
実施形態は、一般にコンピュータベースの仮想体験に関し、より詳細には、リアルタイムのビデオからのロバストな顔面アニメーションのための方法、システム、およびコンピュータ可読媒体に関する。
【背景技術】
【0003】
一部のオンラインプラットフォーム(たとえば、ゲーミングプラットフォーム、メディア交換プラットフォームなど)は、ユーザが互いにつながり、互いに交流し(たとえば、ゲーム内で)、ゲームを作成し、インターネットを介して互いに情報を共有することを可能にする。オンラインプラットフォームのユーザは、マルチプレーヤゲーミング環境または仮想環境(たとえば、3次元環境)に参加し、カスタムゲーミング環境を設計し、キャラクターおよびアバターをデザインし、アバターを装飾し、他のユーザと仮想アイテム/オブジェクトを交換し、音声またはテキストメッセージングを使用して他のユーザと通信することなどがある。そのようなメタバース環境またはマルチバース環境などの環境は、参加するユーザが、自分が作ったオブジェクトを他のユーザと共有し、販売し、または取引することも可能にし得る。
【発明の概要】
【発明が解決しようとする課題】
【0004】
互いに交流するユーザは、ユーザのアバターの提示を含む双方向型のインターフェースを使用し得る。アバターをアニメーション化することは従来、要求されるジェスチャ、動き、および他の同様の事前構成されたアニメーションの詳細をユーザに入力させ、ユーザの入力に基づいてアニメーションを提示することを含み得る。そのような従来の方策には欠点があり、これを考慮していくつかの実装形態が考案された。
【0005】
本明細書において提供される背景の説明は、本開示の文脈を提示することが目的である。この背景のセクションにおいて説明される範囲内にある、ここで名前を挙げられた発明者らの成果、ならびに出願の時点で従来技術として別様に適格ではあり得ない説明の態様はいずれも、本開示の従来技術として、明確にも暗黙的にも認められない。
【課題を解決するための手段】
【0006】
本出願の実装形態は、ビデオからリアルタイムでロバストな顔面アニメーションを自動的に作成することに関する。一態様によれば、コンピュータで実施される方法は、完全畳み込みネットワークを使用して、ビデオの第1のフレームからバウンディングボックス候補のセットを識別するステップであって、各バウンディングボックス候補が顔を含む、ステップと、畳み込みニューラルネットワークを使用して、バウンディングボックス候補のセットをバウンディングボックスへと改良するステップと、過負荷の出力畳み込みニューラルネットワークを使用して、バウンディングボックスおよび第1のフレームに基づいて、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットを取得するステップと、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットに基づいて、3次元(3D)アバターのアニメーションの第1のアニメーションフレームを生成するステップであって、アバターの頭部姿勢が第1のセットの中の頭部姿勢と一致し、アバターの顔面ランドマークが第1のセットの中の顔面ランドマークと一致する、ステップと、第1のフレームの後のビデオの各々の追加のフレームに対して、追加のフレームに適用されるバウンディングボックスが顔を含むかどうかを検出するステップと、バウンディングボックスが顔を含むことが検出される場合、過負荷の出力畳み込みニューラルネットワークを使用して、バウンディングボックスおよび追加のフレームに基づいて、1つまたは複数の事前定義された表情重み、頭部姿勢、および顔面ランドマークの追加のセットを取得するステップと、追加のセットを使用して3Dアバターのアニメーションの追加のアニメーションフレームを生成するステップとを備える。
【0007】
コンピュータで実施される方法の様々な実装形態および変形が開示される。
【0008】
いくつかの実装形態では、追加のフレームのためのバウンディングボックスが顔を含まないことが検出される場合、追加のフレームを第1のフレームとして設定する。
【0009】
いくつかの実装形態では、コンピュータで実施される方法はさらに、過負荷の出力畳み込みニューラルネットワークによって、舌出し条件(tongue out condition)を識別するステップを備え、舌は顔の中で検出される。
【0010】
いくつかの実装形態では、舌出し条件を識別することは、過負荷の出力畳み込みニューラルネットワークのサブモデルに基づく。
【0011】
いくつかの実装形態では、過負荷の出力畳み込みネットワークは第1のニューラルネットワークであり、方法はさらに、追加の過負荷の出力畳み込みニューラルネットワークを使用して、バウンディングボックスおよび第1のフレームに基づいて、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットを改良するステップを備える。
【0012】
いくつかの実装形態では、追加の過負荷の出力畳み込みニューラルネットワークは、第1のニューラルネットワークと比較してより高い詳細度を提供する。
【0013】
いくつかの実装形態では、コンピュータで実施される方法はさらに、追加の過負荷の出力畳み込みニューラルネットワークによって、舌出し条件を識別するステップを備え、舌は顔の中で検出される。
【0014】
いくつかの実装形態では、第1のニューラルネットワークの入力フレーム分解能は、追加の過負荷の出力畳み込みニューラルネットワークの入力フレーム分解能より低い。
【0015】
いくつかの実装形態では、過負荷の出力畳み込みニューラルネットワークは、人工的なビデオの人工的に生成された入力フレームのセットで訓練される。
【0016】
いくつかの実装形態では、過負荷の出力畳み込みニューラルネットワークはさらに、手動でラベリングされた現実の画像のセットを用いて訓練される。
【0017】
別の態様によれば、システムが提供される。システムは、命令が記憶されたメモリと、メモリに結合された処理デバイスとを備え、処理デバイスは、メモリにアクセスして命令を実行するように構成され、命令は、処理デバイスに、完全畳み込みネットワークを使用して、ビデオの第1のフレームからバウンディングボックス候補のセットを識別することであって、各バウンディングボックス候補が顔を含む、識別することと、畳み込みニューラルネットワークを使用して、バウンディングボックス候補のセットをバウンディングボックスへと改良することと、過負荷の出力畳み込みニューラルネットワークを使用して、バウンディングボックスおよび第1のフレームに基づいて、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットを取得することと、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットに基づいて、3次元(3D)アバターのアニメーションの第1のアニメーションフレームを生成することであって、アバターの頭部姿勢が第1のセットの中の頭部姿勢と一致し、アバターの顔面ランドマークが第1のセットの中の顔面ランドマークと一致する、生成することと、第1のフレームの後のビデオの各々の追加のフレームに対して、追加のフレームに適用されるバウンディングボックスが顔を含むかどうかを検出することと、バウンディングボックスが顔を含むことが検出される場合、過負荷の出力畳み込みニューラルネットワークを使用して、バウンディングボックスおよび追加のフレームに基づいて、1つまたは複数の事前定義された表情重み、頭部姿勢、および顔面ランドマークの追加のセットを取得することと、追加のセットを使用して3Dアバターのアニメーションの追加のアニメーションフレームを生成することとを備える動作を実行させる。
【0018】
システムの様々な実装形態および変形が開示される。
【0019】
いくつかの実装形態では、追加のフレームのためのバウンディングボックスが顔を含まないことが検出される場合、追加のフレームを第1のフレームとして設定する。
【0020】
いくつかの実装形態では、動作はさらに、過負荷の出力畳み込みニューラルネットワークによって、舌出し条件を識別することを備え、舌は顔の中で検出される。
【0021】
いくつかの実装形態では、過負荷の出力畳み込みネットワークは第1のニューラルネットワークであり、動作はさらに、追加の過負荷の出力畳み込みニューラルネットワークを使用して、バウンディングボックスおよび第1のフレームに基づいて、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットを追加で改良することを備える。
【0022】
いくつかの実装形態では、追加の過負荷の出力畳み込みニューラルネットワークは、第1のニューラルネットワークと比較してより高い詳細度を提供する。
【0023】
別の態様によれば、非一時的コンピュータ可読媒体が提供される。非一時的コンピュータ可読媒体は、処理デバイスによる実行に応答して、処理デバイスに、完全畳み込みネットワークを使用して、ビデオの第1のフレームからバウンディングボックス候補のセットを識別することであって、各バウンディングボックス候補が顔を含む、識別することと、畳み込みニューラルネットワークを使用して、バウンディングボックス候補のセットをバウンディングボックスへと改良することと、過負荷の出力畳み込みニューラルネットワークを使用して、バウンディングボックスおよび第1のフレームに基づいて、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットを取得することと、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットに基づいて、3次元(3D)アバターのアニメーションの第1のアニメーションフレームを生成することであって、アバターの頭部姿勢が第1のセットの中の頭部姿勢と一致し、アバターの顔面ランドマークが第1のセットの中の顔面ランドマークと一致する、生成することと、第1のフレームの後のビデオの各々の追加のフレームに対して、追加のフレームに適用されるバウンディングボックスが顔を含むかどうかを検出することと、バウンディングボックスが顔を含むことが検出される場合、過負荷の出力畳み込みニューラルネットワークを使用して、バウンディングボックスおよび追加のフレームに基づいて、1つまたは複数の事前定義された表情重み、頭部姿勢、および顔面ランドマークの追加のセットを取得することと、追加のセットを使用して3Dアバターのアニメーションの追加のアニメーションフレームを生成することとを備える動作を実行させる、命令が記憶されている。
【0024】
非一時的コンピュータ可読媒体の様々な実装形態および変形が開示される。
【0025】
いくつかの実装形態では、追加のフレームのためのバウンディングボックスが顔を含まないことが検出される場合、追加のフレームを第1のフレームとして設定する。
【0026】
いくつかの実装形態では、動作はさらに、過負荷の出力畳み込みニューラルネットワークによって、舌出し条件を識別することを備え、舌は顔の中で検出される。
【0027】
いくつかの実装形態では、過負荷の出力畳み込みネットワークは第1のニューラルネットワークであり、動作はさらに、追加の過負荷の出力畳み込みニューラルネットワークを使用して、バウンディングボックスおよび第1のフレームに基づいて、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットを追加で改良することを備える。
【0028】
いくつかの実装形態では、追加の過負荷の出力畳み込みニューラルネットワークは、第1のニューラルネットワークと比較してより高い詳細度を提供する。
【図面の簡単な説明】
【0029】
図1】いくつかの実装形態による、例示的なネットワーク環境の図である。
図2】いくつかの実装形態による、回帰モデルのための訓練環境の図である。
図3】いくつかの実装形態による、顔追跡システムの図である。
図4】いくつかの実装形態による、ロバストなアニメーションを作成するように構成される回帰モデルおよび顔検出モデルのプロセスフロー図である。
図5A】いくつかの実装形態による、顔検出モデルのための例示的な出力ネットワークの概略図である。
図5B】いくつかの実装形態による、顔検出モデルのための例示的な出力ネットワークの概略図である。
図6】いくつかの実装形態による、ロバストなアニメーションを作成するように構成される回帰モデルおよび顔検出モデルの簡略化されたプロセスフロー図である。
図7】いくつかの実装形態による、ビデオからのリアルタイムのロバストな顔面アニメーションの例示的な方法のフローチャートである。
図8】いくつかの実装形態による、本明細書において説明される1つまたは複数の特徴を実装するために使用され得る例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【0030】
本明細書において説明される1つまたは複数の実装形態は、ビデオからのリアルタイムのロバストなアニメーションに関する。特徴は、クライアントデバイスから受信された入力ビデオに基づいて、3次元(3D)アバターのアニメーションを自動的に作成することを含み得る。
【0031】
本明細書において説明される特徴は、ビデオにおける顔の自動検出、検出された顔から3Dアバターをアニメーション化するために使用されるパラメータの回帰、およびパラメータに基づく3Dアバターのアニメーションの作成を提供する。顔検出モデルは、バウンディングボックスを正確に識別し、予測されるパラメータを提供するように訓練される。同様に、回帰モデルは、予測されるパラメータに基づいてユーザの顔を表すパラメータを正確に生み出すように訓練される。その後、訓練されたモデルは、入力ビデオの中の顔を識別し、ビデオに基づいて3Dアバターのロバストなアニメーションを作成するために使用され得る。
【0032】
訓練されたモデルは、自分に関連するアバターのための自動的に作成されたアニメーションを欲しいと思うユーザが使用するために、クライアントデバイスにおいて展開され得る。クライアントデバイスはさらに、仮想体験プラットフォームなどのオンラインプラットフォームと動作可能に通信するように構成されてもよく、それにより、それらの関連するアバターが、通信インターフェースにおける提示(たとえば、ビデオチャット)のために豊かにアニメーション化され、仮想体験内で豊かにアニメーション化され(たとえば、代理の仮想的な体の豊かにアニメーション化された顔)、他のユーザに送信されるアニメーション化されたビデオ内で豊かにアニメーション化され(たとえば、チャット機能または他の機能を通じてアニメーション化されたアバターの録画を送信することによって)、オンラインプラットフォームの他の部分で豊かにアニメーション化され得る。
【0033】
オンライン仮想体験プラットフォーム(「ユーザ生成コンテンツプラットフォーム」または「ユーザ生成コンテンツシステム」とも呼ばれる)は、ユーザが互いに交流するための様々な方法を提供する。たとえば、オンライン仮想体験プラットフォームのユーザは、プラットフォーム内で、体験、ゲーム、または他のコンテンツもしくはリソース(たとえば、仮想世界内でのゲームプレイのためのキャラクター、グラフィクス、アイテムなど)を作成し得る。
【0034】
オンライン仮想体験プラットフォームのユーザは、ゲームまたはゲーム作成における共通の目標に向かって協力し、様々な仮想アイテムを共有し、電子メッセージを互いに送信することなどがある。オンライン仮想体験プラットフォームのユーザは、たとえば、キャラクター(アバター)または他のゲームオブジェクトおよび機構を含めて、環境と対話し、ゲームをプレイすることがある。オンライン仮想体験プラットフォームはまた、プラットフォームのユーザが互いに通信することを可能にし得る。たとえば、オンライン仮想体験プラットフォームのユーザは、ボイスメッセージ(たとえば、ボイスチャットを介した)、テキストメッセージング、ビデオメッセージング、または上記の組合せを使用して、互いに通信し得る。一部のオンライン仮想体験プラットフォームは、ユーザが自分自身のアバターまたは仮想的な表現を使用して自分自身を表現できるような、仮想3次元環境を提供することができる。
【0035】
オンライン仮想体験プラットフォームの娯楽的な価値を高めるのを助けるために、プラットフォームは、アバターを自動的にアニメーション化するのを容易にするためのアニメーションエンジンを提供することができる。アニメーションエンジンは、たとえば、クライアントデバイスから送信されるライブビデオフィードに基づくアバターの顔または体のアニメーションを含む、アニメーションのためのオプションをユーザが要求または選択することを可能にし得る。
【0036】
たとえば、ユーザは、オンライン仮想体験プラットフォームに関連するユーザデバイス上のアプリケーションによるカメラアクセスを可能にできる。カメラにおいて作られたビデオは、ジェスチャ、または抽出されたジェスチャに基づいてアバターのアニメーションを容易にする他の情報を抽出するために、解釈され得る。同様に、ユーザは、他の体の部分を動かすために、または顔のジェスチャを誇張するために、指示されたコントロールの入力を通じて、顔面アニメーションを強化し得る。
【0037】
しかしながら、従来の方策では、多くのモバイルクライアントデバイスに十分なコンピューティングリソースがないことにより、ビデオ処理には限界がある。たとえば、多くのユーザが、アニメーションを正確に作成するためにジェスチャを迅速に解釈するのに十分な計算能力を持っていない、ポータブルコンピューティングデバイス(たとえば、超軽量携帯機器、タブレット、携帯電話など)を使用することがある。これらの環境では、多くの自動アニメーションは、顔のジッタ、応答性の欠如、ビジュアルキューの拙劣な解釈、および他の欠点などの、望ましくないアーティファクトをもたらすことがある。これらのシナリオでは、ユーザは、自分のために自動アニメーションを作らせることは不可能であることがあり、代わりに、自分のアバターの顔の特徴が比較的固定されていること、またはアニメーションを作成するために他の手段を通じてコントロールジェスチャを入力することを求められることがある。
【0038】
したがって、一部のユーザは、従来の方策を通じてロバストなアニメーションを扱うのに十分な処理能力のあるモバイルデバイスまたはコンピューティングデバイスを手に入れることがあり、他のユーザはアニメーションジェスチャを直接入力することがあるが、多くのユーザは、複雑なコンピュータビジョン処理のための十分な計算リソースを持っていない、他の用途には適切なデバイスを利用していることにより、これらの体験をしていない可能性がある。
【0039】
図1:システムアーキテクチャ
図1は、本開示のいくつかの実装形態による、例示的なネットワーク環境100を示す。ネットワーク環境100(本明細書では「システム」とも呼ばれる)は、すべてがネットワーク122を介して接続されている、オンライン仮想体験プラットフォーム102、第1のクライアントデバイス110、第2のクライアントデバイス116(本明細書では全般に「クライアントデバイス110/116」と呼ばれる)を含む。オンライン仮想体験プラットフォーム102は、とりわけ、仮想体験(VE)エンジン104、1つまたは複数の仮想体験105、通信エンジン106、顔面アニメーションエンジン107、およびデータストア108を含み得る。クライアントデバイス110は、仮想体験アプリケーション112を含み得る。クライアントデバイス116は、仮想体験アプリケーション118を含み得る。ユーザ114および120はそれぞれ、オンライン仮想体験プラットフォーム102と対話するために、クライアントデバイス110および116を使用することができる。
【0040】
例示のために、ネットワーク環境100が与えられる。いくつかの実装形態では、ネットワーク環境100は、図1に示されるものと同じまたは異なる方式で構成される、同じ、より少数の、より多数の、または異なる要素を含み得る。
【0041】
いくつかの実装形態では、ネットワーク122は、パブリックネットワーク(たとえば、インターネット)、プライベートネットワーク(たとえば、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN))、有線ネットワーク(たとえば、イーサネットネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワーク、Wi-Fi(登録商標)ネットワーク、またはワイヤレスLAN(WLAN))、セルラーネットワーク(たとえば、Long Term Evolution (LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、またはこれらの組合せを含み得る。
【0042】
いくつかの実装形態では、データストア108は、非一時的コンピュータ可読メモリ(たとえば、ランダムアクセスメモリ)、キャッシュ、ドライブ(たとえば、ハードドライブ)、フラッシュドライブ、データベースシステム、またはデータを記憶することが可能な別のタイプのコンポーネントもしくはデバイスであり得る。データストア108はまた、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)にもまたがり得る、複数の記憶コンポーネント(たとえば、複数のドライブまたは複数のデータベース)を含み得る。
【0043】
いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、1つまたは複数のコンピューティングデバイスを有するサーバ(たとえば、クラウドコンピューティングシステム、ラックマウントサーバ、サーバコンピュータ、物理サーバのクラスタ、仮想サーバなど)を含み得る。いくつかの実装形態では、サーバは、オンライン仮想体験プラットフォーム102に含まれてもよく、独立のシステムであってもよく、または別のシステムもしくはプラットフォームの一部であってもよい。
【0044】
いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、1つまたは複数のコンピューティングデバイス(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなど)、データストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェアコンポーネント、および/または、オンライン仮想体験プラットフォーム102で動作を実行し、オンライン仮想体験プラットフォーム102へのアクセスをユーザに提供するために使用され得るハードウェアコンポーネントを含み得る。オンライン仮想体験プラットフォーム102はまた、オンライン仮想体験プラットフォーム102によって提供されるコンテンツへのアクセスをユーザに提供するために使用され得る、ウェブサイト(たとえば、1つまたは複数のウェブページ)またはアプリケーションバックエンドソフトウェアを含み得る。たとえば、ユーザは、それぞれ、クライアントデバイス110/116上の仮想体験アプリケーション112/118を使用して、オンライン仮想体験プラットフォーム102にアクセスし得る。
【0045】
いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、ユーザ間のつながりを提供するある種のソーシャルネットワーク、またはユーザ(たとえば、エンドユーザまたは消費者)がオンライン仮想体験プラットフォーム102を介して他のユーザと通信することを可能にするある種のユーザ生成コンテンツシステムを含んでもよく、通信は、ボイスチャット(たとえば、同期および/または非同期音声通信)、ビデオチャット(たとえば、同期および/または非同期ビデオ通信)、またはテキストチャット(たとえば、同期および/または非同期テキストベース通信)を含んでもよい。本開示のいくつかの実装形態では、「ユーザ」は単一の個人として表され得る。しかしながら、本開示の他の実装形態は、「ユーザ」(たとえば、作成ユーザ)がユーザのセットまたは自動化されたソースにより制御されたエンティティであることを包含する。たとえば、ユーザ生成コンテンツシステムにおけるコミュニティまたはグループとして連合する個々のユーザのセットが、「ユーザ」であると見なされ得る。
【0046】
いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、仮想ゲーミングプラットフォームであり得る。たとえば、ゲーミングプラットフォームは、ネットワーク122を介してクライアントデバイス110/116を使用してゲーム(たとえば、ユーザにより生成されるゲームまたは他のゲーム)にアクセスし得るまたはそれと対話し得るユーザのコミュニティに、シングルプレーヤゲームまたはマルチプレーヤゲームを提供し得る。いくつかの実装形態では、ゲーム(本明細書では「ビデオゲーム」、「オンラインゲーム」、または「仮想ゲーム」とも呼ばれる)は、たとえば、2次元(2D)ゲーム、3次元(3D)ゲーム(たとえば、3Dのユーザにより生成されたゲーム)、仮想現実(VR)ゲーム、または拡張現実(AR)ゲームであり得る。いくつかの実装形態では、ユーザは、ゲームおよびゲームアイテムを探し、1つまたは複数のゲームにおいて他のユーザとともにゲームプレイに参加し得る。いくつかの実装形態では、ゲームはゲームの他のユーザとともにリアルタイムでプレイされ得る。
【0047】
いくつかの実装形態では、オンライン仮想体験プラットフォーム102の代わりに、またはそれに加えて、他のコラボレーションプラットフォームが、本明細書において説明されるロバストアニメーション機能とともに使用され得る。たとえば、ソーシャルネットワーキングプラットフォーム、ビデオチャットプラットフォーム、メッセージングプラットフォーム、ユーザコンテンツ作成プラットフォーム、仮想会議プラットフォームなどが、仮想アバターへのユーザの顔の動きの高速で、ロバストで、正確な表現を容易にするために、本明細書において説明されるロバストアニメーション機能とともに使用され得る。
【0048】
いくつかの実装形態では、「ゲームプレイ」は、ゲームもしくは体験(たとえば、VE105)内でのクライアントデバイス(たとえば、110および/または116)を使用した1人または複数のプレーヤの交流、または、クライアントデバイス110もしくは116のディスプレイもしくは他の出力デバイス上での対話の提示を指し得る。
【0049】
1つまたは複数の仮想体験105は、オンライン仮想体験プラットフォームによって提供される。いくつかの実装形態では、仮想体験105は、仮想コンテンツ(たとえば、デジタルメディアアイテム)をエンティティに提示するように構成されるソフトウェア、ファームウェア、もしくはハードウェアを使用して実行またはロードされ得る、電子ファイルを含み得る。いくつかの実装形態では、仮想体験アプリケーション112/118が実行されてもよく、仮想体験105が仮想体験エンジン104に関してレンダリングされる。いくつかの実装形態では、仮想体験105には共通のルールのセットまたは共通の目標があってもよく、仮想体験105の環境はその共通のルールのセットまたは共通の目標を共有する。いくつかの実装形態では、異なる仮想体験は、互いに異なるルールまたは目標を有してもよい。同様に、または代替として、一部の仮想体験には目標が完全になくてもよく、目的はユーザが社会的に交流することである。
【0050】
いくつかの実装形態では、仮想体験は1つまたは複数の環境(本明細書では「ゲーミング環境」または「仮想環境」とも呼ばれる)を有してもよく、複数の環境はつながっていてもよい。環境の例は、3次元(3D)環境であり得る。仮想体験105の1つまたは複数の環境は、本明細書では集合的に「世界」または「仮想世界」または「仮想宇宙」または「メタバース」と呼ばれ得る。世界の例は、仮想体験105の3D世界であり得る。たとえば、ユーザは、別のユーザにより作成された別の仮想環境とつながった仮想環境を構築し得る。仮想体験のキャラクターは、仮想的な境界を越えて隣の仮想環境に入り得る。
【0051】
3D環境または3D世界は、仮想コンテンツを表す幾何学的データの3次元表現を使用する(または少なくとも、幾何学的データの3D表現が使用されるかどうかにかかわらず、3Dコンテンツに見えるようにコンテンツを提示する)グラフィクスを使用することに留意することができる。2D環境または2D世界は、仮想コンテンツを表す幾何学的データの2次元表現を使用するグラフィクスを使用する。
【0052】
いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、1つまたは複数の仮想体験105をホストすることができ、クライアントデバイス110/116の仮想体験アプリケーション112/118を使用して、仮想体験105とユーザが対話する(たとえば、ゲーム、VE関連のコンテンツ、または他のコンテンツを探す)ことを可能にできる。オンライン仮想体験プラットフォーム102のユーザ(たとえば、114および/または120)は、仮想体験105をプレイし、作成し、それと対話し、もしくは構築し、仮想体験105を探し、他のユーザと通信し、仮想体験105のオブジェクト(たとえば、本明細書では「アイテム」または「ゲームオブジェクト」または「仮想ゲームアイテム」とも呼ばれる)を作成して構築し、および/またはオブジェクトを探し得る。たとえば、ユーザにより生成される仮想アイテムを生成する際に、ユーザはとりわけ、キャラクター、キャラクターのための装飾、双方向型の体験のための1つまたは複数の仮想環境を作成し、または仮想体験105において使用される構造物を構築し得る。
【0053】
いくつかの実装形態では、ユーザは、オンライン仮想体験プラットフォーム102の他のユーザと、プラットフォーム内通貨(たとえば、仮想通貨)などの仮想オブジェクトを購入し、販売し、または取引し得る。いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、仮想コンテンツを仮想体験アプリケーション(たとえば、112、118)に送信し得る。いくつかの実装形態では、仮想コンテンツ(本明細書では「コンテンツ」とも呼ばれる)は、オンライン仮想体験プラットフォーム102または仮想体験アプリケーションに関連するあらゆるデータまたはソフトウェア命令(たとえば、仮想オブジェクト、体験、ユーザ情報、ビデオ、画像、コマンド、メディアアイテムなど)を指し得る。
【0054】
いくつかの実装形態では、仮想オブジェクト(本明細書では「アイテム」または「オブジェクト」または「仮想ゲームアイテム」とも呼ばれる)は、オンライン仮想体験プラットフォーム102の仮想体験アプリケーション105またはクライアントデバイス110/116の仮想体験アプリケーション112もしくは118において使用され、作成され、共有され、または別様に描写されるオブジェクトを指し得る。たとえば、仮想オブジェクトは、パーツ、モデル、キャラクター、道具、武器、衣服、建物、車両、通貨、植物、動物、前述の構成要素(たとえば、建物の窓)などを含み得る。
【0055】
仮想体験105をホストするオンライン仮想体験プラットフォーム102は、限定ではなく例示を目的に提供されることに留意することができる。いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、あるユーザから1人または複数の他のユーザへの通信メッセージを含み得る、1つまたは複数のメディアアイテムをホストし得る。メディアアイテムは、限定はされないが、デジタルビデオ、デジタル映画、デジタル写真、デジタル音楽、オーディオコンテンツ、メロディー、ウェブサイトコンテンツ、ソーシャルメディア更新、電子書籍、電子雑誌、電子新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、real simple syndication (RSS)フィード、電子漫画、ソフトウェアアプリケーションなどを含み得る。いくつかの実装形態では、メディアアイテムは、デジタルメディアアイテムをエンティティに提示するように構成されるソフトウェア、ファームウェア、もしくはハードウェアを使用して実行またはロードされ得る、電子ファイルであり得る。
【0056】
いくつかの実装形態では、仮想体験105は、特定のユーザまたは特定のユーザのグループと関連付けられてもよく(たとえば、非公開の体験)、またはオンライン仮想体験プラットフォーム102のユーザに広く利用可能にされてもよい(たとえば、公開の体験)。オンライン仮想体験プラットフォーム102が特定のユーザまたはユーザのグループと1つまたは複数の仮想体験105を関連付けるようないくつかの実装形態では、オンライン仮想体験プラットフォーム102は、ユーザアカウント情報(たとえば、ユーザ名およびパスワードなどのユーザアカウント識別子)を使用して仮想体験105と特定のユーザを関連付け得る。同様に、いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、開発者アカウント情報(たとえば、ユーザ名およびパスワードなどの開発者アカウント識別子)を使用して、特定の開発者または開発者のグループを仮想体験105と関連付けてもよい。
【0057】
いくつかの実装形態では、オンライン仮想体験プラットフォーム102またはクライアントデバイス110/116は、仮想体験エンジン104または仮想体験アプリケーション112/118を含み得る。仮想体験エンジン104は、仮想体験アプリケーション112/118と同様の仮想体験アプリケーションを含み得る。いくつかの実装形態では、仮想体験エンジン104は、仮想体験105の開発または実行のために使用され得る。たとえば、仮想体験エンジン104は、とりわけ、2D、3D、VR、またはARグラフィクスのためのレンダリングエンジン(「レンダラ」)、物理エンジン、衝突検出エンジン(および衝突応答)、音声エンジン、スクリプティング機能、アニメーションエンジン、人工知能エンジン、ネットワーキング機能、ストリーミング機能、メモリ管理機能、スレッディング機能、シーングラフ機能、またはシネマティクスのためのビデオサポートを含み得る。仮想体験エンジン104のコンポーネントは、仮想体験を計算してレンダリングするのを助けるコマンド(たとえば、レンダリングコマンド、衝突コマンド、物理コマンドなど)を生成し得る。いくつかの実装形態では、クライアントデバイス110/116の仮想体験アプリケーション112/118はそれぞれ、独立に、オンライン仮想体験プラットフォーム102の仮想体験エンジン104と協調して、または両方の組合せで動作し得る。
【0058】
いくつかの実装形態では、オンライン仮想体験プラットフォーム102とクライアントデバイス110/116の両方が、仮想体験エンジン(それぞれ、104、112、および118)を実行する。仮想体験エンジン104を使用するオンライン仮想体験プラットフォーム102は、一部またはすべての仮想体験エンジン機能を実行し(たとえば、物理コマンド、レンダリングコマンドなどを生成し)、または一部もしくはすべての仮想体験エンジン機能をクライアントデバイス110の仮想体験エンジン104にオフロードし得る。いくつかの実装形態では、各仮想体験105は、オンライン仮想体験プラットフォーム102で実行される仮想体験エンジン機能と、クライアントデバイス110および116で実行される仮想体験エンジン機能との間に、異なる比率を有し得る。
【0059】
たとえば、オンライン仮想体験プラットフォーム102の仮想体験エンジン104は、少なくとも2つのゲームオブジェクト間に衝突がある場合に物理コマンドを生成するために使用されてもよいが、追加の仮想体験エンジン機能(たとえば、レンダリング生成コマンド)はクライアントデバイス110にオフロードされてもよい。いくつかの実装形態では、オンライン仮想体験プラットフォーム102で実行される仮想体験エンジン機能とクライアントデバイス110で実行される仮想体験エンジン機能の比率は、対話性の条件に基づいて(たとえば、動的に)変更されてもよい。たとえば、仮想体験105に参加するユーザの数が閾値の数を超える場合、オンライン仮想体験プラットフォーム102は、以前はクライアントデバイス110または116によって実行されていた1つまたは複数の仮想体験エンジン機能を実行してもよい。
【0060】
たとえば、ユーザは、クライアントデバイス110および116上で仮想体験105と対話していることがあり、制御命令(たとえば、右、左、上、下、ユーザ選択、またはキャラクターの位置および速度の情報などのユーザ入力)をオンライン仮想体験プラットフォーム102に送信することがある。クライアントデバイス110および116から制御命令を受信した後、オンライン仮想体験プラットフォーム102は、制御命令に基づいて対話命令(たとえば、仮想体験に参加するキャラクターの位置および速度情報、またはレンダリングコマンド、衝突コマンドなどのコマンド)をクライアントデバイス110および116に送信し得る。たとえば、オンライン仮想体験プラットフォーム102は、制御命令に対して1つまたは複数の論理演算を(たとえば、仮想体験エンジン104を使用して)実行し、クライアントデバイス110および116のための対話命令を生成し得る。他の事例では、オンライン仮想体験プラットフォーム102は、あるクライアントデバイス110からの制御命令のうちの1つまたは複数を仮想体験105に参加する他のクライアントデバイス(たとえば、116)に渡し得る。クライアントデバイス110および116は、命令を使用し、クライアントデバイス110および116のディスプレイに提示するために体験をレンダリングし得る。
【0061】
いくつかの実装形態では、制御命令は、ユーザのキャラクターまたはアバターの体験内行動を示す命令を指し得る。たとえば、制御命令は、右、左、上、下、ユーザ選択、ジャイロスコープの位置および方位データ、力センサデータなどの、体験内行動を制御するためのユーザ入力を含み得る。制御命令は、キャラクターの位置および速度情報を含み得る。いくつかの実装形態では、制御命令は、オンライン仮想体験プラットフォーム102に直接送信される。他の実装形態では、制御命令はクライアントデバイス110から別のクライアントデバイス(たとえば、116)に送信されてもよく、その別のクライアントデバイスは、ローカルの仮想体験エンジン104を使用してプレイ命令を生成する。制御命令は、オーディオデバイス(たとえば、スピーカ、ヘッドフォンなど)で別のユーザからの音声通信メッセージまたは他の音を再生するための命令、キャラクターまたはアバターを動かすための命令、および他の命令を含み得る。
【0062】
いくつかの実装形態では、対話命令または再生命令は、マルチプレーヤゲームなどの仮想体験の要素の動きをクライアントデバイス110(または116)がレンダリングすることを可能にする命令を指し得る。命令は、ユーザ入力(たとえば、制御命令)、キャラクターの位置および速度情報、またはコマンド(たとえば、物理コマンド、レンダリングコマンド、衝突コマンドなど)のうちの1つまたは複数を含み得る。本明細書においてより完全に説明されるように、他の命令は、ユーザの代理である仮想アバターの仮想的な顔のアニメーションをリアルタイムで指示するために、ユーザの顔の入力ビデオの分析を通じて抽出された、顔面アニメーション命令を含み得る。したがって、対話命令はキャラクターの何らかの体の動きを直接制御するためのユーザによる入力を含み得るが、対話命令はユーザのビデオから抽出されたジェスチャも含み得る。
【0063】
いくつかの実装形態では、キャラクター(または一般に仮想オブジェクト)は、編集の際にユーザを助けるために、自動的に組み合わさるコンポーネントから構築され、これらのコンポーネントの1つまたは複数がユーザにより選択されてもよい。1つまたは複数のキャラクター(本明細書では「アバター」または「モデル」とも呼ばれる)はユーザと関連付けられてもよく、ユーザは、仮想体験105とのユーザの対話を容易にするためにキャラクターを制御してもよい。いくつかの実装形態では、キャラクターは、体の一部(たとえば、髪、腕、脚など)およびアクセサリー(たとえば、Tシャツ、眼鏡、装飾画像、道具など)などのコンポーネントを含み得る。いくつかの実装形態では、カスタマイズ可能なキャラクターの体の部分は、とりわけ、頭のタイプ、体の部分のタイプ(腕、脚、胴体、および手)、顔のタイプ、髪のタイプ、および肌のタイプを含む。いくつかの実装形態では、カスタマイズ可能なアクセサリーは、衣服(たとえば、シャツ、パンツ、帽子、靴、眼鏡など)、武器、または他の道具を含む。
【0064】
いくつかの実装形態では、ユーザはまた、キャラクターの寸法(たとえば、高さ、幅、または奥行)またはキャラクターのコンポーネントの寸法を調整し得る。いくつかの実装形態では、ユーザはキャラクターのプロポーション(たとえば、ずんぐりした、解剖学的な、など)を調整し得る。いくつかの実装形態では、キャラクターはキャラクターオブジェクト(たとえば、体の一部など)を含まなくてもよいが、ユーザは、ゲーム(たとえば、レンダリングされるキャラクターゲームオブジェクトはないが、それでもユーザがゲーム内の行動を制御するためにキャラクターを制御するようなパズルゲーム)とのユーザの対話を容易にするために、キャラクターを(キャラクターオブジェクトなしで)調整してもよいことに留意することができる。
【0065】
いくつかの実装形態では、体の一部などのコンポーネントは、ブロック、円柱、球などの基本的な幾何学的形状、または、くさび、トーラス、管、溝などの何らかの他の基本的な形状であってもよい。いくつかの実装形態では、作成者モジュールが、オンライン仮想体験プラットフォーム102の他のユーザによる閲覧または使用のために、ユーザのキャラクターを発行してもよい。いくつかの実装形態では、キャラクター、他の仮想オブジェクト、仮想体験105、または仮想環境を作成し、修正し、もしくはカスタマイズすることは、スクリプティングを用いてまたは用いずに(またはアプリケーションプログラミングインターフェース(API)を用いてもしくは用いずに)、ユーザインターフェース(たとえば、開発者インターフェース)を使用してユーザによって実行され得る。限定ではなく例示を目的に、ヒューマノイドの形態を有するものとしてキャラクターが説明されることに留意することができる。キャラクターは、車両、動物、非生物の物体、または他の創造的な形式などの、任意の形式を有し得ることにさらに留意することができる。
【0066】
いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、ユーザによって作成されたキャラクターをデータストア108に記憶してもよい。いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、仮想体験エンジン104、仮想体験105、および/またはクライアントデバイス110/116を介してユーザに提示され得る、キャラクターカタログおよび体験カタログを維持する。いくつかの実装形態では、体験カタログは、オンライン仮想体験プラットフォーム102に記憶されている種々の体験の画像を含む。加えて、ユーザは、キャラクターカタログからあるキャラクター(たとえば、ユーザまたは他のユーザにより作成されたキャラクター)を選択して、選ばれた体験に参加してもよい。キャラクターカタログは、オンライン仮想体験プラットフォーム102に記憶されているキャラクターの画像を含む。いくつかの実装形態では、キャラクターカタログの中のキャラクターの1つまたは複数は、ユーザによって作成またはカスタマイズされたものであってもよい。いくつかの実装形態では、選ばれるキャラクターは、キャラクターのコンポーネントの1つまたは複数を定義するキャラクター設定を有してもよい。
【0067】
いくつかの実装形態では、ユーザのキャラクターはコンポーネントの構成を含むことができ、コンポーネントの構成および外観、ならびにより一般的にはキャラクターの概観は、キャラクター設定によって定義されてもよい。いくつかの実装形態では、ユーザのキャラクターのキャラクター設定は、ユーザによって少なくとも一部選ばれてもよい。他の実装形態では、ユーザは、デフォルトのキャラクター設定または他のユーザにより選ばれたキャラクター設定を持つキャラクターを選んでもよい。たとえば、ユーザは、事前定義されたキャラクター設定を有するデフォルトのキャラクターをキャラクターカタログから選んでもよく、ユーザはさらに、キャラクター設定の一部を変更する(たとえば、シャツにカスタマイズされたロゴを追加する)ことによって、デフォルトのキャラクターをカスタマイズしてもよい。キャラクター設定は、オンライン仮想体験プラットフォーム102によって特定のキャラクターと関連付けられてもよい。
【0068】
いくつかの実装形態では、クライアントデバイス110または116は各々、パーソナルコンピュータ(PC)、モバイルデバイス(たとえば、ラップトップ、携帯電話、スマートフォン、タブレットコンピュータ、またはネットブックコンピュータ)、ネットワーク接続テレビジョン、ゲームコンソールなどの、コンピューティングデバイスを含み得る。いくつかの実装形態では、クライアントデバイス110または116は、「ユーザデバイス」とも呼ばれ得る。いくつかの実装形態では、1つまたは複数のクライアントデバイス110または116は、あらゆる所与の瞬間にオンライン仮想体験プラットフォーム102に接続してもよい。クライアントデバイス110または116の数は、限定ではなく例示として与えられることに留意することができる。いくつかの実装形態では、任意の数のクライアントデバイス110または116が使用されてもよい。
【0069】
いくつかの実装形態では、各クライアントデバイス110または116はそれぞれ、仮想体験アプリケーション112または118の事例を含み得る。一実装形態では、仮想体験アプリケーション112または118は、ユーザが、特定の体験または他のコンテンツを探すことなどの、オンライン仮想体験プラットフォーム102を使用してそれと対話すること、オンライン仮想体験プラットフォーム102によりホストされる仮想ゲームの中の仮想キャラクターを制御すること、または仮想体験105、画像、ビデオアイテム、ウェブページ、文書などのコンテンツを閲覧もしくはアップロードすることなどを可能にし得る。一例では、仮想体験アプリケーションは、ウェブサーバによってサービスされるコンテンツ(たとえば、仮想環境における仮想キャラクターなど)にアクセスし、それを取り出し、提示し、または操作することができる、ウェブアプリケーション(たとえば、ウェブブラウザと連携して動作するアプリケーション)であり得る。別の例では、仮想体験アプリケーションは、クライアントデバイス110または116にインストールされてローカルで実行される、かつオンライン仮想体験プラットフォーム102とユーザが対話することを可能にする、ネイティブアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはプログラム)であり得る。仮想体験アプリケーションは、コンテンツ(たとえば、ウェブページ、ユーザインターフェース、メディアビューワ)をユーザにレンダリングし、表示し、または提示し得る。ある実装形態では、仮想体験アプリケーションは、ウェブページに埋め込まれる埋め込みメディアプレーヤ(たとえば、Flash(登録商標)プレーヤ)も含み得る。
【0070】
本開示の態様によれば、仮想体験アプリケーション112/118は、ユーザがコンテンツを構築し、作成し、編集し、オンライン仮想体験プラットフォーム102にアップロードするとともに、オンライン仮想体験プラットフォーム102と対話する(たとえば、オンライン仮想体験プラットフォーム102によりホストされる仮想体験105をプレイしてそれと対話する)ための、オンライン仮想体験プラットフォームアプリケーションであり得る。したがって、仮想体験アプリケーション112/118は、オンライン仮想体験プラットフォーム102によってクライアントデバイス110または116に提供され得る。別の例では、仮想体験プラットフォーム112/118は、サーバからダウンロードされるアプリケーションであり得る。
【0071】
いくつかの実装形態では、ユーザは、仮想体験アプリケーションを介してオンライン仮想体験プラットフォーム102にログインし得る。ユーザはユーザアカウント情報(たとえば、ユーザ名およびパスワード)を提供することによりユーザアカウントにアクセスしてもよく、ユーザアカウントは、オンライン仮想体験プラットフォーム102の1つまたは複数の仮想体験105に参加するために利用可能な1つまたは複数のキャラクターと関連付けられる。
【0072】
一般に、オンライン仮想体験プラットフォーム102により実行されるものとして説明される機能は、他の実装形態では適切であれば、クライアントデバイス110もしくは116、またはサーバによっても実行され得る。加えて、ある特定のコンポーネントに起因する機能が、異なるまたは複数のコンポーネントが一緒に動作することによって実行され得る。オンライン仮想体験プラットフォーム102は、適切なアプリケーションプログラミングインターフェース(API)を通じて他のシステムまたはデバイスに提供されるサービスとしてもアクセスされ得るので、ウェブサイトにおける使用に限定されない。
【0073】
いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、通信エンジン106を含み得る。いくつかの実装形態では、通信エンジン106は、オンライン仮想体験プラットフォーム102がビデオ通信機能をユーザに提供することを可能にするシステム、アプリケーション、またはモジュールであってもよく、この機能は、ユーザが、オンライン仮想体験プラットフォーム102および自分の関連する仮想的な代理を使用して仮想チャットまたは仮想ビデオ会議を体験することを可能にする。たとえば、ユーザは、仮想アバターをデザインおよび構築して、チャット機能を通じて仮想アバターを使用してもよい。
【0074】
いくつかの実装形態では、オンライン仮想体験プラットフォーム102は、顔面アニメーションエンジン107を含み得る。いくつかの実装形態では、顔面アニメーションエンジン107は、ユーザのアバターまたはキャラクターの顔のロバストなリアルタイムのアニメーションを作成するために顔検出および回帰モデルを実装する、システム、アプリケーション、またはモジュールであり得る。アニメーションは、ユーザの実際の顔に基づいてもよいので、笑顔、まばたき、ウィンク、不機嫌な顔、頭部姿勢、およびユーザの顔の入力ビデオから抽出される他のジェスチャを含んでもよい。オンライン仮想体験プラットフォーム102で直接実行されるものとして示されているが、顔検出および回帰モデルは、たとえば、各クライアントデバイス110、116で実装されてもよいことを理解されたい。
【0075】
以後、顔面アニメーションエンジン107の回帰モデルのコンポーネントおよび訓練が、図2に関連してより完全に説明される。
【0076】
図2:回帰モデル
図2は、いくつかの実装形態による、回帰モデルのための訓練環境の図である。示されるように、回帰モデル204は、ラベリングされたハイブリッドデータセット202を入力として受け取ってもよく、facial animation coding system (FACS)重み、頭部姿勢、および顔面ランドマークのセットを出力してもよい。この例では、出力は回帰モデル204を訓練するために使用されてもよい。しかしながら、出力は、初期の訓練の後、アバターのアニメーションにも使用されてもよいことを理解されたい。
【0077】
一般に、回帰アーキテクチャ200は、共有されるバックボーン(たとえば、エンコーダ241)を顔特徴抽出器として使用して、顔面ランドマークとFACS重みを共同訓練する、マルチタスクセットアップを使用する。この手筈は、微妙な表情を捉える現実の画像との合成アニメーションシーケンスから学習されるFACS重みを強化する。FACS回帰サブネットワーク242は、ランドマーク回帰モデル208とともに訓練される。FACS回帰サブネットワーク242は、因果的畳み込み243を実装する。因果的畳み込み243は、エンコーダ241において見つかるような空間的な特徴に対してのみ作用する畳み込みとは対照的に、特徴に対して経時的に作用する。
【0078】
示されるように、図200の入力部分は、ラベリングされた訓練データセットの一部であるハイブリッド入力ビデオフレームを備える訓練セットを利用する。ハイブリッド入力ビデオフレームは、生きている例示的な人物から捉えられた現実のビデオフレームと、既知のFACS重みおよび既知の頭部姿勢を使用して作成される合成フレーム(たとえば、事前構成されたFACS重み、姿勢などを使用して作成される例示的なアバターの顔)の両方を含む。訓練セット202は、訓練後に現実のビデオと置き換えられ得る。訓練セット202は、訓練の目的で回帰モデル204に入力され得る。
【0079】
回帰モデル204は、エンコーダ241およびFACS回帰サブネットワーク242を含む。エンコーダ241は一般に、畳み込みニューラルネットワークとして構成される1つまたは複数のサブネットワークを含み得る。1つまたは複数のサブネットワークは、少なくとも、2次元(2D)畳み込みサブネットワーク(または層)および全結合(FC)畳み込みサブネットワーク(または層)を含み得る。エンコーダ241の他の構成も適用可能であり得る。
【0080】
FACS回帰サブネットワークは、因果的畳み込み243、全結合(FC)畳み込みサブネットワーク244、および再帰ニューラルサブネットワーク(RNN)245を含み得る。因果的畳み込み243は、経時的に蓄積される高水準の特徴に対して作用し得る。このアーキテクチャはリアルタイムの用途に適しているので、出力予測は、入力が到着するのと同じ期間において計算される(すなわち、各入力フレームに対して、次のフレームが到着する時間の前に、またはほぼその時間において出力を予測する必要がある)ことに留意されたい。これは、未来の時間ステップからの情報は役に立たない可能性があることを意味する(すなわち、普通の対称的な畳み込みは機能しない)。したがって、因果的畳み込み243の各畳み込みは、過去の情報のみを考慮し、リアルタイムのシナリオにおいて機能することが可能な、非対称カーネル250(2x1という例示的なカーネルサイズ)とともに動作する。因果的畳み込み層は、普通の畳み込み層のように積み重ねられ得る。カーネルのサイズを多くすることまたはより多くの層を積み重ねることのいずれかにより、視野を大きくすることができる。示される層の数は3であるが、これは任意の数の層に増やされてもよい。
【0081】
追加で示されるように、訓練の間に、FACS損失およびランドマーク回帰分析が、出力206の正確さを強化するために使用され得る。たとえば、回帰モデル204は最初に、現実の画像と合成画像の両方を使用して訓練され得る。ある数のステップの後、合成シーケンスは、時間的FACS回帰サブネットワーク242のための重みを学習するために使用され得る。合成アニメーション訓練シーケンスは、異なるアイデンティティ(顔メッシュ)のために使用され所定のFACS重みを含むアニメーションファイルを使用して自動的にレンダリングされる、標準化されたリグを用いて作成され得る。これらのアニメーションファイルは、古典的なマーカーベースの手法によって捉えられるか、または、マーカーベースのデータにおいて欠けているあらゆる表情を埋め合わせるためにアーティストにより直接作成されるかのいずれかであるシーケンスを使用して、生成され得る。さらに、ブロック208および209において示されるように、ランドマークおよびFACS重みに対して回帰を行うために、損失が組み合わせられる。
【0082】
たとえば、顔面ランドマークおよびFACS重みに対して回帰を行うために、いくつかの異なる損失項が線形に組み合わせられ得る。顔面ランドマークに対して、回帰が行われる位置の二乗平均平方根誤差(RMSE)が、訓練を強化するためにランドマーク回帰モデル208によって使用され得る。加えて、FACS重みに対して、平均二乗誤差(MSE)がFACS損失回帰モデル209によって利用される。示されるように、回帰モデル209においてLposと表記されるFACS損失は、目標と予測される速度との間のMSEとして定義される速度損失(Lv)を利用する。これは、動きのある表情を全体的に滑らかにするのを助ける。加えて、加速度の正則化項(Lacc)が、FACS重みジッタを減らすために加算される(およびその重みは応答性を維持するために比較的低く保たれる)。訓練画像のサブセットのためのランドマークラベルを必要とすることなく、異なる変換のもとでランドマーク予測が同変となるのを助けるために、教師なし一貫性損失(Lc)も利用され得る。
【0083】
訓練されると、回帰モデル204は、FACS重み、頭部姿勢、および顔面ランドマークを、アバターをアニメーション化する際に使用するために入力ビデオ(たとえば、ユーザのライブビデオ)から抽出するために使用され得る。たとえば、クライアントデバイス110、116に関連する顔面アニメーションエンジン107は、出力FACS重み、頭部姿勢、および顔面ランドマークを取り込み、それらに基づいて個々のアニメーションフレームを生成し得る。個々のアニメーションフレームは、入力ビデオに基づいてアニメーション化される顔を持つアバターを提示するために、順番に(たとえば、リアルタイムで)並べられ得る。
【0084】
上で説明されたように、回帰モデル204は、入力ビデオからアニメーションを作成するために、クライアントデバイス110、116において実装され得る。以下で説明されるように、顔検出モデルは、回帰モデル204に対する、バウンディングボックスに基づくFACS重み、頭部姿勢、および顔面ランドマークの識別のために使用され得る。
【0085】
図3:顔検出モデル
図3は、いくつかの実装形態による、顔検出モデル302が配備されている例示的な顔追跡システム300の図である。顔追跡システム300は、P-Net308、R-Net310、A-Net312、およびB-Net316という4つのネットワークを含み、予測されるFACS重み、頭部姿勢、および顔面ランドマークを回帰のために備える出力340を生み出すように構成される。
【0086】
一般に、P-Net308は、入力フレーム304全体を受信し、異なる分解能で、顔提案(face proposal)および/またはバウンディングボックス候補を生成する。P-Net308はまた、完全畳み込みネットワークとも呼ばれ得る。
【0087】
R-Net310は、P-Net308から提案/バウンディングボックス候補を入力として取り込む。R-Net310は改良されたバウンディングボックスを出力する。R-Net310は、畳み込みニューラルネットワークとも呼ばれ得る。
【0088】
A-Net312は、改良された提案を受信し、顔確率(face probability)ならびにバウンディングボックス、FACS重み、頭部姿勢、および顔面ランドマークを回帰のために返す。一実装形態では、回帰は回帰モデル204によって実行され得る。B-Net316はA-Net312と似ていることがあるが、詳細度(LOD)の向上をもたらすことがある。このようにして、A-Net312は、B-Net316より低い異なる分解能を持つ入力フレームとともに動作し得る。
【0089】
図3に示されるように、第1の入力フレームの後に、高度な干渉の決定306が行われてもよく、これは、顔が元のバウンディングボックス内で検出されることをA-Net312によって出力される顔確率および/またはバウンディングボックスが示す場合、顔検出モデル302がP-Net308およびR-Net310を回避および/または迂回することを可能にする。このようにして、いくつかの計算ステップを省略することができ、それにより、計算時間の削減、遅れの削減、電力使用量の削減(これは電池で駆動するデバイスにおいて電池の節約に役立ち得る)、および計算効率の改善を含む、技術的な利益をもたらす。したがって、顔検出モデル302は計算の効率性をもたらすことができ、これは、スマートフォン、タブレット、またはウェアラブルデバイスなどの比較的計算能力の低いデバイスで使用するのに顔検出モデル302を適したものにする。P-Net308、R-Net310、およびA-Net312を備える顔検出モデルは、比較的計算能力の低いモバイルデバイスにより使用可能であり得る。
【0090】
加えて、動作の間、より高い詳細度が特定のクライアントデバイス110、116に対して適切であるかどうかを決定するために、A-Net312からの出力の後、高度な詳細度(LOD)の決定314が行われ得る。たとえば、利用可能なコンピューティングリソースがないこと、電池の電力が十分ではないこと、またはB-Net316によりもたらされるLODの改善を実装するのに適していない環境を、クライアントデバイスが示す場合、B-Net316の処理全体がオンザフライで省略されてもよい。このようにして、B-Net316により必要とされる追加の計算ステップを省略することができ、それにより、計算時間の削減、遅れの削減、および効率の向上を含む技術的な利点をもたらす。したがって、顔検出モデル302は、重いコンピュータビジョン分析の欠点を克服するような計算効率をもたらすことがあり、P-Net308、R-Net310、およびA-Net312を備える顔検出モデルは、比較的計算能力の低いモバイルデバイスによって、または効率の改善を必要とする動作条件のもとにあるデバイスによって実行されてもよい。
【0091】
1つまたは複数の条件が満たされるとき、B-Net316は迂回されてもよい。たとえば、そのような条件には、残量の少ない電池の節約、少ない利用可能な電力、高温の条件、ネットワーク帯域幅、またはメモリの制約などがあり得る。適切な閾値が各条件に対して使用され得る。さらに、デバイスの動作に対する影響を少なくしながら、またはなくしながら、たとえば仮想環境内でアバターアニメーションを提供するようにより低いLODで動作するように、ユーザが顔検出モデル302に指示することを可能にする、ユーザにより選択可能なオプションが提供されてもよい。
【0092】
A-Net312とB-Net316の両方が、過負荷の出力畳み込みニューラルネットワークである。これに関して、各ニューラルネットワークは、典型的な出力ニューラルネットワークと比較して、より多数の予測されるFACS重みおよび顔面ランドマークを提供する。たとえば、MTCNNの典型的な出力ネットワーク(たとえば、O-Net)は、約5つの顔面ランドマークおよびFACS重みの小さいセットを出力として提供し得る。それと比較して、A-Net312とB-Net316はともに、それよりかなり多くの、たとえば最高で175個またはそれを超える顔面ランドマークおよびいくつかのFACS重みを提供し得る。動作の間、予測されるFACS重み、頭部姿勢、および顔面ランドマークが、回帰およびアバターの(顔の)アニメーションのために回帰モデル204に(A-NetまたはB-Netのいずれかから)提供される。回帰モデル204は、A-Net312およびB-Net316の各々に含まれてもよいので、FACS重み、頭部姿勢、および顔面ランドマークの回帰は、いずれかの実装される出力ネットワーク内で行われてもよいことに留意されたい。A-Net312およびB-Net316の各々に関する追加の説明および詳細は、それぞれ図5Aおよび図5Bに関して与えられる。
【0093】
以下では、顔検出モデル302、回帰モデル204の動作に関する追加の詳細が、図4に関して与えられる。
【0094】
図4:訓練されたモデルを使用したアニメーションの生成
図4は、いくつかの実装形態による、3Dアバターのアニメーションを作成するように構成される回帰モデル204および顔検出モデル302の例示的なプロセスフロー図である。プロセスフロー400において示されるように、初期入力フレーム402a(タイムスタンプt=0における)は、顔検出モデル302への入力として与えられる。この例では、A-Net312および任意選択でB-Net316は、出力LODを決定するとき、アクティブな決定314および/または整列パッチ406によって動的に選択される。したがって、この出力ネットワークは、A-NetおよびB-Netアーキテクチャと決定314の組合せであり得ることが容易に理解されるはずである。いくつかの実装形態では、回帰モデルは、たとえば、利用可能な計算能力、顔面アニメーションの品質のユーザ設定などに応じて、A-NetまたはB-Netのうちの1つだけを実装してもよい。いくつかの実装形態では、決定314は、任意選択でB-Netを利用して実行時に行われてもよい。
【0095】
改良されたバウンディングボックスまたは顔面ランドマークを取得すると、識別された顔の輪郭を描くために、入力フレームが整列されて削減される。その後、回帰モデル204(A-Net312およびB-Net316の一部)は、t=0において整列された入力フレームを入力として取り込み、実際のFACS重み、頭部姿勢、および顔面ランドマークをアニメーション410のために出力する。
【0096】
後続のフレーム402bに対して(たとえば、タイムスタンプt=+1およびその後のタイムスタンプにおいて)、整列パッチ406は(たとえば、高度な迂回の決定306に基づいて)A-Netに直接入力され、A-Netは顔がまだ初期のバウンディングボックス内にあるかどうかを決定する。顔がまだ初期のバウンディングボックス内にある場合、回帰モデル204は、整列された入力フレームを入力として取り込み、実際のFACS重み、頭部姿勢、および顔面ランドマークを、顔が元のバウンディングボックス内で検出されるような各々の後続のフレームのアニメーション410のために出力する。
【0097】
顔がバウンディングボックス内で検出されない状況において、顔検出モデル302は、顔を含む新しいバウンディングボックスを提供するために、P-Net308およびR-Net310を利用し得る。
【0098】
過負荷の畳み込みニューラルネットワークが、A-Net312とB-Net316の両方のために使用される。以下では、A-Net312の簡単な説明が図5Aに関して与えられ、B-Net316の簡単な説明が図5Bに関して与えられる。
【0099】
図5:過負荷の出力ネットワーク
図5Aおよび図5Bは、いくつかの実装形態による、顔検出モデル302のための例示的な出力ネットワーク312および316の概略図である。
【0100】
図5Aに示されるように、A-Net312は、頭部角度および/または頭部姿勢に対して回帰を行うように構成される過負荷の畳み込みニューラルネットワークである。A-Netは、顔の口の外にある舌を検出するように構成される舌サブモデルと、FACS重みを予測するためのFACSサブモデルと、頭部姿勢または頭部角度を予測するための姿勢サブモデルと、提供されたバウンディングボックス内で顔を検出するための顔確率層(または複数の顔確率層)とを備える。A-Netはまた、ランドマークと、それらのランドマークについての遮蔽情報(たとえば、入力ビデオに存在する物理的な遮蔽)を検出するように構成される。
【0101】
A-Net312は、典型的な出力ネットワークと比較していくつかの利点をもたらす。まず、それは、端から端まで頭部姿勢に対する回帰を直接行うことを可能にする。そうするために、画像を入力するために使用される整列は、どのような回転も適用しない(入力がR-Netで予測されるバウンディングボックスから計算されるときと、A-Netランドマークから計算されるときの両方で)。加えて、それは、FACS重みおよび舌信号を予測する。加えて、それは、任意の数の顔面ランドマーク、この場合には175個を超える個別の輪郭またはランドマークの予測を可能にする。
【0102】
A-Net312は複数の段階で訓練され得る。最初に、A-Net312は、顔確率に対する回帰を行う枝と一緒にランドマークおよび遮蔽に対する回帰を行う、エンコーダ241とともに共同訓練され得る。この訓練のために、アノテートされたランドマーク(現実のランドマークと合成ランドマークの両方)を持つ顔の画像ならびに否定的な例(顔が存在しない画像、または存在する場合には、普通ではない大きさの顔が存在する画像、たとえば、画像の極端に大きなまたは小さな割合の部分に顔がある画像、顔の一部分しかないような画像など)が使用される。ネットワークおよびデータのこの部分は、時間情報を持たない。
【0103】
後続の段階は、FACSコントロールおよび頭部姿勢の角度に対する回帰を行い、舌出し検出を実行する、サブモデルを訓練する。エンコーダ241はこれらの訓練段階の間に修正されないので、サブモデルの訓練は任意の順序で実行され得る。FACS重みおよび頭部姿勢サブモデルは、表情および姿勢が変化する合成シーケンスを使用して、時間的なフィルタリングおよび時間的な一貫性を実現する時間アーキテクチャを使用して、ならびにそれを守らせる損失を使用して訓練され得る。舌出しサブモデルは、舌出し条件を検出するように現実の画像で訓練される単純な分類器であり得る。
【0104】
図5Bを見ると、B-Netはより高いLODを提供するように実装されてもよく、より高品質な顔面アニメーションを可能にする。一般に、B-Net316は、A-Net-312より高品質のFACS重みおよび舌予測に対して回帰を行う。入力画像は、A-Net312によって同じフレームにおいて提供されるランドマークを使用して整列される。たとえば、整列は、プロクラステス分析および/または他の適切な形状整列および/または輪郭整列方法を使用して実行されてもよい。
【0105】
この例では、B-Net316は、A-Net312と同様の構造に従うが、顔確率および頭部姿勢を提供せず、より大きい容量を有する。それは、A-Netと同じ方法で訓練される。すなわち、最初にランドマークおよび遮蔽情報について訓練し、続いてFACS重みの訓練と舌出しの訓練がある。B-Net316はまた、ランドマークと、それらのランドマークについての遮蔽情報(たとえば、入力ビデオに存在する物理的な遮蔽)を検出するように構成される。
【0106】
詳細度(LOD)およびB-Net処理の実施に関して、B-Netが図3の決定314において選ばれるかどうかには、いくつかの要因が影響し得る。LODの管理は、それが実行されているデバイスのタイプ、デバイスの現在の条件、および顔検出モデルの現在の性能に基づく。
【0107】
十分な計算性能を持つデバイスは、たとえばA-NetとB-Netの両方を実行することによって、最高のLODレベルで実行することができる。顔検出モデルの性能を監視することができ、フレーム毎秒(FPS)があるレベルを超えて悪化する場合、B-Netは迂回されてもよい。エネルギーを節約するために、デバイスの電池残量がある閾値を下回る場合にも、LODを下げることができる。さらに、LODレベルを決定するために、およびそれに対応して、B-Netが利用されるかどうかを決定するために、CPU温度などのハードウェア利用率に対する二次的な影響の尺度となる信号を考慮することができる。
【0108】
計算能力を考慮するとA-Netだけの実装に制約されるような、いくつかのデバイスもあり得る。これは、デバイスの事前定義されたリスト、および/または顔追跡器性能のオンライン推定のうちの1つまたは複数により行われ得る。
【0109】
A-Netだけを用いて実行する場合、すでにB-Netを迂回しているのに予測の品質がある値を下回る場合、回帰が行われたFACSコントロールの品質が十分ではないと決定されてもよく、固定されたまたは所定のFACS重みとともに、代わりに頭部姿勢のみが提供されてもよい。
【0110】
A-Net312および/またはB-Net316(回帰モデル204も含む)を使用して、アバターのアニメーションのための出力フレームのシーケンスは、モデルに提供される入力ビデオフレームに基づいて生成される。図6は、いくつかの実装形態による、ロバストなアニメーションを作成するように構成される回帰モデルおよび顔検出モデルの簡略化されたプロセスフロー図の例である。示されるように、入力フレーム601に存在する顔の動き、ジェスチャ、および他の特徴に基づいて、出力フレーム603が転置モジュール602を通じて生成されるように、入力フレーム601は、分析されて顔面ランドマークが抽出され得る。転置モジュールは、顔面アニメーションエンジン107および/またはVEアプリケーション112/118と関連付けられ得る。FACS重みおよび顔面ランドマークに基づいて操作され得るあらゆるアバターが、これらの技法を使用してアニメーション化され得ることに留意されたい。したがって、ヒューマノイド出力フレームが示されているが、あらゆる出力の変形が可能であり、本開示の例示的な実施形態の範囲内にある。
【0111】
以下では、上で説明されたモデルを使用してアニメーションを生成するより詳細な議論が提示される。
【0112】
図7:訓練されたモデルを用いたアバターのアニメーション化
図7は、いくつかの実装形態による、ビデオからのリアルタイムのロバストな顔面アニメーションの例示的な方法700のフローチャートである。いくつかの実装形態では、方法700は、たとえばサーバシステムで、たとえば図1に示されるようなオンライン仮想体験プラットフォーム102で実施され得る。いくつかの実装形態では、方法700の一部またはすべてが、図1に示されるような1つまたは複数のクライアントデバイス110および116などのシステムで、ならびに/または、サーバシステムと1つまたは複数のクライアントシステムの両方で実施され得る。説明される例において、システムを実装することは、1つまたは複数のプロセッサまたは処理回路、およびデータベースまたは他のアクセス可能なストレージなどの1つまたは複数の記憶デバイスを含む。いくつかの実装形態では、1つまたは複数のサーバおよび/またはクライアントの異なるコンポーネントは、方法700の異なるブロックまたは他の部分を実行することができる。
【0113】
アバターのアニメーションを提供するために、入力ビデオから顔が検出されてもよく、顔面ランドマーク、頭部姿勢、舌の状態などが、対応するアバターの顔をアニメーション化するために決定されて利用されてもよい。顔検出または分析を実行する前に、ユーザは、アバターのアニメーションのためにそのような技法が利用されることの標示を与えられる。ユーザが許可を拒否する場合、ビデオに基づく顔面アニメーションはオフにされる(たとえば、デフォルトのアニメーションが使用されてもよく、または、アニメーションは、ユーザにより提供されるオーディオおよび/もしくはテキスト入力などの他のユーザにより許可された入力に基づいてもよい)。ユーザにより提供されたビデオは、アバターのアニメーションのために特別に利用され、記憶されない。ユーザは、ビデオ分析およびアニメーション生成をいつでもオフにすることができる。さらに、顔検出はビデオ内の顔の位置を検出するために実行される。すなわち、顔認識は実行されない。ユーザがアバターのアニメーションのためにビデオ分析を使用することを許可する場合、方法700はブロック702において開始する。
【0114】
ブロック702において、ビデオの第1のフレームからバウンディングボックス候補のセットを識別するために、完全畳み込みネットワークが使用される。各バウンディングボックス候補は、ビデオの第1のフレームからの顔を含む。たとえば、ビデオは、オンライン仮想体験プラットフォーム102と動作可能に通信しているユーザデバイス(たとえば、110、116)によって捉えられ得る。クライアントデバイスに関連するユーザは、カメラコンポーネントを介した撮影のために自分の顔を提示し、自分のデバイスの仮想体験アプリケーション(または他の顔面アニメーションアプリケーション)によるビデオへのアクセスを許容し得る。仮想体験アプリケーション(または他の顔面アニメーションアプリケーション)は、上で説明されたように、顔検出モデル302と回帰モデル204の両方を実装し得る(これらはA-Net312またはB-Net316として実装され得る)。ブロック702の後にはブロック704がある。
【0115】
ブロック704において、バウンディングボックス候補のセットが、畳み込みニューラルネットワークを使用してバウンディングボックスへと改良される。たとえば、図3に関して上で説明されたように、P-Net308はバウンディングボックス候補をR-Net310に提供してもよく、候補は顔検出モデル302による使用のためにバウンディングボックスへと改良される。ブロック704の後にはブロック706がある。
【0116】
ブロック706において、バウンディングボックスおよび第1のフレームに基づく、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットが、過負荷の出力畳み込みニューラルネットワークを使用して取得される。たとえば、いくつかの実装形態では、過負荷の出力畳み込みネットワークはA-Net312のみを含み得る。他の実装形態では、過負荷の出力畳み込みネットワークは、A-Net312とB-Net316の両方を含み得る。A-Netと組み合わせてB-Netを使用するかどうかの決定は、限定はされないが、ユーザの好み、システム管理者の好み、利用可能なコンピューティングリソース、利用可能なメモリ、予想または実現されるフレームレート、ネットワーク条件、および他の要因を含む、複数の要因に基づき得る。ブロック706の後にはブロック708がある。
【0117】
ブロック708において、事前定義された表情重み、頭部姿勢、および顔面ランドマークのうちの1つまたは複数の第1のセットに基づく、3次元(3D)アバターのアニメーションの第1のアニメーションフレームが生成される。一般に、アバターの頭部姿勢は第1のセットの中の頭部姿勢と一致し、アバターの顔面ランドマークは第1のセットの中の顔面ランドマークと一致する。さらに、アニメーションフレームは、過負荷の出力畳み込みネットワークによって出力される予測値を、訓練された回帰モデルが受信して処理することに基づいて作成される。したがって、いくつかの実装形態では、回帰モデル204はアバターのアニメーションのための最終的な重みを提供し得る。ブロック708の後にはブロック710がある。
【0118】
ブロック710において、第1のフレームの後のビデオの各々の追加のフレームに対して顔が検出されるかどうかの決定が行われる。バウンディングボックスが顔を含むことが検出される場合、ブロック712は、過負荷の出力畳み込みニューラルネットワークを使用して、バウンディングボックスおよび追加のフレームに基づいて、1つまたは複数の事前定義された表情重み、頭部姿勢、および顔面ランドマークの追加のセットを取得することを備える。さらに、ブロック714は、追加のセットを使用して、3Dアバターのアニメーションの追加のアニメーションフレームを生成することを備える。
【0119】
しかしながら、ブロック710において、第1のフレームの後のビデオの各々の追加のフレームにおいて、バウンディングボックスが顔を含まないことが検出される場合、方法700は、顔を含む新しいバウンディングボックスに基づいて、識別すること(702)、改良すること(704)、および取得すること(706)を繰り返すステップを含む。これに関して、顔が検出されない場合、P-Net308およびR-Net310が再び使用される。したがって、方法700は、追加のフレームのためのバウンディングボックスが顔を含まないことが検出される場合、追加のフレームを第1のフレームとして設定するステップと、上で説明されたようにステップを繰り返すステップとを含む。
【0120】
ブロック702~714は、上で説明されたものとは異なる順序で実行(または反復)されてもよく、および/または、1つまたは複数のブロックが省略されてもよい。方法700は、サーバ(たとえば、102)および/またはクライアントデバイス(たとえば、110または116)で実行され得る。さらに、あらゆる望まれる実装形態に従って、方法700の一部は組み合わせられてもよく、順番にまたは並列に実行されてもよい。
【0121】
上で説明されたように、ロバストな顔面アニメーションの技法は、クライアントデバイスにおける訓練された顔検出モデルおよび訓練された回帰モデルの実装を含む。顔検出モデルは、第1のフレームの後にある、顔が検出されるフレームに対してバウンディングボックスの作成を迂回し、ユーザの好みおよび/またはデバイス条件に応じてより高い詳細度の出力ネットワークを迂回する(たとえば、B-Netを迂回する)ことによって、使用される計算リソースを自動的に減らす、2つ以上のインテリジェント決定コンポーネントを含み得る。
【0122】
以下では、図1図6に示される種々のデバイスおよびコンポーネントを実装するために使用され得る様々なコンピューティングデバイスのより詳細な説明が、図8に関して与えられる。
【0123】
図8は、いくつかの実装形態による、本明細書において説明される1つまたは複数の特徴を実装するために使用され得る例示的なコンピューティングデバイス800のブロック図である。一例では、デバイス800は、コンピュータデバイス(たとえば、図1の102、110、および/または116)を実装するために、および本明細書において説明される適切な方法の実装形態を実行するために使用され得る。コンピューティングデバイス800は、任意の適切なコンピュータシステム、サーバ、または他の電子デバイスもしくはハードウェアデバイスであり得る。たとえば、コンピューティングデバイス800は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス(ポータブルデバイス、モバイルデバイス、携帯電話、スマートフォン、タブレットコンピュータ、テレビ、TVセットトップボックス、携帯情報端末(PDA)、メディアプレーヤ、ゲームデバイス、ウェアラブルデバイスなど)であり得る。いくつかの実装形態では、デバイス800は、プロセッサ802、メモリ804、入力/出力(I/O)インターフェース806、およびオーディオ/ビデオ入力/出力デバイス814(たとえば、表示画面、タッチスクリーン、ディスプレイゴーグルまたは眼鏡、オーディオスピーカ、マイクロフォンなど)を含む。
【0124】
プロセッサ802は、プログラムコードを実行し、デバイス800の基本的な動作を制御するための、1つまたは複数のプロセッサおよび/または処理回路であり得る。「プロセッサ」は、データ、信号、または他の情報を処理する、任意の適切なハードウェアおよび/またはソフトウェアシステム、機構、またはコンポーネントを含む。プロセッサは、汎用中央処理装置(CPU)、複数の処理装置、機能を達成するための専用回路を持つシステム、または他のシステムを含み得る。処理は、特定の地理的位置に限定される必要はなく、または時間的な制約を有する必要はない。たとえば、プロセッサは、その機能を「リアルタイム」、「オフライン」、「バッチモード」などで実行してもよい。処理の一部は、異なる(または同じ)処理システムによって、異なる時間および異なる位置において実行されてもよい。コンピュータは、メモリと通信している任意のプロセッサであってもよい。
【0125】
メモリ804は通常、プロセッサ802によるアクセスのためにデバイス800に設けられ、プロセッサによる実行のための命令を記憶するのに適しており、プロセッサ802から離れて位置している、および/またはそれと統合されている、任意の適切なプロセッサ可読記憶媒体、たとえば、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電子的消去可能読み取り専用メモリ(EEPROM)、フラッシュメモリなどであってもよい。メモリ804は、オペレーティングシステム808、アプリケーション810、および関連するデータ812を含む、プロセッサ802によりサーバデバイス800上で動作するソフトウェアを記憶することができる。いくつかの実装形態では、アプリケーション810は、本明細書において説明される機能、たとえば図7の方法の一部またはすべてをプロセッサ802が実行することを可能にする命令を含み得る。いくつかの実装形態では、アプリケーション810はまた、本明細書において説明されるように、入力ビデオに基づいてロバストなリアルタイムアニメーションを生成するための1つまたは複数の訓練されたモデルを含み得る。
【0126】
たとえば、メモリ804は、オンライン仮想体験プラットフォーム(たとえば、102)内で、カメラで捉えられたユーザの顔の動きに基づいてアニメーションされたアバターを提供することができる、アプリケーション810のためのソフトウェア命令を含み得る。代替として、メモリ804の中のソフトウェアのいずれもが、あらゆる他の適切な記憶位置またはコンピュータ可読媒体に記憶され得る。加えて、メモリ804(および/または他の接続された記憶デバイス)は、本明細書において説明される特徴において使用される命令およびデータを記憶することができる。メモリ804および任意の他のタイプのストレージ(磁気ディスク、光学ディスク、磁気テープ、または他の有形媒体)が、「ストレージ」または「記憶デバイス」であると見なされ得る。
【0127】
I/Oインターフェース806は、サーバデバイス800を他のシステムおよびデバイスに対してインターフェースすることを可能にするための機能を提供することができる。たとえば、ネットワーク通信デバイス、記憶デバイス(たとえば、メモリおよび/またはデータストア108)、および入力/出力デバイスが、インターフェース806を介して通信することができる。いくつかの実装形態では、I/Oインターフェースは、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナなど)および/または出力デバイス(表示デバイス、スピーカデバイス、プリンタ、モーターなど)を含むデバイスをインターフェースするために接続することができる。
【0128】
例示を簡単にするために、図8は、プロセッサ802、メモリ804、I/Oインターフェース806、ソフトウェアブロック808および810、ならびにデータベース812の各々のための1つのブロックを示す。これらのブロックは、1つまたは複数のプロセッサまたは処理回路、オペレーティングシステム、メモリ、I/Oインターフェース、アプリケーション、および/またはソフトウェアモジュールを表し得る。他の実装形態では、デバイス800は、示されるコンポーネントのすべてを有しなくてもよく、および/または、本明細書において示されるものの代わりに、もしくはそれに加えて、他のタイプの要素を含む他の要素を有してもよい。オンライン仮想体験プラットフォーム102は、本明細書のいくつかの実装形態において説明されるような動作を実行するものとして説明されるが、オンライン仮想体験プラットフォーム102もしくは同様のシステムの任意の適切なコンポーネントもしくはコンポーネントの組合せ、またはそのようなシステムに関連する任意の適切な1つまたは複数のプロセッサが、説明される動作を実行してもよい。
【0129】
ユーザデバイスはまた、本明細書において説明される特徴を実装し、および/またはそれとともに使用され得る。例示的なユーザデバイスは、デバイス800と同様のいくつかのコンポーネント、たとえばプロセッサ802、メモリ804、およびI/Oインターフェース806を含む、コンピューティングデバイスであり得る。クライアントデバイスに適したオペレーティングシステム、ソフトウェア、およびアプリケーションが、メモリにおいて提供され、プロセッサによって使用され得る。クライアントデバイスのためのI/Oインターフェースは、ネットワーク通信デバイスに、ならびに入力および出力デバイスに、たとえば音を捉えるためのマイクロフォン、画像もしくはビデオを捉えるためのカメラ、音を出力するためのオーディオスピーカデバイス、画像もしくはビデオを出力するための表示デバイス、または他の出力デバイスに接続され得る。オーディオ/ビデオ入力/出力デバイス814内の表示デバイスは、たとえば、本明細書において説明されるような画像の前処理および後処理を表示するために、デバイス800に接続されてもよく(またはそれに含まれてもよく)、そのような表示デバイスは、任意の適切な表示デバイス、たとえば、LCD、LED、またはプラズマディスプレイスクリーン、CRT、テレビ、モニター、タッチスクリーン、3D表示画面、プロジェクタ、または他の視覚表示デバイスを含み得る。いくつかの実装形態は、オーディオ出力デバイス、たとえばテキストを話す音声出力または合成を提供することができる。
【0130】
本明細書において説明される方法、ブロック、および/または動作は、適宜、示されるもしくは説明されるものとは異なる順序で実行されてもよく、および/または、他のブロックもしくは動作と(部分的にまたは完全に)同時に実行されてもよい。一部のブロックまたは動作は、データのある部分のために実行され、たとえばデータの別の部分のために、後で再び実行され得る。様々な実装形態において、説明されるブロックおよび動作のすべてが実行される必要はない。いくつかの実装形態では、ブロックおよび動作は、方法において、複数回、異なる順序で、および/または異なる時間に実行され得る。
【0131】
いくつかの実装形態では、方法の一部またはすべてが、1つまたは複数のクライアントデバイスなどのシステムで実施され得る。いくつかの実装形態では、本明細書において説明される1つまたは複数の方法は、たとえば、サーバシステムで、および/またはサーバシステムとクライアントシステムの両方で実施され得る。いくつかの実装形態では、1つまたは複数のサーバおよび/またはクライアントの異なるコンポーネントは、異なるブロック、動作、または方法の他の部分を実行することができる。
【0132】
本明細書において説明される1つまたは複数の方法(たとえば、方法600および/または700)は、コンピュータ上で実行され得る、コンピュータプログラム命令またはコードによって実施され得る。たとえば、コードは、1つまたは複数のデジタルプロセッサ(たとえば、マイクロプロセッサまたは他の処理回路)によって実装されてもよく、非一時的コンピュータ可読媒体(たとえば、記憶媒体)、たとえば、半導体またはソリッドステートメモリ、磁気テープ、取り外し可能コンピュータディスケット、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、リジッド磁気ディスク、光学ディスク、ソリッドステートメモリドライブなどを含めて、磁気記憶媒体、光学記憶媒体、電磁気記憶媒体、または半導体記憶媒体を含む、コンピュータプログラム製品に記憶されてもよい。プログラム命令はまた、たとえばサーバから配信されるsoftware as a service (SaaS)の形式の電子信号に含まれてもよく、またはそのような電子信号として提供されてもよい(たとえば、分散型システムおよび/またはクラウドコンピューティングシステム)。代替として、1つまたは複数の方法は、ハードウェア(論理ゲートなど)で、またはハードウェアとソフトウェアの組合せで実施され得る。例示的なハードウェアは、プログラマブルプロセッサ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、コンプレックスプログラマブルロジックデバイス)、汎用プロセッサ、グラフィクスプロセッサ、特定用途向け集積回路(ASIC)などであり得る。1つまたは複数の方法は、システム上で実行されるアプリケーションの一部もしくは構成要素として、または他のアプリケーションおよびオペレーティングシステムと連携して実行するアプリケーションもしくはソフトウェアとして実行され得る。
【0133】
本明細書において説明される1つまたは複数の方法は、任意のタイプのコンピューティングデバイスで実行され得るスタンドアロンプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス(たとえば、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(腕時計、アームバンド、宝飾品、ヘッドウェア、ゴーグル、眼鏡など)、ラップトップコンピュータなど)上で実行されるモバイルアプリケーション(「アプリ」)において実行され得る。一例では、クライアント/サーバアーキテクチャが使用されてもよく、たとえば、モバイルコンピューティングデバイスが(クライアントデバイスとして)、ユーザ入力データをサーバデバイスに送信し、出力のために(たとえば、表示のために)サーバから最終的な出力データを受信する。別の例では、すべての計算がモバイルコンピューティングデバイスのモバイルアプリ(および/または他のアプリ)内で実行され得る。別の例では、計算は、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間で分割され得る。
【0134】
特定の実装形態に関して説明が行われてきたが、これらの特定の実装形態は例示にすぎず、限定するものではない。例において示される概念は、他の例および実装形態に適用され得る。
【0135】
本明細書において論じられるいくつかの実装形態が、ユーザデータ(たとえば、ユーザの画像、ユーザの属性、プラットフォーム上でのユーザの挙動データ、ユーザの検索履歴、購入および/または閲覧されたアイテム、プラットフォーム上でのユーザの友人など)を取得または使用してもよい状況において、ユーザは、そのような情報が収集され、記憶され、もしくは使用されるかどうか、またはどのようにそれらが行われるかを制御するためのオプションを与えられる。すなわち、本明細書において論じられる実装形態は、明確なユーザの承認を受け取り、適用可能な規制に従って、ユーザ情報を収集し、記憶し、および/または使用する。
【0136】
ユーザは、プログラムまたは機能が、その特定のユーザまたはそのプログラムもしくは機能に関係する他のユーザについてのユーザ情報を収集するかどうかの制御権を与えられる。それについての情報が収集されることになる各ユーザは、ユーザが、そのユーザに関係する情報収集についての制御権を行使して、情報が収集されるかどうか、および情報のどの部分が収集されることになるかについての許可または承認を提供することを可能にするための、オプションを(たとえば、ユーザインターフェースを介して)提示される。加えて、個人を識別可能な情報が削除されるように、一部のデータは記憶または使用の前に1つまたは複数の方法で修正されてもよい。一例として、個人を識別可能な情報を決定できないように、(たとえば、仮名、数値などを使用した置換により)ユーザの識別情報が修正されてもよい。別の例では、ユーザの地理的位置は、より広い領域(たとえば、都市、郵便番号、州、国など)へと一般化されてもよい。
【0137】
本開示において説明される機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているであろうシステム、デバイス、および機能ブロックの異なる組合せへと統合または分割されてもよいことに留意されたい。あらゆる適切なプログラミング言語およびプログラミング技法が、特定の実装形態のルーチンを実施するために使用されてもよい。種々のプログラミング技法、たとえば手続型プログラミング技法またはオブジェクト指向プログラミング技法が利用されてもよい。ルーチンは単一の処理デバイスで実行されても、または複数のプロセッサで実行されてもよい。ステップ、動作、または計算は特定の順序で提示されることがあるが、異なる特定の実装形態では順序は変更されてもよい。いくつかの実装形態では、本明細書において逐次的であるものとして示されている複数のステップまたは動作は、同時に実行されてもよい。
【符号の説明】
【0138】
102 オンライン仮想体験プラットフォーム
104 VEエンジン
105 VE
106 共通エンジン
107 顔面アニメーションエンジン
108 データストア
110 クライアントデバイスA
112 VEアプリケーション
114 ユーザA
116 クライアントデバイスn
118 VEアプリケーション
120 ユーザn
204 回帰モデル
208 ランドマーク回帰モデル
241 エンコーダ
242 FACS回帰サブネットワーク
243 因果的畳み込み
244 FC畳み込みサブネットワーク
245 再帰ニューラルサブネットワーク
250 非対称カーネル
300 顔追跡システム
302 顔検出モデル
304 入力フレーム
308 P-NET
310 R-NET
312 A-NET
316 B-NET
402 入力フレーム
406 整列パッチ
601 入力フレーム
602 転置モジュール
603 出力フレーム
800 コンピューティングデバイス
802 プロセッサ
804 メモリ
806 I/Oインターフェース
808 オペレーティングシステム
810 アプリケーション
812 データベース
814 I/Oデバイス
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
【国際調査報告】