В api обнаружения объекта тензорного потока модель ssd_inception_v2 использует inception_v2
в качестве экстрактора признаков, а именно, часть vgg16
на первом рисунке (рисунок (а)) заменена на 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
в порядке, но начальная в статье относится только к начальному блоку, а не к начальной сеть.