★Bluetooth搭載、充電可能なFMトランスミッターを紹介★

YOLOv10 の最も詳細な説明 1- ターゲット検出 – 独自のデータセットを準備する (YOLOv5 と YOLOv8 の両方に適用可能)

IT・電化製品
この記事は約12分で読めます。

YOLOv10 の最も詳細な説明 1- ターゲット検出 – 独自のデータセットを準備する (YOLOv5 と YOLOv8 の両方に適用可能)

 

1.画像ファイルを用意する

ここで言及する重要な点は、最初にすべての画像ファイルをディレクトリ フォルダーに配置し、その後のトレーニング セット、テスト セット、および検証セットの分割を容易にすることです。同時に、ファイルが重複することはできません。それぞれの写真は最高のものである必要があります。下の写真のように、適切な名前を選択するのが最善です。各写真の接頭辞fish1は、その写真が「fish1」ビデオからのものであることを意味し、接尾辞「000001」は最初のフレームを意味します。画像ファイルはjpgまたはpngで、ここでは.jpgです。 「ここに画像の説明を挿入します」

2.ラベルラベルファイルを準備する

これは非常に重要です。多くの学生は以前に他のモデル トレーニングを使用したことがあり、使用されたラベルは coco 形式または他の形式でしたが、ここではそれらを YOLO 形式のラベルに均一に変換する必要があります。 すべてのラベルのラベル ファイルを保存するディレクトリを準備します。下の図に示すように、すべてのラベル ファイルがフォルダー内に用意されています。ファイル名は上記の画像ファイル名と 1 対 1 に対応していることがわかりますが、ここではすべて .txt ファイルです。 「ここに画像の説明を挿入します」各 txt ファイルの内容を見てみましょう。以下は、fish1_000001.txt ファイルの内容です。

0 0.441753 0.815461 0.061021 0.042763 0 0.395895 0.759868 0.066198 0.046053 0 0.497781 0.744737 0.060651 0.039474 0 0.575629 0.787171 0.059541 0.042763 0 0.566568 0.727303 0.059911 0.059868 0 0.561206 0.691447 0.058802 0.096053 0 0.523669 0.681908 0.054734 0.042763 0 0.549741 0.648355 0.061760 0.038816 0 0.622411 0.646382 0.051775 0.069079 0 0.700999 0.786184 0.056583 0.080263 0 0.688425 0.724671 0.041050 0.091447 0 0.679734 0.651974 0.062870 0.040789 0 0.669009 0.602632 0.044379 0.053947 0 0.614645 0.605263 0.049556 0.040789 0 0.568047 0.573355 0.049556 0.051974 0 0.529216 0.597697 0.052515 0.057237 0 0.470969 0.637171 0.057322 0.061184 0 0.452663 0.610197 0.063609 0.050658 0 0.396820 0.694408 0.054734 0.055921 0 0.340843 0.636322 0.053254 0.044737 0 0.280325 0.584211 0.051775 0.046053 0 0.346339 0.583553 0.057322 0.048684 0 0.711169 0.438158 0.024408 0.080263 0 0.681583 0.399342 0.023669 0.063158 0 0.367973 0.515132 0.036243 0.076316 0 0.353365 0.551645 0.042530 0.050658 0 0.296783 0.542763 0.029956 0.082895 0 0.249815 0.515461 0.024038 0.075658 0 0.286612 0.434868 0.035503 0.075000 0 0.286428 0.404276 0.019601 0.059868 0 0.375899 0.377303 0.040680 0.059868 0 0.560466 0.312171 0.030695 0.053289 0 0.538092 0.280592 0.011095 0.034868 0 0.543454 0.226316 0.028476 0.040789 0 0.357618 0.301974 0.017751 0.061842 0 0.386280 0.271711 0.037352 0.032895 0 0.397374 0.195395 0.040311 0.030263 0 0.280695 0.127632 0.035503 0.044737 0 0.338203 0.103289 0.041050 0.032895 0 0.405141 0.130263 0.043269 0.028947 0 0.429364 0.150987 0.043639 0.032237 0 0.429179 0.469079 0.038831 0.077632 0 0.427885 0.563158 0.048077 0.061842 0 0.482618 0.563487 0.064349 0.037500 0 0.551960 0.517105 0.051405 0.061842 0 0.549001 0.501316 0.040311 0.035526 0 0.718565 0.525329 0.028107 0.083553 0 0.655695 0.468750 0.023669 0.082237 0 0.697115 0.466776 0.025148 0.078289 0 0.526759 0.414306 0.034834 0.074178 0 0.533284 0.438158 0.039941 0.088158 0 0.506102 0.464145 0.029956 0.086184 0 0.477905 0.518336 0.045632 0.035868 0 0.387759 0.472039 0.049186 0.050658 0 0.381074 0.085451 0.036084 0.032638 0 0.394362 0.080737 0.032274 0.035539 0 0.323364 0.128533 0.037740 0.021592 0 0.435300 0.400431 0.040496 0.046112 0 0.372879 0.218283 0.038384 0.046645 0 0.337794 0.199641 0.031705 0.033257 0 0.291575 0.334826 0.022722 0.063849 0 0.245625 0.194227 0.015614 0.058296 0 0.644136 0.353197 0.014138 0.071395 0 0.589170 0.371263 0.016498 0.079026 0 0.627219 0.565461 0.063609 0.044079 0 0.626233 0.482260 0.031350 0.051836 0 0.630899 0.382102 0.019793 0.078401 0 0.561601 0.367086 0.024320 0.070987 0 0.585442 0.457530 0.034834 0.066480 0 0.255194 0.422036 0.016150 0.083941 0 0.314734 0.420063 0.017419 0.091270 0 0.268748 0.304063 0.033887 0.059151 0 0.266533 0.270260 0.033251 0.067046 0 0.326387 0.277299 0.022485 0.063099 0 0.318628 0.231951 0.022167 0.060283 0 0.258423 0.212891 0.034530 0.047336 0 0.274588 0.165941 0.032992 0.045776 0 0.358741 0.198010 0.014479 0.047928 0 0.367082 0.158563 0.041420 0.032928 0 0.601516 0.529605 0.061021 0.040789 0 0.301596 0.261954 0.022874 0.055553 0 0.312095 0.159832 0.032837 0.040757 0 0.334209 0.162372 0.036901 0.040559 0 0.367411 0.122694 0.033750 0.026086 0 0.411428 0.278618 0.014423 0.037500 0 0.389238 0.328289 0.026257 0.056579

データ行で構成されていることがわかりますが、データの各行の各データは何を意味するのでしょうか? 例として、データの最初の行を取り上げます。最初の 0 は、ターゲット フレームで囲まれたオブジェクトのカテゴリを表します。 0 0.441753 0.815461 0.061021 0.042763 、各行の最初のデータは次のようになります。 0. 独自のデータセットに猫、犬、人、魚の 4 つのカテゴリがあるとします。次に、0 匹の猫、1 匹の犬、2 匹の人間、および 3 匹の魚を割り当てることができます。 次の小数点以下の桁を見ると、 0.441753 0.815461ターゲット フレームの中心点を表し、 0.061021 0.042763ターゲット フレームの長さと幅を表します。ここにいる別の生徒は、なぜ中心点、長さ、幅が両方とも小数なのか尋ねたいと考えています。これは、YOLO の創設者によって定義されたラベルの形式に関連しています。これらは他の人によって定義されたルールであり、私たちはそれに従うだけで済みます。では、具体的なルールとは何でしょうか? 説明は次のとおりです。 「ここに画像の説明を挿入します」そのため、マークしたターゲットボックスを対応するYOLOターゲットボックス形式のデータに変換してください。上記のラベル ファイルには 87 行のデータがあります。つまり、この図には 87 個のターゲット ボックスがあり、各ターゲット ボックスの対応するカテゴリは 0-fish です。如果有不知道如何转数据的同学,点赞收藏该博客然后关注我私聊,单独一对一教学

3. データセットを比例的に分割します。

すべての生徒が最初の 3 つの手順に従って画像とラベルを準備したら、YOLO シリーズで公式に推奨されているトレーニング セット: 検証セット: テスト セット = 7:2:1 の比率に従って画像とラベルを分割します。 まず、トレーニングセット、検証セット、テストセットを格納するための空のフォルダーを事前に定義します。フォルダーのディレクトリは次のとおりです。 「ここに画像の説明を挿入します」 train、valid、test ディレクトリはすべて次の構造になっています。 「ここに画像の説明を挿入します」次のスクリプトが提供されています。

import os import random import shutil # 设置目录路径image_dir = 'D:/ModelsDatas/test/allimgs' # 改成你自己的原图片目录label_dir = 'D:/ModelsDatas/test/alllables' # 改成你自己的原标签目录# 获取图片和txt文件列表images = os . listdir ( image_dir ) labels = os . listdir ( label_dir ) # 随机打乱图片列表random . shuffle ( images ) # 计算训练集、验证集和测试集的数量total_images = len ( images ) train_count = int ( total_images * 0.7 ) val_count = int ( total_images * 0.2 ) test_count = total_images - train_count - val_count # 分配文件到训练集、验证集和测试集train_images = images [ : train_count ] val_images = images [ train_count : train_count + val_count ] test_images = images [ train_count + val_count : ] # 移动文件到对应的目录for image in train_images : # 移动图片和标签到训练集目录shutil . move ( os . path . join ( image_dir , image ) , 'D:/ModelsDatas/YOLO_datasets/train/images' ) # 请改成你自己的训练集存放图片的文件夹目录shutil . move ( os . path . join ( label_dir , image [ : - 4 ] + '.txt' ) , 'D:/ModelsDatas/YOLO_datasets/train/labels' ) # 请改成你自己的训练集存放标签的文件夹目录for image in val_images : # 移动图片和标签到验证集目录shutil . move ( os . path . join ( image_dir , image ) , 'D:/ModelsDatas/YOLO_datasets/valid/images' ) # 请改成你自己的验证集存放图片的文件夹目录shutil . move ( os . path . join ( label_dir , image [ : - 4 ] + '.txt' ) , 'D:/ModelsDatas/YOLO_datasets/valid/labels' ) # 请改成你自己的验证集存放标签的文件夹目录for image in test_images : # 移动图片和标签到测试集目录shutil . move ( os . path . join ( image_dir , image ) , 'D:/ModelsDatas/YOLO_datasets/test/images' ) # 请改成你自己的测试集存放图片的文件夹目录shutil . move ( os . path . join ( label_dir , image [ : - 4 ] + '.txt' ) , 'D:/ModelsDatas/YOLO_datasets/test/labels' ) # 请改成你自己的测试集存放标签的文件夹目录

4. 後続のトレーニング用に yaml ファイルを準備する

ファイルの名前は data.yaml であり、以下に示すように、train、test、valid と同じディレクトリに配置することをお勧めします。 「ここに画像の説明を挿入します」 data.yaml 内のファイルの内容と説明は次のとおりです。

names : # class names - 0 : fish # 类别号: 类别名称(需要改成自己的) #-1:cat #如果还有其他类别,以此往下加就行了,类别号请认真和自己当时目标框labels文件中的一一对应#-2:dog nc : 1 # number of classes 数据集中一共有几个类别,参考上面说的path : ultralytics/datasets/det/fish2 # 数据集路径(需要改成自己的,也就是train、test和valid目录的上级目录) train : train/images # 训练集路径(相对于数据集路径) val : valid/images # 验证集路径(相对于数据集路径) test : test/images # 测试集路径(相对于数据集路径)

上記のように、YOLO に必要な独自のデータセットが構築されました。次のステップはトレーニングです。