疫情之下,口罩識別有多難,問問你的iPhone用戶朋友就知道了。git
在「刷臉時代」,戴口罩的人臉識別已然成爲一個大問題。程序員
傳統的人臉識別算法,已經沒法hold住這種大面積遮擋狀況,主要難點有三:github
-
一張口罩「封印」半張臉,直接丟失大量臉部特徵;web
-
短時間內沒法收集大量戴口罩人臉圖像,算法訓練難度大;算法
-
人臉識別系統包含檢測、跟蹤、識別等多個模塊,對它們都會形成影響。數據庫
好消息是,AI工程師們逢山開路遇水搭橋,如今——戴口罩人臉識別——這座橋,已經搭好了,並且已經開放了。安全
下載安裝命令 ## CPU版本安裝命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安裝命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu
來自百度視覺算法團隊,技術方面天然也有保障。網絡
不過,知其然最好還要知其因此然。如此模型,百度視覺算法團隊是如何完成的呢?架構
接下來咱們一一解密。app
戴口罩人臉識別之難:
如何快準狠
「三座大山」怎麼翻?
首先是第一個難題,丟失了大量臉部特徵,如何進行檢測。
在人臉識別的過程當中,會提取面部大量的特徵點,而這些特徵點的分佈並不都是均勻的。
並且每一個區域特徵點所包含的信息量(用於身份認證)不一樣,例如,眼部區域就相比其餘位置包含了更多的身份信息。
百度視覺就敏銳地觀察到了這一點,找到了翻過這座大山的突破口。
他們經過採用基於空間位置的注意力機制特徵學習,讓算法更加關注對眼部區域的特徵學習。
基於空間位置的注意力機制特徵學習
這樣一來,就能將由於佩戴口罩、帽子等遮擋,所帶來的信息丟失降到最低,也就能充分獲取戴口罩人臉的身份信息。
特徵可視化結果
算法有了,但數據不夠用來訓練,又該怎麼辦呢?
一個傳統的辦法,就是在現有的人臉圖像上「貼」上口罩。
但這樣處理後的實驗效果並不明顯,緣由是在真實場景中,人臉姿態會有變化,而且不一樣場景採集的圖像存在必定的差別性。
針對這個問題,百度視覺採用了基於人臉關鍵點的3D圖像融合技術。
這樣處理後,不只解決了人臉姿態變化帶來的口罩形變和遮擋問題,還生成了更加天然、真實的照片。
合成口罩圖片
經過收集市面上各類顏色、大小和樣式的口罩圖片,與以前積累的未佩戴口罩人臉圖片進行融合,快速合成了各類場景、海量真實的戴口罩訓練照片。
最後一座大山,人臉識別系統各模塊(環節)之間的問題。
百度視覺對此作了一系列的優化。例如:
-
檢測算法方面,採用了百度最新的PyramidBox-lite檢測算法,並加入超過10萬張口罩人臉數據訓練,在準確率不變的狀況下,召回率提高了30%,佩戴口罩的人臉檢測準確率超99%以上。
-
口罩分類算法方面,基於人臉關鍵點網絡,抽取了具備豐富面部語義信息的人臉特徵表示,並基於該特徵進行口罩遮擋判斷,還經過PaddleSlim進行模型壓縮,大小縮小了3倍多。
問題解決了,性能效果又如何?
優化了識別效果以後,在佩戴口罩狀況下人臉識別,準確率出奇的高,速度出奇的快!
但單從理論上解決難題是不夠的,應用到急需的場景中才是關鍵。
其實,這項已經投入到了現實場景,在百度園區,員工上班戴着口罩就能夠刷臉「入場」,解決了檢測「戴口罩的是誰」的問題。
更早的,針對密集人羣戴口罩的檢測問題,百度與北京地鐵展開了合做,連夜集結專項項目組,3天完成第一版部署,7天快速迭代上線,解決了檢測密集人羣「是否戴口罩」的問題。
嗯,看來是能夠愉快的戴口罩上班了!
實力的背後是技術
或許不少人會感到驚訝,百度怎麼可以在如此短期內,解決了難題,還作到了落地?
其實,這是必然的結果。
百度視覺早已在領域中深耕多年,技術實力不容小覷。
爲了達到業內SOTA水平,百度視覺技術部在人臉檢測問題上產出了一系列的研究,從多個角度進行優化。
上圖即是人臉檢測器設計的幾個優化思路,包括特徵融合、上下文信息、錨點設計、額外監督、數據擴充、網絡結構等。黃色標註部分爲百度視覺發表的論文。
所提出的BOX系列模型,在業界處於領先地位,例如:
-
DenseBox,第一個anchor free且能夠進行端到端訓練的物體檢測器。
-
PyramidBox,引入基於anchor的上下文輔助方法,用於半監督學習人臉上下文特徵。
-
DAFBox,基於注意力指引的語義加強特徵融合框架來學習各個尺度的具備豐富語義特徵金字塔。
-
BFBox,第一篇基於神經網絡架構搜索的人臉檢測方法,支持同時搜索適合人臉檢測的特徵提取器和特徵金字塔。
還有像HAMBox,可在線挖掘高質量錨點的高性能框架,2019年在ICCV WIDER Face and Pedestrian Challenge上 ,以mAP值57.13%的成績奪得人臉檢測的冠軍,遠超上一年冠軍55.82%的成績。
紅色框是PyramidBox的檢測效果,能夠看出PyramidBox對於姿態、模糊、遮擋、尺度等條件具備極強的魯棒性。
研究成果方面,近期即將召開的計算機視覺頂級學術會議CVPR 2020在近日公佈了收錄的論文,錄取率創下新低,相比去年降低3%,僅有22%,百度仍有高達22篇論文入選,其中人臉方向重要的論文包括:
-
HAMBox:Delving into Online High-quality Anchors Mining for Detecting Outer Faces
-
BFBox:Searching Face-appropriate Backbone and Feature Pyramid Network for Face Detector
-
FaceScape:a Large-scale High Quality 3D Face Dataset and Detailed Riggable 3D Face Prediction
-
Hierarchical Pyramid Diverse Attention Network for Face Recognition
這次疫情之下,人臉識別背後的核心技術問題,包括複雜場景多人臉檢測、多人臉跟蹤定位、實時模型預測、戴口罩人臉識別。
而這些問題,從上述的研究成果來看,百度視覺都或多或少的有所涉及。
如此來看,也就不難理解,爲何百度可以如此高效解決高難度問題。
百度在這次疫情中的貢獻,也真正的彰顯了那句「能力越大,責任越大」,也體現了出了在計算機視覺領域中領軍者的地位。
技術的背後,還有一個百度飛槳
不管是研究仍是應用,背後都須要一個強有力的平臺支撐。
而這次百度在人臉識別上的成功,離不開技術硬實力,更離不開技術背後的百度飛槳 。
飛槳是百度自研開源開放且功能完備的產業級深度學習平臺,是各種型AI模型應用開發的基礎。
例如在解決戴口罩人臉識別問題時,就採用了飛槳的大規模分類庫PLSC,快速對數百萬ID的訓練數據進行訓練,還採用了飛槳模型壓縮庫PaddleSlim進行模型搜索與壓縮,產出高性能的人臉識別模型,使用飛槳Paddle Lite快速進行雲端和移動端部署。
在此前北京地鐵AI口罩檢測方案中,百度飛槳利用自身儲備的業界領先工具集,快速完成了多維度視頻內容解析、視頻語義理解、分類標籤,及口罩識別等全套模型及部署,充分展示出飛槳源於產業實踐、並致力於與產業深刻融合的特色。
而百度也將基於口罩相關的能力作到了落地:
-
與科升(廣東)智能科技有限公司達成合做,對城中村門禁系統進行改造,租戶利用前期入住時登記好的人臉開鎖進門,同時該人臉數據庫與公安大數據後臺對接(直接對接公安數據庫),對可疑人員及網上追逃人員進行預警。
-
十牛科技將百度大腦發佈的口罩檢測與戴口罩人臉識別技術,更新至校園安全管理系統中,爲學生復學作好萬全準備。
-
與無錫華捷電子信息技術有限公司達成合做,針對疫情全新開發的產品,無需摘下口罩,就能夠精準識別人臉,實現乘車人秒速自動測溫,有效下降了公共交通出行中接觸感染風險。
-
與廣州智體科技有限公司達成合做,應用駕駛行爲分析API極速研發並上線了出租車、公交車司乘人員「戴口罩智能識別預警模塊」,實時上傳異常數據到疫情監管、交通管理部門、公交/出租車公司後臺,實現了多站點遠程異地有效管控。
還包括深圳市賽藍科技有限公司、深圳智薈物聯技術有限公司、南京海帆數據科技有限公司等100餘家試用企業,涉及零售線下門店無感刷臉購物、智慧社區刷臉門禁、企業員工刷臉考勤等場景。
此外,目前百度戴口罩識別相關基礎能力已經經過飛槳PaddleHub對外開源,避免讓更多程序員重複造輪子,能夠直接站在百度的肩膀上。
One More Thing
經過百度計算機視覺強悍的能力,已然解決了人羣「是否戴口罩」、「戴口罩的人是誰」的問題。
安全、愉快地戴口罩上班已經不是難題。
那麼更進一步的,戴口罩手機解鎖、刷臉支付,還須要多久能解決呢?
傳送門
飛槳官網:
下載安裝命令 ## CPU版本安裝命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安裝命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu
>> 訪問 PaddlePaddle 官網,瞭解更多相關內容。
https://www.paddlepaddle.org.cn/
PaddleSlim平臺:
https://github.com/PaddlePaddle/PaddleSlim
Paddle PLSC大規模分類庫:
https://github.com/PaddlePaddle/PLSC
PaddleLite平臺:
https://github.com/PaddlePaddle/Paddle-Lite
PaddleHub平臺:
https://github.com/PaddlePaddle/PaddleHub
若是想與更多深度學習同窗交流,歡迎加入飛槳官方QQ羣:703252161