当前位置:网站首页>跑跑yolov5吧
跑跑yolov5吧
2022-08-02 14:02:00 【weixin_50862344】
跑跑yolov5
如果只是要快速上手训练得到训练结果,我的建议是直接使用b导的代码。别问为什么,问就是我是b导小迷弟!!但是 其实可能只是我自己不会转换hhh
b导的代码好像是自己写的,会存在:下载的权重文件是pth,最后得到的文件是pth文件 的问题
基本上可以分为一下四个步骤:环境配置,数据集制作,yolov5文档修改以训练,预测。我主要讲数据集制作,yolov5文档修改。因为踩了比较多的坑hhhh
(1)使用labelimg数据集制作
yolov5不接受xml文档,但是网上很奇怪的就是大部分博主都喜欢“曲线救yolov5”(先制作xml,在转化成txt)

直接改成yolov5支持的yolo格式他不香嘛!!!

我只有一个类要训练所以我干脆就直接开了这些!!!
①Auto SAVE Mode:不开这个每次都得按s保存,不然就会有弹窗提醒
但是开这个也是有风险的,可能会出现手速过快跳了一张两张图片(不要问我怎么知道的的)
②Single Class Mode:因为我只有一个类,使用这个就不用去选
后面我如果还记得的话我就写一个检查标签少标注的脚本吧hhhhh
③Display Label:展示标签名字
这个的好处是大概率可以避免了重复标注!!
(2)yolov5文档修改
先说一下新创建的文件夹结构

修改yaml文件
因为我懒,所以我没有重新创建yaml文件,我是直接在data/coco128.yaml文件夹中修改的
- 改路径(文件路径,训练集路径,val路径)
直接pycharm选定文件夹右键copy path–>absolute path,绝对路径不容易报错 - 改nc(标签数量),name(标签名字)
修改train文件
定位到parse_opt,只讲修改的文件(错了再说)
- 改pt (绝对路径不容易报错)
parser.add_argument('--weights', type=str, default=ROOT / 'D:/computervision/deep_learning_model/yolov5-6.1/yolov5s.pt', help='initial weights path')
- –data
parser.add_argument('--data', type=str, default=ROOT / 'data/coco128.yaml', help='dataset.yaml path')
- –epochs
我训练的数据集比较小,–epochs一定一定要放小,不然容易过拟合
parser.add_argument('--epochs', type=int, default=100)
跑yolov5又出了什么错
随口提一嘴:真的很讨厌红色提示和报错一个shai!!!
(1)错误报告1:TensorBoard logging requires TensorBoard version 1.15 or above
实际上我的版本我是超过2.6,估计是另一个依赖包出了问题
- 先检查有没有下载tensorboard
在环境中输入下面这条命令,检查有没有tensorboard
conda list
- 如果版本已经超过1.15,那就来这个网址下
或者是直接在命令行下
pip install tb-nightly==2.8.0a20220120
到这里我基本上基本上就ok了
(2)错误报告2:AssertionError: No images found in ×××××
这个错误就放的有点蠢,我是将标签的文件夹放到了“val"后面,然后就就显示没有找到图片
留个小问题:yolo怎么得到标签文件?
检查一下yolov5的训练结果吧
可能是因为wandb版本不兼容的原因也有可能是这个原因
我的文件会比别家的少。
从下往上看:
- 三张训练结果图
- result.csv
从左到右第一行依次是①epoch,
②train/box_loss,③train/obj_loss,④train/cls_loss,
⑤metrics/precision,⑥metrics/recall,⑦metrics/mAP_0.5,⑧metrics/mAP_0.5:0.95,
⑨val/box_loss,⑩val/obj_loss, ①①val/cls_loss,
①②x/lr0,①③x/lr1,①④x/lr2
(1)train:训练集;val:验证集
(2) cls_loss用于监督类别分类,box_loss用于监督检测框的回归,obj_loss用于监督grid中是否存在物体。(可以看看这个博主的讲的比较细)
(3)!!!!!主要看这个!!!!!
mAP_0.5 : IoU设为0.5时,计算每一类的所有图片的AP,然后所有类别求平均,即mAP
mAP_0.5:0.95 : 表示在不同IoU阈值(从0.5到0.95,步长0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP。
- opt.yaml
配置文件没啥好说的
- hyp.yaml
估计是超参数
- 还有就是权重文件了
看到一篇博文对于train参数讲的很好就想记录一下
(1)“–image-weights”
是否启用加权图像策略,默认是不开启的;主要是为了解决样本不平衡问题;开启后会对于上一轮训练效果不好的图片,在下一轮中增加一些权重;
1.28"–label-smoothing"
是否对标签进行平滑处理,默认是不启用的;
在训练样本中,我们并不能保证所有sample都标注正确,如果某个样本标注错误,就可能产生负面印象,如果我们有办法“告诉”模型,样本的标签不一定正确,那么训练出来的模型对于少量的样本错误就会有“免疫力”采用随机化的标签作为训练数据时,损失函数有1-ε的概率与上面的式子相同,比如说告诉模型只有0.95概率是那个标签。
边栏推荐
- A number of embassies and consulates abroad have issued reminders about travel to China, personal and property safety
- 理解TCP长连接(Keepalive)
- els long block deformation conditions, boundary collision judgment
- 方舟生存进化淘宝面板服务器是怎么一回事?
- 你接受不了60%的暴跌,就没有资格获得6000%的涨幅 2021-05-27
- 【Tensorflow】AttributeError: '_TfDeviceCaptureOp' object has no attribute '_set_device_from_string'
- redis延时队列
- Flask框架深入一
- HALCON: 对象(object)从声明(declaration)到结束(finalization)
- shell脚本“画画”
猜你喜欢

Diodes and their applications

Mysql's case the when you how to use

The future of financial services will never stop, and the bull market will continue 2021-05-28

如何解决1045无法登录mysql服务器

mysql的case when如何用

The most complete ever!A collection of 47 common terms of "digital transformation", read it in seconds~

数据机构---第六章图---图的遍历---选择题

鲲鹏devkit & boostkit

如何解决mysql服务无法启动1069

网络安全第六次作业
随机推荐
C# using 使用方法
【Tensorflow】AttributeError: module ‘keras.backend‘ has no attribute ‘tf‘
C language improvement (3)
RKMPP库快速上手--(一)RKMPP功能及使用详解
What is the difference between web testing and app testing?
uview 2.x版本 tabbar在uniapp小程序里头点击两次才能选中图标
Large and comprehensive pom file example
Flask框架深入一
你接受不了60%的暴跌,就没有资格获得6000%的涨幅 2021-05-27
第八单元 中间件
文件加密软件有哪些?保障你的文件安全
Flask-SQLAlchemy
Supervision strikes again, what about the market outlook?2021-05-22
网页设计(新手入门)[通俗易懂]
els 长条方块变形条件、边界碰撞判定
GTK:Gdk-CRITICAL **: IA__gdk_draw_pixbuf: assertion ‘GDK_IS_DRAWABLE (drawable)’ failed
idea社区版下载安装教程_安装天然气管道的流程
第十五单元 分页、过滤
一维卷积神经网络_卷积神经网络的基础知识「建议收藏」
WiFi Association & Omnipeek Packet Capture Analysis