SSD盗版v2。 VGG16功能提取器是否已被Inception v2取代?

时间:2019-05-28 11:30:20

标签: tensorflow machine-learning deep-learning object-detection object-detection-api

在原始的SSD论文中,他们使用VGG16网络进行特征提取。我正在使用TensorFlow模型动物园中的SSD Inception v2模型,但我不知道体系结构有什么区别。 stack overflow post暗示对于其他型号(例如SSD MobileNet),VGG16功能提取器已由MobileNet功能提取器取代。

我认为SSD Inception的情况与此相同,但是this paper让我感到困惑。从这里开始,似乎将Inception添加到了模型的SSD部分中,而VGG16特征提取器仍然保留在体系结构的开始。 Figure from the paper - Inception Single Shot MultiBox Detector for object detection

SSD Inception v2模型的体系结构是什么?

1 个答案:

答案 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模型,只是一个起始块。 该论文报道了通过使用初始块提高了分类准确性。

现在问题应该很清楚,带有vgg16inceptioin_v2mobilenet的ssd模型还可以,但是本文中的 inception 仅指一个初始块,而不是初始网络。