Actualmente estoy trabajando en un sistema de reconocimiento de gestos (para una aplicación de Android). Creo que he completado la etapa de procesamiento de imágenes, donde puedo extraer el contorno de la mano (por ahora, estoy usando un guante para evitar la sustracción del fondo).
También obtengo la elipse / rectángulo delimitador, el centroide como características de forma 'importantes' de la mano.
Mi problema es que no hay mucha literatura que indique cuál es la siguiente etapa antes de la clasificación de la imagen a través del modelo oculto de Markov. Esta etapa de 'Extracción de características' me parece muy ambigua.
Actualmente estoy obteniendo una lista de ángulos del contorno (que se aproxima para obtener un número limitado de ángulos)
El problema es que no tengo ni idea de qué hacer a continuación. Cuando busco literatura como 'Clasificación de formas usando HMM', todavía me resulta difícil hacer lo siguiente.
Como herramienta para HMM planeo usar JaHMM. ¡Pero no sé cómo experimentar con la herramienta en esta etapa ya que no sé cuál será la entrada a esta etapa de clasificación!
He encontrado una lista de funciones que encontré en la literatura, como Descriptores rápidos de Fourier, Descriptores de curvatura, B Spline; Sin embargo, no tengo ni idea de cómo aplicar estas funciones a mis datos actuales (es decir, lista de ángulos, por ejemplo: -63, 154, 3, 23, 54, ...)
ACTUALIZACIÓN 1:
Gracias por su información. @Peter K.
Con respecto a las poses: iba a buscar un conjunto de palabras en lenguaje de señas americano que están escritas con los dedos, por ejemplo, 'perro' -> 'd' 'o' 'g' (3 estados); pero en el momento no he decidido a qué ir.
Actualmente estoy leyendo algunos documentos más para ver qué tipo de información debo extraer, como:
- centroide de la mano
- ángulo de movimiento
- distancia desde un punto particular a diferentes puntos del contorno de la mano (etc.)
Ahora que he encontrado un artículo que parece mostrar lo que quiero hacer, no estoy seguro:
http://espace.library.uq.edu.au/eserv.php?pid=UQ:10700&dsID=n0273.pdf
Actualmente estoy leyendo la sección 5: Cuantización vectorial (he oído hablar de este término antes, pero no sé realmente qué implica, y en la figura 5 parece haber un algoritmo complejo que, si entendí correctamente, convierte el conjunto de valores que logro de la mano (que acabo de mencionar) en 1 dígito que puedo usar como secuencia de observación para entrenar un HMM para 1 signo en particular. ¿Crees que me estoy moviendo en el camino correcto? (Estoy trabajando en Android, (NDK) Encontré JaHMM como una herramienta HMM y utilicé OpenCV para el procesamiento de imágenes.
@ Peter K. Gracias por su respuesta. Con respecto a la generación de datos, estaba planeando seguir los pasos de este documento, después de producir mi conjunto de datos personales: (secciones 4 y 5) http://www.i.ci.ritsumei.ac.jp/~shimada/papers/vi02 -tanibata.pdf
ACTUALIZACIÓN 2: teniendo en cuenta que un gesto está formado por {postura a, postura b, postura c}
Ahora estoy pensando que debo utilizar algún tipo de algoritmo de clasificación. Es decir, actualmente tengo un conjunto de vectores de características:
Postura A: [ángulo de elipse que lo rodea, relación altura: ancho]
- 0.802985 33.909615
- 0.722824 31.209663
- 0.734535 30.206722
- 0.68397 31.838253
- 0.713706 34.29641
- 0.688798 30.603661
- 0.721395 34.880161
Postura B: [estructurada igual que la postura A]
- 0.474164 16.077467
- 0.483104 14.526289
- 0.478904 14.800572
- 0.483134 14.523611
- 0.480608 14.41159
- 0.481552 15.563665
- 0.497951 15.563585
etc.
y me gustaría que cuando alimente un vector de características obtengo un símbolo simple, por ejemplo, 'A', 'B', etc.
es posible? También migré la pregunta aquí: /programming/15602963/vector-quantization-algorithms-used-to-provide-observation-sequences-for-hidden