Какова причина минимального размера изображения в модели Keras InceptionResNetV2?

Вопрос или проблема

В документации Keras для модели InceptionResNetV2 говорится следующее:

input_shape: (…). Она должна иметь ровно 3 входных канала, и ширина и высота должны быть не меньше 139.

Я пытаюсь разобраться, почему минимальный размер для этой модели составляет 139px, так как я планирую обучать её на меньших изображениях (начиная с 128px).

Я не могу найти никаких подсказок в исходном коде модели или в статье, описывающей модель.

Если предположить, что это число не является случайным, какова причина минимального размера в 139px?

Здесь представлена схема inception resnet v1 (по сути то же самое, что и V2). Вы можете увидеть, что на входном уровне размер изображения начинается с 299×299. К моменту достижения уровня Inception-resnet-C оно уменьшено до 8×8 из-за всех слоев свертки и объединения, через которые оно прошло. Теперь, если использовать меньшие изображения, этот последний слой уменьшится с 8×8 до чего-то вроде 5×5. В итоге может быть такой размер изображения, который начнет уменьшаться до 0x0, что просто ломает модель. Так что я предполагаю, что при 139×139 вы начинаете получать слои, которые выдают 0x0. Если вы действительно хотите использовать inception resnet v2, вам придется пройти и изменить все размеры ядер так, чтобы они работали с таким размером изображения. Это слишком трудоемко, поэтому я бы просто добавил 0 подкладку на изображение, чтобы оно было как минимум 139. Это действительно хорошая модель, поэтому я думаю, что вы все равно получите хорошие результаты.

Схема Inception ResNet V1

.

Ответ или решение

Причина минимального размера изображения в модели InceptionResNetV2, указанного в документации Keras, связана с архитектурой самой модели. Давайте подробно разберем, почему цветное изображение (с тремя каналами) должно быть не меньше 139×139 пикселей, и как это связано с внутренними слоями и операциями сети.

Теория

Модель InceptionResNetV2, как и её предшественники, строится на глубокой архитектуре нейронной сети с многочисленными слоями свёртки и операций pooling (объединения). Каждая операция свёртки, объединения и активации в процессе обработки свёрточной нейронной сетью уменьшает пространственные размеры (ширина и высота) входного изображения. Эти преобразования имеют фиксированные размеры окон (kernel size) и шаги (stride), обусловленные конфигурацией модели.

Конечная цель этой последовательности операций заключается в постепенном уменьшении размеров изображения, сохраняя при этом информационное содержание, то есть высокоуровневые признаки. Однако, если входное изображение слишком мало, свёрточные и объединяющие слои могут уменьшить размеры до нуля, что делает невозможным процесс обучения и выводов.

Пример

Рассмотрим пример работы слоев в модели InceptionResNetV2. На вход подается изображение размером 299×299 (рекомендуемый размер), и каждый слой ведет к постепенному уменьшению размеров, например:

  1. Начальные свёртки и объединения могут уменьшить размер до 149×149.
  2. Далее, слои Inception могут уменьшить размеры ещё до 75×75, затем до 35×35.
  3. Последовательные слои обработки донесут итоговые размеры до 17×17 и затем до 8×8.

Итак, если в общих чертах понимать функцию слоёв, то даже относительно большие изображения (например, 139×139) могут в результате работы Conv и Pooling слоев достичь минимальных размеров, таких как 8×8. Однако, если входное изображение изначально будет меньше, процесс уменьшения размеров может привести модель к практике с размерами, равными 0x0, что вызовет ошибки в вычислениях.

Применение

Чтобы адаптировать архитектуру InceptionResNetV2 к более малым изображениям, предлагаются несколько подходов:

  1. Изменение архитектоники модели: Редактирование размеров ядер и шага в слоях свёрток и объединений. Это сложный и трудозатратный процесс, требующий глубокого понимания как работы свёрточной нейронной сети, так и теоретических особенностей Inception-иного дизайна, чтобы сохранить модель производительность.

  2. Добавление обводки (padding): Простое и часто используемое решение. Оно подразумевает добавление пикселей по краям входного изображения для достижения минимального размера 139×139. Обводка может быть реализована нулями (zero padding), что незначительно влияет на содержание изображения и позволяет эффективно использовать уже существующую предварительно обученную модель.

  3. Масштабирование (resizing): Маштабирование входных изображений до минимального рекомендуемого размера. Это может быть нежелательно, если важно сохранить оригинальное соотношение сторон или если масштабирование ведет к искажению критичной информации.

Заключение

Таким образом, минимальный размер изображения в модели InceptionResNetV2 связан с необходимостью поддержания адекватных размеров активационной карты на всех этапах работы модели. Разработка сети учитывает возможность получения максимальной производительности при определённой конфигурации слоев. Использование меньших изображений требует дополнительной обработки и изменений в сетевой архитектуре, но добавление обводки или масштабирование предоставляют практическое и часто использующееся решение.

Оцените материал
Добавить комментарий

Капча загружается...