técnicas de reconhecimento de padrões - student.dei.uc.ptpcoliv/reports/trp_wiimote.pdf · gestos...

24
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

Upload: lexuyen

Post on 13-Feb-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

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.

[14] I. Guyon and A. Elisseeff, “An introduction to variable and feature selection,” The Journal

of Machine Learning Research, vol. 3, 2003, pp. 1157-1182.