【Yolov5】Yolov5添加检测层,四层结构对小目标、密集场景更友好

这篇具有很好参考价值的文章主要介绍了【Yolov5】Yolov5添加检测层,四层结构对小目标、密集场景更友好。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🚀🚀🚀 Yolov5增加检测层🚀🚀🚀

前言

Yolov5的检测速度与精度较为平衡,但是原算法对于小目标的检测效果不佳,根据一些论文,我们可以通过增加检测层来提高对小目标的特征提取能力,以提高算法在密集场景下的表现。

一、网络结构说明

Yolov5原网络结构如下:
【Yolov5】Yolov5添加检测层,四层结构对小目标、密集场景更友好
增加一层检测层后,网络结构如下:(其中虚线表示删除的部分,细线表示增加的数据流动方向)
【Yolov5】Yolov5添加检测层,四层结构对小目标、密集场景更友好

二、网络配置

第一步,在models文件夹下面创建yolov5s-add-one-layer.yaml文件。

第二步,将下面的内容粘贴到新创建的文件中。

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license

# Parameters
nc: 2  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple
anchors:
  - [4,5, 8,10, 22,18] # P2/4
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32

# YOLOv5 v6.0 backbone
backbone:
  # [from, number, module, args]
  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
   [-1, 3, C3, [128]],
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 6, C3, [256]],
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
   [-1, 3, C3, [1024]],
   [-1, 1, SPPF, [1024, 5]],  # 9
  ]

# YOLOv5 v6.0 head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13

   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3

   # add feature extration layer 
   [-1, 3, C3, [256, False]],  # 17
   [-1, 1, Conv, [128, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 2], 1, Concat, [1]],  # cat backbone P3

   # add detect layer
   [-1, 3, C3, [128, False]],  # 21 (P4/4-minium)

   [-1, 1, Conv, [128, 3, 2]],
   [[-1, 18], 1, Concat, [1]],  # cat head P3
   # end

   [-1, 3, C3, [256, False]],  # 24 (P3/8-small)

   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 27 (P4/16-medium)

   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 30 (P5/32-large)

   [[21, 24, 27, 30], 1, Detect, [nc, anchors]],  # Detect(P2, P3, P4, P5)
  ]

第三步,在终端中输入命令:python models/yolo.py --cfg=yolov5s-add-one-layer.yaml,按下Enter键运行后看到下面的效果
【Yolov5】Yolov5添加检测层,四层结构对小目标、密集场景更友好
到这里就配置完成,可以进行训练了。

三、使用效果

我们看看添加一个层次后效果如何

【Yolov5】Yolov5添加检测层,四层结构对小目标、密集场景更友好原图 【Yolov5】Yolov5添加检测层,四层结构对小目标、密集场景更友好原网络推理 【Yolov5】Yolov5添加检测层,四层结构对小目标、密集场景更友好新网络推理

这里作者分别使用 yolov5s.yamlyolov5s-add-one-layer.yaml网络训练120轮,然后分别使用他们的best.pt模型进行推理。可以看到添加一层后,相对于原模型多检测出了三个口罩,而且对于原网络中检测错的人脸,其分类概率也更加准确了(图中是没有人脸的,所以概率越低越好)

最后,如果觉得本文对你有帮助,不妨动动小手点个赞,你的三连是作者更新的最大动力😊🌹文章来源地址https://www.toymoban.com/news/detail-422782.html

到了这里,关于【Yolov5】Yolov5添加检测层,四层结构对小目标、密集场景更友好的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【目标检测】yolov5改进系列:主干网络中添加SE注意力机制网络

    写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 CNN网络中,图像或者说特征图Feature Map的特征主要分为空间特征(Spatial)和通道(Channel)特征。对于空间

    2023年04月16日
    浏览(36)
  • Yolov5/Yolov7 引入CVPR 2023 BiFormer: 基于动态稀疏注意力构建高效金字塔网络架构,对小目标涨点明显

    目录 1.BiFormer介绍  2.基于Yolov5的BiFormer实现 2.1 BiFormer加入common.py中 2.2  BiFormer加入yolo.py中:

    2023年04月20日
    浏览(36)
  • 目标检测算法——YOLOv5/YOLOv7改进之结合MobileOne结构(高性能骨干|仅需1ms)

    1.MobileOne: 移动端仅需1ms的高性能骨干! 2.MobileOne block网络模型: 3.源代码 关于YOLOv5/v7改进方法可关注并留言博主的CSDN 论文题目: An Improved One millisecond Mobile Backbone 论文地址:http://An Improved One millisecond Mobile Backbone 一般用于移动设备的高效神经网络骨干通常针对 FLOP 或参数计

    2024年02月06日
    浏览(39)
  • YOLOv8改进 | 损失篇 | VarifocalLoss密集目标检测专用损失函数 (VFLoss,原论文一比一复现)

    本文给大家带来的是损失函数改进 VFLoss损失函数 ,VFL是一种为 密集目标检测器 训练预测IoU-aware Classification Scores(IACS)的损失函数,我经过官方的版本将其集成在我们的YOLOv8的损失函数使用上, 其中有很多使用的小细节 (否则按照官方的版本使用根本拟合不了,这也是为啥

    2024年02月02日
    浏览(39)
  • YOLOv5改进 | 一文汇总:如何在网络结构中添加注意力机制、C3、卷积、Neck、SPPF、检测头

    本篇文章的内容是在大家得到一个改进版本的C3一个新的注意力机制、或者一个新的卷积模块、或者是检测头的时候如何替换我们YOLOv5模型中的原有的模块,从而用你的模块去进行训练模型或者检测。因为最近开了一个专栏里面涉及到挺多改进的地方,不能每篇文章都去讲解

    2024年02月19日
    浏览(32)
  • Yolov5/Yolov7优化:引入Soft-NMS并结合各个IOU变体GIOU、DIOU、CIOU、EIOU、SIOU,进一步提升密集遮挡场景检测精度  

    💡💡💡本文改进:Soft-NMS并与各个IOU变体GIOU、DIOU、CIOU、EIOU、SIOU结合, 实现二次创新,并提升密集遮挡场景检测精度 💡💡💡Yolov8魔术师, 独家首发创新(原创) ,适用于 Yolov5、Yolov7、Yolov8等各个Yolo系列 ,专栏文章 提供每一步步骤和源码,轻松带你上手魔改网络 💡💡

    2024年02月10日
    浏览(29)
  • YOLOv5实现目标检测

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

    2024年02月09日
    浏览(26)
  • YOLOv5目标检测实验

    最近在用YOLOv5跑一些目标检测的东西,这是自己日常学习的一些总结!后期会继续更新!有问题也欢迎批评指正!如果雷同请见谅! 创建数据集是在detect.py里面的create_dataloader,并在主函数里面调用 yolov5在计算资源的调用上采用了torch.nn.parallel.DistributedDataParallel(DDP,多张显卡

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

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

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

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

    2024年02月07日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包