以dlib實現人臉辨識打卡系統

一、   功能
在上班族上班的一天,打卡是非常重要的,打卡系統的存在是讓雇主知道員工的上下班時間,但是打卡鐘也是需要員工手動的把卡片放入打卡鐘裡面,有了人臉辨識打卡系統,打卡鐘跟每天打卡的這個動作就是多餘的了。
這個打卡系統基於pythondlib組成,只需要人臉被辨識,就會記錄下時間以及在資料庫尋找人名,完全不需要按鍵的觸發或是編號,因為人臉就是編號。

二、   程式介紹
程式有2大部分,分為辨識人臉跟儲存人臉向量,在人臉辨識方面,如果使用2張圖片來比對,會耗費太多的時間,因此,這次我們使用向量來比對,我們把人臉轉成向量,在比對的過程就能節省大量時間。

第一個部分是我們需要一個資料夾來當作資料庫,這個資料庫放的是圖片,圖片的檔名要放[人名_編號.jpg],例如要辨識蔡英文,檔名就要是[Tsai-Ing-wen_0.jpg],決定好要辨識的人以及準備好照片後,就可以執行程式,把照片的臉轉成特徵向量,保存在文件檔中。

    
第二個部分則是使用opencv把攝影機打開,接著掃描畫面中的人臉,在for迴圈中把每個畫面中的人臉經由比較的副程式比對,回傳人臉的名稱或是other


最後結合tkinteropencv的視窗放在gui裡面,增加了左側的label來讀取文件檔裡有多少需要辨識的人臉,下方在顯示當前的時間以及辨識到的人名,即可完成打卡的功能。

    影片DEMO:

三、   需要改進的地方
1.   還沒試過顯示卡可以負荷辨識多少人,下次應該要來個壓力測試
2.   GUI的設計困擾著我,X,Y軸還有布局應該要好好加強的,不然就是換成QT5試試看
四、   參考文獻
        https://www.itread01.com/content/1544809692.html

五、   原始碼
https://drive.google.com/file/d/17nzrDY6B578_7eVXSRCztgW5hXlsp1Lr/view?usp=sharing
https://drive.google.com/file/d/1E2Za71c-9Q-63hFUr8tLTQSVTUsWO-MZ/view?usp=sharing

留言

  1. 很棒喔,當初有沒有想過要用 face recognition 模組?還是dile比較快?也就是說,考量因素是?

    回覆刪除

張貼留言

這個網誌中的熱門文章

使用Python達成影像形態學處理(不使用Opencv函式庫)

使用DLIB函式庫達成即時人臉辨識功能