Как обрезать изображение Landsat в более мелкие куски для обучения, а затем предсказать исходное изображение - PullRequest
0 голосов
/ 06 марта 2020

Я смотрю на использование изображений Landsat для обучения CNN для неуправляемой пиксельной семантики c классификации сегментации. Тем не менее, я не смог найти метод, который позволил бы мне обрезать изображения с большего изображения Landsat для обучения, а затем прогнозировать исходное изображение. По сути, вот что я пытаюсь сделать:

Исходное изображение Landsat (5000 x 5000 - это произвольный размер, не совсем точный в реальных размерах) -> обрезать изображение в (100 x 100) куски -> обучить модель на этих обрезанных изображениях -> вывести прогноз для каждого пикселя в исходном (необрезанном) изображении. сшить их вместе после того, как они предсказаны или, если я могу предсказать на исходном изображении.

Любые пояснения / примеры кода будут с благодарностью. Для справки я использую как pytorch, так и tenorflow.

Спасибо! Ланс Д

1 Ответ

0 голосов
/ 20 марта 2020

Заимствуя у Роннебергера и др. , мы делали входную сцену Landsat и соответствующую маску истинности земли на перекрывающиеся тайлы. Возьмите оригинальное изображение и добавьте его по краям перекрытия (мы используем отражение для отступа), затем разделите на плитки. Вот фрагмент кода с использованием scikit-image:

import skimage as sk
patches = sk.util.view_as_windows(image,
  (self.tile_height+2*self.image_margin,
  self.tile_width+2*self.image_margin,raster_value['channels']),
  (self.tile_height,self.tile_width,raster_value['channels'])

Я не знаю, что вы используете для функции потерь для неконтролируемой сегментации. В нашем случае с контролируемым обучением мы обрезаем окончательный прогноз сегментации, чтобы он соответствовал основной форме вывода истинности. В статье Роннебергера они полагались на усадку из-за использования допустимых отступов. Для прогнозов вы должны сделать то же самое (разделить на перекрывающиеся плитки) и сшить результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...