yolov5的首次colab运行
运行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,就可以看到训练过程了
(服务器训练模型的速度是真滴快!)
期间遇到的问题
- AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models.common‘ from ‘/yolov5-5.0/models/commo
- RuntimeError: result type Float can‘t be cast to the desired output type long int解决方法
- RuntimeError: Given groups=1, weight of size [512, 1024, 1, 1], expected input[1, 512, 8, 8] to have
运行detect.py文件
!python detect.py
遇到的问题
- ‘AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor
- RuntimeError: The size of tensor a (80) must match the size of tensor b (56) at non-singleton dimens
运行成功,结果如下:
模型文件说明
- data文件夹下的各种yaml文件是对不同数据集的初始化参数
- models文件夹中的各种yaml文件,是对yolov5模型在不同大小的前提下的模型架构文件,smlx的类别表示从小到大的模型架构
- train.py/test.py/detect.py分别是训练文件、测试文件、实际检测的应用文件
- 模型训练、检测的结果文件全都保存在runs文件夹中(这个文件夹只有在运行后才会生成)
detect.py的执行说明
- 如何执行(包括第一个参数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 根据各种摄像头的执行协议,进行实时检测
第二个参数weights
就是指定你要检测时用的预训练好的模型(具体而言就是一个预训练好的模型参数,即一个checkpoint文件)
官方的yolov5s.pt和yolov5s6.pt的区别:
就是不同的预训练模型对应不同的数据集的图片大小(img_size=640就用前者,=1280就用后者)
默认是yolov5s.pt文件,这个文件的下载方法要会!- 在github上选择yolov5的5.0分支
- 点击右边的release链接
- 在新的网页最底部,选择你想要的预训练好的checkpoint文件
- 将下载好的pt文件放在项目文件夹中(与detect.py文件同路径)
第三个参数conf-thres(可以缩写为conf)
就是置信度,展示出所有信心》=conf的标记,小于的不标记
当conf = 1,没有任何标记;conf = 0,全图都是标记(默认为0.25)
- img_size参数,就是在实际运行模型之前,对图片的resize成统一的固定大小格式,默认为640(不影响输出的图片大小,因为检测完后又会变回去)
- iou-thres(可以简化为iou?)参数,交并比,顾名思义就是交集占并集的比值,如果目标检测的两个框大于阈值,就选择一个合适的留下,其他的删去;如果交并比小于阈值,则把两个都保留
举例说明:
iou_thres较大时,下图中的两个框分别识别2个人,而如果设置的很小,就会导致只有一个框识别2个人
- view-img参数,
含有action选项,说明这个参数要么为true要么为false,当设置action="store_true"时表示默认为false,只有当调用时有这个参数时,这个参数值才为true。
它的作用是:在检测完一张图片时,直接在电脑上显示出结果来
这个功能对于视频检测的实时观察很有用! - save-txt,是否把训练结果作为txt文件保存下来(也是action类型的参数)
保存路径为runs/detected/exp05/label
文件夹中(和结果图片在一起)
txt文件中的信息格式是这样子的,包括每一个标签的识别类型、中心点的xy坐标,中心点上下的长度和宽度
- nosave参数,action类型的参数,表示不要保存标注出来的图片
- classes参数,表示指定要显示识别出来的哪一类,默认是要把所有置信度合格的标注都显示出来,如果设置了这个参数,比如设置classes 0,那就只会显示出置信度合格的人的标注
- update参数,action类型(不重要),如果选了,表示在训练的时候,无关的参数统统删掉,以加快运算
- project参数,就是指定检测结果到哪个文件目录中(包括txt结果文件,图片文件等等)默认为
runs/detect/
- name参数,就是这一次检测过程产生的结果文件的名称,(默认为exp)
- exist-ok参数,action类型,如果选了这个参数,检测生成的exp文件会覆盖掉上一次检测产生的exp文件。如果没选这个参数,默认是递加进去,比如exp1,exp2,exp3等等
小技巧:如何查看我当前设置了哪些参数的状态呢?——在下图的位置设置断点即可
train.py参数说明
- workers参数,default为8,指默认并行数量为8,可以加快运算,但是会出bug,建议改成0
- weight参数,用于初始化模型的参数(设置pt文件),是否在训练模型之前先继承一个预训练模型的参数,这里默认会继承yolov5s.pt文件的参数(迁移学习);如果不需要迁移学习,那就把default设置为空
- cfg参数,用于初始化模型的架构(设置yaml文件),可以指定models文件夹中的某一个yaml文件,进行初始化
- data参数,用于指定初始化的数据集,这里不直接指向数据集,而是指向初始化数据集的yaml文件
- hyp参数,用于设置模型训练有关的超参数,比如学习率之类的,这里默认使用data中的hyp.scratch.yaml文件,最适合训练coco数据集的超参数;也可以使用hyp.finetune.yaml文件,这是适合对模型进行微调的超参数,适合于VOC数据集
- epoch、batch_size、img_size都是学过的
- rect参数,一种action类型的参数,如果不设置,会默认裁剪图片为固定尺寸,空白处会填充(左图);如果设置了,不会可以裁剪成固定尺寸,不会添加额外的空白,因此可以加速运算(右图)
- resume参数,用于指定runs/train/某一个exp文件训练后的pt文件,然后从那个文件开始继续训练,默认为空
- nosave,action类型参数,训练过程不保存checkpoint文件
- notest ,action类型参数,训练过程中,每一个epoch不进行验证训练,只有最后一个epoch进行验证训练
- noautoanchor,action类型参数,默认用锚点方式进行目标检测(效率高),如果选择了这个参数,就会用滑动窗口的形式寻找目标(效率低)
- device参数,指定cpu或者coda
- multi-scale参数,action类型参数,如果选了,就对图片进行一个尺度变换
- adam参数,action类型参数,选了就用adam的梯度下降法;否则默认用SGD
- project参数,当前epoch训练的训练结果(包括txt文件、pt文件等等打包成exp文件夹)的存放位置(默认在runs/train/)
- name参数,就是当前epoch训练的训练结果(包括txt文件、pt文件等等打包成exp文件夹)的名称,默认是exp,你可以设置为别的
- exist-ok,同detected中的,选了就覆盖,不选就默认exp1,exp2。。
- 其余参数,有需要,百度
制作自己的训练数据集
官网已经告诉我们如何自己建一个数据集了
首先要自己设置一个和自定义数据集有关的yaml文件
同时修改train.py的data参数:
收集图片
把收集好的图片,在指定网站上传,然后手动/自动标注(具体做法看视频)
手动标注网站
最后导出的数据格式示例:
每个图片对应一个同名的txt文件,txt文件里面存放了每个标签的类别、中心点坐标、长宽
把收集到的图片、标签txt文件放到指定的文件夹中去
yolov5的首次colab运行相关推荐
- 龙芯处理器首次成功运行 OpenHarmony ;Log4j 被发现存在第三个漏洞;PyPI 服务出现中断 | 开源日报
整理 | 宋彤彤 责编 | 屠敏 开源吞噬世界的趋势下,借助开源软件,基于开源协议,任何人都可以得到项目的源代码,加以学习.修改,甚至是重新分发.关注「开源日报」,一文速览国内外今日的开源大事件吧! ...
- 使用Colab 运行Novel AI
全程需要科学上网 Colab免费版最大连接时长12小时,断开连接时,实例空间中所有资源都会被释放(包括我们上传的文件). 代码直接链接Colab 运行代码 等待执行完毕后点击地址: enjoy 源项目 ...
- Visual C++ 6.0安装后首次编译运行程序报错如何解决
Visual C++ 6.0安装后首次编译运行程序报错,出现下图情况: 出现这样的情况是因为头文件的路径与实际路径不符. 解决方案: 点击"Tools"--"Option ...
- Yolov5使用Goole Colab训练VOC2007数据集
本实验在Goole Colab上实现,pytorch在Colab上已经提前配置完毕,无需安装pytorch Colab官网:https://colab.research.google.com/ 本文使 ...
- 使用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_ ...
- mvcnn代码详解_使用colab运行tensorflow版本的faster-rcnn
** 在colab下运行tensorflow版本的faster- rcnn ** 操作流程 操作过程我已经录成视频上传至B站,链接为 https://www.bilibili.com/video/BV ...
- 把Colab运行后生成的文件保存到Google drive
问题描述:我是直接新建了一个.ipynb文件后,开始跑代码,断开连接后(比如下工了回宿舍睡觉),下次再打开,生成的模型文件并没有存储,又得重新训练一遍.因此,希望把模型文件存储在drive中,下次就能 ...
- 使用Google Colab运行项目
文章目录 前言 一.注册Google Drive 二.将项目导入到Google Drive中 三.配置Google Colab 四.在Google Colab中挂载Google Drive 五.一些常 ...
- 谷歌colab运行自己的项目的一些细节
1.连接谷歌colab from google.colab import drive drive.mount('/content/gdrive') 2.安装相关的包,版本要对应好,注意卸载掉之前的tf ...
- Jetson nano部署Yolov5 ——从烧录到运行 1:1复刻全过程
前言 因为一次竞赛接触了jetson nano和yolov5,网上的资料大多重复也有许多的坑,在配置过程中摸爬滚打了好几天,出坑后决定写下这份教程供大家参考 事先声明,这篇文章的许多内容本身并不是原创 ...
最新文章
- Ubuntu安装Beyond-Compare 4
- 百度高德位置定位服务器,调用百度、高德地图App,百度地图网页版,App定位
- fft谱分析的误差有哪些原因造成的?如何减小分析误差。_回归分析 | 闯荡数据江湖的武功秘籍...
- SQL Serve里你总要去改变的3个配置选项
- python whl 包制作
- php email,两种PHP邮件发送的方式
- 用于角点检测的FAST算法
- 用智能墨水打造超灵敏传感器 “写”到哪里感知就到哪里...
- 王者荣耀服务器维护中有什么漏洞,王者荣耀:排位惊现漏洞,利用这个BUG一天上王者,三天登荣耀...
- Kubernetes详解(十九)——Kubernetes Pod控制器
- IE Developer ToolBar,这是IE用于调试页面的小工具
- vofuria的开发(4)更换目标图片(target)
- 坐标c语言输入数组中,求助 C语言中如何利用二维数组计算多个坐标之间的距离...
- php局部缓存,Smarty局部缓存的几种方法简介_php实例
- Nginx面试题总结大全
- 高效记忆/形象记忆(07)英语单词记忆-熟词拆分
- mysql反思范文_MySQL学习笔记(一)
- 如意云路由刷PandoraBox
- 框架内(React)网页打印的实现
- html5手机远程控制电脑,教你怎么用手机远程控制电脑
热门文章
- JAVA实现时间换算
- HTC6950新手基本操作方法
- 群晖万兆文件服务器,NAS进阶 篇三:2019年最具性价比的NAS硬件是什么暨黑群晖万兆搭建经验介绍...
- Spark Streaming项目实战
- ios手游游戏辅助挂机工具_ios挂机RPG游戏大全_iPhone挂机RPG类手游排行榜_ios挂机RPG类手游精选推荐_ios挂机RP类手游下载...
- 【Arduino实验15 红外遥控电风扇】
- java调用录像_java调用摄像头拍照录像
- 6个技巧,让你十年前的老电脑流畅起来。
- 互联网裁员形势严峻,2019年程序员的发展空间还有多大?
- Visual Studio 2019 路径不存在。请检查路径是否正确,然后再试。