カスタムデータセットでYOLOをトレーニングする方法:ステップバイステップガイド

オブジェクト検出は、セキュリティ、自動化、ロボティクスなどの業界で不可欠な技術となっています。YOLO(You Only Look Once)は、そのスピードと精度の高さから最も人気のあるリアルタイムオブジェクト検出モデルの1つです。本記事では、カスタムデータセットを使用してYOLOをトレーニングし、実際のアプリケーションで使用できるようにする方法を説明します。


ステップ1:依存関係のインストール

まず、必要な依存関係をインストールします。最新のYOLOv5またはYOLOv8を使用すると、より簡単にトレーニングできます。

# YOLOv5リポジトリをクローン
git clone https://github.com/ultralytics/yolov5.git
cd yolov5

# 必要なパッケージをインストール
pip install -r requirements.txt

YOLOv8の場合は、Ultralyticsパッケージを直接インストールできます:

pip install ultralytics

ステップ2:データセットの準備

YOLOは特定のフォーマットでデータを必要とし、各画像には対応するアノテーションファイル(YOLOフォーマット)が必要です:

<class_id> <x_center> <y_center> <width> <height>

すべての値は0〜1の範囲で正規化する必要があります。データセットのフォルダ構成は以下のようになります:

/dataset
  ├── images
  │   ├── train
  │   │   ├── img1.jpg
  │   │   ├── img2.jpg
  │   ├── val
  │       ├── img3.jpg
  │       ├── img4.jpg
  ├── labels
  │   ├── train
  │   │   ├── img1.txt
  │   │   ├── img2.txt
  │   ├── val
  │       ├── img3.txt
  │       ├── img4.txt
  ├── data.yaml

data.yaml ファイルの作成

このファイルは、データセットの構成とクラス名を定義します:

train: /path/to/dataset/images/train
val: /path/to/dataset/images/val

nc: 2  # クラス数
names: ['person', 'car']  # クラス名

ステップ3:モデルのトレーニング

YOLOv5をトレーニングするには、以下のコマンドを実行します:

python train.py --img 640 --batch 16 --epochs 50 --data dataset/data.yaml --weights yolov5s.pt --cache

YOLOv8の場合は以下を使用します:

yolo train model=yolov8n.pt data=dataset/data.yaml epochs=50 imgsz=640

ステップ4:トレーニングの進行状況を監視

YOLOはトレーニング中にさまざまなパフォーマンス指標を記録します。YOLOv5を使用している場合、結果は runs/train/exp/ に保存されます。トレーニングのパフォーマンスを可視化するには、TensorBoardを使用できます:

tensorboard --logdir=runs/train

ステップ5:モデルの評価とテスト

トレーニングが完了したら、新しい画像でモデルをテストします:

python detect.py --weights runs/train/exp/weights/best.pt --img 640 --source test_images/

YOLOv8の場合:

yolo detect model=runs/train/exp/weights/best.pt source=test_images/

ステップ6:デプロイ用のエクスポート

YOLOモデルは、複数のフォーマットでエクスポートできます:

python export.py --weights runs/train/exp/weights/best.pt --include onnx torchscript

YOLOv8の場合:

yolo export model=runs/train/exp/weights/best.pt format=onnx

まとめ

カスタムデータセットを使用してYOLOをトレーニングすることで、セキュリティ、交通監視、自動化などのリアルワールドアプリケーションに対応したオブジェクト検出を実現できます。このステップバイステップガイドに従えば、データの準備、トレーニング、デプロイまでを効率的に進めることができます。

データセットの準備やトレーニング設定の最適化についてサポートが必要ですか?コメントでお知らせください!

Related Posts

Articles

Our Products


Related Posts

Articles

Our Products


Get in Touch with us

Speak to Us or Whatsapp(+66) 83001 0222

Chat with Us on LINEiiitum1984

Our HeadquartersChanthaburi, Thailand