【人臉檢測+識別】基於FaceNet的人臉識別課堂簽到系統(帶GUI界面)
效果圖:
實際圖 :
1. 人臉數據庫採集界面:
2. 人臉簽到界面:
(可載入本地視頻或者攝像頭實時視頻)
4. 源碼:
(需要權重文件的請私聊)
項目已經上傳到Github:https://github.com/Sharpiless/Face-recognition-for-classroom-sign-in
算法簡介:
該模塊通過卷積神經網絡將人臉圖像映射爲一個一維的特徵向量,任何對比檢測人臉特徵和數據庫中人臉的特徵在特徵空間的距離,從而計算人臉相似度並進行人臉匹配和識別,其基本流程爲:
- 使用MTCNN檢測人臉區域並進行裁剪;
- 使用FaceNet模型直接將人臉圖像轉換到特徵空間的一維特徵向量。即通過一個深度的卷積神經網絡,利用卷積層和池化層進行高層特徵計算和下采樣得到特徵向量,這些特徵向量的空間距離的長度就代表了特徵的相似度,從而能夠進行人臉匹配;
- 得到檢測人臉的特徵向量後,通過計算該人臉的特徵向量與數據庫中已經計算的人臉特徵的距離來匹配人臉,並設置闕值來過濾陌生人臉;
總結:
本文調研並比對了不同人臉識別方法,重點介紹了本文開發的基於FaceNet的人臉識別系統的原理。並且本文基於FaceNet開發了一套完整可行的人臉識別系統,功能包括:截取實時視頻,檢測和切割人臉圖片,人臉特徵匹配和識別等。實驗結果表明該模型具有很好地精度。此外我們使用了用於人機交互的UI界面,實現了良好的用戶體驗。並且該模型具有較高的準確度,在LWF數據集上的精度達到了98%。
可以改進的地方有:由於國內並無大型人臉數據庫,本實驗在LFW數據集上進行,對歐美人臉識別精度高,但是在實際應用中,對亞裔人臉精度可能會有所下降。同時可以考慮使用TinySSD、YOLO-nano等輕量級網絡代替MTCNN檢測部分,從而降低檢測的計算複雜度,提高檢測的速度。