Press "Enter" to skip to content

【目标检测算法】利用Colab在线训练YOLO-V5

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

文章目录

1. 新建Google Colaboratory
2. 谷歌硬盘里面的文件与colab进行挂载

二、导入yolov5代码并配置环境
三、导入自定义数据集‍

1. 新建mytest文件夹重复 二 操作
2. 数据集的处理与yaml文件的修改
3. train文件修改与训练结果

1. 导入一张自己制作的图片
2. 修改detect文件并查看结果

参考博客:

 

【colab】在colab上使用yolov5训练自己的模型

 

Yolov5模型训练——colab下yolov5的数据集训练

 

一、谷歌网盘

 

网址: 谷歌网盘 (科学上网0.0)

 

新建一个文件夹:colab

 

1. 新建Google Colaboratory

 

在文件夹中新建一个Google Colaboratory,类似一个jyputer实时脚本。

 

如果点击新建, 如果发现没有Google Colaboratory 。则点击 右侧的加号 ,搜索并添加应用拓展。安装完成后, 刷新界面 就可以看到啦。

 

进入Google Colaboratory。点击修改–>笔记本设置–>改成GPU并保存。

 

查看Google Colaboratory的GPU参数。

 

!nvidia-smi

 

 

2. 谷歌硬盘里面的文件与colab进行挂载

 

import os
from google.colab import drive
drive.mount('/content/drive')
 
path = "/content/drive/My Drive"
 
os.chdir(path)
os.listdir(path)

 

挂载后点击右侧文件,可以看到你的谷歌网盘。

 

二、导入yolov5代码并配置环境

 

1. 获取yolov5代码

 

%cd /content/drive/MyDrive/colab
!git clone https://github.com/ultralytics/yolov5.git

 

直接进入新建的文件夹,然后从云端直接下载yolov5源码。当然,你也可以直接本地上传。

 

2. 安装依赖包

 

!cd /content/drive/MyDrive/colab/yolov5 && pip install -r requirements.txt

 

 

3. 执行源码中的训练文件

 

!cd /content/drive/MyDrive/colab/yolov5 && python train.py

 

注意设置自己的路径设置是否正确,自行修改上述代码。

 

三、导入自定义数据集‍

 

这一步是最重要的。因为我的GPU实在是太垃圾了,实现在线部署就可以免费嫖一下。

 

这里我导入的是一个口罩识别数据集。

 

1. 新建mytest文件夹重复 二 操作

 

按照之前的步骤新建一个mytest文件夹。

 

import os
from google.colab import drive
drive.mount("/content/drive")
%cd /content/drive/MyDrive/mytest
!git clone https://github.com/ultralytics/yolov5.git
!cd /content/drive/MyDrive/mytest/yolov5 && pip install -r requirements.txt

 

2. 数据集的处理与yaml文件的修改

数据集的处理见:

【数据集的制作】VOC2007数据集格式的转换(voc2yolo)与划分

 

数据集格式如下:

 

# ├── yolov5
# └── Mask
#     └── Mask_data
#       └── images
#       └── labels

 

修改这两个yaml文件。

 

①models–>yolov5s_mask.yaml–> 修改:nc: 2 # number of classes

 

②data–>mask.yaml–>仿照coco128进行修改 (我用其他格式尝试了,发现只有这样可以找到文件)

 

path: ../Mask/Mask_data
train: images  
val: images
nc: 2
names: ['mask', 'no-mask']

 

 

3. train文件修改与训练结果

 

修改train中代码

 

parser.add_argument('--cfg', type=str, default='models/yolov5s_mask.yaml', help='model.yaml path')
    parser.add_argument('--data', type=str, default=ROOT / 'data/mask.yaml', help='dataset.yaml path')
  parser.add_argument('--epochs', type=int, default=50, help='total training epochs')

 

在ipynb中输入

 

!cd /content/drive/MyDrive/mytest/yolov5 && python train.py

 

在run文件夹中就可以看到我们训练生成的各种指标了。

 

传送门:

【目标检测算法】YOLO-V5训练结果的分析与评价

 

四、训练并测试

 

1. 导入一张自己制作的图片

 

 

2. 修改detect文件并查看结果

权重修改为训练后的模型
图片的源为绝对路径

def run(
        weights=ROOT / '/content/drive/MyDrive/mytest/yolov5/runs/train/exp8/weights/best.pt',  # model.pt path(s)
        source=ROOT / '/content/drive/MyDrive/mytest/Mask/Mask_data/detect',  # file/dir/URL/glob, 0 for webcam
        data=ROOT / 'data/mask.yaml',  # dataset.yaml path

 

parser.add_argument('--weights', nargs='+', type=str, default=ROOT / '/content/drive/MyDrive/mytest/yolov5/runs/train/exp8/weights/best.pt', help='model path(s)')
    parser.add_argument('--source', type=str, default=ROOT / '/content/drive/MyDrive/mytest/Mask/Mask_data/detect', help='file/dir/URL/glob, 0 for webcam')
    parser.add_argument('--data', type=str, default=ROOT / 'data/mask.yaml', help='(optional) dataset.yaml path')

 

ipynb中为:

 

!cd /content/drive/MyDrive/mytest/yolov5 && python detect.py
——————————————————————————————————————————————输出:
detect: weights=/content/drive/MyDrive/mytest/yolov5/runs/train/exp8/weights/best.pt, source=/content/drive/MyDrive/mytest/Mask/Mask_data/detect, data=data/mask.yaml, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=, view_img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=False, project=runs/detect, name=exp, exist_ok=False, line_thickness=1, hide_labels=False, hide_conf=False, half=False, dnn=False, vid_stride=1
YOLOv5  v6.2-94-g1aea74c Python-3.7.13 torch-1.12.1+cu113 CUDA:0 (Tesla T4, 15110MiB)
Fusing layers... 
YOLOv5s_mask summary: 213 layers, 7015519 parameters, 0 gradients, 15.8 GFLOPs
image 1/1 /content/drive/MyDrive/mytest/Mask/Mask_data/detect/test1.png: 448x640 5 masks, 1 no-mask, 13.1ms
Speed: 0.5ms pre-process, 13.1ms inference, 1.5ms NMS per image at shape (1, 3, 640, 640)
Results saved to runs/detect/exp3

 

输出结果:5 masks, 1 no-mask。可以从图看到效果并不好。

 

挖个坑:后续会继续学习如何改进网络。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。