DeepSteer-Vis is an advanced autonomous driving agent trained using Behavioral Cloning. It leverages a modified NVIDIA PilotNet architecture with Hyper-Regularization to drive a car in the Udacity Simulator.
Crucially, this project features a Visual Explainability Layer (using Grad-CAM) that overlays a real-time heat map on the driving view, showing exactly what the model is looking at (e.g., lane lines, road boundaries).
- Behavioral Cloning: Maps raw pixels to steering angles using a deep CNN.
- Hyper-Regularization: Extensive use of Dropout layers to prevent overfitting on simple track textures.
- Visual Explainability: Real-time Grad-CAM overlay to visualize the model's focus.
- Robust Data Pipeline:
- 3-Camera Augmentation (Center, Left, Right).
- YUV Color Space Conversion.
- Dynamic Cropping & Resizing.
- Random Flips & Brightness Adjustments.
-
Clone the Repository:
git clone https://github.com/pronzzz/self-driving-car-simulation.git cd self-driving-car-simulation -
Install Dependencies:
pip install -r requirements.txt
-
Udacity Simulator: Download the Udacity Self-Driving Car Simulator.
If you want to train the model from scratch:
- Collect training data using the Simulator (Training Mode) and save it to
data/. - Run the training script:
This will generate
python model.py
model.h5.
To let the model drive the car:
- Start the drive server:
python drive.py model.h5
- Launch the Simulator and select Autonomous Mode.
- The car will start driving! Check the "DeepSteer-Vis" window for real-time Saliency Maps.
To generate a static Saliency Map for a specific image:
python visualize_activation.py model.h5 path/to/image.jpgThe model is based on NVIDIA's PilotNet, modified with Hyper-Regularization (Dropout) after every layer.
- Input: 66x200x3 (YUV)
- Conv Layers: 5 (3 Strided, 2 Non-Strided)
- Dense Layers: 100 -> 50 -> 10 -> 1
- Regularization: Dropout (0.5) after each layer.
For more details, check the Developer Guide.
This project is licensed under the MIT License - see the LICENSE file for details.
