Introduction

Project Overview

This ADAS project is designed to enhance driving safety and experience by providing real-time information and alerts to the driver. It integrates various perception modules, including object detection, lane detection, and depth estimation, to understand the driving environment. The system can operate in both a real-world setup using physical cameras and in a simulated environment using the CARLA simulator. Additionally, it features an NLP-based chatbot to answer queries about Moroccan traffic laws.

Key Features

  • Modular Perception: Independent modules for object detection, lane detection.

  • Stereo Vision: Capability for depth estimation using stereo camera input (currently, the disparity estimation part is commented out in src/process_fame but the structure is present).

  • Object Tracking: Tracks detected objects across frames.

  • Dual Mode Operation: * Real Driving Mode: Processes input from physical cameras. * CARLA Simulation Mode: Integrates with the CARLA simulator for development and testing.

  • Graphical User Interface (GUI): PyQt6-based interface for mode selection, configuration, and real-time visualization.

  • NLP Chatbot: Provides answers to questions about Moroccan traffic regulations.

  • Alert System: Visual alerts for critical events (e.g., potential collisions, lane departures).

  • Configurable: System parameters and model paths can be configured via YAML files.

System Architecture (High-Level)

The system is broadly divided into a backend processing engine and a frontend GUI.

  • Backend (main.py, src/): Handles video input, frame processing, perception tasks, CARLA communication, and ADAS logic. See main.

  • Frontend (gui/): Provides user interaction, configuration, and visualization. See gui/main_window.

  • NLP Module (NLP/): Manages the traffic code chatbot. See NLP/adas_chatbot.

  • Configuration (config/): Stores settings for different modules and modes.

High-Level System Architecture Diagram

High-Level System Architecture (Placeholder - replace with your actual diagram)