ブラウザのMLでGoogleMeetの背景をぼかす

ビデオ会議は、人々の仕事や個人的な生活においてますます重要になっています。ビデオ処理とプライバシーの観点からプロセスが適切に編成されているほど、会議自体から人の注意がそらされることが少なくなります。この課題の一環として、最近、GoogleMeetでぼかし背景の置換フィルターを開発ました。..。彼らは機械学習(ML)を使用して、環境に関係なく参加者をより適切に区別します。他のソリューションでは追加のソフトウェアをインストールする必要がありますが、Meetの機能はMediaPipeで構築された高度なWeb MLテクノロジーに基づいており、ブラウザーで直接実行されます。追加の手順は必要ありません。これらの機能を開発する際の重要な目標の1つは、デバイス上の効率的なMLモデル、WebGLベースのレンダリング、およびXNNPACKTFLiteを使用したWebスタック上のMLレンダリング組み合わせることで達成した、ほぼすべての最新デバイスでリアルタイムのブラウザーパフォーマンスを提供することでした





MediaPipeに基づいて背景をぼかして置き換えます



WebMLソリューションの概要



Meetの新機能は、GoogleのオープンソースストリーミングプラットフォームであるMediaPipeを利用しています。虹彩体の位置をリアルタイムで追跡するなど、他のMLソリューションはこのフレームワークに基づいています。



モバイルテクノロジーの主な要件は、高性能を実現することです。これを行うために、MediaPipeWebパイプラインは低レベルのバイナリ形式WebAssemblyを使用します。複雑なコンピューティングタスクを高速化するためにWebブラウザ用に特別に設計されています。実行時に、ブラウザはWebAssembly命令を、従来のJavaScriptよりもはるかに高速に実行されるマシンコードに変換します。また、クロム84は、最近WebAssembly導入SIMDのサポート各命令が複数のデータポイントを超える倍のパフォーマンスを処理し、。



私たちのソリューションは、最初に各ビデオフレームを処理し、ユーザーをバックグラウンドから分離し(セグメンテーションモデルの詳細については以下を参照)、ML出力を使用して低解像度マスクを計算します。必要に応じて、マスクをさらに調整して画像の境界線に合わせます。次に、マスクを使用してビデオ出力をレンダリングします。WebGL2と背景がぼやけているか、置き換えられています。





WebMLパイプライン:すべての計算操作はC ++ / OpenGLで実装され、WebAssemblyを介してブラウザー



で実行されます。現在のバージョンでは、計算は最小の電力消費と最大のデバイスカバレッジでクライアントのCPUで実行されます。リアルタイムで高性能を実現するために、XNNPACKライ​​ブラリを使用して効率的なMLモデルを開発し、計算を高速化しました。これは、新しいWebAssemblySIMD仕様用に特別に設計された最初のビデオ出力エンジンです。 XNNPACKとSIMDを高速化することにより、セグメンテーションモデルはインターネット上でリアルタイムに機能します。



MediaPipeの柔軟な構成により、背景のぼかし/置換ソリューションは、デバイスの機能に基づいて処理を適応させます。ハイエンドデバイスでは、最高の視覚品質を確保するために完全なパイプラインを実行しますが、ローエンドデバイスでは、マスクを指定せずに軽量ML計算モデルに切り替えます。



セグメンテーションモデル



デバイスのMLモデルは、高速コンピューティング、低消費電力、および小さなフットプリントのために超軽量である必要があります。ブラウザのモデルの場合、入力解像度は各フレームの処理に必要な浮動小数点演算(FLOPS)の数に大きく影響するため、同様に小さくする必要があります。画像をモデルにフィードする前に、画像を縮小します。低解像度の画像から最も正確なマスクを復元すると、モデルの設計が複雑になります。



一般的なセグメンテーションネットワークは、対称的なエンコード/デコード構造を持っています。デコーダーレイヤー(ライトグリーン)は、エンコーダーレイヤー(ライトブルー)と対称です。特に、チャネルの注意(チャネルごとの注意)グローバル平均プーリングは、エンコーダーブロックとデコーダーブロックの両方で使用され、CPUの負荷を軽減します。MobileNetV3





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



については、MobileNetV3を変更しました。小さなニューラルネットワークの設計は、弱いハードウェアで最高のパフォーマンスを実現するためにネットワークアーキテクチャ検索することによって自動的に設計されましたモデルのサイズを半分にするために、float16量子化を使用してモデルをTFLiteにエクスポートしました。これにより、精度がわずかに低下しましたが、品質に目立った影響はありませんでした。結果のモデルには193千のパラメーターがあり、サイズはわずか400KBです。



レンダリング効果



セグメンテーション後、ビデオ処理とレンダリング効果にOpenGLシェーダーを使用します。課題は、アーティファクトなしで効率的にレンダリングすることです。リファインメントステップでは、バイラテラルジョイントフィルターが低解像度マスクを滑らかにします。





レンダリングアーティファクトの抑制。左:ジョイント両面フィルターがセグメンテーションマスクを滑らかにします。中央:個別のフィルターがゴーストアーティファクトを削除します。右:ライトラッパー



シェーダーで背景を変更するぼかしはボケの効果をシミュレートし、各ピクセルのぼかし調整力はスポット散乱のようにセグメンテーションマスクの値に比例します光学で。前景のピクセルが背景に溶け込まないように、ピクセルはスポット半径によって重み付けされます。人間の周りのハローアーティファクトを除去するため、人気のあるガウスピラミッドの代わりに加重ブラースプリットフィルターを実装しました。パフォーマンスのために、ぼかしは低解像度で行われ、元の解像度で入力フレームとブレンドされます。背景のぼかしの例背景を 置き換える場合、ライトラップと呼ばれる手法が使用されます。









(軽いラッピング)セグメント化された面をカスタム背景にオーバーレイします。ライトラップは、セグメンテーションのエッジを柔らかくするのに役立ち、前景要素に背景光を当てることができ、構成をよりリアルにします。また、前景と背景の間に多くのコントラストがある場合、ハローアーティファクトを最小限に抑えるのに役立ちます。





背景置換の例



パフォーマンス



さまざまなデバイスでのパフォーマンスを最適化するために、複数の入力イメージサイズ(現在のバージョンでは256x144と160x96など)のモデルオプションを提供し、利用可能なハードウェアリソースに応じて最適なオプションを自動的に選択します。



2.2GHz6コアIntelCorei7プロセッサを搭載したMacBookPro2018とIntelCeleronN3060プロセッサを搭載したAcerChromebook 11の2つの一般的なデバイスで、モデルの推論速度とエンドツーエンドのパイプラインを評価しました。720p入力の場合、MacBookProは120fpsで高品質モデルを実行でき、パススルーパイプラインは70 fpsで実行できますが、Chromebookでは、モデルは62 fpsで実行され、低品質モデルでパススルーパイプラインが生成されます。 33FPS。



 モデル 

 フロップ 

 端末 

 モデル出力 

 コンベヤー 

 256x144 

 6400万 

 MacBook Pro 18 

 8.3ミリ秒(120 FPS) 

 14.3ミリ秒(70 FPS) 

 160x96 

 2700万 

 Acer Chromebook 11 

 16.1ミリ秒(62 FPS) 

 30ミリ秒(33 FPS) 

高ラップトップ(MacBook Pro)および低グレード(Chromebook)での出力レートモデルとスルーコンベヤーモデル



の精度を定量化するために、一般的なメトリックを使用しました:係数Zhakar(交差オーバーユニオン、IOU )および境界Fメジャー(境界Fスコア) ..。どちらのモデルも、特にこのような軽量ネットワークで良好に機能します。



  モデル  

  IOU  

  境界  

  Fメジャー  


  256x144  

  93.58%  

  0.9024  

  160x96  

  90.79%  

  0.8542  



また、モデルのセグメンテーションマップを公開し、評価の仕様を詳しく説明しています。推定値には、肌の色調と性別の注釈が付けられた、世界の17の地理的サブリージョンからの画像が含まれています。分析の結果、モデルは、IOUスコアにわずかな偏差があり、さまざまな地域、肌の色調、性別で一貫して高い結果を示しています。



結論



そのため、GoogleMeetの背景をぼかして置き換えるための新しいMLブラウザベースのソリューションを導入しました。このソリューションのおかげで、MLモデルとOpenGLシェーダーはインターネット上で効率的なパフォーマンスを示します。開発された機能は、低電力デバイスでも、低電力消費でリアルタイムのパフォーマンスを提供します。



All Articles