Este proyecto fue parte del curso VR/AR en mi universidad TU Darmstadt. El objetivo del proyecto era crear una aplicación automática de anotador de dardos, donde dos jugadores puedan jugar a los dardos sin centrarse en el conteo de puntos. La aplicación utiliza OpenCV para la parte de visión por computadora y Pyside2 para la GUI.
Usamos una cámara web calibrada para capturar una transmisión de video y procesarla con OpenCV para extraer los dardos en el tablero y realizar un seguimiento de los jugadores.
El proceso de detección completo se parece a esto:
El proceso general se resume en este diagrama de flujo (actualmente sólo en alemán):
Necesitarás:
Coloque los marcadores alrededor de la diana como en la imagen a continuación y asegúrese de que sean visibles. Coloque la cámara web frente a la diana a aproximadamente 1 metro de distancia y ligeramente hacia la derecha, para que no interfiera al lanzar los dardos.
Importante: Necesita una buena iluminación para obtener buenos resultados. Sólo la iluminación directamente encima de la diana es mala. Lo óptimo sería un anillo de luz con un difusor como este:
Tuvimos algunos problemas con la vibración del tablero que inducía ruido en la detección. Resolvimos esto mediante soportes impresos en 3D para el tablero:
Simplemente clona el repositorio y ejecuta el siguiente comando:
pip install -r requirements.txt
Primero necesitas calibrar la cámara. Esto se puede hacer con el script de calibración. Entonces puedes iniciar main_with_gui.py. La GUI se ve así: