Web MLによるGoogle Meetの背景置き換え(1/2)

AI

1.Web MLによるGoogle Meetの背景置き換え(1/2)まとめ

・ビデオ会議ソフトGoogle Meetで機械学習を使用して背景を置き換える技術が発表
・ブラウザで直接動作するMediaPipeを使っているのでアドオンのインストールが不要
・ブラウザがWebAssembly命令をJavaScriptコードよりも高速なマシンコードに変換

2.Google Meetの背景ぼかし技術の概要

以下、ai.googleblog.comより「Background Features in Google Meet, Powered by Web ML」の意訳です。元記事の投稿は2020年10月30日、Tingbo HouさんとTyler Mullenさんによる投稿です。

アイキャッチ画像のクレジットはPhoto by Christina on Unsplash

ビデオ会議は、人々の仕事や私生活においてますます重要になっています。プライバシーの強化や楽しい視覚的効果でその体験を改善することは、会議自体に焦点を合わせるのに役立ちます。

この目標の一環として、最近、Google Meetで背景をぼかして置き換える手法を発表しました。これは、機械学習(ML)を使用して、周辺環境に関係なく参加者をより強調します。

他のアプリでは追加でソフトウェアをインストールする必要がありますが、Google Meetの機能は、ブラウザで直接動作するMediaPipeを使って構築された最先端のWebMLテクノロジーを利用しています。追加の作業は必要ありません。

これらの機能を開発する際の重要な目標の1つは、ほぼ全ての最近のデバイスでリアルタイムのブラウザー内パフォーマンスを提供することでした。これは、効率的なオンデバイス機械学習(ML)モデル、WebGLベースのレンダリング、およびXNNPACKとTFLiteを介したWebベースのML推論を組み合わせることで実現しました。


Web上のMediaPipeを利用した、背景のぼかしと背景の置換

Web MLソリューションの概要
Google Meetの新機能は、MediaPipeを使用して開発されています。MediaPipeはGoogleのオープンソースフレームワークで、ライブメディアとストリーミングメディア向けのクロスプラットフォームでMLソリューションで、カスタマイズ可能です。これは、デバイス上でリアルタイムに手虹彩体のポーズの追跡などのMLソリューションにも役立ちます。

オンデバイスソリューションの中心的なニーズは、高性能を実現することです。これを実現するために、MediaPipeのWebパイプラインはWebAssemblyを利用します。これは、計算量の多いタスクの速度を向上させるWebブラウザ専用に設計された低レベルのバイナリコード形式です。

実行時に、ブラウザはWebAssembly命令を、従来のJavaScriptコードよりもはるかに高速に実行されるネイティブマシンコードに変換します。 さらに、Chrome 84は最近WebAssembly SIMDのサポートを導入しました。これは、各命令で複数のデータポイントを処理するため、パフォーマンスが2倍以上向上します。

私達のソリューションは、最初に、ML推論を利用して低解像度マスクを計算することにより、ユーザーを背景から切り抜く(セグメンテーション)事によって各ビデオフレームを処理します。(セグメンテーションを行うモデルについては、後ほど詳しく説明します)。必要に応じて、マスクをさらに調整して、画像の境界に合わせます。

次に、マスクを使用してWebGL2を介してビデオ出力をレンダリングし、背景をぼかしたり置き換えたりします。


WebMLパイプライン:計算量の多い操作はすべてC++/OpenGLで実装されており、WebAssemblyを介してブラウザー内で実行されます。

現在のバージョンでは、モデルの推論はクライアントのCPUで実行されるため、計算能力が高くない広く多くのデバイスで動作します。

リアルタイムのパフォーマンスを実現するために、新しいWebAssembly SIMD仕様用に特別に設計された最初の推論エンジンであるXNNPACKライブラリによって推論が加速される効率的なMLモデルを設計しました。XNNPACKとSIMDによって高速化されたセグメンテーションモデルは、Web上でリアルタイムに実行できます。

MediaPipeの柔軟な構成によって実現される、背景のぼかし/置換ソリューションは、デバイスの機能に基づいて処理を適応させます。高性能デバイスでは、フルパイプラインを実行して最高の視覚品質を提供しますが、廉価版デバイスでは、計算量が少ないMLモデルに切り替え、マスクの改良をバイパスすることで、引き続き高速で実行します。

セグメンテーションモデル
オンデバイスMLモデルは、高速推論、低消費電力、およびダウンロードサイズを小さくするために、超軽量である必要があります。

ブラウザで実行されているモデルの場合、入力解像度が各フレームの処理に必要な浮動小数点演算(FLOP)の数に大きく影響するため、同様に小さくする必要があります。

モデルに入力として与える前に、画像を小さいサイズにダウンサンプリングします。低解像度の画像からセグメンテーションマスクを可能な限り細かく復元するので、モデル設計上の課題が増えます。

セグメンテーションネットワーク全体は、エンコードとデコードに関して対称構造を持っていますが、デコーダブロック(緑色)もエンコーダブロック(水色)と対称層構造を共有しています。

具体的には、グローバル平均プーリングによるチャネルごとのattention がエンコーダーブロックとデコーダーブロックの両方に適用されます。これは、効率的なCPU推論に適しています。


MobileNetV3エンコーダー(水色)と対称デコーダー(緑色)を使用したモデルアーキテクチャ

MobileNetV3-smallをエンコーダーとして修正しました。これは、低リソース要件で最高のパフォーマンスを実現するためにネットワークアーキテクチャ検索によって調整されています。

モデルサイズを50%削減するために、float16量子化を使用してモデルをTFLiteにエクスポートしました。その結果、重みの精度はわずかに低下しましたが、品質に目立った影響はありませんでした。出力結果のモデルには193,000のパラメーターがあり、サイズはわずか400KBです。

3.Web MLによるGoogle Meetの背景置き換え(1/2)関連リンク

1)ai.googleblog.com
Background Features in Google Meet, Powered by Web ML

2)webassembly.org
WebAssembly

3)mediapipe.page.link
MODEL CARD MediaPipe Meet Segmentation

コメント

タイトルとURLをコピーしました