
Buramkan dan ganti latar belakang berdasarkan MediaPipe
Ringkasan solusi Web ML kami
Fitur baru Meet diberdayakan oleh MediaPipe , platform streaming sumber terbuka Google. Solusi ML lainnya didasarkan pada framework ini, seperti melacak posisi tangan , iris , dan tubuh secara real time.
Persyaratan utama dari setiap teknologi seluler adalah untuk mencapai kinerja tinggi. Untuk melakukan ini, jaringan pipa MediaPipe menggunakan format biner tingkat rendah WebAssembly.dirancang khusus untuk browser web guna mempercepat tugas komputasi yang kompleks. Pada saat dijalankan, browser menerjemahkan instruksi WebAssembly menjadi kode mesin yang berjalan jauh lebih cepat daripada JavaScript tradisional. Selain itu, Chrome 84 baru-baru ini menerapkan dukungan SIMD WebAssembly , di mana setiap instruksi memproses beberapa titik data, yang meningkatkan kinerja lebih dari dua kali lipat.
Solusi kami pertama-tama memproses setiap frame video, memisahkan pengguna dari latar belakang (lihat di bawah untuk mengetahui lebih lanjut tentang model segmentasi), menggunakan keluaran ML untuk menghitung mask resolusi rendah. Jika perlu, kami lebih menyempurnakan topeng untuk menyelaraskannya dengan batas gambar. Masker kemudian digunakan untuk membuat keluaran videoWebGL2 dan latar belakang diburamkan atau diganti.

Pipeline WebML: semua operasi komputasi diimplementasikan di C ++ / OpenGL dan dilakukan di browser melalui WebAssembly.
Dalam versi saat ini, komputasi dilakukan pada CPU klien dengan konsumsi daya terendah dan jangkauan perangkat terluas. Untuk mencapai performa tinggi dalam waktu nyata, kami telah mengembangkan model ML yang efisien menggunakan pustaka XNNPACK untuk mempercepat penghitungan. Ini adalah mesin keluaran video pertama yang dirancang khusus untuk spesifikasi SIMD WebAssembly baru. Dengan mempercepat XNNPACK dan SIMD, model segmentasi bekerja secara real time di Internet.
Dengan konfigurasi MediaPipe yang fleksibel, solusi blur / ganti latar belakang menyesuaikan pemrosesannya berdasarkan kemampuan perangkat. Pada perangkat kelas atas, ia menjalankan pipeline penuh untuk memastikan kualitas visual tertinggi, sementara pada perangkat kelas bawah ia beralih ke model komputasi ML yang ringan tanpa menentukan mask.
Model segmentasi
Model ML di perangkat harus sangat ringan untuk penghitungan cepat, konsumsi daya rendah, dan ukuran kecil. Untuk model di browser, resolusi input sangat mempengaruhi jumlah operasi floating point (FLOPS) yang diperlukan untuk memproses setiap frame, dan karenanya harus kecil juga. Sebelum memasukkan gambar ke model, kami menguranginya. Memulihkan topeng paling akurat dari gambar resolusi rendah memperumit desain model.
Jaringan segmentasi umum memiliki struktur encoding / decoding simetris. Lapisan dekoder (hijau muda) simetris dengan lapisan pembuat enkode (biru muda). Secara khusus, salurkan perhatian(perhatian bijaksana saluran) dengan penggabungan rata-rata global digunakan di blok encoder dan decoder, yang mengurangi beban pada CPU.

Arsitektur model dengan encoder MobileNetV3 (biru muda) dan decoder simetris (hijau muda)
Untuk encoder, kami memodifikasi jaringan neural kecil MobileNetV3 , yang desainnya dirancang secara otomatis dengan mencari arsitektur jaringan untuk mencapai kinerja terbaik pada perangkat keras yang lemah. Untuk mengurangi separuh ukuran model, kami mengekspornya ke TFLite dengan kuantisasi float16, yang mengakibatkan sedikit hilangnya presisi, tetapi tanpa dampak yang nyata pada kualitas. Model yang dihasilkan memiliki 193 ribu parameter dan ukurannya hanya 400 KB.
Efek rendering
Setelah segmentasi, kami menggunakan shader OpenGL untuk pemrosesan video dan efek rendering. Tantangannya adalah membuat secara efisien tanpa artefak. Pada langkah penyempurnaan, filter sambungan bilateral menghaluskan masker resolusi rendah.

Penindasan rendering artefak. Kiri: Filter dua sisi sambungan menghaluskan masker segmentasi. Tengah: Filter terpisah menghilangkan artefak berbayang. Kanan: mengubah latar belakang dengan light wrapper
shader blur mensimulasikan efek bokeh , daya penyesuaian blur di setiap piksel sebanding dengan nilai mask segmentasi, seperti hamburan spotdalam optik. Piksel diberi bobot berdasarkan radius titik sehingga piksel latar depan tidak berbaur dengan latar belakang. Kami telah menerapkan filter perpecahan buram berbobot alih-alih piramida Gaussian yang populer , karena filter itu menghapus artefak halo di sekitar manusia. Untuk performa, blur dilakukan pada resolusi rendah - dan dicampur dengan frame input pada resolusi aslinya.

Contoh Background Blur
Saat mengganti background, teknik yang dikenal sebagai light wrap digunakan.(pembungkus terang) untuk menghamparkan wajah yang tersegmentasi pada latar belakang khusus. Bungkus cahaya membantu memperhalus tepi segmentasi, memungkinkan cahaya latar belakang menyinari elemen latar depan, membuat komposisi lebih realistis. Ini juga membantu meminimalkan artefak halo saat ada banyak kontras antara latar depan dan latar belakang.

Contoh penggantian latar belakang
Performa
Untuk mengoptimalkan kinerja pada perangkat yang berbeda, kami menyediakan opsi model dengan beberapa ukuran gambar masukan (misalnya, 256x144 dan 160x96 dalam versi saat ini), secara otomatis memilih opsi terbaik sesuai dengan sumber daya perangkat keras yang tersedia.
Kami mengevaluasi kecepatan inferensi model dan pipeline ujung ke ujung pada dua perangkat populer: MacBook Pro 2018 dengan prosesor Intel Core i7 6-core 2,2 GHz dan Acer Chromebook 11 dengan prosesor Intel Celeron N3060. Untuk input 720p, MacBook Pro dapat menjalankan model dengan kualitas lebih tinggi pada 120 fps dan pipeline pass-through pada 70 fps, sementara di Chromebook model tersebut berjalan pada 62 fps dengan model kualitas yang lebih rendah dan produksi pipeline pass-through 33 FPS.
Model
|
FLOPS
|
Alat
|
Keluaran model
|
Konveyor
|
256x144
|
64 juta
|
MacBook Pro 18
|
8,3 md (120 FPS)
|
14,3 md (70 FPS)
|
160x96
|
27 juta
|
Acer Chromebook 11
|
16,1 md (62 FPS)
|
30 md (33 FPS)
|
Untuk mengukur keakuratan model digunakan metrik populer: koefisien Zhakar (intersection-over-union, IOU ) dan batas F-measure (batas F-score) ... Kedua model bekerja dengan baik, terutama pada jaringan yang ringan:
Model
|
surat hutang
|
Pengukuran F batas |
256x144
|
93,58%
|
0,9024
|
160x96
|
90,79%
|
0.8542
|
Kami juga telah membuat peta segmentasi model tersedia untuk umum , yang merinci spesifikasi untuk evaluasi. Perkiraan mencakup gambar dari 17 sub-wilayah geografis di dunia, dengan keterangan warna kulit dan jenis kelamin. Analisis menunjukkan bahwa model tersebut menunjukkan performa tinggi secara konsisten di berbagai wilayah, warna kulit, dan jenis kelamin, dengan sedikit penyimpangan pada skor IOU.
Kesimpulan
Karenanya, kami memperkenalkan solusi berbasis browser ML baru untuk mengaburkan dan mengganti latar belakang di Google Meet. Berkat solusi ini, model ML dan shader OpenGL menunjukkan kinerja yang efisien di Internet. Fitur yang dikembangkan memberikan kinerja waktu nyata dengan konsumsi daya rendah, bahkan pada perangkat berdaya rendah.