Training YOLO with a Custom Dataset: A Step-by-Step Guide
Object detection has become an essential technology in various industries, including security, automation, and robotics. YOLO (You Only Look Once) is one of the most popular real-time object detection models due to its speed and accuracy. In this blog post, we will walk you through training YOLO with your custom dataset, making it ready for real-world applications.
Step 1: Install Dependencies
To begin, install the necessary dependencies. The latest versions of YOLOv5 or YOLOv8 make training simpler and more efficient.
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
# Install required packages
pip install -r requirements.txt
For YOLOv8, you can install the Ultralytics package directly:
pip install ultralytics
Step 2: Prepare Your Dataset
YOLO requires data in a specific format, where each image has an associated annotation file in the YOLO format:
<class_id> <x_center> <y_center> <width> <height>
All values are normalized between 0 and 1. Below is the correct dataset folder structure:
/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
Creating the data.yaml File
This file defines the dataset structure and class names:
train: /path/to/dataset/images/train
val: /path/to/dataset/images/val
nc: 2 # Number of object classes
names: ['person', 'car'] # Object class names
Step 3: Train the Model
To train YOLOv5, run the following command:
python train.py --img 640 --batch 16 --epochs 50 --data dataset/data.yaml --weights yolov5s.pt --cache
For YOLOv8, use:
yolo train model=yolov8n.pt data=dataset/data.yaml epochs=50 imgsz=640
Step 4: Monitor Training Progress
YOLO logs various performance metrics during training. If using YOLOv5, results will be stored in runs/train/exp/. You can visualize training performance using TensorBoard:
tensorboard --logdir=runs/train
Step 5: Evaluate and Test the Model
Once training is complete, test the model on new images:
python detect.py --weights runs/train/exp/weights/best.pt --img 640 --source test_images/
For YOLOv8:
yolo detect model=runs/train/exp/weights/best.pt source=test_images/
Step 6: Export for Deployment
YOLO models can be exported to multiple formats for deployment:
python export.py --weights runs/train/exp/weights/best.pt --include onnx torchscript
For YOLOv8:
yolo export model=runs/train/exp/weights/best.pt format=onnx
Final Thoughts
Training YOLO with a custom dataset enables real-world object detection for applications such as security, traffic monitoring, and automation. By following this step-by-step guide, you can prepare, train, and deploy your YOLO model effectively.
Would you like help automating the dataset preparation or optimizing training settings? Let us know in the comments!
Get in Touch with us
Related Posts
- 为什么我们选择设计 SOC Integrator,而不是直接进行 Tool-to-Tool 集成
- Why We Designed a SOC Integrator Instead of Direct Tool-to-Tool Connections
- 基于 OCPP 1.6 的 EV 充电平台构建 面向仪表盘、API 与真实充电桩的实战演示指南
- Building an OCPP 1.6 Charging Platform A Practical Demo Guide for API, Dashboard, and Real EV Stations
- 软件开发技能的演进(2026)
- Skill Evolution in Software Development (2026)
- Retro Tech Revival:从经典思想到可落地的产品创意
- Retro Tech Revival: From Nostalgia to Real Product Ideas
- SmartFarm Lite — 简单易用的离线农场记录应用
- OffGridOps — 面向真实现场的离线作业管理应用
- OffGridOps — Offline‑First Field Operations for the Real World
- SmartFarm Lite — Simple, Offline-First Farm Records in Your Pocket
- 基于启发式与新闻情绪的短期价格方向评估(Python)
- Estimating Short-Term Price Direction with Heuristics and News Sentiment (Python)
- Rust vs Python:AI 与大型系统时代的编程语言选择
- Rust vs Python: Choosing the Right Tool in the AI & Systems Era
- How Software Technology Can Help Chanthaburi Farmers Regain Control of Fruit Prices
- AI 如何帮助发现金融机会
- How AI Helps Predict Financial Opportunities
- 在 React Native 与移动应用中使用 ONNX 模型的方法













