Spaces:
Runtime error
Runtime error
File size: 2,497 Bytes
1429e38 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# 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ínio
- `factories/`: Fábricas para criação de objetos
- `interfaces/`: 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ção
- `NotificationService`: 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
1. Upload do vídeo via interface Gradio
2. Processamento pelo caso de uso
3. Detecção de objetos usando GPU/CPU
4. Notificações (se configuradas)
5. 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
```mermaid
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 |