Este projeto fez parte do curso VR/AR da minha universidade TU Darmstadt. O objetivo do Projeto era criar um aplicativo de marcador automático de dardos, onde dois jogadores pudessem jogar dardos sem se concentrar na contagem de pontos. O aplicativo usa OpenCV para a parte de visão computacional e Pyside2 para a GUI.
Usamos uma webcam calibrada para capturar um stream de vídeo e processá-lo com OpenCV para extrair os dardos do tabuleiro e acompanhar os jogadores.
O pipeline de detecção completo é mais ou menos assim:
O pipeline geral está resumido neste fluxograma (atualmente apenas em alemão):
Você precisará de:
Coloque os marcadores ao redor do alvo de dardos como na imagem abaixo e certifique-se de que estejam visíveis. Coloque a webcam em frente ao alvo de dardos a aproximadamente 1 metro de distância e ligeiramente para a direita, para não atrapalhar o lançamento dos dardos.
Importante: você precisa de uma boa iluminação para obter bons resultados. Apenas a iluminação diretamente acima do alvo de dardos é ruim. O ideal seria um anel luminoso com um difusor como este:
Tivemos alguns problemas com tremores da placa que induziram ruído na detecção. Resolvemos isso com montagens impressas em 3D para a placa:
Basta clonar o repositório e executar o seguinte comando:
pip install -r requirements.txt
Primeiro você precisa calibrar a câmera. Isso pode ser feito com o Script de Calibração. Então você pode iniciar main_with_gui.py. A GUI fica assim: