目录
一、前期准备+所需环境配置
1.1. 虚拟环境创建
1.2 下载yolov8源码,在pycharm中进行配置
1.2.1 下载源码
1.2.2 在pycharm终端中配置conda
1.3 在pycharm的terminal中激活虚拟环境
1.4 安装requirements.txt中的相关包
1.5 pip安装其他包
1.6 预训练权重的下载
1.7 验证环境配置是否成功
二、数据集的准备
2.1 coco128数据集下载
2.2 coco128数据集格式
2.2.1 数据集文件夹
2.2.2 coco数据集的yaml文件
2.3 自建数据集
2.3.1 数据集格式
2.3.2 yaml文件
三、训练自己的数据集
3.1 输入运行命令
3.2 训练结果
编辑
3.3 验证
yolov8源码下载地址:GitHub - ultralytics/ultralytics: NEW - YOLOv8 in PyTorch > ONNX > OpenVINO > CoreML > TFLite
yolov8使用文档:
Home - Ultralytics YOLOv8 Docs
教学视频参考: 包会!YOLOv8训练自己的数据集_哔哩哔哩_bilibili
先用conda prompt创建一个虚拟环境,我的叫yolov8, python版本用3.10
conda create -n yolov8 python=3.10
源码地址:
GitHub - ultralytics/ultralytics: NEW - YOLOv8 in PyTorch > ONNX > OpenVINO > CoreML > TFLite
下载好解压之后用pycharm进行打开,然后把interpreter设置为刚刚创建的虚拟环境
关于如何在pycharm终端中配置虚拟环境可以看这篇:
pycharm终端配置,使用Anaconda_pycharm设置terminal打开anaconda的命令行窗口显示找不到本地终端-CSDN博客
具体:把settings-> Tools -> Terminal中的shell path换成你的conda prompt的位置
PS: 如果还是出现了CommandNotFoundError错误可以参考如下文章解决,我的错误就是根据这个解决的
CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘. If using_aoimono的博客-CSDN博客
使用conda activate命令激活虚拟环境,激活成功的标志就是命令行前面的(base)换成了你的虚拟环境的名字
pip install -r requirements.txt
安装代码运行所需的ultralytics和yolo包
pip install ultralytics
pip install yolo
源码下载界面中的readme文件中往下翻,找到yolovn8的预训练权重,点击下载,然后把下载好的文件放在项目代码的根目录下。
把权重文件放在根目录处
复制下面的代码来验证一下是否可以运行
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
PS:我在运行过程中遇到了ImportError: cannot import name '***' from 'collections'和No such command 'predict'两个问题,都已经解决了,解决方案如下:
[解决] 问题:ImportError: cannot import name ‘Callable‘ from ‘collections‘-CSDN博客
YOLOv8报错Error: No such command ‘predict‘.-CSDN博客
运行命令后可以实现检测,结果保存在runs->detect->predict文件夹下
可以看到已经完成了目标框和类别概率的显示和绘制
下载coco128文件:
https://ultralytics.com/assets/coco128.zip
下载之后再跟根目录下新建一个datasets文件夹,然后把coco128数据集放在下面。
自己的数据集的命名和排列方式也要按这个格式来。
coco128数据集的yaml文件如下所示,可以看到给出了数据集的路径、训练集和验证集所在的位置,所以仿照该文件写一个我们自己的yaml文件;
我使用了一个苹果树叶数据集,一共有4个病害类[insert,mlb,mossaic],使用labelimg标注了103张图片,然后存放在Apple文件夹下
apple.yaml文件如下所示,存放在Apple数据集的根目录下
# Ultralytics YOLO , AGPL-3.0 license
# COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Example usage: yolo train data=coco128.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco128 ← downloads here (7 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: E:\code_MWY\yolov8\ultralytics-main\datasets\Apple # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
names:
0: alternaria
1: insert
2: mlb
3: mossaic
设置好需要训练的数据集路径、所使用的具体yolo模型要加载的预训练权重文件,并且设置所需的epoch数量。
在terminal中输入下面的命令 ;
yolo detect train data=datasets/Apple/apple.yaml model=yolov8n.yaml pretrained=ultralytics/yolov8n.pt epochs=100 batch=4 lr0=0.01 resume=True
开始运行,等待结果。
训练结束后训练结果都保存在runs这个文件夹下,可以看到有所有的指标曲线的可视化;
还有模型训练出来的权重,best.pt为训练的最好的一组权重,后面可以使用。
训练100个epoch后的结果如下所示:
可视化结果:
可以看到对于的类别和位置都标注来了
输入下面的命令进行模型的验证,这里的models为训练的最好的那一组权重;
yolo detect val data=datasets/Apple/apple.yaml model=runs/detect/train/weights/best.pt batch=4
结果如下所示: