MTCNN训练GitHub:MTCNN-GitHub
MTCNNpaper:paper
下载数据集
wider face数据集下载→wider face该数据集包含32,203 images and label 393,703 faces,但是该GitHub的作者只用其中一部分数据(12880images)去训练人脸检测。
landmark数据集下载→landmark训练数据该数据有训练和测试两个数据集,其中训练数据有10000张不同人脸图片以及landmark的坐标标记信息,测试数据有3000多张不同人脸图片以及landmark标记。
生成PNet训练数据pos,neg,part三部分数据
运行GitHub中的prepare_data/gen_12net_data.py,代码如下
在这里一定要规划好图片存放的路径以及生成文件存放的路径,因为后续的训练会用到
#coding:utf-8
import os
import cv2
import numpy as np
import numpy.random as npr
from prepare_data.utils import IoU
anno_file = "wider_face_train.txt"#这是人脸图片路径以及人脸框的坐标
im_dir = "DATA/images"
pos_save_dir = "DATA/12/positive"
part_save_dir = "DATA/12/part"
neg_save_dir = 'DATA/12/negative'
save_dir = "DATA/12"
if not os.path.exists(save_dir):
os.mkdir(save_dir)
if not os.path.exists(pos_save_dir):
os.mkdir(pos_save_dir)
if not os.path.exists(part_save_dir):
os.mkdir(part_save_dir)
if not os.path.exists(neg_save_dir):
os.mkdir(neg_save_dir)
f1 = open(os.path.join(save_dir, 'pos_12.txt'), 'w')
f2 = open(os.path.join(save_dir, 'neg_12.txt'), 'w')
f3 = open(os.path.join(save_dir, 'part_12.txt'), 'w')
with open(anno_file, 'r') as f:
annotations = f.readlin