1.数据集下载
WiderPerson: A Diverse Dataset for Dense Pedestrian Detection in the Wild
使用百度网盘下载速度慢,可以采用以下方式来加速:
首先确保自己的百度网盘已经是最新版本,可在版本升级的地方查看是否为最新版本。
之后打开设置,点击“传输”,优化速率这一栏点“去开启”
开启之后会发现下载速度明显提升。
2.生成voc2007的文件夹,提取出xml文件和jpg图片
把下面的py文件运行3遍,第一遍运行train.txt文件,第二遍运行val.txt文件,并且注释掉make_voc_dir函数的调用,自己可以根据自己的场景需要进行数据集的筛选,第三遍运行test.txt文件,并注释掉with open(label_path) as file和with open(xml_path, ‘wb’) as f里面的内容。
import os
import numpy as np
import scipy.io as sio
import shutil
from lxml.etree import Element, SubElement, tostring
from xml.dom.minidom import parseString
import cv2
def make_voc_dir():
# labels 目录若不存在,创建labels目录。若存在,则清空目录
if not os.path.exists('../VOC2007/Annotations'):
os.makedirs('../VOC2007/Annotations')
if not os.path.exists('../VOC2007/ImageSets'):
os.makedirs('../VOC2007/ImageSets')
os.makedirs('../VOC2007/ImageSets/Main')
if not os.path.exists('../VOC2007/JPEGImages'):
os.makedirs('../VOC2007/JPEGImages')
if __name__ == '__main__':
# < class_label =1: pedestrians > 行人
# < class_label =2: riders > 骑车的
# < class_label =3: partially-visible persons > 遮挡的部分行人
# < class_label =4: ignore regions > 一些假人,比如图画上的人
# < class_label =5: crowd > 拥挤人群,直接大框覆盖了
classes = {'1': 'pedestrians',
'2': 'riders',
'3': 'partially',
'4':'ignore',
'5':'crowd'
}#这里如果自己只要人,可以把1-5全标记为people,也可以根据自己场景需要筛选
VOCRoot = '../VOC2007'
widerDir = 'C:/Users/邓卓/Desktop/WiderPerson' # 数据集所在的路径
wider_path = 'C:/Users/邓卓/Desktop/WiderPerson/train.txt'#这里第一次train,第二次val,第三次test
#这个函数第一次要用,第二次和第三次使用时,需要将其注释掉,否则会报错
make_voc_dir()
with open(wider_path, 'r') as f:
imgIds = [x for x in f.read().splitlines()]
for imgId in imgIds:
objCount = 0 # 一个标志位,用来判断该img是否包含我们需要的标注
filename = imgId + '.jpg'
img_path = '../WiderPerso