Atualmente, estou trabalhando em um sistema de reconhecimento de gestos (para um aplicativo Android). Acho que concluí a etapa de processamento da imagem, onde sou capaz de extrair o contorno da mão (estou usando uma luva para evitar a subtração de fundo por enquanto).
Também estou obtendo a elipse / retângulo delimitador, o centróide como características de forma 'importantes' da mão.
Meu problema é que não há muita literatura indicando qual é o próximo estágio antes da classificação da imagem através do modelo oculto de Markov. Estou achando esse estágio de 'Extração de recursos' muito ambíguo.
Atualmente, estou obtendo uma lista de ângulos do contorno (que é aproximado para obter um número limitado de ângulos)
O problema é que não tenho idéia do que fazer a seguir. Quando pesquiso literatura como 'Classificação de formas usando HMMs', ainda acho difícil o que devo fazer a seguir.
Como ferramenta para o HMM, planejo usar o JaHMM. Mas não sei como experimentar a ferramenta nesse estágio, pois não sei qual será a entrada para esse estágio de classificação!
Encontrei uma lista de funções que encontrei em alguma literatura, como Descritores Rápidos de Fourier, Descritores de Curvatura, B Spline; no entanto, não tenho noção de como aplicar essas funções aos meus dados atuais (ou seja, lista de ângulos, por exemplo: -63, 154, 3, 23, 54, ....)
ATUALIZAÇÃO 1:
Obrigado pela sua informação. @Peter K.
Em relação às poses: eu procuraria um conjunto de palavras em língua de sinais americana, escritas com os dedos, por exemplo, 'cachorro' -> 'd' 'o' 'g' (3 estados); mas no momento em que ainda não decidi o que fazer.
Atualmente, estou lendo mais alguns artigos para ver que tipo de informação devo extrair, como:
- centróide da mão
- ângulo de movimento
- distância de um ponto em particular a diferentes pontos do contorno da mão (etc.)
Agora, encontrei um artigo que parece mostrar o que quero fazer, não tenho certeza:
http://espace.library.uq.edu.au/eserv.php?pid=UQ:10700&dsID=n0273.pdf
Atualmente, estou lendo a seção 5 - Quantização vetorial (ouvi falar desse termo antes, mas não sei realmente o que ele envolve, e na figura 5 parece haver um algoritmo complexo que, se entendi corretamente, converte o conjunto de valores que alcanço da mão (mencionada anteriormente) em 1 dígito, que eu posso usar como sequência de observação para treinar um HMM para um sinal específico 1. Você acha que estou seguindo o caminho certo? (Estou trabalhando no Android, (NDK) , Encontrei o JaHMM como uma ferramenta HMM e usei o OpenCV para processamento de imagens.
@ Peter K. Obrigado pela sua resposta. Com relação à geração de dados, planejava seguir as etapas deste artigo, depois de produzir meu conjunto de dados pessoais: (seções 4 e 5) http://www.i.ci.ritsumei.ac.jp/~shimada/papers/vi02 -tanibata.pdf
ATUALIZAÇÃO 2: lembrando que um gesto é formado de {postura a, postura b, postura c}
Agora estou pensando que devo usar alguma forma de algoritmo de classificação. Ou seja, atualmente tenho um conjunto de vetores de recursos:
Postura A: [ângulo de elipse em torno dela, relação altura: largura]
- 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: [estruturada da mesma maneira que a 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 ..
e gostaria que, ao alimentar um vetor de característica, obtenho um símbolo simples, por exemplo, 'A', 'B' etc.
Isso é possível? Também migrei a pergunta aqui: /programming/15602963/vector-quantization-algorithms-used-to-provide-observation-sequences-for-hidden