littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于TensorFlow 2的MTCNN人脸检测系统

项目简介

本项目是基于TensorFlow 2的人脸检测系统,完整实现了MTCNN(Multi-task Cascaded Convolutional Networks)算法,涵盖模型搭建、数据集加载与预处理、模型训练、人脸框检测及关键点标注。支持图片和摄像头实时检测,适用于Python 3.7及以上版本。

项目的主要特性和功能

  1. 人脸检测与关键点标注:利用MTCNN算法检测图片人脸并标注5个关键点。
  2. 数据集预处理:支持WIDERFace和Cascade数据集预处理以生成训练数据。
  3. 多网络结构:包含PNet、RNet和ONet三个网络,分别用于初步检测、精细调整和关键点定位。
  4. 训练与预测:提供完整训练和预测脚本,支持从图片和摄像头获取输入。

安装使用步骤

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】