YOLO V5

Backbone

SPPF

SPP 是使用了3个kernel size不一样大的pooling 并行运算。SPPF是将kernel size为5的 pooling 串行运算,这样的运算的效果和SPP相同,但是运算速度加快。因为SPPF减少了重复的运算,每一次的pooling 运算都是在上一次运算的基础上进行的。

CSP-PAN neck

在YOLO V4中,作者仅仅使用了PAN模块,在PAN中的卷积操作为一般卷积操作。而在YOLO V5中,PAN中的卷积操作换为了CSP。如图,上图为YOLO V4中的PAN模块,下图为YOLO V5的CSP-PAN模块。


YOLO V5 CSP-PAN模块

Loss Function

Loss function 的组成和YOLO V3一样,同样是由 Classes loss, Objectness loss, Location loss.
改进:

  1. Location Loss 采用的是 CIOU Loss.
  2. Objectness Loss 在YOLO V3中 将IOU最大的设为正样本,将IOU小于阈值的设为负样本,其他的都不考虑。而在YOLO V5 中是计算所有样本的obj损失,采用CIOU作为标准。
  3. 对于Objectness Loss 同时也平衡了不同尺度的损失,针对三个预测特征层上的obj损失赋予不同的权重。
    L o b j = 4.0 ⋅ L o b j s m a l l + 1.0 ⋅ L o b j m e d i u m + 0.4 ⋅ L o b j l a r g e L_{obj} = 4.0 \cdot L^{small}_{obj} +1.0 \cdot L^{medium}_{obj}+0.4 \cdot L^{large}_{obj} Lobj​=4.0⋅Lobjsmall​+1.0⋅Lobjmedium​+0.4⋅Lobjlarge​

横纵比偏移优化

在YOLO V4对于x, y进行了优化使其对极限值0和1更加敏感一些。然而,对于横纵比同样存在问题,原始的公式中仅使用 e x e^x ex 来进行偏移,这样会导致偏移量没有限制,变得十分敏感。

b w = p w e t w b h = p h e t h \begin{aligned} b_w = p_we^{t_w}\\ b_h = p_he^{t_h} \end{aligned} bw​=pw​etw​bh​=ph​eth​​

而在 YOLO V5中对横纵比的偏移进行了优化,将其变成如下:

b x = 2 σ ( t x ) − 0.5 + c x b y = 2 σ ( t y ) − 0.5 + c y b w = p w ( 2 σ ( t w ) ) 2 b h = p h ( 2 σ ( t h ) ) 2 \begin{array}{c} b_{x}=2 \sigma\left(t_{x}\right)-0.5+c_{x} \\ b_{y}=2 \sigma\left(t_{y}\right)-0.5+c_{y} \\ b_{w}=p_{w}\left(2 \sigma\left(t_{w}\right)\right)^{2} \\ b_{h}=p_{h}\left(2 \sigma\left(t_{h}\right)\right)^{2} \end{array} bx​=2σ(tx​)−0.5+cx​by​=2σ(ty​)−0.5+cy​bw​=pw​(2σ(tw​))2bh​=ph​(2σ(th​))2​

这在一定程度上限制了横纵比的偏移,YOLO V5作者所做的实验曲线如下。

正负样本选取

在YOLO V4的拓展基础上,YOLO V5 对正样本的选取同时加入了横纵比的限制。

r w = w g t / w a t r h = h g t / h a t r w max ⁡ = max ⁡ ( r w , 1 / r w ) r h max ⁡ = max ⁡ ( r h , 1 / r h ) r max ⁡ = max ⁡ ( r w max ⁡ , r h max ⁡ ) \begin{array}{l} r_{w}=w_{g t} / w_{a t} \\ r_{h}=h_{g t} / h_{a t} \\ r_{w}^{\max }=\max \left(r_{w}, 1 / r_{w}\right) \\ r_{h}^{\max }=\max \left(r_{h}, 1 / r_{h}\right) \\ r^{\max }=\max \left(r_{w}^{\max }, r_{h}^{\max }\right) \end{array} rw​=wgt​/wat​rh​=hgt​/hat​rwmax​=max(rw​,1/rw​)rhmax​=max(rh​,1/rh​)rmax=max(rwmax​,rhmax​)​


首先算出anchor和GT的横纵比的最大差距,对于最大差距在4倍以上的例子都不作为正样本采用。

YOLO V5 改进详解相关推荐

  1. YOLO v5算法详解

    1.YOLO v5网络结构 2.输入端 3.Backone网络 4.Neck网络 5.Head网络 1.YOLO v5网络结构 图 1 YOLO v5网络结构图 由上图可知,YOLO v5主要由输入端 ...

  2. 目标检测Tensorflow:Yolo v3代码详解 (2)

    目标检测Tensorflow:Yolo v3代码详解 (2) 三.解析Dataset()数据预处理部分 四. 模型训练 yolo_train.py 五. 模型冻结 model_freeze.py 六. ...

  3. YOLO v3算法详解

    论文地址:YOLOv3: An Incremental Improvement YOLO算法详解,YOLO v2算法详解 1.The Deal 接下来,从头梳理整个网络,如果对YOLO和YOLO v2 ...

  4. YOLO v1论文详解

    YOLO v1:一体化的,实时物体检测 声明:笔者翻译论文仅为学习研究,如有侵权请联系作者删除博文,谢谢! 源论文地址:https://arxiv.org/pdf/1506.02640.pdf 注:文 ...

  5. 【目标检测】YOLO系列——YOLOv1详解

    本篇是关于目标检测算法YOLOv1的学习笔记.网上的博客大多是摘抄翻译论文中的重点内容加上自己的理解,或者是梳理论文的大致思路,在没看过原文的情况下可能总会有些看不懂的地方.所以强烈建议博客搭配原文食 ...

  6. YOLO系列损失函数详解

    YOLOV1 YOLOV1最后生成7×7的网格(grid cell),每个grid cell会产生两个预测框(bounding box),每个grid cell产生的两个预测框只能预测同一种类物体,也 ...

  7. YOLO系列算法详解(一)

    一.深度学习经典检测方法 1.检测任务中阶段的意义 对于单阶段(one-stage)检测来说,输入一张图像,经过一个卷积神经网络,输出一个边界框,只需要得到框的(x1,y1)和(x2,y2)四个值即可 ...

  8. Keras YOLOv3代码详解(三):目标检测的流程图和源代码+中文注释

    Keras YOLOv3源代码下载地址:https://github.com/qqwweee/keras-yolo3 YOLOv3论文地址:https://pjreddie.com/media/fil ...

  9. Yolo v5 训练自己的数据从训练到调参实战详解

    主要分3章,第一章先跑通模型代码,熟悉yolo v5的输入和输出:第二章训练自己的数据:第三章讲解模型参数部分 文章目录 一.跑通模型 1.代码下载 2.环境配置 3.参数路径调整 3.运行detec ...

最新文章

  1. ggsave的图片图例不显示中文解决办法
  2. python爬虫音乐数据加入mysql_Python爬虫数据并存入MySQL数据库,实现可视化。
  3. 【数据库】将Excel导入达梦数据库,并执行表合并
  4. 元宵节快乐 | 启明云端邀您一起猜灯谜了
  5. 7-67 使用二维数组实现Matrix(矩阵)。 (60 分)
  6. 模块 python_Python入门基础:模块基础
  7. 小程序webview不全屏_小程序不在小(深度)
  8. 【java】JApplet类的使用
  9. UNIX环境高级编程
  10. 搜索系统硬盘中包含指定字符串的文件的工具和方法——全文搜索、搜索文件内容(持续更新中)
  11. 字大小数据 - 快速取模的C++实现
  12. UI常见面试题-整体素养篇
  13. openvswitch vxlan 源码分析
  14. ADXL345调试心得
  15. mt管理器主题修改教程_华为微信气泡怎么设置皮肤 微信怎么改猫和老鼠的主题和气泡?...
  16. 普通话水平测试这软件很准靠谱吗,普通话考试小细节,你知道多少?
  17. npm/yarn 安装和命令
  18. 用python把Excel表中不同货币的资金换算成人民币
  19. 表示身体各部位的英语单词
  20. web test IBM Page Detailer / IBM Rational Performance Tester / Web Page Performa

热门文章

  1. Sequence序列的理解和使用
  2. 打造Win10下完美Linux体验(WSL2+WindowsTerminal+oh-my-zsh),完整图文教程+报错解决方案
  3. 三国志战略版:Daniel_S4_PK1袁绍势力的黑科技推荐
  4. web服务器未能创建类型,WEBSERVICE 分析器错误信息: 未能创建类型
  5. UE风格化Day20-光照函数/关于相机的使用
  6. 西部数据在磁盘里加NAND却不用做缓存?
  7. Js导出Excel表时电话号码或者身份证号变成科学计数法解决方案
  8. 英飞凌TC3xx_MCMCAN(二)
  9. 工地施工最靠谱的监测,系统扬尘预警监测解决方案
  10. MacOS 开发 - FSEventStream(文件系统改变事件监控)