基于深度学习的人脸检测与识别系统
项目简介
本项目是一个基于 PyQt6 构建的桌面可视化检测系统,融合了 YOLO 目标检测与 DeepFace 人脸识别能力,支持图片、视频和摄像头等多种数据源输入,适用于人脸身份核验、目标检测展示、检测结果统计与历史记录管理等场景。
系统采用图形化界面设计,包含登录注册、室内检测、室外检测、身份验证和历史记录等功能模块,具备较好的交互性与实用性。
项目题目
基于YOLO的人脸检测与识别系统
功能特点
- 支持用户登录与注册,默认提供管理员账号。
- 支持图片检测,可查看目标检测结果、统计摘要和详细数据。
- 支持视频检测,可按间隔帧执行识别并实时展示检测信息。
- 支持摄像头检测,可进行实时识别、截图保存和会话统计。
- 支持检测历史记录保存、查询、筛选、导出与清空。
- 支持室外场景下的人脸身份验证。
- 支持上传基准人脸图片,并与待检测图片或摄像头画面进行比对。
- 支持模型路径加载与检测参数动态调整。
技术栈
PythonPyQt6Ultralytics YOLOOpenCVNumPyPillowMatplotlibDeepFacetf-keras
系统模块
1. 登录注册模块
-
用户可通过登录界面进入系统。
-
支持新用户注册。
-
用户信息保存在项目根目录的
users.json文件中。 -
默认账号如下:
用户名:admin
密码:123456
2. 室内检测模块
- 支持图片、视频、摄像头三种检测方式。
- 可对目标进行检测、显示类别、置信度和坐标信息。
- 支持结果导出与检测历史保存。
- 支持"走失检测"提示逻辑。
3. 室外检测模块
- 支持图片、视频、摄像头三种数据源。
- 基于 YOLO 模型完成室外目标检测。
- 支持实时统计、截图保存和检测历史记录。
- 可与身份验证功能联动使用。
4. 人脸身份验证模块
- 支持上传个人基准照片。
- 支持上传待验证图片进行人脸比对。
- 支持摄像头实时人脸验证。
- 基于
DeepFace提取人脸特征并计算相似度。 - 可输出身份一致或身份不符的验证结果。
5. 历史记录模块
- 自动保存图片、视频和摄像头检测记录。
- 支持按照关键词和类型筛选历史数据。
- 支持导出 CSV。
- 历史数据默认保存在
history/detection_history.json。
项目结构
c141/
├── main.py # 程序入口
├── main_window.py # 主窗口
├── login_window.py # 登录/注册窗口
├── config.py # 全局配置
├── requirements.txt # 依赖列表
├── users.json # 用户数据
├── core/
│ ├── detector.py # 室内检测核心
│ ├── outdoor_detector.py # 室外检测核心
│ └── face_recognizer.py # 人脸识别核心
├── pages/
│ ├── image_page.py # 室内检测页面
│ ├── outdoor_page.py # 室外检测与身份验证页面
│ └── history_page.py # 历史记录页面
├── history/
│ └── detection_history.json # 检测历史
└── weights/ # 模型权重目录
运行环境
建议使用以下环境:
Python 3.10或以上Windows 10/11- 已安装可用的摄像头设备(如需实时检测)
安装步骤
1. 克隆或下载项目
将项目文件放到本地目录后,进入项目根目录。
2. 安装依赖
pip install -r requirements.txt
3. 准备模型文件
程序默认会从 weights 目录读取模型文件:
weights/best1.ptweights/best2.pt
如果默认路径下没有模型文件,也可以在图形界面的"模型设置"中手动选择并加载模型。
4. 启动项目
python main.py
使用说明
1. 登录系统
启动后进入登录界面,输入账号密码即可进入主界面。
2. 加载模型
进入系统后,可在对应页面点击"模型设置",选择模型文件并加载,同时调整:
- 置信度阈值
- IoU 阈值
- 最大检测数
3. 执行检测
根据需要选择以下方式:
- 图片检测
- 视频检测
- 摄像头检测
系统会在界面中显示检测结果、目标数量、类别统计和详细信息。
4. 人脸验证
在"室外检测"页面中可进入"身份验证"功能:
- 上传个人基准照片
- 选择待验证图片
- 或开启摄像头进行实时验证
系统会输出相似度结果,并判断是否匹配。
5. 查看历史记录
进入"检测历史"页面后,可查看系统自动保存的历史检测信息,并支持导出 CSV。
结果输出
系统支持以下结果输出方式:
- 检测结果图片导出
- 检测明细 CSV 导出
- 摄像头截图保存
- 检测历史记录保存
注意事项
- 首次使用
DeepFace时,可能会自动下载模型权重,请保持网络畅通。 - 若摄像头无法打开,请检查设备是否被其他程序占用。
- 若模型无法加载,请确认模型文件路径正确,且文件格式为
.pt或.pth。 users.json中保存的是本地账号信息,当前版本未对密码进行加密处理。- 历史记录文件会持续累积,必要时可在系统中手动清空。
依赖列表
项目当前依赖如下:
PyQt6
ultralytics
opencv-python
numpy
matplotlib
Pillow
deepface
tf-keras
总结
本项目实现了一个集目标检测、人脸识别、实时监控、结果统计与历史管理于一体的图形化智能检测系统。系统界面完整,功能较为丰富,适合作为课程设计、毕业设计、项目展示或二次开发的基础工程。















