一、文件结构
目录结构: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。