ディープラーニング
記事ディレクトリ
序文
環境を設定した後、最初に行うことは、データセットを収集してから、データセットにラベルを付けることです。
データセットのコレクション
携帯電話を使用して写真を撮ったり、クローラーでクロールしたりできます。写真の形式はjpgの形式である必要があります。
2.ラベル付きデータセット
データはPASCALVOCデータセット形式で保存され、VOC形式のデータセットを作成する手順は次のとおりです。①フォルダを作成し、VOCファイル形式は次のとおりです。②
すべての画像をJPEGImageフォルダにコピーします
③ラベリングツールをダウンロードしますlabelImg。ファイルをダウンロードした後、データフォルダのpredefined_classes.txtを変更して、ラベル名を変更します。注:ソフトウェアlabelImgの配置パスは中国語で表示しないでください。表示しないと、ソフトウェアを開くことができません。
④OpenDirで画像が保存されているパス、つまりJPEGImageフォルダの場所を開きます。wキーを押してマークを付けます。[保存]をマークした後、[保存]を選択します。生成されたxmlファイルは画像と同じパスに保存されます。デフォルトでは。
⑤マーキング後、マーキングしたxmlファイルを切り取り、Annotationsフォルダに保存します。✧VOCdevkitデータセットをパッケージ化してトレーニング用Ubuntu環境にコピーします。ストレージパスはdarknetの下のscriptsファイルにあります。
このマーキング方法はあまり好きではありません。vottマークアップを使用してファイルを直接エクスポートします。これはより便利です。 。知りたいのですが、前のブログにアクセスできます。詳細については説明しません。実際、Make Senseはより直接的で、yolo形式を直接エクスポートできます。ubuntuでyolo形式に変換する場合も、1行の命令のみが必要です。
✧VOC2007ディレクトリに新しいファイルtest.pyを作成し、次のコードをコピーして、ターミナルを実行します。
python test.py
ImageSets/Mainフォルダーに必要なトレーニングセット/テストセットのtxtファイルを生成します
代码:
import os
import random
trainval_percent = 0.1
train_percent = 0.9
xmlfilepath = 'Annotations'
txtsavepath = 'ImageSets\Main'
total_xml = os.listdir(xmlfilepath)
num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)
ftrainval = open('ImageSets/Main/val.txt', 'w')
ftest = open('ImageSets/Main/test.txt', 'w')
ftrain = open('ImageSets/Main/train.txt', 'w')
fval = open('ImageSets/Main/trainval.txt', 'w')
for i in list:
name = total_xml[i][:-4] + '\n'
if i in trainval:
ftrainval.write(name)
if i in train:
ftest.write(name)
else: fval.write(name)
else: ftrain.write(name)
✧フォーマット変換。VOC形式のデータセットラベルをYOLOトレーニングに直接使用することはできないため、YOLOラベル形式に変換する必要があります。darknet / scriptsフォルダーにvoc_label.pyファイルがあり、VOC形式のラベルをYOLO形式に変換するために使用されます。端末は次のコマンドを実行できます。
python voc_label.py
実行する前に、voc_label.pyの9行目を独自のカテゴリ名に変更する必要があることに注意してください。
実行後、YOLO形式のラベルを保存するためのlabelsフォルダーがVOC2007ファイルの下に生成され、2007_train.txtと2007_val.txtがscriptsフォルダーの下に生成されます。これら2つのファイルを参照して、後続のデータセットを呼び出す必要があります。トレーニング。
⑧VOC形式の注釈とYOLO形式の違いを紹介します。
画像の幅=1000、高さ=
654PASCALVOC注釈ファイルは次のとおりです
。YOLO形式のtxtタグファイルは次のとおりです。