VOC数据集

  1. 数据集文件夹介绍
  2. 生成代码

数据集文件夹介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
VOC2007
Annotations # 存放xml文件,图像的标签文件
*.xml # 标注文件
ImageSets #
Action # 存放的是人的动作(例如running、jumping等等,这也是VOC challenge的一部分)
*_train.txt
*_trainval.txt
*_val.txt
Layout # 存放的是具有人体部位的数据(人的head、hand、feet等等,这也是VOC challenge的一部分)
train.txt
trainval.txt
val.txt
Main # 存放的是图像物体识别的数据
train.txt # 写着用于训练的图片名称, 共 2501 个
val.txt # 写着用于验证的图片名称,共 2510 个
trainval.txt # train与val的合集。共 5011 个
test.txt # 写着用于测试的图片名称,共 4952 个
Segmentation # 存放的是可用于分割的数据
train.txt
trainval.txt
val.txt
JPEGImages # 存放原始图片,一般格式为.jpg
*.jpg
SegmentationClass # 存放按照 class 分割的图片
*.png
SegmentationObject # 存放按照 object 分割的图片
*.png

生成代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# !/usr/bin/env python3
# -*- coding: utf-8 -*-
###----------------------------------------------------1、文件说明----------------------------------------------------###
'''
* 说明:制作VOC格式
* 时间:2020-2-5
'''
###----------------------------------------------------2、库导入----------------------------------------------------###
import xml.etree.ElementTree as ET
import os
###----------------------------------------------------3、参数配置----------------------------------------------------###
classes = {}
xmlpath = "Annotations"
traintxt = "ImageSets/Main/train.txt"
valtxt = "ImageSets/Main/val.txt"
trainvaltxt = "ImageSets/Main/trainval.txt"
testtxt = "ImageSets/Main/test.txt"

# train 与 test 的比例
traintest_percent = 0.8
# train 与 val 的比例
trainval_percent = 0.4
###----------------------------------------------------4、主体程序----------------------------------------------------###
print('Start Program...')

def main():
print('Start Main')

# 获取数据
for xmlfile in os.listdir(xmlpath):
tree = ET.parse(os.path.join(xmlpath, xmlfile))
root = tree.getroot()

filename = root.find('filename').text
filename = os.path.splitext(filename)[0]
for obj in root.iter('object'):
classname = str(obj.find('name').text)
if classes.get(classname) is None:
classes[classname] = []
if filename not in classes[classname]:
classes[classname].append(filename)

# 保存数据
ftraintxt = open(traintxt, 'w')
fvaltxt = open(valtxt, 'w')
ftrainvaltxt = open(trainvaltxt, 'w')
ftesttxt = open(testtxt, 'w')

for key in classes:
leng = len(classes[key])
for i in range(leng):
tv = int(leng * traintest_percent)
tr = int(tv * trainval_percent)
name = classes[key][i]
if i < tv:
ftrainvaltxt.write(name + '\n')
if i < tr:
ftraintxt.write(name + '\n')
else:
fvaltxt.write(name + '\n')
else:
ftesttxt.write(name + '\n')

print(classes.keys())

if __name__ == '__main__':
main()
print('Success ...')

微信:宏沉一笑
公众号:漫步之行

签名:Smile every day
名字:宏沉一笑
邮箱:whghcyx@outlook.com
个人网站:https://whg555.github.io



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 whghcyx@outlook.com

文章标题:VOC数据集

文章字数:584

本文作者:宏沉一笑

发布时间:2020-02-05, 14:42:38

最后更新:2024-03-21, 12:53:36

原始链接:https://whghcyx.gitee.io/2020/02/05/AI-2020-2-5-VOC%E6%95%B0%E6%8D%AE%E9%9B%86/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏