Este projeto implementa um sistema de Machine Learning para detectar automaticamente se um local está alagado a partir de imagens usando apenas dados reais.
Detectar alagamentos é crucial para:
- Monitoramento urbano em tempo real
- Sistemas de alerta precoce
- Análise de riscos ambientais
- Gestão de emergências
O projeto utiliza Deep Learning com redes neurais convolucionais (CNN) para classificar imagens em duas categorias:
- Alagado: Local com presença de água acumulada
- Normal: Local sem sinais de alagamento
flood-detection/
├── data/
│ └── train/
│ ├── flooded/
│ └── normal/
├── models/
│ └── best_real_model.pth (Modelo treinado)
├── src/
│ ├── model.py
│ ├── retrain_real.py
│ └── predict_simple.py
├── predictions/
├── requirements.txt
└── README.md
- 72 imagens reais (58 alagadas + 14 normais)
- Redimensionamento para 224x224 pixels
- Data augmentation (flip, rotação, ajuste de cores)
- ResNet50 com transfer learning
- 100% de acurácia na validação
- Fine-tuning inteligente com camadas congeladas
- Trained exclusivamente com dados reais
- Presença de água acumulada
- Reflexos na superfície
- Mudanças na textura do pavimento
- Objetos parcialmente submersos
- Alterações na coloração do ambiente
IMPORTANTE: Para treinar o modelo, você precisa de imagens de alagamentos e locais normais. Consulte DATA_SOURCES.md para um guia completo com:
- Datasets públicos (FloodNet, Sen1Floods11, NASA)
- APIs e ferramentas (Google Earth Engine, Copernicus)
- Coleta própria (celular, drones, câmeras)
- Scripts de download automatizados
- FloodNet Dataset - IEEE DataPort
- Coleta própria com celular em locais alagados/normais
- Sen1Floods11 - Dados de satélite
O projeto inclui um Makefile para facilitar o uso. Comandos disponíveis:
make install # Configura ambiente virtual e instala dependências
make status # Mostra status do projeto (dados, modelo, ambiente)
make info # Informações detalhadas do sistemamake train # Treina modelo com dados reais em data/train/make predict IMG=sua_imagem.jpg # Prediz uma imagem específica
make predict-batch DIR=pasta_com_imagens/ # Prediz todas as imagens de uma pastamake test # Testa modelo nas imagens de exemplo
make test-all # Testa modelo em todas as imagens de data/test/make clean # Remove arquivos temporários e cache
make clean-all # Remove tudo (modelos, ambiente virtual)
make help # Mostra todos os comandos disponíveis# Configuração inicial (apenas uma vez)
make install
# Treinar modelo com seus dados
make train
# Testar em imagens de exemplo
make test
# Predizer uma imagem específica
make predict IMG=data/test/flooded-001.jpg
# Ver status do projeto
make status✅ 100% de acurácia na validação
✅ Modelo treinado com dados reais
✅ Inferência rápida (<1 segundo por imagem)
✅ Transfer learning efetivo com ResNet50
✅ Fine-tuning inteligente
src/retrain_real.py: Script para treinar CNN com dados reaissrc/predict_simple.py: Preditor que usa apenas CNN treinadasrc/model.py: Definições dos modelos disponíveismodels/best_real_model.pth: Modelo treinado (100% acurácia)
| Comando | Descrição |
|---|---|
make install |
Configura ambiente e instala dependências |
make train |
Treina modelo com dados reais |
make predict IMG=foto.jpg |
Prediz uma imagem específica |
make test |
Testa modelo nas imagens de exemplo |
make status |
Mostra status do projeto |
make help |
Lista todos os comandos disponíveis |
🎯 MODELO FUNCIONAL: CNN treinada com dados reais funciona corretamente 📊 PERFORMANCE: 100% acurácia na validação, boa detecção em imagens reais 🔧 MELHORIA CONTÍNUA: Pequenos ajustes para casos específicos
- Aumentar dataset: Adicionar mais imagens normais para melhor balanceamento
- Testes extensivos: Validar em mais imagens reais
- Otimização: Ajustar thresholds se necessário
- Deploy: Preparar para uso em produção