Bootstrap

Python人脸识别智能考勤系统 (供源码,附报告)(可答疑,可调试)

目录

一、项目简介

二、功能展示

1.人脸识别功能测试

2.识别并录入人脸及个人信息

3.数据库保存信息

 4.考勤打卡

三、环境安装实例

1.下载python对应版本的dlib

2.安装opencv-python

3.安装face_recognition

 4.安装pyqt5

5.安装mysqlclient

四、需要源码私信并call邮箱[email protected]


一、项目简介

本项目使用编程语言Python3.8,anaconda,开发工具pycharm,数据库MySQL5.7。

技术应用:开源计算机视觉库opencv-python,开源人脸识别库face_recognition,使用PyQt5制作人脸识别以及考勤界面,dlib人脸检测技术,以及MySQLdb连接数据库。

功能介绍:

        第一步:录入,进入录入界面。调用摄像头检测识别人脸、输入姓名学号,人脸照片保存在faces文件夹中,姓名学号保存在数据库中。

        第二步:考勤,进入考勤界面。调用摄像头进行人脸识别,摄像头识别出人脸和人脸对应的名字。


二、功能展示

1.人脸识别功能测试

这是从网上随便找了一张图片识别静态人脸,成功。

调用摄像头识别动态人脸,成功

上述功能代码如下:

def a1():
    #加载图片
    img=face_recognition.load_image_file("1.jpeg")
    #检测脸部位置
    pos=face_recognition.face_locations(img)
    print("位置top,right,bottom,left",pos)
    for i in range(len(pos)):
        rect=pos[i]
        #绘制矩形
        cv2.rectangle(img,(rect[3],rect[0]),(rect[1],rect[2]),(0,0,220),2)
    #显示窗口
    cv2.imshow("",img)
    cv2.waitKey(0)
def a2():
    vd=cv2.VideoCapture(0)
    while True:
        #读取摄像头数据流
        ok,frame=vd.read()
        #矩阵子集
        facearea=frame[:,:,::-1]
        pos=face_recognition.face_locations(facearea)
        for(top,right,bottom,left) in pos:
            cv2.rectangle(frame,(left,top),(right,bottom),(0,200,0),2)
        cv2.imshow("",frame)
        cv2.waitKey(1)
    vd.release()
    cv2.destroyAllWindows()

2.识别并录入人脸及个人信息

此时人脸已经录入faces文件中,点击确定即可填写个人信息。

填写好信息,点击保存,信息即保存到数据库。

此时刚刚输入的账号和姓名已经保存到faces文件中,如下

(挡住了一点,但是能看到)

功能代码如下:

class LuruApp(UI_FaceRec):
    def __init__(self):
        super().__init__()
        self.running = True
        self.btn.setEnabled(False)
        self.face_encode = None
        self.open()
        self.face_img = None
        self.face_img_encode = ""

    def open(self):
        frame = np.zeros((500, 600, 3),