File size: 2,415 Bytes
8fb6272
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
title: Weapon Detection App
emoji: 🚨
colorFrom: red
colorTo: yellow
sdk: gradio
sdk_version: 5.15.0
app_file: app.py
pinned: false
license: mit
hardware: true
resources:
  accelerator: T4
  gpu: true
---

# Sistema de Detecção de Riscos em Vídeo

Este projeto implementa um sistema de detecção de riscos em vídeo utilizando YOLOv8 e Clean Architecture.

## Pré-requisitos

- Python 3.9 ou superior
- pip (gerenciador de pacotes Python)
- Ambiente virtual Python (recomendado)

## Configuração do Ambiente

1. Clone o repositório:
```bash
git clone [URL_DO_REPOSITORIO]
cd [NOME_DO_DIRETORIO]
```

2. Crie e ative um ambiente virtual:
```bash
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
# OU
.venv\Scripts\activate  # Windows
```

3. Instale as dependências:
```bash
pip install -r requirements.txt
```

4. Configure as variáveis de ambiente:
Crie um arquivo `.env` na raiz do projeto com as seguintes variáveis:
```
NOTIFICATION_API_KEY=sua_chave_api
```

## Executando o Projeto

1. Ative o ambiente virtual (se ainda não estiver ativo)

2. Execute o aplicativo:
```bash
python src/main.py
```

3. Acesse a interface web através do navegador no endereço mostrado no terminal (geralmente http://localhost:7860)

## Funcionalidades

- Upload de vídeos para análise
- Detecção de objetos em tempo real
- Configuração de parâmetros de detecção
- Sistema de notificações
- Monitoramento de recursos do sistema

## Estrutura do Projeto

O projeto segue os princípios da Clean Architecture:

- `domain/`: Regras de negócio e entidades
- `application/`: Casos de uso e interfaces
- `infrastructure/`: Implementações concretas
- `presentation/`: Interface com usuário (Gradio)

## Contribuindo

1. Fork o projeto
2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)
4. Push para a branch (`git push origin feature/AmazingFeature`)
5. Abra um Pull Request

## Tecnologias

- Python 3.8+
- PyTorch com CUDA
- OWL-ViT
- Gradio
- FFmpeg

## Requisitos de Hardware

- GPU NVIDIA T4 (fornecida pelo Hugging Face)
- 16GB de RAM
- Armazenamento para cache de modelos

## Limitações

- Processamento pode ser lento em CPUs menos potentes
- Requer GPU para melhor performance
- Alguns falsos positivos em condições de baixa luz

---
Desenvolvido com ❤️ para o Hackathon FIAP