(配置项目环境前,电脑环境需要安装好Anaconda3)
1.
下载项目地址:
git clone https://github.com/wangbm/MTCNN-Tensorflow.git



先使用命令创建MTCNN虚拟环境:
conda create --name MTCNN python=3.6



进入 MTCNN虚拟环境,conda deactivate退出 MTCNN虚拟环境:
source activate MTCNN

退出环境:
source deactivate MTCNN
(这是在ubuntu环境下操作,windows去掉source即可)



安装Tensorflow:
pip install tensorflow-gpu==1.3.0
安装opencv:
conda install opencv

5.运行tensorflow如果有numpy警告出现, 卸载装好的numpy: pip uninstall numpy
从新安装合适版本: pip install numpy==1.13.0

(安装中如果出错,可以卸载,推荐重装所有安装使用conda 安装,因为Anaconda 会自动更新重装关联库)
将文件中的tools.py文件拷贝到prepare_data文件夹下
不然会出现无法找到文件的错误)



下载Wider Face 数据集
可以从官方网站下载Wider Face Training部分并解压缩替换WIDER_train这个文件夹



进入prepare_data文件夹中:
生成P-Net的训练数据
命令行运行 python gen_shuffle_data.py 12
(gen_shuffle_data.py,参数设置为12,生成P-Net的训练数据(注意数据集地址)
运行 gen_tfdata_12net.py,生成对应的 tfrecords 数据格式文件(如果电脑配置不好,源码中size改小一些)



进入src文件夹中:
Step 3 训练P-Net
运行 mtcnn_pnet_test.py,训练P-Net



生成R-Net的训练数据
运行 tf_gen_12net_hard_example.py(更改 default=’…/save_model/seperate_net/pnet/pnet-3000000’,其中eperate_net需要注意地址,不然报错)



命令行运行 python gen_shuffle_data.py 24
(参数设置为24)
运行 gen_tfdata_24net.py,合并数据并生成对应的 tfrecords 数据格式文件(如果电脑配置不好,源码中size改小一些)



训练R-Net
运行mtcnn_rnet_test.py,训练R-Net



生成O-Net的训练数据
运行 gen_24net_hard_example.py
命令行运行 python gen_shuffle_data.py 48
(参数设置为48)
运行 gen_tfdata_48net.py,合并数据并生成对应的 tfrecords 数据格式文件(如果电脑配置不好,源码中size改小一些)



训练O-Net
运行mtcnn_onet_test.py,训练O-Net



测试
运行 test_img.py,参数接你的图片路径和模型路径

说明
1.其中PNet在训练阶段的输入尺寸为12乘12,RNet的输入尺寸为24乘24, ONet的输入尺寸为48乘48.
2.P-Net、R-Net、O-Net分别训练,先训练P-Net,R-Net根据训练的P-Net生成hard样本再训练,O-Net同理。
3.以上的训练过程中生成的hard样本依然是根据原作者的模型,如果使用自己训练的模型,记得修改参数路径