码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【目标检测算法】利用Colab在线训练YOLO-V5


    文章目录

    • 一、谷歌网盘
      • 1. 新建Google Colaboratory
      • 2. 谷歌硬盘里面的文件与colab进行挂载
    • 二、导入yolov5代码并配置环境
      • 1. 获取yolov5代码
      • 2. 安装依赖包
      • 3. 执行源码中的训练文件
    • 三、导入自定义数据集🐱‍🏍
      • 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
    
    • 1

    在这里插入图片描述

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

    import os
    from google.colab import drive
    drive.mount('/content/drive')
     
    path = "/content/drive/My Drive"
     
    os.chdir(path)
    os.listdir(path)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    挂载后点击右侧文件,可以看到你的谷歌网盘。
    在这里插入图片描述

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

    1. 获取yolov5代码

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

    直接进入新建的文件夹,然后从云端直接下载yolov5源码。当然,你也可以直接本地上传。
    在这里插入图片描述

    2. 安装依赖包

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

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

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

    注意设置自己的路径设置是否正确,自行修改上述代码。
    在这里插入图片描述

    三、导入自定义数据集🐱‍🏍

    这一步是最重要的。因为我的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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

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

    数据集格式如下:

    # ├── yolov5
    # └── Mask
    #     └── Mask_data
    #     	  └── images
    #     	  └── labels
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    修改这两个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']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    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')
    
    • 1
    • 2
    • 3

    在ipynb中输入

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

    在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
    
    • 1
    • 2
    • 3
    • 4
        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')
    
    • 1
    • 2
    • 3

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    输出结果:5 masks, 1 no-mask。可以从图看到效果并不好。
    在这里插入图片描述

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

  • 相关阅读:
    软件系统测试怎么进行?有什么注意事项?
    软考系统架构师知识点集锦四:信息安全技术基础知识
    【JavaWeb】虚拟路径和虚拟主机
    【JavaSE】第一个Java程序,“Write once, Run anywhere“——JDK、JRE、JVM的简单介绍
    【强化学习】07——规划与学习(Dyna-Q)
    程序员的自我修养-链接、装载与库_笔记_第10章:内存
    java 日期格式转换
    UE5 - ArchvizExplorer - 数字孪生城市模板 - 功能修改
    C语言程序设计笔记(浙大翁恺版) 第六周:数据类型
    5分钟 将“.py”文件转为“.pyd”文件
  • 原文地址:https://blog.csdn.net/weixin_45751396/article/details/126689880
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号