Voc2012数据集 分割 怎么使用 加载标注

voc2007 与 voc2017是互斥的图片。这次说2012

解压统统使用tar -xf 使用命令行,会自动给你融合图片。

标注是图片,存储在/..../VOCdevkit/VOC2012/SegmentationClass

Voc2012数据集 分割 怎么使用 加载标注_第1张图片

标注一共是20类,加上背景21类,白边呢,算是未标注类,不计算到损失函数里,注意下。

读取代码:

import numpy as np
from PIL import Image
from matplotlib import pyplot as plt
#标注地址
vocdir = '/home/DATA/database/VOC2012/ts/'
labdir = 'VOCdevkit/VOC2012/'
task = 'SegmentationClass/'
#数据set地址
list_dir = '/home/DATA/database/VOC2012/ts/VOCdevkit/VOC2012/ImageSets/Segmentation/'
list_name = 'train.txt'
all_the_text = open(list_dir+list_name).read()
train = all_the_text.split('\n')
for ind in train[0:1]:
#按照图片名字读取,实际上读取数据只需要这一句话。
    lab = Image.open(vocdir+labdir+task+ind+'.png')

    plt.imshow(lab)
    plt.savefig("readlab")

前面写了很多地址,真正的关键是读取使用Image.open以P通道读取,这样的话

>>uniq = np.unique(lab)
>>uniq
>>array([  0,   1,  15, 255], dtype=uint8)

这个255需要自己处理下,别跑网络的时候也计算到损失里面去

参考:

https://www.zhihu.com/question/263994588

https://arleyzhang.github.io/articles/1dc20586/

你可能感兴趣的:(keras,python,神经网络)