Mouse virtual controlado por detecção facial e movimento dos olhos — operar o computador sem usar as mãos.
Projeto de pesquisa em tecnologia assistiva desenvolvido no IFTM.
Pessoas com mobilidade reduzida nos membros superiores dependem de periféricos caros ou adaptações improvisadas para usar um computador. O MouseControler propõe uma alternativa acessível: uma webcam comum é suficiente. A posição do rosto move o cursor e o piscar dos olhos executa os cliques.
- 🎥 Rastreamento facial em tempo real com a malha de 468 pontos do MediaPipe Face Mesh
- 🖱️ Movimento do cursor proporcional à inclinação e à posição da cabeça
- 👁️ Clique por piscada — detecção da razão de abertura dos olhos para disparar o clique
- ✋ Detecção de mãos como modo alternativo de comando
- 🪟 Interface gráfica em ttkbootstrap para calibrar sensibilidade e iniciar/parar o rastreamento
- 📦 Empacotamento em executável com cx_Freeze / PyInstaller
.
├── Software/ # Versão com interface gráfica
│ ├── interface.py # Janela principal (ttkbootstrap)
│ ├── detector.py # Pipeline de detecção e controle do cursor
│ ├── detectorFace.py # Rastreamento facial (MediaPipe Face Mesh)
│ └── icon.svg / icon.jpg # Identidade visual do app
├── Codigo/ # Protótipos e versões de linha de comando
│ ├── MouseFace.py
│ ├── MouseFaceComInterface.py
│ └── MouseTeste.py
├── Testes1/ e testes/ # Experimentos de calibração e detecção de mãos
├── MouseCabeçaPontos.py # Estudo dos pontos de referência da cabeça
├── interface.spec # Configuração de build do executável
└── requirements.txt # Dependências fixadas
- Python 3.10 ou superior
- Webcam
git clone https://github.com/RobertoBuiatti/MouseControler.git
cd MouseControler
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux / macOS
source .venv/bin/activate
pip install -r requirements.txtpython Software/interface.pypython setup.py build- O OpenCV captura os quadros da webcam.
- O MediaPipe Face Mesh devolve os pontos de referência do rosto a cada quadro.
- O deslocamento do ponto central do rosto é convertido em coordenadas de tela.
- O PyAutoGUI move o cursor para essas coordenadas com suavização, evitando tremores.
- A razão de abertura das pálpebras é monitorada — quando cai abaixo do limiar por tempo suficiente, um clique é disparado.
| Biblioteca | Papel |
|---|---|
| OpenCV | Captura e pré-processamento de vídeo |
| MediaPipe | Malha facial e detecção de mãos |
| PyAutoGUI | Controle do cursor e cliques do sistema |
| ttkbootstrap | Interface gráfica |
| NumPy / SciPy | Cálculos de distância e suavização |
| cx_Freeze | Empacotamento em executável |
- A precisão depende da iluminação do ambiente e do posicionamento da webcam.
- Recomenda-se calibrar a sensibilidade antes do uso prolongado.
- Perfis de calibração salvos por usuário
- Clique direito e arraste por gestos
- Teclado virtual integrado
Roberto Buiatti — projeto de pesquisa no IFTM
GitHub · LinkedIn