目录
四、需要源码私信并call邮箱lij867967@gmail.com
一、项目简介
本项目使用编程语言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), np.uint8)
img = Image.fromarray