An end-to-end autonomous driving simulation system built using computer vision and deep learning.
This project combines multiple AI models to process real-time camera input and make driving decisions including steering prediction, lane detection, and object detection.
Understanding autonomous driving requires combining multiple complex systems โ perception, decision-making, and real-time processing.
This project was built to simulate how self-driving systems integrate multiple models to interpret road conditions and make driving decisions in real time.
-
A multi-model AI pipeline integrating:
- Steering angle prediction (CNN)
- Lane detection (YOLO segmentation)
- Object detection (YOLO)
-
Real-time inference system processing live frames
-
Multi-threaded execution for performance optimization
-
Visualization pipeline to overlay predictions on video feed
- Processes real-time frames for autonomous driving simulation
- Integrates 3 different AI models into one pipeline
- Designed for near real-time performance (~30 FPS)
- Built complete training + inference workflow
AUTODRIVE is an advanced self-driving car simulation platform that combines multiple AI models to achieve autonomous driving capabilities. The system processes real-time camera feeds to predict steering angles, detect lanes, and identify objects on the road.
The AutoDrive system integrates multiple AI models into a real-time autonomous driving pipeline:
Camera Input โ Preprocessing โ โ Lane Detection Model (YOLO Segmentation) โ Object Detection Model (YOLO Detection) โ Steering Angle Prediction Model (CNN) โ Multi-threaded Inference Engine โ Visualization & Driving Output
The system runs all models concurrently using multi-threading to achieve near real-time performance.
- Real-time Steering Prediction: Custom CNN model for accurate steering angle prediction
- Lane Detection: YOLO-based lane segmentation for road boundary detection
- Object Detection: Advanced object detection for vehicles, pedestrians, and obstacles
- Multi-threaded Processing: Concurrent execution of multiple AI models
- Real-time Visualization: Live display of original, segmented, and steering feedback
- Confidence-based Filtering: Configurable confidence thresholds for reliable predictions
- Python 3.8+ - Core programming language
- TensorFlow 1.x - Deep learning framework
- OpenCV - Computer vision and image processing
- YOLO (Ultralytics) - Object detection and segmentation
- CNN - Custom convolutional neural network
- NumPy & Pandas - Data manipulation
- Matplotlib - Data visualization
- Multi-threading - Concurrent processing
- Dataset Size: 45,000+ driving images
- Model Accuracy: 87% confidence threshold
- Real-time Processing: 30 FPS inference
- Multi-model Integration: 3 AI models working concurrently
- Python 3.8 or higher
- CUDA-compatible GPU (recommended)
- 8GB+ RAM
-
Clone the repository
git clone https://github.com/sinhaaarushi/AUTODRIVE.git cd AUTODRIVE -
Install dependencies
pip install -r requirements.txt
-
Setup project structure
python setup.py install
-
Download pre-trained models
# Create model directories mkdir -p saved_models/regression_model mkdir -p saved_models/lane_segmentation_model mkdir -p saved_models/object_detection_model # Download models (you'll need to provide the actual model files) # Place them in the respective directories
python src/inference/run_fsd_inference.pypython src/inference/run_segmentation_obj_det.pypython src/inference/run_steering_angle_prediction.py# Train steering angle prediction model
cd model_training/train_steering_angle
python train.py
# View training progress with TensorBoard
tensorboard --logdir=logsAUTODRIVE/
โโโ src/
โ โโโ models/
โ โ โโโ model.py # Custom CNN architecture
โ โโโ inference/
โ โโโ run_fsd_inference.py # Main simulation runner
โ โโโ run_segmentation_obj_det.py
โ โโโ run_steering_angle_prediction.py
โโโ model_training/
โ โโโ train_steering_angle/ # Steering model training
โ โโโ train_lane_detection/ # Lane detection training
โโโ data/
โ โโโ driving_dataset/ # 45,000+ training images
โโโ saved_models/ # Pre-trained model weights
โโโ utils/ # Utility functions
โโโ tests/ # Unit tests
- Architecture: Custom CNN with 5 convolutional layers
- Input: 66x200x3 RGB images
- Output: Steering angle in degrees
- Features: Dropout regularization, L2 normalization
- Model: YOLO11 for lane segmentation
- Input: Full resolution camera images
- Output: Lane boundary masks
- Features: Real-time lane detection with confidence filtering
- Model: YOLO11s for object detection
- Input: Full resolution camera images
- Output: Bounding boxes and class predictions
- Features: Multi-class detection (vehicles, pedestrians, etc.)
Some key challenges addressed in this project:
- Running multiple deep learning models concurrently
- Optimizing inference pipeline for near real-time performance
- Synchronizing outputs from lane detection, object detection, and steering prediction
- Managing model loading and GPU memory usage
- Designing modular architecture for training and inference
# Confidence thresholds
LANE_CONFIDENCE = 0.5
OBJECT_CONFIDENCE = 0.5
# Image processing
IMAGE_WIDTH = 200
IMAGE_HEIGHT = 66
# Training parameters
BATCH_SIZE = 100
LEARNING_RATE = 1e-4
EPOCHS = 30- Data Preparation: 45,000+ images with corresponding steering angles
- Model Training: Custom training pipeline with TensorBoard logging
- Validation: Real-time validation on test dataset
- Model Saving: Checkpoint system for model persistence
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Aarushi Sinha
- GitHub: @sinhaaarushi
- LinkedIn: Your LinkedIn Profile
- NVIDIA for CUDA support
- Ultralytics for YOLO implementation
- TensorFlow team for the deep learning framework
- OpenCV community for computer vision tools
- Email: sinhaaarushi0702@gmail.com
- Project Link: https://github.com/sinhaaarushi/AUTODRIVE




