1. VOC数据集

VOC数据集格式如下(以2007为例):


其中JPEGImages文件夹存放图片,Anootations下放的是标注框的信息,格式为xml;但YOLOv5所需要的格式为txt,且txt内容格式为:id  x_center  y_center  w  h,且都是标准化(0~1之间)后的值,所以需要做相应的转换。

附:
VOC2007训练集下载地址
VOC2007测试集下载地址

2. YOLOV5

V5对于V4而言,在数据增强和网络结构上并没有太大的改变。但相比于V4官方给出的版本,V5更倾向于应用,所以V5考虑到了很多现实应用场景中会遇到的细节问题(所以总体的代码量也是大的惊人),github源码的地址:
(https://github.com/ultralytics/yolov5)
    ps:要是认真细品源码的话真的会感叹一波作者的coding功底,其中很多方法可以借鉴到我们的项目中

其中数据集标签格式的转换代码,注释写的很详细:

import os
import xml.etree.ElementTree as ETclasses = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog","horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]# 将x1, y1, x2, y2转换成yolov5所需要的x, y, w, h格式
def xyxy2xywh(size, box):dw = 1. / size[0]dh = 1. / size[1]x = (box[0] + box[2]) / 2 * dwy = (box[1] + box[3]) / 2 * dhw = (box[2] - box[0]) * dwh = (box[3] - box[1]) * dhreturn (x, y, w, h)         # 返回的都是标准化后的值def voc2yolo(path):# 可以打印看看该路径是否正确print(len(os.listdir(path)))# 遍历每一个xml文件for file in os.listdir(path):# xml文件的完整路径, 注意:因为是路径所以要确保准确,我是直接使用了字符串拼接, 为了保险可以用os.path.join(path, file)label_file = path + file# 最终要改成的txt格式文件,这里我是放在voc2007/labels/下面# 注意: labels文件夹必须存在,没有就先创建,不然会报错out_file = open(path.replace('Annotations', 'labels') + file.replace('xml', 'txt'), 'w')# print(label_file)# 开始解析xml文件tree = ET.parse(label_file)root = tree.getroot()size = root.find('size')            # 图片的shape值w = int(size.find('width').text)h = int(size.find('height').text)for obj in root.iter('object'):difficult = obj.find('difficult').textcls = obj.find('name').textif cls not in classes or int(difficult) == 1:continue# 将名称转换为id下标cls_id = classes.index(cls)# 获取整个bounding box框bndbox = obj.find('bndbox')# xml给出的是x1, y1, x2, y2box = [float(bndbox.find('xmin').text), float(bndbox.find('ymin').text), float(bndbox.find('xmax').text),float(bndbox.find('ymax').text)]# 将x1, y1, x2, y2转换成yolov5所需要的x_center, y_center, w, h格式bbox = xyxy2xywh((w, h), box)# 写入目标文件中,格式为 id x y w hout_file.write(str(cls_id) + " " + " ".join(str(x) for x in bbox) + '\n')if __name__ == '__main__':# 这里要改成自己数据集路径的格式path = 'E:/VOC2007/Annotations/'voc2yolo(path)

将PASCAL VOC数据集格式转换为YOLOV5 所需的格式相关推荐

  1. 如何将xml格式转换为yolov5所需的txt格式

    如今,深度学习非常热门,制作数据集是深度学习很重要的一环.制作数据集就离不开打标签,我们打出来的标签可能是 txt 格式 或者 xml 格式 或者json格式,但是yolo运行的标签格式是txt格式 ...

  2. RCNN系列实验的PASCAL VOC数据集格式设置

    我们在做RCNN系列的实验时,往往需要把数据集的格式设置为和PASCAL VOC数据集一样的格式,其实当然也可以修改读取数据的代码,只是这样更为麻烦,自己的数据格式变了又得修改.  首先以VOC200 ...

  3. PASCAL VOC 数据集的标注格式

    PASCAL VOC 数据集的标注格式 PASCAL VOC 挑战赛 ( **The PASCAL Visual Object Classes )是一个世界级的计算机视觉挑战赛. PASCAL的全称是 ...

  4. Ubuntu上用caffe的SSD方法训练Pascal VOC数据集

    实验目的 继caffe和ssd搭建完成,demo也演示完毕,了解一些基本知识后,现在开始训练自己的数据集,在给自己的训练集处理之前,先跟着官方的示例将Pascal VOC数据集训练走一遍,把可能会踩坑 ...

  5. 图像处理基本库的学习笔记5--公共数据集,PASCAL VOC数据集,NYUD V2数据集的简介与提取,COCO2017,医学影像数据集汇总

    目录 公共数据集 计算机视觉标准数据集整理-PASCAL VOC数据集 数据集文件结构 Annotation JPEGImages SegmentationClass SegmentationObje ...

  6. Pascal VOC 数据集介绍(tensorflow model zoo)

    Pascal VOC 数据集的下载 # 下载2007年的训练数据 wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06- ...

  7. PASCAL VOC数据集分析(分类部分)

    PASCAL VOC数据集分析 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge. 每一年都有自己的数据集.pa ...

  8. PASCAL VOC数据集

    一.简介 PASCAL: pattern analysis, statistical modelling and computational learning VOC: visual object c ...

  9. Deep Learning---py-faster-rcnn基于PASCAL VOC数据集训练模型

    0 说明 系统环境为Ubuntu14.04, 已经安装好了CUDA和cuDNN以及Python等基础包. 1 设置和编译py-faster-rcnn 1.1 下载py-faster-rcnn $ gi ...

最新文章

  1. php-redis 下载地址
  2. mysql cluster 7.1搭建
  3. Python-Day1 数据类型
  4. python 后台系统 源码_这是我见过最好的博客系统!附源码(前端、后台、APP、小程序都有)...
  5. 2017 ACM-ICPC南宁网络赛: I. GSM Base Station Identification(线性变换)
  6. logback.xml 配置总结
  7. 偏序关系与全序关系的区别
  8. TMOD、SCON、PCON寄存器的配置
  9. python 代码生成器_Python代码生成器(代码生成工具)V1.1 正式版
  10. 四面体体积公式 hdu 1411
  11. c++win32项目 如何显示后再删除一个绘图_50个CAD绘图小技巧,来get成倍提高绘图效率...
  12. FPGA 名词解释(FPGA WORD EXPLANATION )
  13. 录音自动上传到服务器,怎么实现手机录音之后,将录音的音频文件上传到服务器上...
  14. 解决更换电池引发的乐视2手机(lex620)不进系统问题
  15. nvm: node版本管理器[使用教程]
  16. mysql中的dual
  17. 安全计算:使用ClamWin为高级用户提供免费病毒防护
  18. 猿创征文|我的四个月Java学习成长之路——从基础到框架再到项目
  19. 机器人编程需要c语言吗,机器人编程和计算机编程有什么不一样
  20. TypeError TypeError: can only concatenate str (not “NoneType“) to str

热门文章

  1. 迭代算法5——近似迭代法之求一个数的平方根
  2. 使用Safari获取手机UDID,对.mobileconfig文件进行签名加密
  3. Guide to Data Mining 读书笔记 相似度距离算法的取舍
  4. github下载失败问题解决
  5. c语言程序while,C语言之while循环
  6. c语言ifb0是否正确的是,EDA技术与Verilog-中国大学mooc-题库零氪
  7. 2023广东省职业院校技能大赛大数据技术与应用专业样题
  8. 甄享减法人生 柯罗芭KLOVA 2022秋冬衣橱的全新打开方式
  9. 运放的输入输出电压Vcm范围
  10. OSI七层网络模型和TCP/IP四层网络模型的异同