1.下载YOLOv8源代码
2. 配置环境
bash
conda create -n yolov8 python=3.8
conda activate yolov8
pip install -r requirements.txt
pip install -e .
无需执行下面这步!
bash
pip freeze > requirements.txt # 导出conda环境中相关的包
3. 数据集准备
数据集标签的格式标注为yolo的txt格式,在labelimg选择YOLO即可,然后进行标注,最后把数据集划分为训练集,验证集,(测试集)即可
4.预训练模型
如果未改变网络结构,则可以加载官方在COCO数据集上训练好的预训练模型,加快网络的收敛速度,下载相应的目标检测预训练模型并导入预训练模型,下载链接:链接
5.配置参数
- 配置数据集路径,类别等(data.yaml文件)
- 训练轮次(epoch)
- 批次(batchsize)
- 数据增广等超参数...
6.开始训练
创建train.py文件,复制以下代码运行
python
from ultralytics import YOLO
if __name__ == '__main__':
# 加载模型
model = YOLO("ultralytics/ultralytics/cfg/models/v8/yolov8n.yaml")
# 加载预训练权重
model.load("yolov8n")
# 训练模型
results = model.train(data="ultralytics/data/data.yaml",
resume=True,
epochs=100,
project='train',
patience=30,
name='exp',
amp=False)
7.开始推理
创建val.py文件,复制以下代码运行
python
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO('runs/train/exp/weights/best.pt')
model.val(data='dataset/data.yaml',
split='test',
imgsz=640,
batch=1,
project='runs/val',
name='exp',
)
8.开始预测
创建detect.py文件,复制以下代码运行。如果需要对预测的结果进行一些处理,则需要知道预测的结果张量中代表的含义,参考链接如下:链接
python
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO('runs/train/exp/weights/best.pt') # select your model.pt path
model.predict(source='dataset/images/test',
project='runs/detect',
name='exp',
save=True,
)