一、环境搭建:
1、VSCode安装Python环境
2、安装CUDA11.8 和 cuDNN
https://zhuanlan.zhihu.com/p/102966512
3、安装Miniconda3
4、Miniconda创建运行环境
conda create -n yv8 python=3.8
conda activate yv8
5、Pytorch安装
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
6、安装yolov8环境
pip install ultralytics
如果pip失败
conda install -c conda-forge ultralytics
测试环境:
yolo task=detect mode=predict model=yolov8n.pt imgsz=640 show=True save=True
二、自定义数据训练:
1、下载YOLOV8项目放到磁盘任意位置用VSCode打开,python环境选择yv8
github链接:https://github.com/ultralytics/ultralytics
2、创建自己的训练数据目录结构在F盘根目录创建文件夹,此次文件路径名最好别改,实际测试中改了名字训练时会报错
datasets
├─ test
│ ├─ images
│ └─ labels
├─ train
│ ├─ images
│ └─ labels
├─ valid
│ ├─ images
│ └─ labels
└─ data.yaml (需要自行指定 test train valid 的images路径 以及训练输出的分类和个数)
3、将源标定文件导入到训练数据集中
使用createDatasets.py文件image_dir指定输入标定源图和label_dir指定标定信息
4、使用数据集进行训练,参数看步骤1中源码ultralytics/cfg/default.yaml进行调整和设置
yolo task=detect mode=train model=E:/WorkSpace/VSCode/yv8Train/datasets/yolov8.yaml data=E:/WorkSpace/VSCode/yv8Train/datasets/data.yaml epochs=1000 imgsz=640 resume=True workers=4
参数简述:
a、mode:模式选择 train训练 predict识别
b、model:训练或者实别调用的库支持pt和yaml
c、data:数据指向训练数据集中自己创建的data.yaml
d、epochs:训练时的数据集轮询的次数
e、imgsz:训练数据的分辨率
当前对应分辨率640*640 [480,640]对应分辨率640*480f、resume:中断续训,训练过程中发送中断可以继续接上
续训:yolo task=detect mode=train model=E:/WorkSpace/VSCode/yv8Train/runs/detect/train/weights/last.pt epochs=1000 imgsz=640 resume=True workers=4
次数model等于断续前输出的last.pt的位置g、workers:开多少个线程进行数据加载
一般开始是将num_workers设置为等于计算机上的CPU数量然后开始往下调,选一个最优值
h、patience:训练结果多少轮没有变化则自动停止训练
i、name:输出目录文件夹名
j、plots:训练输出目录是否覆盖,如果是False每次训练都会自动生成一个输出目录
k、batch:设置GPU的最高占用率
5、识别
yolo task=detect mode=predict model=E:/WorkSpace/VSCode/yv8Train/runs/detect/train/weights/best.pt conf=0.25 source='F:/PIC/test/1.jpg'
参数简述:
a、task:模式选择 train训练 predict识别
b、model:此时选择训练输出目录的best.pt
c、conf:置信度
d、source:识别的图片路径
三、其他:
1、python文件,均需要在yv8下运行
Pytorch环境校验 checkEnv.py
训练数据导入,建好文件夹后createDatasets.py
train.py 训练的python文件,可以用此python进行训练完全抛弃命令行
2、参考文章
参考视频