当前位置:网站首页>跑跑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概率是那个标签。
边栏推荐
- Flutter 实现光影变换的立体旋转效果
- WeChat Mini Program-Recent Dynamic Scrolling Implementation
- LayoutParams的详解
- 世界上最大的开源基金会 Apache 是如何运作的?
- Sentinel源码(三)slot解析
- Detailed explanation of ORACLE expdp/impdp
- Flask-SQLAlchemy
- 网页设计(新手入门)[通俗易懂]
- ZABBIX配置邮件报警和微信报警
- 【Tensorflow】AttributeError: ‘_TfDeviceCaptureOp‘ object has no attribute ‘_set_device_from_string‘
猜你喜欢
Flask框架的搭建及入门
WeChat Mini Program-Recent Dynamic Scrolling Implementation
网络安全第四次作业
What are the file encryption software?Keep your files safe
监管再次重拳出击,后市如何?2021-05-22
第八单元 中间件
网络安全第二次作业
uview 2.x版本 tabbar在uniapp小程序里头点击两次才能选中图标
第十四单元 视图集及路由
Differences and concepts between software testing and hardware testing
随机推荐
数据机构---第六章图---图的遍历---选择题
Interview | with questions to learn, Apache DolphinScheduler Wang Fuzheng
WiFi Association & Omnipeek Packet Capture Analysis
CVE-2020-27986(Sonarqube敏感信息泄漏) 漏洞修复
Break the limit of file locks and use storage power to help enterprises grow new momentum
第五单元 保持状态
Minio文件上传
hsql是什么_MQL语言
replay视频播放器_怎么让手机音乐跟视频一起放
Sentinel源码(六)ParamFlowSlot热点参数限流
ORACLE expdp/impdp详解
Sentinel源码(二)入口方法分析
Flask框架的搭建及入门
Shell脚本完成pxe装机配置
stack && queue
Geoffery Hinton:深度学习的下一个大事件
如何自定义feign方法级别的超时时间
【ONE·Data || Getting Started with Sorting】
第十五单元 分页、过滤
期货具体是如何开户的?