Open David-Estevez opened 7 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.
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.
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.
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
En #8 se dijo:
Tras una inspección del código, se ha encontrado que el algoritmo original era:
(A partir de la piel del brazo segmentada)
pointPolygonTest
) es el centro de la mayor circunferencia inscrita en el contorno.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.