VOC数据转换成YOLO V3数据格式
在使用YOLO_V3的代码时,输入的数据格式与平常我们使用的数据格式有一定的区别。
此版本代码需要得到dataset.txt文本数据,格式如下:
xxx/xxx.jpg 18.19 6.32 424.13 421.83 20 323.86 2.65 640.0 421.94 20
xxx/xxx.jpg 55.38 132.63 519.84 380.4 16
# image_path x_min y_min x_max y_max class_id x_min y_min ... class_id
那么,如何将VOC2007数据集转换成这个文本呢?
import xml.etree.ElementTree as ET
import osclasses = ['aeroplane', 'bicycle','bird','boat','bottle','bus','car', 'cat', 'chair','cow','diningtable','dog','horse','motorbike','person', 'pottedplant','sheep',
'sofa','train','tvmonitor']def convert_annotation(image_id):in_file = open('/home/xxxxx/xxxxx/YOLO_V3/VOC2007/Annotations/%s.xml' % image_id)out_file = open('dataset.txt', 'a') # 生成txt格式文件tree = ET.parse(in_file)root = tree.getroot()size = root.find('size')out_file.write('/home/xxxxx/xxxxxx/YOLO_V3/VOC2007/JPEGImages/{}.jpg'.format(image_id))for obj in root.iter('object'):cls = obj.find('name').textif cls not in classes:continuecls_id = classes.index(cls)xmlbox = obj.find('bndbox')b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text),float(xmlbox.find('ymax').text))out_file.write(" " + str(b[0]) + " " + str(b[2]) +" "+str(b[1])+" "+str(b[3])+" "+str(cls_id))out_file.write("\n")imgname_list = []
part_name = 'trainval.txt' # test.txt
with open(os.path.join('/home/xxxxx/xxxxx/YOLO_V3/VOC2007/', 'ImageSets/Main/'+part_name)) as f:all_lines = f.readlines()for a_line in all_lines:imgname_list.append(a_line.split()[0].strip())print(len(imgname_list))
for image_id in imgname_list:convert_annotation(image_id)
转换成的文本格式如下:
/home/xxxxx/xxxxx/YOLO_V3/VOC2007/JPEGImages/003120.jpg 233.0 115.0 580.0 355.0 3
/home/xxxxx/xxxxx/YOLO_V3/VOC2007/JPEGImages/004133.jpg 59.0 66.0 185.0 176.0 5 24.0 176.0 169.0 267.0 5 101.0 157.0 275.0 246.0 5 293.0 202.0 470.0 291.0 5
/home/xxxxx/xxxxx/YOLO_V3/VOC2007/JPEGImages/003837.jpg 346.0 160.0 496.0 365.0 17 156.0 297.0 592.0 641.0 12
/home/xxxxx/xxxxx/YOLO_V3/VOC2007/JPEGImages/002284.jpg 65.0 295.0 319.0 680.0 10 299.0 195.0 455.0 649.0 10 410.0 207.0 532.0 554.0 10 523.0 209.0 670.0 706.0 10
/home/xxxxx/xxxxx/YOLO_V3/VOC2007/JPEGImages/001897.jpg 118.0 12.0 413.0 507.0 8 210.0 22.0 488.0 557.0 8 338.0 77.0 603.0 657.0 8 438.0 57.0 658.0 687.0 8
VOC数据转换成YOLO V3数据格式相关推荐
- yolov5之voc数据集转yolo标准数据集
yolov5之voc数据集转yolo标准数据集 需要yolo转voc格式的看这里Yolo标准数据集格式转Voc数据集 在之前的文章中介绍过yolo标准数据集转voc数据集,因为最近在学习yolov5, ...
- android 将数据转换成JSON数据格式并使用JSONObject解析JSON格式的数据
比起XML文件解析,JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量.同时它也有缺点,Json数据的语义性较差,看起来没有XML直观.现在JSON已经被大多数开发人员所接受,在网络 ...
- 后台返回的数组包对象格式的数据转换成表格数据格式的方法
后台返回的数组包对象格式的数据转换成表格数据格式的方法 transformDate(res) {const mapInfo = {id: '编号',password: '密码',mobile: '手机 ...
- 图像目标检测算法总结(从R-CNN到YOLO v3)
(首发于知乎,链接:https://zhuanlan.zhihu.com/p/242424344,欢迎关注~) 基于CNN 的目标检测是通过CNN 作为特征提取器,并对得到的图像的带有位置属性的特征进 ...
- 目标检测Tensorflow:Yolo v3代码详解 (2)
目标检测Tensorflow:Yolo v3代码详解 (2) 三.解析Dataset()数据预处理部分 四. 模型训练 yolo_train.py 五. 模型冻结 model_freeze.py 六. ...
- Yolo v3的学习
目录 一.Backbone:Darknet53 二.Neck:FPN 三.Prediction:Yolo head 四.训练策略 4.1.正负样本与忽略样本 4.2.正样本匹配 4.2.1.IOU匹配 ...
- YOLO v3算法解析
论文:YOLOv3: An Incremental Improvement 论文地址:https://pjreddie.com/media/files/papers/YOLOv3.pdf YOLO系列 ...
- 目标检测:YOLO V1、YOLO V2、YOLO V3 算法
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) yoloV3模型 目标检测:YOLO V1.YOLO V2.Y ...
- r语言把两个折线图图像放到一个图里_图像目标检测算法总结(从R-CNN到YOLO v3)...
基于CNN 的目标检测是通过CNN 作为特征提取器,并对得到的图像的带有位置属性的特征进行判断,从而产出一个能够圈定出特定目标或者物体(Object)的限定框(Bounding-box,下面简写为bb ...
最新文章
- 如何快速写一个违背双亲委托机制的classloader
- 谈大数据里各子项目搭建时的环境变量配置(深入)
- 英雄联盟更新服务器维护,lol更新维护
- 关于Office开发,郁闷!
- 长路漫漫,唯剑作伴--loadView、viewDidLoad及viewDidUnload的关系
- 中国移动将发布首款自主品牌5G手机:先行者X1
- T+T+.....+T的递归下降子程序
- python文本风格_Python的代码风格
- 基于网络安全相关的开源项目技术预研分析报告
- 金融现金贷用户数据分析和用户画像(基于12万真实数据)
- java 标准偏差_Java Streams-标准偏差
- Qt笔记(六十三)之Qt实现窗口以及控件的全屏效果
- pytest接口自动化测试框架 | 为什么要做pytest插件的二次开发
- VR项目unity相关
- matlab求解一阶微分方程组
- 一个成功的男人如何去追求身边的女人
- 计算机策略组无法打开怎么办,电脑打不开gpedit.msc组策略怎么办
- 2022年吃瓜事件拆解,打造爆款,让你拥有顶级营销思维!
- 服装设计要学计算机吗,学服装设计用什么电脑_服装设计师要做什么
- oracle永久解scott,Oracle 11g中解决被锁定的scott用户的方法