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