Web ML+ WebAssembly 支持实现 Google Meet 背景模糊功能
正文字?jǐn)?shù):2584 ?閱讀時長:4分鐘
從 mmhmm、騰訊會議、Zoom 到 Google Meet,背景模糊和特效已經(jīng)成為視頻會議或直播的一項標(biāo)配。Google Meet團(tuán)隊通過 Web ML,MediaPipe和 WebAssembly技術(shù),在瀏覽器中實現(xiàn)了高性能的實時背景處理功能。在12月11-13日的LiveVideoStackCon 美國舊金山站的線上大會上,Google研究院資深研究軟件工程師汪啟扉也將會帶來有關(guān)MediaPipe、ML Kit、TFLite等性能優(yōu)化與開發(fā)經(jīng)驗的分享(https://sfo2020.livevideostack.cn/)。
文 /?Google研究院軟件工程師,Tingbo Hou & Tyler Mullen
譯者 /?Alpha
技術(shù)審校:斗魚前端專家,王興偉
原文 /https://ai.googleblog.com/2020/10/background-features-in-google-meet.html??
在人們的工作和生活中,視頻會議變得越來越重要。我們可以通過增強(qiáng)隱私保護(hù),或者添加有趣的視覺效果來改善視頻體驗,同時幫助人們將注意力集中在會議內(nèi)容上。我們最近宣布的在Google Meet中模糊和替換背景的方法,就是為了實現(xiàn)這一目標(biāo)而邁出的一小步。
?
我們利用機(jī)器學(xué)習(xí)(ML)來更好地突出參與者,從而忽略他們周圍的背景環(huán)境。盡管其他的解決方案需要安裝額外的軟件,但Meet的功能是由尖端的Web ML技術(shù)提供支持的,這些技術(shù)是用MediaPipe構(gòu)建的,可以直接在你的瀏覽器中工作——不需要額外的步驟。
?
開發(fā)這些功能,有一個關(guān)鍵目標(biāo),即它可以給幾乎所有現(xiàn)代設(shè)備提供實時的瀏覽器內(nèi)性能,通過XNNPACK和TFLite,我們將高效的設(shè)備上ML模型、基于WebGL的效果渲染,還有基于Web的ML推理結(jié)合起來,進(jìn)而實現(xiàn)了這一目標(biāo)。
背景模糊和背景替換,由網(wǎng)頁端的 MediaPipe 提供支持。
網(wǎng)絡(luò)Web?ML方案概述
Meet中的新功能是與MediaPipe一起開發(fā)的,MediaPipe是谷歌的開源框架,用于為直播和流媒體提供跨平臺的,可定制的ML解決方案,它還支持設(shè)備上實時性的手、虹膜和身體姿勢追蹤等ML解決方案。
任何設(shè)備上解決方案的核心需求,都是實現(xiàn)高性能。為了實現(xiàn)這一點,MediaPipe的Web工作流利用了WebAssembly,這是一種專為網(wǎng)絡(luò)瀏覽器設(shè)計的底層二進(jìn)制代碼格式,可以提高計算繁重任務(wù)的速度。在運行時,瀏覽器將WebAssembly指令轉(zhuǎn)換為本機(jī)代碼,執(zhí)行速度比傳統(tǒng)JavaScript代碼快很多。此外,Chrome84最近引入了對WebAssembly SIMD的支持,每條指令可以處理多個數(shù)據(jù)點,性能提升了2倍以上。
?
首先,我們的解決方案通過將用戶,和他們的背景進(jìn)行分割(稍后將詳細(xì)介紹我們的分割模型),來處理每個視頻幀,使用ML推理來計算出一個低分辨率的蒙版?;蛘?#xff0c;我們還可以進(jìn)一步細(xì)化蒙版,以使其與圖像邊界對齊。然后通過WebGL2使用蒙版來渲染視頻,實現(xiàn)背景的模糊或替換。
WebML Pipeline:所有計算繁重的操作都是用C++/OpenGL實現(xiàn)的,并通過WebAssembly在瀏覽器中運行。
在當(dāng)前版本中,模型推理在客戶端的CPU上執(zhí)行,以實現(xiàn)低功耗和最大的設(shè)備覆蓋范圍。為了達(dá)到實時性能,我們設(shè)計了高效的ML模型,通過XNNPACK庫加速推理,XNNPACK庫是第一個專門為新的WebAssembly SIMD規(guī)范設(shè)計的推理引擎。在XNNPACK和SIMD的加速下,該分割模型可以在Web上以實時速度運行。
?
在MediaPipe靈活配置的支持下,背景模糊/替換解決方案可根據(jù)設(shè)備能力,調(diào)整其處理過程。在高端設(shè)備上,它運行完整的工作流,以提供最佳的視覺質(zhì)量,而在低端設(shè)備上,通過使用輕量級的ML模型進(jìn)行計算,并且繞過蒙版細(xì)化,它仍然可以保持較高的性能。
分割模型細(xì)分
設(shè)備上的機(jī)器學(xué)習(xí)模型必須是超輕量級的,以實現(xiàn)快速推理、低功耗和較小的下載大小。對于在瀏覽器中運行的模型,輸入分辨率會極大地影響處理的每一幀所需的浮點運算(FLOP)的數(shù)量,由此也必須很小。我們將圖像下采樣,得到較小的尺寸,然后再將其提供給模型。從低分辨率圖像中,盡可能精確地恢復(fù)分割蒙版,這增加了模型設(shè)計的挑戰(zhàn)。
?
整個分割網(wǎng)絡(luò)具有關(guān)于編碼和解碼的對稱結(jié)構(gòu),而解碼器塊(淺綠色),也與編碼塊(淺藍(lán)色)共享對稱層結(jié)構(gòu)。具體地說,在編碼器和解碼器模塊中,都采用了應(yīng)用有全局池化層技術(shù)的通道注意力機(jī)制,這有利于高效的CPU推理。
采用MobileNetV3編碼器(淺藍(lán)色)和對稱解碼器(淺綠色)的模型架構(gòu)。
我們修改MobileNetV3-Small為編碼器,經(jīng)過網(wǎng)絡(luò)結(jié)構(gòu)搜索的優(yōu)化,以最低的資源需求,獲得最佳的性能。為了減少50%的模型尺寸,我們使用Float16量化技術(shù)將模型導(dǎo)出到TFLite,僅權(quán)重精度略有下降,但對質(zhì)量沒有明顯的影響。得到的模型有193K參數(shù),大小只有400KB。
?
效果渲染
分割完成后,我們使用OpenGL著色器進(jìn)行視頻處理和效果渲染,其中的挑戰(zhàn)就是在不引入偽影的情況下進(jìn)行高效渲染。在細(xì)化階段,我們采用聯(lián)合雙邊濾波器對低分辨率蒙版進(jìn)行平滑處理
渲染效果時會減少瑕疵減少的渲染效果。左:聯(lián)合雙邊過濾器平滑分段分割蒙版。中:可分離濾鏡移除背景模糊中的光暈瑕疵。右:替換背景中的燈光包裹包裝(light wrapping)。
模糊著色器通過與分割蒙版值成比例的方式,調(diào)整每個像素的模糊強(qiáng)度,來模擬波克(bokeh)效果,類似于光學(xué)中的混淆圓(CoC)。像素按其CoC半徑加權(quán),因此前景像素不會滲入背景。我們?yōu)榧訖?quán)模糊實現(xiàn)了可分離的過濾器,而不是流行的高斯金字塔,因為它去除了人周圍的光暈偽影。為了提高效率,模糊以低分辨率執(zhí)行,并以原始分辨率與輸入幀混合
背景模糊示例
對于背景替換,我們采用了一種稱為燈光包裹(Light wrapping)的合成技術(shù),用于混合分割的人物和定制的背景圖像。光線包裹允許背景光溢出到前景元素上,從而使合成更具沉浸感,這有助于柔化分割邊緣。當(dāng)前景和替換的背景之間,存在較大的對比度時,它還有助于最大限度地減少光暈偽影
背景替換示例
性能
為了優(yōu)化不同設(shè)備的體驗,我們提供多種輸入尺寸(即當(dāng)前版本中的256x144和160x96)的模型變體,根據(jù)可用的硬件資源自動選擇最佳模型。
我們在兩款常見設(shè)備上評估了模型推理和端到端傳遞的速度:搭載2.2 GHz 6核英特爾酷睿i7的MacBook Pro 2018和搭載英特爾賽揚N3060的宏碁Chromebook 11。對于720p的輸入,MacBook Pro可以以120 FPS的速度,運行較高質(zhì)量的模型,以70 FPS的速度運行端到端的傳遞途徑;而Chromebook則以62 FPS的速度運行推理,使用較低質(zhì)量的模型,端到端運行在33 FPS。
高端(MacBook Pro)和低端(Chromebook)筆記本電腦上的模型型號推斷速度和端到端管線傳遞。
為了定量評估模型的精度,我們采用了目前流行的交集-并集(IOU)和邊界F-度量。這兩種型號都有不俗的表現(xiàn),而且還是在這樣一個輕量級網(wǎng)絡(luò)的情況下
模型準(zhǔn)確性的評估,通過 IOU 借條和邊界 F-分?jǐn)?shù)來衡量。
我們還為我們的分割模型發(fā)布了隨附的模型卡,其中詳細(xì)介紹了我們的公平性評估。我們的評估數(shù)據(jù)包含來自全球17個地理分區(qū)的圖像,并附有膚色和性別的注釋。我們的分析表明,該模型在不同地區(qū)、膚色和性別上的表現(xiàn)是一致的,只有很小的IOU指標(biāo)偏差。
結(jié)論
我們推出了一個全新的瀏覽器端的機(jī)器學(xué)習(xí)解決方案,用于模糊和替換你在Google Meet中的背景。使用這個方案,機(jī)器學(xué)習(xí)模型和OpenGL著色器就可以在Web上高效運行。所開發(fā)的功能即使在低功耗設(shè)備上也能以低功耗實現(xiàn)實時性能
致謝:特別感謝Meet團(tuán)隊的成員和參與此項目的其他人員,特別是Sebastian Jansson,Rikard Lundmark,Stephan Reiter,Fabian Bergmark,Ben Wagner,Stefan Holmer,Dan Gunnarson,Stéphane Hulaud以及所有與我們一起從事技術(shù)工作的團(tuán)隊成員:Siargey Pisarchyk,Karthik Raveendran,Chris McClanahan, Marat Dukhan,Frank Barchard,Ming Guang Yong,Chuo-Ling Chang,Michael Hays,Camillo Lugaresi,Gregory Karpiak,Siarhei Kazakou,Matsvei Zhdanovich,Matthias Grundmann。
灣區(qū)最原汁原味的技術(shù),全球最前沿的應(yīng)用實踐
無需漂洋過海,我們在線上等您!
LiveVideoStackCon 2020?美國舊金山站
北京時間:2020年12月11日-12月13日
點擊【閱讀原文】了解更多詳細(xì)信息
總結(jié)
以上是生活随笔為你收集整理的Web ML+ WebAssembly 支持实现 Google Meet 背景模糊功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实时音视频助力在线教育风口
- 下一篇: 使用区分优先级的负载分流法确保Netfl