See Through the Fog. FogVision AI is an end-to-end web application that uses a state-of-the-art deep learning model to detect vehicles and people in challenging, low-visibility conditions.
Foggy weather presents a significant challenge for autonomous driving and surveillance systems, as it severely degrades the performance of standard object detection algorithms. FogVision AI was developed to address this critical safety issue.
This project is a fully functional, end-to-end application demonstrating a comprehensive skill set in frontend development, backend architecture, and the implementation of advanced deep learning models. The core of the application is a custom-trained, lightweight YOLOv10 model specifically optimized for robust performance in foggy environments. It leverages advanced preprocessing techniques to cut through the haze and identify objects that would otherwise be obscured.
- 🔐 Secure User Authentication: Features a complete user registration and login system to manage access.
- 🌫️ AI-Powered Fog Detection: Upload an image of a foggy scene, and the custom-trained YOLOv10 model accurately identifies objects like cars, buses, motorbikes, bicycles, and people.
- 🖼️ Advanced Image Preprocessing: Utilizes novel techniques including Dehaze Formers and dark channel methods to computationally remove haze and improve image quality before detection.
- 🚀 Optimized Lightweight Architecture: The YOLOv10 model is enhanced with a lightweight module, ensuring a balance between high detection performance and computational efficiency.
- ✨ Enhanced Attention Module: Incorporates an advanced attention mechanism to help the model focus on relevant object features, even when they are small or partially obscured by fog.
- 🖥️ Interactive Web Interface: A clean and responsive user interface for easy image uploads and clear visualization of detection results.
This project integrates a variety of modern technologies to deliver a robust and effective solution.
Category | Technology / Library |
---|---|
Backend | Python , Flask |
AI / ML | YOLOv10 (Ultralytics) , PyTorch , OpenCV |
Frontend | HTML5 , CSS3 |
Data/Session | Flask Session (for user management) |
- Python 3.10 or higher
pip
- Git version control
-
Clone the Repository
git clone [https://github.com/your-username/FogVisionAI-Foggy-Object-Detection.git](https://github.com/your-username/FogVisionAI-Foggy-Object-Detection.git) cd FogVisionAI-Foggy-Object-Detection
-
Create a Virtual Environment
# For Windows python -m venv venv venv\Scripts\activate # For macOS/Linux python3 -m venv venv source venv/bin/activate
-
Install Dependencies
pip install -r requirements.txt
-
Set Up Flask Secret Key The application uses a secret key for session management. You can change the default key in
app.py
:app.secret_key = 'your_super_secret_key' # Change this line
-
Run the Flask Application Once the dependencies are installed, you can start the Flask server.
python app.py
The application will be running at
http://127.0.0.1:5000
. Open this URL in your web browser.
- Homepage: The homepage provides links to Register or Login.
- Register: Create a new account with a unique username and password.
- Login: Sign in with your registered credentials.
- Upload: After logging in, you'll be directed to the upload page.
- Click "Choose File" and select an image containing a foggy scene.
- Click "Upload and Detect".
- Results: The application will process the image and display the result with bounding boxes drawn around detected objects.
- Upload Another: Click the "Upload Another Image" button to return to the upload page.