前言
文章性质:实操笔记 📖
代码来源:GitHub – ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
主要内容:本文详细记录了如何借助 Tabby 图形界面工具在 AutoDL 远程服务器上配置 YOLOv5 所需的项目环境,并且成功运行 YOLOv5 模型进行训练和测试,进而实现对自定义数据集的目标检测处理。
冷知识+1:小伙伴们不经意的 点赞 👍🏻 与 收藏 ✨ 可以让作者更有创作动力!
Prepare
在运行 YOLOv5 代码前,我们要先在 AutoDL 平台租用合适的远程服务器,并借助 Tabby 图形化界面上传代码和配置环境。
- AutoDL 官网:AutoDL 算力云 | 弹性、好用、省钱。
- Tabby 工具:Tabby – a terminal for a more modern age
借助 Tabby 图形界面在 Autodl 远程服务器上,根据 Github 官网中提供的 YOLOv5 流程进行配置:
代码链接:GitHub – ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > 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 上传项目代码
这里我们介绍了两种将项目代码上传到远程服务器的方式,我更推荐第一种方式,因为第二种方式费时更长(可能我的问题)。
(1)手动上传项目代码
将 Github 提供的 YOLOv5 相关代码上传至 Tabby 的 /root/autodl-tmp 目录,并借助 unzip 命令进行解压。
(2)Git 克隆项目代码
执行命令:git clone https://github.com/ultralytics/yolov5
git clone https://github.com/ultralytics/yolov5 # clone
遇到问题:fatal: unable to access 'https://github.com/ultralytics/yolov5/': GnuTLS recv error (-54): Error in the pull function.
即使我根据网上的建议将命令改为 git clone git://github.com/ultralytics/yolov5 ,也未能解决该问题~ 欢迎大家为我解惑!
不过!再次尝试执行 git clone https://github.com/ultralytics/yolov5 命令时,居然成功啦!我初步认为是网络问题。
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 环境 ②
执行命令:pip install -r requirements.txt
pip install -r requirements.txt
【说明】在根据 requirements.txt 安装依赖前,要确保当前路径为 yolov5 的根目录,例如这里是 ~/autodl-tmp/yolov5 。
Documentation
在 Github 提供的项目中,ultralytics 官方提供了 YOLOv5 Docs 文档来帮助我们更好地使用该模型。
Download
我们可以在 Github 提供的项目中下载预训练的权重文件,如下图所示。
Quickstart
1、准备工作
① 针对 python detect.py 命令,我们来具体看看 detect.py 这个文件:
② 我们可以在 detect.py 文件中看到默认设置,默认使用项目根目录下的 yolov5s.pt 权重文件:
③ 由于下载的项目代码中并不包含权重文件,因此需要我们自行上传 yolov5s.pt 权重文件:
2、快速开始
执行命令:python detect.py
python detect.py
自定义数据集 🎈
在准备自定义数据集时,需要在项目的同级目录下创建 202406-data 文件夹,对数据集进行划分后的文件夹整体目录结构如下:
202406-data
– train
– images(训练数据集需要的图片)
– labels(训练数据集需要的标注文件)
– labels.cache(用于保存训练数据集中的类别标签)
– val
– images(验证数据集需要的图片)
– labels(验证数据集需要的标注文件)
– labels.cache(用于保存验证数据集中的类别标签)
Training ✨
执行命令:python train.py –data data/202406.yaml –epochs 30 –cfg models/yolov5n.yaml –batch-size 16
python train.py –data data/202406.yaml –epochs 30 –cfg models/yolov5n.yaml –batch-size 16
AttributeError: module 'distutils' has no attribute 'version'
【土堆】手把手带你解决 YOLOv5 运行 train.py 文件时遇到的问题 AttributeError: module ‘distutils‘ & RuntimeError & …_yolov5中train.py的文件解码错误怎么改-CSDN博客文章浏览阅读1.9k次,点赞21次,收藏34次。这篇文章记录了作者在运行 YOLOv5 的 train.py 文件时遇到的一系列问题以及相应的解决方式,包括 torch 的版本问题, AttributeError: module 'distutils' has no attribute 'version 和 unzip 失败的问题。作者小白,请多包涵!_yolov5中train.py的文件解码错误怎么改https://blog.csdn.net/nanzhou520/article/details/134675092?spm=1001.2014.3001.5502
【彩蛋】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']
Testing ✨
执行命令:python detect.py –weights runs/train/exp/weights/best.pt –source ../202406-data/val
python detect.py –weights runs/train/exp/weights/best.pt –source ../202406-data/val
评论前必须登录!
注册