0


YOLO V5 改进详解

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一样,同样是由

  1. Classes loss

,

  1. Objectness loss

,

  1. 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更加敏感一些。然而,对于横纵比同样存在问题,原始的公式中仅使用

  1. e
  2. x
  3. e^x
  4. ex 来进行偏移,这样会导致偏移量没有限制,变得十分敏感。
  5. b
  6. w
  7. =
  8. p
  9. w
  10. e
  11. t
  12. w
  13. b
  14. h
  15. =
  16. p
  17. h
  18. e
  19. t
  20. h
  21. \begin{aligned} b_w = p_we^{t_w}\\ b_h = p_he^{t_h} \end{aligned}
  22. bw​=pwetwbh​=pheth​​

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

  1. b
  2. x
  3. =
  4. 2
  5. σ
  6. (
  7. t
  8. x
  9. )
  10. 0.5
  11. +
  12. c
  13. x
  14. b
  15. y
  16. =
  17. 2
  18. σ
  19. (
  20. t
  21. y
  22. )
  23. 0.5
  24. +
  25. c
  26. y
  27. b
  28. w
  29. =
  30. p
  31. w
  32. (
  33. 2
  34. σ
  35. (
  36. t
  37. w
  38. )
  39. )
  40. 2
  41. b
  42. h
  43. =
  44. p
  45. h
  46. (
  47. 2
  48. σ
  49. (
  50. t
  51. h
  52. )
  53. )
  54. 2
  55. \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}
  56. bx​=2σ(tx​)−0.5+cxby​=2σ(ty​)−0.5+cybw​=pw​(2σ(tw​))2bh​=ph​(2σ(th​))2

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

正负样本选取

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

  1. r
  2. w
  3. =
  4. w
  5. g
  6. t
  7. /
  8. w
  9. a
  10. t
  11. r
  12. h
  13. =
  14. h
  15. g
  16. t
  17. /
  18. h
  19. a
  20. t
  21. r
  22. w
  23. max
  24. =
  25. max
  26. (
  27. r
  28. w
  29. ,
  30. 1
  31. /
  32. r
  33. w
  34. )
  35. r
  36. h
  37. max
  38. =
  39. max
  40. (
  41. r
  42. h
  43. ,
  44. 1
  45. /
  46. r
  47. h
  48. )
  49. r
  50. max
  51. =
  52. max
  53. (
  54. r
  55. w
  56. max
  57. ,
  58. r
  59. h
  60. max
  61. )
  62. \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}
  63. rw​=wgt​/watrh​=hgt​/hatrwmax​=max(rw​,1/rw​)rhmax​=max(rh​,1/rh​)rmax=max(rwmax​,rhmax​)​

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


本文转载自: https://blog.csdn.net/leeyns/article/details/128104030
版权归原作者 leeyns 所有, 如有侵权,请联系我们删除。

“YOLO V5 改进详解”的评论:

还没有评论