Pascal VOC Class Segmentation: правдоподобная маркировка пикселей для обучения

Я только начал работать над набором данных сегментации Pascal VOC. Но мне трудно понять цветовую кодировку, которую они использовали в маркировке земли. Я предполагал, что пиксели будут аннотированы от 1 до 20 для каждого класса, но у меня есть 8-битные изображения PNG со значениями пикселей (0-255).

Для определенного пикселя, принадлежащего классу aeroplane в 2007_000033.png, я получаю значения: (128, 0, 0); в то время как другой пиксель, принадлежащий классу train в 2007_000123.png, дает значения: (128, 0, 192) и так далее.

Как мне различать их в разных классах и выполнять однократное кодирование? Нужно ли указывать значения пикселей для каждого класса (например, искать пиксели с (128, 0, 0) и кодировать их как 1 для класса aeroplane)?

Извините, я вижу несколько похожих вопросов на SO, но мне ничего не помогло. Спасибо.


comment
Вероятно, вам следует проверить класс каждого пикселя и сопоставить его с определенным цветом. Проверьте это gist.github.com/wllhf/a4533e0adebe57e3ed06d4b50c8419ae.   -  person MattSt    schedule 09.05.2018
comment
Спасибо @MattSt. Это должно быть хорошо.   -  person Anakin    schedule 09.05.2018


Ответы (1)


Я задавал себе аналогичный вопрос, который меня некоторое время смущал. И я думаю, что нашел возможное объяснение:

Если вы посмотрите на file_download_and_convert_voc2012.sh , есть строки, отмеченные «# Удалить цветовую карту в аннотациях истинности земли». Эта часть обрабатывает исходные файлы SegmentationClass и создает необработанные файлы сегментированных изображений, каждое значение пикселя которых находится в диапазоне 0:20. (Если вы можете спросить, почему, проверьте этот пост: Python: использование PIL для загрузки png-файла дает странные результаты)

person captainst    schedule 04.08.2018