基于深度学习的人脸检测与识别系统

基于深度学习的人脸检测与识别系统

项目简介

本项目是一个基于 PyQt6 构建的桌面可视化检测系统,融合了 YOLO 目标检测与 DeepFace 人脸识别能力,支持图片、视频和摄像头等多种数据源输入,适用于人脸身份核验、目标检测展示、检测结果统计与历史记录管理等场景。

系统采用图形化界面设计,包含登录注册、室内检测、室外检测、身份验证和历史记录等功能模块,具备较好的交互性与实用性。

项目题目

基于YOLO的人脸检测与识别系统

功能特点

  • 支持用户登录与注册,默认提供管理员账号。
  • 支持图片检测,可查看目标检测结果、统计摘要和详细数据。
  • 支持视频检测,可按间隔帧执行识别并实时展示检测信息。
  • 支持摄像头检测,可进行实时识别、截图保存和会话统计。
  • 支持检测历史记录保存、查询、筛选、导出与清空。
  • 支持室外场景下的人脸身份验证。
  • 支持上传基准人脸图片,并与待检测图片或摄像头画面进行比对。
  • 支持模型路径加载与检测参数动态调整。

技术栈

  • Python
  • PyQt6
  • Ultralytics YOLO
  • OpenCV
  • NumPy
  • Pillow
  • Matplotlib
  • DeepFace
  • tf-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.pt
  • weights/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

总结

本项目实现了一个集目标检测、人脸识别、实时监控、结果统计与历史管理于一体的图形化智能检测系统。系统界面完整,功能较为丰富,适合作为课程设计、毕业设计、项目展示或二次开发的基础工程。

相关推荐
CoderJia程序员甲2 小时前
GitHub 热榜项目 - 日榜(2026-03-15)
人工智能·ai·大模型·github·ai教程
我材不敲代码2 小时前
Python 实战——红楼梦文本分析全流程:从分卷处理到分词再到TF-IDF 提取核心关键词
人工智能·自然语言处理·tf-idf
KIHU快狐2 小时前
KIHU快狐|RK3399系统户外触摸一体机强悍算力支持超清播放
大数据·人工智能·python
Flying pigs~~2 小时前
深度学习之人工神经网络总结
人工智能·深度学习·算法·ann·人工神经网络
郝学胜-神的一滴2 小时前
人工智能发展漫谈:从专家系统到AIGC,再探深度学习核心与Pytorch入门
人工智能·pytorch·python·深度学习·算法·cnn·aigc
江畔柳前堤2 小时前
XZ08_本地部署overleaf教程
人工智能·深度学习·eclipse·pyqt·信号处理
老杨_QQ1222090172 小时前
对量化交易未来的思考
人工智能·python·金融
feidaji2 小时前
ubuntu 20 安装openclaw
人工智能·aigc·ai编程