Пример #1
0
def read_data_sets(mode):
    class DataSets(object):
        pass

    data_sets = DataSets()

    train_path = './Final_Training/Images'
    # test_path = './Online-Test-sort'
    test_path = './Final_Test/Images'

    if mode == 'train':
        train_images, train_labels = readTrafficSigns.readTrafficSigns(
            train_path, 'train')
        data_set = DataSet(train_images, train_labels)
        data_set.shuffle()
        x = data_set.images
        y = data_set.labels

        data_sets.validation = DataSet(x[:4000], y[:4000])
        data_sets.train = DataSet(x[4000:], y[4000:])
        # data_sets.train.shuffle()
    else:
        test_images, test_labels = readTrafficSigns.readTrafficSigns(
            test_path, 'test')
        data_sets.test = DataSet(test_images, test_labels)
        # data_sets.test.shuffle()
    return data_sets
Пример #2
0
def main(self):
    images, ys = readTrafficSigns.readTrafficSigns(
        'D:/tf/BelgiumTSC_Training/Training')
    images = np.array(images)

    #强行设为整百,回头要修改!
    sum = len(images) - len(images) % 100
    images = images[0:sum]
    ys = ys[0:sum]

    ys_int = []
    for a in ys:
        a = int(a)
        ys_int.append(a)
    #下面表示拼接向量
    labels_expend = tf.expand_dims(ys_int, axis=1)  # 对矩阵或者向量增加一维,使其看得更清楚
    index_expends = tf.expand_dims(tf.range(len(ys_int)),
                                   axis=1)  # 和labels_expend上的元素一一对应,确定横坐标

    concat_result = tf.concat(values=[index_expends, labels_expend],
                              axis=1)  # axis=1表示在列上跨越
    labels_one_hot = tf.sparse_to_dense(
        sparse_indices=concat_result,
        output_shape=tf.zeros([len(ys), traffic_inference.OUTPUT_NODE]).shape,
        sparse_values=1.0,
        default_value=0.0)
    train(images, labels_one_hot)
    print(len(ys))
def main(argv=None):
    images,ys=readTrafficSigns.readTrafficSigns('D:/files/比赛数据/交通标志识别数据/GTSRB/GTSRB/Final_Test/Images')
    images = np.array(images)
    ys_int = []
    for a in ys:
        a = int(a)
        ys_int.append(a)
    labels_expend = tf.expand_dims(ys_int, axis=1)  # 对矩阵或者向量增加一维,使其看得更清楚
    index_expends = tf.expand_dims(tf.range(len(ys_int)), axis=1)  # 和labels_expend上的元素一一对应,确定横坐标

    concat_result = tf.concat(values=[index_expends, labels_expend], axis=1)  # axis=1表示在列上跨越
    labels_one_hot = tf.sparse_to_dense(sparse_indices=concat_result,
                                        output_shape=tf.zeros([len(ys), traffic_inference.OUTPUT_NODE]).shape,
                                        sparse_values=1.0, default_value=0.0)
    evaluate(images,labels_one_hot)
Пример #4
0
def main(self):
    images, ys = readTrafficSigns.readTrafficSigns('C:/Users/曹宇/Desktop/当前识别代码/GTSRB/Final_Training/Images')
    images=np.array(images)
    ys_int = []
    for a in ys:
        a = int(a)
        ys_int.append(a)
    labels_expend = tf.expand_dims(ys_int, axis=1)  # 对矩阵或者向量增加一维,使其看得更清楚
    index_expends = tf.expand_dims(tf.range(len(ys_int)), axis=1)  # 和labels_expend上的元素一一对应,确定横坐标

    concat_result = tf.concat(values=[index_expends, labels_expend], axis=1)  # axis=1表示在列上跨越
    labels_one_hot = tf.sparse_to_dense(sparse_indices=concat_result,
                                        output_shape=tf.zeros([len(ys), traffic_inference.OUTPUT_NODE]).shape,
                                        sparse_values=1.0, default_value=0.0)
    train(images,labels_one_hot)
    print(len(ys))
Пример #5
0
def resize_and_format(image_path, width, normalise=True):

    Xraw, Yraw = readTrafficSigns(image_path)

    X = np.zeros([len(Yraw), Xraw[0].shape[-1], width, width],
                 dtype=np.float32)
    Y = np.zeros(len(Yraw), dtype=np.int32)

    for i, xi, yi in zip(range(len(Yraw)), Xraw, Yraw):
        y = int(yi)
        im = Image.fromarray(xi)
        orig_size = im.size
        ratio = float(width) / max(orig_size)
        new_size = (int(round(ratio * orig_size[0])),
                    int(round(ratio * orig_size[1])))
        xi = np.transpose(np.asarray(im.resize(new_size)), [2, 0, 1])
        if normalise:
            xi = 2 * (xi / 255.0) - 1
        x = square_image(xi)
        X[i] = x
        Y[i] = y

    return X, Y
if __name__ == "__main__":
    import numpy as np
    array = np.zeros((32, 32))
    print(array.shape)
    array = array.reshape(1, 32, 32, 1)
    print(array.shape)

    from readTrafficSigns import readTrafficSigns
    from matplotlib import pyplot as plt

    trainImages, trainLabels = readTrafficSigns(
        "./traffic-signs-data/GTSRB_Final_Training_Images/GTSRB/Final_Training/Images/"
    )
    print(f"Labels {len(trainLabels)} and  Images {len(trainImages)}")
    plt.imshow(trainImages[42])
    plt.show()
Пример #7
0
import numpy as np
import scipy.misc
import readTrafficSigns

import rename_image_file

rootpath = '/home/exx/'
readTrafficSigns.readTrafficSigns(rootpath) 


import matplotlib
import skimage.data
import skimage.transform
import matplotlib.pyplot as plt
import tensorflow as tf
from readTrafficSigns import readTrafficSigns
def display_images_and_labels(images, labels):
    """Display the first image of each label."""
    unique_labels = set(labels)
    plt.figure(figsize=(12,12))
    i = 1
    for label in unique_labels:
        # Pick the first image for each label.
        image = images[labels.index(label)]
        plt.subplot(7, 7, i)  # A grid of 8 rows x 8 columns
        plt.axis('off')
        plt.title("Label {0} ({1})".format(label, labels.count(label)))
        i += 1
        _ = plt.imshow(image)
    plt.show()
images,labels=readTrafficSigns('D:/tf\BelgiumTSC_Training/Training')
for image in images[:5]:
    print("shape:{0},min:{1},max:{2}".format(image.shape,image.min(),image.max()))
images32=[skimage.transform.resize(image,(12,12),mode='constant')
          for image in images]
for image in images32[:5]:
    print("shape:{0},min:{1},max:{2}".format(image.shape,image.min(),image.max()))
display_images_and_labels(images,labels)
Пример #9
0
import torch.utils.data as utils
from readTrafficSigns import readTrafficSigns
import random
import math
import scipy.misc
from conv_layers import ConvNet

#print (len(X_train))   #vector of dimension 39209 --> one element per image : for each image (element) we get a matrix for each pixel containing the RGBs
#print (len(y_train))   #vector of dimension 39209 --> one element per image : for each image (element) we get the number of the class it belongs to
#print (y_train[0])
#print (type(y_train))
#for the moment, images are classed in order --> firt 210 images belong to class 0 (y=0), next ones belong to class 1 etc...

# Load the raw traffic signs data
trafficSigns_train = './data/train/Final_Training/Images'
X, y = readTrafficSigns(trafficSigns_train)

X_resized = []
for i in range(len(X)):
    image_resized = scipy.misc.imresize(X[i], (47, 47))
    X_resized.append(image_resized)

ind = list()
# subsample the data
for i in range(0, 43):
    index_value = list()
    for j in range(0, 39209):
        if int(y[j]) == i:
            index_value.append(j)
    ind.append(
        random.sample(range(min(index_value),
import matplotlib
import skimage.data
import skimage.transform
import matplotlib.pyplot as plt
import tensorflow as tf
from readTrafficSigns import readTrafficSigns
def display_images_and_labels(images, labels):
    """Display the first image of each label."""
    unique_labels = set(labels)
    plt.figure(figsize=(12,12))
    i = 1
    for label in unique_labels:
        # Pick the first image for each label.
        image = images[labels.index(label)]
        plt.subplot(7, 7, i)  # A grid of 8 rows x 8 columns
        plt.axis('off')
        plt.title("Label {0} ({1})".format(label, labels.count(label)))
        i += 1
        _ = plt.imshow(image)
    plt.show()
images,labels=readTrafficSigns('D:/files/比赛数据/交通标志识别数据/GTSRB/Final_Training/Images')
for image in images[:5]:
    print("shape:{0},min:{1},max:{2}".format(image.shape,image.min(),image.max()))
images32=[skimage.transform.resize(image,(12,12),mode='constant')
          for image in images]
for image in images32[:5]:
    print("shape:{0},min:{1},max:{2}".format(image.shape,image.min(),image.max()))
display_images_and_labels(images,labels)
import tensorflow as tf
import numpy as np
import argparse
import os
from readTrafficSigns import readTrafficSigns

parser = argparse.ArgumentParser()

parser.add_argument("-i", "--index", default=100, type=int)
parser.add_argument("--path", default=os.path.join("/home", "jsmith", "GTSRB"))
parser.add_argument("--width", type=int, default=50)
parser.add_argument("--height", type=int, default=50)

args = parser.parse_args()

x_train, y_train, x_test, y_test = readTrafficSigns(args.path,
                                                    (args.width, args.height))

num_classes = len(np.unique(y_train))

x_train = x_train.astype('float32')
x_train /= 255.0

y_train = tf.keras.utils.to_categorical(y_train, num_classes)
#y_train = y_train.astype(np.int32)

x_init = x_train[args.index:args.index + 1]
y_init = y_train[args.index:args.index + 1]

file_name_x = 'gtsrb_{}.pb'.format(args.index)
file_name_y = 'gtsrb_{}_label.pb'.format(args.index)
                    dest='accumulate',
                    action='store_const',
                    const=sum,
                    default=max,
                    help='sum the integers (default: find the max)')

args = parser.parse_args()


def vprint(string):
    if args.verbose:
        print(string)


vprint('begin loading images from file')
images, labels = readTrafficSigns.readTrafficSigns(args.data)

vprint('\tdone\nplot exemplary images')
fig = plt.figure(figsize=(20, 5))
for i in range(30):
    ax = plt.subplot(3, 10, i + 1)
    rand_sample = random.randrange(0, len(images))
    plt.imshow(images[rand_sample], cmap='gray')
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
plt.show()

vprint('preprocess input data')

labels = [int(l) for l in labels]
labels = utils.preprocess_labels(labels, size=max(labels))
def display_images_and_labels(images, labels):
    """Display the first image of each label."""
    unique_labels = set(labels)
    plt.figure(figsize=(12, 12))
    i = 1
    for label in unique_labels:
        # Pick the first image for each label.
        image = images[labels.index(label)]
        plt.subplot(7, 7, i)  # A grid of 8 rows x 8 columns
        plt.axis('off')
        plt.title("Label {0} ({1})".format(label, labels.count(label)))
        i += 1
        _ = plt.imshow(image)
    plt.show()


images, labels = readTrafficSigns(
    'C:/Users/曹宇/Desktop/当前识别代码/GTSRB/Final_Training/Images')
for image in images[:5]:
    print("shape:{0},min:{1},max:{2}".format(image.shape, image.min(),
                                             image.max()))

images32 = [
    skimage.transform.resize(image, (12, 12), mode='constant')
    for image in images
]
for image in images32[:5]:
    print("shape:{0},min:{1},max:{2}".format(image.shape, image.min(),
                                             image.max()))
display_images_and_labels(images, labels)