YOLO格式数据集(.txt)如何转换为VOC格式数据集(.xml)

这篇具有很好参考价值的文章主要介绍了YOLO格式数据集(.txt)如何转换为VOC格式数据集(.xml)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

安装好python环境与编译器

转换:

将标注文件从文本格式(.txt)转换为 XML 格式(.xml)可以通过以下步骤完成:

  1. 解析文本标注文件:打开 .txt 文件,逐行读取每个标注,并解析边界框坐标和类别信息。
  2. 创建 XML 文件:使用 Python 的内置库 xml.etree.ElementTree 创建一个 XML 树,然后逐个添加 XML 元素来表示图像和标注信息。
  3. 将 XML 树写入文件:将构建的 XML 树写入一个新的 .xml 文件中,以实现标注信息的转换。

PS:通常情况下,.txt 文件中的每一行应该包含一条标注信息,其中包括类别信息。以下是一种可能的 .txt 文件的格式: 

class_id x_min y_min x_max y_max 

其中 x_miny_minx_maxy_max 是标注框的坐标,class_id 是类别标识。如果在你的数据中类别信息不是放在每行的最后一列,你需要根据你的数据格式进行相应的调整。

按照上面的YOLO格式,具体代码如下所示

import os
import xml.etree.ElementTree as ET

def convert_txt_to_xml(txt_folder, xml_folder, classes):
    txt_files = [f for f in os.listdir(txt_folder) if f.endswith('.txt')]
    
    for txt_file in txt_files:
        txt_path = os.path.join(txt_folder, txt_file)
        xml_path = os.path.join(xml_folder, os.path.splitext(txt_file)[0] + '.xml')
        
        with open(txt_path, 'r') as txt_file:
            lines = txt_file.readlines()

        root = ET.Element('annotation')

        for line in lines:
            line = line.strip().split()
            if len(line) < 5:
                continue
            
            class_index = int(float(line[0]))  # 类别索引
            class_name = classes[class_index]  # 类别名称
            xmin, ymin, xmax, ymax = map(int, map(float, line[1:5]))  # 坐标转换为整数

            obj = ET.SubElement(root, 'object')
            ET.SubElement(obj, 'name').text = class_name
            bbox = ET.SubElement(obj, 'bndbox')
            ET.SubElement(bbox, 'xmin').text = str(xmin)
            ET.SubElement(bbox, 'ymin').text = str(ymin)
            ET.SubElement(bbox, 'xmax').text = str(xmax)
            ET.SubElement(bbox, 'ymax').text = str(ymax)

        tree = ET.ElementTree(root)
        tree.write(xml_path)

# 要转换的文件夹路径和输出的文件夹路径
txt_folder = 'labels' #txt文件夹
xml_folder = 'labels_xml_folder'  #目标xml文件夹
classes = ['pig', 'stand', 'lie', 'drink', 'lie', 'eat']  # 类别列表

convert_txt_to_xml(txt_folder, xml_folder, classes)

这段代码会将txt文件夹中的每个txt文件转换为相应的xml文件,并根据类别索引匹配对应的类别名称。文章来源地址https://www.toymoban.com/news/detail-650553.html

到了这里,关于YOLO格式数据集(.txt)如何转换为VOC格式数据集(.xml)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLO目标检测——口罩规范佩戴数据集+已标注xml和txt格式标签下载分享

    实际项目应用 :疫情防控、智能安检、公共场所监控场景下的大密度人群检测是否佩戴口罩 数据集说明 :人脸口罩规范佩戴数据集,真实场景的高质量图片数据,数据场景丰富,含有正确佩戴口罩、未正确佩戴口罩和没佩戴口罩图片 标签说明 :使用lableimg标注软件标注,标

    2024年02月09日
    浏览(53)
  • VOC/YOLO/COCO数据集格式转换及LabelImg/Labelme/精灵标注助手Colabeler标注工具介绍

    数据集格式:VOC(xml)、YOLO(txt)、COCO(json) 本文主要对 Label格式 ,以及 LabelImg、Labelme、精灵标注助手Colabeler 这常用的三种数据标注软件进行介绍。 LabelImg是目标检测数据标注工具,可以标注标注两种格式: VOC标签格式,标注的标签存储在xml文件 YOLO标签格式,标注的标签存储在

    2023年04月22日
    浏览(85)
  • 将Yolo格式标注文件转换为VOC格式

    这篇文章主要参考博客Yolo标准数据集格式转Voc数据集中的代码,对原博客代码进行一定修改、添加注释,此外还在后面添加了我自己写的一段关于对转换后的标注文件进行整理的脚本代码。 Yolo标注的格式与VOC格式不同之处在于: (1)Yolo格式下的每张图片的所有包含的目标

    2024年02月11日
    浏览(41)
  • Yolov5数据集标签的txt格式与xml相互转换

    在使用yolov5制作数据集时,yolov5使用txt格式的标签,打标签的工具如labelimg使用的是xml格式的标签,需要进行数据集格式的转换: txt格式的数据集标签转为xml格式 xml格式的数据集标签转为txt格式

    2024年02月15日
    浏览(46)
  • 【最全教程】VOC格式转YOLO格式数据

            在做目标检测时候,都会通过一些方法获得大量的数据集,或是网上下载,或是自己用软件一个一个的打标签。         不会打标签的可以看下这个文章 Win10下安装LabelImg及使用技巧--全网最快最简单 Win10下安装LabelImg及使用--全网最快最简单 https://blog.csdn.net

    2024年02月06日
    浏览(88)
  • 数据集 VOC转YOLO格式

    划分为训练集、验证集和测试集 手动复制

    2024年02月13日
    浏览(38)
  • YOLO,VOC数据集标注格式

    YOLO数据集txt标注格式: 每个标签有五个数据,依次代表: 所标注内容的类别,数字与类别一一对应 归一化后中心点的x坐标 归一化后中心点的y坐标 归一化后目标框的宽度w 归一化后目标框的高度h 这里归一化是指除以原始图片的宽和高 VOC数据集xml标注格式 转换公式: VOC

    2023年04月08日
    浏览(69)
  • YOLO目标检测——VOC2007数据集+已标注VOC格式标签下载分享

    VOC2007数据集是一个经典的目标检测数据集,该数据集包含了20个常见的目标类别,涵盖了人、动物、交通工具等多个领域,共同11220图片。使用lableimg标注软件标注,标注框质量高,标签格式为VOC格式(即xml标签),可以直接用于YOLO系列的目标检测。 数据集点击下载 :YOLO目

    2024年02月09日
    浏览(43)
  • 道路坑洞数据集(坑洞目标检测)VOC+YOLO格式650张

        路面坑洞的形成原因是由于设计、施工、养护处理不当、控制不适和受气候、环境、地质、水文等自然因素影响,以及车辆的运行和车辆超载运行导致路面破损,出现坑洞的现象。 路面坑洞的分类: (1)路面混凝土板中坑洞:位于砼板表面,形状小、深度浅多为不规则

    2024年02月04日
    浏览(52)
  • 100种目标检测数据集【voc格式yolo格式json格式coco格式】+YOLO系列算法源码及训练好的模型

    提示:本文介绍并分享了应用于 各行业 、 各领域 非常有用的 目标检测数据集 (感谢您的关注+三连, 数据集持续更新中… ),其中绝大部分数据集作者 已应用于各种实际落地项目 ,数据集 整体质量好 , 标注精确 ,数据的 多样性充分 , 训练 模型拟合较好 ,具有较高

    2023年04月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包