識別面部表情和情緒是人類社交初期階段的一項基本且非常重要的技能。人類可以觀察一個人的面部,并且快速識別常見的情緒:怒、喜、驚、厭、悲、恐。將這一技能傳達給機器是一項復雜的任務。研究人員通過幾十年的工程設計,試圖編寫出能夠準確識別一個特征的計算機程序,但不得不反復重新開始,以識別出只有細微差別的特征。 如果不對機器進行編程,而是教會機器精確識別情緒,這樣會如何呢?
深度學習技能對于降低計算機視覺識別和分類的錯誤率展現出了巨大的優勢。在嵌入式系統中實施深度神經網絡(見圖1)有助于機器通過視覺解析面部表情,并達到類似人類的準確度。
圖1. 深度神經網絡的簡單例子
神經網絡可通過訓練而識別出模式,而且如果它擁有輸入輸出層以及至少一個隱含的中間層,則被認為具有“深度”識別能力。每個節點從上一層中的多個節點的加權輸入值而計算出來。這些加權值可經過調整而執行特別的圖像識別任務。這稱為神經網絡訓練過程。
例如,為了訓練深入神經網絡識別出面帶開心的照片,我們向其展示開心的圖片作為輸入層上的原始數據(圖像像素)。由于知道結果是開心,網絡會識別圖片中的模式,并調整節點權重,最大限度減少開心類別圖片的錯誤。每個顯示出開心表情并帶有注釋的新圖片都有助于優化圖片權重。憑借充足輸入信息的訓練,網絡可以攝入不帶標記的圖片,并且準確地分析和識別與開心表情相對應的模式。
深度神經網絡需要大量的計算能力,用于計算所有這些互連節點的權重值。此外,數據內存和高效的數據移動也很重要。卷積神經網絡 (CNN)(見圖2所示)是當前針對視覺的深度神經網絡中實現效率最高的。CNN之所以效率更高,原因是這些網絡能夠重復使用圖片間的大量權重數據。它們利用數據的二維輸入結構減少重復計算。
圖2. 用于面部分析的卷積神經網絡架構(或示意圖)舉例
實施用于面部分析的CNN需要兩個獨特且互相獨立的階段。第一個是訓練階段。第二個是部署階段。
訓練階段(見圖3所示)需要一個深度學習框架 – 例如Caffe或TensorFlow – 它采用CPU和GPU進行訓練計算,并提供框架使用知識。這些框架通常提供可用作起點的CNN圖形范例。深度學習框架可對圖形進行微調。要實現盡可能最佳的精確度,可以增加、移除或修改層次。
圖3. CNN訓練階段
在訓練階段的一個最大挑戰是尋找標記正確的數據集,以對網絡進行訓練。深度網絡的精確度非常依賴訓練數據的分布和質量。面部分析需考慮的多個選項是來自面部表情識別挑戰賽 (FREC) 的情感標注數據集和來自VicarVision (VV) 的多標注私有數據集。
部署階段(見圖4所示)針對實時嵌入式設計,可在嵌入式視覺處理器上實施,例如帶有可編程CNN引擎的Synopsys DesignWare? EV6x嵌入式視覺處理器。嵌入式視覺處理器是平衡性能和小面積及更低功耗關系的最佳選擇。
圖4. CNN部署階段
標量單元和向量單元采用C和OpenCL C(用于實現向量化)進行編程,而CNN引擎不必手動編程。來自訓練階段的最終圖形和權重(系數)可以傳送到CNN映射工具中,而嵌入式視覺處理器的CNN引擎可以經過配置而隨時用于執行面部分析。
從攝像頭和圖像傳感器捕捉的圖像或視頻幀被送入嵌入式視覺處理器。在照明條件或者面部姿態有顯著變化的識別場景中,CNN比較難以處理,因此,圖像的預處理可以使面部更加統一。先進的嵌入式視覺處理器和CNN和異構架構允許CNN引擎對圖像進行分類,向量單元會對下一個圖像進行預處理 – 光線校正、圖像縮放、平面旋轉等,而標量單元則處理決策(即如何處理CNN檢測結果)。
圖像分辨率、幀率、圖層數和預期精確度都要考慮所需的并行乘累加數量和性能要求。Synopsys帶有CNN的EV6x嵌入式視覺處理器可采用28nm工藝技術以800MHz的速率運行,同時提供高達880 MAC的性能。
一旦CNN經過配置和訓練而具備檢測情感的能力,它就可以更輕松地進行重新配置,進而處理面部分析任務,例如確定年齡范圍、識別性別或種族,并且識別發型或是否戴眼鏡。
總結
嵌入式視覺處理器上運行的CNN開辟了視覺處理的新領域。很快,我們周圍能夠解析情感的電子設備將很常見,例如檢測開心情緒的玩具,以及能夠通過識別面部表情而確定學生理解情況的電子教師。深度學習、嵌入式視覺處理和高性能CNN的結合將很快將這一愿景變為現實。
-
神經網絡
+關注
關注
42文章
4777瀏覽量
100973 -
計算機視覺
+關注
關注
8文章
1699瀏覽量
46055 -
深度學習
+關注
關注
73文章
5511瀏覽量
121353 -
cnn
+關注
關注
3文章
353瀏覽量
22269
發布評論請先 登錄
相關推薦
評論