Detector de Tesoura em Tempo Real
Um sistema de detecção de objetos via webcam que identifica uma tesoura em tempo real, registra o evento em banco de dados e exibe feedback visual na tela.
A Inspiração
Este projeto nasceu como um exercício prático para aprofundar conhecimentos em Visão Computacional aplicada. A ideia era construir algo simples no conceito — detectar um objeto específico — mas estruturado como um sistema real, com arquitetura modular, logging profissional e persistência de dados.
Em vez de apenas rodar um modelo de detecção pronto, o objetivo foi entender todo o fluxo de engenharia por trás de uma aplicação de visão computacional em produção: captura de vídeo, inferência do modelo, controle de eventos e registro estruturado das detecções.
O objeto escolhido foi uma tesoura, usando a webcam como fonte de vídeo e um modelo pré-treinado capaz de reconhecer objetos do cotidiano.
Desafios Técnicos e Soluções
Mesmo sendo um projeto pequeno, vários aspectos importantes de engenharia apareceram durante a implementação.
Um dos principais desafios foi controlar a frequência de registros no banco. Sem controle, a aplicação registraria dezenas de detecções por segundo enquanto a tesoura permanecesse visível. Para resolver isso, implementei um mecanismo de cooldown, garantindo que novos registros só ocorram após um intervalo mínimo.
Outro ponto foi estruturar o código de forma organizada, separando responsabilidades entre módulos de detecção, persistência, configuração e logging.
Principais pontos de engenharia do projeto:
- Arquitetura Modular: A aplicação foi organizada em múltiplos módulos (detector, database e config), separando responsabilidades e facilitando manutenção e evolução do sistema.
- Detecção de Objetos em Tempo Real: A identificação da tesoura é feita utilizando o modelo YOLOv8, amplamente utilizado em projetos de Visão Computacional.
- Integração com Webcam: A captura e renderização de vídeo são realizadas com OpenCV, permitindo desenhar bounding boxes, labels e indicadores visuais diretamente no frame.
- Persistência de Dados: Cada detecção válida é registrada em um banco SQLite, armazenando rótulo, nível de confiança e timestamp.
- Controle de Eventos (Cooldown): Um sistema de controle temporal impede múltiplos registros consecutivos do mesmo objeto enquanto ele permanece visível na câmera.
- Monitoramento e Logs: A aplicação utiliza um logger estruturado para registrar eventos importantes do sistema, como inicialização, falhas de captura e detecções confirmadas.
- Medição de Performance: O sistema calcula e exibe FPS (frames por segundo) em tempo real, permitindo avaliar o desempenho da inferência do modelo em CPU.
Resultado
O resultado é uma aplicação funcional de detecção de objetos em tempo real que roda localmente utilizando apenas CPU.
Quando uma tesoura aparece no campo da câmera:
• o modelo identifica o objeto
• um bounding box é desenhado na tela
• o nível de confiança é exibido
• o evento é registrado no banco de dados
• o sistema mostra o desempenho em FPS
Embora simples, o projeto demonstra na prática vários elementos presentes em aplicações reais de visão computacional, incluindo processamento em tempo real, integração com hardware e registro estruturado de eventos.
← Voltar para todos os projetos