1. 程式人生 > >蘋果解密:如何在手機上用深度神經網路進行人臉識別

蘋果解密:如何在手機上用深度神經網路進行人臉識別

千平 編譯整理
量子位 出品 | 公眾號 QbitAI

蘋果公司的計算機視覺機器學習團隊,最近發表了一篇部落格,介紹了蘋果如何在手機上實現用深度神經網路進行人臉識別。

0?wx_fmt=jpeg

蘋果首次公開發布人臉檢測API,是通過Core Image框架的CIDetector識別類。這個API也用在“照片”等蘋果的App中。CIDetector最早使用了基於Viola-Jones檢測的演算法。

隨著深度學習的出現以及在計算機視覺問題中的應用,現在最好的人臉檢測精度也產生了巨大的飛躍。我們必須徹底重新思考我們的方法,以便利用這一正規化的轉變。與傳統的計算機視覺相比,深度學習的模型需要更多的記憶體、儲存空間和計算資源。

與今天的手機一樣,典型的高階手機並不是一個可行的深度學習視覺模型平臺。大多數廠商都是通過基於雲的API來解決深度學習的解決方案,即把影象傳送到雲端,然後再使用深度學習推理檢測人臉。

基於雲的服務通常使用效能強大的桌面級GPU,配備大容量的記憶體,以支援客戶端(例如手機)利用大型深度學習系統的需求。但這種計算放在本地是不切實際的。

另一方面,蘋果的iCloud照片庫是一個基於雲的照片和視訊儲存解決方案,但是出於隱私保護的目的,蘋果無法再雲端對這些照片進行處理。因此,為了給使用者提供深度學習的計算機視覺解決方案,蘋果需要在iPhone上解決問題。

這裡有幾個挑戰。深度學習模型需要作為作業系統的一部分提供給使用者,佔用寶貴的NAND儲存空間,還得載入到RAM記憶體之中,並且使用大量GPU或者CPU的計算時間。而且在裝置端的計算需要共享資源,而且足夠高效。

那麼,

  • 如何充分利用GPU和CPU?

  • 如何為網路推斷、圖片載入和快取等優化記憶體?

  • 如何不妨礙iPhone效能同時執行網路?

從Viola-Jones到深度學習

2014年,當蘋果開始研究用深度學習方法檢測人臉時,深度卷積網路(DCN)剛剛開始嶄露頭角。其中最好的方法名叫“OverFeat”。

OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

論文在此:http://arxiv.org/abs/1312.6229

蘋果基於OverFeat論文中的一些見解,構建了一個全卷積網路(如下圖所示),其中包含多個任務目標:

  • 一個二元分類器,檢測圖片中是否存在人臉

  • 一個迴歸,用於定點陣圖片中的人臉識別框

0?wx_fmt=png

蘋果嘗試了幾種方法來訓練這個網路,訓練完畢後,這個網路就能預測圖片中是否存在人臉,並且提供相應的座標和比例。

對於這樣一個全卷積網路,可以建立一個標準的處理流程來執行人臉檢測,包括一個多尺度的影像金字塔、人臉檢測網路和一個後處理模組。如下圖所示。

0?wx_fmt=png

這一策略讓蘋果離在手機上執行深度卷積網路更進一步,但網路的複雜性和規模仍然是效能的關鍵瓶頸。克服這一挑戰,不僅意味著將網路限制在一個簡單的拓撲結構中,而且還要限制網路的層數、每層新到數量、卷積核的大小等。

但是一個能產生可接受精度的網路,通常都超過20層,還有一些網中網的模組。在手機上應用這種神經網路完全不可行,會嚴重影響效能和電池續航。實際上,這種網路根本無法載入大手機的記憶體之中。

怎麼辦?蘋果決定採用一種“師生”訓練方法。這個方法能訓練出一個小而深的網路(學生),效能接近大型複雜網路(老師)。學生網路由一個簡單的3×3卷積和池化層重疊構成,結構經過精心設計,可以最大限度的利用蘋果的神經網路推理引擎。

最後,蘋果得到一個能在手機上執行的人臉檢測深度神經網路演算法。接下來仍有大量工作要做,以便在數百萬使用者裝置上部署。

0?wx_fmt=jpeg

其他優化

當然到這一步還不算完。

蘋果在這篇部落格中還介紹瞭如何優化影象pipeline、如何在手機上優化效能等問題。總而言之,最後蘋果得到一個本地執行、低延遲、私密的深度學習推斷,而且使用者不會察覺到他們的手機每秒執行了近千億次的神經網路計算。

關於這篇部落格的全文,可以訪問這個網址檢視:

https://machinelearning.apple.com/2017/11/16/face-detection.html

活動報名

0?wx_fmt=jpeg

點選圖片閱讀原文
即可報名參賽和獲取更多詳情

聯想全國高校AI精英挑戰賽,面向全國徵集優秀AI相關領域技術與應用。此次將在全國8大賽區、260所高校開啟專案收集和溝通評判,最終入圍總決賽的8支參賽隊伍,將獲得聯想創投投資。

加入社群

量子位AI社群11群開始招募啦,歡迎對AI感興趣的同學,加小助手微信qbitbot4入群;

此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。

進群請加小助手微訊號qbitbot4,並務必備註相應群的關鍵詞~通過稽核後我們將邀請進群。(專業群稽核較嚴,敬請諒解)

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。

0?wx_fmt=jpeg

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態