人脸识别系统

本文涉及的产品
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 人脸识别系统

项目简介


在文件夹中上传自己的图片,对自己的图片进行训练,得到训练后的yml文件。调用yml文件,配合人脸数据集,识别电脑摄像头中的人脸,判断是否是自己。如果置信评分符合要求,则将向数据库插入一条数据,数据包括检测成功时间。


训练数据


图片的命名要求是数字,放在这个地址下面

path='./data/mydata/'

然后运行python程序,就得到trainer文件夹下trainer1.yml文件。


1. import os
2. import cv2
3. import sys
4. from PIL import Image
5. import numpy as np
6. def getImageAndLabels(path):
7.     facesSamples=[]
8.     ids=[]
9.     imagePaths=[os.path.join(path,f) for f in os.listdir(path)]
10. #检测人脸
11.     face_detector = cv2.CascadeClassifier(
12. './haarcascade/haarcascade_frontalface_default.xml')
13. 
14. #遍历列表中的图片
15. for imagePath in imagePaths:
16. #打开图片
17.         PIL_img=Image.open(imagePath).convert('L')
18. #将图像转换为数组
19.         img_numpy=np.array(PIL_img,'uint8')
20.         faces = face_detector.detectMultiScale(img_numpy)
21. #获取每张图片的id
22. id=int(os.path.split(imagePath)[1].split('.')[0])
23. for x,y,w,h in faces:
24.             facesSamples.append(img_numpy[y:y+h,x:x+w])
25.             ids.append(id)
26. return facesSamples,ids
27. 
28. if __name__ == '__main__':
29. #图片路径
30.     path='./data/mydata/'
31. #获取图像数组和id标签数组
32.     faces,ids=getImageAndLabels(path)
33. #获取训练对象
34.     recognizer=cv2.face.LBPHFaceRecognizer_create()
35.     recognizer.train(faces,np.array(ids))
36. #保存文件
37.     recognizer.write('trainer/trainer1.yml')

检测摄像头中的人脸并插入数据库


我们这里先建立了与本地数据库的连接,然后定义了插入数据库的函数。同时编写了人脸检测的函数,如果得到的置信评分小于60,我们认为检测到了正确的人,则调用插入数据库的函数。

主函数中调用了电脑内置摄像头,将图片传给人脸检测函数。


1. 
2. import cv2 as cv
3. import time
4. import pymysql
5. 
6. id = 5
7. def insert_sql():
8. # 建立连接
9.     conn = pymysql.connect(
10.         host="localhost",
11. # host="192.168.1.112",
12.         user="root",  # 用户名
13.         passwd="youpassword",  # 用户密码
14.         db="检测小车")  # 数据库名
15. 
16. global id
17. # 创建游标,默认是元组型
18.     cursor = conn.cursor()
19. # sql = "select * from t_plane"#数据库中表的名
20.     sql = '''INSERT INTO t_plane(id,x,y) VALUES(num,7,2);'''  # 数据库中表的名
21.     sql = sql.replace("num", str(id))
22.     cursor.execute(sql)
23.     conn.commit()
24. id += 1
25.     cursor.close()
26.     conn.close()
27. 
28. 
29. # 加载训练数据集文件
30. recogizer=cv.face.LBPHFaceRecognizer_create()
31. recogizer.read('trainer/trainer1.yml')
32. 
33. # 加载特征数据
34. face_detector = cv.CascadeClassifier(
35. './haarcascade/haarcascade_frontalface_default.xml')
36. 
37. def face_detect_demo(img):
38. #将图片灰度
39.     gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
40.     faces = face_detector.detectMultiScale(gray)
41.     ans = []
42. for x, y, w, h in faces:
43.         cv.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
44. # 人脸识别
45. id, confidence = recogizer.predict(gray[y:y + h, x:x + w])
46. # print('标签id:', id, '置信评分:', confidence)
47. print(confidence)
48.         ans.append(confidence)
49. 
50.     cv.namedWindow('result', 0)
51.     cv.resizeWindow('result', 600, 500)
52.     cv.imshow('result', img)
53. 
54. if ans == []:
55. return
56. elif min(ans) < 60:
57. print("符合标准")
58.         insert_sql()
59.         time.sleep(1)
60. 
61. #读取视频
62. # cap=cv.VideoCapture('video.mp4')
63. # cap=cv.VideoCapture('test.mp4')
64. cap= cv.VideoCapture(0)  # 0为电脑内置摄像头
65. 
66. while True:
67. # cap = cv.VideoCapture(0)
68.     flag,frame=cap.read()
69. # print('flag:',flag,'frame.shape:',frame.shape)
70. if not flag:
71. break
72. # cv.imshow("video", frame)
73.     face_detect_demo(frame)
74. if ord('q') == cv.waitKey(10):
75. break
76. 
77. cv.destroyAllWindows()
78. cap.release()


项目地址


人脸识别系统: 人脸识别系统

目录
相关文章
|
7月前
|
机器学习/深度学习 监控 算法
m基于深度学习网络的活体人脸和视频人脸识别系统matlab仿真,带GUI界面
m基于深度学习网络的活体人脸和视频人脸识别系统matlab仿真,带GUI界面
100 0
|
7月前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
246 7
|
7月前
|
算法 安全 搜索推荐
深入浅出:使用Python实现人脸识别系统
在当今数字化时代,人脸识别技术已成为安全验证、个性化服务等领域的关键技术。本文将引导读者从零开始,逐步探索如何利用Python和开源库OpenCV来构建一个基础的人脸识别系统。本文不仅会详细介绍环境搭建、关键算法理解,还会提供完整的代码示例,帮助读者理解人脸识别的工作原理,并在实际项目中快速应用。通过本文,您将能够掌握人脸识别的基本概念、关键技术和实现方法,为进一步深入学习和研究打下坚实的基础。
|
4月前
|
数据安全/隐私保护
数据安全用户系统问题之实人认证信息在用户模型中体现的如何解决
数据安全用户系统问题之实人认证信息在用户模型中体现的如何解决
|
4月前
|
机器学习/深度学习 人工智能 监控
利用Python和OpenCV实现实时人脸识别系统
【8月更文挑战第31天】本文将引导您了解如何使用Python结合OpenCV库构建一个简易的实时人脸识别系统。通过分步讲解和示例代码,我们将探索如何从摄像头捕获视频流、进行人脸检测以及识别特定个体。本教程旨在为初学者提供一条明晰的学习路径,帮助他们快速入门并实践人脸识别技术。
|
7月前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
560 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
5月前
|
机器学习/深度学习 人工智能 计算机视觉
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
|
6月前
|
机器学习/深度学习 监控 算法
使用Python和OpenCV实现简单的人脸识别系统
使用Python和OpenCV实现简单的人脸识别系统
77 0
|
7月前
|
机器学习/深度学习 监控 算法
利用深度学习技术实现人脸识别系统
人脸识别技术在当今社会得到了广泛应用,其中深度学习算法的发展为人脸识别系统的性能提升提供了强大支持。本文将介绍如何利用深度学习技术构建一个高效的人脸识别系统,包括数据准备、模型选择、训练过程和系统部署等方面的内容。

热门文章

最新文章

下一篇
DataWorks