我想阅读带有tensorflow内置apis的GTSRB数据集(Reader API)
有人可以帮忙吗?
注意:我已阅读 csv 和**
的数据集def load_gtsrb_data(path, cut_roi=True):
images = {'x': [], 'y': []}
for i in xrange(FLAGS.num_classes):
prefix = path + '/' + format(i, '05d') + '/'
with open(prefix + 'GT-' + format(i, '05d') + '.csv') as gt_file:
datadict = _parse_annotations(prefix, gt_file, cut_roi)
images['x'].extend(datadict['x']), images['y'].extend(datadict['y'])
return images
_parse_annotations 是
def _parse_annotations(prefix, gt_file, cut_roi):
reader = csv.reader(gt_file, delimiter=';')
reader.next()
images = {'x': [], 'y': []}
for row in reader:
# first column of csv file is filename
image = cv2.imread(prefix + row[0])
# remove regions surrounding the actual traffic sign
if cut_roi:
image = image[np.int(row[4]):np.int(row[6]), np.int(row[3]):np.int(row[5]), :]
images['x'].append(image)
images['y'].append(row[7])
return images
答案 0 :(得分:1)
German Traffic Sign Recognition Benchmark将其训练数据集分发为PPM图像的ZIP存档,每个类别有一个目录。
TensorFlow不包含PPM格式的解析器,但它可以读取JPEG和PNG图像。最直接的方法是将GTSRB图像转换为tf.Example
协议缓冲区的TFRecords文件。 Inception模型带有a script for converting ImageNet data这种格式,您可以将其用于图像。在您的情况下,训练数据将具有三个“特征”:图像数据作为浮点值数组,图像形状作为一对整数值,标签作为标量整数。要将图像数据作为浮点值(和形状)数组获取,可以使用OpenCV(cv2.imread(filename)
)来解析每个PPM文件并生成NumPy数组。