目标检测,将xml格式的标签数据集转换为yolov8(txt)格式

调包:

import os
from lxml import etree

设置新旧标签存放的文件夹路径变量,读取全部文件files:

source_path = 'D:/source/label/path/'
label_path = 'D:/new/label/path'

#创建txt标签存放路径
if not os.path.exists(label_path):
    os.mkdir(label_path)

#获取文件名称列表
files = os.listdir(source_path)

读取全部标签文件中的类别名称,并生成类别与数字的对应关系字典:

#获取分类名称列表
def get_classes(files,source_path):
    class_set = set([])
    for file in files:
        with open(source_path+file,'rb') as fb:
            #解析xml文件
            xml = etree.HTML(fb.read())
            labels = xml.xpath('//object')
            for label in labels:
                name = label.xpath('./name/text()')[0] 
                class_set.add(name)
    return list(class_set)

classes = get_classes(files,source_path)

#生成分类字典,列如{'apple':0,'banana':1}
class_dict = dict(zip(classes,range(len(classes))))

将xml标签文件转化为txt

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值