All Projects → cpgeier → Santosnet

cpgeier / Santosnet

A simple self driving car in GTAV that uses the Xception deep neural network model with DeepGTAV

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Santosnet

GTAV-Self-driving-car
Self driving car in GTAV with Deep Learning
Stars: ✭ 15 (-77.61%)
Mutual labels:  self-driving-car, keras-tensorflow
Self Driving Car
A End to End CNN Model which predicts the steering wheel angle based on the video/image
Stars: ✭ 106 (+58.21%)
Mutual labels:  self-driving-car, keras-tensorflow
Rc car ros
ROS package to control an autonomous RC vehicle based on Raspberry Pi3
Stars: ✭ 30 (-55.22%)
Mutual labels:  self-driving-car
Audio Pretrained Model
A collection of Audio and Speech pre-trained models.
Stars: ✭ 61 (-8.96%)
Mutual labels:  keras-tensorflow
Text Classification Keras
📚 Text classification library with Keras
Stars: ✭ 53 (-20.9%)
Mutual labels:  keras-tensorflow
Nhdrrnet
Keras Implementation of the paper Deep HDR Imaging via A Non-Local Network - TIP 2020
Stars: ✭ 37 (-44.78%)
Mutual labels:  keras-tensorflow
Vehicle Detection
Vehicle detection using machine learning and computer vision techniques for Udacity's Self-Driving Car Engineer Nanodegree.
Stars: ✭ 1,093 (+1531.34%)
Mutual labels:  self-driving-car
Extended Kalman Filter
Udacity Self-Driving Car Engineer Nanodegree. Project: Extended Kalman Filters
Stars: ✭ 27 (-59.7%)
Mutual labels:  self-driving-car
Gtsrb
Convolutional Neural Network for German Traffic Sign Recognition Benchmark
Stars: ✭ 65 (-2.99%)
Mutual labels:  self-driving-car
Uselfdrivingsimulator
Self-Driving Car Simulator
Stars: ✭ 48 (-28.36%)
Mutual labels:  self-driving-car
Vehicle Detection And Tracking
Udacity Self-Driving Car Engineer Nanodegree. Project: Vehicle Detection and Tracking
Stars: ✭ 60 (-10.45%)
Mutual labels:  self-driving-car
Interp Net
Interpolation-Prediction Networks for Irregularly Sampled Time Series
Stars: ✭ 43 (-35.82%)
Mutual labels:  keras-tensorflow
Unsuprevised seg via cnn
Stars: ✭ 38 (-43.28%)
Mutual labels:  keras-tensorflow
C3ae
C3AE implement
Stars: ✭ 58 (-13.43%)
Mutual labels:  keras-tensorflow
Densedepth
High Quality Monocular Depth Estimation via Transfer Learning
Stars: ✭ 963 (+1337.31%)
Mutual labels:  keras-tensorflow
Pneumonia Detection From Chest X Ray Images With Deep Learning
Detecting Pneumonia in Chest X-ray Images using Convolutional Neural Network and Pretrained Models
Stars: ✭ 64 (-4.48%)
Mutual labels:  keras-tensorflow
Duckietown.jl
Differentiable Duckietown
Stars: ✭ 29 (-56.72%)
Mutual labels:  self-driving-car
Keras one cycle clr
Keras callbacks for one-cycle training, cyclic learning rate (CLR) training, and learning rate range test.
Stars: ✭ 41 (-38.81%)
Mutual labels:  keras-tensorflow
Ds and ml projects
Data Science & Machine Learning projects and tutorials in python from beginner to advanced level.
Stars: ✭ 56 (-16.42%)
Mutual labels:  keras-tensorflow
Sru Deeplearning Workshop
دوره 12 ساعته یادگیری عمیق با چارچوب Keras
Stars: ✭ 66 (-1.49%)
Mutual labels:  keras-tensorflow

SantosNet

Simple tools that I used to generate and run a self-driving car model with VPilot and DeepGTAV.

Requirements

  1. DeepGTAV must be installed and VPilot must be in the same folder.

  2. Keras, Tensorflow, Numpy, h5py

  3. A GPU with 6 or more gigabytes of VRAM. A 980ti is barely able to simultaneously run the model and the game.

Files

  • dataset.py - Uses in-game AI to drive car. Captures screen and saves driving variables in a pickle file
  • drive_categorical.py - Excecutes a trained model on captured frames
  • load_and_train.py - Continues training a model on a dataset
  • model_xception.py - Main training program. Generates a .h5 model file that can be loaded for predictions
  • pickling.py - A simple program that displays frames from a pickled file
  • preprocessing.py - Loads batches of frames from a pickled file to be used in training
  • sample.gif - Demonstration of the ability of a model generated using these programs

Download a sample model here

Model

The Xception V1 model is used to classify different images to different positions of the steering wheel. The steering position is collected as a float between -1 and 1, so I converted it to a positive integer between 0 and 999. This was then simply converted to a one-hot vector for input into the model. This preserves the overall structure of the Xception V1 model because the Imagenet dataset that it was designed for included 1000 classes of images. I tried to use the Xception model for regression, but did not have as good of results. During driving, the model is sent the images and returns a vector which is converted into a value between -1 and 1 to be sent to DeepGTAV for input into the game. To clarify, the model only controls the steering of the car while I control the throttle on the keyboard.

Training

The dataset I generated was around 66 gigabytes after running for 10 hours, so I would advise having plenty of space on a hard drive to store data. Also, I training the model on an AWS p2xlarge instance for around 12 hours, during that time I was only able to go through 1 epoch of the data. However, the model still yeilded great results in running and is able to avoid obstacles and stay between road lines most of the time.

Improvements

If you would like to contribute I have some ideas on how this model could be improved:

  • Dataset balancing - Most of the steering values will be around 0, with few around -1 and 1, so balancing the dataset would probably improve performance
  • Fine tune with ImageNet initilization - I initialized with random weights, but its probably best to fine tune the model with pre-trained weights
  • Better preprocessing
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].