テクノロジーの内部 - アバターの表情の解決 - Roblox ブログ

テクノロジーの内部 – アバターの表情の解決 – Roblox ブログ

ソースノード: 3039939

Inside the Tech は、当社のレポートに付随するブログ シリーズです。 テックトークポッドキャスト。ポッドキャストのエピソード 20「アバターと自己表現」では、Roblox CEO の David Baszucki が、エンジニアリング担当シニア ディレクターの Kiran Bhat、製品担当シニア ディレクターの Mahesh Ramasubramanian、およびプリンシパル プロダクト マネージャーの Effie Goenawan と、アバターとそれを可能にするために私たちが解決している技術的課題。 Inside the Tech の今回の号では、エンジニアリング マネージャーの Ian Sachs と対談し、それらの技術的課題の XNUMX つであるアバターの表情の有効化と、(エンジン グループの下にある) アバター作成チームの取り組みがユーザーの自己表現にどのように役立っているかについて詳しく学びました。ロブロックスで。

あなたのチームが取り組んでいる最大の技術的課題は何ですか?

Roblox 上でアバターが誰かをどのように表現するかを考えるとき、私たちは通常、アバターがどのように動作するか、どのように見えるかという 2 つのことを考慮します。したがって、私のチームの主な焦点の 1 つは、アバターが人の表情を反映できるようにすることです。たとえば、誰かが笑うと、その人のアバターもそれに合わせて笑顔になります。 

表情の追跡で難しいことの 1 つは、これらの表情をリアルタイムで人のデバイス上で直接キャプチャできるようにモデルの効率を調整することです。私たちは、Roblox 上でできるだけ多くの人がこの機能にアクセスできるようにすることに尽力しており、幅広いデバイスをサポートする必要があります。そのためには、デバイスが処理できる計算能力の量が重要な要素となります。私たちは、強力なデバイスを持っている人だけでなく、誰もが自分自身を表現できるようにしたいと考えています。そこで、これを可能にするために、当社初の深層学習モデルの 1 つを導入しています。 

私たちが取り組んでいる 2 番目の重要な技術的課題は、ユーザーがカスタマイズできる動的なアバターを開発するためにクリエイターが使用するプロセスを簡素化することです。このようなアバターの作成は非常に複雑です。頭をモデリングする必要があり、アニメーション化したい場合は、リニア ブレンド スキニング用のジョイントやウェイトの配置など、モデルをリグするために非常に具体的な作業を行う必要があるからです。私たちはクリエイターにとってこのプロセスをもっと簡単にしたいと考えており、それを簡素化するテクノロジーを開発しています。静的モデルの構築だけに集中すればよいのです。そうなった場合、自動的にリグを取り付けてケージに入れることができます。そうすれば、顔の追跡と重ね着がすぐに機能するはずです。 

これらの技術的課題に取り組むために私たちが使用している革新的なアプローチとソリューションにはどのようなものがありますか?

顔の表情に関する適切な情報を確実に取得するために、いくつかの重要な作業を行いました。それは、業界標準の FACS (フェイシャル アニメーション コントロール システム) を使用することから始まります。これらはすべての鍵です。なぜなら、これらはアバターの表情を決定するために使用されるものだからです。つまり、口の幅、目がどのくらい開くかなどです。約 50 種類の異なる FACS コントロールを使用して、望ましい顔の表情を表現できます。 

画像やビデオから顔の表情を推定する機械学習アルゴリズムを構築するときは、既知のグラウンド トゥルース表現 (FACS で記述される) を含むサンプル画像を表示してモデルをトレーニングします。さまざまな表情を持つさまざまな画像をモデルに見せることで、モデルはこれまで見たことのない顔の表情を推定することを学習します。

通常、顔の追跡に取り組んでいる場合、これらの表情は人間によってラベル付けされます。最も簡単な方法は、ランドマークを使用することです。たとえば、画像上にドットを配置して、目の隅などの顔の特徴のピクセル位置をマークします。 

しかし、FACS の重みは異なります。写真を見て「口が 0.9 対 0.5 開いている」とは言えないからです。これを解決するために、合成データを使用して、さまざまな角度と照明条件からの FACS ポーズでレンダリングされた 3D モデルで構成される FACS ウェイトを直接生成しています。

残念ながら、モデルを実際の顔に一般化する必要があるため、合成データのみをトレーニングすることはできません。そこで、実際のデータと合成データの組み合わせを使用してランドマーク予測タスクでモデルを事前トレーニングし、モデルが純粋に合成データを使用して FACS 予測タスクを学習できるようにします。

私たちは顔追跡がすべての人に機能することを望んでいますが、一部のデバイスは他のデバイスよりも強力です。これは、あらゆるデバイスの処理能力に動的に適応できるシステムを構築する必要があることを意味します。これは、モデルを BaseNet と呼ばれる高速近似 FACS 予測フェーズと HiFiNet と呼ばれるより正確な FACS 改良フェーズに分割することで実現しました。実行時にシステムはパフォーマンスを測定し、最適な条件下で両方のモデル フェーズを実行します。ただし、(たとえば、ローエンド デバイスが原因で) 速度低下が検出された場合、システムは最初のフェーズのみを実行します。

この技術的な作業を通じて学んだ重要なことは何ですか?

1 つは、機能を動作させることは、何かを正常にリリースするために実際に必要なことのほんの一部であるということです。作業の多くはエンジニアリングと単体テストのプロセスにあります。適切なデータのパイプラインがあるかどうかを判断する適切な方法があることを確認する必要があります。そして私たちは自問する必要があります。「この新しいモデルは実際に古いモデルよりも優れているのでしょうか?」

コアエンジニアリングを開始する前に、実験を追跡し、データセットがユーザーの多様性を表していることを確認し、結果を評価し、それらの新しい結果をデプロイしてフィードバックを取得するために導入したすべてのパイプラインが、モデルを十分なものにするために投入されます。しかし、これは非常に重要であるにもかかわらず、あまり話題にならないプロセスの一部です。 

あなたのチームが最も共感するRobloxの価値はどれですか?

プロジェクトのフェーズを理解することが重要であるため、イノベーション中、特に重要な問題を解決しようとする研究では、長期的な視点を持つことが非常に重要です。しかし、イノベーションを起こす価値のある問題を特定する際には、コミュニティを尊重することも重要です。私たちは、より広範なコミュニティにとって最も価値のある問題に取り組みたいと考えているからです。たとえば、私たちは、単なる「顔追跡」ではなく、「すべての人のための顔追跡」に取り組むことを特に選択しました。何かを構築する段階が 90% に達すると、プロトタイプを機能的な機能に移行できるかどうかは、実行とプロジェクトの段階に適応するかどうかにかかっています。

Roblox とあなたのチームがどこに向かっているのかについて、最も興奮していることは何ですか?

私は人々の創造性を支援するツールの開発に常に惹かれてきました。何かを作ることは特別です。なぜなら、自分だけのものが完成するからです。私は視覚効果やさまざまな写真編集ツールに取り組んできました。数学、科学、研究、工学の洞察を利用して、人々が本当に興味深いことをできるように支援してきました。今、Roblox では、それをまったく新しいレベルに引き上げることができます。 Roblox は単なるツールではなく、創造性のプラットフォームです。そして、創造性を可能にするツールを構築できる規模は、私がこれまでに取り組んできたものよりもはるかに大きく、信じられないほどエキサイティングです。

タイムスタンプ:

より多くの ROBLOX