Тонкая настройка обнаружения объектов TF2 — изменить размер входного изображения?

Я пытаюсь настроить предварительно обученную модель из TensorFlow 2 Model Zoo, скажем, EfficientDet D0 512x512, который выводит ограничивающие рамки для нескольких объектов на одном изображении.

Но мои изображения набора данных KITTI имеют размер около 1200x400. Следовательно, изменение размера с 1200 x 400 до 512 x 512 очень неудобно и приводит к огромной потере информации. Использование других размеров, таких как 800x800 или 1024x1024, одинаково проблематично из-за квадратного соотношения сторон.

Были не очень полезные потоки issue.

И все просто говорят вам изменить размер изображений на меньший размер в файле pipeline.config следующим образом:

image_resizer {
  fixed_shape_resizer {
    height: 300
    width: 300
  }
}

image_resizer {
  keep_aspect_ratio_resizer {
    min_dimension: 300
    max_dimension: 300
  }
}

Но это не то, чем я хочу заниматься.

Keras очень удобен в этом случае, потому что вы можете просто указать размер входного тензора при загрузке предварительно обученной модели и вуаля.

model = VGG16(weights="imagenet",
           include_top=False,
           input_tensor=Input(shape=(224, 224, 3)))

Итак, есть ли способ изменить форму входного тензора файлов зоопарка модели TF2?

Заранее спасибо!


person Yasserius    schedule 26.08.2020    source источник
comment
Если вы измените размер ввода в изменении размера изображения, выдает ли это какую-либо ошибку?   -  person Aniket Bote    schedule 26.08.2020


Ответы (1)


Вы пробовали использовать версию сети на TFHub? Эта версия не имеет определенного входного размера (она принимает изображения размера (1, None, None, 3) ). Затем вы можете использовать предварительно обученную сеть в своем собственном наборе данных изображений, независимо от их размера.

image = tf.io.decode_jpeg(tf.io.read_file(path))
image = tf.reshape(image, shape=(1,1200,400,3))
detector = hub.load("https://tfhub.dev/tensorflow/efficientdet/d0/1")
detector_output = detector(image)

EfficientDet D0 доступен в центре TF по адресу https://tfhub.dev/tensorflow/efficientdet/d0/. 1.

person Andrew Wiedenmann    schedule 27.08.2020
comment
Спасибо за идею TF Hub, но я только что потратил несколько часов, пытаясь заставить объект модели TF Hub работать. - person Yasserius; 27.08.2020