This project addresses the FloodNet Challenge, focusing on flood detection and analysis using semi-supervised learning approaches. The project combines image classification for flood detection with Visual Question Answering (VQA) capabilities to extract detailed information from flood imagery.
The project utilizes the FloodNet dataset, which contains:
- Labeled flood images: Images with flood presence
- Labeled non-flood images: Images without flood presence
- Unlabeled images: Additional images without labels for semi-supervised learning
- Validation and test sets: For model evaluation
The dataset is organized into the following structure:
FloodNet_Challenge_Track1/
├── Train/
│ ├── Labeled/
│ │ ├── Flooded/
│ │ └── Non-Flooded/
│ └── Unlabeled/
├── Validation/
└── Test/
The preprocessing pipeline includes:
- Image cropping from 4000px to 3000px width
- Image resizing to 512x512 pixels
- Dataset organization into training, validation, and test sets
- Creation of metadata with dataset statistics
- Generation of sample images for verification
Implements a dual-model approach for flood analysis:
- DeepLabV3+ model for semantic segmentation of flood regions
- EfficientNet for binary flood classification
- Semi-supervised learning leveraging unlabeled data
- Performance evaluation metrics and visualization
Custom VQA architecture for flood image analysis:
- ResNet18 backbone for image feature extraction
- LSTM network for question encoding
- Multi-modal fusion of image and text features
- Capability to answer questions about flood extent, damage assessment, etc.
Comprehensive output analysis:
- Python 3.10+
- Required packages: TensorFlow, PIL, NumPy, OpenCV, tqdm
# Clone the repository
git clone https://github.com/TharaneshA/floodnet-semisupervised-vqa.git
cd floodnet-semisupervised-vqa
# Install dependencies
pip install -r requirements.txt- Download the FloodNet Challenge dataset
- Update the
DATA_ROOTvariable inprep.ipynbto point to your dataset location - Run the preprocessing notebook to prepare the data
- Run the
classification.ipynbnotebook to train the flood detection model - The model will be trained using both labeled and unlabeled data in a semi-supervised approach
- Implement advanced semi-supervised learning techniques
- Enhance VQA capabilities with more complex question types
- Explore multi-task learning approaches
- Deploy model for real-time flood monitoring
- FloodNet Challenge - EARTHVISION 2021
- Semi-Supervised Learning for Computer Vision
- Visual Question Answering: A Survey of Methods and Datasets
This project is licensed under the MIT License - see the LICENSE file for details.


