基于opencv和dlib人臉識(shí)別的員工考勤系統(tǒng)

已打包生成可執(zhí)行文件exe,可直接下載運(yùn)行,exe文件及代碼均已上傳到我的github,點(diǎn)擊傳送門,打包的具體過程及教程可見pyinstaller簡(jiǎn)明教程

WorkAttendanceSystem

一個(gè)基于opencv人臉識(shí)別的員工考勤系統(tǒng),作者某雙一流A類大學(xué)里的~一流(二流)~~~不入流學(xué)生,寫于2018/09/,python課程設(shè)計(jì)期間。

作者 inspurer
QQ交流群 861016679
個(gè)人博客 https://inspurer.github.io/

V1.0版本

項(xiàng)目結(jié)構(gòu)

mainui.py是主界面,調(diào)用face_img_register.py和face_recognize_punchcard.py 其中face_img_register.py主要實(shí)現(xiàn)錄入人臉信息功能,face_recognize_punchcard.py主要實(shí)現(xiàn)刷臉考勤功能,face_feature_storage.py屬于雞肋文件,是在調(diào)試代碼,沒什么用,舍不得刪,畢竟還有點(diǎn)參考價(jià)值。
face_recognize_punchcard_lib.py和face_recognize_punchcard.py本質(zhì)上差不多,
但是前者是給face_img_register.py專有的依賴。防止錄入兩個(gè)同樣的人臉建不同數(shù)據(jù)庫的風(fēng)險(xiǎn)。

運(yùn)行效果

1. 主界面

image

2. 人臉錄入

image

3. 刷臉考勤

這是通宵后的我,發(fā)現(xiàn)熬夜真的能讓人變丑。發(fā)誓再也不熬夜了。(?ò ? ó?)


image

其余的就不多做展示了,有什么問題歡迎2391527690@qq.com聯(lián)系


更新

2018/9/23更新

mainui.py-->myapp.py
face_recognize_punchcard_lib.py等雞肋文件放到useless文件夾里
運(yùn)行效率顯著提高

2018/9/25更新

解決同步性問題,新錄入的人臉能立即被識(shí)別
代碼的運(yùn)行速度少許下降

V2.0版本

老師看了我的V1.0版本后給的建議,第一,不能有太多彈窗界面,一些操作應(yīng)該放到工具欄中,而不是彈窗實(shí)現(xiàn);第二,數(shù)據(jù)保存在csv文件容易被竊讀,應(yīng)該保存到數(shù)據(jù)庫熊;第三,顯示考勤日志時(shí)應(yīng)該由自己的電子表格實(shí)現(xiàn)而不是直接調(diào)用excel?;谝陨系膯栴}和算法優(yōu)化的需要,我把代碼優(yōu)化成了V2.0,同時(shí)所以的代碼合在一個(gè)WorkAttwndanceSystem.py文件里,就人臉識(shí)別這部分代碼而言,提高了代碼復(fù)用度。

1. 全新設(shè)計(jì)的UI,更人性化的操作

image
image

這也是通宵后的我(づ ─ )づ


image

2. 數(shù)據(jù)更加安全,用戶不可見

人臉特征和簽到日志數(shù)據(jù)全部保存在inspurer.db數(shù)據(jù)庫文件里,更加安全;而且對(duì)人臉數(shù)據(jù)進(jìn)行了壓縮,存儲(chǔ)占用更小。

3. 注意事項(xiàng)

  1. 打開攝像頭后請(qǐng)保持人臉正對(duì)攝像頭,確保人臉識(shí)別開始。
  2. 人臉識(shí)別時(shí)做了拒絕處理,多張人臉時(shí),只取距離屏幕最近的人臉。
  3. 新建錄入時(shí)會(huì)自動(dòng)錄入十張人臉照片,也可手動(dòng)點(diǎn)擊完成錄入立即完成,之后就會(huì)計(jì)算人臉數(shù)據(jù)并存儲(chǔ)到數(shù)據(jù)庫中,左邊的信息欄會(huì)有相應(yīng)的信息打印。
  4. 開始簽到后,如不點(diǎn)擊結(jié)束簽到,程序就會(huì)一直對(duì)屏幕前的人臉進(jìn)行識(shí)別簽到,簽到狀態(tài)分三種,未識(shí)別的人臉,簽到成功,
    簽到成功但是遲到了(9.00后簽到),重復(fù)簽到(此時(shí)簽到日志不會(huì)寫入到數(shù)據(jù)庫中)。
  5. 為確保程序穩(wěn)定性,每一個(gè)菜單里的按鈕盡量成對(duì)操作。
  6. 模型的問題,沒有用到tensorflow訓(xùn)練,因?yàn)槿四樧R(shí)別的模型訓(xùn)練這件事,一方面已經(jīng)非常成熟了,可以利用官方的模型;另一方面,需要海量的數(shù)據(jù),甚至數(shù)據(jù)增強(qiáng);所以在這里,我直接利用官方的模型,自己編寫算法對(duì)數(shù)據(jù)進(jìn)行處理。

源代碼及詳細(xì)的文檔說明地址

傳送門

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容