环境
硬件环境:实验室集群-显卡RTX4090
容器操作系统:Ubuntu18.04
软件:Anaconda下py3.9+pytorch2.1.2(cuda11.8版本)
Tips:如果显卡是RTX4090且安装的驱动版本最高支持cuda11.8及以上,那么安装pytorch-gpu版本的时候需要选择安装其中的cuda11.8及以上的版本,低版本的可能会有问题,另外不需要事先在集群环境中安装cuda和cudnn,pytorch-gpu版本自带cuda工具包。安装pytorch可参考该博客:两步解决conda安装pytorch时下载速度慢or超时的问题_anaconda下载pytorcg太慢-CSDN博客
虽然博主的操作系统是Ubuntu,但是中间操作应该也可以在Windows系统上生效。
YOLOv8安装
YOLOv8官方文档:快速入门 -Ultralytics YOLOv8 文档
YOLOv8项目地址:ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite (github.com)
安装准备:
在YOLOv8GitHub项目中的pyproject.toml可以看到项目安装所需的依赖,下图中显示安装YOLOv8需要python版本为3.8及以上,这里博主选择3.9版本。
然后在该文件中找到需要提前安装的依赖包
方便起见,博主把这部分改成了requirements.txt文件,然后用pip进行安装
# requirements.txt
matplotlib>=3.3.0
numpy>=1.22.2
opencv-python>=4.6.0
pillow>=7.1.2
pyyaml>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch>=1.8.0
torchvision>=0.9.0
tqdm>=4.64.0 # progress bars
psutil # system utilization
py-cpuinfo # display CPU info
thop>=0.1.1 # FLOPs computation
pandas>=1.1.4
seaborn>=0.11.0 # plotting
命令为
pip install -r your_path/requirements.txt
安装完依赖后安装YOLOv8,这里博主使用官方推荐的pip安装方式
# Install the ultralytics package from PyPI
pip install ultralytics
YOLOv8使用
下载模型权重和数据集
博主在使用官方yolo命令以及python文件训练模型时,它会从github上下载模型权重(.pt文件)和数据集,在国内非常慢,所以先把所需的模型权重和数据集下好,放到本地项目目录中备用。
终端(较为快捷)
下载链接可以在运行对应的命令或者python文件时,在终端中找到链接去下载:
官方文档下载
模型权重在官方文档下图位置可以下载。
数据集可以在官方文档中的数据集中的yaml部分找到下载链接下载
点击上图的COCO,然后在跳转到的页面找到yaml文件,划到最下面找到下载链接。
Tips:将数据集下载好后,在对应的yaml文件中把路径改成数据集所在路径,不然可能出问题。
运行模型,进行训练
Python
下载好模型权重和数据集后,在Python文件中修改路径,还有把amp模式关闭,不然还是会从GitHub那下载一次权重文件,有人在GitHub项目那的issues里提过这个问题,目前最简单的解决方式是把amp模式关闭,即在模型训练函数加上amp=Flase。
运行Python文件,运行结果放在Python文件所在文件夹的同级目录下,顺带一提,TensorBoard可视化模型训练结果时选择的日志目录是your_path/runs/对应的train/detect。另外,如果想让新的训练结果覆盖之前的,可以在模型训练函数加上exist_ok=True。
模型训练时在model summy那里会等待较长时间。
训练结果如模型权重等,放在下图红框所示路径中。
CLI命令
如果直接使用官方给的yolo命令,请注意先进入我们的项目路径,运行结果会放到该路径底下。
# 目标检测模型训练
yolo detect train data=your_path/coco128.yaml model=your_path/yolov8n.pt epochs=10 lr0=0.01 amp=False
# 目标检测模型预测,使用目标检测训练结果中最好的模型权重
yolo detect predict model=your_path/runs/detect/对应的train/weights/best.pt source=your_test_data_path
还可以在官方文档中找到如下部分,直接修改配置文件,然后运行指定配置文件的yolo命令。
关于Python模型训练函数和CLI参数以及配置文件的说明在官方文档的这里可以找到:
写在最后
遇到问题可以先看看YOLOv8的官方文档以及项目那里的issues,说不定解决方法就在这里。