SPP与SPPF的区别?
spp是何凯明提出来的,名为空间金子塔,有效避免了对图像区域的裁剪、缩放操作导致的图像失真等问题。 解决了卷积神经网络对图相关重复特征提取的问题,大大提高了产生候选框的速度,且节省了计算成本。
-
k=(w, h, c)的池化层相当于将对整个图像取一次最大化操作,输出为(1, 1, c)的特征图。
-
k=(w/2, h/2, c)的池化层相当于将整个图像平均划分为4分,每一份取一次最大化操作,输出为(2, 2, c)的特征图。
-
k=(w/4, h/4, c)的池化层相当于将整个图像平均划分为16分,每一份取一次最大化操作,输出为(4, 4, c)的特征图
-
最终产生维度为(21, c)的向量
YOLOv5中的spp
k(kernel_size)为卷积核尺寸。s(stride)为步长,p(padding)为在所有边界增加值。
输入Feature map(w, h, c)经过三次卷积操作像素并没有发生改变,作用更多的是实现局部特征和全局特征的featherMap级别的融合。
SPPF在YOLOv5中提出,串联5个最大池化层,可以有效的扩大感受野,提取全局的上下文信息,并且具有较低的参数量和计算负载。
Anchor based和Anchor free的区别?
在于是否使用预定义的anchor框来匹配真实的目标框。
anchor的生成:
- 用网络提取特征图的点来定位边框的位置;
- 用锚的尺寸来设定边框的大小;
- 用锚的长宽比来设定边框的
引入anchor的目的:通过设置不同尺度,不同大小的先验框,就有更高的概率出现对于目标物体有良好匹配度的先验框约束,在锚框的约束下使模型的精准度和召回率都有了质的提升。
Anchor-based:模型通过预测每个锚框的偏移量和类别概率来定位和分类目标。代表算法有:Faster R-CNN、R-FCN,YOLO V2—V5
Anchor-free:不需要预定义锚框,而是直接在特征图上生成目标的边界框或者中心点。模型通过回归目标的位置信息或者预测目标的中心点来完成目标检测任务。