Python | 人脸识别系统(人脸识别、活体检测、背景模糊、关键点检测)

GitHub源码:Su-Face-Recognition

一、运行环境

        本系统能够运行在基于PC操作系统Windows环境下,要求Windows操作系统安装Python 3.9 及以上环境,且已安装MySQL数据库。

Python3.9 安装:Python 3.9安装教程

MySQL 安装 :MySQL 8.0.26 安装教程

二、开发环境

1、开发语言

        本项目使用Python作为主要的开发语言。

2、开发工具

        前端:Qt-Designer

        后端:PyCharm

        数据库:Navicat

        包管理工具:Anacoda

PyCharm安装:PyCharm安装教程

Anacoda安装:Anaconda安装教程

Qt-Designer安装:Qt Designer安装教程

Qt-Designer使用:Qt Designer工具使用

Navicat安装:Navicat 安装教程

3、主要开发技术

(1)Dlib

        Dlib是一个机器学习的开源库,包含了机器学习的很多算法,使用起来很方便,直接包含头文件即可,并且不依赖于其他库(自带图像编解码库源码)。Dlib可以帮助创建很多复杂的机器学习方面的软件来帮助解决实际问题。目前Dlib已经被广泛的用在行业和学术领域,包括机器人,嵌入式设备,移动电话和大型高性能计算环境。

Python3.9以上安装Dlib:【Python】dlib 无需编译安装 dlib-19.23.0-cp39-cp39-win_amd64.whl_dlib cp39-CSDN博客

(2)OpenCV

        OpenCV是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法,其使用 C/C++ 开发,同时也提供了 Python、Java、MATLAB 等其他语言的接口。OpenCV的应用领域非常广泛,包括图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。OpenCV 还提供了机器学习模块,可以使用正态贝叶斯、K最近邻、支持向量机、决策树、随机森林、人工神经网络等机器学习算法。

OpenCV安装:OpenCV安装教程

(3)face_recognition

        face_recognition是一个强大、简单、易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,特别是兼容树莓派系统。face_recognition中的人脸识别模型来自开源的机器学习库Dlib,其中的大部分模型用Labeled Faces in the Wild人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。

安装前置条件:已安装dlib

face_recognition安装:face_recognition安装教程

face_recognition中文教程:face_recognition GitHub

(4)PyQt5

        Qt是一套C++库和开发工具,包括平台 图形用户界面、网络、线程、正则表达式、SQL 数据库、SVG、OpenGL、XML、用户和应用程序 设置、定位和定位服务、短程通信(NFC)和蓝牙)、网页浏览、3D 动画、图表、3D数据可视化和 与应用商店接口。

        而PyQt是一个GUI部件工具包,是Qt的一个Python接口,是最强大、最流行的跨平台GUI库之一。PyQt5 将Qt中的1000多个类实现为一组Python模块。

PyQt安装:PyQt5安装教程

PyQt5官网:QtWidgets — PyQt Documentation v5.15.4

(5)百度AI开放平台

        百度AI开放平台提供全球领先的语音、图像、NLP等多项人工智能技术,开放对话式人工智能系统、智能驾驶系统两大行业生态。其中的人脸识别技术基于深度学习,能够准确识别图片和视频流中的人脸信息,包含人脸检测与属性分析、人脸对比、人脸搜索、活体检测、人脸特效等能力。灵活应用于金融、泛安防、安全生产等行业场景,满足身份核验、人脸考勤、闸机通行、互动娱乐等业务需求。

百度AI开放平台:人脸识别__百度智能云 

三、功能概述

        本项目开发一套基于人脸识别技术的用户登录注册系统,可以分割为两大部分,分别是用户端程序、管理员端程序。

        用户端程序的功能包括用户注册、用户登录、用户登出3个主要功能,以及活体检测、人脸比对、精细分割、关键点检测4个辅助功能。

        管理员端程序的功能包括管理员登录、用户注销、用户解锁、历史记录4个主要功能。

1、以用户身份进入系统

(1)用户注册

        用户点击注册,将个人信息输入系统后,包括账号、密码、性别以及更多信息,系统自动捕获并计算当前用户的人脸信息,保存到数据库中。

(2)用户登录

        用户点击登录按钮,输入账号及密码后,系统通过查找数据库,返回是否通过信息验证。如果通过信息验证,系统对当前摄像头的用户进行活体检测以及人脸识别,最终确定是否成功登录。一旦某用户在进行登录操作时,活体检测或人脸识别失败超过3次以上,要求系统对当前用户的账号进行锁死,并弹出相应的警告。 

(3)用户登出

        用户点击登出,系统登出当前登录用户。

(4)活体检测

        用户点击活体检测,系统检测用户是否使用电子屏幕或者照片进行欺骗,随后系统要求用户按照系统提示完成指定的动作,包括左摇头、右摇头、眨眼、张嘴等。用户完成后提示通过活体检测。若用户超时,则中止活体检测,提示未通过活体检测。

(5)人脸对比

        用户点击人脸对比,选择任意两张带有人脸的jpg或者png格式图片。点击比对按钮后,系统确认是否是同一人。

(6)背景模糊 

        用户点击背景模糊,系统快速对用户人体部分进行识别,将背景进行模糊处理。

(7)姿态检测

        用户点击状态检测,系统快速对用户人体部分进行识别,将人的各个关键点进行标识,包括眼睛、嘴巴、躯干、四肢等。

2、以管理员身份进入系统

(1)管理员登录

        管理员点击管理员登录,输入账号、密码后,要求系统快速查询存储数据,并确定是否登录成功。

(2)用户解锁

        管理员点击用户解锁,输入需要解锁用户的账号、密码后,要求系统快速查询存储数据,并确定是否解锁成功。

(3)用户注销

        管理员点击用户解锁,输入需要注销用户的账号、密码后,要求系统快速查询存储数据,并确定是否注销成功。

(4)历史记录

        管理员点击历史记录,系统自动打开Excel表格,表格记录近一段时间登录当前系统的用户信息,包括登录时间、登录摄像头、用户姓名等。

四、代码详解

        1、UI代码

        2、用户端代码

        3、管理员端代码

        4、项目GitHub源码

GitHub完整源代码地址:人脸识别系统GitHub

项目结构:

  • 13
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: Python中有很多人脸识别的库,其中比较流行的是OpenCV和dlib。你可以使用它们来实现人脸检测、人脸识别和人脸表情识别等功能。下面是一个基本的人脸识别示例代码: ``` import cv2 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') cap = cv2.VideoCapture(0) while True: ret, img = cap.read() gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) cv2.imshow('img',img) k = cv2.waitKey(30) & 0xff if k == 27: break cap.release() cv2.destroyAllWindows() ``` 在上面的代码中,我们使用了OpenCV中的Haar Cascade分类器来检测人脸,并在检测到人脸时在图片上绘制一个矩形框。你可以根据具体需求进行修改和扩展。 ### 回答2: Python人脸识别是一种使用Python编程语言实现的人脸识别技术。它基于人脸的皮肤、底部特征点、眼部、鼻子、嘴巴等特征,通过各种算法实现人脸图像的识别和匹配。 Python人脸识别首先需要通过摄像头或者静态图像获取人脸图像。然后,利用Python的图像处理库,对图像进行预处理,将其转换为灰度图像。接下来,使用Python人脸识别库,如OpenCV或Dlib,对人脸图像进行特征提取,包括人脸的位置、大小和形状等信息。 在得到人脸特征后,Python人脸识别库会使用已经训练好的人脸识别模型进行匹配和识别。这个模型是使用大量的人脸图像进行训练得到的,可以根据输入的人脸特征与已知的人脸特征进行比对,从而找到最匹配的人脸。 Python人脸识别在很多领域都有广泛的应用。它可以用于人脸识别门禁系统、人脸支付、人脸考勤、人脸身份验证等场景。此外,它还可以用于人脸情绪识别、人脸表情分析等研究领域。 Python人脸识别的优势在于其简洁易用的编程语言,以及丰富的开源库支持。Python的语法简单明了,易于学习和使用。同时,有很多成熟的开源人脸识别库可以选择使用,节省了开发人员的时间和精力。 总的来说,Python人脸识别是一种强大而灵活的人脸识别技术。它通过Python编程语言,利用图像处理和机器学习算法,实现了对人脸图像的识别和匹配,并在多个领域有着广泛的应用前景。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值