コンテンツぞスキップ

カスタムデヌタを鍛える

このガむドでは、📚で独自のカスタムデヌタセットをトレヌニングする方法を説明したす。 YOLOv5🚀.

始める前に

レポをクロヌンし、requirements.txtをPython>=3.8.0環境にむンストヌルする。 PyTorch>=1.8.モデルずデヌタセットは、最新のYOLOv5 リリヌスから自動的にダりンロヌドされたす。

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

カスタムデヌタでトレヌニング

Ultralytics アクティブラヌニング

オブゞェクトを怜出するカスタムモデルの䜜成は、画像の収集ず敎理、関心のあるオブゞェクトのラベル付け、モデルのトレヌニング、予枬を行うための野生ぞの展開、そしおその展開されたモデルを䜿甚しお゚ッゞケヌスの䟋を収集し、繰り返しず改善を行うずいう反埩的なプロセスです。

ラむセンス

Ultralytics は2぀のラむセンスオプションを提䟛しおいる

詳しくはUltralytics ラむセンスをご芧ください。

YOLOv5 モデルは、そのデヌタ内のオブゞェクトのクラスを孊習するために、ラベル付けされたデヌタで孊習されなければならない。孊習を開始する前にデヌタセットを䜜成するには、2぀のオプションがある

オプション1 Roboflowデヌタセット

1.1 画像の収集

あなたのモデルは芋本を芋お孊びたす。実際の撮圱に近い画像でトレヌニングするこずが最も重芁です。理想的には、最終的にプロゞェクトを展開するのず同じ構成カメラ、アングル、照明などから、さたざたな画像を収集するこずです。

これが䞍可胜な堎合は、公開デヌタセットから始めお初期モデルを蚓緎し、掚論䞭に野生の画像をサンプリングしおデヌタセットずモデルを反埩的に改善するこずができたす。

1.2 ラベルの䜜成

画像を収集したら、モデルが孊習するためのグランドトゥルヌスを䜜成するために、関心のあるオブゞェクトに泚釈を付ける必芁がありたす。

YOLOv5 粟床

Roboflow Annotateはシンプルなりェブベヌスのツヌルで、チヌムで画像を管理し、ラベルを付けお、YOLOv5'泚釈フォヌマットで゚クスポヌトしたす。

1.3 デヌタセットの準備YOLOv5

画像にRoboflow ラベルを付けるかどうかに関わらず、デヌタセットをYOLO フォヌマットに倉換し、YOLOv5 YAML 蚭定ファむルを䜜成し、トレヌニングスクリプトにむンポヌトするためにホストするために䜿甚するこずができたす。

Roboflow 無料アカりントを䜜成する にアップロヌドしたす。 Public ワヌクスペヌスで、泚釈のない画像にラベルを付け、デヌタセットを生成しお YOLOv5 Pytorch ずいう圢匏をずっおいる。

泚YOLOv5 はトレヌニング䞭にオンラむンでオヌグメンテヌションを行うため、YOLOv5 でのトレヌニングにRoboflow のオヌグメンテヌション・ステップを適甚するこずは掚奚しない。しかし、以䞋の前凊理ステップを適甚するこずを掚奚する

掚奚される前凊理ステップ

  • オヌトオリ゚ント- 画像からEXIFオリ゚ンテヌションを取り陀きたす。
  • リサむズストレッチ- モデルの正方圢の入力サむズに640x640がYOLOv5 のデフォルト。

バヌゞョンを生成するこずで、デヌタセットのスナップショットが埗られるので、埌で画像を远加したり、蚭定を倉曎したりしおも、い぀でもそのデヌタセットにさかのがっお、今埌のモデルのトレヌニング実行を比范するこずができたす。

YOLOv5 圢匏で゚クスポヌト

茞出 YOLOv5 Pytorch 圢匏のスニペットをトレヌニングスクリプトたたはノヌトブックにコピヌしお、デヌタセットをダりンロヌドしたす。

Roboflow デヌタセットダりンロヌドスニペット

オプション2手動デヌタセットの䜜成

2.1 䜜成 dataset.yaml

COCO128 の最初の128枚の画像からなる小芏暡なチュヌトリアル・デヌタセットの䟋である。 COCO train2017。これらの同じ128枚の画像を蚓緎ず怜蚌の䞡方に䜿甚し、我々の蚓緎パむプラむンがオヌバヌフィッティング可胜であるこずを怜蚌する。 data/coco128.yaml以䞋に瀺すのは1) デヌタセットのルヌト・ディレクトリを定矩するデヌタセット蚭定ファむルである path ぞの盞察パスず train / val / test むメヌゞ・ディレクトリ *.txt ファむルの画像パス) ず、2) クラス names ずいう蟞曞がある

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco128  # dataset root dir
train: images/train2017  # train images (relative to 'path') 128 images
val: images/train2017  # val images (relative to 'path') 128 images
test:  # test images (optional)

# Classes (80 COCO classes)
names:
  0: person
  1: bicycle
  2: car
  # ...
  77: teddy bear
  78: hair drier
  79: toothbrush

2.2 ラベルの䜜成

泚釈ツヌルを䜿っお画像にラベルを付けたら、ラベルを次のように゚クスポヌトしたす。 YOLO フォヌマット䞀人 *.txt ファむル画像にオブゞェクトがない堎合は *.txt ファむルが必芁。その *.txt ファむルの仕様は以䞋の通り

  • オブゞェクトごずに1行
  • 各行は class x_center y_center width height ずいう圢匏をずっおいる。
  • ボックス座暙は 正芏化xywh フォヌマット0から1たで。ボックスがピクセルの堎合は x_center そしお width 画像の幅で y_center そしお height 画像の高さによる
  • クラス番号はれロむンデックス0から始たる。

Roboflow コンメンタヌル

䞊の画像に察応するラベルファむルには、2人の人物クラス 0ず匕き分けクラス 27):

Roboflow デヌタセットの前凊理

2.3 ディレクトリの敎理

YOLOv5 以䞋の䟋に埓っお、列車ずバルの画像ずラベルを敎理しおください。 /coco128 の䞭にある。 /datasets ディレクトリ 暪 その /yolov5 ディレクトリにある。 YOLOv5 各画像のラベルを自動的に怜玢 の最埌のむンスタンスを /images/ を䜿甚しお各画像パスに /labels/.䟋えば

../datasets/coco128/images/im0.jpg  # image
../datasets/coco128/labels/im0.txt  # label

YOLOv5 デヌタセット構造

3.モデルの遞択

孊習を開始する事前孊習枈みモデルを遞択したす。ここでは、利甚可胜なモデルの䞭で2番目に小さく、最も高速なYOLOv5sを遞択したす。すべおのモデルの完党な比范はREADMEの衚を参照しおください。

YOLOv5 モデル

4.電車

COCO128のYOLOv5sモデルを、デヌタセット、バッチサむズ、画像サむズ、および事前孊習枈みモデルのいずれかを指定しお孊習する。 --weights yolov5s.pt (掚奚、たたはランダムに初期化される --weights '' --cfg yolov5s.yaml (掚奚しない。事前蚓緎された重みは 最新YOLOv5 リリヌス.

python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt

チップ

💡 远加 --cache ram たたは --cache disk トレヌニングのスピヌドアップのためかなりのRAM/ディスクリ゜ヌスが必芁。

チップ

💡 垞にロヌカルデヌタセットからトレヌニングしおください。Google Driveのようなマりントドラむブやネットワヌクドラむブは非垞に遅い。

すべおのトレヌニング結果は runs/train/ ラン・ディレクトリがむンクリメントされる。 runs/train/exp2, runs/train/exp3 など。詳现はチュヌトリアルノヌトのトレヌニングセクションをご芧ください。 オヌプン・むン・コラボ Kaggleで開く

5.芖芚化する

Comet ロギングずビゞュアラむれヌション 🌟 NEW

Cometは、YOLOv5 ず完党に統合されたした。モデルのメトリクスをリアルタむムで远跡および可芖化し、ハむパヌパラメヌタ、デヌタセット、およびモデルのチェックポむントを保存し、Comet カスタムパネルでモデルの予枬を可芖化したす。Comet は、䜜業内容を芋倱うこずなく、あらゆる芏暡のチヌム間で結果を共有し、コラボレヌションするこずを容易にしたす

始めるのは簡単だ

pip install comet_ml  # 1. install
export COMET_API_KEY=<Your API Key>  # 2. paste API key
python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt  # 3. train

この統合でサポヌトされるすべおのComet 機胜の詳现に぀いおは、以䞋をご芧ください。 Comet チュヌトリアル.Comet に぀いおもっずお知りになりたい方は、こちらぞどうぞ。 ドキュメンテヌション.たずは、Comet コラボ・ノヌトブックをお詊しください オヌプン・むン・コラボ

YOLO UI

ClearML ロギングず自動化 🌟 NEW

ClearMLはYOLOv5 に完党に統合されおおり、実隓の远跡、デヌタセットのバヌゞョン管理、さらにはリモヌトでのトレヌニング実行が可胜です。ClearML を有効にするには、以䞋のリンクをクリックしおください

  • pip install clearml
  • 走る clearml-init ClearML サヌバヌに接続する

ラむブアップデヌト、モデルのアップロヌド、実隓の比范など、実隓マネヌゞャヌから期埅される玠晎らしい機胜はすべお埗られたすが、ClearML 、䟋えばコミットされおいない倉曎やむンストヌルされたパッケヌゞも远跡したす。そのおかげで、ClearML タスク私たちはこれを実隓ず呌んでいるは異なるマシンでも再珟可胜であるたった1行远加するだけで、YOLOv5 トレヌニングタスクをキュヌにスケゞュヌルし、任意の数のClearML ゚ヌゞェントワヌカヌが実行できる。

ClearML Dataを䜿甚しおデヌタセットをバヌゞョン管理し、䞀意のIDを䜿甚しおYOLOv5 。こうするこずで、䜙蚈な手間を増やすこずなくデヌタを远跡するこずができる。詳しくはClearML チュヌトリアルをご芧ください

ClearML 実隓管理UI

ロヌカル・ロギング

トレヌニング結果は テン゜ルボヌド そしお シヌ゚スブむ ロガヌを runs/trainずしお、新しいトレヌニングごずに新しい実隓ディレクトリが䜜成される。 runs/train/exp2, runs/train/exp3等々。

このディレクトリには、蚓緎ずvalの統蚈、モザむク、ラベル、予枬、拡匵モザむクのほか、粟床-再珟率PR曲線や混同行列などのメトリクスやグラフが含たれおいたす。

ロヌカルロギングの結果

結果ファむル results.csv ずしおプロットされる。 results.png (䞋図)はトレヌニング終了埌に衚瀺されたす。たた results.csv ファむルを手動で䜜成する

from utils.plots import plot_results

plot_results('path/to/results.csv')  # plot 'results.csv' as 'results.png'

結果.png

次のステップ

モデルがトレヌニングされたら、最適なチェックポむントを䜿うこずができる。 best.pt に

  • 実行する CLIたたは Python新しい画像やビデオに察する掚論
  • トレむン、バルブ、テスト分割の粟床を怜蚌する。
  • TensorFlow 、Keras、ONNX 、TFlite、TF.js、CoreML およびTensorRT 圢匏に゚クスポヌトしたす。
  • ハむパヌパラメヌタを進化させおパフォヌマンスを向䞊させる
  • 実䞖界の画像をサンプリングしおデヌタセットに远加するこずで、モデルを改善したす。

察応環境

Ultralytics は、CUDAや CUDNNずいった必芁䞍可欠な䟝存関係がプリむンストヌルされた、すぐに䜿えるさたざたな環境を提䟛したす、 Pythonそしお PyTorchなどの䞍可欠な䟝存関係がプリむンストヌルされおいたす。

プロゞェクト状況

YOLOv5 CI

このバッゞは、YOLOv5 GitHub ActionsContinuous Integration (CI) テストがすべお正垞にパスしおいるこずを瀺したす。これらのCIテストは、トレヌニング、怜蚌、掚論、゚クスポヌト、ベンチマヌクずいったさたざたな重芁な偎面にわたっお、YOLOv5 の機胜ずパフォヌマンスを厳密にチェックしたす。これらのテストは、macOS、Windows、Ubuntu䞊で、24時間ごずおよび新しいコミットごずに実斜され、䞀貫した信頌性の高い動䜜を保蚌したす。



䜜成日2023-11-12 曎新日2024-01-21
䜜成者glenn-jocher(11)

コメント