目标检测之YOLOv5算法分析

YOLOv5共有5个版本的网络模型及其权重文件,即(n,s,m,l,x)
(下图来自github上yolov5官方开源项目的性能截图)
在这里插入图片描述
其中n,s,m,l,x网络模型结构如出一辙,差异在参数上。另外的n6,s6,m6,l6,x6模型是对于更大分辨率图片检测。

网络结构

该网络结构图来自CSDN博主:江大白。此处引用,仅供学习记录使用。
在这里插入图片描述
此图为 Y O L O v 5 s YOLOv5s YOLOv5s的网络模型架构。

Backbone

CSP-Darknet53

Neck

SPPF + CSP-PAN
在这里插入图片描述

Head

YOLOv3 Head
输出三种大小的特征预测,如分别是 ( 76 , 76 , 255 ) , ( 38 , 38 , 255 ) , ( 19 , 19 , 255 ) (76,76,255),(38,38,255),(19,19,255) (76,76,255),(38,38,255),(19,19,255),不同版本不一致。


重点解析

边界框优化
在YOLOv4的基础上,将 b w = p w ∗ e t w b_w=p_w*e^{t_w} bw=pwetw b h = p h ∗ e t h b_h=p_h*e^{t_h} bh=pheth换成 b w = p w ∗ ( 2 ∗ σ ( e t w ) ) 2 b_w=p_w*(2*\sigma(e^{t_w}))^2 bw=pw(2σ(etw))2 b h = p h ∗ ( 2 ∗ σ ( e t h ) ) 2 b_h=p_h*(2*\sigma(e^{t_h}))^2 bh=ph(2σ(eth))2.
使用 σ \sigma σ函数旨在限制 t w t_w tw t h t_h th的值域,避免出现Nan的情况发生。

数据增强
数据增强方式有mosaic、HSV色域变换、旋转、缩放、翻转、平移、剪切等

真实框与Anchor匹配

r w = w g t w a t r h = h g t h a t r w m a x = m a x ( r w , 1 r w ) r h m a x = m a x ( r h , 1 r h ) r w m a x = m a x ( r w m a x , r h m a x ) \begin{align} r_w&=\frac{w_{gt}}{w_{at}}\\ r_h&=\frac{h_{gt}}{h_{at}}\\ r_w^{max}&=max(r_w,\frac{1}{r_w})\\ r_h^{max}&=max(r_h,\frac{1}{r_h})\\ r_w^{max}&=max(r_w^{max},r_h^{max})\\ \end{align} rwrhrwmaxrhmaxrwmax=watwgt=hathgt=max(rw,rw1)=max(rh,rh1)=max(rwmax,rhmax)
其中 w g t w_{gt} wgt为真实框的宽度, w a t w_{at} wat为anchor的宽度, h g t h_{gt} hgt为真实框的高度, h a t h_{at} hat为anchor的高度。

( 3 ) ( 4 ) (3)(4) (3)(4)两式子用于衡量真实框与anchor差异大小,如果两者框的差异最小或两个框最相近,那么 r h m a x r_h^{max} rhmax r w m a x r_w^{max} rwmax为1.最后 ( 5 ) (5) (5)中,获取框在高、宽上的最大差异值。这个差异值会与给定的阈值进行比较,如果满足阈值条件则认为匹配成功,否则失败。该原理与之前的使用IOU匹配原理类似。

损失函数(v6.0及以后版本)
损失=边界框定位损失+目标分类损失+CIoU损失(置信度损失)
L o s s = λ 1 L l o c + λ 2 L c l s + λ 3 L c i o u Loss=\lambda_1L_{loc}+\lambda_2L_{cls}+\lambda_3L_{ciou} Loss=λ1Lloc+λ2Lcls+λ3Lciou
也即在这里插入图片描述
参数K为特征图数量, S 2 S^2 S2为grid cell数量, B B B为anchor数量。

其中为了平衡不同尺度的损失(在coco数据集上),对于三个预测特征层 { P 3 ( 小目标,如 76 ∗ 76 ) , P 4 ( 中等目标,如 38 ∗ 38 ) , P 5 ( 大目标,如 19 ∗ 19 ) } \{P_3(小目标,如76*76),P_4(中等目标,如38*38),P_5(大目标,如19*19)\} { P3(小目标,如7676),P4(中等目标,如3838),P5(大目标,如1919)}上的目标CIOU损失采用不同的权重: L o s s c i o u = 4 ∗ L c i o u s m a l l + L c i o u m e d i u m + 0.4 ∗ L c i o u l a r g e Loss_{ciou}=4*L_{ciou}^{small}+L_{ciou}^{medium}+0.4*L_{ciou}^{large} Lossciou=4Lciousmall+Lcioumedium+0.4Lcioularge
损失函数中, 为了提高对小目标的精准度,提高了小目标预测的损失。

猜你喜欢

转载自blog.csdn.net/qq_44116998/article/details/128451800