写在前面
MTCNN 是人脸检测模型
代码 欢迎star
论文地址
本程序参考了kuaikuaikim/DFace,非常感谢。我修复了程序在训练上会出现的一些bug,并增加了模型在训练时的学习率变化表,优化了训练参数。并在WiderFace验证集上进行测试,发现我训练的模型权重性能优于他们本来提供的模型权重。
测试图
WiderFace验证集测试结果
其中MTCNN-original为原来权重参数的测试结果
MTCNN-trained为我训练的权重参数的测试结果
Style | easy | medium | hard |
---|---|---|---|
MTCNN-original | 65.3% | 65.1% | 40.3% |
MTCNN-trained | 71.4% | 70.4% | 43.2% |
MTCNN网络结构
环境要求
1.pytorch
2.opencv
测试
单张图
修改程序中图片路径
python detect.py
训练
下载widerface
图片文件按以下目录放置
./data_set/face_detection/
WIDER_train/
images/
WIDER_val/
images/
标签文件我已经制作好
./anno_store/anno_train.txt
标签文件的内容为
图片路径 左上x 左上y 右下x 右下y
如果图片有多个框则
图片路径 左上x 左上y 右下x 右下y 左上x 左上y 右下x 右下y 。。。。
当然你可以自己制作标签文件
参考程序在
./anno_store/tool/change.py
训练pnet
准备pnet数据
python mtcnn/data_preprocessing/gen_Pnet_train_data.py
python mtcnn/data_preprocessing/assemble_pnet_imglist.py
训练pnet
python mtcnn/train_net/train_p_net.py
准备rnet数据
python mtcnn/data_preprocessing/gen_Rnet_train_data.py
python mtcnn/data_preprocessing/assemble_rnet_imglist.py
训练rnet
python mtcnn/train_net/train_r_net.py
准备onet数据
python mtcnn/data_preprocessing/gen_Onet_train_data.py
python mtcnn/data_preprocessing/assemble_onet_imglist.py
训练onet
python mtcnn/train_net/train_o_net.py
测试widerFace val
python wildface_test.py