• <bdo id="f9ffj"><progress id="f9ffj"></progress></bdo>
  • <nav id="f9ffj"></nav>

      1. <var id="f9ffj"><mark id="f9ffj"></mark></var>
        <var id="f9ffj"></var>
          北京物流信息聯盟

          一種用于人臉檢測的基于設備的深度神經網絡

          fastai中文社區 2022-07-24 09:25:25

          點擊藍字關注這個神奇的公眾號~

          英文

          An On-device Deep Neural Network for Face Detection

          Vol. 1 ,Issue 7 ? November 2017 . by Computer Vision Machine Learning Team


          介紹

          Apple首先通過CIDetector類在Core Image框架的公共API中發布了人臉檢測。這個API也被Apple應用程序內部使用,例如Photos。CIDetector的最早版本使用了基于Viola-Jones檢測算法的方法[1]。我們根據CIDetector對傳統計算機視覺方面的進展進行了后續改進。


          隨著深度學習的出現,以及其在計算機視覺問題中的應用,人臉檢測精度的最新進展發生了巨大的飛躍。我們必須徹底重新思考以前采用的方法,以便我們能夠利用這種模式轉變。與傳統的計算機視覺相比,深度學習的學習模型需要更多的內存,更多的磁盤存儲以及更多的計算資源。


          像今天的手機一樣,典型的高端手機并不是一個可行的深度學習視覺模型平臺。大多數行業通過基于云的API提供深度學習解決方案來解決這個問題。在基于云的解決方案中,使用深度學習推理將圖像發送到服務器進行分析以檢測人臉?;谠频姆胀ǔJ褂霉δ軓姶蟮淖烂婕塆PU,并提供大量內存。非常大的網絡模型以及潛在的大型模型可以在服務器端運行,從而允許客戶端(可以是手機)利用大型深度學習架構,這在本地運行是不切實際的。


          蘋果的iCloud照片庫是一個基于云的照片和視頻存儲解決方案。但是,由于蘋果對用戶隱私的強烈承諾,我們無法將iCloud服務器用于計算機視覺計算。發送到iCloud照片庫的每張照片和視頻在發送到云存儲設備之前都會在設備上進行加密,并且只能通過注冊到iCloud帳戶的設備進行解密。因此,為了給我們的客戶提供基于深度學習的計算機視覺解決方案,我們必須直接解決在iPhone上運行深度學習算法所面臨的挑戰。


          我們面臨著幾個挑戰。深度學習模式需要作為操作系統的一部分進行發貨,占用寶貴的NAND存儲空間。它們也需要加載到RAM中,并且在GPU和/或CPU上需要大量的計算時間。與基于云計算的服務不同,云計算的資源只能專注于視覺問題,因此必須在與其他正在運行的應用程序共享這些系統資源的同時進行設備上的計算。最后,計算必須足夠高效,以在相當短的時間內處理一個大的照片庫,但沒有顯著的功耗或熱量增加。

          本文的其余部分討論了我們的基于深度學習的人臉檢測的算法,以及我們如何成功地應對挑戰,以實現最新的精度。我們討論:


          我們如何充分利用我們的GPU和CPU(使用BNNS和金屬)

          內存優化網絡推斷,圖像加載和緩存

          我們如何以不妨礙iPhone預期的其他多項任務同時進行的方式實施網絡


          從Viola-Jones走向深度學習

          在2014年,當我們開始研究深度學習方法來檢測圖像中的人臉時,深度卷積網絡(DCN)剛剛開始在物體檢測任務上產生有希望的結果。其中最突出的是一種名為“OverFeat”的方法[2],該方法推廣了一些簡單的想法,這些想法表明DCN在為對象掃描圖像方面非常有效。


          OverFeat繪制了神經網絡的全連接層與卷積層之間的等價性,與輸入具有相同空間維度的濾波器的有效卷積。這項工作表明,一個固定的接受領域的二元分類網絡(例如32x32,自然跨度為16像素)可以有效地應用于任意大小的圖像(例如,320x320),以產生適當大小的輸出圖(在這個例子中是20x20)。OverFeat文件還提供了巧妙的配方,通過有效地減少網絡步幅來產生更密集的輸出映射。


          我們基于OverFeat論文的一些見解構建了我們的初始架構,從而形成了一個完整的卷積網絡(參見圖1),其中包含以下多任務目標:


          二進制分類來預測輸入中面部的存在與否,以及預測邊界框參數的回歸,以最佳地定位輸入中的面部


          我們嘗試了幾種訓練這種網絡的方法。例如,簡單的訓練過程是創建一個固定大小的圖像塊的大數據集,該圖像塊對應于網絡的最小有效輸入,使得每個塊產生來自網絡的單個輸出。訓練數據集是理想的平衡,所以一半的瓦片包含一個人臉(正類),另一半不包含人臉(負類)。對于每個正片,我們提供了真正的位置(x,y,w,h)。我們訓練網絡來優化前面描述的多任務目標。一旦訓練完畢,網絡就能夠預測一個圖塊是否包含一個人臉,如果是的話,它還提供該圖塊中人臉的坐標和比例。


          圖1.修改后的面部檢測DCN體系結構

          由于網絡是完全卷積的,因此可以高效地處理任意大小的圖像并生成2D輸出圖。地圖上的每個點對應于輸入圖像中的圖塊,并且包含來自網絡的關于該圖塊中是否存在人臉及其位置/比例的預測(參見圖中的DCN的輸入和輸出1)。


          給定這樣一個網絡,我們可以建立一個相當標準的處理流水線來執行人臉檢測,包括一個多尺度圖像金字塔,人臉檢測器網絡和一個后期處理模塊。我們需要一個多尺度的金字塔來處理各種尺寸的面孔。我們將網絡應用到金字塔的每個級別,并從每一層收集候選檢測。(見圖2)。后處理模塊然后將這些候選檢測結果跨度進行組合,以產生對應于網絡對圖像中的臉部的最終預測的邊界框的列表。


          圖2.人臉檢測工作流程

          這一策略使我們更接近于在設備上運行深度卷積網絡,以徹底掃描圖像。但網絡復雜性和規模仍然是性能的關鍵瓶頸??朔@一挑戰不僅意味著將網絡限制在一個簡單的拓撲結構中,而且還要限制網絡層數,每層信道數量和卷積濾波器的內核大小。這些限制提出了一個至關重要的問題:我們的網絡能夠產生可接受的準確性,不過是很簡單的,大多數網絡超過20層,由幾個網絡中的網絡組成[3]模塊。在前面描述的圖像掃描框架中使用這樣的網絡將是完全不可行的。他們導致了不可接受的性能和用電量。事實上,我們甚至無法將網絡加載到內存中。當時的挑戰是如何訓練一個簡單而緊湊的網絡,以模擬準確但復雜的網絡的行為。


          我們決定采用一種非正式的“師生”訓練方式[4]。這種方法為我們提供了一個機制來訓練第二個薄而深的網絡(“學生”),使得它非常接近我們已經培訓的大型復雜網絡(“老師”)的輸出如前所述。學生網絡由一個簡單的3x3卷積和層疊重復結構組成,其架構經過精心設計,可最大限度地利用我們的神經網絡推理引擎。(見圖1)


          現在,最后,我們有一個用于面部檢測的深度神經網絡的算法,對于設備上的執行是可行的。我們迭代了幾輪訓練,以獲得足夠精確的網絡模型,以啟用所需的應用程序。雖然這個網絡是準確可行的,但仍然有大量的工作要做,以便在數百萬用戶設備上部署。


          優化圖像管道

          對深度學習的實際考慮因素深深地影響了我們為開發人員設計的易于使用的框架,我們稱之為Vision。很明顯,偉大的算法不足以創建一個偉大的框架。我們必須有一個高度優化的成像管道。


          我們不希望開發人員考慮縮放,顏色轉換或圖像源。無論是用于實時相機捕捉流,視頻處理,還是從光盤或網絡處理圖像,人臉檢測都應運行良好。它應該工作,不管圖像的表示和格式。


          我們關心的是功耗和內存使用情況,尤其是流媒體和圖像捕獲。我們擔心內存占用,比如64兆像素全景所需的大內存。我們通過使用部分二次采樣解碼技術和自動平鋪技術來解決這些擔憂,即使在非典型的高寬比下,也可以在大圖像上執行計算機視覺任務。


          另一個挑戰是色彩空間匹配。蘋果公司擁有廣泛的色彩空間API,但我們不希望讓開發人員承擔色彩匹配任務。視覺框架處理顏色匹配,從而降低成功采用計算機視覺到任何應用程序的門檻。


          Vision還通過有效處理和重復使用中間體來優化。人臉檢測,人臉標志檢測以及其他一些計算機視覺任務可以從相同的縮放中間圖像中工作。通過將算法的接口抽象出來,找到要處理的圖像或緩沖區的所有權位置,Vision可以創建和緩存中間圖像,以提高多個計算機視覺任務的性能,而無需開發人員進行任何工作。


          另一面也是如此。從中心接口的角度來看,我們可以將算法開發推向方向,以便更好地重用或共享中間體。Vision承載了幾種不同的,獨立的計算機視覺算法。為了使各種算法能夠很好地協同工作,實現使用輸入分辨率和顏色空間,盡可能多的算法共享.。


          優化設備上的性能

          如果我們的人臉檢測API無法在實時應用程序和后臺系統進程中使用,那么易用性的快感將很快消失。用戶希望在處理照片庫進行人臉識別或在拍攝后立即分析照片時,能夠流暢地運行人臉檢測。他們不希望電池耗盡或系統的性能緩慢爬行。蘋果的移動設備是多任務設備。背景計算機視覺處理因此不應該顯著地影響系統的其余部分的特征。


          我們實施了幾種策略來最大限度地減少內存占用和GPU使用。為了減少內存占用,我們通過分析計算圖來分配神經網絡的中間層。這允許我們將多個圖層別名到同一個緩沖區。雖然是完全確定性的,但這種技術可以減少內存占用,而不會影響性能或分配碎片,并且可以在CPU或GPU上使用。


          對于Vision,檢測器運行5個網絡(每個圖像金字塔比例一個,如圖2所示)。這5個網絡共享相同的權重和參數,但其輸入,輸出和中間層具有不同的形狀。為了進一步減少占用空間,我們在由這5個網絡組成的聯合圖上運行基于活性的內存優化算法,大大減少了占用空間。此外,多個網絡重復使用相同的權重和參數緩沖區,從而減少內存需求。


          為了獲得更好的性能,我們利用了網絡的完全卷積性:所有的尺度都被動態調整大小以匹配輸入圖像的分辨率。與將圖像擬合在方形網絡視網膜(由無效帶填充)相比,將網絡適合圖像的大小允許我們大大減少總操作的數量。由于操作的拓撲結構并沒有因分配器其余部分的重構和高性能而改變,所以動態整形不會引入與分配有關的性能開銷。


          為了確保在深層神經網絡在后臺運行時的UI響應性和流暢性,我們為網絡的每一層分割GPU工作項,直到每個單獨時間少于一毫秒。這使操作員能夠及時將情境切換到更高優先級的任務,如UI動畫,從而減少并有時消除丟幀。


          綜合起來,所有這些策略確保我們的用戶可以享受本地,低延遲,私密的深度學習推斷,而不必意識到他們的手機每秒鐘運行數百gigaflops的神經網絡。


          使用視覺框架

          我們是否已經完成了我們設定的目標,即開發一個高性能,易于使用的人臉檢測API?你可以試試Vision框架并為自己判斷。以下是如何開始:


          觀看WWDC演示:Vision Framework : Building on Core ML

          閱讀?Vision Framework Reference

          在iOS 11教程中試用Core ML和Vision:機器學習[5]


          References

          [1] Viola, P. and Jones, M.J.?

          Robust Real-time Object Detection Using a Boosted Cascade of Simple Features. In?Proceedings of the Computer Vision and Pattern Recognition Conference, 2001.


          [2]?Sermanet, Pierre, David Eigen, Xiang Zhang, Michael Mathieu, Rob Fergus, and Yann LeCun.

          OverFeat: Integrated Recognition, Localization and Detection Using Convolutional Networks.? arXiv:1312.6229?[Cs], December, 2013.


          [3]?Lin, Min, Qiang Chen, and Shuicheng Yan.?

          Network In Network.?

          arXiv:1312.4400?[Cs], December, 2013.


          [4]?Romero, Adriana, Nicolas Ballas, Samira Ebrahimi Kahou, Antoine Chassang, Carlo Gatta, and Yoshua Bengio.?

          FitNets: Hints for Thin Deep Nets.?

          arXiv:1412.6550?[Cs], December, 2014.


          [5]?Tam, A.?

          Core ML and Vision: Machine learning in iOS Tutorial.?

          Retrieved from?https://www.raywenderlich.com, September, 2017.


          fastai深度學習官方網站

          fastai深度學習社區

          微信號:fastai2017

          官網:fastai.com.cn


          友情鏈接

          永久免费啪啪网站一二三区,中文无码精油按摩高潮,乳峰高耸的美妇
        1. <bdo id="f9ffj"><progress id="f9ffj"></progress></bdo>
        2. <nav id="f9ffj"></nav>

            1. <var id="f9ffj"><mark id="f9ffj"></mark></var>
              <var id="f9ffj"></var>