Pipeline de Inferência Unificada
Para atender ao RF01, foi desenvolvido um sistema unificado de inferência capaz de operar com ambos os modelos (ResNet-18 e Swin Transformer V2) de forma transparente, garantindo flexibilidade operacional.
Contexto de Desenvolvimento
O sistema unificado foi desenvolvido para suportar tanto o ResNet-18 (modelo experimental com limitações) quanto o Swin Transformer V2 (modelo implementado no frontend). Embora apenas o Swin Transformer V2 seja utilizado em produção devido às limitações de generalização identificadas no ResNet-18, a arquitetura permite flexibilidade para futuras expansões.
Arquitetura do Sistema
O sistema utiliza uma classe principal UnifiedCrackClassifier
que gerencia automaticamente:
- Detecção automática do tipo de modelo baseado no caminho
- Carregamento dinâmico dos módulos específicos
- Configuração automática das transformações adequadas
- Interface padronizada para resultados consistentes
Fluxo de Execução
Modelo + Imagem → Detecção Tipo → Carregamento Dinâmico →
Pré-processamento → Inferência → Resultado Padronizado
Pré-processamento Específico
Cada modelo aplica transformações otimizadas:
ResNet-18:
- Resize direto para 224×224
- Normalização ImageNet padrão
- CLAHE opcional baseado na configuração
Swin Transformer V2:
- Resize para 224×224
- CLAHE com parâmetros específicos
- Normalização otimizada
- Filtros avançados quando disponíveis
Performance
Tabela 1: Tempos de Inferência
Operação | ResNet-18 | Swin Transformer V2 |
---|---|---|
Carregamento inicial | ~2s | ~5s |
Inferência (GPU) | ~0.05s | ~0.15s |
Batch 10 imagens | ~0.2s | ~0.8s |
Fonte: Produzida pelos Autores (2025).
Integração com Sistema SOD
API REST
from modules.inference import classify_for_frontend
def classify_endpoint(request):
results = classify_for_frontend(
request.json['image_paths'],
request.json['image_ids'],
request.json['preview_urls'],
"models/best_model.pth"
)
return {"predictions": results}
Tratamento de Erros
O sistema implementa tratamento robusto:
- Imagens corrompidas: Fallback com resultado de erro
- Modelos indisponíveis: Mensagens informativas
- Configurações ausentes: Valores padrão seguros
- Isolamento: Erros por modelo não afetam outros
Recomendações de Uso
- Produção: Sempre utilizar Swin Transformer V2
- Desenvolvimento: Pipeline unificada permite testes com ambos os modelos
- Validação: ResNet-18 mantido apenas para comparação e aprendizado
- Futuro: Arquitetura preparada para novos modelos
Conclusões
A pipeline unificada atende completamente ao RF01, fornecendo:
- Flexibilidade: Suporte transparente a múltiplos modelos
- Simplicidade: Interface consistente e fácil de usar
- Robustez: Tratamento abrangente de erros
- Extensibilidade: Fácil adição de novos modelos
Esta solução garante base sólida para classificação automática no sistema SOD com capacidade de evolução futura.
Integração com Desenvolvimento Geral
A pipeline unificada representa a culminação técnica desta sprint de IA, conectando o primeiro modelo com o segundo modelo de produção em uma solução coesa. Esta arquitetura facilita a transição para as próximas sprints, onde a integração com o sistema de drones e a validação em campo serão os focos principais do desenvolvimento contínuo do sistema SOD.