Técnicas de Reconhecimento de Padrões - student.dei.uc.ptpcoliv/reports/trp_wiimote.pdf · gestos...
Transcript of Técnicas de Reconhecimento de Padrões - student.dei.uc.ptpcoliv/reports/trp_wiimote.pdf · gestos...
Departamento de Engenharia Informática
Faculdade de Ciências e Tecnologia
Universidade de Coimbra
2008/09
Técnicas de Reconhecimento de Padrões
Projecto
Gladius Master
Pedro Oliveira (MEI) Nº 501062444
Rui Costa (MEI) Nº 2006124521
1. INTRODUÇÃO O objectivo deste trabalho é estudar e desenvolver classificadores para o reconhecimento de
gestos produzidos com recurso ao Wiimote1, o comando sem fios da Wii2. Ao todo existem 7
gestos que devem ser reconhecidos, referentes ao manuseamento de uma espada no jogo
fictício “Gladius Master”. Para essa tarefa, foram providenciados dados dos acelerómetros de
7 pessoas diferentes, num total de 226 demonstrações. A abordagem seguida pelo nosso
grupo é ilustrada na Imagem 1, é uma abordagem que inclui as várias fases que tipicamente
pertencem a um sistema de reconhecimento de padrões.
Imagem 1 - Estrutura e algoritmos aplicados
2. TRABALHO RELACIONADO De modo a obtermos mais e melhores conhecimentos sobre as técnicas utilizadas neste tipo
de problema, pesquisámos por bibliografia que nos pudesse ajudar na resolução deste
trabalho.
Numa primeira fase analisámos artigos em que fosse utilizado o Wiimote para
reconhecimento de gestos. Em [1] é apresentado a abordagem utilizada no desenvolvimento
1 http://www.wiili.org/index.php/Wiimote
2 http://wii.com/
de uma ferramenta em Java3 para reconhecimento de gestos utilizando o Wiimote. Os autores
utilizam métodos de filtragem dos dados dos acelerómetros, seguido de algoritmos de
clustering, para extracção de características (para gerar sequências para as cadeias de
Markov). Como classificador, utilizam Hidden Markov Models (HMMs) juntamente com um
classificador de Bayes. No reconhecimento de 5 gestos distintos, obtiveram resultados na
ordem dos 90% de taxa de reconhecimento. Em [2] são utilizadas Redes Neuronais para o
reconhecimento de 4 gestos, tendo atingido taxas de reconhecimento de 95%. Como
características foram utilizadas as velocidades de 8 em 8 pontos. Em [3] taxas de
reconhecimento de 99% foram atingidas na distinção de 8 gestos. Os autores extraem algumas
estatísticas do sinal, tais como média e mediana, e utilizam-nas como características em
classificadores como Naive Bayes, Nearest Neighbour e Multilayer Perceptrons. Em [4] HMMs
são utilizadas para a classificar o próprio sinal dos acelerómetros, atingindo resultados de 95%
de taxa de reconhecimento de 3 gestos. Em [5-7] são demonstrados trabalhos na utilização do
Wiimote para reconhecimento de gestos. No entanto, não são dadas quaisquer explicações
sobre as técnicas utilizadas.
Numa segunda fase, pesquisámos por trabalhos que utilizassem outros mecanismos
idênticos ao Wiimote, também baseados em acelerómetros, para o reconhecimento de gestos.
Dentro desses, encontramos trabalhos muito interessantes no reconhecimento de actividades
humanas usando acelerómetros. Em [8] é utilizada a média, desvio padrão, energia e
correlação na classificação de 8 actividades. Vários classificadores são utilizados, tendo
atingido 99% de taxa de reconhecimento utilizando Plurality Voting. Em [9] várias
características são extraídas do sinal, utilizando janelas com 50% de sobreposição, com
resultados de 89% na taxa de reconhecimento de 10 actividades utilizando Árvores de Decisão.
Num registo similar, em [10] são extraídas 6 características, tais como aceleração e entropia,
em janelas com 50% de sobreposição. Utilizando Árvores de Decisão, taxas de 98% de
reconhecimento de 3 actividades são obtidas. Em [11] são aplicadas técnicas de redução de
dimensionalidade, tais como Principal Component Analysis e Independent Component Analysis
directamente no sinal dos acelerómetros. Na classificação de 4 actividades, são obtidas taxas
de 75% de reconhecimento utilizando Redes Neuronais. Em [12] são utilizadas 10
características, num total de 80 janelas, no reconhecimento de 6 actividades. Vários
classificadores são utilizados, atingido cerca de 80% de taxa de reconhecimento nos melhores
casos. Finalmente em [13] são utilizadas Redes Neuronais para a classificação de 8 actividades.
Utilizando 8 características, tais como variância e correlação entre eixos, atingem 95% de taxa
de reconhecimento.
3. DATASETS Os datasets disponibilizados para a realização deste trabalho foram extraídos do Wiimote. Este
comando contêm diversos sensores, sendo os acelerómetros os mais relevantes para o
presente trabalho. Os acelerómetros descrevem a aceleração produzida com o Wiimote num
3 http://www.wiigee.org/
dado momento, sobre três dimensões (x,y,z). É essencial para o correcto reconhecimento de
gestos extrair dos dados um conjunto de características que descrevam bem os movimentos
realizados. Os métodos aplicados neste trabalho são apresentados na próxima secção.
Imagem 1. Sistema de acelerómetros do Wiimote.
4. EXTRACÇÃO DE CARACTERÍSTICAS Após uma análise detalhada dos dados fornecidos, e da análise da bibliografia, decidimos
utilizar 3 técnicas distintas para extracção de características.
4.1. CLUSTERING
Com base no estudo elaborado por [1] aplicámos o K-Means de modo a extrair um conjunto de
características. No entanto, ao contrário deste, usámos os clusters directamente como
características. Após alguns testes concluímos que o melhor número de clusters seria 14, o
mesmo valor usado em [1]. Na Figura 2, pode ser vista a distribuição dos clusters quando
aplicado o K-Means a um dos movimentos (slash left). Sendo K igual a 14 o número de
características corresponde a 14x3 = 42, porque cada centróide tem três dimensões (x,y,z).
Imagem 2. Clustering de demonstração do movimento slash left. A azul encontram-se os centróides
encontrados.
4.2. ESTATÍSTICAS
Uma maneira de extrair características destes dados é interpretando os valores dos
acelerómetros como sinais (x, y e z), e extrair estatísticas de cada um desses sinais.
Na Imagem 3, podemos ver o gráfico referente a uma das demonstrações providenciadas.
Como se pode constatar, os 3 eixos têm comportamentos similares ao longo do tempo, com
excepção da parte inicial, onde um dos eixos tem um comportamento muito diferente dos
restantes. Será então interessante retirar características destes sinais que nos permitem
caracterizar esta variabilidade, e assim conseguir construir um classificador eficaz.
Imagem 3. Gráfico do sinal correspondente a uma demonstração do movimento slash left.
Após analisarmos a bibliografia (vide Secção 2), escolhemos algumas características que
considerámos interessantes para o nosso trabalho:
• Tamanho do sinal
• Máximo
• Mínimo
• Gama
• Média
• Mediana
• Média do Gradiente
• Desvio Padrão
• Desvio Absoluto Médio
• Desvio Absoluto Mediano
• Correlação entre eixos
• Co-variância entre eixos
• Força (Power)
• Energia
• Gama do Inter-quartil
• Variância
• Valor Quadrático Médio (Root Mean Square)
• Entropia
Temos então um total de 18 características. No entanto, à excepção da primeira, todas elas
são calculadas 3 vezes, uma por cada eixo. Assim sendo, ficamos com um total de (17*3)+1 =
52 características.
4.3. ESTATÍSTICAS COM JANELAS DE SOBREPOSIÇÃO
Em alguns trabalhos nesta área, as características são extraídas em várias janelas,
normalmente com sobreposição. Neste trabalho decidimos também explorar esta vertente.
Para isso, segmenta-mos o sinal em N janelas com 50% de sobreposição e, em cada uma,
retiramos as estatísticas referidas anteriormente. Visto que no nosso caso o sinal varia de
tamanho conforme a experimentação, tivemos de encontrar uma formula para definir o
tamanho de cada janela:
������� �� ���� � ������� �� ���������� � ����� � 1� � 2
Desta maneira, em cada sinal, criamos N janelas com 50% de sobreposição. Exemplificando,
suponhamos que temos um sinal com 160 pontos e queremos dividi-lo em 3 janelas. Segundo
a fórmula anterior, cada janela vai ter (160/4)*2 = 80 pontos. Assim sendo, a primeira janela
vai desde o ponto 0 até ao 80; a segunda, como tem 50% de sobreposição, vai desde o ponto
40 até ao 120; e a terceira vai desde o ponto 80 até ao 160. Uma representação gráfica desta
divisão pode ser vista na próxima imagem:
Imagem 4. Segmentação do sinal de uma das demonstrações em 3 janelas com 50% de sobreposição.
Cada cor representa uma janela.
Após alguns testes iniciais, definimos que 4 janelas seriam o número óptimo para o nosso
trabalho. Visto que em cada uma destas janelas teremos de calcular as 52 características
referidas anteriormente, ficamos com um total de 4*52 = 208 características.
4.4. OUTRAS
Durante o estudo inicial deste projecto foram ainda analisados outros métodos de extracção
de características, tais como a combinação de vários tipos de extractores de características
(estatísticas + clustering) e o expoente de Lyapunov. No entanto, nenhum deles demonstrou
melhores resultados do que os obtidos com os métodos descritos anteriormente.
Normalização de Características
É importante referir que as características foram normalizadas de acordo com a seguinte fórmula:
, onde m é a média e s o desvio padrão.
5. SELECÇÃO DE
CARACTERÍSTICAS/REDUÇÃO DE
DIMENSIONALIDADE Nesta fase aplicámos técnicas com vista a redução do número de características. Para isso,
utilizámos técnicas de selecção de características (ex: teste de Kruskal-Wallis) e de redução de
dimensionalidade (ex: PCA). Após uma experimentação inicial, apostámos em 4 técnicas:
• Principal Component Analysis (PCA)
• Teste de Kruskal-Wallis
• Geração aleatória de conjuntos de características
• Geração de conjuntos de características utilizando Simmulated Annealing
Como cada uma das técnicas pode gerar distintos conjuntos de características, efectuamos
testes para descobrir, para cada uma delas, qual o melhor conjunto gerado. Para isso,
utilizámos uma técnica recomendada pela literatura [13]: wrappers. Esta técnica consiste em
utilizar um classificador alvo como selector de subconjuntos de características: o subconjunto
que maximizar o resultado de classificação é o escolhido.
Neste trabalho utilizámos uma SVM como classificador alvo, com os dados da Experiência 1
(aproximadamente 78% dos dados para treino e 22% para teste). De seguida são apresentados
os resultados (taxa de reconhecimento do conjunto de teste) para cada um dos métodos de
extracção de características descritos anteriormente.
Explicação dos Resultados
Para uma melhor compreensão dos resultados que se seguem, é importante explicar detalhadamente os procedimentos efectuados para cada uma das técnicas.
• PCA – Com esta técnica queremos escolher o melhor conjunto de novas características. Para isso, variamos o número de características criadas.
• Kruskal-Wallis – Com este selector, queremos escolher quais as características mais discriminatórias. Para isso, criamos conjuntos com as melhores características segundo o algoritmo (ou seja, o conjunto de tamanho 1 vai ter a melhor característica, o conjunto de tamanho 2 as duas melhores, etc);
• Geração aleatória – Neste selector geramos 100 conjuntos aleatórios de características por cada tamanho e escolhemos o melhor dentro de cada (ou seja, criamos 100 conjuntos de tamanho 1 e escolhemos o melhor, 100 de tamanho 2 e escolhemos o melhor, etc)
• Simulated Annealing – Neste selector utilizamos o algoritmo de Simulated Annealing para gerar conjuntos de um determinado tamanho. Em cada um desses conjuntos são efectuadas 100 iterações do algoritmo.
5.1. CLUSTERING
Com este método de extracção temos 42 características. Assim sendo, resolvemos estudar os
conjuntos de características gerados por cada técnica no intervalo [1-41].
Imagem 5. Análise das técnicas de selecção de características e redução de dimensionalidade para o
método de extracção Clustering.
Melhores técnicas
Técnica Nº de Características Taxa de Reconhecimento
Nenhuma 41 35% PCA 7 48%
Kruskal-Wallis 30 41% Aleatório 23 49%
SA 38 57%
Como se pode comprovar, todas as técnicas melhoram os resultados em relação às
características iniciais. No entanto, os resultados são bastante baixos.
5.2. ESTATÍSTICAS
Com este método de extracção temos 52 características. Assim sendo, resolvemos estudar os
conjuntos de características gerados por cada técnica no intervalo [1-51].
0
10
20
30
40
50
60
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41
Taxa
de
Re
con
he
cim
en
to
Nº de Características
Clustering
PCA
Kruskal-Wallis
Aleatório
SA
Imagem 6. Análise das técnicas de selecção de características e redução de dimensionalidade para o
método de extracção de Estatísticas.
Melhores técnicas
Técnica Nº de Características Taxa de Reconhecimento
Nenhuma 52 90% PCA 24 90%
Kruskal-Wallis 33 92% Aleatório 36 94%
SA 19 92%
Utilizando estatísticas, os resultados são bastante melhores que com o clustering. Apesar de
não haver ganhos significativos na taxa de reconhecimento, o número de dimensões é
reduzido em todos os casos.
5.3. ESTATÍSTICAS COM JANELAS DE SOBREPOSIÇÃO
Com este método de extracção temos 208 características. Como o número de características é
muito elevado, decidimos restringirmo-nos apenas ao intervalo [1-51].
0
10
20
30
40
50
60
70
80
90
100
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49
Taxa
de
re
con
he
cim
en
to
Nº de Características
Estatísticas
PCA
Kruskal-Wallis
Aleatório
SA
Imagem 7. Análise das técnicas de selecção de características e redução de dimensionalidade para o
método de extracção de Estatísticas com janelas de sobreposição.
Melhores técnicas
Técnica Nº de Características Taxa de Reconhecimento
Nenhuma 208 98% PCA 24 98%
Kruskal-Wallis 48 96% Aleatório 33 98%
SA 35 98%
Tal como nos resultados anteriores, o ganho é mais evidente na redução do número de
características. Com o PCA, por exemplo, consegue-se reduzir o número de características em
cerca de 900%, de 208 para apenas 24, mantendo a taxa de reconhecimento nos 98%.
6. CLASSIFICADORES De seguida são apresentados os vários classificadores utilizados. Nesta secção iremos também
efectuar alguns testes para identificar quais os seus parâmetros óptimos para este trabalho.
6.1. REDES NEURONAIS
Foram testados diferentes topologias de redes neuronais (RBF, com diversos tipos de atraso e
ligações para a frente e para trás). Dentro de cada tipo foram feitos alguns testes para
diferentes valores dos parâmetros, nomeadamente para diferentes valores dos neurónios na
cama escondida. Nenhuma das topologias testadas revelaram resultados satisfatórios
0
20
40
60
80
100
120
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49
Taxa
de
re
con
he
cim
en
to
Nº de Características
Estatísticas c/Janela
PCA
Kruskal-Wallis
Aleatório
SA
(resultados sempre inferiores a 50%). De modo a ser possível estabelecer comparação foi
usada uma rede com retropropagação. Usando esta topologia foram efectuados testes de
modo a determinar qual o melhor número de neurónios na camada intermédia (ver Imagem
8). Oito foi o número que nos permitiu obter melhores resultados usando 14 características
(após ter sido aplicado PCA). Estas 14 características foram determinadas empiricamente.
Imagem 8. Escolha do melhor número de neurónios na camada escondida.
6.2. SUPPORT VECTOR MACHINES
As SVMs têm revelado desde a sua criação excelente mais valia na área de reconhecimento de
padrões. Estas foram criadas inicialmente para lidar com problemas binárias, por isso neste
trabalho foi necessário recorrer a uma adaptação das mesmas, o One-Against-One com
Majority Voting. De modo a aplicar esta abordagem foram testadas duas livrarias, a STPRTool4
e a libSVM5. Os resultados produzidos por ambas foram bastante semelhantes, optamos pela
primeira visto que na altura da decisão já tínhamos efectuado maior número de testes com a
mesma.
Para o efeito foram usadas as funções oaosvm, com mvsvmclass (o mesmo resultado pode ser
obtido com aaosvm (All-Against-One) e svmclass), isto para o caso das funções fornecidas com
o STRPTool. Quando à libSVM o processo é automático.
Os parâmetros mais importantes numa SVM são:
4 http://cmp.felk.cvut.cz/cmp/software/stprtool/
5 http://www.csie.ntu.edu.tw/~cjlin/libsvm/
• Tipo de kernel - No presente trabalho foi utilizado RBF, por se adaptar bem à não-
linearidade do problema.
• Cost e gamma - De seguida são explicados um conjunto de testes efectuados de modo
a ajustar o melhor valor tanto para o Cost como para o γ (gamma) (a fronteira é
definida por exp(-γ *|u-v|^2) ).
6.2.1 SELECÇÃO DO COST E GAMMA (ARG)
Foram efectuados quatro testes, dois usando o método holdout e dois usando o método
leaveOneOut. De salientar que no caso dos algoritmos implementados na STPRTool o
argumento arg representa o valor usualmente designado por gamma. A utilização destes dois
testes permitiu-nos avaliar a influência destes dois parâmetros (C e arg) na capacidade de
generalização. No primeiro teste de ambos (Imagem 9 e 11) procurou-se analisar de uma
forma grosseira quais os melhores valores. Posteriormente fez-se uma pesquisa mais fina
(Imagem 10 e 12) pelos melhores valores (entre 10 e 30 para ambos os parâmetros). Estes
testes levaram-nos a concluir que os melhores valores são, 29 para o Cost e 10 para o arg.
Imagem 9. Resultados do Holdout para selecção do melhor C e arg (pesquisa grosseira).
Imagem 10. Resultados do Holdout para selecção do melhor C e arg (pesquisa fina).
Imagem 11. Resultados do LeaveOneOut para selecção do melhor C e arg (pesquisa grosseira).
Imagem 12. Resultados do LeaveOneOut para selecção do melhor C e arg (pesquisa fina)
6.3. K-NEAREST NEIGHBOR
O K-Nearest Neighbor (KNN) é um algoritmo de reconhecimento de padrões que usa a
distância para atribuir um determinado ponto a um grupo. Na Imagem 13 pode observar-se os
vários valores de K que foram testados para o método de avaliação Holdout. Na Imagem 14 é
possível avaliar o comportamento do K para o método de avaliação LeaveOneOut. Neste foi
avaliada a performance excluindo cada uma das pessoas, tendo sido calculados a média e o
desvio padrão de todos. Tendo em conta ambos os gráficos foi possível concluir que o melhor
valor para K é 4. Foram usadas as funções, knnrule e knnclass disponibilizadas pela STPRTool.
Imagem 13. Variação do valor K do K-Nearest Neighbor com o método Holdout.
Imagem 14. Variação do valor K do K-Nearest Neighbor com o método LeaveOneOut.
6.4. OUTROS
Durante a escolha de classificadores testámos outros algoritmos que nos pareceram
interessantes. Utilizámos Árvores de Decisão utilizando a função classregtree da Statistics
Toolbox. No entanto, apesar de dar bons resultados na avaliação do conjunto de treino, no
conjunto de teste produziu um comportamento aleatório, com resultados muito abaixo dos
expectáveis. Testámos também HMMs, bastante usadas em alguns artigos. No entanto, este
tipo de classificador é muito exigente computacionalmente e algo complexo de implementar.
Apesar disto foi implementada uma versão em Matlab do código Java disponível em 6. No
entanto não foram obtidos bons resultados (este código encontra-se no ficheiro wii_hmm.m).
Por último testamos o classificador de Bayes incluído na TPPRTool, no entanto não
aprofundamos os testes porque este revelou ter uma performance perto do aleatório (ver
código classifier_BAYES.m).
Havia também outros classificadores que gostaríamos de ter testado, alguns exemplos são
NEAT (Neuroevolution of augmenting topologies), SOM (Self Organizing Map) e HTM
(Hierarchical Temporal Memory), no entanto tivemos de nos cingir aqueles cujo nosso
conhecimento era mais aprofundado devido às restrições temporais.
7. EXPERIMENTAÇÃO De seguida são apresentados os resultados de várias experiências que desenhamos para aferir
a qualidade dos classificadores construídos. De fora desta experimentação, devido aos maus
resultados demonstrados anteriormente, deixámos o método de extracção de Clustering, bem
como as Redes Neuronais. Assim sendo, apresentamos os resultados usando SVMs e KNN com
os métodos de extracção de características de Estatísticas com e sem janelas de sobreposição.
Os parâmetros utilizados são os encontrados nas secções 5 e 6.
7.1. EXPERIÊNCIA 1 (HOLDOUT)
Nesta experiência, foi escolhida, para cada utilizador e para cada classe, uma demonstração
para teste e as restantes para treino. Esta divisão corresponde a 78% das demonstrações para
treino, e as restantes 22% para teste. Os resultados podem ser verificados na seguinte tabela:
6 http://www.wiigee.org
S/ J
anel
a Kruskal
AleatorioC
/ Ja
nel
a
Kruskal
Aleatorio
Imagem 15. Resultados de classificação do conjunto de teste da Experiência 1
Na Imagem 15 pode-se verificar um gráfico comparativo com os resultados apenas para o
conjunto de teste. Como se pode comprovar, o método de extracção de características com
janelas de sobreposição obtém resultados superiores. Em relação aos classificadores, ambos
têm resultados muito idênticos. Os melhores resultados, de cerca de 98%, são atingidos por
ambos os classificadores utilizando todas as 208 características ou no conjunto aleatório
na secção 5.3. A SVM com PCA também atinge esse valor.
7.2. EXPERIÊNCIA 2 (INDIVIDUAL)
Nesta experiência decidimos testar a capacidade dos vários classificadores e técnicas de
extracção/selecção/redução de características para lidar com casos onde
Para isso, escolhemos todas as demonstrações de um utilizador e seguimos uma abordagem
idêntica na selecção de treino/teste da experiência anterior: seleccionamos uma
SVM KNN
Train Test Train Test
All 99.44 87.76 98.87 91.84
PCA 99.44 85.71 98.87 89.8
Kruskal-Wallis 99.44 87.76 98.31 89.8
Aleatorio 99.44 93.88 99.44 91.84
SA 97.74 89.8 98.87 89.8
All 100 97.96 98.87 97.96
PCA 100 97.96 98.87 91.84
Kruskal-Wallis 100 91.84 95.48 91.84
Aleatorio 100 97.96 96.05 97.96
SA 99.44 95.92 98.31 91.84
Resultados de classificação do conjunto de teste da Experiência 1
se verificar um gráfico comparativo com os resultados apenas para o
conjunto de teste. Como se pode comprovar, o método de extracção de características com
eposição obtém resultados superiores. Em relação aos classificadores, ambos
têm resultados muito idênticos. Os melhores resultados, de cerca de 98%, são atingidos por
ambos os classificadores utilizando todas as 208 características ou no conjunto aleatório
na secção 5.3. A SVM com PCA também atinge esse valor.
(INDIVIDUAL)
Nesta experiência decidimos testar a capacidade dos vários classificadores e técnicas de
extracção/selecção/redução de características para lidar com casos onde haja poucos dados.
Para isso, escolhemos todas as demonstrações de um utilizador e seguimos uma abordagem
idêntica na selecção de treino/teste da experiência anterior: seleccionamos uma
Test
91.84
89.8
89.8
91.84
89.8
97.96
91.84
91.84
97.96
91.84
Resultados de classificação do conjunto de teste da Experiência 1.
se verificar um gráfico comparativo com os resultados apenas para o
conjunto de teste. Como se pode comprovar, o método de extracção de características com
eposição obtém resultados superiores. Em relação aos classificadores, ambos
têm resultados muito idênticos. Os melhores resultados, de cerca de 98%, são atingidos por
ambos os classificadores utilizando todas as 208 características ou no conjunto aleatório criado
Nesta experiência decidimos testar a capacidade dos vários classificadores e técnicas de
haja poucos dados.
Para isso, escolhemos todas as demonstrações de um utilizador e seguimos uma abordagem
idêntica na selecção de treino/teste da experiência anterior: seleccionamos uma
demonstração de cada classe para teste, e as restantes para treino. As
escolha treino/teste são idênticas à experiencia anterior, só que desta vez os dados são em
menor número (são apenas de um utilizador). Repetimos este procedimento para os 7
utilizadores disponíveis. Na tabela seguinte é mostrado a média d
S/ J
anel
a
All
PCA
Kruskal
Aleatorio
SA
C/
Jan
ela
All
PCA
Kruskal
Aleatorio
SA
Imagem 16. Resultados de classificação do conjunto de teste da Experiência 2
correspondem à média dos vários utilizadores. As linhas acima das barras dos valores correspondem ao
Como se pode comprovar pela Imagem 16, o método de extracção sem janelas de
sobreposição obteve melhores resultados. Este resultado pode confirmar as nossa
expectativas que quanto menor for o numero de
número de características alvo. Mais uma vez os dois classificadores tiveram resultados muito
idênticos, com uma ligeira vantagem para as SVMs. Dentro do extractor
demonstração de cada classe para teste, e as restantes para treino. As
escolha treino/teste são idênticas à experiencia anterior, só que desta vez os dados são em
menor número (são apenas de um utilizador). Repetimos este procedimento para os 7
utilizadores disponíveis. Na tabela seguinte é mostrado a média dos resultados obtidos:
SVM KNN
Train Test Train Test
All 100 91.84 98.73
PCA 100 91.84 98.73
Kruskal-Wallis 100 91.84 96.68
Aleatorio 100 91.84 98.57
SA 100 87.75 96.68
All 100 75.51 94.10
PCA 100 77.55 94.27
Kruskal-Wallis 100 75.51 92.46
Aleatorio 100 79.59 89.97
SA 100 71.43 92.93
Resultados de classificação do conjunto de teste da Experiência 2. Os valores apresentados
média dos vários utilizadores. As linhas acima das barras dos valores correspondem ao
desvio padrão.
Como se pode comprovar pela Imagem 16, o método de extracção sem janelas de
sobreposição obteve melhores resultados. Este resultado pode confirmar as nossa
expectativas que quanto menor for o numero de utilizadores no treino, menor será também o
número de características alvo. Mais uma vez os dois classificadores tiveram resultados muito
idênticos, com uma ligeira vantagem para as SVMs. Dentro do extractor de características sem
percentagens de
escolha treino/teste são idênticas à experiencia anterior, só que desta vez os dados são em
menor número (são apenas de um utilizador). Repetimos este procedimento para os 7
os resultados obtidos:
Test
83.67
83.67
83.67
85.71
85.71
81.63
81.63
71.43
73.47
71.43
Os valores apresentados
média dos vários utilizadores. As linhas acima das barras dos valores correspondem ao
Como se pode comprovar pela Imagem 16, o método de extracção sem janelas de
sobreposição obteve melhores resultados. Este resultado pode confirmar as nossas
treino, menor será também o
número de características alvo. Mais uma vez os dois classificadores tiveram resultados muito
de características sem
janelas, todos os métodos de selecção/redução de características tiveram resultados muito
idênticos.
7.3. EXPERIÊNCIA 3 (LEAVEONEOUT)
Nesta experiência decidimos testar a capacidade de generalização dos vários classificadores.
Para isso, o conjunto de teste é constituído por todas as demonstrações de um utilizador, e o
conjunto de treino pelos restantes utilizadores (leave
todos os utilizadores disponíveis. Na tabela seguinte podemos verificar a
obtidos:
S/ J
anel
a
All
PCA
Kruskal
Aleatorio
SA
C/
Jan
ela
All
PCA
Kruskal
Aleatorio
SA
janelas, todos os métodos de selecção/redução de características tiveram resultados muito
(LEAVEONEOUT)
Nesta experiência decidimos testar a capacidade de generalização dos vários classificadores.
isso, o conjunto de teste é constituído por todas as demonstrações de um utilizador, e o
conjunto de treino pelos restantes utilizadores (leave-one-out). Este teste foi repetido para
todos os utilizadores disponíveis. Na tabela seguinte podemos verificar a média dos resultados
SVM KNN
Train Test Train Test
All 99.04 60.31 98.68
PCA 98.89 61.23 98.68
Kruskal-Wallis 97.64 59.71 97.93
Aleatorio 98.45 62.95 98.68
SA 96.97 65.40 98.24
All 100 70.67 99.04
PCA 99.92 70.82 99.11
Kruskal-Wallis 99.78 55.56 96.38
Aleatorio 100 67.13 97.34
SA 99.78 65.67 98.09
janelas, todos os métodos de selecção/redução de características tiveram resultados muito
Nesta experiência decidimos testar a capacidade de generalização dos vários classificadores.
isso, o conjunto de teste é constituído por todas as demonstrações de um utilizador, e o
out). Este teste foi repetido para
média dos resultados
Test
53.26
54.53
56.26
51.15
58.21
70.99
71.99
55.95
62.90
65.99
Imagem 17. Resultados de classificação do conjunto de teste da Experiência 3. Os valores apresentados
correspondem à média dos vários utilizadores. As linhas acima das barras dos valores correspondem ao
desvio padrão.
Como seria de esperar, os resultados neste tipo de testes não são tão bons quanto os da
Experiência 1. Este facto demonstra que é mais difícil classificar gestos efectuados por um
utilizador desconhecido ao classificador. No entanto, na extracção de características com
janelas de sobreposição, as SVMs e o KNN atingem resultados médios na ordem dos 70%
utilizando PCA ou todas as 208 características. Efectuamos mais alguns testes a tentar
melhorar estes resultados. No entanto, não conseguimos arranjar nenhum classificador que
mantivesse a regularidade dos aqui demonstrados (muitos melhoravam os resultados em
relação a um certo utilizador, mas depois pioravam os restantes).
78.4. ANÁLISE FINAL DE RESULTADOS
Após uma fase inicial de experimentação, onde não conseguíamos ter bons resultados de
classificação, os resultados finais apresentados neste trabalho estão dentro das nossas
expectativas. Na Experiência 1 temos quase 100% de taxa de classificação no conjunto de
teste, o que nos faz crer que será difícil atingir melhores resultados sem sacrificar muito mais a
capacidade de generalização do classificador. Na Experiência 2 comprovamos que, mesmo com
poucos dados, quase todos os classificadores conseguem fazer uma classificação razoável. A
Experiência 3 era obviamente mais difícil, principalmente porque o conjunto de teste era
razoavelmente pequeno. Se tivéssemos muito mais utilizadores, provavelmente o sistema
generalizaria melhor, mesmo a classificar demonstrações de utilizadores que não tivessem
participado no treino. Resultados de cerca de 70%, comparativamente aos resultados quase
aleatórios que obtínhamos inicialmente, parece-nos razoável.
Após uma análise de todas as experimentações, decidimos escolher as SVMs, com extracção
de características utilizando janelas com 50% de sobreposição, e redução de
dimensionalidade utilizando PCA, como o nosso melhor classificador.
8. CONCLUSÃO Após a conclusão deste trabalho ficámos com uma noção ainda mais alargada sobre a tarefa
de reconhecimento de padrões. Através de um trabalho interessante e motivador, tivemos a
oportunidade de testar e por em prática muitos dos conhecimentos adquiridos nas aulas
práticas e teóricas. Foi também interessante estudar a bibliografia desta área, reconhecimento
de gestos, sobre a qual tínhamos poucos conhecimentos. Ficámos cientes das capacidades, e
dificuldades, deste tipo de técnicas, que podem alterar drasticamente a maneira como o
humano interage com uma máquina.
Uma das maiores dificuldades durante este trabalho foi o excesso de possibilidades: com
tantos algoritmos, técnicas e ideias, foi difícil focarmo-nos apenas em algumas abordagens,
deixando de parte outras que temos a certeza que também teriam sido muito interessantes.
Mesmo tendo restringido o nosso raio de acção, implementar e testar todas as funcionalidades
descritas neste trabalho foi uma tarefa bastante difícil, e temos a certeza que ainda muito
ficou por fazer. No entanto com as técnicas implementadas foi possível obter bons resultados.
De modo a obter melhores resultados o passo mais importante passaria por ter uma maior
quantidade de dados para treinar os classificadores, um universo de 7 pessoas constitui uma
quantidade bastante reduzida. De modo a reduzir a dimensionalidade poderia ter sido aplicado
ICA de modo a ter em conta a relação entre os três eixos.
BIBLIOGRAFIA [1] T. Schlömer et al., “Gesture recognition with a Wii controller,” Proceedings of the 2nd
international conference on Tangible and embedded interaction, ACM New York, NY, USA,
2008, pp. 11-14.
[2] H.O. Wiggins, “Gesture Recognition of Nintendo Wiimote Input Using an Artificial Neural
Network,” Cognitive Systems, Technical Report, 2008.
[3] M. Rehm, N. Bee, and E. André, “Wave Like an Egyptian — Accelerometer Based Gesture
Recognition for Culture Specific Interactions,” Procedings of HCI 2008 Culture, Creativity,
Interaction, 2008.
[4] L. Kratz, M. Smith, and F.J. Lee, “Wiizards: 3D gesture recognition for game play input,”
Proceedings of the 2007 conference on Future Play, ACM New York, NY, USA, 2007, pp. 209-
212.
[5] A. Gams, P.A. Mudry, and E.P.F. de Lausanne, “Gaming controllers for research robots:
controlling a humanoid robot using a Wiimote,” 2008.
[6] H.J. Lee et al., “WiiArts: creating collaborative art experience with WiiRemote interaction,”
Proceedings of the 2nd international conference on Tangible and embedded interaction, ACM
New York, NY, USA, 2008, pp. 33-36.
[7] A. Shirai, E. Geslin, and S. Richir, “WiiMedia: motion analysis methods and applications
using a consumer video game controller,” Proceedings of the 2007 ACM SIGGRAPH symposium
on Video games, ACM Press New York, NY, USA, 2007, pp. 133-140.
[8] N. Ravi et al., “Activity Recognition from Accelerometer Data,” PROCEEDINGS OF THE
NATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE, Menlo Park, CA; Cambridge, MA;
London; AAAI Press; MIT Press; 1999, 2005, p. 1541.
[9] L. Bao and S.S. Intille, “Activity Recognition from User-Annotated Acceleration Data,”
LECTURE NOTES IN COMPUTER SCIENCE, 2004, pp. 1-17.
[10] S. Wang et al., “Human Activity Recognition with User-Free Accelerometers in the Sensor
Networks,” Neural Networks and Brain, 2005. ICNN&B'05. International Conference on, 2005.
[11] J. Mantyjarvi et al., “Recognizing human motion with multiple acceleration sensors,”
Systems, Man, and Cybernetics, 2001 IEEE International Conference on, 2001.
[12] U. Maurer et al., “Activity recognition and monitoring using multiple sensors on different
body positions,” IEEE International Workshop on Wearable and Implantable Body Sensor
Networks, 2006, pp. 142–145.
[13] J. Yang, J. Wang, and Y. Chen, “Using acceleration measurements for activity recognition:
An effective learning algorithm for constructing neural classifiers,” Pattern Recognition Letters,
vol. 29, Dec. 2008, pp. 2213-2220.