В исходной статье SSD они использовали сеть VGG16 для извлечения признаков. Я использую модель SSD Inception v2 из зоопарка моделей TensorFlow и не знаю, в чем разница в архитектуре. Этот сообщение о переполнении стека предполагает, что для других моделей, таких как SSD MobileNet, экстрактор функций VGG16 заменен экстрактором функций MobileNet.
Я думал, что здесь будет то же самое с SSD Inception, но Эта бумага меня смутил. Отсюда кажется, что Inception добавляется к SSD-части модели, а экстрактор функций VGG16 остается в начале архитектуры.
Какова архитектура модели SSD Inception v2?
В API обнаружения объектов tensorflow модель ssd_inception_v2 использует inception_v2
в качестве экстрактора признаков, а именно часть vgg16
на первом рисунке (рисунок (a)) заменена на inception_v2
.
В моделях ssd векторный слой, извлеченный feature extractor
(например, vgg16, inception_v2, mobilenet), будет дополнительно обработан для создания дополнительных функциональных слоев с разным разрешением. На приведенном выше рисунке (а) есть 6 выходных векторных слоев, первые два (19x19) взяты непосредственно из feature extractor
. Как генерируются остальные 4 слоя (10x10, 5x5, 3x3, 1x1)?
Они генерируются дополнительными операциями свертки (эти операции свертки похожи на использование очень мелких экстракторов признаков, не так ли?). Детали реализации здесь снабжены хорошими документами. В документации написано
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
, а просто начальный блок. В документе сообщается об улучшении точности классификации за счет использования начального блока..
Теперь должен быть ясен вопрос, модель ssd с vgg16
, inceptioin_v2
или mobilenet
в порядке, но зарождение в документе относится только к начальному блоку, а не к начальной сети.