本博客为人脸识别系统项目简介

项目GitHub完整源代码地址:Su-Face-Recognition: A face recognition for user logining

一、运行环境

本系统能够运行在基于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代码

  • UI界面设计:Python | 人脸识别系统 — UI界面设计
  • UI事件处理:Python | 人脸识别系统 — UI事件处理

2、用户端代码

  • 基本功能

    • 人脸识别:Python | 人脸识别系统 — 人脸识别
    • 活体检测:Python | 人脸识别系统 — 活体检测
    • 背景模糊:Python | 人脸识别系统 — 背景模糊
    • 姿态检测:Python | 人脸识别系统 — 姿态检测
    • 人脸比对:Python | 人脸识别系统 — 人脸比对
  • 综合功能
    • 用户操作:Python | 人脸识别系统 — 用户操作

3、管理员端代码

  • 管理员操作:MySQL 8.0.26 安装教程

4、项目GitHub源码

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

项目结构:

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

  1. 人脸识别系统中的活体检测技术有哪些分类

    人脸识别系统在实际应用中会面对照片.视频.面具等道具攻击,为了这防止这些欺诈手段,在系统中应用到活体检测,检测识别的人员是否为活体,提高应用的安全性.由畅视智能与你分享应用到人脸识别系统中的活体检测技 ...

  2. Python | 人脸识别系统 — 人脸比对 代码部分

    本博客为人脸识别系统的人脸比对代码解释 人脸识别系统博客汇总:人脸识别系统-博客索引 项目GitHub地址:Su-Face-Recognition: A face recognition for us ...

  3. Python | 人脸识别系统 — 人脸识别

    博客汇总:Python | 人脸识别系统 - 博客索引 GitHub地址:Su-Face-Recognition 注:阅读本博客前请先参考 工具安装.环境配置:Python | 人脸识别系统 - 简介 ...

  4. Coding-Party 基于飞桨的农作物智能识别系统病虫害识别

    目录 Coding-Party 基于飞桨的农作物智能识别系统 病虫害识别 Coding-Party 基于飞桨的农作物智能识别系统 联合国粮食及农业组织最近的一份报告表明,每年农业生产的自然损失中有三分 ...

  5. 微信小程序之百度人脸识别系统-人脸登录前后端代码

    前面写了人脸注册的功能.现在再来实现人脸登录的功能就要简单得多了,还是先上PHP部分的代码: PHP代码(搜索人脸库并返回对比结果) <?php date_default_timezone_se ...

  6. 基于深度学习的人脸检测和关键点检测推理实践(OpenCV实现,含代码)

    目录 一.任务概述 二.环境准备 三.实现步骤 3.1 Python推理 3.2 C++推理 3.2.1 环境准备 3.2.2 推理 3.3 Java推理 一.任务概述 最近项目中大量场景需要用到人脸 ...

  7. 【OpenCV+Qt】使用车牌识别系统EasyPR识别车牌号

    EasyPR是一个中文的开源车牌识别系统,其车牌识别划分为了两个过程:即车牌检测(Plate Detection)和字符识别(Chars Recognition)两个过程: 车牌检测(Plate De ...

  8. 深度学习自学(二十一):连续保存人脸检测、关键点检测后人脸状态-循环队列实现

    整理的人脸系列学习经验:包括人脸检测.人脸关键点检测.人脸优选.人脸对齐.人脸特征提取等过程总结,有需要的可以参考,仅供学习,请勿盗用.https://blog.csdn.net/TheDayIn_C ...

  9. Python+OpenCV+OpenPose实现人体姿态估计(人体关键点检测)

    目录 1.人体姿态估计简介 2.人体姿态估计数据集 3.OpenPose库 4.实现原理 5.实现神经网络 6.实现代码 1.人体姿态估计简介 人体姿态估计(Human Posture Estimat ...

  10. tensorflow入门教程(三十五)facenet源码分析之MTCNN--人脸检测及关键点检测

    # #作者:韦访 #博客:https://blog.csdn.net/rookie_wei #微信:1007895847 #添加微信的备注一下是CSDN的 #欢迎大家一起学习 # ------韦访 2 ...

最新文章

  1. 派生类参数初始化列表和基类构造函数顺序
  2. Node.js:Web模块、文件系统
  3. 【opencv】opencv在图片、视频嵌中英文字符的方法
  4. 3.1HTML5样式的使用
  5. 认识 react 的钩子函数
  6. 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python文件)
  7. 数字取证Linux发行版,Parrot 4.2.2 发布,数字取证Linux发行版
  8. git clone的速度慢到难以忍受问题的解决方法~
  9. python自定义模块的使用_python自定义模块使用说明
  10. 20180914 文件和目录的权限以及属性
  11. 收获,不止oracle
  12. hp打印机一直显示正在打印中_安装惠普打印机出现“新设备现已连接”一直不动怎么办?...
  13. bootice添加linux_如何使用老毛桃winpe的Bootice工具还原SYSLINUX引导程序?
  14. ios android 系统占用空间,iOS 系统占用了 20G 储存空间?别担心,教你快速解决!...
  15. tnsping能成功却连不到目标数据库
  16. SEO 搜索引擎优化 详解
  17. python 自然语言处理 形态学
  18. 纯HTML+JS实现跑酷游戏
  19. 性格内向,不爱说话的人,是如何一步步成为领导的
  20. 微软Fundamentals认证:AZ-900、AI-900、DP-900、MS-900、MB-910、MB-920、PL-900、SC-900介绍

热门文章

  1. C#面向对象程序设计课程实验四:实验名称:C#面向对象程序设计基础
  2. 数字化技术战略:技术产品化运营
  3. iOS12.4屏蔽系统更新的办法
  4. 朋友圈小霸王游戏机,领取链接和源码找回青春记忆
  5. 你有提桶跑路的勇气吗?
  6. c++ :override的用法
  7. 递归使用案例:输出对称图形
  8. Echarts自适应窗口大小的变化
  9. 自主可控时代,国产商用密码将何去何从?
  10. c++ typename用法