人脸检测widerface数据集

人脸检测widerface数据集预处理,过滤小人脸

    • 一、生成voc格式的数据集
    • 二、修改widerface数据集xml文件中人脸位置信息
    • 三、将widerface数据集分割成训练集及测试集
    • 四、通过xml文件生成csv文件
    • 五、生成.record文件

全部数据集及代码链接: 点击

一、生成voc格式的数据集

1.从官方网站下载 wideface数据集,本文提供了分享的下载链接,将数据集下载下来并解压放入./data文件夹中:

  • (1) 清理过的人脸检测数据集(去除30px×30px以下的小人脸),下载链接
  • (2) 原始widerface数据集,下载链接
    解压后文件结构如下:
 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文件中人脸位置信息

由于缩放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

三、将widerface数据集分割成训练集及测试集

原始文件夹结构如下:

     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

四、通过xml文件生成csv文件

原始文件夹结构如下:

    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

五、生成.record文件

原始文件夹结构如下:

    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人脸检测模型的数据制作完成,下一步是模型训练

全部数据集及代码链接,包含内容如下:
人脸检测widerface数据集_第1张图片

你可能感兴趣的:(图像数据集,人脸检测数据集)