1:在train中加载train和test数据集。
2:指定数据集为kitti,确定训练验证的batchsize。
3:提前定义好数据预处理,首先是几何变换,包括随机裁切等。
4:然后是外观变换,包括高斯滤波,调整颜色等。
5:这些都是train的变化,接着是validation的变换。只有归一化和转换为tensor。
6:然后就是定义dataset,包括对图片进行处理。
7:接着在KITTI数据集中,定义参数:
8:最重要的是划分数据集:首先看一下原始目录:
training:
testing:
9:如果mode为test,quality为semantic,制作test数据集。
10:img位于KITTI下的testing下的image_2目录中。将testing文件夹下image的图片和None(testing没有标签)作为一个列表存储起来,并返回。
11:如果mode不为test,那么还可以为train,trainval。首先查看training目录下image2和semantic目录下的图片。通过一一遍历组合成一个(image,mask)组成的列表。接着将列表进行划分。
12:通过get_train_val进行划分。确定好按几折划分。
13:给出val所对应的图片,有20个,遍历循环,将位于val_0/1/2的图片添加到val_set中,其余的添加到train_set中并返回。
14:判断mode的模式,这里第一次看漏了,如果mode = train,则items=train_set=180张image和对应的180张mask。如果mode=val,则items=val_set=20张image和对应的20张mask。如果mode=trainval,则items=train_set + val_set=200张所有的image和对应的200张mask。
在kitti验证时候,验证的是所有图片。
15:接着生成一个json:
16:将self.imgs图片和类别,以及cityscape的id_to_trainid输入到class_centroids_all中,猜测是将semantic的34个类别映射到19个类别,将centroids写入到json文件中。
17:接着用新生成的uniform_image代替旧的image。
18:接着在get_item_中读入图片,并对图片进行处理。