自定义数据的读取是快速验证模型的最重要的一步。模型结构可以复用,但自己的数据集和公开的citysacpes,coco数据集标注格式还是有差异。以下是针对三通道彩色或单通道白色mask图转成cityscapes mask图格式。
import numpy as np
from PIL import Image
###15个类别,背景是黑色。类别1对应[1,1,1]####
PALETTE = [[0, 0, 0], [1, 1, 1], [2, 2, 2], [3, 3, 3],
[4, 4, 4], [5, 5, 5], [6, 6, 6], [7, 7, 7],
[8, 8, 8], [9, 9, 9], [10, 10, 10], [11, 11, 11], [12, 12, 12],
[13, 13, 13], [14, 14, 14]]
####自己数据集mask图的类别和颜色对应关系#####
label_colors = {'0':0,'1': 255-4, '2': 255-9, '3': 255-6, '4': 255-10, '5': 255-7,
'6': 255-8, '7': 255-5,'8': 255-27, '9': 255-21,'10': 255-22, '11': 255-26,'12': 255-23, '13': 255-25,'14': 255-24}
####转成citysacpes格式mask图。即类别1对应的是[1,1,1]像素值,背景都是0####
def convt(srcimg_pth):
width = 640
height = 640
img1 = Image.open(srcimg_pth)