ADAS (Advanced Driver Assistance System) is a comprehensive project designed to enhance driving safety and automation. It integrates real-time object detection, stereo camera calibration, lane detection, and CARLA simulation for testing autonomous driving scenarios. The project leverages state-of-the-art deep learning models and computer vision techniques.
- Object Detection: YOLOv8-based object detection for KITTI dataset.
- Stereo Camera Calibration: Accurate calibration using chessboard patterns.
- Lane Detection: Ultrafast lane detection for real-time applications.
- CARLA Simulation: Integration with CARLA for testing autonomous driving in simulated environments.
- GUI: Intuitive PyQt6-based graphical user interface for configuration and visualization.
You can find more detailed documentation at Read the Docs.
├── .gitignore # Git ignore file
├── download_models.sh # Script to download model weights
├── main.py # Entry point for the ADAS system
├── README.md # Project documentation
├── requirements.txt # Python dependencies
├── setup.sh # Project setup script
├── carla_module/ # CARLA client integration
├── config/ # Configuration files
├── data/ # Sample data and outputs
├── gui/ # PyQt6-based GUI components
├── models/ # Directory for model files
├── notebooks/ # Jupyter notebooks for experiments
├── src/ # Core source code
├── weights/ # Pre-trained model weights
- Python 3.10+
- CARLA Simulator
- CUDA-enabled GPU (optional for inference)
-
Clone the repository:
git clone https://github.com/yourusername/ADAS.git cd ADAS -
Install dependencies:
pip install -r requirements.txt
-
Download model weights:
chmod +x download_models.sh bash download_models.sh
-
Set up the environment:
chmod +x setup.sh bash setup.sh
To start the ADAS system, run:
python main.pyThe GUI allows you to configure the system for:
- CARLA Simulation: Configure CARLA host, port, and camera settings (
gui/carla_config.py). - Real Driving Mode: Configure stereo camera sources and calibration parameters (
gui/real_config.py).
Use src/calibration.py to calibrate stereo cameras:
python src/calibration.py --left data/left_video.mp4 --right data/right_video.mp4Explore object detection using YOLOv8 in notebooks/kitti-training.ipynb.
- CARLA Configuration:
config/carla_config.yaml - Real Driving Configuration:
config/real_config.yaml - Stereo Calibration:
config/calibration.yaml
Download pre-trained weights using download_models.sh. Models include:
- YOLOv8 for object detection
- CREStereo for disparity estimation
- Ultrafast Lane Detection
This project is licensed under the MIT License. See the LICENSE file for details.
For inquiries, please contact:
- EL KHAMKHOUMI NAWFEL : Nawfel.elkhamkhoumi2004@gmail.com
- BOUDRIKA ILIAS : mr.brk.ilias@gmail.com