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つのインデックスは元々時間の人々に対応しており、これはさまざまな状況であるため、注意を払うことを忘れないでください。