历时3天,在7位大神调教之下,从零开始完成了YOLOV8的搭建和自定义数据集的训练,特此记录如下,希望后来者少走弯路,弯道超车。
一. YOLOv8 从0开始环境搭建
参考1号大神:YOLOv8 从环境搭建到推理训练_河伯187的博客-CSDN博客
(一)ultralytics下载请参考1号大神方法
略,基础知识,不浪费篇幅
(二)Anaconda下载
不做伸手党,自行下载
(三)创建新环境yolov8
创建环境不用赘述了吧
(四)激活新环境YOLOV8
conda activate yolov8
(五)安装依赖(各种第三方库)
运行requirements.txt文件即可完成对所有库的安装
Note1:出现WARNING: Ignore distutils configs in setup.cfg due to encoding errors.
原因是 未设置全为UTF-8,参考如下2号大神链接
WARNING: Ignore distutils configs in setup.cfg due to encoding errors._hllyzms的博客-CSDN博客
(六)安装ultralytics
pip install ultralytics
(七)手动下载权重
https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt
拷到yolov8\ultralytics-main\ultralytics\yolo\v8\detect\yolov8n.pt
(八)测试运行
操作:首先进入到yolov8\ultralytics-main\ultralytics\yolo\v8\detect\predict.py,运行predict.py
python predict.py
(九)查看结果:
(十)操作命令,参见大神3号链接:
YOLOv8初体验:检测、跟踪、模型部署_DeepDriving的博客-CSDN博客
用命令行
yolo task=detect mode=predict model=yolov8n.pt source=ultralytics/assets/bus.jpg imgsz=640 show=True save
存储位置是绝对路径的: runs\detect\predict
视频检测
yolo task=detect mode=predict model=yolov8n.pt source=ultralytics/assets/test.mp4 imgsz=640 show=True save=True
Ultralytics YOLOv8.0.83 Python-3.8.16 torch-2.0.0+cpu CPU
YOLOv8n summary (fused): 168 layers, 3151904 parameters, 0 gradients, 8.7 GFLOPs
实例分割
yolo task=segment mode=predict model=yolov8x-seg.pt source=ultralytics/assets/test.mp4 imgsz=640 show=True save=True
调用摄像头
https://www.zhihu.com/question/445546731/answer/2989690866
yolo task=detect mode=predict model=yolov8n.pt source=0 imgsz=640 show=True save=True
停止用ctrl+c
二.引入GPU
大神4号参考链接:
YOLOv8项目推理从CPU到GPU_拉磨的驴肉火烧@Tieling Yu的博客-CSDN博客
YOLOv8项目推理从CPU到GPU
(一).查看torch和torchvision版本
pip list
torch 2.0.0
torchvision 0.15.1
(二).查看显卡支持的CUDA版本:nvidia-smi
可见,最高支持CUDA Version: 11.7 ,但后来发现11.7总是自动重启,
最终选择下载CUDA version 11.6
CUDA下载链接
CUDA Toolkit Archive | NVIDIA 开发者
(三).根据自己的操作系统、构架、版本、安装方式选择。
(四)卸载掉所有NIVIDIA软件,然后再安装。但是一定要记住自己的安装目录,下面要用到。有请大神5号
CUDA安装和检测【全】(nvcc命令找不到的解决办法)_可靠的豆包蟹同志的博客-CSDN博客
注意安装要增加路径
(五)安装cuDNN
cuDNN Archive | NVIDIA 开发者
微信登陆,注意注册
解压出来,复制其中bin、include和lib,粘贴到CUDA的安装目录中。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6
(六)安装pytorch
https://pytorch.org/get-started/previous-versions/
选择带有+cu的命令,我依据之前安装的版本,采用如下命令在anaconda的yolov8虚拟环境中进行了如下安装
pip install torch==1.13.0+cu116 torchvision==0.14.0+cu116 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu116
(七)安装成功 quadro P500 2G显存
用实例分割来做还是比较慢
三. 训练自己的数据集
(零)用LabelImg标注,有请大神6号:
https://blog.csdn.net/FriendshipTang/article/details/126513426
以下训练自己的红绿灯,倒计时数据集方法,源自大神7号链接,细节请移步大神7号豪宅:
YOLOv8教程系列:一、使用自定义数据集训练YOLOv8模型(详细版教程,你只看一篇->调参攻略),包含环境搭建/数据准备/模型训练/预测/验证/导出等_Zhijun.li@Studio的博客-CSDN博客
(一)在yolov8/data目录下新建Annotations, images, ImageSets, labels 四个文件夹
images目录下存放数据集的图片文件
Annotations目录下存放图片的xml文件(labelImg标注)
(二)按比例划分数据集
在yolov8根目录下新建一个文件splitDataset.py,运行
(三) 将xml文件转换成YOLO系列标准读取的txt文件
在同级目录下再新建一个文件XML2TXT.py, 注意classes = [“…”]一定需要填写自己数据集的类别,运行
(四) 查看自定义数据集标签类别及数量 (类型数量不多,此步跳过)
(五)修改数据加载配置文件
进入data/文件夹,新建RBG.yaml,内容如下,注意txt需要使用绝对路径
(六)开始训练
yolo task=detect mode=train model=yolov8n.pt data=data/RGB.yaml batch=4 epochs=100 imgsz=640 workers=4 device=0
注意这里根据显卡的实际情况要调整batch和workers值,作为上古GPU,只能都设置为4
Results saved to runs\detect\train3
7.模型验证
使用如下命令,即可完成对验证数据的评估
yolo task=detect mode=val model=runs/detect/train3/weights/best.pt data=data/RGB.yaml device=0
Results saved to runs\detect\val
8.模型预测
使用如下命令,即可完成对新数据的预测,source需要指定为自己的图像路径,或者摄像头(0)
yolo task=detect mode=predict model=runs/detect/train3/weights/best.pt source=data/images device=0
Results saved to runs\detect\predict6