在原始的SSD论文中,他们使用VGG16网络进行特征提取。我正在使用TensorFlow模型动物园中的SSD Inception v2模型,但我不知道体系结构有什么区别。 stack overflow post暗示对于其他型号(例如SSD MobileNet),VGG16功能提取器已由MobileNet功能提取器取代。
我认为SSD Inception的情况与此相同,但是this paper让我感到困惑。从这里开始,似乎将Inception添加到了模型的SSD部分中,而VGG16特征提取器仍然保留在体系结构的开始。
SSD Inception v2模型的体系结构是什么?
答案 0 :(得分:1)
在tensorflow对象检测api中,ssd_inception_v2模型使用inception_v2
作为特征提取器,即第一张图中的vgg16
部分(图(a))被替换为inception_v2
在ssd模型中,将feature extractor
提取的特征层(即vgg16,inception_v2,移动网络)进一步处理,以产生不同分辨率的额外特征层。在上图(a)中,有6个输出要素图层,前两个(19x19)直接取自feature extractor
。如何生成其他4层(10x10、5x5、3x3、1x1)?
它们是通过额外的卷积运算生成的(这些conv运算有点像使用非常浅的特征提取器,不是吗?)。 here的实现细节随有效文档一起提供。在文档中说
Note that the current implementation only supports generating new layers
using convolutions of stride 2 (resulting in a spatial resolution reduction
by a factor of 2)
,这就是额外特征图减少2倍的方式,如果您阅读函数multi_resolution_feature_maps
,则会发现正在使用slim.conv2d
个操作,这表明这些额外层是通过额外获得的卷积层(每层只有一层!)。
现在,我们可以解释您链接的论文中有哪些改进。 他们建议用初始块替换额外的要素层。没有inception_v2
模型,只是一个起始块。 该论文报道了通过使用初始块提高了分类准确性。
现在问题应该很清楚,带有vgg16
,inceptioin_v2
或mobilenet
的ssd模型还可以,但是本文中的 inception 仅指一个初始块,而不是初始网络。