1.从官方网站下载 wideface数据集,本文提供了分享的下载链接,将数据集下载下来并解压放入./data文件夹中:
data/
retinaface_labels/
test/
train/
val/
wider_face/
WIDER_test/
WIDER_train/
WIDER_val/
1_wider_face_2_voc.py
2.(如果你已经下载了上面(1)中的去除小人脸的数据集,可跳过此步骤)原始widerface数据集中包含很多小人脸,不利于模型的收敛,因此需要对原始数据集进行过滤后再训练,将 修改1_wider_face_2_voc.py中minsize2select = 30(大约第18行),然后运行 ./data/wider_face_2_voc_add_landmark.py
python 1_wider_face_2_voc.py
运行完成,生成了与(1)去除30px×30px以下的小人脸相同的人脸检测数据集 wider_face_add_lm_30_30,完整的文件结构如下:
data/
retinaface_labels/
test/
train/
val/
wider_face/
WIDER_test/
WIDER_train/
WIDER_val/
wider_face_add_lm_30_30/
Annotations/
ImageSets/
JPEGImages/
1_wider_face_2_voc.py
由于缩放widerface图片大小,相应的xml文件中人脸的位置标注信息也会改变,所以用代码实现根据图片resize大小修改相应图片坐标位置。
文件夹结构如下:
data/
wider_face_add_lm_30_30/
Annotations/
ImageSets/
JPEGImages/
2_wider_face_resize_xml.py
运行
python 2_wider_face_resize_xml.py
生成新的文件,新文件夹结构如下:
data/
wider_face_add_lm_30_30/
Annotations/
ImageSets/
JPEGImages/
wider_face_30/
Annotations/
ImageSets/
JPEGImages/
2_wider_face_resize_xml.py
原始文件夹结构如下:
data/
wider_face_30/
Annotations/
ImageSets/
JPEGImages/
3_wider_face_split_data.py
运行
python 3_wider_face_split_data.py
生成新的文件夹,新文件夹结果如下:
data/
wider_face_30/
Annotations/
ImageSets/
JPEGImages/
train/
test/
3_wider_face_split_data.py
原始文件夹结构如下:
data/
wider_face_30/
Annotations/
ImageSets/
JPEGImages/
train/
test/
4_wider_face_xml_to_csv.py
运行
python 4_wider_face_xml_to_csv.py
生成新的文件夹,新文件夹结果如下:
data/
wider_face_30/
Annotations/
ImageSets/
JPEGImages/
train/
test/
images/
train_labels.csv
test_labels.csv
4_wider_face_xml_to_csv.py
原始文件夹结构如下:
data/
wider_face_30/
Annotations/
ImageSets/
JPEGImages/
train/
test/
images/
train_labels.csv
test_labels.csv
5_wider_face_generate_tfrecord.py
新建5_wider_face_generate_tfrecord.sh,在5_wider_face_generate_tfrecord.sh中加入如下代码:
python 5_wider_face_generate_tfrecord.py \
--csv_input=images/train_labels.csv \
--image_dir=/home/xsr/project_data/widerface_data/wider_face_30/train \
--output_path=images/train.record
python 5_wider_face_generate_tfrecord.py \
--csv_input=images/test_labels.csv \
--image_dir=/home/xsr/project_data/widerface_data/wider_face_30/test \
--output_path=images/test.record
运行
./ 5_wider_face_generate_tfrecord.sh
生成新的文件夹,新文件夹结果如下:
data/
wider_face_30/
Annotations/
ImageSets/
JPEGImages/
train/
test/
images/
train_labels.csv
test_labels.csv
train.record
test.record
5_wider_face_generate_tfrecord.py
5_wider_face_generate_tfrecord.sh
至此基于mobilenet-ssd人脸检测模型的数据制作完成,下一步是模型训练