v = VAEController() v.load("logs/vae-256.pkl") #model = keras.models.load_model(path) model = SAC.load(path) camera = CSICamera(width=112, height=112) camera.running = True print("Imported Camera! Ready to Start!") while True: print("Starting to read image") image = camera.value.copy() print("Image Read!") #image = cv2.resize(image, (224//2, 224//2)) print(type(image)) tmp = v.encode_from_raw_image(image) print("Got image") input_array[0,:] = tmp print("Predicing from Model") action, _ = model.predict(input_array, deterministic = True) t = (action[1] + 1) / 2 # Convert from [0, 1] to [min, max] action[1] = (1 - t) * 0.45 + 0.6 * t print(action) steer = float(action[0]) throttle = float(action[1]) print("Frame: {}\t Steer: {}\t Throttle:{}".format(i, steer, throttle)) i+=1 car.throttle = throttle car.steering = steer
parser.add_argument('--n-samples', help='Max number of samples', type=int, default=20) parser.add_argument('--seed', help='Random generator seed', type=int, default=0) args = parser.parse_args() set_global_seeds(args.seed) if not args.folder.endswith('/'): args.folder += '/' vae = VAEController() vae.load(args.vae_path) images = [im for im in os.listdir(args.folder) if im.endswith('.png')] images = np.array(images) n_samples = len(images) for i in range(args.n_samples): # Load test image image_idx = np.random.randint(n_samples) image_path = args.folder + images[image_idx] image = cv2.imread(image_path) image = cv2.resize(image, (112, 112)) encoded = vae.encode_from_raw_image(image) reconstructed_image = vae.decode(encoded)[0] # Plot reconstruction cv2.imshow("Original", image) cv2.imshow("Reconstruction", reconstructed_image) cv2.waitKey(0)