德国交通标志训练集的数据预处理

 

网址:http://benchmark.ini.rub.de

下载好的数据集文件是.ppm格式。

德国交通标志训练集的数据预处理_第1张图片

需要将其转成.png格式。

每个文件夹下有.csv文件(Comma-Separated Values,标记)

德国交通标志训练集的数据预处理_第2张图片

里面有ROI区域的坐标,我们需要根据这个ROI区域的坐标,来分割出ROI区域,并另存为后缀为.png的格式。

写了数据转换脚本是transform.py。

德国交通标志训练集的数据预处理_第3张图片

再看文件夹里面的图片

德国交通标志训练集的数据预处理_第4张图片

读取每张图像,把每张图像的ROI区域提取出来,再转换为png的格式。脚本rio.py

德国交通标志训练集的数据预处理_第5张图片

德国交通标志训练集的数据预处理_第6张图片

 

把train里面的数据按20%的比例划分为训练集和测试集

脚本train_valid_split.py

按照2:8分开训练

训练集包含39209张交通标志图片。如图可以看出,该数据集的数据分布很不均衡。

德国交通标志训练集的数据预处理_第7张图片

读取训练集的数据和标签

X_train, Y_train = read_additional_dataset_images(type='train')

读取验证集集的数据和标签

X_test, Y_test = read_additional_dataset_images(type='test')

读取测试集的数据和标签:

image_list ,expected_answ= read__test_images()

def read__test_images():
    #files = glob.glob('../GTSRB/dataset/test_bk/*/*.png')
    files = glob.glob('../GTSRB/Final_Test/Images_48x48/*.png')
    image_list = []
    expected_answ = []
    test_csv_data = pd.read_csv("../GTSRB/Final_Test/Images_48x48/GT-final_test.csv")
    test_csv_data_arr = np.array(test_csv_data)
    for index in range(test_csv_data_arr.shape[0]):
        row_data = np.array(test_csv_data)[index][0]
        row_data_list = row_data.split(";")
        sample_file_name = row_data_list[0]
        sample_label = row_data_list[-1]
        expected_answ.append(int(sample_label))
        #print(sample_file_name, sample_label)
        # 00000.ppm 16
        # 00001.ppm 1
        # 00002.ppm 38

        new_sample_file_name = sample_file_name.split(".")[0] + ".png"
               # 00000.png
                # 00001.png
                # 00002.png
                # 00003.png
        #expected_answ=expected_answ.append()
        output_image = cv2.imread('../GTSRB/Final_Test/Images_48x48/'+new_sample_file_name, 0)
        #print('../GTSRB/Final_Test/Images_48x48/'+new_sample_file_name)
        image_list.append(output_image)
    image_list = np.array(image_list)
    return image_list, expected_answ
 

你可能感兴趣的:(deep,Learning)