0.前言
coco数据集是一个强大的数据集,这个数据集里面包括90多种类型的图片,包括人,车,卡车等等。接下来要做的是将数据集下载下来并且调出我们想要的图片和标签。这里选择选取测试集数据集图片、获取测试集标签和生成测试集xml文件为例,训练集同理(因为训练集实在是太大了!!!)以下三个代码的存放地址最好不要跟存放的想要的图片放在一个文件夹中,否则会在最后生成XML文件的时候报错
结果展示:下图为提取出coco数据集中的人,公交车等图片,并且生成xml文件的结果
1.下载coco数据集
COCO2017 训练数据:http://images.cocodataset.org/zips/train2017.zip
COCO标签集:http://images.cocodataset.org/annotations/annotations_trainval2017.zip
COCO2017验证数据:http://images.cocodataset.org/zips/val2017.zip
下载完后,加压到指定地址。
2.从数据集中选取你想要的类
#-*- coding:utf-8-*-
import json
className = {
1:'person',
3: 'car',
6: 'bus',
8: 'truck'
}
classNum = [1,3,6,8]
cocojson="C:/Machine_learning/annotations_trainval2017/annotations/instances_val2017.json"#coco数据集的标签地址(json地址)
def writeNum(Num):
with open("COCO_val.json", "a+") as f:
f.write(str(Num))
inputfile = []
inner = {}
with open(cocojson, "r+") as f:
allData = json.load(f)
data =allData["annotations"]
print(data[1])
print("read ready")
for i in data:
if (i['category_id'] in classNum):
inner = {
"filename":str(i["image_id"]).zfill(12),
"name":className[i["category_id"]],
"bndbox":i["bbox"]
}
inputfile.append(inner)
inputfile = json.dumps(inputfile)
writeNum(inputfile)