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

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

项目简介

本项目是一个基于 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

总结

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

相关推荐
逸模6 小时前
告别熬夜手工整理台账,逸模智能归集实现项目数据自动化存档
大数据·运维·人工智能·笔记·其他·信息可视化·自动化
weixin_397574096 小时前
生产管理和设备管理:制造执行层的AI痛点
人工智能·制造
冬奇Lab6 小时前
Agent 系列(16):工具链设计——让 LLM 用对工具的五个原则
人工智能·llm·agent
冬奇Lab6 小时前
每日一个开源项目(第125篇):taste-skill - 给 AI 装上审美,让前端不再千篇一律
人工智能·开源·agent
Ajie'Blog7 小时前
Copilot Agent Tasks API 开放:AI 编程开始进入后台任务时代
服务器·前端·javascript·人工智能·copilot·ai编程
SEONIB_Explorer7 小时前
AI SEO 与传统SEO成本对比:哪种更划算?
人工智能
一次旅行7 小时前
AI领域每日资讯报告
人工智能
Python私教7 小时前
Cursor + Claude Code 全流程实战:搭一套生产级 AI 编程工作流(2026 最新版)
人工智能·语言模型·qwen·ollama·本地大模型·大模型部署·deepseek
来让爷抱一个7 小时前
MonkeyCode 的 Git 协作功能:团队开发新范式
人工智能·ai编程