谷歌近日公布亞毫秒級的人臉檢測算法BlazeFace,這是一款專為移動GPU推理量身定制的輕量級人臉檢測器,能夠以200~1000+ FPS的速度運行,且性能非常卓越!
近年來,深度神經網絡的各種架構改進使得實時目標檢測成為可能。實驗室可以不計一切地開發各種算法追求逼近極限的精度,而實際應用中,響應速度、能耗和精度都重要。這就要求算法的復雜度要低、適合硬件加速。
在移動應用中,實時目標檢測往往只是視頻處理流程的第一步,接下來是各種特定的任務,如分割、跟蹤或幾何推理。
因此,運行對象檢測模型推理的算法要盡可能快,最好還具有比標準實時基準更高的性能。
谷歌剛剛上傳到arXiv的一篇論文BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs,推出了BlazeFace算法,這是一款專為移動GPU推理量身定制的輕量級人臉檢測器,且性能非常卓越!
有多卓越呢?谷歌在其旗艦設備測試,結果發現BlazeFace能夠以200~1000+ FPS的速度運行。
這種超實時性能使其能夠應用于任何需要準確的面部區域,作為特定模型輸入的增強現實應用中,例如2D/3D面部關鍵點或幾何估計、面部特征或表情分類、以及面部區域分割等。
谷歌已經把該算法應用在工業中。
兩大算法創新,一切為了又快又好
BlazeFace包括一個輕量級的特征提取網絡,其靈感來自于MobileNetV1/V2,但又有所不同。還采取了一種修改過的SSD目標檢測算法,使其對GPU更加友好。然后用改進的聯合分辨率(tie resolution)策略來替代非極大抑制(Non-maximum suppression)。
BlazeFace可用于檢測智能手機前置攝像頭捕捉到的圖像中的一個或多個人臉。返回的是一個邊界框和每個人臉的6個關鍵點(從觀察者的角度看左眼、右眼、鼻尖、嘴、左眼角下方和右眼角下方)。
算法創新包括:
1、與推理速度相關的創新:
提出一種在結構上與MobileNetV1/V2相關的非常緊湊的特征提取器卷積神經網絡,專為輕量級對象檢測而設計。
提出了一種基于SSD的GPU-friendly anchor機制,旨在提高GPU的利用率。Anchors是預定義的靜態邊界框,作為網絡預測調整的基礎,并確定預測粒度。
2、與預測性能相關的創新:
提出一種替代非極大抑制的聯合分辨率策略,在重疊預測之間實現更穩定、更平滑的tie resolution。
BlazeBlock (左) 和 double BlazeBlock
BlazeFace的模型架構如上圖所示,在設計方面考慮了以下4個因素:
擴大感受野(receptive field)的大小:
雖然大多數現代卷積神經網絡架構(包括MobileNet)都傾向于在模型圖中使用3×3的卷積核,但我們注意到深度可分離卷積計算主要由它們的點態部分控制。
本研究發現,增加深度部分的內核大小成本并不會增加很多。因此,我們在模型架構中使用了5×5的卷積核,用kernel size的增加來交換達到特定receptive field大小所需的bottlenecks總數的減少。
深度卷積的低開銷還允許我們在這兩個點卷積之間引入另一個這樣的層,從而進一步加速達到所需receptive field。這形成了一個double BlazeBlock,如上圖右邊所示。
特征提取器(Feature extractor):
在實驗中,我們將重點放在前置相機模型的特征提取器上。它必須考慮更小的對象范圍,因此具有更低的計算需求。提取器采用128×128像素的RGB輸入,包含一個2D卷積,以及5個BlazeBlock和6個 double BlazeBlock,如下表所示:
改進的Anchor 機制:
類似于SSD的對象檢測模型依賴于預定義的固定大小的基本邊界框,稱為priors,或者Faster-R-CNN中提出的術語“Anchor”。
我們將 8×8,4×4 和 2×2 分辨率中的每個像素的 2 個 anchor 替換為 8×8 的 6 個 anchor。由于人臉長寬比的變化有限,因此將 anchor 固定為 1:1 縱橫比足以進行精確的面部檢測。
pipeline示例。紅色:BlazeFace的輸出。綠色:特定于任務的模型輸出。
后處理機制(Post-processing):
由于我們的feature extractor并沒有將分辨率降低到8×8以下,所以與給定對象重疊的anchor的數量會隨著對象的大小而顯著增加。在典型的非極大抑制場景中,只有一個anchor“勝出”,并被用作最終的算法結果。當這樣的模型應用于隨后的視頻幀時,預測往往會在不同的anchor點之間波動,并表現出明顯的人臉框抖動。
為了最小化這個問題,我們用一種混合策略代替了抑制算法,該策略將一個邊界框的回歸參數估計為重疊預測之間的加權平均值。它實際上不會給原始的NMS算法帶來額外的成本。對于我們的人臉檢測任務,這個調整使準確率提高了10%。
專為GPU設計,準確度超越MobileNetV2
超實時性能。解鎖需要面部區域作為輸入的“任務特定”模型的實時AR pipeline:
準確的3D面部幾何
通過Blendshapes進行Puppeteering
面部分割
AR化妝試穿/美化
頭發/嘴唇/虹膜重新著色
磨皮
專為移動GPU設計
專為移動GPU和CPU設計
輕量級特征提取網絡
更適合GPU的anchor方案
改進了tie resolution策略
GPU上的快速推理
精度
眼間距離的平均絕對誤差為10%左右就足夠精確了
后續模型的面對齊
生成6個面部關鍵點坐標
在低端設備上僅使用此模型,實現耳朵等簡單特效
-
谷歌
+關注
關注
27文章
6142瀏覽量
105104 -
神經網絡
+關注
關注
42文章
4762瀏覽量
100541 -
人臉識別
+關注
關注
76文章
4005瀏覽量
81769
原文標題:亞毫秒級手機人臉識別!谷歌BlazeFace算法重大突破, 面向移動GPU
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論