カスタムデータセットで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をトレーニングすることで、セキュリティ、交通監視、自動化などのリアルワールドアプリケーションに対応したオブジェクト検出を実現できます。このステップバイステップガイドに従えば、データの準備、トレーニング、デプロイまでを効率的に進めることができます。
データセットの準備やトレーニング設定の最適化についてサポートが必要ですか?コメントでお知らせください!
Get in Touch with us
Related Posts
- 手動からAI主導の航空電子メンテナンスへ
- Excelテンプレートから検査証明書を自動生成するシステム
- SimpliPOS(COFF POS):カフェのために設計されたシンプルで使いやすいPOSシステム
- Alpine.jsで作るローカルファーストWebアプリ — 高速・プライバシー重視・サーバーレス
- 🌍 Carbon Footprint Calculator(リサイクル版)— リサイクルによるCO₂削減量を見える化
- Recycle Factory Tools — リサイクル業務をもっとシンプルに
- ランニングフォーム・コーチ — メトロノーム/タッパー/ドリルタイマー/姿勢チェック
- カーボンクレジット計算ツールを作る方法
- SimRoomで理想の部屋に変身:AIが叶えるインテリアデザイン
- AI時代により賢くなるために ― 科学・数学・プログラミング・ビジネスの力
- 🎮 プロジェクトをもっと楽しくする方法:Octalysisフレームワークの活用
- スマート国境警備:衛星・HALE UAV・キューイングシステムの活用
- コーディング向けLM Studioの調整方法:`top_p`、`top_k`、`repeat_penalty`を理解する
- 工場向けリサイクル管理システム:スクラップ販売をもっと簡単・透明に
- ユースケースをお客様の言葉で書く方法
- AIバブルの後に残るもの:ゲームコンソールとローカルAIが真の約束
- SVマトリックスでRE102とRS103をつなぐ ― 船舶におけるEMC分析
- 危機のあとに信頼を取り戻すテクノロジーの力
- 美容クリニックの未来を変えるモバイルアプリ
- AIで進化するEC体験:画像解析・翻訳・クロスセルの新時代