Предварительная обработка Keras для задачи трехмерной семантической сегментации - PullRequest
1 голос
/ 04 июля 2019

Для семантической сегментации изображений я понимаю, что у вас часто есть папка с вашими изображениями и папка с соответствующими масками. В моем случае у меня есть полутоновые изображения с размерами (32, 32, 32). Маски естественно имеют одинаковые размеры. Метки сохраняются как значения интенсивности (значение 1 = метка 1, значение 2 = метка 2 и т. Д.). Всего 4 класса. Представьте, что я нашел модель, созданную с помощью API-интерфейса модели keras. Как мне узнать, как подготовить данные на этикетке, чтобы они были приняты моделью? Зависит ли это от функции потерь? Это определено в модели (входной параметр). Должен ли я просто добавить другое измерение (4, 32, 32, 32), в котором 4 представляет 4 различных класса и один горячий код это?

Я хочу построить трехмерную сверточную нейронную сеть для семантической сегментации, но я не понимаю, как правильно вводить данные в кератах. Предполагается, что прогнозируемый выходной сигнал представляет собой 4-канальное трехмерное изображение, каждый канал которого показывает значения вероятности каждого пикселя, принадлежащие определенному классу.

1 Ответ

0 голосов
/ 10 июля 2019

Функция Input() определяет форму входного тензора данной модели. Для трехмерных изображений часто ожидается 5D Tensor, например (None, 32, 32, 32, 1), где None относится к размеру партии. Поэтому тренировочные образы и ярлыки должны быть изменены. Keras предлагает функцию to_categorical для быстрого кодирования данных метки (что необходимо). Использование генераторов помогает вводить данные. В этом случае я не могу использовать ImageDataGenerator от keras, так как он может работать только с изображениями RGB и градациями серого и поэтому должен написать собственный скрипт.

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