Vision beneath the surface - AI-driven image enhancement to improve visibility and detect underwater threats
- Overview
- Features
- Architecture
- Technology Stack
- Installation
- Usage
- API Documentation
- Project Structure
- Contributing
- License
DeepVision is a comprehensive AI-powered system designed for underwater image enhancement and threat detection. The platform combines advanced computer vision techniques with modern web technologies to provide real-time image processing, enhancement, and automated threat identification for underwater environments.
- π Underwater Image Enhancement: AI-powered dehazing and visibility improvement using UNet architecture
- π― Object Detection: YOLO-based detection of underwater threats and objects
- π§ Real-time Alerts: Automated email notifications for detected threats
- βοΈ Cloud Storage: Integrated Cloudinary storage for processed images
- π Analytics Dashboard: Historical data visualization and system monitoring
- π§ Operator Profiles: Configurable alert settings and contact management
- Underwater Image Dehazing: Advanced UNet-based model for improving underwater image clarity
- Object Detection: YOLO v8/v11 models trained for underwater object detection
- Real-time Processing: Fast inference with GPU acceleration support
- Batch Processing: Support for video and image batch processing
- Responsive Design: Mobile-first design with Tailwind CSS
- Real-time Updates: Live processing status and results
- Interactive Dashboard: Comprehensive analytics and historical data
- File Upload: Drag-and-drop image and video upload support
- Automated Notifications: Email alerts for detected threats
- Configurable Settings: Operator profile management
- Threat Classification: Detailed threat detection reporting
- System Logs: Comprehensive logging and monitoring
- Microservices: Modular design with separate services
- Docker Support: Containerized deployment options
- Cloud Integration: Cloudinary for image storage
- Database Integration: MongoDB for data persistence
graph TB
subgraph "Frontend"
A[React Client]
B[Tailwind CSS]
C[Vite Build System]
end
subgraph "Backend Services"
D[Node.js Express Server]
E[FastAPI Object Detection]
F[Flask Image Enhancement]
end
subgraph "AI Models"
G[YOLO Object Detection]
H[UNet Image Dehazing]
end
subgraph "External Services"
I[Cloudinary Storage]
J[MongoDB Database]
K[Email Service]
end
A --> D
D --> E
D --> F
E --> G
F --> H
D --> I
D --> J
D --> K
- React 19.1+ - Modern UI library
- Vite - Fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- React Router - Client-side routing
- Axios - HTTP client for API calls
- Node.js - JavaScript runtime
- Express.js - Web framework
- FastAPI - Python web framework for object detection
- Flask - Python web framework for image enhancement
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- PyTorch 2.0+ - Deep learning framework
- Ultralytics YOLO - Object detection models
- OpenCV - Computer vision library
- NumPy - Numerical computing
- PIL/Pillow - Image processing
- Docker - Containerization
- Cloudinary - Cloud image/video management
- Nodemailer - Email service
- Multer - File upload handling
- Node.js 18.0 or higher
- Python 3.10 or higher
- MongoDB (local or cloud instance)
- Git
git clone https://github.com/AyushRaj-10/DeepVision.git
cd DeepVisionCreate environment files for each service:
# Server/.env
MONGODB_URI=mongodb://localhost:27017/deepvision
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_app_password
# object_detection/.env
HF_TOKEN=your_huggingface_token
HF_USERNAME=your_hf_username
# under-water_imaging-main/.env
FLASK_ENV=productioncd Server
npm install
npm startcd object_detection
pip install -r requirements.txt
uvicorn app:app --host 0.0.0.0 --port 7860cd under-water_imaging-main
pip install -r requirements.txt
python app.pycd Client
npm install
npm run dev# Build and run object detection service
cd object_detection
docker build -t deepvision-detection .
docker run -p 7860:7860 deepvision-detection
# Build and run image enhancement service
cd under-water_imaging-main
docker build -t deepvision-enhancement .
docker run -p 5000:5000 deepvision-enhancement- Start the application by running all services
- Navigate to
http://localhost:5173(React dev server) - Upload an image using the upload button
- Click "Enhance Image" to process
- View results including enhanced image and threat detection
- Configure alerts in the Profile section
curl -X POST http://localhost:3001/api/upload \
-F "file=@your_image.jpg" \
-H "Content-Type: multipart/form-data"curl -X POST http://localhost:7860/detect \
-F "file=@your_image.jpg"curl -X POST http://localhost:5000/enhance \
-F "file=@your_image.jpg"cd object_detection
python train.py --data data.yaml --epochs 100 --batch-size 16cd under-water_imaging-main
python train.py --epochs 20 --batch-size 16 --lr 0.0001Base URL: http://localhost:7860
| Endpoint | Method | Description |
|---|---|---|
/detect |
POST | Detect objects in uploaded image |
/detect-video |
POST | Process video for object detection |
/status/{job_id} |
GET | Check processing status |
Base URL: http://localhost:5000
| Endpoint | Method | Description |
|---|---|---|
/enhance |
POST | Enhance underwater image |
/batch-enhance |
POST | Process multiple images |
Base URL: http://localhost:3001
| Endpoint | Method | Description |
|---|---|---|
/api/upload |
POST | Upload and process images |
/api/profile |
GET/POST | Manage operator profiles |
/api/logs |
GET | Retrieve system logs |
DeepVision/
βββ Client/ # React frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ context/ # React context providers
β β βββ main.jsx # Application entry point
β βββ public/ # Static assets
β βββ package.json
βββ Server/ # Node.js backend
β βββ controllers/ # Request handlers
β βββ models/ # Database models
β βββ routes/ # API routes
β βββ utils/ # Utility functions
β βββ server.js # Server entry point
βββ object_detection/ # YOLO object detection service
β βββ app.py # FastAPI application
β βββ model.py # YOLO model wrapper
β βββ train.py # Training script
β βββ checkpoints/ # Model weights
β βββ dataset/ # Training data
β βββ requirements.txt
βββ under-water_imaging-main/ # Image enhancement service
β βββ app.py # Flask application
β βββ model.py # UNet model definition
β βββ train.py # Training script
β βββ checkpoints/ # Model weights
β βββ requirements.txt
βββ README.md
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
- Ensure all services start without errors
# Frontend tests
cd Client
npm test
# Backend tests
cd Server
npm test
# Python tests
cd object_detection
python -m pytest
cd under-water_imaging-main
python -m pytestThis project is licensed under the MIT License - see the LICENSE file for details.
- Ultralytics for the YOLO implementation
- PyTorch team for the deep learning framework
- React and Vite teams for the frontend tools
- FastAPI and Flask teams for the Python web frameworks
For support and questions:
- π§ Email: support@deepvision.ai
- π¬ Discord: DeepVision Community
- π Documentation: Wiki
- π Issues: GitHub Issues
Made with β€οΈ for underwater exploration and safety
