One-stage Detection YOLO 与 SSD对比

文章目录[隐藏]

作为在one-stage Detection领域中,存在两类领军级别的检测器,大部分的one-stage的检测器都或多或少能看到这两者的影子,这两个就是YOLO和SSD。
本文主要从思想上对比YOLO和SSD的区别,以及YOLO和SSD的进化历程,若对相关算法没有阅读过的朋友,可以先去看论文,相关论文地址:
SSD:Single Shot MultiBox Detector
YOLO:You Only Look Once
YOLO_v2: YOLO9000
YOLO_v3:YOLOV3
YOLO_v4:YOLOV4
YOLO_v5:YOLOV5
YOLO_X:YOLOX
参考文献:
yolov5论文_YOLO算法史上最全综述:从YOLOv1到YOLOv5

共同性:无论是yolo还是SSD都是输出目标的类别置信度以及BBox的位置。
差异性:因为存在常用性以及有效性的问题,对于YOLO和YOLO_v2的比较就不放在本文中,需要的朋友可以去看参考文献
所有对比从以下几块进行分析:
backbone
neck
head
loss
data augment

总表

SSD YOLOV3 YOLOV4 YOLOV5 YOLOX
backbone vgg darknet-53 CSPDarknet53 CSP1Darknet53 Darknet
neck None FPN SPP
PAN
FPN+PAN+CSP2_X CSP
head Decoupled Head Coupled head Coupled head Coupled head Decoupled Head
loss softmax loss
smooth l1
binary cross-entropy loss
iou loss
Ciou-loss Ciou-loss smooth l1
binary cross entory loss
data augment randomly sample
horizontally fliiped
未知 CutMix
Mosaic
Random training shapes
YOLOV4 Mosaic
Mixup

backbone

VGG网络结构,因为其特性,常见的vgg一般是vgg16和vgg19网络更深则会出现梯度爆炸和梯度消失的问题,后基本被resnet替代。
在这里插入图片描述
Darknet53,其余resnet相似,都采用residual block,因为residual block的特性不会出现网络过深时出现梯度爆炸和梯度消失的问题,所以其特征提取的能力要远强于VGG
请添加图片描述
CSPDarknet53
CSP结构就是在residual block之后在于之前的特征进行就和连结。提出Partial transition layers的目的是最大化梯度联合的差异,其使用梯度流截断的手段避免不同的层学习到重复的梯度信息。

Neck

FPN:Feature Pyramid Network, 通过上采样在head之前增加前面几层的局部信息,增加小目标的检测性能。后续的neck基本都是在FPN的基础上进行的优化。

SPP:核心在于使用多个不同尺寸sliding window pooling 对上层(卷积层)获得的feature maps 进行采样(池化,文中使用最大池化),将分别得到的结果进行合并就会得到固定长度的输出。

PAN: Path Aggregation Network, FPN是从上向下,PAN包含了从上向下和从下向上的路径。

CSP2_X: 每个CSP模块前面的卷积核的大小都是3*3,stride=2,因此可以起到下采样的作用,参考了2019年的CSPNet,其作者认为推理计算过高的问题是由于网络优化中的梯度信息重复导致的,因此采用CSP模块先将基础层的特征映射划分为两部分,然后通过跨阶段层次结构将它们合并,在减少了计算量的同时可以保证准确率。

Head

Decoupled Head:是指把分类和回归分别设定在两个卷积头上进行操作,在分类上输出channel为分类的类别数+1, 在回归的channel为anchor数4
Coupled head:用一个卷积头输出所有的数据(分类结果和回归结果),因为在YOLO中没有mutil—scale anchor的设定所以一般为4+类别数+1或为4
n+类别数+1

参考

1.Darknet53网络各层参数详解
2.卷积神经网络VGG16详解
3.CSPDarkNet53学习
4.FPN(Feature Pyramid Network)
5.PAN(Path Aggregation Network)

版权声明:本文为CSDN博主「ckqsars」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ckqsars/article/details/118771510

ckqsars

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

【原理篇】一文读懂Mask RCNN

Mask RCNN 何凯明大神的经典论文之一,是一个实例分割算法,正如文中所说,Mask RCNN是一个简单、灵活、通用的框架,该框架主要作用是实例分割,目标检测&#xff0

yolov3 MNN框架部署C++版

一、模型转换: 1.训练的模型格式:https://github.com/AlexeyAB/darknet/ darknet训练出来的weights 2.将训练时的.cfg文件和训练后得到的.weights文件根