Spaces:
Sleeping
Sleeping
File size: 2,511 Bytes
47cf5fe 7a5bb5d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | ---
title: Oil Spill Detection
emoji: 🌊
colorFrom: blue
colorTo: indigo
sdk: docker
pinned: false
---
# Oil Spill Detection & Monitoring System
This is a full-stack AI-driven application that detects oil spills from satellite imagery using a deep learning segmentation model (U-Net).
## System Architecture
* **AI/ML**: TensorFlow / Keras (U-Net)
* **Backend**: FastAPI (REST API with Python)
* **Frontend**: React + Vite + TypeScript (Modern UI)
* **Containerization**: Docker & Docker Compose
## Repository Directory Structure
* `backend/` - FastAPI predict/health endpoints and Inference Engine
* `frontend/` - React Vite App for the UI
* `model/` - U-Net architecture, Custom losses, and Training logic
* `utils/` - Data loading and augmentation pipelines utilizing `tf.data.Dataset`
* `data/` - Holds your images and masks
* `notebooks/` - Place to run exploratory code
## Getting Data (Google Drive)
Download the dataset using the following Google Drive link provided:
`https://drive.google.com/drive/folders/1j35RM-5uZbTOfDv0mBTeRRmOUPvvg28t?usp=sharing`
1. Download the images and masks folders inside it.
2. Place them inside the `./data/` folder in the root directory like so:
```
d:/Oill_SPLIT/data/images/
d:/Oill_SPLIT/data/masks/
```
## Local Setup (Without Docker)
### Backend
1. `cd backend`
2. `pip install -r requirements.txt`
3. `uvicorn main:app --reload`
The API will be available at `http://localhost:8000`
### Frontend
1. `cd frontend`
2. `npm install`
3. `npm run dev`
The React UI will be available at `http://localhost:5173`
## Setup (With Docker)
To run the entire suite using Docker:
```bash
docker-compose up --build
```
## Model Training Instructions (Google Colab / Kaggle)
You can train the model on Google Colab leveraging the free T4 GPU.
1. Zip the `model/`, `utils/`, and `data/` directories and upload them to Google Drive or directly to Colab/Kaggle.
2. Open a Colab Notebook.
3. Install dependencies: `!pip install tensorflow scikit-learn pillow numpy`
4. Run the training script:
```bash
!python model/train.py --data_dir ./data --save_dir ./model/saved_models --epochs 50 --batch_size 16
```
5. Once trained, download `oil_spill_unet_best.keras` from `./model/saved_models` and place it in your local folder structure.
*(Note: During initial development, if `oil_spill_unet_best.keras` isn't found, the backend will auto-initialize an untrained "stub" model so you can immediately test the UI and API offline).*
|