运行train.py

下载的是yolov5-v5版本

1、把模型文件的压缩文件上传到colab
2、!unzip /content/yolov5-5.0.zip解压缩
3、%cd /content/yolov5-5.0转移到当前文件夹
4、!pip install -r requirements.txt安装所有需要的库
5、打开画学习曲线的tensorboard工具
所有的训练loss等结果都会记录在tuns/train的文件夹中

%reload_ext tensorboard
%tensorboard --logdir=runs/train

6、运行!python train.py --rect,再刷新tensorboard,就可以看到训练过程了
(服务器训练模型的速度是真滴快!)

期间遇到的问题

  1. AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models.common‘ from ‘/yolov5-5.0/models/commo
  2. RuntimeError: result type Float can‘t be cast to the desired output type long int解决方法
  3. RuntimeError: Given groups=1, weight of size [512, 1024, 1, 1], expected input[1, 512, 8, 8] to have

运行detect.py文件

!python detect.py

遇到的问题

  1. ‘AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor
  2. RuntimeError: The size of tensor a (80) must match the size of tensor b (56) at non-singleton dimens

运行成功,结果如下:

模型文件说明

  1. data文件夹下的各种yaml文件是对不同数据集的初始化参数
  2. models文件夹中的各种yaml文件,是对yolov5模型在不同大小的前提下的模型架构文件,smlx的类别表示从小到大的模型架构
  3. train.py/test.py/detect.py分别是训练文件、测试文件、实际检测的应用文件
  4. 模型训练、检测的结果文件全都保存在runs文件夹中(这个文件夹只有在运行后才会生成)

detect.py的执行说明

  1. 如何执行(包括第一个参数source)
$ python detect.py --source 0  # webcamfile.jpg  # image 可以只检测一张图片(此时图片必须和py文件同一目录下)file.mp4  # video 可以直接检测一段mp4视频(也必须在同一目录下)path/  # directory 指定某一个装满了图片的文件夹目录,模型就会自动依次检测文件夹中的图片path/*.jpg  # glob 检测某一个文件夹中的特定图片'https://youtu.be/NUsoVlDFqZg'  # YouTube video 可以直接解析YouTube的视频连接(本质上还是先把视频下载下来,然后检测)'rtsp://example.com/media.mp4'  # RTSP, RTMP, HTTP stream  根据各种摄像头的执行协议,进行实时检测
  1. 第二个参数weights
    就是指定你要检测时用的预训练好的模型(具体而言就是一个预训练好的模型参数,即一个checkpoint文件)
    官方的yolov5s.pt和yolov5s6.pt的区别:
    就是不同的预训练模型对应不同的数据集的图片大小(img_size=640就用前者,=1280就用后者)

    默认是yolov5s.pt文件,这个文件的下载方法要会!

    1. 在github上选择yolov5的5.0分支
    2. 点击右边的release链接
    3. 在新的网页最底部,选择你想要的预训练好的checkpoint文件
    4. 将下载好的pt文件放在项目文件夹中(与detect.py文件同路径)
  2. 第三个参数conf-thres(可以缩写为conf)
    就是置信度,展示出所有信心》=conf的标记,小于的不标记
    当conf = 1,没有任何标记;conf = 0,全图都是标记(默认为0.25)

  1. img_size参数,就是在实际运行模型之前,对图片的resize成统一的固定大小格式,默认为640(不影响输出的图片大小,因为检测完后又会变回去)
  2. iou-thres(可以简化为iou?)参数,交并比,顾名思义就是交集占并集的比值,如果目标检测的两个框大于阈值,就选择一个合适的留下,其他的删去;如果交并比小于阈值,则把两个都保留
    举例说明:

    iou_thres较大时,下图中的两个框分别识别2个人,而如果设置的很小,就会导致只有一个框识别2个人

  3. view-img参数,
    含有action选项,说明这个参数要么为true要么为false,当设置action="store_true"时表示默认为false,只有当调用时有这个参数时,这个参数值才为true。
    它的作用是:在检测完一张图片时,直接在电脑上显示出结果来
    这个功能对于视频检测的实时观察很有用!
  4. save-txt,是否把训练结果作为txt文件保存下来(也是action类型的参数)
    保存路径为runs/detected/exp05/label文件夹中(和结果图片在一起)
    txt文件中的信息格式是这样子的,包括每一个标签的识别类型、中心点的xy坐标,中心点上下的长度和宽度
  5. nosave参数,action类型的参数,表示不要保存标注出来的图片
  6. classes参数,表示指定要显示识别出来的哪一类,默认是要把所有置信度合格的标注都显示出来,如果设置了这个参数,比如设置classes 0,那就只会显示出置信度合格的人的标注
  7. update参数,action类型(不重要),如果选了,表示在训练的时候,无关的参数统统删掉,以加快运算
  8. project参数,就是指定检测结果到哪个文件目录中(包括txt结果文件,图片文件等等)默认为runs/detect/
  9. name参数,就是这一次检测过程产生的结果文件的名称,(默认为exp)
  10. exist-ok参数,action类型,如果选了这个参数,检测生成的exp文件会覆盖掉上一次检测产生的exp文件。如果没选这个参数,默认是递加进去,比如exp1,exp2,exp3等等

小技巧:如何查看我当前设置了哪些参数的状态呢?——在下图的位置设置断点即可

train.py参数说明

  1. workers参数,default为8,指默认并行数量为8,可以加快运算,但是会出bug,建议改成0
  2. weight参数,用于初始化模型的参数(设置pt文件),是否在训练模型之前先继承一个预训练模型的参数,这里默认会继承yolov5s.pt文件的参数(迁移学习);如果不需要迁移学习,那就把default设置为空
  3. cfg参数,用于初始化模型的架构(设置yaml文件),可以指定models文件夹中的某一个yaml文件,进行初始化
  4. data参数,用于指定初始化的数据集,这里不直接指向数据集,而是指向初始化数据集的yaml文件
  5. hyp参数,用于设置模型训练有关的超参数,比如学习率之类的,这里默认使用data中的hyp.scratch.yaml文件,最适合训练coco数据集的超参数;也可以使用hyp.finetune.yaml文件,这是适合对模型进行微调的超参数,适合于VOC数据集
  6. epoch、batch_size、img_size都是学过的
  7. rect参数,一种action类型的参数,如果不设置,会默认裁剪图片为固定尺寸,空白处会填充(左图);如果设置了,不会可以裁剪成固定尺寸,不会添加额外的空白,因此可以加速运算(右图)
  8. resume参数,用于指定runs/train/某一个exp文件训练后的pt文件,然后从那个文件开始继续训练,默认为空
  9. nosave,action类型参数,训练过程不保存checkpoint文件
  10. notest ,action类型参数,训练过程中,每一个epoch不进行验证训练,只有最后一个epoch进行验证训练
  11. noautoanchor,action类型参数,默认用锚点方式进行目标检测(效率高),如果选择了这个参数,就会用滑动窗口的形式寻找目标(效率低)
  12. device参数,指定cpu或者coda
  13. multi-scale参数,action类型参数,如果选了,就对图片进行一个尺度变换
  14. adam参数,action类型参数,选了就用adam的梯度下降法;否则默认用SGD
  15. project参数,当前epoch训练的训练结果(包括txt文件、pt文件等等打包成exp文件夹)的存放位置(默认在runs/train/)
  16. name参数,就是当前epoch训练的训练结果(包括txt文件、pt文件等等打包成exp文件夹)的名称,默认是exp,你可以设置为别的
  17. exist-ok,同detected中的,选了就覆盖,不选就默认exp1,exp2。。
  18. 其余参数,有需要,百度

制作自己的训练数据集

  1. 官网已经告诉我们如何自己建一个数据集了

  2. 首先要自己设置一个和自定义数据集有关的yaml文件


    同时修改train.py的data参数:

  3. 收集图片

  4. 把收集好的图片,在指定网站上传,然后手动/自动标注(具体做法看视频)
    手动标注网站
    最后导出的数据格式示例:
    每个图片对应一个同名的txt文件,txt文件里面存放了每个标签的类别、中心点坐标、长宽

  5. 把收集到的图片、标签txt文件放到指定的文件夹中去

yolov5的首次colab运行相关推荐

  1. 龙芯处理器首次成功运行 OpenHarmony ;Log4j 被发现存在第三个漏洞;PyPI 服务出现中断 | 开源日报

    整理 | 宋彤彤 责编 | 屠敏 开源吞噬世界的趋势下,借助开源软件,基于开源协议,任何人都可以得到项目的源代码,加以学习.修改,甚至是重新分发.关注「开源日报」,一文速览国内外今日的开源大事件吧! ...

  2. 使用Colab 运行Novel AI

    全程需要科学上网 Colab免费版最大连接时长12小时,断开连接时,实例空间中所有资源都会被释放(包括我们上传的文件). 代码直接链接Colab 运行代码 等待执行完毕后点击地址: enjoy 源项目 ...

  3. Visual C++ 6.0安装后首次编译运行程序报错如何解决

    Visual C++ 6.0安装后首次编译运行程序报错,出现下图情况: 出现这样的情况是因为头文件的路径与实际路径不符. 解决方案: 点击"Tools"--"Option ...

  4. Yolov5使用Goole Colab训练VOC2007数据集

    本实验在Goole Colab上实现,pytorch在Colab上已经提前配置完毕,无需安装pytorch Colab官网:https://colab.research.google.com/ 本文使 ...

  5. 使用google colab运行RNN网络代码报告错误ValueError: Object arrays cannot be loaded when allow_pickle=False

    2019-04-28 使用RNN网络训练IMDB数据集,因本地机器运算速度过慢而选择google colab, 代码(train_data,train_labels),(test_data,test_ ...

  6. mvcnn代码详解_使用colab运行tensorflow版本的faster-rcnn

    ** 在colab下运行tensorflow版本的faster- rcnn ** 操作流程 操作过程我已经录成视频上传至B站,链接为 https://www.bilibili.com/video/BV ...

  7. 把Colab运行后生成的文件保存到Google drive

    问题描述:我是直接新建了一个.ipynb文件后,开始跑代码,断开连接后(比如下工了回宿舍睡觉),下次再打开,生成的模型文件并没有存储,又得重新训练一遍.因此,希望把模型文件存储在drive中,下次就能 ...

  8. 使用Google Colab运行项目

    文章目录 前言 一.注册Google Drive 二.将项目导入到Google Drive中 三.配置Google Colab 四.在Google Colab中挂载Google Drive 五.一些常 ...

  9. 谷歌colab运行自己的项目的一些细节

    1.连接谷歌colab from google.colab import drive drive.mount('/content/gdrive') 2.安装相关的包,版本要对应好,注意卸载掉之前的tf ...

  10. Jetson nano部署Yolov5 ——从烧录到运行 1:1复刻全过程

    前言 因为一次竞赛接触了jetson nano和yolov5,网上的资料大多重复也有许多的坑,在配置过程中摸爬滚打了好几天,出坑后决定写下这份教程供大家参考 事先声明,这篇文章的许多内容本身并不是原创 ...

最新文章

  1. Ubuntu安装Beyond-Compare 4
  2. 百度高德位置定位服务器,调用百度、高德地图App,百度地图网页版,App定位
  3. fft谱分析的误差有哪些原因造成的?如何减小分析误差。_回归分析 | 闯荡数据江湖的武功秘籍...
  4. SQL Serve里你总要去改变的3个配置选项
  5. python whl 包制作
  6. php email,两种PHP邮件发送的方式
  7. 用于角点检测的FAST算法
  8. 用智能墨水打造超灵敏传感器 “写”到哪里感知就到哪里...
  9. 王者荣耀服务器维护中有什么漏洞,王者荣耀:排位惊现漏洞,利用这个BUG一天上王者,三天登荣耀...
  10. Kubernetes详解(十九)——Kubernetes Pod控制器
  11. IE Developer ToolBar,这是IE用于调试页面的小工具
  12. vofuria的开发(4)更换目标图片(target)
  13. 坐标c语言输入数组中,求助 C语言中如何利用二维数组计算多个坐标之间的距离...
  14. php局部缓存,Smarty局部缓存的几种方法简介_php实例
  15. Nginx面试题总结大全
  16. 高效记忆/形象记忆(07)英语单词记忆-熟词拆分
  17. mysql反思范文_MySQL学习笔记(一)
  18. 如意云路由刷PandoraBox
  19. 框架内(React)网页打印的实现
  20. html5手机远程控制电脑,教你怎么用手机远程控制电脑

热门文章

  1. JAVA实现时间换算
  2. HTC6950新手基本操作方法
  3. 群晖万兆文件服务器,NAS进阶 篇三:2019年最具性价比的NAS硬件是什么暨黑群晖万兆搭建经验介绍...
  4. Spark Streaming项目实战
  5. ios手游游戏辅助挂机工具_ios挂机RPG游戏大全_iPhone挂机RPG类手游排行榜_ios挂机RPG类手游精选推荐_ios挂机RP类手游下载...
  6. 【Arduino实验15 红外遥控电风扇】
  7. java调用录像_java调用摄像头拍照录像
  8. 6个技巧,让你十年前的老电脑流畅起来。
  9. 互联网裁员形势严峻,2019年程序员的发展空间还有多大?
  10. Visual Studio 2019 路径不存在。请检查路径是否正确,然后再试。