Yolo v5复现(自用)

目录

一、创建虚拟环境并激活

二、下载Yolo v5源码

三、安装Pytorch

3.1 检查CUDA版本

3.2 安装适用于CUDA11.8的Pytorch

四、加载新的虚拟环境yolov5到jupyter notebook

五、yolo v5官方复现

5.1 目标检测(以yolov5s为例)

5.2 验证模型(以yolov5s为例)

5.3 训练模型(以yolov5n为例)

5.4 TensorBoard可视化训练过程

六、训练自己的数据集并实现目标检测

6.1 数据集


基本环境:

    Ubuntu 20.04

    Python 3.10

    CUDA 11.8

    Pytorch 2.3.1

一、创建虚拟环境并激活

创建名为yolov5的conda虚拟环境,python版本为3.10

conda create -n yolov5 python==3.10  

conda activate yolov5

查看Python版本: 

二、下载Yolo v5源码

官方:https://github.com/ultralytics/yolov5?tab=readme-ov-file

git clone https://github.com/ultralytics/yolov5

进入文件夹并安装环境

cd yolov5
pip install -r requirements.txt

三、安装Pytorch

3.1 检查CUDA版本

nvcc -V

表明CUDA版本为11.8

3.2 安装适用于CUDA11.8的Pytorch

1. 进入官方网站地址:https://pytorch.org/get-started/previous-versions/

2. 安装V2.3.1版本的Pytorch

conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=11.8 -c pytorch -c nvidia

3. 进入网站:https://download.pytorch.org/whl/torch_stable.html,下载CUDA支持的Pytorch

cu118   表示CUDA的版本为11.8

torch-2.3.1   表示torch版本为V2.3.1

cp310   表示Python的版本为3.10

4. 将下载的本地文件移动到Ubuntu

sudo cp /mnt/d/torch-2.3.1+cu118-cp310-cp310-linux_x86_64.whl ~

5. 安装CUDA支持的Pytorch

pip install torch-2.3.1+cu118-cp310-cp310-linux_x86_64.whl

6. 检查安装结果

pip list

出现 torch 2.3.1+cu118,表明适用于CUDA-11.8版本的Pytorch-V2.3.1安装成功

四、加载新的虚拟环境yolov5到jupyter notebook

1. 进入已创建的虚拟环境,安装ipykernel库

conda install ipykernel

2. 将当前虚拟环境添加到jupyter内核

python -m ipykernel install --user --name yolov5 --display-name yolov5

3. 在yolov5文件夹下进入jupyter notebook

cd yolov5

jupyter notbook

4. 打开tutorial.ipynb,切换Kernel为规定的yolov5

五、yolo v5官方复现

5.1 目标检测(以yolov5s为例)

使用模型实现目标检测功能

 进入Detect模块,执行代码

       自定义图片的原图和检测结果

5.2 验证模型(以yolov5s为例)

1. 进入Validate模块

2. 执行代码在线下载COCO数据集

# Download COCO val
torch.hub.download_url_to_file('https://github.com/ultralytics/assets/releases/download/v0.0.0/coco2017val.zip', 'tmp.zip')  # download (780M - 5000 images)
!unzip -q tmp.zip -d ../datasets && rm tmp.zip  # unzip

3. 验证结果

# Validate YOLOv5s on COCO val
python val.py --weights yolov5s.pt --data coco.yaml --img 640 --half

最终结果存储在 runs/val/文件夹。每执行一次将会依次创建一个exp文件夹

5.3 训练模型(以yolov5n为例)

训练集:train

测试集:test

验证集:val

1. 进入Train板块,使用coco128数据集训练模型

 2. 修改train.py代码,设置为GPU运行(默认CPU运行)

--device中,设置default="0",即使用默认的GPU。

若有多个GPU,可更换数字使用特定的GPU。default=" "表示使用CPU

3. 训练模型

# Train YOLOv5n on COCO128 for 300 epochs
python train.py --img 640 --batch 16 --epochs 300 --data coco128.yaml --weights yolov5n.pt --cache

5.4 TensorBoard可视化训练过程

1. 安装TensorBoard

pip install tensorboard

2. 启动TensorBoard

tensorboard --logdir runs/train

3. 使用浏览器查看

 打开网站查看:http://localhost:6006/

六、训练自己的数据集并实现目标检测

官方教程:https://docs.ultralytics.com/yolov5/tutorials/train_custom_data/

6.1 原始数据集

开源数据集PCBA-DET     https://github.com/ismh16/PCBA-Dataset

  共包含4000张图片,8种故障类型,数据集样式为YOLO数据格式。

6.2 数据标注(非YOLO模式需要进行的步骤)

1. 在命令行安装

sudo apt-get install pyqt5-dev-tools
git clone https://github.com/tzutalin/labelImg.git
cd labelImg
make all

2. 启动labelImg: labelImg

  打开后界面如下:

3. 将要标注的数据集存放在images文件夹下,对应每张图片标注后的YOLO文件格式保存在labels文件夹下。

labels文件夹下每张图片对应一个.txt文件,包括分类的类型、位置坐标等信息

6.3 数据集划分

  本文采用7:2:1将4000张图片划分为训练集、验证集、测试集。

import splitfolders
import os
import shutil 

%输入的文件路径
input_path = 'newdata'  

%划分之后保存的文件路径
output_path = 'finaldata'

# 划分数据集train:val:test = 7:2:1
splitfolders.ratio(input=input_path, output=output_path, seed=1234, ratio=(0.7, 0.2, 0.1)) 

其中newdata文件夹下所有文件会按对应情况同时划分。

     最终共得到2800张训练图片、800张验证图片以及400张测试图片。

6.4 模型训练

1. 进入data文件夹下,创建训练集、验证集以及测试集的文件路径(根据自己情况修改)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ./finaldata  # dataset root dir
train: images/train  # train images 
val: images/val  # val images 
test: images/test # test images (optional)

# Classes

nc: 8

names:
  0: fanScratch
  1: mbScratch
  2: fanConnectionMissing
  3: fanConnectionLoose
  4: mbScrewLoose
  5: mbScrewMissing
  6: fanScrewLoose
  7: fanScrewMissing
  

2. 修改train.py中的代码,变为在GPU下运行

3. 下载需要的yolov5模型,如yolov5s.pt

4. 模型训练(在train.py文件所在的路径下执行代码)

python train.py --img 640 --batch 16 --epochs 300 --data mainBoard.yaml --weights yolov5s.pt

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值