This project presents the development of an autonomous driving model using deep learning techniques, specifically Convolutional Neural Networks (CNNs), trained on driving behavior data collected from the Udacity Self-Driving Car Simulator. The objective is to predict steering angles from camera images in real time, enabling the vehicle to drive autonomously within the simulated environment.
The approach emphasizes:
- End-to-end deep learning for behavioral cloning.
- Data augmentation to increase robustness.
- Efficient training pipeline to minimize overfitting.
- Real-time simulation testing using the Udacity simulator.
The project follows the Udacity-style dataset with driving_log.csv and three camera streams:
- Center / Left / Right camera frames are loaded and paired with steering values.
- Path Normalization:
path_leaf()ensures consistent filename handling across systems. - Steering Map: every image is mapped to its steering measurement so the model learns direct image → action mappings.
Driving data is heavily biased toward “straight” frames. We fix that with a statistically sound approach:
- Visualize steering distribution into 25 bins.
- Cap each bin at 400 samples to avoid learning a “always-straight” policy.
- Shuffle and resample to keep training diverse.
Impact: Balanced training data improves turn detection, reduces bias, and produces safer steering behavior.
On-the-fly augmentation increases dataset variety without extra storage:
-
Horizontal Flip — mirror images and invert steering (angle →
-angle). -
Brightness Variation — HSV-based random brightness simulates day/night/shadows.
-
Camera Offset Correction — left/right frames use steering offsets to teach recovery behavior.
-
Random Shifts (x/y) — simulates lateral drift and camera jitter.
-
Crop & Normalize — remove sky/hood and normalize pixels to
[-1, 1]for stable training.
Why this is strong: augmentation simulates realistic edge cases (glare, shadow, slight off-center) so the DNN generalizes to new roads.
A compact, production-minded Deep Neural Network tuned for steering regression:
- Preprocessing: Cropping + normalization layers inside the model for portability.
- Convolutional Backbone: 5 Conv layers with ReLU to capture low→high level visual features (lanes, curbs, shadows).
- Fully Connected Head: Dense layers with dropout for robust decision-making.
- Output: Single linear neuron predicting the continuous steering angle.
Design goal: real-time-capable, small enough for deployment, powerful enough for complex road geometry.
Training follows best-practice defaults and production controls:
| Component | Setting |
|---|---|
| Optimizer | Adam |
| Loss | Mean Squared Error (MSE) |
| Batch size | 64 |
| Epochs | 5–10 (adjust per validation curve) |
| Callbacks | EarlyStopping, ModelCheckpoint |
Generator-based training: Augmentation is applied inside a generator for memory-efficiency and infinite variety.
- Loss vs Epochs charts to monitor convergence and detect overfitting.
- Qualitative tests: Overlay predicted steering on sample frames for visual sanity-checks.
- Quantitative checks: MSE on validation set and sample-driven error analysis.
The trained model:
- Predicts steering angle from a single camera frame.
- Handles lighting variation, lane curvature, and small lateral drifts.
- Produces smooth, stable steering suitable for simulator deployment.
├── Self_Driving_Car.ipynb # Jupyter Notebook for training
├── model.h5 # Trained Keras model
├── driving_log.csv # Driving behavior log
├── IMG/ # Folder with camera images
├── utils/ # (Optional) For helper functions
└── README.md # Project documentation- Python 3.7+
- TensorFlow / Keras
- OpenCV
- NumPy, Matplotlib, Pandas
- Udacity Self-Driving Car Simulator
pip install -r requirements.txt- Launch the Udacity simulator.
- Use the trained model (
model.h5) with your inference script. - Drive autonomously using predicted steering angles.
Hi, I’m Rohith Boppana — a passionate and driven final-year B.Tech student in Computer Science and Engineering with a specialization in Artificial Intelligence & Machine Learning.
I'm deeply interested in building real-world tech solutions that combine data, intelligence, and intuitive design. My academic journey and hands-on projects reflect a strong foundation in both theory and practical application.
- 🤖 Artificial Intelligence & Machine Learning
- 🔍 Data Science & Analytics
- 📊 BI Dashboards & Predictive Modeling
- 💡 Problem-Solving with Scalable Technologies
I enjoy translating business needs and data insights into impactful software solutions that solve real problems and enhance user experiences.
📫 LinkedIn
Let’s connect and grow professionally:
linkedin.com/in/rohith-boppana-39ab57279
🌐 Portfolio
Explore my latest work, skills, and projects here:
rohith-boppana.vercel.app
💡 “Final-year student, forever learner — building the future, one project at a time.”
Feel free to explore my repositories and reach out for collaborations, internships, or to discuss innovative ideas!


