当前位置: 首页 > news >正文

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。

相关文章:

  • 【Linux篇】操作系统揭秘:进程创建、等待与终止的无缝衔接
  • 计算机控制系统:arduino呼吸灯
  • 【嵌入式学习4】特殊参数、文件IO
  • 企业管理系统的功能架构设计与实现
  • 在 C# 中,while、for 和其他循环结构
  • 纯国产系统,首款鸿蒙电脑下月发布
  • 打破界限:Android XML与Jetpack Compose深度互操作指南
  • windows下git bash安装SDKMan报错Looking for unzip...Not found
  • android 之简述屏幕分辨率、屏幕密度、屏幕最小宽度
  • HarmonyOS学习 实验七:在页面上面添加警告弹窗、自定义弹窗、选择类弹窗、文本选择弹窗、日期选择等等
  • 三个STM32时钟配置函数的区别
  • 08_DCL
  • 安装操作系统后建议做的优化工作
  • AI绘画SD中,如何保持生成人物角色脸部一致?Stable Diffusion精准控制AI人像一致性两种实用方法教程!
  • 【PCB工艺】软件是如何控制硬件的发展过程
  • 2025年华为杯广东工业大学程序设计竞赛(A最短路,生成树,G数学,最大公因数,I贪心)
  • 记录一次StarRocks集群迁移的经历
  • CentOS 7 全流程部署Magic-PDF数据清洗工具(附GPU加速方案)
  • 珠江桥牌斩获多项殊荣 匠心传承粤菜文化 创新引领调味新风尚
  • TDengine 数据写入优化:协议选择与批量操作(一)