YOLO系列标注文件txt标签类别索引批量修改脚本

在我们做YOLO类检测网络的自定义训练时,有时会将多个独立的数据集合并训练,但往往遇到一个问题,比如两个独立的数据集中有相同的一类,比如船。但是在一个数据集中船的标注文件(txt文件)的索引为0,在另一个数据集中的索引为1,这样就不能直接合并在一起。需要将某一个数据集中的标签做修改后再合并。

修改标签的小demo如下:

import os
import re

path = 'C:/Users/aa/Desktop/img/' // txt文件路径
files = []
for file in os.listdir(path):
    if file.endswith(".txt"):
        files.append(path+file)
for file in files:
    with open(file, 'r') as f:
        new_data = re.sub('^0', '1', f.read(), flags=re.MULTILINE)    # 将列中的0替换为1
        print("转化成功")
    with open(file, 'w') as f:
        f.write(new_data)
  • 需要注意的是,修改类别时不能用已有的索引,比如我要将船的索引从0修改到1。但是1索引本来对应的时人,这是就会出现混合的情况,所以切记切记一定要注意。

猜你喜欢

转载自blog.csdn.net/qq_42308217/article/details/123363274