一、项目简介
本项目是前后端分离的会议签到系统。架构为 FastAPI + Vue 3 + MySQL,识别分两阶段:先用 WIDER FACE 训练的 YOLO 做人脸检测,再用 MobileFaceNet 提取特征并完成身份匹配。
用户前台用于登录、查看会议、人脸注册、在线签到和补签申诉;管理员后台用于人员、会议、签到记录、补签审核、公告、模型配置和统计。
二、技术栈
| 模块 | 技术 |
|---|---|
| 后端 | FastAPI、SQLAlchemy、MySQL |
| 前端 | Vue 3、Element Plus、Axios |
| 检测 | YOLO / Ultralytics |
| 识别 | MobileFaceNet ONNX |
| 推理 | PyTorch、ONNXRuntime、OpenCV、NumPy |
识别流程:摄像头采集 → FastAPI 收图 → YOLO 检测人脸 → 裁剪 → MobileFaceNet 提特征 → 与注册特征算余弦相似度 → 生成签到结果。
三、核心功能
用户前台
注册登录、会议概览、人脸注册、在线签到、签到记录、补签申诉。
管理员后台
数据总览、人员管理、会议管理、签到查询、补签审核、模型路径和阈值配置、通知公告。
四、算法说明
YOLO 使用 WIDER FACE 单类别face数据训练,产物在train_result/yolo_face/,默认权重weights/best.pt。MobileFaceNet 使用mobilefacenet.onnx,默认相似度阈值 0.60,可在后台修改。
五、运行方式
默认数据库:
mysql+pymysql://root:123456@127.0.0.1:3306/face_meeting_system?charset=utf8mb4启动后自动建表,默认管理员admin / 123456。
后端:
cdbackend pipinstall-rrequirements.txtcd..$env:PYTHONPATH="backend"uvicorn app.main:app--host0.0.0.0--port8000前端:
cdfrontendnpminstallnpmrun dev前端默认http://127.0.0.1:5173,接口代理到8000。
训练 YOLO:
python train_yolo.py--modelyolov8n.pt--epochs100--batch16--device0六、使用流程
管理员创建人员与会议、确认模型路径,再处理签到和补签。用户注册后先做人脸采集,再对会议在线签到,失败可提交补签申诉。
七、交付内容
- FastAPI 后端、Vue 前端和识别服务完整源码
- YOLO 训练产物、MobileFaceNet 模型和数据库配置
- 项目说明文档
本项目为个人原创,结构清晰,功能完整,适合课程设计、毕业设计和个人学习使用。如需购买项目成品或定制化需求可以联系作者。
个人网址:https://michael-jay.pages.dev/