Значения, упомянутые в исходном вопросе, выглядят как значения «цветовой карты», которые могут быть получены функцией getpalette()
из модуля PIL Image
.
Для аннотированных значений изображений VOC я использую следующий фрагмент кода, чтобы проверить их:
import numpy as np
from PIL import Image
files = [
'SegmentationObject/2007_000129.png',
'SegmentationClass/2007_000129.png',
'SegmentationClassRaw/2007_000129.png', # processed by _remove_colormap()
# in captainst's answer...
]
for f in files:
img = Image.open(f)
annotation = np.array(img)
print('\nfile: {}\nanno: {}\nimg info: {}'.format(
f, set(annotation.flatten()), img))
Три изображения, используемые в коде, показаны ниже (слева направо соответственно):
![введите здесь описание изображения](https://i.stack.imgur.com/UA2wc.png)
Соответствующие выходы кода следующие:
file: SegmentationObject/2007_000129.png
anno: {0, 1, 2, 3, 4, 5, 6, 255}
img info: <PIL.PngImagePlugin.PngImageFile image mode=P size=334x500 at 0x7F59538B35F8>
file: SegmentationClass/2007_000129.png
anno: {0, 2, 15, 255}
img info: <PIL.PngImagePlugin.PngImageFile image mode=P size=334x500 at 0x7F5930DD5780>
file: SegmentationClassRaw/2007_000129.png
anno: {0, 2, 15, 255}
img info: <PIL.PngImagePlugin.PngImageFile image mode=L size=334x500 at 0x7F5930DD52E8>
Из вышеприведенного вывода я понял две вещи.
Во-первых, значения аннотации изображений в папке SegmentationObject присваиваются по количеству объектов. В данном случае 3 человека и 3 велосипеда, а аннотированные значения - от 1 до 6. Однако для изображений в папке SegmentationClass их значения назначаются значением класса объектов. Все люди относятся к классу 15, а все велосипеды - к классу 2.
Во-вторых, как уже упоминал mkisantal, после операции np.array()
цветовая палитра была удалена (я "знаю" это, наблюдая за результатами, но я все еще не понимаю механизма под капотом ... ). Мы можем подтвердить это, проверив image mode
выходов:
И SegmentationObject/2007_000129.png
, и SegmentationClass/2007_000129.png
имеют image mode=P
, в то время как
SegmentationClassRaw/2007_000129.png
имеет image mode=L
. (ref: Режимы изображения PIL )
person
hiankun
schedule
25.04.2020