Spaces:
Runtime error
Runtime error
Arquitetura do Sistema
Visão Geral
O sistema de detecção de riscos em vídeo é construído seguindo os princípios da Clean Architecture, garantindo separação de responsabilidades e facilitando a manutenção e evolução do código.
Camadas da Arquitetura
1. Domain (Núcleo)
- Contém as regras de negócio e entidades fundamentais
- Independente de frameworks e bibliotecas externas
- Localização:
src/domain/
Componentes Principais
detectors/
: Implementações dos detectores (GPU/CPU)entities/
: Objetos de domíniofactories/
: Fábricas para criação de objetosinterfaces/
: Contratos e interfaces
2. Application
- Implementa os casos de uso da aplicação
- Orquestra o fluxo de dados entre as camadas
- Localização:
src/application/
Casos de Uso
process_video
: Processamento e análise de vídeos- Notificações de detecções
- Gerenciamento de cache
3. Infrastructure
- Implementações concretas de interfaces
- Integrações com serviços externos
- Localização:
src/infrastructure/
Serviços
WeaponDetectorService
: Serviço principal de detecçãoNotificationService
: Serviço de notificações- Gerenciamento de GPU/CPU
4. Presentation
- Interface com usuário via Gradio
- Localização:
src/presentation/
Componentes
- Interface web responsiva
- Configurações de processamento
- Visualização de resultados
Fluxo de Dados
- Upload do vídeo via interface Gradio
- Processamento pelo caso de uso
- Detecção de objetos usando GPU/CPU
- Notificações (se configuradas)
- Retorno dos resultados
Otimizações
GPU
- Detecção automática de hardware
- Configurações específicas para T4 e Zero-GPU
- Gerenciamento de memória otimizado
CPU
- Fallback automático
- Otimizações para processamento em CPU
- Cache de resultados
Diagrama de Componentes
graph TD
A[Interface Web] --> B[Casos de Uso]
B --> C[Detector Service]
C --> D[GPU Detector]
C --> E[CPU Detector]
B --> F[Notification Service]
D --> G[OWL-ViT Model]
E --> G
Considerações de Design
1. Inversão de Dependência
- Interfaces abstratas no domínio
- Implementações concretas na infraestrutura
2. Single Responsibility
- Cada componente com responsabilidade única
- Separação clara de concerns
3. Open/Closed
- Extensível para novos detectores
- Fácil adição de novos serviços