Изменяются ли размеры входных изображений до фиксированной ширины и высоты во время обучения в detectron2?

#conv-neural-network #object-detection #resnet

Вопрос:

Изменяются ли размеры входных изображений на фиксированную ширину и высоту во время обучения в detectron2? и если да, пожалуйста, объясните, почему? Спасибо!

Ответ №1:

Да, это так. Причина в том, что большие изображения не могут поместиться в память. Даже с 8 ГБ графического процессора невозможно тренироваться с изображениями с высоким разрешением.

Кроме того, существует компромисс между размером изображения и размером пакета; чем больше изображение, тем меньше размер пакета.

В Detectron2 вы можете изменить минимальный размер изображения в конфигурации следующим образом:

 from detectron2.config import get_cfg
cfg = get_cfg()
# minimum image size for the train set
cfg.INPUT.MIN_SIZE_TRAIN = (800,)
# maximum image size for the train set
cfg.INPUT.MAX_SIZE_TRAIN = 1333
# minimum image size for the test set
cfg.INPUT.MIN_SIZE_TEST = 800
# maximum image size for the test set
cfg.INPUT.MAX_SIZE_TEST = 1333
 

Размер изображения задается для ширины изображения, а высота подбирается соответственно, чтобы избежать неупорядоченности изображений.

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

 cfg .INPUT.MIN_SIZE_TRAIN = (600, 900, 900)
cfg .INPUT.MIN_SIZE_TRAIN_SAMPLING = "choice"
 

Для получения дополнительной информации см. Здесь.