这是一个基于 Python 和 DeepFace 的桌面应用程序,提供了一个完整的、带图形用户界面(GUI)的人脸识别和管理解决方案。
该应用通过 pywebview 将一个基于 Flask 的后端服务和 HTML/JavaScript 的前端界面打包成一个独立的桌面应用,实现了跨平台的兼容性和原生应用般的体验。
- 实时识别:通过摄像头进行实时人脸检测和身份识别。
- 图片识别:支持上传本地图片文件进行人脸识别。
- 人脸注册:可通过摄像头捕捉或上传图片来注册新的人脸数据。
- 数据管理:提供了一个独立的管理页面,用于查看、重命名、删除已注册的人员及其照片。
- 一键训练:在管理页面,可以一键触发后台模型重建,该过程会从
known_faces文件夹自动整理源图片。 - 实时进度:模型重建过程通过 WebSocket 提供实时进度条和状态更新,不阻塞UI操作。
- 模糊搜索:在管理页面,可以根据姓名快速搜索和筛选已注册的人员。
- 后端: Python, Flask, Flask-SocketIO, DeepFace, TensorFlow, OpenCV
- 前端: HTML, CSS, JavaScript
- 桌面GUI: pywebview
- 打包: PyInstaller
. E:\work\face2025
├── 📂 deepface_db/ # 程序自动生成的人脸数据库
├── 📂 known_faces/ # (重要) 用于训练的源图片,按“姓名/图片”结构存放
├── 📂 server/ # 后端核心代码
│ ├── api.py # Flask API 和 SocketIO 服务
│ └── training.py # 模型训练和数据处理逻辑
├── edit.html # 人脸数据管理前端页面
├── index.html # 主程序前端页面
├── main.py # (重要) 程序主入口
├── README.md # 项目说明文件
└── requirements.txt # Python 依赖列表
-
准备环境: 建议创建一个 Python 虚拟环境。
-
安装依赖: 在项目根目录下,通过命令行安装所有必需的库。
pip install -r requirements.txt
-
准备数据: 将需要训练的人脸图片放入
known_faces文件夹。请为每个人创建一个以其姓名命名的子文件夹,并将该人的所有照片放入其中。例如:known_faces/张三/01.jpgknown_faces/张三/02.pngknown_faces/李四/photo.jpg
-
运行程序: 在项目根目录下,执行主文件。
python main.py
-
首次使用: 程序启动后,建议先进入“管理”页面,点击“开始重建模型”按钮,根据
known_faces文件夹中的数据生成初始模型。
如果您想将此项目打包成一个可执行的桌面应用程序(.exe 文件及相关数据),请执行以下步骤:
-
确保所有依赖已安装,特别是
pyinstaller。 -
在项目根目录下,运行以下命令:
pyinstaller face2025.spec
-
打包成功后,所有内容将位于
dist/face2025文件夹中。这个文件夹就是您的完整应用,可以被移动或压缩分发。