版权声明:本文为博主原创文章,转载请注明作者和出处。https://blog.csdn.net/xq920831/article/details/88868481
最近研究了目标检测的SSD算法,在进行数据TFrecord格式制作之后,需要统计训练集和测试集的各类图片数和框定数
参考:https://blog.csdn.net/weixin_39881922/article/details/80569803
统计数目不可能一个个数,我们需要将train.txt下的文件名所对应的XML文件提取出来,再配合网友制作的统计代码即可
统计代码:https://blog.csdn.net/memories_sunset/article/details/83309417
我这里要做的就是中间步骤,匹配出对应的XML即可,利用python并不难
代码如下:
# -*- coding:utf-8 -*-
# Author: Agent Xu
import os
import glob
import shutil
from PIL import Image
#指定找到文件后,另存为的文件夹路径
outDir = os.path.abspath('C:/Users/Administrator/Desktop/EAD2019/ead2019_trainingData-I/test_xml')
#指定TXT文本的位置
txtDir1 = os.path.abspath('./VOC2007/ImageSets/Main/test.txt')
imgname1=[]
with open(txtDir1,'r') as f:
for line in f:
imgname1.append(line.strip('\n'))
#文件夹路径
imageDir2 = os.path.abspath('./VOC2007/Annotations')
image2 = []
imgname2 = []
imageList2 = glob.glob(os.path.join(imageDir2, '*.xml'))
for item in imageList2:
image2.append(os.path.basename(item))
for item in image2:
(temp1, temp2) = os.path.splitext(item)
imgname2.append(temp1)
#匹配
for item1 in imgname1:
for item2 in imgname2:
if item1 == item2:
dir = image2[imgname2.index(item2)]
xmlname=os.path.join(imageDir2,dir)
print(xmlname)
shutil.copy(xmlname,outDir)
这样就可以了,然后统计改代码参数,训练就好啦。