前言
文章性质:实操笔记 📖
代码来源:GitHub – ultralytics/ultralytics: NEW – YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite
主要内容:本文详细记录了如何借助 Tabby 图形界面工具在 AutoDL 远程服务器上配置 YOLOv8 所需的项目环境,并且成功运行 YOLOv8 模型进行训练和测试,进而实现对自定义数据集的目标检测处理。
冷知识+1:小伙伴们不经意的 点赞 👍🏻 与 收藏 ✨ 可以让作者更有创作动力!
Prepare
在运行 YOLOv8 代码前,我们要先在 AutoDL 平台租用合适的远程服务器,并借助 Tabby 图形化界面上传代码和配置环境。
- AutoDL 官网:AutoDL 算力云 | 弹性、好用、省钱。
- Tabby 工具:Tabby – a terminal for a more modern age
借助 Tabby 图形界面在 Autodl 远程服务器上,根据 Github 官网中提供的 YOLOv8 流程进行配置:
代码链接:GitHub – ultralytics/ultralytics: NEW – YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite
1、AutoDL 租用远程服务器
在 AutoDL 官网的【算力市场】按照自身需求租用合适的 GPU :
【说明】由于 Github 项目中提到 ultralytics 的安装环境需要 Python >= 3.8 且 PyTorch >= 1.8 ,故按图设置镜像。
2、Tabby 设置 SSH 接口
(1)获取 SSH 登录
在 Tabby 设置 SSH 接口前,需要确保租用的 GPU 处于运行状态,还要获取 SSH 登录所需的指令与密码。
(2)配置 SSH 连接
打开 Tabby 工具的设置栏,在 Profiles & connections 中可以新建 SSH Connection :
(3)运行 SSH 连接
配置 SSH 接口的 Host 、Port 、Username 、Password 和接口名称后,我们就可以点击运行 ▶ 按钮啦!
3、Tabby 上传项目代码
将 Github 提供的 YOLOv8 相关代码上传至 Tabby 的 /root/autodl-tmp 目录,并借助 unzip 命令进行解压。
4、Tabby 配置项目环境
进入远程服务器终端命令窗口后,我们需要先更新 bashrc 中的环境变量。
执行命令:conda init bash && source /root/.bashrc
conda init bash && source /root/.bashrc
【说明】由图可知,我们已经默认进入了 base 环境,我们可以在 base 环境中安装依赖,也可以新建虚拟环境来安装依赖。
(1)新建 conda 环境
执行命令:conda create -n dehaze python=3.8
conda create -n dehaze python=3.8
(2)激活 conda 环境
执行命令:conda activate dehaze
conda activate dehaze
(3)配置 conda 环境 ①
执行命令:conda install pytorch=1.10.2 torchvision torchaudio cudatoolkit=11.3 -c pytorch
conda install pytorch=1.10.2 torchvision torchaudio cudatoolkit=11.3 -c pytorch
(4)配置 conda 环境 ②
官方提供了两种形式的安装方法,由于我们后面需要对 YOLOv8 进行改进,所以采用第二种安装方法。
安装方法一:若只对 YOLOv8 进行调用,则推荐使用这种安装方法。
pip install ultralytics
安装方法二:若要对 YOLOv8 进行开发,则推荐使用这种安装方法。
git clone https://github.com/ultralytics/ultralytics
cd ultralytics
pip install -e .
【说明】也可以不使用 git clone 命令,自己手动从 Github 官网下载相关代码,再上传至远程服务器,如前文所述。
Documentation
在 Github 提供的项目中,ultralytics 官方提供了 YOLOv8 Docs 文档来帮助我们更好地使用该模型。
【补充】在线上查询 YOLOv8 操作指导的过程中,我发现这个文档的指导更加容易上手,特将链接贴在此处:
【YOLO】YOLOv8训练自定义数据集(4种方式)_yolov8训练自己的数据集-CSDN博客文章浏览阅读5.5w次,点赞113次,收藏702次。使用YOLOv8训练自定义数据集_yolov8训练自己的数据集https://blog.csdn.net/weixin_42166222/article/details/129391260https://blog.csdn.net/weixin_42166222/article/details/129391260
Download
我们可以在 Github 提供的项目中下载在 COCO 等数据集上训练好的权重文件,如下图所示。
Quickstart
执行命令:yolo predict model=yolov8n.pt source=ultralytics/assets device=cpu
yolo predict model=yolov8n.pt source=ultralytics/assets device=cpu
【说明】在执行这个命令 quickstart 前,我们需要提前下载官方预训练好的 yolov8n.pt 权重文件并将其上传至对应目录中。
自定义数据集 🎈
在准备自定义数据集时,需要在项目的同级目录下创建 202406-data 文件夹,对数据集进行划分后的文件夹整体目录结构如下:
202406-data
– train
– images(训练数据集需要的图片)
– labels(训练数据集需要的标注文件)
– labels.cache(用于保存训练数据集中的类别标签)
– val
– images(验证数据集需要的图片)
– labels(验证数据集需要的标注文件)
– labels.cache(用于保存验证数据集中的类别标签)
Training ✨
执行命令:yolo task=detect mode=train model=yolov8.yaml data=202406.yaml epochs=30 batch=16
yolo task=detect mode=train model=yolov8.yaml data=202406.yaml epochs=30 batch=16
【警告】由于我在自建的 conda 环境中同时配置了 yolov8 和 yolov5,导致了一些错误的发生:
【彩蛋】202406.yaml 数据集配置文件:
train: /root/autodl-tmp/202406-data/train
val: /root/autodl-tmp/202406-data/val
# number of classes
nc: 8
# class names
names: ['person', 'rider', 'car', 'truck', 'bus', 'train', 'motorcycle', 'bicycle']
Validation ✨
执行命令:yolo task=detect mode=val model=runs/detect/train01/weights/best.pt data=202406.yaml batch=16
yolo task=detect mode=val model=runs/detect/train01/weights/best.pt data=202406.yaml batch=16
Prediction ✨
执行命令:yolo task=detect mode=predict model=runs/detect/train01/weights/best.pt source=ultralytics/data/images device=cpu
yolo task=detect mode=predict model=runs/detect/train85/weights/best.pt source=ultralytics/data/images device=cpu
评论前必须登录!
注册