Считать изображение в тензорном потоке с индексированным значением цвета для задачи семантической сегментации - PullRequest
0 голосов
/ 09 мая 2018

Я создаю FCN для семантической сегментации.У меня возникают трудности с преобразованием помеченного изображения PNG в индексированное значение цвета в наборе данных PascalVOC.Я хочу, чтобы значение было в диапазоне от 0 до 20. Поскольку я могу добиться такой операции с PIL в следующем коде

with Image.open(image_path) as img:
    label = np.array(img)

, он выводит то, что я хочу.Но для реализации тензорного потока я хочу, чтобы это было то же значение с кодом, подобным следующему

file = tf.read_file(image_path)
label = tf.image.decode_png(file, channels=0)

Но реализация тензорного потока приводит значение от 0 до 255. Есть ли способ, которым я могу достичь реализации PIL ва тензорный поток?Спасибо.

1 Ответ

0 голосов
/ 09 мая 2018

Файл SegmentationClass содержит компонент карты цветов, поэтому при использовании tf.decode_png() необходимо указать как:

label = tf.image.decode_png(file, channels=3)

Теперь у вас есть RGB значения, которые вы можете использовать create_pascal_label_colormap () для преобразования в идентификаторы классов.

...