yolo格式批量修改类别

一、文件结构

目录结构:YOLO 格式的标注文件通常与图像文件存放在同一项目目录下,分为图像和标签两个子目录
标注文件格式:每个 .txt 文件对应一张图像,文件内容遵循 YOLO 格式,每行表示一个目标对象,格式为:

<class_id> <x_center> <y_center> <width> <height>

示例:

3 0.5 0.5 0.2 0.2
1 0.3 0.4 0.1 0.1

项目根目录/
├── images/
│   ├── val/
│   │   ├── image1.jpg
│   │   ├── image2.jpg
│   │   └── ...
└── labels/
    └── val/
        ├── image1.txt
        ├── image2.txt
        └── ...

images/val/:存放验证集的图像文件(例如 .jpg 或 .png)。
labels/val/:存放对应的 YOLO 格式标注文件(.txt),文件名通常与图像文件名一致(不含扩展名)。
脚本默认处理 labels/val/ 目录下的 .txt 文件,您可以根据实际需求调整路径。

二、设置路径

设置目录路径:根据您的 .txt 文件实际位置,修改脚本中的 path 变量。例如:

path = "C:/Users/YourName/Documents/labels/val/"

三、修改文件内容

for file in files:
    try:
        with open(file, 'r') as f:
            # 只替换类别 ID 精确为 3 的行
            new_data = re.sub(r'^3\b', '0', f.read(), flags=re.MULTILINE)
        with open(file, 'w') as f:
            f.write(new_data)
        print(f"已处理文件:{file}")
    except Exception as e:
        print(f"处理文件 {file} 时出错:{e}")

re.sub(r'^3\b', '0', f.read(), flags=re.MULTILINE):
r'^3\b':匹配每行开头精确为 3 的类别 ID(\b 确保不误改如 30)。
'0':替换为 0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值