当前位置:网站首页>跑跑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概率是那个标签。
边栏推荐
- 方舟生存进化淘宝面板服务器是怎么一回事?
- drf路由组件Routers
- The future of financial services will never stop, and the bull market will continue 2021-05-28
- web测试和app测试的区别?
- 第十四单元 视图集及路由
- 标量替换、栈上分配、同步消除
- C language improvement (3)
- 理解TCP长连接(Keepalive)
- Gstreamer Plugin注册流程详解
- 【Tensorflow】AttributeError: '_TfDeviceCaptureOp' object has no attribute '_set_device_from_string'
猜你喜欢
The most complete ever!A collection of 47 common terms of "digital transformation", read it in seconds~
第二讲 软件生命周期
deal!It's July 30th!
瑞吉外卖笔记——第10讲Swagger
Configure zabbix auto-discovery and auto-registration.
第十三单元 混入视图基类
About the development forecast of the market outlook?2021-05-23
C language improvement (3)
网络安全第五次作业
理解TCP长连接(Keepalive)
随机推荐
Awesome!Alibaba interview reference guide (Songshan version) open source sharing, programmer interview must brush
Differences and concepts between software testing and hardware testing
Raft对比ZAB协议
第十单元 前后连调
网络安全第四次作业
苏州大学:从 PostgreSQL 到 TDengine
瑞吉外卖笔记——第05讲Redis入门
A number of embassies and consulates abroad have issued reminders about travel to China, personal and property safety
Audio processing: floating point data stream to PCM file
期货具体是如何开户的?
Detailed explanation of ORACLE expdp/impdp
replay视频播放器_怎么让手机音乐跟视频一起放
世界上最大的开源基金会 Apache 是如何运作的?
如何解决1045无法登录mysql服务器
Break the limit of file locks and use storage power to help enterprises grow new momentum
关于Google词向量模型(googlenews-vectors-negative300.bin)的导入问题
Haystack的介绍和使用
Flask框架深入一
标量替换、栈上分配、同步消除
web测试和app测试的区别?