博主介紹:?程序員徐師兄、7年大廠程序員經(jīng)歷。全網(wǎng)粉絲12W+、csdn博客專家、掘金/華為云/阿里云/InfoQ等平臺優(yōu)質(zhì)作者、專注于Java技術(shù)領(lǐng)域和畢業(yè)項目實戰(zhàn)?
??文末獲取源碼聯(lián)系??
???? 精彩專欄推薦訂閱???? 不然下次找不到喲
2022-2024年最全的計算機(jī)軟件畢業(yè)設(shè)計選題大全:1000個熱門選題推薦?
Java項目精品實戰(zhàn)案例《100套》
Python項目實戰(zhàn)《100套》文章來源:http://www.zghlxwxcb.cn/news/detail-843654.html
感興趣的可以先收藏起來,還有大家在畢設(shè)選題,項目以及文檔編寫等相關(guān)問題都可以給我留言咨詢,希望幫助更多的人文章來源地址http://www.zghlxwxcb.cn/news/detail-843654.html
1 簡介
Python基于 opencv 的人臉識別考勤系統(tǒng),是基于 Python 開發(fā)的,采用 dlib,opencv 識別技術(shù),可以準(zhǔn)確識別人臉。該項目功能完整,實用性較強(qiáng)。包括登陸注冊、考勤簽到、打卡,用戶管理等功能。適合大學(xué)生實戰(zhàn)項目使用,可供畢業(yè)設(shè)計參考。
基于Python dlib 的人臉識別上課考勤系統(tǒng)
2 技術(shù)棧
技術(shù)棧 | 說明 | 備注 |
---|---|---|
Djaongo | 作為后端接口 |
Django 文檔 Django 創(chuàng)建第一個項目 |
PyMySQL | 鏈接 mysql | 【Python-數(shù)據(jù)分析】如何使用 pandas 快速讀取 MySQL 數(shù)據(jù)表? |
html/js/css | 前端界面 | |
dlib,face_recognition | 人臉識別技術(shù) |
|
3 人臉識別關(guān)鍵技術(shù)說明
face_recognition是一款免費、開源、實時、離線的Python人臉識別庫,是目前世界上最簡潔的人臉識別庫。
face_recognition是基于業(yè)內(nèi)領(lǐng)先的C++開源庫dlib中的深度學(xué)習(xí)模型,用人臉數(shù)據(jù)集進(jìn)行測試,有高達(dá)99.38%的準(zhǔn)確率。因此,安裝face_recognition前需要安裝dlib庫。
face_recognition函數(shù)介紹
face_recognition做為目前最簡單的人臉識別庫(網(wǎng)站:https://github.com/ageitgey/face_recognition/),兩行代碼即可實現(xiàn)人臉識別:
import face_recognition
image = face_recognition.load_image_file("face.jpg")
face_locations = face_recognition.face_locations(image)
face_locations為(頂部、右側(cè)、底部、左側(cè))順序找到的人臉位置的元組列表
face_recognition API 文檔:https://face-recognition.readthedocs.io/en/latest/face_recognition.html
face_recognition只有幾個函數(shù):
face_recognition.load_image_file(file,mode=‘RGB’)
加載圖像,mode – “RGB”(8 位 RGB,3 個通道)或 “L”(黑白)
face_recognition.face_locations(img,number_of_times_to_upsample=1,model=‘hog’)
返回圖像中每張人臉的人臉特征位置列表;
number_of_times_to_upsample – 對圖像進(jìn)行多少次上采樣以查找人臉。數(shù)字越大,人臉越小;
model – "hog"不太準(zhǔn)確,但在CPU上更快。"cnn"是GPU / CUDA加速的一個更準(zhǔn)確的深度學(xué)習(xí)模型。
face_recognition.batch_face_locations(images, number_of_times_to_upsample=1, batch_size=128)
使用 cnn 人臉檢測器批量識別圖像中人臉邊界框的 2D 數(shù)組。沒有 GPU,則不需要此功能。
number_of_times_to_upsample – 對圖像進(jìn)行多少次上采樣以查找人臉。數(shù)字越大,人臉越小。
batch_size – 每個 GPU 處理批處理中要包含的圖像數(shù)。
**注意:**batch_size的上線取決于GPU顯存的大??;如果GPU顯存小,則減小batch_size值。
face_recognition.face_landmarks(face_image, face_locations=None, model=‘large’)
返回圖像中每張人臉的人臉特征位置(眼睛、鼻子等)的字典。
face_locations – (可選)提供要檢查的人臉位置列表。
model – “l(fā)arge” (默認(rèn)) 或 “small”僅返回5個點,但速度更快。
face_recognition.face_encodings(face_image, known_face_locations=None, num_jitters=1, model=‘small’)
返回圖像中每張人臉的 128 維人臉編碼。
known_face_locations - 可選 - 每個面孔的邊界框(如果已經(jīng)知道它們)。
num_jitters – 計算編碼時重新采樣人臉的次數(shù)。越高越準(zhǔn)確,但速度越慢(即 100 表示慢 100 倍)。
model – “l(fā)arge” (默認(rèn)) 或 “small”僅返回5個點,但速度更快。
face_recognition.compare_faces(known_face_encodings, face_encoding_to_check, tolerance=0.6)
將人臉編碼列表與候選編碼進(jìn)行比較,以查看它們是否匹配。
known_face_encodings – 已知人臉編碼的列表
face_encoding_to_check – 與列表進(jìn)行比較的單張臉編碼
tolerance – 將人臉之間的距離視為匹配。越低越嚴(yán)格。0.6 是典型的最佳值。
face_recognition.face_distance(face_encodings, face_to_compare)
給定人臉編碼列表,將它們與已知的人臉編碼進(jìn)行比較,并得到每個比較人臉的歐氏距離。距離大小為面孔的相似程度。
face_encodings – 要比較的人臉編碼列表
face_to_compare – 要與之進(jìn)行比較的人臉編碼
一、face_recognition安裝
1.dlib安裝:
CPU版:
CPU安裝很簡單pip3 install dlib
GPU版:
GPU版比CPU版速度快精度高、建議安裝使用GPU版,但是GPU安裝過程復(fù)雜
首先,需要正確安裝CUDA和CUDNN,CUDA、CUDNN是必須要安裝的(本人安裝的是CUDA11.3)
另外,還需要VS編譯環(huán)境(本人安裝的VS2019)和CMake(pip3 install cmake)
之后就是dlib GPU版的編譯和安裝(cmd命令行操作):
1.git clone https://github.com/davisking/dlib.git 或者 dlib C++ Library下載dlib庫,解壓后離線編譯
2.cd dlib
3.mkdir build
4.cd build
5.cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1
6.cmake --build .
7.cd..
8.python setup.py install
2.face_recognition安裝:
安裝dlib后,安裝face_recognition庫
pip3 install face_recognition
4 具體實現(xiàn)
1 人臉識別打卡
人臉識別考勤,會通過前端界面調(diào)用打開攝像頭,采集用戶頭像,后臺實時,通過 python dlib 去對比用戶頭像,如果頭像匹配上了,證明是同一個人,打卡成功
2 登陸注冊
3 用戶管理
管理員可以查看所有用戶,并增加,刪除用戶的信息
4 查看考勤信息
5 發(fā)布考考勤信息
6 簽到信息
5 推薦閱讀
Python基于微博的輿情分析、熱搜可視化系統(tǒng)
基于 SpringBoot+Vue 的教室人事檔案管理系統(tǒng)
Java基于SpringBoot的實驗室管理系統(tǒng)
基于 SpringBoot+Vue的電影影城管理系統(tǒng),附源碼,數(shù)據(jù)庫
6 源碼獲?。?/h3>
大家點贊、收藏、關(guān)注、評論啦 、查看????獲取聯(lián)系方式????
???? 精彩專欄推薦訂閱???? 不然下次找不到喲
2022-2024年最全的計算機(jī)軟件畢業(yè)設(shè)計選題大全:1000個熱門選題推薦?
Java項目精品實戰(zhàn)案例《100套》
Python項目實戰(zhàn)《100套》
感興趣的可以先收藏起來,還有大家在畢設(shè)選題,項目以及文檔編寫等相關(guān)問題都可以給我留言咨詢,希望幫助更多的人
大家點贊、收藏、關(guān)注、評論啦 、查看????獲取聯(lián)系方式????
???? 精彩專欄推薦訂閱???? 不然下次找不到喲
2022-2024年最全的計算機(jī)軟件畢業(yè)設(shè)計選題大全:1000個熱門選題推薦?
Java項目精品實戰(zhàn)案例《100套》
Python項目實戰(zhàn)《100套》
感興趣的可以先收藏起來,還有大家在畢設(shè)選題,項目以及文檔編寫等相關(guān)問題都可以給我留言咨詢,希望幫助更多的人
到了這里,關(guān)于Python基于 opencv 的人臉識別考勤系統(tǒng)(V1.0),附源碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!