如何使用tensorflow阅读器API读取GTSRB数据

时间:2016-06-03 12:05:23

标签: python computer-vision tensorflow

我想阅读带有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

1 个答案:

答案 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数组。