match_face/README.md

121 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 项目结构
一个用于人脸识别的系统,使用了 Flask 作为 Web 框架,并结合了 SQLite 数据库进行数据存储。
### 目录结构
```
.
├── .venv # Python 虚拟环境
├── captured_faces # 用于保存捕获的人脸照片
├── db_image # 数据库添加的测试照片
├── templates # 存放 HTML 模板文件
├── app.py # Flask 应用主程序
├── face_database.db # SQLite 数据库文件
├── match_log.txt # 匹配记录日志文件
├── requirements.txt # 项目依赖的 Python 包
├── scanf_face.py # 人脸捕捉与匹配脚本
└── run_programs.py # 启动多个程序的脚本
```
## 主要组件
### 1. `.venv`
包含项目所需的 Python 虚拟环境。确保在激活虚拟环境后运行项目,以便使用正确的依赖包。
### 2. `captured_faces`
用于存储捕获到的人脸图像。这些图像将用于与数据库中的人脸进行匹配。
### 3. `db_image`
包含用于数据库测试的人脸照片。用于初始化数据库中的人脸记录。
### 4. `templates`
包含 HTML 模板文件。用于 Flask 应用的网页渲染。
### 5. `app.py`
Flask 应用的主程序,提供 Web 界面来展示匹配记录。它还使用 Socket.IO 实时更新数据。
### 6. `face_database.db`
SQLite 数据库文件,存储人脸编码和匹配记录。该数据库用于存储已知的人脸信息和匹配日志。
### 7. `match_log.txt`
记录人脸匹配的日志文件。每当检测到匹配时,将记录匹配信息到该文件中。
### 8. `requirements.txt`
列出项目的所有 Python 依赖包。可以使用 `pip install -r requirements.txt` 安装所需的库。
### 9. `scanf_face.py`
人脸捕捉和匹配脚本。通过摄像头捕捉人脸图像,并与数据库中的人脸进行匹配。
### 10. `run_programs.py`
脚本用于同时启动 `app.py``scanf_face.py` 两个程序。通过该脚本可以方便地管理多个程序的启动。
## 启动项目
### 1. 安装依赖
双击安装当前目录下/cmake-3.30.2-window-x86_64.msi文件
确保你已经安装了项目所需的依赖包。可以使用以下命令:
```bash
pip install -r requirements.txt
```
### 2. 启动程序
- 一定要向数据库中添加图片在scanf_face.py中
- 第一次启动会创建数据库和logs文件
``` python
# 向数据库中添加人脸
add_face_to_database("李四", "快递", "./stctic/db_image/test1.jpg")
add_face_to_database("张三", "居民", "./stctic/db_image/test2.jpg")
add_face_to_database("王五", "居民", "./stctic/db_image/test3.jpg")
```
使用 `run_programs.py` 脚本同时启动 Flask 应用和人脸捕捉脚本:
```bash
python run_programs.py
```
### 3. 访问 Web 应用
在浏览器中访问 `http://localhost:5000` 查看 Flask 应用,监控匹配记录
![logs](./doc/doc_image/logs.jpg)
![](./doc/doc_image/database.jpg)
### 4. 捕捉和匹配人脸
`scanf_face.py` 脚本会持续通过摄像头捕捉人脸图像,并与数据库中的人脸进行匹配。当检测到匹配时,会更新数据库和日志文件。
## 代码概述
### `app.py`
- **功能**:提供 Web 界面显示匹配记录,使用 Socket.IO 实时更新数据。
- **主要路由**`/` - 显示匹配记录。
### `scanf_face.py`
- **功能**:通过摄像头捕捉人脸,生成编码并与数据库中的人脸进行匹配。
- **主要功能**
- 捕捉图像并保存到 `captured_faces` 目录。
- 与数据库中的人脸编码进行匹配。
- 记录匹配结果到 `match_log.txt` 和数据库。
### `run_programs.py`
- **功能**:同时启动 `app.py``scanf_face.py` 两个程序。
- **主要功能**
- 使用 `subprocess` 模块启动并管理多个进程。
## 注意事项
- 确保虚拟环境已激活并安装了所有依赖。
- 确保摄像头正常工作且能够捕捉到图像。
- 数据库和日志文件将会随着时间不断增加,请定期检查和维护这些文件。
- 需要单独安装cmake
---
联系我 sairate@sina.cn