SSD
Faster R-CNN:
1.对小目标检测效果差:只是在一个特征层上进行预测,而此特征层是经过许多卷积层后所得到的feature map,已经被抽象到比较高的层次,所以细节信息的保留较少。而小目标的检测需要细节信息 ,以至于在高层的特征层上来预测我们的小目标,检测效果没有那么好
2.模型大,检测速度慢:在RPN进行了一次预测,在Fast R-CNN又进行了一次预测(two-stage 的通病)
在SSD上由6个预测特征层,在步距为2的时候,padding为1;在步距为1的时候,padding为0. 第1层的预测特征层会预测相对较小的目标,随着抽象程度不断加深,会让预测特征层检测相对较大的目标
例如:(b)特征层相对较大些,保留了更多的细节,适合预测小目标
实现了不同的特征层上预测不同尺度(大小)的目标
(c)特征层相对较小,保留的细节信息较少,适合预测大目标
对于特征图1,特征图5,特征图6绘制4个default box;对于特征图2,特征图3,特征图4绘制6个default box.
例如:特征图1的宽与高为3838,设计两个scale:
scale1为21:有3个比例:1:2,1:1,2:1
scale2为2145的根号:有1个比例:1:1
(都会以特征图的每一点为中心,映射到原图的某点,然后生成对应的default box)
通过特征图的一点为映射到原图的某点坐标,并以此为中心绘制default box。
将6个feature map上的每个位置上的default box都绘制在图片上,就能覆盖图片中的所有目标
对于mnp的特征层,用33的小的卷积核来产生类别分数或者相对default box的坐标偏移量(边界框回归参数)
对于每个default box,会预测C个类别分数(包含背景类别),会预测4个边界框回归参数
Fast R-CNN中,对于每个anchor,会生成4C个回归参数(会生成针对每个类别的回归参数);而SSD中,对于每个default box,只生成4个边界框回归参数(不关注default box属于哪个类别)
其中,VGG16中的第五层的池化层的卷积核22,步距2,改为卷积核大小为33,步距1