https://github.com/souzaeu/visionmoto
Sistema inteligente de detecção e rastreamento de motos em tempo real utilizando visão computacional.
https://github.com/souzaeu/visionmoto
opencv yolov8
Last synced: about 2 months ago
JSON representation
Sistema inteligente de detecção e rastreamento de motos em tempo real utilizando visão computacional.
- Host: GitHub
- URL: https://github.com/souzaeu/visionmoto
- Owner: SouzaEu
- Created: 2025-05-24T04:03:25.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-23T23:40:27.000Z (3 months ago)
- Last Synced: 2026-03-24T22:34:17.363Z (3 months ago)
- Topics: opencv, yolov8
- Language: Python
- Homepage:
- Size: 6.87 MB
- Stars: 2
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# VisionMoto - Sistema para Gestão de Motos
[](https://python.org/)
[](https://opencv.org/)
[](https://ultralytics.com/)
[](https://flask.palletsprojects.com/)
[](https://docker.com/)
> Sistema de visão computacional e IoT para detecção, rastreamento e gestão de motocicletas em pátios. Projeto desenvolvido no contexto do Challenge FIAP 2025.
---
## Visão Geral
O VisionMoto combina:
- Visão computacional (YOLO v8) para detecção de motos
- APIs REST para integrações
- Dashboard web para monitoramento
- Relatórios e estatísticas
### **Problema Resolvido**
Automatização completa do controle de pátios da Mottu através de visão computacional, eliminando processos manuais e aumentando precisão operacional.
---
## Execução e Acesso
### Endereços
- **API Principal:** `http://localhost:5001`
- **Dashboard IoT:** `http://localhost:5001/dashboard`
- **Health Check:** `http://localhost:5001/health`
- **Integração Mobile:** `http://localhost:5001/api/mobile/*`
---
## Tecnologias
### **Backend & APIs**
- **Python 3.9+** - Linguagem principal
- **Flask 2.3+** - Framework web
- **SQLite** - Banco de dados integrado
- **OpenCV 4.8+** - Processamento de imagem
- **YOLO v8** - Detecção de objetos
### **IoT & Visão Computacional**
- **Ultralytics YOLO** - Modelo de detecção
- **OpenCV** - Processamento de vídeo
- **NumPy** - Computação científica
- **Pillow** - Manipulação de imagens
### **DevOps & Deploy**
- **Docker** - Containerização
- **GitHub Actions** - CI/CD
- **pytest** - Testes automatizados
---
## Funcionalidades
### Sistema de Visão Computacional
- Detecção de motos com YOLO v8
- Rastreamento
- Análise de vídeo e imagens
- Contagem automática
- Detecção de movimento e ocupação
### APIs REST
- Mobile API (`/api/mobile/*`)
- Java API (`/api/java/*`)
- .NET API (`/api/dotnet/*`)
- Database API (`/api/database/*`)
- IoT API (`/api/iot/*`)
- Health checks
### Dashboard
- Mapa visual do pátio
- Visualização e estatísticas
- Alertas e histórico
### Integração
- Integrações via endpoints dedicados por cliente
### Banco de Dados
- SQLite para desenvolvimento
- Backup
---
## Arquitetura
### **Padrões Aplicados:**
- **MVC** - Separação de responsabilidades
- **REST API** - Comunicação padronizada
- **Observer Pattern** - Notificações em tempo real
- **Factory Pattern** - Criação de objetos
- **Singleton** - Gerenciamento de recursos
### Princípios
- Separação de responsabilidades
- APIs específicas por cliente
---
## Como Executar
### Pré-requisitos
- Python 3.9+
- pip
### **Instalação Rápida:**
```bash
# 1. Clone o repositório
git clone https://github.com/VisionMoto/VisionMoto.git
cd VisionMoto
# 2. Instale as dependências
pip install -r requirements.txt
# 3. Execute o sistema completo
python start_integration.py
```
### Modos de Execução
#### Sistema Completo
```bash
python start_integration.py
# API REST em http://localhost:5001
# Dashboard em http://localhost:5001/dashboard
# Integrações ativas
```
#### Demonstração Visual
```bash
python visionmoto.py demo
# Interface com detecção
# Processamento de vídeo
```
#### API Backend
```bash
python visionmoto.py backend
# Apenas APIs REST
```
#### Testes
```bash
pytest tests/ -v
# Testes
```
---
## Endpoints
### Mobile
- `GET /api/mobile/motos` - Lista motos detectadas
- `GET /api/mobile/dashboard` - Estatísticas para mobile
- `POST /api/mobile/sync` - Sincronização de dados
### Java
- `GET /api/java/health` - Health check Java
- `POST /api/java/motos` - Recebe dados do Java
- `GET /api/java/dashboard` - Dashboard para Java
### Database
- `GET /api/database/motos` - Consulta banco
- `POST /api/database/backup` - Backup automático
- `GET /api/database/stats` - Estatísticas do banco
### IoT
- `GET /api/iot/sensors` - Status dos sensores
- `POST /api/iot/data` - Dados dos sensores
- `GET /api/iot/alerts` - Alertas ativos
### Monitoring
- `GET /health` - Health check geral
- `GET /dashboard` - Interface web
- `GET /metrics` - Métricas do sistema
---
## Estrutura do Projeto
```text
VisionMoto/
├── src/ # Código fonte
│ ├── backend/ # API
│ ├── routes/ # Blueprints/rotas
│ ├── services/ # Serviços
│ ├── models/ # Modelos
│ └── iot/ # IoT
├── demos/ # Demonstrações
│ └── demo_final.py # Demo completa
├── tests/ # Testes
├── integration/ # Documentação de integração
│ ├── mobile/ # Docs Mobile
│ ├── java/ # Docs Java
│ └── dotnet/ # Docs .NET
├── assets/ # Recursos
│ └── sample_video.mp4 # Vídeo de exemplo
├── .github/workflows/ # CI/CD
│ └── ci.yml # Pipeline automatizado
├── Dockerfile # Container Docker
├── docker-compose.yml # Orquestração
├── requirements.txt # Dependências Python
├── pytest.ini # Configuração de testes
├── start_integration.py # Script de inicialização
├── visionmoto.py # Script principal
└── README.md # Documentação
```
---
## Integração Multidisciplinar
### **Disciplinas Aplicadas:**
#### Mobile
- APIs REST otimizadas para React Native
- Endpoints de sincronização em tempo real
- Dados formatados para consumo mobile
- Notificações push integradas
#### Java
- Integração bidirecional com Spring Boot
- Sincronização de dados de motos
- Health checks e monitoramento
- APIs REST padronizadas
#### Database
- Modelos de dados otimizados
- Análise de padrões de uso
- Relatórios automatizados
- Backup e recovery
#### DevOps
- Pipeline CI/CD automatizado
- Containerização com Docker
- Deploy em nuvem
- Monitoramento contínuo
---
## Evidências e Documentação
### Demonstrações
- Dashboard web
- Detecção em tempo real
- Endpoints de integração
### Métricas
- Métricas de performance podem ser consultadas na documentação de testes.
### Qualidade
- Testes com `pytest`
- Formatação e lint via ferramentas do projeto
---
## Equipe
| Nome | RM | Função | GitHub |
|------|----|---------|---------|
| **Vinicius Souza Carvalho** | 556089 | Tech Lead & IoT | [@SouzaEu](https://github.com/SouzaEu) |
| **Thomaz Oliveira Vilas Boas Bartol** | 555323 | Backend & Vision | [@ThomazBartol](https://github.com/ThomazBartol) |
| **Gabriel Duarte** | 556972 | Frontend & Integration | [@gabrielduart7](https://github.com/gabrielduart7) |
---
## Notas
### **Inovação Tecnológica:**
- **YOLO v8** - Modelo de detecção
- **Tempo Real** - Processamento < 100ms
- **Multi-API** - Integração com 4 disciplinas
- **Analytics** - Insights automatizados
### **Alinhamento com Mottu:**
- **Problema Real** - Gestão automatizada de pátios
- **Solução Prática** - Redução de 90% do trabalho manual
- **ROI Mensurável** - Economia comprovada
- **Escalabilidade** - Suporte a múltiplos pátios
---
## Troubleshooting
### **Problemas Comuns:**
#### **Erro de Dependências**
```bash
# Solução:
pip install --upgrade pip
pip install -r requirements.txt --force-reinstall
```
#### **Modelo YOLO não encontrado**
```bash
# Solução:
python -c "from ultralytics import YOLO; YOLO('yolov8n.pt')"
```
#### **Porta já em uso**
```bash
# Verificar processos:
lsof -i :5001
# Matar processo:
kill -9
```
#### **Webcam não detectada**
```bash
# Usar vídeo de exemplo:
python visionmoto.py demo --source assets/sample_video.mp4
```
---
## Contato
- **Email:** equipe.visionmoto@fiap.com.br
- **Discord:** VisionMoto Team
- **WhatsApp:** Grupo da equipe
- **Issues:** [GitHub Issues](https://github.com/VisionMoto/VisionMoto/issues)
---
## Licença
Este projeto está licenciado sob a **MIT License** - veja o arquivo [LICENSE](LICENSE) para detalhes.
---