






摘要:作為重要的人工智能研究方向,人臉識別研究近年來大量涌現,相關產品也在各領域廣泛應用。基于此,文章將圍繞一種基于深度學習提升人臉識別技術準確率的算法開展研究,在計算框架加速化和網絡結構小型化支持下,實時化人臉識別得以實現,由此設計的人臉識別系統可用于物聯網設備。
關鍵詞:深度學習;人臉識別技術;人臉檢測;物聯網設備
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)07-0089-03
開放科學(資源服務)標識碼(OSID):<H:\飛翔打包文件\電腦2022年第七期打包文件1\8.05xs202207\Image\image88.png>
相較于虹膜識別、指紋識別、密碼、密鑰等局限性較大的身份驗證手段,人臉識別技術已成為現階段公認的最佳身份驗證手段。隨著人臉識別技術的快速發展和廣泛應用,人們的生活逐漸發生變化,火車站的人臉識別閘機、人臉識別自動售賣機等均屬于這種變化的載體。
1 人臉識別算法設計
1.1 人臉檢測算法
為實現人臉識別算法效果和性能的平衡,需基于MTCNN框架開展人臉檢測網絡設計,具體算法流程可概括為:“圖像金字塔→[Pnet]檢測→[Rnet]檢測→[Onet]檢測”。圖像金字塔可通過放大和縮放圖像獲取,進入[Pnet]網絡的圖像金字塔負責生成人臉候選區域,人臉區域多重復冗余通過非極大值抑制開展去重處理,在[Rnet]網絡中進一步提取特征并進行邊框回歸,進一步去重處理,[Onet]網絡繼續進行提取特征和邊框回歸,人臉所在區域能夠最終獲取,人臉關鍵點的預測5個位置也能夠同時獲得。為降低學習參數,部分傳統卷積層通過可分離卷積結構替代,完成人臉檢測網絡的深度可分離卷積設計,最終得到[Pnet]、[Rnet]、[Onet]網絡結構[1]。
為驗證算法有效性,開展算法模型訓練,并結合人臉檢測測試庫對檢測速度和效果進行測試,具體選擇[wide face]數據集,數據集中的人臉照片、人臉ID數量 分別為 393703張、32203個,從中隨機選取40%的每個事件類人臉照片。同時將自建的亞洲數據集作為其中的事件場景照片,數據集的人臉照片、人臉ID數量分別為20000張、10000個。人臉關鍵點訓練集選擇[Celeb A]數據集,數據集包含屬性標記、人臉特征點數量分別為40個、5個,[Onet]網絡基于關鍵點坐標進行訓練。完成數據預處理后,形成各個網絡,對比原版[MTCNN]可以發現,訓練時精度在每個階段網絡與原版網絡差異明顯,但這種差異逐漸在測試集上縮小,模型計算量降低得以在算法效果保證的前提下實現,在設備計算能力相同時,能夠得到大幅降低的一次正向傳播時間,網絡設計有效性得到證明[2]。
1.2 人臉識別算法
在人臉識別算法設計中,研究選擇的人臉識別損失函數為[insightface loss ],該函數能夠在優化和約束間尋求平衡,在訓練收斂、訓練數據集包容性方面表現出色。損失函數、網絡、數據三種因素均會影響模型效果,對于學習導向不準確的損失函數,大規模的高質量數據集具備一定補償作用,深度CNN模型可基于大數據實現性能提升,而考慮到大型數據集注釋過程較為復雜,且人臉識別存在開放性特點,訓練時分類模型會遇到很多新的身份,因此本文設計一種能夠對未標記數據進行訓練的損失函數。設網絡模型、樣本分別為M、X,送入網絡后樣本最后一個全連接層輸出[(x1,x2,x3,x4,x5,…,xn)],其中n、[x1,x2,x3,x4,x5,…,xn]分別代表類別數、不同身份中心與樣本的距離,如預測正確,存在為k的分類結果,條件[k=argmaxxk]滿足。在訓練集中未出現樣本的影響下,其屬于新的類別,因此所有[x1,x2,x3,x4,x5,…,xn]在理想情況下需盡可能小,具體樣本過濾可選擇設定閾值方式,且[x1,x2,x3,x4,x5,…,xn]需要保證概率和為1的所有類別,滿足[x1+x2+x3+x4+x5+…+xn=1],具體可表示為:
結合式(1)進行分析可以發現,不存在單一的解決方案,屬于典型的多目標約束最小化問題,因此需要保證存在偏向任何身份中心的[x1,x2,x3,x4,x5,…,xn]概率分布,可獲得問題解決方案:
考慮到損失函數無法采用最大化目標,基于最小化形式開展目標轉換,進行未知身份排斥損失函數的針對性構造,具體為:
基于上式進行組合,最終得到新的損失函數,具體為:
上式中的[ε]表示為超參數,算法在其數值為0.15時存在最好效果。在歸一化權重和特征后,存在n維輸入向量的全連接層輸出,樣本特征空間可以此代表。同一類樣本映射在特征空間中的特征點需要在對應聚類中心旁圍繞,身份類集群相同的特征中心可通過某一行向量表示,該向量原因權重矩陣存在于全連接層中,即[wk],通過將不同身份重心進行稀疏分布,模型具備更好的判別能力,對于任何樣本,訓練好的模型均能夠保證得到逼近中心的特征向量。
開展具體實驗,按照兩個階段進行訓練,采用的實驗環境與人臉檢測算法實驗相同。在第一個階段,模型訓練采用完全監督方式,這一過程中的主干網絡、損失函數分別為[mobilefacene]、[insightface loss(l1)],直到模型收斂。在第二個階段,一起部署兩種損失函數,訓練通過半監督方式進行,這一過程存在不變的整體批次大小,減少1/4標記圖像在單個批次中的數量,其余1/4通過未標記數據開展補充,分別開展損失計算。對比本文設計損失函數和[insightface loss]損失函數可以發現,各個數據集上損失函數在改進后均有所提升,這種提升在跨角度數據集最為顯著,各個數據上損失函數[insightface loss(l1)]的表現優異,原有損失函數受[TAR@FAR]標準提升存在正常的結果下降,但本文設計的損失函數未出現大幅度下降且擁有更高的準確率[3]。
2 人臉識別系統設計
2.1 總體設計
本文研究的人臉識別系統設計從工業角度展開,選擇[Windows]系統進行搭建,系統編譯語言選擇C#和C++,前者用于界面顯示和邏輯業務處理,后者用于密集計算模塊,具體開發軟件選擇[Visual Studio 2015]。
通過分析可以發現,整個系統由六個模塊組成。密集計算模塊屬于底層模塊,負責承載人臉識別算法和人臉檢測算法,可視作正向傳播框架,能夠滿足網絡模型加載需要,為正向網絡傳播提供支持;讀卡器模塊負責身份證讀卡器API的調用,提取身份證照片并對比現場照片;實時人臉檢測模塊負責人臉檢測,需基于實時[rtsp]碼進行檢測,屬于人臉檢測算法應用層,能夠按照112*112規格對齊人臉區域裁剪圖;人臉識別模塊存在刷卡、刷臉兩種模式,屬于人臉識別算法應用層,負責人臉特征提取,證件照片可在刷卡模式中完成人臉特征提取,比對相似度。現場人臉特征可在刷臉模式下與圖片特征庫比較相似度;數據管理模塊負責記錄行人來往數據,需轉化為本地特征庫,程序運行內存中需要由該模塊加入本地特征庫;界面顯示模塊的顯示形式采用視頻流動態,模擬身份證為讀卡器數據呈現形式,圖標形式負責人臉識別結果表現。
管理員在辦公室場景中可基于數據管理模塊轉換生活照片為人臉特征,二進制特征庫在軟件本地形成。刷臉模式屬于常規系統工作模式,對于進入一定區域的人員,每一幀圖像的人臉能夠由人臉檢測模塊進行實時監測,如檢測到面積超過一定閾值的人臉后,系統人臉識別功能自動開啟,當前被檢測人臉通過本地特征庫實現身份信息自動匹配,訪客數據庫負責存儲來訪的身份信息,輔以其他智能系統,智能化管理可依托訪客數據庫實現。如本地數據庫中不存在來訪人員信息,身份校驗可基于身份證實現。
對于圖像特征庫未注冊用戶,刷臉模式對外來人員按照兩個階段進行人臉識別,第一階段需要依托讀卡器讀取的身份證信息,獲取用戶信息和身份證照片,之后通過字符串數據包將信息傳送給人臉識別模塊和界面模塊,實現信息顯示,同時攝像頭當前視頻幀需要由人臉識別模塊讀取。完成人臉定位和人臉區域裁剪處理后,通過對特征提取接口調用,歸一化圖片編碼為特征向量,開展向量差異計算,最終完成比對,界面模塊能夠直觀顯示比對結果,結果需同時在數據庫中保存。
2.2 具體實現
研究采用C++語言設計密集計算模塊,網絡構建框架選擇開源項目[ZQCNN],按照動態鏈接庫進行人臉識別及人臉檢測功能封裝。基于框架精簡特性,對于對數函數、指數、計算正弦,擴展基于單指令多數據流技術實現,開源的[Open Blas]負責基礎線性代數。采用類似于[caffe]框架的框架設計,基于[Tensor4D]、[layers]類、[nets]類分別進行數據基本儲存單位、神經網絡層、多個網絡層建立。基于[python]轉化算法為C++,并將初始化模型、結果獲取等步驟在[Face Extract.dll]和[Face Detect.dll]中封裝,圖3為密集計算庫示意圖。
人臉檢測模塊模型需要對人臉檢測庫進行調用,保證人臉檢測圍繞每一幀圖片開展,系統開啟攝像頭類型基于配置文件決定,可對檢測感興趣區域和圖像幀分辨率進行設定。每一幀獲取需要得到[EMGU]開源庫支持,向人臉檢測接口傳遞每一幀圖像數據,當前檢測圖像幀中需要渲染檢測結果,效果展示最終在UI界面開展,人臉檢測接口設計中[detect]為核心API,[Face Infor Array]結構體負責檢測結果返回,具體參數設置通過構造函數完成。人臉識別模塊以兩種工作模式和對人臉特征庫調用為核心,特征提取接口將人臉區域照片輸入,依托浮點型數組輸入,相似度可通過對[Calculate Similarity]調用獲取,是否為同一人通過比較判斷閾值實現。
3 結論
綜上所述,基于深度學習的人臉識別技術存在較高推廣價值。在此基礎上,本文涉及的人臉檢測算法、人臉識別算法等內容,則直觀展示了人臉識別技術應用路徑。為更好發揮人臉識別技術優勢,還需要關注技術在物聯網設備上的應用,這種應用需得到專用人工智能芯片的支持,圍繞這類芯片開展的研究將成為筆者下一步研究方向。
參考文獻:
[1] 裴慶慶.基于深度學習算法的人臉識別方法研究[J].電子技術與軟件工程,2021(6):114-115.
[2] 沈繼云.試析基于神經網絡深度學習算法的人臉識別技術[J].信息技術與信息化,2020(5):228-230.
[3] 崔慶華.基于深度學習的人臉識別技術分析[J].計算機產品與流通,2020(5):136.
【通聯編輯:光文玲】
收稿日期:2021-06-15
基金項目:基于深度學習面向物端實時人臉識別技術研究(項目編號:WAYS202102)
作者簡介:張寧仙(1986—),女,陜西澄城人,碩士,講師,主要研究方向為圖像處理、模式識別。