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

项目结构:

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐