カスタムデータセットで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
- 量子コンピューティングはAIのボトルネックを解決できるのか?
- ควอนตัมคอมพิวติ้งสามารถแก้ไขปัญหาคอขวดของ AI ได้หรือไม่?
- Can Quantum Computing Solve AI’s Biggest Bottlenecks
- วิธีฝึก YOLO ด้วยชุดข้อมูลที่กำหนดเอง: คำแนะนำทีละขั้นตอน
- Training YOLO with a Custom Dataset: A Step-by-Step Guide
- WazuhとAIの統合による高度な脅威検出
- การผสานรวม AI กับ Wazuh เพื่อการตรวจจับภัยคุกคามขั้นสูง
- Integrating AI with Wazuh for Advanced Threat Detection
- AIはどのようにして偽造された高級品を検出するのか?
- AI ช่วยตรวจจับสินค้าหรูปลอมได้อย่างไร?
Articles
- 🚀 LangChainを活用したエージェントAIチャットボットの開発
- วิธีสร้างแชทบอท AI อัจฉริยะด้วย LangChain
- 🚀 How to Build an Agentic AI Chatbot with LangChain
- Wazuhの理解: アーキテクチャ、ユースケース、実践的な応用
- ทำความเข้าใจ Wazuh: สถาปัตยกรรม, กรณีการใช้งาน และการนำไปใช้จริง
- Understanding Wazuh: Architecture, Use Cases, and Applications
- Djangoでの耐障害性ソフトウェア設計
- การออกแบบซอฟต์แวร์ที่ทนต่อความล้มเหลวด้วย Django
- Designing Fault-Tolerant Software with Django
- 実際に求められているオープンソースプロジェクトのアイデアを見つける方法
- วิธีค้นหาไอเดียโครงการโอเพ่นซอร์สที่ผู้คนต้องการจริง ๆ
- How to Find Open-Source Project Ideas That People Actually Want
- アウトプットの力:優れたプログラマーになるための方法
- พลังของการลงมือทำ: วิธีพัฒนาตัวเองให้เป็นโปรแกรมเมอร์ที่เก่งขึ้น
- The Power of Output: How to Become a Better Programmer
- 量子コンピューティングはAIのボトルネックを解決できるのか?
- ควอนตัมคอมพิวติ้งสามารถแก้ไขปัญหาคอขวดของ AI ได้หรือไม่?
- Can Quantum Computing Solve AI's Biggest Bottlenecks
- 提高 Django 性能:开发者和企业主的缓存指南
- Django のパフォーマンス向上: 開発者とビジネスオーナーのためのキャッシュガイド
Our Products
Related Posts
- 量子コンピューティングはAIのボトルネックを解決できるのか?
- ควอนตัมคอมพิวติ้งสามารถแก้ไขปัญหาคอขวดของ AI ได้หรือไม่?
- Can Quantum Computing Solve AI’s Biggest Bottlenecks
- วิธีฝึก YOLO ด้วยชุดข้อมูลที่กำหนดเอง: คำแนะนำทีละขั้นตอน
- Training YOLO with a Custom Dataset: A Step-by-Step Guide
- WazuhとAIの統合による高度な脅威検出
- การผสานรวม AI กับ Wazuh เพื่อการตรวจจับภัยคุกคามขั้นสูง
- Integrating AI with Wazuh for Advanced Threat Detection
- AIはどのようにして偽造された高級品を検出するのか?
- AI ช่วยตรวจจับสินค้าหรูปลอมได้อย่างไร?
Articles
- 🚀 LangChainを活用したエージェントAIチャットボットの開発
- วิธีสร้างแชทบอท AI อัจฉริยะด้วย LangChain
- 🚀 How to Build an Agentic AI Chatbot with LangChain
- Wazuhの理解: アーキテクチャ、ユースケース、実践的な応用
- ทำความเข้าใจ Wazuh: สถาปัตยกรรม, กรณีการใช้งาน และการนำไปใช้จริง
- Understanding Wazuh: Architecture, Use Cases, and Applications
- Djangoでの耐障害性ソフトウェア設計
- การออกแบบซอฟต์แวร์ที่ทนต่อความล้มเหลวด้วย Django
- Designing Fault-Tolerant Software with Django
- 実際に求められているオープンソースプロジェクトのアイデアを見つける方法
- วิธีค้นหาไอเดียโครงการโอเพ่นซอร์สที่ผู้คนต้องการจริง ๆ
- How to Find Open-Source Project Ideas That People Actually Want
- アウトプットの力:優れたプログラマーになるための方法
- พลังของการลงมือทำ: วิธีพัฒนาตัวเองให้เป็นโปรแกรมเมอร์ที่เก่งขึ้น
- The Power of Output: How to Become a Better Programmer
- 量子コンピューティングはAIのボトルネックを解決できるのか?
- ควอนตัมคอมพิวติ้งสามารถแก้ไขปัญหาคอขวดของ AI ได้หรือไม่?
- Can Quantum Computing Solve AI's Biggest Bottlenecks
- 提高 Django 性能:开发者和企业主的缓存指南
- Django のパフォーマンス向上: 開発者とビジネスオーナーのためのキャッシュガイド