项目简介
本项目是基于TensorFlow 2的人脸检测系统,完整实现了MTCNN(Multi-task Cascaded Convolutional Networks)算法,涵盖模型搭建、数据集加载与预处理、模型训练、人脸框检测及关键点标注。支持图片和摄像头实时检测,适用于Python 3.7及以上版本。
项目的主要特性和功能
- 人脸检测与关键点标注:利用MTCNN算法检测图片人脸并标注5个关键点。
- 数据集预处理:支持WIDERFace和Cascade数据集预处理以生成训练数据。
- 多网络结构:包含PNet、RNet和ONet三个网络,分别用于初步检测、精细调整和关键点定位。
- 训练与预测:提供完整训练和预测脚本,支持从图片和摄像头获取输入。
安装使用步骤
1. 环境安装
确保安装Python 3.7及以上版本,并安装以下依赖库:
bash
pip install tensorflow-gpu
pip install opencv-python
pip install tqdm
2. 使用方法
- 图片检测:
通过命令行运行以下命令,检测指定路径下的图片:
bash python -m mtcnn.detect [图片路径]
可包含多张图片,程序将循环检测并输出结果。 - 摄像头实时检测:
运行以下命令,调用摄像头进行实时人脸检测:
bash python camera_demo.py
3. 目录结构
mtcnn/
:包含MTCNN模型的实现文件。prepare_data/
:包含数据集预处理的脚本。results/
:存放检测结果图片。camera_demo.py
:摄像头实时检测脚本。detect.py
:图片检测脚本。
4. 训练数据
使用WIDERFace和Cascade数据集进行预处理,生成训练数据,数据预处理脚本位于prepare_data/
目录下。
5. 网络结构
网络结构定义在mtcnn/model.py
中,使用TensorFlow的Keras API实现。
6. 训练过程
训练脚本位于mtcnn/train.py
,支持PNet、RNet和ONet的训练,训练过程中需注意各个网络的损失函数和训练权重。
7. 预测阶段
预测脚本位于mtcnn/detect.py
,支持图片和摄像头输入,通过调节net=[1,2,3]
的值,可选择不同网络的输出。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】