Wednesday, October 1, 2008

Entregue!

Desde o último post, ainda foram feitos novos testes com utilizadores para incluir na dissertação,

que...

foi ontem entregue! :)

Os próximos passos são:
1. Fazer optimizações e ajustes para produzir uma versão final da dll.
2. Preparar a apresentação para a defesa
3. Defender a tese!

Portanto, estamos mesmo a chegar ao fim...

Monday, September 15, 2008

Mais amostras =)

Hoje fiz nova incursão ao IST para recolher amostras para testes.

Consegui arranjar 22 voluntários.

Estamos então na fase em que resta correr o treino e os testes e esperar que os resultados sejam bons...


Notícias em breve!

Wednesday, September 10, 2008

Recolha de Amostras

Acabei de recolher amostras de expressões faciais de utilizadores. No total, consegui 47 pessoas para treinar o demonstrador! 

Depois de recolha de mais resultados para testes, será feita a análise e processamento dos dados.

Saturday, September 6, 2008

Escrita da Dissertação

Desde o último post, tenho estado a dedicar-me à escrita da dissertação... 

Para a semana devo começar (e acabar, espero!) os testes com utilizadores, para proceder à análise dos resultados do trabalho.

Friday, July 18, 2008

Mais uns degraus...

Tenho estado um pouco ausente nos últimos tempos do Blog, mas não do Facial Emoticons:

Desde o último post, em que fechei o código C++ numa dll e fiz o primeiro script em Python, algumas coisas mudaram:

- Uma primeira avaliação dos resultados mostrou que era necessário adicionar novas features por forma a distinguir algumas expressões: de facto, a diferença entre happy e sad, que é uma das mais importantes, nem sempre era evidente ao classificador através do conjunto anterior de features.

- Uma vez que durante o treino do classificador alguns valores de features ficavam a zero entre intervalos adjancentes com muitos hits, o classificador foi alterado para utilizar funções gaussianas.

Com estas alterações foram feitos novos testes, principalmente tendo em conta a expressão happy versus a expressão sad.


Foram feitos ainda alguns melhoramentos ao código no que diz respeito aos classificadores e ajustes dos pesos atribuídos às diferentes features. Com a detecção e correcção de alguns aspectos, conseguiu-se uma hit-rate de aproximadamente 95% na avaliação da expressão sad versus a expressão happy. Em termos de resultados globais entre as duas expressões (tendo em conta estas duas classes), obteve-se uma taxa de sucesso de cerca de 80%.

Em relação às restantes expressões, e de acordo com o modelo probabilístico Bayesiano que decidimos usar, à medida que o número de classes aumenta, a hit-rate baixa, como é característica do próprio modelo probabilístico. Contudo, os resultados globais são promissores, uma vez que a expressão predominante avaliada pelo classificador é a correcta em todos os casos. No que diz respeito à qualidade do classificador, resta fazer a avaliação!

Finalmente (desta vez vou debitar todas as novidades para tentar compensar a minha fraca assiduidade ao blog nos últimos tempos!), estão a ser desenvolvidos dois protótipos, mais uma vez em Python, que pretendem mostrar o funcionamento do projecto. Dentro de pouco tempo farei um post com os screenshots destes.

Neste momento, encontro-me a escrever a dissertação, tentando focar essencialmente nesta primeira versão o trabalho relacionado e o que tem vindo a ser desenvolvido.

Monday, May 19, 2008

Facial Emoticons Versão Library

Por forma a poder utilizar-se a detecção de expressões faciais por aplicações externas, e já pensando na utilização pela interface a desenvolver, tranformei o projecto já existente numa biblioteca dinâmica.

Adicionalmente, foi acrescentada à dll uma funcionalidade para poderem obter-se as features existentes numa imagem.

Como definimos que o desenvolvimento da interface e de outras aplicações para testes e demonstração seria em Python, foi necessário adaptar esta biblioteca para a sua utilização pelo Python. Para tal, recorri às bibliotecas Boost, que permitem criar um wrapper que funciona como proxy entre o Python e a dll desenvolvida em C++.

Finalmente, foi criado um script em Python que, dada uma directoria, processa todas as imagens, devolvendo o conjunto de valores correspondentes às features identificadas, para posterior processamento e geração de gráficos que auxiliem a visualização das variações dos elementos faciais.

Sunday, May 4, 2008

Modelo elástico robusto

Depois de o modelo estar a fazer uma boa adaptação nos casos em que encontra correctamente as features, foi necessário garantir uma conclusão aceitável para o reconhecimento, mesmo quando alguns elementos não são detectados.

Desta forma, é feita uma adaptação progressiva do modelo às features que vão sendo detectadas e, caso alguma não seja identificada, é utilizada a estimativa do modelo adaptado.

Na figura seguinte, o caso extremo em que não é encontrado nenhum elemento, é estimado um conjunto de pontos, de acordo com o modelo elástico e a partir das características métricas do rosto.


Nestas duas imagens, é apresentada a estimativa adaptada após a identificação dos olhos, seguida do resultado final já com as features correctamente identificadas.





Como um exemplo de detecção de variação de expressões, pode ver-se na imagem abaixo a adaptação do modelo à localização das sobrancelhas.