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