本文主要是介绍德国交通标志训练集的数据预处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
网址:http://benchmark.ini.rub.de
下载好的数据集文件是.ppm格式。
需要将其转成.png格式。
每个文件夹下有.csv文件(Comma-Separated Values,标记)
里面有ROI区域的坐标,我们需要根据这个ROI区域的坐标,来分割出ROI区域,并另存为后缀为.png的格式。
写了数据转换脚本是transform.py。
再看文件夹里面的图片
读取每张图像,把每张图像的ROI区域提取出来,再转换为png的格式。脚本rio.py
把train里面的数据按20%的比例划分为训练集和测试集
脚本train_valid_split.py
按照2:8分开训练
训练集包含39209张交通标志图片。如图可以看出,该数据集的数据分布很不均衡。
读取训练集的数据和标签
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 38new_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
这篇关于德国交通标志训练集的数据预处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!