一、训练数据集介绍
CamVid数据集包 括 700 多张精准标注的图片用于强监督学习,可分为训练集、验证集、测试集。同时, 在 CamVid 数据集中通常使用 11 种常用的类别来进行分割精度的评估,分别为:道路 (Road)、交通标志(Symbol)、汽车(Car)、天空(Sky)、行人道(Sidewalk)、电线杆 (Pole)、围墙(Fence)、行人(Pedestrian)、建筑物(Building)、自行车(Bicyclist)、 树木(Tree)。数据集中的CSV文件代表着不同类别的RGB通道值
1.1 数据预处理---标签编码
class LabelProcessor:
def __init__(self, file_path):
self.colormap = self.read_color_map(file_path)
self.cm2lbl = self.encode_label_pix(self.colormap)
@staticmethod
def read_color_map(file_path):
pd_label_color = pd.read_csv(file_path, sep=',')
colormap = []
for i in range(len(pd_label_color.index)):
tmp = pd_label_color.iloc[i]
color = [tmp['r'], tmp['g'], tmp['b']]
colormap.append(color)
return colormap
'''
函数encode_label_color(colormap),形成颜色到标签的一一对应关系,下面使用了类似256进制的方法映射每一个color map里的像素点到它所表示的类别
(用哈希函数做了一张哈希表)
希函数:(cm[0] * 256 + cm[1]) * 256 + cm[2]
哈希映射:cm2lbl[(cm[0] * 256 + cm[1]) * 256 + cm[2]] = i
哈希表:cm2lbl
原理:一个像素点如:P(128,64,128)由编码函数(P[0] * 256 + P[1]) * 256