Я пытаюсь обучить мою модель, которая классифицирует изображения. Проблема у меня есть, у них разные размеры. Есть ли возможность тренировать эти изображения, не изменяя их размеры.Как тренировать изображения, когда они имеют разный размер?
ответ
Вы не сказали, о какой архитектуре вы говорите. Поскольку вы сказали, что хотите классифицировать изображения, я предполагаю, что это частично сверточная, частично полностью подключенная сеть, такая как AlexNet, GoogLeNet и т. Д. В общем, ответ на ваш вопрос зависит от типа сети, с которой вы работаете.
Если, например, ваша сеть содержит только сверточные единицы - то есть не содержит полностью подключенных слоев - это может быть инвариантным к размеру входного изображения. Такая сеть может обрабатывать входные изображения и, в свою очередь, возвращать другое изображение («сверточное полностью»); вы должны убедиться, что результат соответствует тому, что вы ожидаете, так как вы должны каким-то образом определить потерю.
Если вы используете полностью подключенные устройства, тем не менее, у вас есть проблемы: здесь у вас есть фиксированное количество узнаваемых весов, с которыми ваша сеть должна работать, поэтому для разных входов потребуется различное количество весов - и это не так возможное.
Если это ваша проблема, вот некоторые вещи, которые вы можете сделать:
- Не заботьтесь о давя изображения. В любом случае сеть может научиться понимать содержание; действительно ли масштаб и перспектива все равно означают контент?
- Центрируйте изображения до определенного размера. Если вы боитесь, что потеряете данные, делайте несколько культур и используйте их для увеличения ваших входных данных, чтобы исходное изображение было разбито на
N
на различные изображения правильного размера. - Поместите изображения с сплошным цветом в квадрат, затем измените размер.
- Сделайте комбинацию этого.
Опция дополнения может создать дополнительный источник ошибок для прогнозирования сети, поскольку сеть может (предположительно будет выглядеть) быть смещенной к изображениям, которые содержат такую дополненную границу. Если вам нужны какие-то идеи, посмотрите раздел Images документации TensorFlow, есть такие штуки, как resize_image_with_crop_or_pad
, которые забирают большую работу.
Что касается просто не заботясь о выжимании, here's кусок предварительной обработки трубопровода известной сети Начального:
# This resizing operation may distort the images because the aspect
# ratio is not respected. We select a resize method in a round robin
# fashion based on the thread number.
# Note that ResizeMethod contains 4 enumerated resizing methods.
# We select only 1 case for fast_mode bilinear.
num_resize_cases = 1 if fast_mode else 4
distorted_image = apply_with_random_selector(
distorted_image,
lambda x, method: tf.image.resize_images(x, [height, width], method=method),
num_cases=num_resize_cases)
Они полностью осведомлены об этом и сделать это в любом случае.
В зависимости от того, насколько вы хотите, или нужно идти, там на самом деле это бумага here называется Spatial Пирамида Pooling в глубоких сверточных сетях для визуального распознавания, который обрабатывает входы произвольных размеров путем обработки их особым образом.
Попробуйте создать слой пула пространственной пирамиды. Затем поместите его после вашего последнего слоя свертки, чтобы слои FC всегда получали постоянные размерные векторы в качестве входных данных. Во время обучения подготовьте изображения из всего набора данных, используя определенный размер изображения за одну эпоху. Затем на следующую эпоху переключитесь на другой размер изображения и продолжите обучение.
- 1. Разный размер изображения OpenCV stereoCalibrate
- 2. имеют разный цвет и разный размер шрифта в одной этикетке
- 3. Как лучше тренировать SVM на изображениях с различным соотношением сторон
- 4. Как UICollectionViewCells имеют разный интервал
- 5. Как сделать разный размер в представлении изображения в Tableview?
- 6. Как тренировать изображения с EigenObjectRecognizer
- 7. Как найти подходящие функции из двух изображений, когда матрицы, содержащие их извлеченные функции, имеют разный размер?
- 8. Сочетание двух чертежей, один над другим, которые имеют разный размер
- 9. Python socket receive - входящие пакеты всегда имеют разный размер
- 10. Разный размер блока Hadoop
- 11. Тот же размер изображения в xml - разный на устройстве
- 12. Как сделать изображения исчезают, когда они перекрываются?
- 13. Unicode имеют разный тип? что там происходит?
- 14. , когда изменить размер изображения?
- 15. React Native - Разный размер изображения между android и iOS
- 16. Android Studio разный размер изображения на разных устройствах
- 17. Два одинаковых файла имеют разный размер файла, основанный на том, как он написан с C#
- 18. Перенос изображения на разный размер и поиск местоположения пикселей
- 19. Разный размер текста на тех же изображениях
- 20. Сравнение строк, которые имеют разный порядок
- 21. magento 1.7.0.2 - один продукт - разный размер - доступен
- 22. h2 margin или padding больше h3, даже если они имеют одинаковый размер шрифта?
- 23. Получите разный размер дисплея. как конвертировать в исходный размер?
- 24. Имеют разный цвет фона для каждого div на одной странице
- 25. Как тренировать модель caffe?
- 26. Изменить размер изображения, когда пользователь загружает изображения
- 27. Показать изображения, когда они полностью загружены?
- 28. Содержите размер изображения HTML, как только они были нажаты на
- 29. Как добавить разный размер локальных изображений в Ionic
- 30. Как сделать каждый li из ul имеют разный край верхнего
Пожалуйста, покажите, что вы пробовали до сих пор, и то, что, похоже, не работает на вас. –
И bam там идет код Inception v4. Я не согласен с этим замечанием. Немного больше ввода было бы неплохо - как то, о какой сети мы говорим, - но нисходящие нити не оправданы вообще. Это реальная проблема. – sunside
Вопрос в том, как ImageNet форматирует данные своих изображений, чтобы быть полезными для обучения? – mskw