顔認識には落とし穴もありますが、3 次元は認識できますが、2 次元では効果がありません。ディズニーの技術チームは、アニメーターがポストプロダクション検索を行うのに役立つこのアルゴリズムを開発しています。 PyTorch を使用することで、チームの効率が大幅に向上しました。
アニメーションといえば、1923年に設立されたビジネス帝国、ディズニーを外せない。アニメーションから始まったディズニーは、今も世界のアニメーション映画の発展をリードしている。
すべてのアニメーション映画の背後には、何百人もの人々の努力と汗があります。最初のコンピュータ 3D アニメーション「トイ ストーリー」のリリース以来、ディズニーはデジタル アニメーション制作の旅に乗り出しました。 CGIやAI技術の発展により、ディズニー・アニメーション映画の制作方法やアーカイブ方法も大きく変化しました。
現在、ディズニーはコンピューター科学者を多数採用しており、最先端のテクノロジーを活用してコンテンツの制作方法を変え、映画の舞台裏で働く人々の負担を軽減している。
ウォルト・ディズニー・アニメーション・スタジオには、アーティスト、監督、脚本家、プロデューサー、技術チームを含む、25カ国から800人以上の従業員が在籍しているとされています。
映画の制作には、インスピレーション、ストーリーのあらすじ作成、脚本の策定、美術デザイン、キャラクターデザイン、吹き替え、アニメーション効果、特殊効果の制作、編集、ポストプロダクションなど、多くの複雑なプロセスを経る必要があります。
2021年3月現在、アニメーション映画の制作だけを専門とするウォルト・ディズニー・アニメーション・スタジオは59本の長編アニメーションを制作・公開しており、これらの映画に登場するアニメーションキャラクターは合計すると数百、数千人に上る。
アニメーターが続編を作成している場合、または特定のキャラクターを参照したい場合、大規模なコンテンツ アーカイブから特定のキャラクター、シーン、またはオブジェクトを検索する必要があります。この目的を達成するために、彼らはビデオの視聴に何時間も費やし、肉眼だけを頼りに必要なクリップを選り分けることがよくあります。
この問題を解決するために、ディズニーは次のようなプロジェクトを開始しました。 「コンテンツゲノム」AIプロジェクト、これは、アニメーターがアニメーション内の顔を (キャラクターであってもオブジェクトであっても) 迅速かつ正確に識別できるように、ディズニーのデジタル コンテンツのアーカイブを作成するように設計されています。
デジタル コンテンツ ライブラリの最初のステップは、制作者やユーザーによる検索を容易にするために、過去の作品内のコンテンツを検出してマークすることです。
顔認識技術は比較的成熟していますが、同じ方法をアニメーションの顔認識にも使用できますか?
Content Genome 技術チームは実験を実施し、これが特定の状況でのみ機能することを発見しました。
彼らは、「エレナ、プリンセス オブ アバロー」と「リトル ライオン ガード」という 2 つのアニメーション映画を選択し、いくつかのサンプルに手動で注釈を付け、フィルムの数百のフレームの顔に四角形を使用してマークを付けました。この手動でアノテーションが付けられたデータセットを使用すると、チームは、HOG + SVM パイプラインに基づく顔認識テクノロジーが、アニメーション化された顔 (特に人間のような顔や動物の顔) ではパフォーマンスが低いことを検証しました。
チームによる分析の結果、HOG + SVM のような手法は色、明るさ、テクスチャの変化に対して堅牢であることが確認されましたが、使用されたモデルは人間のプロポーション (つまり、目 2 つ、鼻 1 つ、口 1 つ) を持つアニメーション キャラクターのみを照合できます) 。
さらに、アニメーション コンテンツの背景には平らな領域があり、詳細がほとんどないことが多いため、Faster-RCNN モデルは、単純な背景に対して目立つものをアニメーションの顔として誤って識別します。
そこでチームは、顔に関するより抽象的な概念を学習できるテクノロジーが必要だと判断しました。
チームはモデルのトレーニングに PyTorch を使用することを選択しました。チームが紹介したのは、PyTorch を通じて、トレーニングのニーズに合わせて最先端の事前トレーニング済みモデルにアクセスし、アーカイブ プロセスをより効率的に行うことができます。
トレーニング プロセス中に、チームはデータ セット内に十分な正のサンプルがあるものの、モデルをトレーニングするのに十分な負のサンプルが存在しないことを発見しました。彼らは、アニメーション化された顔は含まれていないが、アニメーション化された機能を備えた追加の画像で初期データ セットを拡張することにしました。
これを技術的に行うには、 彼らは、Torchvision の Faster-RCNN 実装を拡張して、トレーニング中にアノテーションなしでネガティブ サンプルをロードできるようにしました。
これは、Torchvision コア開発者の指導の下、Torchvision 0.6 のチームによって作成された新機能でもあります。ネガティブな例をデータセットに追加すると、推論中の誤検知を大幅に削減でき、優れた結果が得られます。
アニメーション画像の顔認識を実装した後のチームの次の目標は、ビデオ分析プロセスを高速化することであり、PyTorch を適用することで他のタスクを効果的に並列化して高速化できます。
チームが紹介したのは、ビデオの読み取りとデコードにも時間がかかるため、チームはカスタム PyTorch IterableDataset を PyTorch の DataLoader と組み合わせて使用し、並列 CPU を使用してビデオのさまざまな部分を読み取ることができるようにしました。
ビデオを読み取るこの方法はすでに非常に高速ですが、チームは 1 回の読み取りだけですべての計算を完了することも試みました。したがって、パイプラインの大部分を PyTorch で実行し、GPU 実行を考慮しました。各フレームは GPU に 1 回だけ送信され、その後すべてのアルゴリズムが各バッチに適用されて、CPU と GPU 間の通信が最小限に抑えられます。
また、チームは PyTorch を使用して、ニューラル ネットワークを使用せず、主に色空間の変更、ヒストグラム、特異値分解 (SVD) などの操作を実行する、ショット検出器などのより伝統的なアルゴリズムを実装しています。 PyTorch を使用すると、チームは最小限のコストで計算を GPU に移動し、複数のアルゴリズム間で共有された中間結果を簡単にリサイクルできます。
PyTorch を使用することで、CPU 部分を GPU に移動し、DataLoader を使用してビデオの読み取りを高速化することで、ハードウェアを最大限に活用し、最終的に処理時間を 10 分の 1 に短縮しました。
チームの開発者は、IterableDataset、DataLoader、Torchvision などの PyTorch のコア コンポーネントにより、推論からモデル トレーニング リソース、完全なパイプライン最適化ツールセットまで、チームが運用環境でのデータ読み込みとアルゴリズムの効率を向上できると結論付けました。選ばれることが増えてきました。
この記事は、パブリック アカウント PyTorch 開発者コミュニティによって編集および公開されています。