asrob-uc3m / air-hockey

Intelligent robotic air hockey game
GNU General Public License v3.0
1 stars 0 forks source link

Detectar la posición del golpeador del rival (y su velocidad) #9

Open David-Estevez opened 7 years ago

David-Estevez commented 7 years ago

En #8 se dijo:

Para el punto 2, y dado que la mano del jugador tapa gran parte del golpeador al jugar, propongo el uso de un sistema similar al empleado para detectar puños cerrados en GECKO.

Tras una inspección del código, se ha encontrado que el algoritmo original era:

(A partir de la piel del brazo segmentada)

Ese centro debería ser el centro del puño que sujeta el golpeador. Si se quiere comprobar que efectivamente lo detectado es una mano, se podría seleccionar una bounding box alrededor de esa circunferencia máxima y calcular la mínima circunferencia circunscrita. Comparando las dos se podría saber si es ruido o una mano.

David-Estevez commented 6 years ago

Algunos avances en https://github.com/asrob-uc3m/air-hockey/commit/59f8f35024763c1ace301824175d161af33c6e25 . Detectamos el centro de la mano y el radio de la mayor circunferencia inscrita en el contorno. Faltaría calcular la mínima circunferencia circunscrita y compararlas para saber si es ruido o mano. Una vez implementado esto se puede probar en el sistema real a ver qué tal funciona.

David-Estevez commented 6 years ago

Añadido cálculo de la mínima circunferencia circunscrita en https://github.com/asrob-uc3m/air-hockey/commit/13abd4d65cbd13f2fe2730d0973f7e05cc771db8. No he podido probarlo porque no me funciona el GRIP en el portátil para cambiar el rango de valores (Ahora sólo detecta cosas rojas). Pero variando los umbrales se podría probar con el air hockey.

David-Estevez commented 6 years ago

El código fue probado en la sesión del 19/12/17, añadiéndo código para detectar piel generado por GRIP. Este código no funcionaba demasiado bien, ya que había mucha variación en la imagen dependiendo de la iluminación. Hacen falta más pruebas para obtener una buena segmentación de la mano / golpeador y determinar si el resto del código funciona correctamente.

David-Estevez commented 6 years ago

Lectura interesante sobre cómo detectar la mano: https://mpatacchiola.github.io/blog/2016/12/01/playing-the-google-chrome-dinosaur-game-with-your-hand.html

David-Estevez commented 6 years ago

Y esta también: https://mpatacchiola.github.io/blog/2016/11/12/the-simplest-classifier-histogram-intersection.html