人臉檢測新突破——谷歌的亞毫秒級人臉檢測算法BlazeFace


人臉檢測新突破——谷歌的亞毫秒級人臉檢測算法BlazeFace


谷歌近日公佈亞毫秒級的人臉檢測算法BlazeFace,這是一款專為移動GPU推理量身定製的輕量級人臉檢測器,能夠以200~1000+ FPS的速度運行,且性能非常卓越!

近年來,深度神經網絡的各種架構改進使得實時目標檢測成為可能。實驗室可以不計一切地開發各種算法追求逼近極限的精度,而實際應用中,響應速度、能耗和精度都重要。這就要求算法的複雜度要低、適合硬件加速。

在移動應用中,實時目標檢測往往只是視頻處理流程的第一步,接下來是各種特定的任務,如分割、跟蹤或幾何推理。

因此,運行對象檢測模型推理的算法要儘可能快,最好還具有比標準實時基準更高的性能。

谷歌剛剛上傳到arXiv的一篇論文BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs,推出了BlazeFace算法,這是一款專為移動GPU推理量身定製的輕量級人臉檢測器,且性能非常卓越算法,這是一款專為移動GPU推理量身定製的輕量級人臉檢測器,且性能非常卓越!

有多卓越呢?谷歌在其旗艦設備測試,結果發現BlazeFace能夠以200~1000+ FPS的速度運行200~1000+ FPS的速度運行。

這種超實時性能使其能夠應用於任何需要準確的面部區域,作為特定模型輸入的增強現實應用中,例如2D/3D面部關鍵點或幾何估計、面部特徵或表情分類、以及面部區域分割等。

谷歌已經把該算法應用在工業中。

一、兩大算法創新,一切為了又快又好

BlazeFace包括一個輕量級的特徵提取網絡,其靈感來自於MobileNetV1/V2,但又有所不同。還採取了一種修改過的SSD目標檢測算法,使其對GPU更加友好。然後用改進的聯合分辨率(tie resolution)策略來替代非極大抑制(Non-maximum suppression)。

BlazeFace可用於檢測智能手機前置攝像頭捕捉到的圖像中的一個或多個人臉。返回的是一個邊界框和每個人臉的6個關鍵點(從觀察者的角度看左眼、右眼、鼻尖、嘴、左眼角下方和右眼角下方)。

BlazeFace的模型架構如上圖所示,在設計方面考慮了以下4個因素:

1.擴大感受野(receptive field)的大小:

雖然大多數現代卷積神經網絡架構(包括MobileNet)都傾向於在模型圖中使用3×3的卷積核,但我們注意到深度可分離卷積計算主要由它們的點態部分控制。

本研究發現,增加深度部分的內核大小成本並不會增加很多。因此,我們在模型架構中使用了5×5的卷積核,用kernel size的增加來交換達到特定receptive field大小所需的bottlenecks總數的減少。

深度卷積的低開銷還允許我們在這兩個點卷積之間引入另一個這樣的層,從而進一步加速達到所需receptive field。這形成了一個double BlazeBlock,如上圖右邊所示。

2.特徵提取器(Feature extractor):

在實驗中,我們將重點放在前置相機模型的特徵提取器上。它必須考慮更小的對象範圍,因此具有更低的計算需求。提取器採用128×128像素的RGB輸入,包含一個2D卷積,以及5個BlazeBlock和6個 double BlazeBlock,如下表所示:


人臉檢測新突破——谷歌的亞毫秒級人臉檢測算法BlazeFace


3.改進的Anchor 機制:

類似於SSD的對象檢測模型依賴於預定義的固定大小的基本邊界框,稱為priors,或者Faster-R-CNN中提出的術語“Anchor”。

我們將 8×8,4×4 和 2×2 分辨率中的每個像素的 2 個 anchor 替換為 8×8 的 6 個 anchor。由於人臉長寬比的變化有限,因此將 anchor 固定為 1:1 縱橫比足以進行精確的面部檢測。


人臉檢測新突破——谷歌的亞毫秒級人臉檢測算法BlazeFace


4.後處理機制(Post-processing):

由於我們的feature extractor並沒有將分辨率降低到8×8以下,所以與給定對象重疊的anchor的數量會隨著對象的大小而顯著增加。在典型的非極大抑制場景中,只有一個anchor“勝出”,並被用作最終的算法結果。當這樣的模型應用於隨後的視頻幀時,預測往往會在不同的anchor點之間波動,並表現出明顯的人臉框抖動。

為了最小化這個問題,我們用一種混合策略代替了抑制算法,該策略將一個邊界框的迴歸參數估計為重疊預測之間的加權平均值。它實際上不會給原始的NMS算法帶來額外的成本。對於我們的人臉檢測任務,這個調整使準確率提高了10%。


人臉檢測新突破——谷歌的亞毫秒級人臉檢測算法BlazeFace


二、專為GPU設計,準確度超越MobileNetV2

1.超實時性能。解鎖需要面部區域作為輸入的“任務特定”模型的實時AR pipeline:

· 準確的3D面部幾何

· 通過Blendshapes進行Puppeteering

· 面部分割

· AR化妝試穿/美化

· 頭髮/嘴唇/虹膜重新著色

· 磨皮


人臉檢測新突破——谷歌的亞毫秒級人臉檢測算法BlazeFace


2.專為移動GPU設計

· 專為移動GPU和CPU設計· 輕量級特徵提取網絡

· 更適合GPU的anchor方案

· 改進了tie resolution策略

· 輕量級特徵提取網絡

· 更適合GPU的anchor方案

· 改進了tie resolution策略


人臉檢測新突破——谷歌的亞毫秒級人臉檢測算法BlazeFace


3.精度

· 眼間距離的平均絕對誤差為10%左右就足夠精確了

· 後續模型的面對齊

· 生成6個面部關鍵點座標

· 在低端設備上僅使用此模型,實現耳朵等簡單特效


人臉檢測新突破——谷歌的亞毫秒級人臉檢測算法BlazeFace


數據倉,九宮格大數據,數據市場,數據交易,數據倉庫,數據資源,數據源,AI,數據資產,貴陽大數據交易所(https://www.bdg010.com/)


分享到:


相關文章: