YOLOv5目标检测实验

这篇具有很好参考价值的文章主要介绍了YOLOv5目标检测实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

YOLOv5目标检测实验


最近在用YOLOv5跑一些目标检测的东西,这是自己日常学习的一些总结!后期会继续更新!有问题也欢迎批评指正!如果雷同请见谅!

1.数据集

  • 创建数据集是在detect.py里面的create_dataloader,并在主函数里面调用
  • yolov5在计算资源的调用上采用了torch.nn.parallel.DistributedDataParallel(DDP,多张显卡并行),因为即使只是用单张显卡,torch.nn.DataParallel(DP)也比DDP慢。这个在train.py中设置
  • 训练完成后会最后一个exp的weights下保存最好的一次后最后一次的model
  • data的hpy里面可以设置学习率、loss等超参数
  • 数据的读取是采用主进程预读取并缓存,然后其它进程从缓存中读取,不同进程之间的数据具体通过torch.distributed.barrier()实现。这个function在utils.py/torch_utils.py中。在dataset.py创建数据集的时候调用,如果当前不是主进程执行,则会让该进程等待,直到主进程执行完
  • dataset.py
    (1) img_files用来存放所有images的路径
    (2) cache是个字典,key的个数为图像个数+4,存储了每张图像对应的所有gt box标签和图像宽高
    (3) Rectangular Training是将images按照宽高比排序后,将宽高比接近的数据放到同一个batch。 因同一个batch里的数据,在输入网络时必需有相同的宽和高,这样将宽高比接近的数据放到同一个batch,则batch内的数据,填充的无效像素就是最少的。
    (4) 将数据集中所有图像读取进来,并等比缩放,保存到self.imgs里,当设置了本地保存时,保存为本地.npy文件

2.YOLOv5结果

1)expX目录代表生成结果次数

2)result.png

  • GIoU:越小方框越准(图上没有这个)
    Objectness:检测loss均值,越小越准
    mAP@0.5:0.95:阈值取0.5:0.05:0.95后取均值
    mAP@0.5:阈值大于0.5的mAP

3) result.txt

  • 从左到右依次为:epoch GPU消耗 边界框损失 目标检测损失 分类损失 total_loss targets数量 网络输入图片大小 P R mAP@0.5 mAP@0.5:0.95 验证集val_box 验证集val_obj val_cls
  • train.py里面with open(result_file,‘a’) as f是将训练结果写入result.txt
  • 640后面的四列分别表示Precision,Recall,mAP@.5,mAP@.5:.95
    *mAP@.5:阈值为0.5时的mAP
    *mAP@.5:阈值为0.5-0.95(步长为0.05)时的所有mAP的均值

4)confusion_matrix.png

  • 混淆矩阵,用于监督学习(无监督学习叫匹配矩阵),用于观察是否混淆类,某一个格Aij表示第j和类别被预测为i的概率

5)curve.png

  • P_curve:单一类准确率(预测为positive),曲线表明,置信度越大,类别检测越准确,即置信度很大时,才被判断为某一类
  • R_curve: recall ,有多少正样本被找出来了
  • PR_curve:精度越高,召回率越低。
  • F1_curve:分类问题的衡量标准,是精确率和召回率的调和平均数[0,1],1是最好的,0最差。

6)labels.png

(1)训练集数据量,每个类别有多少
(2)框的尺寸、数量
(3)center点的位置
(4)label的高宽文章来源地址https://www.toymoban.com/news/detail-466262.html

7)train_batchx.png

  • 一次读取的batch数量的图,test_batch同

到了这里,关于YOLOv5目标检测实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv5实现目标检测

    YOLOv5 🚀 是COCO数据集上预处理的一系列对象检测架构和模型,代表Ultralytics对未来视觉人工智能方法的开源研究,融合了数千小时研究和开发过程中积累的经验教训和最佳实践。 本文用来记录第一次使用 YOLOv5实现: 视频目标检测 摄像头目标检测 博主所使用的环境是win10 +

    2024年02月09日
    浏览(38)
  • 【目标检测】yolov5模型详解

    yolov5于2020年由glenn-jocher首次提出,直至今日yolov5仍然在不断进行升级迭代。 Yolov5有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四个版本。文件中,这几个模型的结构基本一样,不同的是depth_multiple模型深度和width_multiple模型宽度这两个参数。 yolov5主要分为以下几部分: Input:输入 Backbone:

    2024年02月07日
    浏览(47)
  • 【目标检测】yolov5代码实战

    YOLO 是 “You only look once” 缩写 , 是将图像划分为网格系统的对象检测算法,网格中的每个单元负责检测自身内的对象。 由于其速度和准确性,YOLO是最著名的目标检测算法之一。yolov5作为YOLO系列第五个迭代版本,它的一个特点就是权重文件非常之小,可以搭载在配置更低的移

    2024年02月07日
    浏览(43)
  • 【目标检测实验系列】AutoDL线上GPU服务器租用流程以及如何用Pycharm软件远程连接服务器进行模型训练 (以Pycharm远程训练Yolov5项目为例子 超详细)

           本篇博客主要涉及两个主体内容。 第一个 :从AutoDL网站中租用GPU服务器。 第二个 :用Pycharm软件远程连接租来的线上服务器,并以Yolov5项目为例,线上训练模型。此过程中会记录重要的地方,以及本人踩坑之后,如何解决问题的所思所想( 通读本篇博客大概需要1

    2024年02月03日
    浏览(55)
  • 利用yolov5进行目标检测,并将检测到的目标裁剪出来

    写在前面:关于yolov5的调试运行在这里不做过多赘述,有关yolov5的调试运行请看: https://www.bilibili.com/video/BV1tf4y1t7ru/spm_id_from=333.999.0.0vd_source=043dc71f3eaf6a0ccb6dada9dbd8be37 本文章主要讲解的是裁剪。 需求:识别图片中的人物并将其裁剪出来 如果只需识别人物的话,那么只需在y

    2024年02月02日
    浏览(39)
  • 目标检测YOLOV5 添加计数功能

    YOLOV5预测完图片想显示个数怎么办呢? 一行代码轻松解决!!!! 原来的Detect 没有计数功能 只需在源码 上加上下面这一段代码即可: 这样就可以加上计数功能了!!!!  

    2024年02月16日
    浏览(45)
  • 【目标检测】YOLOv5:模型构建解析

    最近在看一些目标检测的最新论文和代码,大多数都是在YOLOv5的基础上进行魔改。 改的最多的基本是原版本的网络结构,这篇博文就从源码角度来解析YOLOv5中,模型是如何构建出来的。 本文使用的是YOLOv5-5.0版本。 在YOLOv5中,模型结构基本是写在了 .yaml 中,5.0版本的YOLOv5共

    2024年02月06日
    浏览(86)
  • yolov5检测小目标(附源码)

    6.30 更新切割后的小图片的label数据处理 前言 yolov5大家都熟悉,通用性很强,但针对一些小目标检测的效果很差。 YOLOv5算法在训练模型的过程中,默认设置的图片大小为640x640像素(img-size),为了检测小目标时,如果只是简单地将img-size改为4000*4000大小,那么所需要的内存会变

    2024年02月03日
    浏览(41)
  • OpenCV之YOLOv5目标检测

    💂 个人主页: 风间琉璃 🤟 版权:  本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、 欢迎关注、 点赞、 收藏(一键三连) 和 订阅专栏 哦 目录 前言 一、YOLOv5简介 二、预处理 1.获取分类名 2.获取输出层名称 3.图像尺度变换 三、模型加载

    2024年01月20日
    浏览(49)
  • YOLOv5增加小目标检测层

    采用增加小目标检测层的方式来使YOLOv5能够检测小目标,只需要修改models下的yaml文件中的内容即可。 主要改变如下: 原yaml: 改变后的yaml: 主要改变了两个地方:anchors和head (1)anchors (2)head 这样就改好了。 注释:在yolov5的6.0版本作者将CSP换为C3,YOLOv5 2020年5月出来后不

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包