https://github.com/aryashah2k/smokeu-net-smoke-column-segmentation-from-satellite-imagery-using-deep-u-net-architecture
A U-Net deep learning model for automated smoke plume segmentation in satellite imagery. The model processes multi-spectral satellite data to generate precise smoke column masks, improving upon manual detection methods. Results demonstrate high accuracy in smoke plume detection with 99.04% validation accuracy and 0.91 Dice coefficient.
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 1 committers (100.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.5%) to scientific vocabulary
Repository
A U-Net deep learning model for automated smoke plume segmentation in satellite imagery. The model processes multi-spectral satellite data to generate precise smoke column masks, improving upon manual detection methods. Results demonstrate high accuracy in smoke plume detection with 99.04% validation accuracy and 0.91 Dice coefficient.
Basic Info
- Host: GitHub
- Owner: aryashah2k
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Size: 14 MB
Statistics
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
SmokeU-Net-Smoke-Column-Segmentation-from-Satellite-Imagery-using-Deep-U-Net-Architecture
This research proposes an automated deep learning approach for segmenting smoke columns in satellite imagery using U-Net architecture. Current manual and semi-automated methods for smoke plume detection are time-consuming and prone to human error. We aim to develop a robust segmentation model trained on multi-spectral satellite data that can accurately identify and segment smoke columns from wildfires. The proposed framework will leverage U-Net's encoder-decoder architecture to process multiple spectral bands and generate precise smoke column masks. Through this work, we expect to demonstrate significant improvements in smoke plume detection accuracy and processing efficiency compared to traditional threshold-based methods. This research will contribute to advancing automated wildfire monitoring capabilities and support early warning systems for disaster management.
The model processes multi-spectral satellite data to generate precise smoke column masks, improving upon manual detection methods. Results demonstrate high accuracy in smoke plume detection with 99.04% validation accuracy and 0.91 Dice coefficient.
Project Structure
Follow this structure for replication or simply run the Notebook in the Notebooks Folder
``` smoke_segmentation/
src/ init.py data/ init.py dataset.py dataloader.py models/ init.py unet.py layers.py utils/ init.py metrics.py visualization.py training/ init.py trainer.py config/ config.py train.py README.md ```
Installation
Clone the repository:
bash git clone https://github.com/aryashah2k/SmokeU-Net-Smoke-Column-Segmentation-from-Satellite-Imagery-using-Deep-U-Net-Architecture.git cd smoke-segmentationCreate a virtual environment:
bash python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # WindowsInstall dependencies:
bash pip install torch torchvision numpy matplotlib pillow opencv-python pandas
Usage
Training
Configure your dataset paths and training parameters in
config/config.pyRun training:
bash python train.py
Inference
```python import torch from src.models.unet import Unet from torchvision import transforms from PIL import Image
Load model
model = Unet(channelsin=3, channels=64, numclasses=2) model.loadstatedict(torch.load('path/to/model.pth')) model.eval()
Prepare image
transform = transforms.Compose([ transforms.Resize([128, 128]), transforms.ToTensor() ])
Load and process image
image = Image.open('path/to/image.jpg') input_tensor = transform(image).unsqueeze(0)
Inference
with torch.nograd(): output = model(inputtensor) prediction = torch.argmax(output, dim=1) ```
Dataset Format
The dataset should be organized as follows:
dataset/
train/
image1.jpg
image2.jpg
...
train_masks/
image1_mask.jpg
image2_mask.jpg
...
valid/
valid_masks/
test/
test_masks/
Model Architecture
The implementation uses a U-Net architecture with: - Input channels: 3 (RGB) - Initial features: 64 - Output classes: 2 (binary segmentation) - Optimization: SGD with OneCycleLR scheduler - Loss function: Cross-entropy
Training Parameters
Default training configuration: - Batch size: 32 - Learning rate: 0.01 - Momentum: 0.95 - Weight decay: 1e-4 - Epochs: 25 - Image size: 128x128
Performance Metrics
The model is evaluated using: - Accuracy - Dice coefficient - IoU (Intersection over Union) - Confusion matrix metrics (TP, TN, FP, FN)
Owner
- Name: Arya Shah
- Login: aryashah2k
- Kind: user
- Location: Mumbai, India
- Company: IIT Gandhinagar
- Website: https://www.linkedin.com/in/arya--shah/
- Twitter: aryashah2k
- Repositories: 96
- Profile: https://github.com/aryashah2k
Artificial Intelligence Engineer & Researcher
GitHub Events
Total
- Watch event: 8
- Push event: 4
- Fork event: 1
- Create event: 2
Last Year
- Watch event: 8
- Push event: 4
- Fork event: 1
- Create event: 2
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| aryashah2k | a****2@n****n | 6 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0