Как установить конкретную архитектуру прогнозирования SSD (lite), используя настраиваемое разрешение ввода в TensorFlow ObjectDetection API - PullRequest
0 голосов
/ 20 сентября 2018

Я бы хотел обучить пользовательский SSDLite- MobileNetV2 детектор объектов в наборе данных COCO, используя TensorFlow ObjectDetection API .Вместо фиксированного входного разрешения (300 300) я бы хотел иметь более высокое входное разрешение, например, VGA (640 480) или (544 544).Поскольку архитектура является полностью сверточной, возможно иметь разные входные разрешения.Однако я хотел бы немного изменить архитектуру SSD следующим образом:

Используя исходное разрешение ввода 300x300, мы получим после первого 3x3 conv и 5 перевернутых узких мест карту объектов 19x19x96, после другогодва узких места - 10x10x320, затем на 1x1 - 10x10x1280, которые затем с помощью 3x3 глубинных отделимых извилин становятся 5x5x512, 3x3x256, 2x2x256 и 1x1x128.Затем делаются прогнозы для расширенной версии 19x19 - 19x19x576, 10x10x1280 и для всех других карт характеристик с меньшим разрешением (5x5, 3x3, 2x2, 1x1) - всего 6.

Если у меня есть входразрешение 554x554, то оно выглядит следующим образом: после 3x3 conv и 5 перевернутых узких мест это 34x34x96, после двух других - 17x17x320, но затем, чтобы получить разрешение 1x1, мне нужен дополнительный слой: 9x9, 5x5, 3x3, 2x2 изатем 1x1.

Способ, которым я хочу изменить архитектуру, состоит в том, чтобы пропустить разрешение 2x2 и перейти от 3x3 непосредственно к 1x1 через незаполненную делимую свертку глубиной 3x3.Мой вопрос заключается в том, возможно ли это с помощью API-интерфейса TensorFlow ObjectDetection без значительных изменений кода, например, путем изменения файла конфигурации или с помощью небольших изменений кода.

EDIT: добавлен тег Python.

EDIT2 - попытаться прояснить вопрос: в текущей архитектуре с текущим заполнением, чтобы перейти от карты объектов 3x3 к 1x1, мне нужно пройти карту объектов 2x2 (3x3 conv, stepde = 2, padded),Я хотел бы знать, возможно ли изменить конфигурацию, чтобы добиться перехода непосредственно от 3х3 до 1х1 карты объектов с одной конвой 3х3, а если нет - как отредактировать / сделать альтернативный ssd_mobilenet_v2_feature_extractor (или другой код) для достижениятот.

1 Ответ

0 голосов
/ 26 сентября 2018

Если вы просто хотите изменить разрешение ввода, измените ваш файл .config (получите от https://github.com/tensorflow/models/tree/master/research/object_detection/samples/configs). Найдите это: image_resizer {fixed_shape_resizer {height: 300 width: 300}} Измените значение высоты и ширины. Есливы хотите изменить сетевую архитектуру, это будет немного сложнее. Сетевая архитектура, используемая ssdlite_mobilenet_v2, называется ssd_mobilenet_V2. Базовая сеть - это mobilenet v2 в slim / mobilenet /, напишите некоторый пользовательский код и определите свою собственную модель (https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/defining_your_own_model.md).

...