一、项目简介
本项目是基于 YOLO 人脸检测、InsightFace ArcFace 识别、MySQL 和 PyQt6 的本地应急管理桌面系统。面向工厂、工地、园区和看护等场景,支持人员注册、实时识别、陌生人告警、记录查询、人员管理、告警中心、日志审计和参数配置。
二、核心功能
- 登录注册:首次使用注册管理员账号
- 数据概览:注册人数、今日识别、陌生人脸、未处理告警和近 7 天趋势
- 实时监控:摄像头、视频文件、图片文件识别
- 人员注册:图片或摄像头当前帧注册
- 记录查询与告警处理
- 日志审计和系统参数配置








三、技术栈
| 层级 | 技术 | 说明 |
|---|---|---|
| 界面 | Python 3.9、PyQt6 | 桌面监控与管理 |
| 检测 | Ultralytics YOLO | 人脸定位 |
| 识别 | InsightFace、ArcFace | 512 维特征比对 |
| 数据 | MySQL 8.x、PyMySQL | 人员、日志和告警 |
| 推理 | PyTorch、ONNX Runtime、OpenCV | GPU/CPU 自动兜底 |
四、识别原理
YOLO 检出人脸框后,InsightFace 对齐,ArcFace 提取 512 维特征并做 L2 归一化,再与库内特征计算余弦相似度。高于阈值判定为已注册人员,否则记为陌生人并告警。
实时监控把显示帧和识别帧分开:画面高频刷新,完整识别默认 2 FPS,中间帧复用最近一次结果,避免重复写库和重复告警。
五、运行方式
bash
pip install -r requirements.txt
python main.py
可在 app/core/local_config.py 或系统设置页配置 MySQL、YOLO 权重、InsightFace 目录、设备和阈值。程序连接后自动建库建表。
默认 YOLO 权重:train_result/yolo_face/weights/best.pt
默认 InsightFace 目录:data/insightface
首次启动若无系统用户,会进入管理员注册页。登录后先看数据概览,再注册人员并打开实时监控。
六、交付内容
- PyQt6 桌面端完整源码和识别引擎
- YOLO 训练产物、InsightFace 模型与数据库自动建表
- 项目说明文档
本项目为个人原创,结构清晰,功能完整,适合课程设计、毕业设计和个人学习使用。如需购买项目成品或定制化需求可以联系作者。