引言:YOLOv5是一种单阶段目标检测算法,其网络结构共分为:input、backbone、neck和head四个模块,该算法在YOLOv4的基础上添加了一些新的改进思路,使其速度与精度都得到了极大的性能提升。
1. YOLOv5:总体架构
YOLOv5:总体架构
01
图像通过输入层(输入)进行处理,并发送到主干进行特征提取。
02
backbone获取不同大小的特征图,然后通过特征融合网络(neck)融合这些特征,最终生成三个特征图P3、P4和P5(在YOLOv5中,维度用80×80、40×40和20×20的大小表示),分别检测图片中的小、中、大物体。
03
backbone获取不同大小的特征图,然后通过特征融合网络(neck)融合这些特征,最终生成三个特征图P3、P4和P5(在YOLOv5中,维度用80×80、40×40和20×20的大小表示),分别检测图片中的小、中、大物体。
04
将三个特征图发送到预测头(head)后,使用预设的先验框对特征图中的每个像素执行置信度计算和边界框回归,以获得包括对象类别、类别置信度、框坐标、宽度和高度信息的多维数组(BBoxes)。
05
通过设置相应的阈值(confthreshold、objthreshold)来过滤阵列中的无用信息,并执行非最大值抑制(NMS)过程,可以输出最终的检测信息。
2.YOLOv5:backbone
YOLOv5:模型体系结构
YOLOv5 backbone的参数
01
backbone是CSPDaknet53。
02
主要结构是堆叠多个CBS(Conv+BatchNorm+SiLU)模块和C3模块,最后连接一个SPPF模块。
03
CBS模块用于辅助C3模块进行特征提取,而SPPF模块增强了主干的特征表达能力。
SPPF的结构
01
SPPF通过最大池化之前的最大池化功能,避免了SPPNet中SPP的重复操作
02
这样可以显著提高模块的运行速度。
3.YOLOv5:neck层
(a) 在没有特征融合的情况下(b)FPN和(c)PAN
YOLOv5:Neck(虚线框内)
01
YOLOv5使用FPN和PAN这两种方法。
02
FPN的基本思想是对特征提取网络中通过多次卷积下采样操作生成的输出特征图(C3、C4和C5)进行上采样,以生成多个新的特征图(P3、P4和P5),用于检测不同尺度的目标。
4.YOLOv5:head层
YOLOv5:head
边界框回归
01
特征图左上角的坐标值设置为(0,0)。
02
rx和ry是预测中心点的未调整坐标。
03
gx、gy、gw、gh表示调整后的预测框的信息。
04
sx和sy表示模型计算的偏移量。
05
将预设的先前锚点的中心坐标和大小调整为最终预测框的中心坐标与大小的过程。
5.YOLOv5:模型变体
YOLOv5的五个版本
?YOLOv5有5个版本,即YOLOv5x、YOLOv5l、YOLOv5m、YOLOv5s和YOLOv5n。
?还有5个相应的较大版本:YOLOv5x6、YOLOv5l6、YOLOv5m6、YOLOv5s6和YOLOv6n6。
YOLOv5l:详细架构
(https://docs.ultralytics.com/yolov5/tutorials/architecture_description/#2-data-augmentation)
?YOLOv5l模型架构的详细信息可在以上链接内找到。
6.结果
6.1更大模型
从YOLOv5n6到YOLOv5x6
所有YOLOv5更大型号的性能都大大优于EfficientDet。
6.2.较小模型
在MS COCO上从YOLOv5n到YOLOv5x
?与较小模型类似,所有YOLOv5的较小模型也以更快的速度以较大的优势优于EfficientDet。
6.3.详细结果
详细性能(TTA:测试时间增强)
?详细结果如上文所示。
(文章来源:https://medium.com/@sh-tsang/brief-review-yolov5-for-object-detection-84cc6c6a0e3a 编译:Doris)
本文暂时没有评论,来添加一个吧(●'◡'●)