YOLOシリーズアノテーションファイルtxtラベルカテゴリインデックスバッチ変更スクリプト

YOLOクラス検出ネットワークのカスタムトレーニングを行う場合、トレーニングのために複数の独立したデータセットを組み合わせることがありますが、2つの独立したデータセットでボートなどの同じクラスなどの問題が発生することがよくあります。ただし、一方のデータセットのボートのインデックスファイル(txtファイル)は0であり、もう一方のデータセットのインデックスは1であるため、直接マージすることはできません。データセット内のラベルを変更してからマージする必要があります。

ラベルを変更するための小さなデモは次のとおりです。

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