Exemplo n.º 1
0
    def test_random_augment(self):
        d = model.MyDriver()
        (X_train, y_train) = d.load_train_samples("../data/driving_log.csv")

        assert (X_train[0] == "../data/IMG/center_2016_12_01_13_30_48_287.jpg")
        assert (X_train[1] == "../data/IMG/left_2016_12_01_13_30_48_287.jpg")
        assert (X_train[2] == "../data/IMG/right_2016_12_01_13_30_48_287.jpg")
        assert (os.path.isfile(X_train[0]))
        assert (os.path.isfile(X_train[1]))
        assert (os.path.isfile(X_train[2]))
        plt.figure(2)

        frow = 4
        fcol = 4
        index = 1
        plt.subplot(fcol, frow, index)
        index += 1
        org_image = d.load_image(X_train[1])

        steer = 0.0
        plt.imshow(org_image)
        plt.title("org")

        for i in range(0, frow * fcol - 1):
            plt.subplot(fcol, frow, index)
            index += 1
            print(org_image)
            # 130, 163, 208
            (image, steer) = d.augment_and_preprocess((org_image, steer))

            plt.imshow(np.copy(image))

        plt.show()

        return
Exemplo n.º 2
0
    def _test_train_sample(self):
        d = model.MyDriver()
        (X_train, y_train) = d.load_train_samples("../data/driving_log.csv")

        assert (
            X_train[0] == "../data/IMAGE/center_2016_12_01_13_30_48_287.jpg")
        assert (X_train[1] == "../data/IMAGE/left_2016_12_01_13_30_48_287.jpg")
        assert (
            X_train[2] == "../data/IMAGE/right_2016_12_01_13_30_48_287.jpg")

        assert (y_train[0] == 0.0)
        assert (y_train[1] == 0.2)
        assert (y_train[2] == -0.2)
        return
Exemplo n.º 3
0
    def test_train_generator_call(self):
        d = model.MyDriver()
        plt.figure(3)

        frow = 4
        fcol = 4
        index = 1

        gen = d.train_generator("../data/driving_log.csv", 1)
        for i in range(0, frow * fcol - 1):
            plt.subplot(fcol, frow, index)
            index += 1
            (image, steer) = gen.next()
            plt.imshow(np.copy(image[0]))
            plt.title("steer=%f" % steer)
        plt.show()

        return
Exemplo n.º 4
0
    def _test_train_generator(self):
        d = model.MyDriver()
        (X_train, y_train) = d.load_example_training_data(
            examples=10, width=8,
            height=8)  # //d.load_traing_data("../data/driving_log.csv"))
        model = d.simple_network(8, 8)
        history_object = model.fit_generator(d.train_generator_example(
            zip(X_train, y_train), 10),
                                             steps_per_epoch=10,
                                             epochs=10,
                                             verbose=1)

        if 0:
            model.save('test_train.md5')
            model = keras.models.load_model('test_train.md5')
        y = model.predict(X_train)
        y_index = np.argmax(y, 1)
        print(y_index)
        for i in range(0, 10):
            assert (y_index[i] == i)
        return
Exemplo n.º 5
0
    def _test_train(self):
        d = model.MyDriver()
        (X_train, y_train) = d.load_example_training_data(
            examples=10, width=8,
            height=8)  # //d.load_traing_data("../data/driving_log.csv"))
        model = d.simple_network(8, 8)
        model.fit(X_train,
                  y_train,
                  validation_split=0.0,
                  shuffle=True,
                  nb_epoch=100,
                  verbose=1)
        if 0:
            model.save('test_train.md5')
            model = keras.models.load_model('test_train.md5')
        y = model.predict(X_train)
        y_index = np.argmax(y, 1)
        print(y_index)

        for i in range(0, 10):
            assert (y_index[i] == i)
        return
Exemplo n.º 6
0
def telemetry(sid, data):
    if data:
        # The current steering angle of the car
        steering_angle = data["steering_angle"]
        # The current throttle of the car
        throttle = data["throttle"]
        # The current speed of the car
        speed = data["speed"]
        # The current image from the center camera of the car
        imgString = data["image"]
        image = Image.open(BytesIO(base64.b64decode(imgString)))
        image_array = np.asarray(image)

        # added tony
        driver = model.MyDriver()
        image_array = driver.crop(image_array, driver.UP_CROP,
                                  driver.DOWN_CROP)
        image_array = driver.resize(image_array, driver.IMAGE_WIDTH,
                                    driver.IMAGE_HEIGHT)

        steering_angle = float(
            model.predict(image_array[None, :, :, :], batch_size=1))

        throttle = controller.update(float(speed))

        print(steering_angle, throttle)
        send_control(steering_angle, throttle)

        # save frame
        if args.image_folder != '':
            timestamp = datetime.utcnow().strftime('%Y_%m_%d_%H_%M_%S_%f')[:-3]
            image_filename = os.path.join(args.image_folder, timestamp)
            image.save('{}.jpg'.format(image_filename))
    else:
        # NOTE: DON'T EDIT THIS.
        sio.emit('manual', data={}, skip_sid=True)
Exemplo n.º 7
0
    def test_augment(self):
        d = model.MyDriver()
        (X_train, y_train) = d.load_train_samples("../data/driving_log.csv")

        assert (X_train[0] == "../data/IMG/center_2016_12_01_13_30_48_287.jpg")
        assert (X_train[1] == "../data/IMG/left_2016_12_01_13_30_48_287.jpg")
        assert (X_train[2] == "../data/IMG/right_2016_12_01_13_30_48_287.jpg")
        assert (os.path.isfile(X_train[0]))
        assert (os.path.isfile(X_train[1]))
        assert (os.path.isfile(X_train[2]))

        image = d.load_image(X_train[0])

        plt.figure(1)

        frow = 3
        fcol = 3
        index = 1
        plt.subplot(fcol, frow, index)
        index += 1
        steer = 0.0
        plt.imshow(image)
        plt.title("org")

        plt.subplot(fcol, frow, index)
        index += 1
        image = d.crop(image, 50, 20)
        plt.imshow(image)
        plt.title("crop")

        plt.subplot(fcol, frow, index)
        index += 1
        (image, steer) = d.augment_flip((image, steer), 1)
        plt.imshow(image)
        plt.title("flip")

        plt.subplot(fcol, frow, index)
        index += 1
        (image, steer) = d.augment_translate((image, steer), 1.0, 1.0)
        plt.imshow(image)
        plt.title("trans")

        #  plt.subplot(fcol,frow,index) ; index+=1
        #  (image, steer) = d.augment_rotate_and_scale( (image, steer), 1, 1.0)
        #  plt.imshow(image)
        #  plt.title("rotate_and_scale")

        plt.subplot(fcol, frow, index)
        index += 1
        image = d.resize(image, 100, 30)
        plt.imshow(image)
        plt.title("resize")

        plt.subplot(fcol, frow, index)
        index += 1
        (image, steer) = d.augment_bright((image, steer), 1.0)
        plt.imshow(image)
        plt.title("augment_bright")

        plt.subplot(fcol, frow, index)
        index += 1
        (image, steer) = d.augment_bright((image, steer), 0.0)
        plt.imshow(image)
        plt.title("augment_bright")

        plt.show()

        return