VOC数据提取自己需要的类生成XML标签
来源:互联网 发布:怎样在手机淘宝上退货 编辑:程序博客网 时间:2024/04/30 03:33
公开数据集VOC里面有20类,若小伙伴需要提取特定的类别供深度学习训练的话,可以参考博主的这篇博客,如有不正,欢迎指出。
注意:此python程序经测试VOC2007有效,其他年份的数据只需对程序稍作修改即可
程序代码如下:
import osimport os.pathimport shutilfileDir_ann = "E:\\voc_year\\VOCdevkit\\VOC2007\\Annotations"fileDir_img = "E:\\voc_year\\VOCdevkit\\VOC2007\\JPEGImages\\"saveDir_img = "E:\\voc_year\\VOCdevkit\\VOC2007\\JPEGImages_ssd\\"if not os.path.exists(saveDir_img): os.mkdir(saveDir_img)names = locals()for files in os.walk(fileDir_ann): for file in files[2]: print file + "-->start!" saveDir_ann = "E:\\voc_year\\VOCdevkit\\VOC2007\\Annotations_ssd\\" if not os.path.exists(saveDir_ann): os.mkdir(saveDir_ann) fp = open(fileDir_ann + '\\' + file) saveDir_ann = saveDir_ann + file fp_w = open(saveDir_ann, 'w') classes = ['aeroplane','bicycle','bird','boat','bottle','bus','car','>cat<','chair','cow','diningtable',\ 'dog','horse','motorbike','pottedplant','sheep','sofa','train','tvmonitor','person'] lines = fp.readlines() ind_start = [] ind_end = [] lines_id_start = lines[:] lines_id_end = lines[:] while "\t<object>\n" in lines_id_start: a = lines_id_start.index("\t<object>\n") ind_start.append(a) lines_id_start[a] = "delete" while "\t</object>\n" in lines_id_end: b = lines_id_end.index("\t</object>\n") ind_end.append(b) lines_id_end[b] = "delete" i = 0 for k in range(0,len(ind_start)): for j in range(0,len(classes)): if classes[j] in lines[ind_start[i]+1]: a = ind_start[i] names['block%d'%k] = [lines[a],lines[a+1],\ lines[a+2],lines[a+3],lines[a+4],\ lines[a+5],lines[a+6],lines[a+7],\ lines[a+8],lines[a+9],lines[a+10],\ lines[ind_end[i]]] break i += 1 classes1 = '\t\t<name>bicycle</name>\n' classes2 = '\t\t<name>motorbike</name>\n' classes3 = '\t\t<name>bus</name>\n' classes4 = '\t\t<name>car</name>\n' string_start = lines[0:ind_start[0]] string_end = [lines[len(lines)-1]] a = 0 for k in range(0,len(ind_start)): if classes1 in names['block%d'%k]: a += 1 string_start += names['block%d'%k] if classes2 in names['block%d'%k]: a += 1 string_start += names['block%d'%k] if classes3 in names['block%d'%k]: a += 1 string_start += names['block%d'%k] if classes4 in names['block%d'%k]: a += 1 string_start += names['block%d'%k] string_start += string_end for c in range(0,len(string_start)): fp_w.write(string_start[c]) fp_w.close() if a == 0: os.remove(saveDir_ann) else: name_img = fileDir_img + os.path.splitext(file)[0] + ".jpg" shutil.copy(name_img,saveDir_img) fp.close()
任何问题请加唯一QQ2258205918(名称samylee)!
0 0
- VOC数据提取自己需要的类生成XML标签
- VOC框图工具,自动生成需要的XML格式
- Python生成PASCAL VOC格式的xml标注文件
- Python生成PASCAL VOC格式的xml标注文件
- Python生成PASCAL VOC格式的xml标注文件
- Yolo-v2训练voc及自己的数据集
- YOLOv2训练自己的数据集(VOC格式)
- YOLOv2训练自己的数据集(VOC格式)
- YOLOv2训练自己的数据集(VOC格式)
- 用py-faster-rcnn训练自己的VOC数据集
- python 数据转 voc xml
- VOC数据集的架构来构建自己的数据集训练yolov2
- 利用matlab将自己的数据制作为标准VOC数据集格式
- ImageNet和PASCAL VOC图像描述的xml文件的解析、修改和生成
- 【Darknet】【yolo v2】训练自己数据集的一些心得----VOC格式
- 深度学习python之制作VOC数据集中的xml文件(Annotations文件夹内)
- 提取Insight-MVT_Annotation_Train 数据集标签xml文件中的信息
- 制作VOC类型数据集,生成txt,生成lmdb
- Scratch的基础使用
- CSS权重-学习笔记
- ActiveMQ特性总结
- HTTP协议的常见的请求方式:GET和POST
- OpenGrok简单使用说明
- VOC数据提取自己需要的类生成XML标签
- EPEL安装
- 【课堂笔记3】实现点击按钮跳转到下一帧
- 用Python做测试——测试人员需要掌握的Python基础(一)
- HashMap与冲突解决算法
- JIRA服务器安装并破解
- ncaught ReferenceError: Invalid left-hand side expression in prefix operation
- JAVA相关文章索引(6)
- python中列表 元组 字典 集合的区别