网址: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 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