Este projeto é uma lousa virtual de realidade aumentada, onde o usuário pode desenhar na tela utilizando a webcam. O projeto foi desenvolvido utilizando principalmente o algoritmo de detecção de objetos em tempo real YOLOv5 e as bibliotecas OpenCV e PyTorch para Python 3.12. Este trabalho foi desenvolvido para a disciplina de Processamento Digital de Imagens do curso de Engenharia da Computação do IFSP de Piracicaba.
A rede neural YOLOv5 foi treinada utilizando um dataset próprio, anotado manualmente na plataforma Roboflow. A versão mais recente do dataset, utilizada para treinar o modelo no repositório contém 5760 imagens de um lápis, um canetão azul e um apagador, utilizados para desenhar na tela.
Os parâmetros de treinamento utilizados para treinar o modelo em uma máquina com GPU Nvidia GeForce RTX 4070 foram:
python train.py --img 640 --batch -1 --epochs 75 --data dataset.yaml --weights yolov5m.pt --cache
Um notebook que pode ser utilizado para treinar o modelo em nuvem a partir de um dataset do Roboflow é disponibilizado pela própria plataforma no Google Colab, aqui
- Computador com webcam
- Última versão do Python 3.12
- PyTorch para Python (escolha uma das versões com CUDA se tiver uma GPU Nvidia)
- Caso tenha uma GPU Nvidia, instale antes a última versão do CUDA Toolkit compatível com a versão do PyTorch (atualmente, 12.4).
- Também é necessário instalar o cuDNN compatível com a versão do CUDA Toolkit.
-
Clone o repositório (ou faça o download do código fonte) e entre na pasta do projeto:
git clone https://github.com/VictorPLopes/AR-Board.git
cd AR-Board
-
Instale as dependências do projeto:
pip install -r requirements.txt
-
Execute o scrpit
calibration_camera.py
para calibrar a câmera:python calibration_camera.py
- Ajuste os parâmetros na tela até que os objetos sejam detectados corretamente. Pressione a tecla
esc
para salvar os parâmetros e fechar a janela.
- Ajuste os parâmetros na tela até que os objetos sejam detectados corretamente. Pressione a tecla
Para executar o projeto, basta rodar o script main.py
:
python main.py
- Para desenhar na tela com a cor cinza, segure o lápis e mova-o na frente da webcam.
- Para desenhar na tela com a cor azul, segure o canetão azul e mova-o na frente da webcam.
- Para apagar o desenho, segure o apagador e mova-o na frente da webcam sobre a área que deseja apagar.
É possível ajustar os parâmetros da imagem durante a execução do programa. Estes são compartilhados com a calibração da câmera.
Para sair do programa, pressione a tecla esc
.
- Allan Bastos da Silva
- Mateus Carvalho Lucas
- Victor Probio Lopes
- Wilson Bin Rong Luo