Felipe Breve Siola
Desenvolvimento de um software
para reconhecimento de sinais em LIBRAS
através de vı́deo
Trabalho submetido à Universidade Federal do ABC como
parte dos requisitos para a conclusão do Bacharelado em
Ciência da Computação.
Santo André
2010
Felipe Breve Siola
Desenvolvimento de um software
para reconhecimento de sinais em LIBRAS
através de vı́deo
Trabalho submetido à Universidade Federal do ABC como
parte dos requisitos para a conclusão do Bacharelado em
Ciência da Computação.
Profo Dro Francisco José Fraga da Silva
Orientador
Centro de Engenharia, Modelagem e Ciências Sociais
Aplicadas - UFABC
Santo André
2010
Resumo
A LÍngua BRAsileira de Sinais - LIBRAS - é a forma de comunicação utilizada pela
comunidade surda brasileira. Esta é uma lı́ngua espaço-visual estruturada com regras
morfológicas, sintáticas e semânticas próprias. Para o reconhecimento dos sinais sendo
realizados por um intérprete de lı́nguas de sinais é necessário levar em consideração a
posição das mãos com relação ao corpo enquanto o sinal é realizado, a configuração das
mãos durante a realização do sinal, a expressão facial do intérprete, além de outras caracterı́sticas. Esta grande quantidade de informações e a maneira como elas se relacionam são
alguns dos principais fatores que dificultam a criação de um sistema de reconhecimento de
lı́nguas de sinais. Este trabalho tem como propósito apresentar a fundamentação teórica,
o desenvolvimento e os resultados obtidos durante a criação de um software capaz de
reconhecer sinais em LIBRAS realizados de forma isolada e gravados em vı́deos digitais.
iii
Sumário
1 Introdução
1.1
1
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Lı́nguas de Sinais
2
4
2.1
A LÍngua BRAsileira de Sinais - LIBRAS . . . . . . . . . . . . . . . . . . .
5
2.2
Representando Lı́nguas de Sinais . . . . . . . . . . . . . . . . . . . . . . .
7
2.2.1
Sistema SignWriting . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.2.2
Sistema de Glosas . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3 Processamento de Imagens
10
3.1
Imagens Digitais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2
Vı́deos Digitais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3
Modelo de cor HSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4
Histograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.5
Segmentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.6
Backprojection
3.7
Momentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.8
Algoritmo Mean Shift
3.9
Algoritmo CamShift
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.10 OpenCV: Open Computer Vision Library . . . . . . . . . . . . . . . . . . . 20
3.11 Processamento de Imagens e Lı́nguas de Sinais . . . . . . . . . . . . . . . . 21
4 Reconhecimento de Gestos
23
4.1
Processos de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2
Modelos Ocultos de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2.1
Definição Formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
iv
4.2.2
4.3
Problemas relacionados aos HMMs . . . . . . . . . . . . . . . . . . 27
4.2.2.1
O problema da Avaliação . . . . . . . . . . . . . . . . . . 27
4.2.2.2
O problema da Decodificação . . . . . . . . . . . . . . . . 28
4.2.2.3
O problema do Aprendizado . . . . . . . . . . . . . . . . . 29
Ferramentas Computacionais . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.1
HTK: Hidden Markov Models Toolkit . . . . . . . . . . . . . . . . . 31
4.3.2
GART: Gesture and Activity Recognition Toolkit . . . . . . . . . . . 31
5 Desenvolvimento do Software
5.1
32
Base de Vı́deos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.1.1
Restrições com Relação aos Vı́deos . . . . . . . . . . . . . . . . . . 32
5.2
Estrutura Geral do Software . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3
Módulo de Processamento de Vı́deo . . . . . . . . . . . . . . . . . . . . . . 34
5.3.1
Pré-processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3.2
Segmentação da Imagem . . . . . . . . . . . . . . . . . . . . . . . . 35
5.3.3
Vetor de Caracterı́sticas . . . . . . . . . . . . . . . . . . . . . . . . 38
5.4
Módulo de Reconhecimento de Sinais . . . . . . . . . . . . . . . . . . . . . 39
5.5
Execução do Software
5.6
Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6 Considerações Finais
45
Referências Bibliográficas
47
v
Capı́tulo 1
Introdução
A LÍngua BRAsileira de Sinais - LIBRAS - é a forma de comunicação utilizada pela
comunidade surda brasileira. Trata-se de uma lı́ngua de sinais completamente estruturada,
com suas próprias e bem definidas regras morfológicas, sintáticas e semânticas. No ano
de 2002, esta passou a ser oficialmente reconhecida como meio legal de comunicação, e
ficou determinado que professores, educadores especiais e fonoaudiólogos deveriam ser
capacitados a se comunicar tanto em Português como em LIBRAS 1 .
Segundos dados do IBGE, existem no Brasil cerca de seis milhões de pessoas portadoras
de deficiências auditivas em geral, sendo que destas, cerca de 170 mil são completamente
surdas. Para a maior parte destas pessoas a lı́ngua natural principal utilizada para sua
comunicação é a LIBRAS e não o Português. Pelo fato das lı́nguas de sinais não serem
meras transcrições de lı́nguas faladas, é compreensı́vel a dificuldade de comunicação existente entre pessoas não surdas e surdas, mesmo que por meio da escrita, uma vez que
pessoas surdas podem não ser alfabetizadas em Português.
Uma ferramenta que constitui um passo inicial para facilitar a comunicação entre
pessoas surdas e não surdas são os dicionários bilı́ngues, de lı́nguas orais e lı́nguas de
sinais [Capovilla e Raphael 2001] [Lira e Souza 2008]. Um segundo passo é a existência
de uma ferramenta de software que mapeia as palavras e frases em Português Brasileiro
para os sinais correspondentes em LIBRAS [Rybená 2010]. Ferramentas desta natureza
colocam os surdos em uma posição passiva na sociedade, uma vez que as mensagens
em Português são disponibilizadas em LIBRAS, mas não o contrário. Ferramentas que
realizam a tradução no sentido contrário, de lı́nguas de sinais para lı́nguas faladas, são
1
Lei federal número 10.436 de 24 de abril de 2002
1
escassas e ainda em desenvolvimento [Stein et al. 2007] [Souza e Vieira 2006] [Pistori
e Neto 2003]. A grande dificuldade na criação destas ferramentas está na complexidade
ligada ao problema, tanto no âmbito linguı́stico como no âmbito computacional.
Com relação ao âmbito linguı́stico, a maior dificuldade se dá devido a falta de estudo
sobre as lı́nguas de sinais, neste caso a LIBRAS [McCleary e Viotti 2007]. No âmbito
computacional, a interpretação de uma frase em LIBRAS exige desde técnicas de processamento de imagens até técnicas avançadas de inteligência artificial para classificação de
dados e tradução [Begun e Hasanuzzaman 2009] [Morrissey 2008].
Dado esta grande dificuldade de criação de uma ferramenta com este propósito, temos
que uma possı́vel abordagem para seu desenvolvimento seria a divisão do sistema em
blocos. O modelo proposto para o sistema é o apresentado na Figura 1.1. Os vı́deos com
os sinais em LIBRAS seriam os dados de entrada sistema.
O primeiro bloco do sistema consistiria no processamento do vı́deo de entrada para
retirada de informações relevantes ao conteúdo do mesmo. Neste passo, são utilizadas
técnicas de processamento de vı́deo, como reconhecimento de objetos, remoção de fundo,
detecção de movimento, etc. O segundo bloco do sistema é o responsável pela classificação
dos dados retirados dos vı́deos em uma forma escrita de LIBRAS. Para realizar esta tarefa,
as principais técnicas utilizadas na atualidade são as técnicas de redes neurais artificiais
e os Modelos Ocultos de Markov. Esta forma escrita de LIBRAS seria então enviada
ao terceiro bloco do sistema, responsável por realizar a tradução da frase em LIBRAS
escrita para Português Brasileiro. Neste passo, podem ser utilizadas técnicas de tradução
automática, como tradução estatı́stica, baseada em regras, entre outras. A frase então
traduzida é enviada ao quarto e último bloco, responsável por gerar áudio a partir do texto.
Este trabalho em especı́fico consiste no estudo e desenvolvimento dos primeiro e segundo
blocos do sistema, responsáveis pelo processamento do vı́deo de entrada e classificação do
sinal LIBRAS, respectivamente.
1.1
Objetivos
Este projeto de graduação teve como objetivo geral o desenvolvimento de um software
capaz de processar e classificar sinais LIBRAS em vı́deos digital para uma forma escrita,
com o intuito de realizar uma possı́vel futura tradução para o Português Brasileiro. Para
a realização deste objetivo, o objetivo principal foi divido em quatro (04) objetivos especı́ficos.
2
Sistema de Tradução de LIBRAS para Português
Vídeo
Processamento
de vídeo
Dados do
vídeo
Classificação
dos dados
LIBRAS
escrita
Tradução
Português
escrito
Texto para Voz
Português
falado
Figura 1.1: Modelo em blocos do sistema proposto para tradução de sinais LIBRAS em
vı́deo para o Português Brasileiro falado.
O primeiro objetivo especı́fico refere-se ao estudo da LIBRAS, tanto com relação a
sua estrutura em caráter linguı́stico como suas representações computacionais e escritas
envolvendo também um levantamento do estado da arte de sistemas computacionais que
trabalhem com LIBRAS. Este estudo teve como objetivo melhor compreender o modelo
que deverá ser criado para representação e processamento dos dados presentes no sistema
a ser desenvolvido.
O segundo objetivo especı́fico foi o estudo das técnicas de processamento de vı́deo
existentes e o estado da arte para extração de informações relevantes para reconhecimento
de sinais e gestos de uma forma geral.
O terceiro objetivo foi o estudo sobre técnicas de inteligência artificial utilizados na
atualidade para classificação de dados de uma forma geral e as possı́veis utilizações para
classificação de gestos extraı́dos de vı́deos. O quarto objetivo foi à implementação e
validação do sistema como um todo.
3
Capı́tulo 2
Lı́nguas de Sinais
Lı́nguas de sinais naturais não são somente transcrições de lı́nguas faladas. Trata-se de
lı́nguas com estruturas próprias, e que assim como as lı́nguas faladas, apresentam uma
evolução constante, adequando-se a necessidade de seus utilizadores. Todas as lı́nguas
de sinais existentes possuem regras léxicas, sintáticas e semânticas próprias e utilizam de
recursos não disponı́veis em lı́nguas faladas, como por exemplo, espacialidade [McCleary
e Viotti 2007] [Pistori e Neto 2003].
Lı́nguas de sinais podem ser comparadas a lı́nguas faladas no que diz respeito à expressividade e flexibilidade, fatores dificilmente representáveis em lı́nguas escritas. Devido
a esta flexibilidade, pessoas surdas, que utilizam lı́nguas de sinais, conseguem comunicarse muito mais rapidamente através destas do que através de lı́nguas escritas, fato que
acontece também entre lı́nguas orais e lı́nguas escritas. Desta forma, muitos dos estudos na área de lı́nguas orais se aplicam também a lı́nguas de sinais [McCleary e Viotti
2007] [Pistori e Neto 2003].
As lı́nguas de sinais não são universais. A Ethnologue 1 cataloga atualmente um total
de 130 lı́nguas de sinais em todo o mundo. Desta forma, uma pessoa brasileira surda que
se comunica utilizando LIBRAS não é capaz de se comunicar com uma pessoa americana
surda que utiliza a ASL (American Sign Language). Dentro de um mesmo paı́s é comum
a utilização de diferentes dialetos em uma mesma lı́ngua de sinais, fato muito comum em
paı́ses territorialmente grandes, como o Brasil. É possı́vel ainda, que mais de uma lı́ngua
de sinais seja utilizada pela mesma comunidade surda [Pistori e Neto 2003].
A comunicação em lı́nguas de sinais faz uso do corpo do sinalizador como um todo, ou
1
http://www.ethnologue.com
4
seja, um sinal realizado não envolve somente movimentos das mãos, mas também movimentos de cabeça, tronco, braços e expressões faciais [Pistori e Neto 2003]. A forma com
que o corpo se movimenta pode determinar ainda a intensidade do que esta sendo transmitido. Desta forma, o reconhecimento computacional deste tipo de lı́ngua se tornam
extremamente complexos devido tanto a grande variedade de sinais que podem ser realizados quanto a grande variedade de formas que estes podem ser realizados. No entanto,
em muitos casos é possı́vel determinar qual o sinal sendo realizado simplesmente avaliando
a posição e movimentação das mãos com relação ao corpo [Fialho 2004].
A Figura 2.1 apresenta uma representação gráfica do espaço de sinalização utilizado
por pessoas que utilizam-se de lı́nguas de sinais. É possı́vel verificar que este espaço
de sinalização, requer que as ferramentas computacionais sejam capazes determinar não
somente a localização em duas dimensões das mãos, mas sim a localização espacial em
três dimensões das mãos e de todo o corpo do intérprete [Morrissey 2008].
Figura 2.1: Espaço de sinalização utilizado por um intérprete de lı́nguas de sinais. Retirado de [Morrissey 2008].
2.1
A LÍngua BRAsileira de Sinais - LIBRAS
A LÍngua BRAsileira de Sinais - LIBRAS - é a forma de comunicação oficial utilizada pela
comunidade surda brasileira. Trata-se de uma lı́ngua natural de sinais completamente estruturada, com suas próprias e bem definidas regras morfológicas, sintáticas e semânticas,
com origem na lı́ngua de sinais francesa [Capovilla e Raphael 2001].
No ano de 2002, esta passou a ser oficialmente reconhecida como meio legal de comunicação, e ficou determinado que professores, educadores especiais e fonoaudiólogos
5
deveriam ser capacitados a se comunicar tanto em Português como em LIBRAS 2 . Segundo dados do IBGE, existem no Brasil cerca de seis milhões de pessoas portadoras de
deficiências auditivas em geral, sendo que destas, cerca de 170 mil são completamente
surdas. Para a maior parte destas pessoas a lı́ngua natural principal utilizada para sua
comunicação é a LIBRAS.
Assim como em todas as lı́nguas de sinais, a LIBRAS é formada de um conjunto
de formas básicas para as mãos, chamadas de configurações. É estimado que exista em
LIBRAS um total de 46 configurações. Para a representação do alfabeto, por exemplo,
são utilizadas 20 configurações estáticas, ou seja, que não exigem movimentos durante
a sinalização, e 6 configurações dinâmicas, ou seja, exigem movimentação da mãos para
representação (correspondentes as letras h, j, k, x, y, e z). A Figura 2.2 apresenta as
20 configurações estáticas que representam algumas das letras do alfabeto em LIBRAS
[Pistori e Neto 2003].
Figura 2.2: Configurações estáticas que representam algumas das letras do alfabeto em
LIBRAS. Retirado de [Pistori e Neto 2003].
2
Lei federal número 10.436 de 24 de abril de 2002
6
Estas configurações do alfabeto, além de utilizadas para soletração de palavras, são comumente utilizadas para sinalização palavras em LIBRAS que não possuem sinal próprio,
como por exemplo, palavras estrangeiras e nomes pessoais. As palavras em LIBRAS que
possuem sinal próprio são representadas através da mistura de configurações das mãos e
do posicionamento destas em relação ao corpo. A Figura 2.3 apresenta um exemplo de
gravura utilizada em dicionários bilı́ngues para demonstração da execução de um sinal,
no caso o sinal sendo representado é o da palavra “maça” [Capovilla e Raphael 2001].
Figura 2.3: Exemplo de gravura utilizada em dicionários bilı́ngues para demonstração da
execução do sinal “maça”. Retirado de [Capovilla e Raphael 2001].
2.2
Representando Lı́nguas de Sinais
Para lı́nguas faladas, a única necessidade existente para duas pessoas se comunicarem é a
necessidade de uma conseguir escutar a outra. Para a comunicação entre pessoas através
da lı́ngua de sinais esta necessidade é substituı́da, sendo necessário que uma pessoa seja
capaz de enxergar a outra [Morrissey 2008].
Para a realização de procedimentos computacionais com lı́nguas de sinais, como por
exemplo, tradução ou armazenamento, é necessário uma forma escrita de representação
destas. Um das principais diferenças entre lı́nguas de sinais e lı́nguas faladas está na falta
de padrão para sistemas de escrita. Isto ocorre possivelmente tanto pela falta de estudo
e investimento em lı́nguas de sinais como pela dificuldade de se expressar movimentos do
corpo de forma escrita. Existem diversas formas de escrita de lı́nguas de sinais, sendo
as mais utilizadas o sistema SignWriting e o sistema de glosas [Capovilla e Raphael
2001] [McCleary e Viotti 2007] [Morrissey 2008].
2.2.1
Sistema SignWriting
O sistema de escrita SignWriting é um modelo de escrita de lı́nguas de sinais proposto
por [Sutton 1996], onde através de “gravuras” são representados os movimentos realizados
7
pelo corpo durante a execução do sinal. A Figura 2.4 apresenta a gravura que utiliza o
modelo SignWriting para o sinal “maça” em LIBRAS [Martin 2000] [Capovilla e Raphael
2001].
Figura 2.4: Representação do sinal “maça” em LIBRAS usando o modelo SignWriting.
Retirado de [Capovilla e Raphael 2001].
Esta representação possui como caracterı́stica principal o fato de representar o movimento do corpo realizado durante a sinalização. Contudo, este sistema de escrita requer
do leitor um treinamento prévio tanto do sistema de escrita como da lı́ngua de sinais
em questão, e principalmente, possui pouca utilidade computacional uma vez que são
utilizadas figuras [McCleary e Viotti 2007] [Stein et al. 2007].
Entre os sistemas computacionais que utilizam o SignWritting como sistema de escrita
dos sinais, destaca-se o Sign Web Message apresentado por [Souza e Vieira 2006]. Este
permite ao usuário enviar mensagens via internet, utilizando o sistema como método de
escrita.
2.2.2
Sistema de Glosas
As glosas são sequências de caracteres que representam um sinal. Estas podem ser simples
transcrições de uma lı́ngua escrita, como podem ser a junção de duas ou mais palavras na
lı́ngua escrita para representação do sinal. A glosa MAÇA por exemplo, representa o sinal
para a palavra “maça” em português. Já a glosa COMER PASSADO representa o sinal
para o verbo “comer” conjugado em um determinado tempo verbal do Português [Martin
2000].
Este sistema não leva diretamente em consideração o movimento realizado pelo corpo
para a sinalização. Devido a este fato, questões como intensidade e contexto são perdidas
durante a escrita. Contudo, pelo fato do sinal ser representado somente por uma sequência
de caracteres, muitas vezes transcrições diretas de uma lı́ngua falada, este sistema apresenta uma grande utilidade computacional e facilita o entendimento do que esta sendo
transmitido [McCleary e Viotti 2007] [Stein et al. 2007].
8
Com o intuito de aprimorar o significado das glosas com relação ao contexto do que
está sendo transmitido, [McCleary e Viotti 2007] apresentam uma proposta de glosas
com anotações adicionais. Estas anotações incluem, além da glosa em si, informações
sobre a mão que realiza o sinal, a posição com relação ao corpo, expressões da face,
entre outras caracterı́sticas que podem ser relevantes para compreensão do que está sendo
transmitido. Esta proposta aumenta significativamente a utilização do sistema de glosas
para representação de expressividade durante a sinalização e pode ser utilizada de forma
a facilitar tarefas como a tradução de lı́nguas de sinais, onde muitas vezes o contexto de
um frase apresenta grande relevância para um bom resultado do processo de tradução
[McCleary e Viotti 2007].
São diversos os trabalhos computacionais que utilizam o sistema de glosas para representação de lı́nguas de sinais. [Stein et al. 2007] apresenta um sistema de tradução
completo da ASL (American Sign Language) utilizando o sistema de glosas como intermediário [Stein et al. 2007]. Com relação a LIBRAS, o software Rybená [Rybená 2010]
apresenta um sistema capaz de traduzir Português em sua forma escrita para LIBRAS na
forma de glosas, juntamente com gravuras animadas dos sinais sendo realizados. Devido a
facilidade de manipulação e representação das glosas, este será o sistema de representação
utilizada neste trabalho.
9
Capı́tulo 3
Processamento de Imagens
Sistemas computacionais que utilizam como entrada dados vindos de dispositivos diferentes de teclado e mouse podem ser classificados em duas categorias: intrusivos e nãointrusivos. Sistemas computacionais ditos intrusivos são aqueles que requerem do usuário
a utilização de um dispositivo eletrônico adicional utilizado junto ao corpo do usuário
para obtenção de dados para o processamento, como por exemplo, luvas de rastreamento
(Figura 3.1). Sistemas desta natureza possuem como caracterı́stica o fato de serem pouco
portáteis e necessitarem do usuário a obtenção e utilização de equipamentos especı́ficos.
Contudo, estes equipamentos apresentam uma facilidade na obtenção dos dados e consequentemente diminuem o pré-processamento de dados necessário nas aplicações [Fialho
2004].
Figura 3.1:
Luva de rastreamento de movimento dos dedos.
http://www.souvr.com.
10
Retirado de
Sistemas computacionais não-intrusivos são aqueles que não requerem do usuário o
uso de um dispositivo junto ao corpo, por exemplo, sistemas que utilizam câmeras digitais
para entrada de dados. A principal caracterı́stica destes sistemas é a facilidade de uso
por parte do usuário, que não necessita acostumar-se com dispositivos conectados a seu
corpo. Em contra partida a esta facilidade ao usuário, sistemas não-intrusivos requerem
um processamento adicional para obtenção dos dados de entrada do sistema [Fialho 2004].
Neste trabalho será desenvolvido um sistema computacional que pode ser classificado
como parcialmente intrusivo, fazendo uso de câmeras digitais para obtenção dos dados
de entrada do reconhecedor de sinais, mas requerendo do usuário a utilização de luvas
plásticas coloridas. Esta escolha tem como principal objetivo facilitar a etapa de processamento de imagens para extração dos dados de interesse dos vı́deos, como por exemplo,
as posições do rosto e das mãos em cada quadro do vı́deo. Neste Capı́tulo serão apresentados os conceitos essenciais para compreensão das técnicas de processamento de imagens
utilizadas nos Capı́tulos seguintes deste trabalho.
3.1
Imagens Digitais
Uma imagem digital pode ser compreendida como uma matriz finita de elementos chamados pixels. As dimensões desta matriz, juntamente com a quantidade de bits utilizadas
para representação de cada pixel definem a qualidade de uma imagem digital. Estas
caracterı́sticas estão ligadas principalmente a implementação do aparelho que captura a
imagem digital. Câmeras digitais modernas são capazes de captar imagens de até 4000
por 3000 pixels, resultando em imagens de altı́ssima qualidade 1 . [Gonzalez 2010]
Imagens digitais gravadas em tons de cinza são matrizes de pixels, onde o valor de
cada pixel corresponde a intensidade de luminância. Ou seja, caso sejam utilizados 8
bits para representar cada pixel, teremos que a luminância dos pixels podem variar de 0
(preto) até 255 (branco). Em imagens digitais coloridas, no modelo de cores RGB, cada
pixel possui 3 valores associados, sendo um valor para a intensidade da cor vermelha (R),
um valor para a intensidade da cor verde (G) e um valor para a intensidade da cor azul
(B). A combinação destes três valores é capaz de gerar a visualização de qualquer outra
cor [Gonzalez 2010].
É possı́vel utilizar o modelo de cores RGB, ou qualquer outro modelo de cores ndimensional (também chamado n-canais), como matrizes n-dimensionais ou matrizes co1
http://www.sony.pt/product/dsc-w-series/dsc-w210
11
muns, onde cada pixel é representado por 24 bits, por exemplo (8 bits para cada cor de
modelos de 3 dimensões).
Existem diversos modelos de cores para representação digital, como por exemplo, HSV,
HSL, YCbCr, etc., sendo o modelo RGB o principal modelo utilizado em dispositivos de
captura de imagens e o modelo HSV em técnicas de localização de objetos baseado em
cor [Fialho 2004] [Bradski 1998].
3.2
Vı́deos Digitais
Um vı́deo digital, sem áudio, é uma sequência de imagens digitais exibidas cada uma
destas durante um determinado intervalo de tempo. Entre as principais caracterı́sticas de
um vı́deo digital destacam-se:
• Taxa de atualização ou Quadros por segundo (Frames per Second - FPS):
Quantidade de imagens exibidas em um determinado segundo do vı́deo.
• Dimensões: Tamanho do vı́deo a ser apresentado. Geralmente um vı́deo digital
possui as mesmas dimensões das imagens digitais exibidas nele.
A qualidade de um vı́deo digital está ligado principalmente a qualidade das imagens
digitais que o compõe, mas também a sua taxa de atualização. Vı́deo digitais ditos de
alta definição (High-Definition) apresentam dimensões de 1920 por 1080 pixels, com taxa
de atualização igual a 60 quadros por segundo [Gonzalez 2010].
3.3
Modelo de cor HSV
Conforme dito na Seção 3.1, existem diversos modelos de cores para representação digital
de imagens. Um destes modelos, o HSV possui grande utilidade devido ao significado
dado a cada canal do modelo. HSV é o acrônimo para Hue Saturation Value, em português, Matiz Saturação Valor. Este modelo de cores foi inventado em 1974 para suprir
a necessidade de um modelo de cores que fosse capaz de representar bem a cor de um
objeto sem sofrer fortes influências do brilho e luminosidade [Ribeiro 2006].
O modelo de cor HSV pode ser visto como um hexacone, onde o ângulo H com
relação ao eixo horizontal determina a matiz da cor desejada, a distância perpendicular
do centro até a borda determina a saturação S e a distância vertical determina o valor ou
luminosidade V . A Figura 3.2 apresenta o sistema de cores HSV através da visualização
do hexacone [Ribeiro 2006] [Bradski 1998].
12
Figura 3.2: Modelo de cores HSV visto como um hexacone. Retirado de [Bradski 1998].
Para exemplificar a utilidade do modelo HSV no processo de localizar cores semelhantes em imagens digitais, temos que a Figura 3.3a apresenta uma imagem no modelo de
cor RGB. As Figuras 3.3b, 3.3c e 3.3d apresentam esta mesma imagem decomposta respectivamente nos canais Hue, Saturation e Value do modelo HSV. Analisando a Figura
3.3b referente ao canal Hue, é possı́vel observar que cores semelhantes possuem valores
muito próximos neste canal, facilitando assim a tarefa de detecção de regiões de interesse,
por exemplo.
São diversos os trabalhos que utilizam como modelo de cor o HSV com o intuito de
tornar mais simples a segmentação da imagem em regiões definidas por cores conhecidas
[Ribeiro 2006] [Bradski 1998]. Para a realização da transformação dos valores de um pixel
em RGB para o modelo HSV, podem ser utilizadas as Equações 3.1. Neste trabalho, o
modelo de cor utilizado para os quadros de entrada será o HSV.
1
((R
2
− G) + (R − B))
H = arccos p
((R − G)2 + (R − B)(G − B))
min(R, G, B)
,
S =1−3
R−G−B
1
V = (R + G + B).
3
3.4
(3.1)
Histograma
O histograma de uma imagem digital é uma função discreta h(rk ) = nk , onde rk é o
k-ésimo valor de intensidade e nk é o número de pixels da imagem com intensidade rk .
13
(a)
(b)
(c)
(d)
Figura 3.3: (a) Imagem exemplo no modelo RGB; (b) Canal Hue da Figura 3.3a convertida
para o modelo de cor HSV; (c) Canal Saturation da Figura 3.3a convertida para o modelo
de cor HSV; (d) Canal Value da Figura 3.3a convertida para o modelo de cor HSV.
Ou seja, um histograma é um vetor de tamanho igual ao número de possı́veis valores que
um pixel pode assumir. Cada elemento i do vetor contêm o número de vezes que o valor
i aparece imagem [Gonzalez 2010].
A Figura 3.4 apresenta uma imagem digital em tons de cinza e seu respectivo his-
14
tograma. Histogramas são a base para muitas das técnicas de processamento de imagens
atuais, como por exemplo, realce de contornos e detecção de pele humana. Servem também para obtenção de estatı́sticas úteis com relação às imagens sendo processadas. A
partir de um histograma é possı́vel, por exemplo, gerar um modelo para compressão de
imagem ou segmentar uma imagem em diferentes áreas [Gonzalez 2010].
Figura 3.4: Imagem digital em tons de cinza e seu respectivo histograma.
3.5
Segmentação
A segmentação de uma imagem digital é o processo de divisão de uma imagem em diferentes regiões que satisfaçam uma caracterı́stica especial. Estas regiões definem uma nova
imagem binária, de dimensões iguais a da imagem, onde cada elemento pertence ou não
a região. Os algoritmos de segmentação para imagens em tons de cinza são baseados em
duas categorias básicas: descontinuidade e similaridade dos valores de intensidade. Entre
as principais utilizações de segmentações em imagens está a localização de pontos, bordas
e linhas. A partir da detecção destes elementos é possı́vel detectar objetos e calcular áreas
dentro da imagem por exemplo. [Gonzalez 2010]
No contexto deste trabalho, a segmentação de imagens tem um caráter essencial no
processamento dos vı́deos a serem processados. É necessário detectar a localização da
pessoa que está realizando o sinal, a posição das mãos do intérprete, remover informações
sobre o fundo da imagem e outros componentes que não serão úteis durante o processamento.
15
3.6
Backprojection
Dada uma imagem digital e um histograma de uma imagem que contêm um objeto ou
cor desejado, a imagem em tons de cinza produzida a partir desta imagem digital usando
o histograma como uma look-up table é chamada de imagem de backprojection. Se o
histograma é um modelo de densidade de probabilidades, então a imagem gerada será
a distribuição de probabilidades do modelo na imagem original. Em outras palavras, o
backprojection de uma imagem é uma outra imagem digital onde são apresentados os
pixels que tem maior probabilidade de serem semelhantes a cor dos pixels representados
no histograma [Bradski e Kaehler 2008].
Suponha a imagem representada na Figura 3.3a como exemplo. Se selecionarmos uma
pequena janela nesta imagem (Figura 3.5), de modo que os pixels nesta janela sejam todos
semelhantes, podemos construir um histograma (Figura 3.6) desta janela que representará
basicamente a faixa de valores de pixels que estamos interessados. Utilizando a imagem
original e este histograma, a imagem de backprojection (Figura 3.7) apresentará os pixels com maior probabilidade de serem semelhantes aos da janela selecionada. Podemos
então utilizar está imagem gerada, juntamente informações estatı́sticas da imagem, para
localizar facilmente objetos desejados em imagem digitais [Comaniciu e Meer 2002].
Figura 3.5: Janela de interesse sobre a Figura 3.3a.
3.7
Momentos
Os momentos de uma imagem digital permitem calcular propriedades geométricas importantes dos objetos apresentados nestas [Ribeiro 2006]. Para uma imagem digital binária,
temos que os momentos de ordem (p + q) são dados pela Equação 3.2, onde f (x, y) é o
valor do pixel na imagem digital binária (0 ou 1).
mpq =
XX
x
y
16
xp y q f (x, y)
(3.2)
Figura 3.6: Histograma da Figura 3.5 sobre o canal Hue.
Figura 3.7: Backprojection da Figura 3.3a com o histograma apresentado na Figura 3.6.
Caso o objeto desejado seja o único componente da imagem digital, temos que o momento de ordem zero m00 (Equação 3.3) apresenta informações com relação a área ocupada
pelo objeto na imagem. Os momentos de primeira ordem, m10 e m01 (Equações 3.4) apresentam informações com relação ao centro de gravidade do objeto. Já os momentos de
segunda ordem, m11 e m20 e m02 (Equações 3.5), apresentam informações com relação
aos momentos de inércia em relação ao eixo vertical, horizontal e aos dois eixos [Ribeiro
2006].
17
m00 =
XX
x
(3.3)
y
m10 =
XX
m01 =
XX
m11 =
XX
m20 =
XX
x
xf (x, y);
y
x
(3.4)
yf (x, y);
y
x
xyf (x, y)
y
x
m02 =
f (x, y)
x2 f (x, y)
(3.5)
y
XX
x
y 2 f (x, y)
y
Utilizando os valores resultantes dos cálculos do momento zero e do primeiro momento,
podemos calcular o centro de massa (xc , yc ) do objeto apresentado na imagem digital
através das Equações 3.6 [Ribeiro 2006].
m10
m00
(3.6)
m01
yc =
m00
Aproximando o objeto apresentado na imagem digital por uma elipse, podemos calxc =
cular através dos valores do momentos o tamanho dos eixos desta elipse e a orientação
desta. Definimos então θ como o ângulo correspondente entre o eixo maior da elipse e a
horizontal, W como o comprimento do menor semi-eixo da elipse e L como o comprimento
do maior semi-eixo. Para a determinação destes valores, podemos utilizar as Equações
3.7 [Ribeiro 2006].
18
m20
− x2c ,
m00
m11
b = 2(
− xc yc ),
m00
m02
c=
− yc2 ,
m00
b
arctan (a−c)
(3.7)
,
θ=
2
s
p
(a + c − b2 + (a − c)2 )
W =
,
2
s
p
(a + c + b2 + (a − c)2 )
L=
2
A excentricidade (ε) da elipse que envolve o objeto pode ser calculada através tanto dos
a=
valores de a e b como dos valores de W e L (Equação 3.8). O valor da excentricidade da
elipse que envolve o objeto apresenta neste trabalho uma possı́vel maneira de determinar
se a mão de um intérprete está aberta ou fechada e se encontra-se de frente para a câmera
ou de lado.
L
ε=
=
W
3.8
r
a2 − b 2
a2
(3.8)
Algoritmo Mean Shift
O algoritmo Mean Shift é um método iterativo não paramétrico de localização de máximos locais utilizando gradientes ascendentes em uma distribuição de probabilidades. Utilizando uma imagem gerada pelo método backprojection, podemos utilizar este algoritmo
para localização de regiões de interesse em imagens. Os passos de execução do algoritmo
são os seguintes:
1. Determinar um tamanho de janela de busca inicial;
2. Determinar um ponto inicial para a janela de busca;
3. Calcular a localização do ponto com maior densidade (centróide) de probabilidade
na janela;
4. Posicionar o centro da janela no centróide encontrado pelo passo anterior;
5. Repetir os passos 3 e 4 até que haja convergência.
Para a localização do centróide, são utilizadas as Equações apresentadas na Seção 3.7.
A utilização deste algoritmo é válida em situações onde se sabe inicialmente o tamanho
19
desejado da janela e uma boa posição inicial para a mesma. Contudo, muitas vezes estes
valores não são conhecidos, dificultando assim a detecção de objetos em vı́deos onde o
tamanho dos objetos e sua distribuição de probabilidades pode mudar com o passar das
imagens [Bradski 1998] [Bradski e Kaehler 2008].
3.9
Algoritmo CamShift
O algoritmo Continuosly Adaptative Mean Shift (CamShift), proposto por [Bradski 1998]
é baseado no algoritmo Mean Shift, e possui como principal objetivo sanar os problemas
apresentados no Mean Shift com relação ao tamanho fixo da janela de busca e distribuições
de probabilidades dinâmicas. Os passos realizados pelo algoritmo são os seguintes:
1. Selecionar a posição da janela de busca inicial;
2. Realizar o procedimento Mean Shift; armazenar o momento de ordem zero;
3. Redimensionar a janela de busca de acordo com o momento de ordem zero;
4. Realizar os passos 2 e 3 até que haja convergência.
Pelo fato de reposicionar e redimensionar a janela iterativamente, o CamShift tornase invariante a escala, facilitando a localização de objetos em sequências contı́nuas de
imagens onde a câmera ou objeto podem mover-se, tornando-se uma boa solução para o
desenvolvimento deste projeto.
3.10
OpenCV: Open Computer Vision Library
Open Computer Vision Library (OpenCV) é uma biblioteca de visão computacional de
código aberto. Originalmente criada pela Intel utilizando as linguagens de programação
C e C++, a biblioteca está em constante desenvolvimento pela comunidade e possui mais
500 funções relacionadas a processamento de imagens e visão computacional. Atualmente
a biblioteca encontra-se em sua versão 2.1.0. Nesta versão, a biblioteca apresenta interface
para utilização comas linguagens de programação Python e Matlab, por exemplo. Entre os
principais usuários da ferramenta destacam-se Google, IBM, Microsoft, Sony e a própria
Intel [Bradski e Kaehler 2008].
A biblioteca possui, além de uma documentação extensa, uma estrutura interna bem
definida. A Figura 3.8 apresenta a estrutura interna básica da biblioteca. O bloco CV
(Computer Vision) apresenta as funções para a manipulação e processamento de imagens e os algoritmos de visão computacional. O bloco MLL (Machine Learning Library)
20
apresenta implementações de técnicas de aprendizado de máquina. O bloco HighGUI
apresenta funções para geração de interface gráficas com o usuário. Finalmente, o bloco
CXCORE apresenta as estruturas de dados e funções básicas para funcionamento em conjunto dos blocos. Grande parte das técnicas de processamento de imagens apresentadas
nas Seções anteriores apresentam implementação dentro da biblioteca, o que facilita o
desenvolvimento rápido de aplicações complexas baseadas em processamento de imagens
e visão computacional [Bradski e Kaehler 2008].
Figura 3.8: Estrutura interna básica da biblioteca OpenCV. Retirado de [Bradski e
Kaehler 2008].
3.11
Processamento de Imagens e Lı́nguas de Sinais
Devido ao fato das lı́nguas de sinais serem lı́nguas espaço-visuais, a utilização destas em
sistemas computacionais está intimamente ligada ao processamento de imagens digitais.
Entre os trabalhos recentes que envolvem lı́nguas de sinais e processamento de imagens,
destaca-se o trabalho de [Stein et al. 2007] que apresenta um sistema de reconhecimento
da Lı́ngua Americana de Sinais (ASL) utilizando somente técnicas de processamento de
imagens para obtenção dos dados necessários ao reconhecedor. Num mesmo sentido, [Assalehand et al. 2008] apresenta um sistema semelhante para a Lı́ngua de Sinais Arábica,
utilizando técnicas de detecção de movimentos e remoção de fundo de imagens para me21
lhor extração dos dados. Ainda para a Lı́ngua de Sinais Arábica, [Mohandes, Quadri e
Deriche 2007] propõe um trabalho para reconhecimento dos sinais requerendo do usuário
a utilização de luvas coloridas com o intuito de facilitar o processo de localização das mãos
nos vı́deos de entrada.
Com relação a LIBRAS, [Peres et al. 2006] apresenta um trabalho para detecção
de letras sinalizadas usando imagens estáticas somente das mãos do intérprete. Esta
abordagem limita a funcionalidade do reconhecedor a sinais estáticos. [Pistori e Neto 2003]
apresenta um sistema de reconhecimento de sinais em LIBRAS, aprimorado por [Fialho
2004] que utilizam somente imagens das mãos para detecção dos sinais.
22
Capı́tulo 4
Reconhecimento de Gestos
O campo de reconhecimento e classificações de padrões é extremamente extenso e conta
com diversas técnicas avançadas, cada uma com caracterı́sticas próprias que as tornam
mais indicadas para cada tipo de problema. Entre as principais técnicas de classificação
utilizadas em estudos de reconhecimento de lı́nguas de sinais destacam-se as Redes Neurais
Artificiais (RNAs) e os Modelos Ocultos de Markov (Hidden Markov Models - HMMs)
[Peres et al. 2006] [Pistori e Neto 2003].
As RNAs são utilizadas na maioria das vezes para o reconhecimento de sinais estáticos,
onde são analisadas imagens isoladas dos sinais [Peres et al. 2006]. Já para o reconhecimentos de sinais dinâmicos, a grande maioria dos trabalhos na área utilizam-se dos Modelos Ocultos de Markov por sua caracterı́stica temporal e o resultados positivos obtidos
na área de reconhecimento de fala [Pistori e Neto 2003] [Assalehand et al. 2008] [Begun
e Hasanuzzaman 2009].
Utilizando-se dos HMMs para reconhecimento das lı́nguas de sinais, [Westeyn et al.
2003] apresenta um sistema de reconhecimento de sinais da ASL em primeira pessoa,
juntamente com os passos realizados para a criação deste. [Assalehand et al. 2008] e [Begun
e Hasanuzzaman 2009] fazem uso dos Modelos Ocultos de Markov para classificação de
sinais das lı́nguas de sinais arábica e de Bangladesh respectivamente. Com relação a
LIBRAS, [Pistori e Neto 2003] relatam o sucesso na utilização dos Modelos de Markov
para o reconhecimento de sinais em vı́deos que apresentam somente imagens das mãos.
Devido a grande utilização dos Modelos Ocultos de Markov para reconhecimento de
lı́nguas de sinais, esta será a técnica de classificação utilizada neste trabalho. Neste
Capı́tulo será apresentada a teoria básica por trás dos Modelos Ocultos de Markov e
23
softwares que implementam esta técnica de reconhecimento de padrões. Grande parte da
teoria e exemplos apresentados neste Capı́tulo foi extraı́do de [Blunsom 2004] e [Rabiner
1989].
4.1
Processos de Markov
Um processo é dito de Marvok caso trata-se de um fenômeno estocástico que obedece a
propriedade de Markov 1 . A propriedade de Markov refere-se a processos estocásticos em
que a distribuição de probabilidade condicional do estado atual assumida em uma série
de eventos depende somente dos j estados mais recentes. Caso o estado futuro dependa
somente do estado atual (j = 1), o processo é dito de Markov de primeira ordem [Blunsom
2004].
[Starner e Pentland 1995] comentam que apesar da ordem das palavras na ASL não
categorizarem um processo de Markov de primeira ordem, esta aproximação é válida
quando consideradas as posições e orientações das mãos de um intérprete durante o tempo
de sinalização. Da mesma forma podemos fazer esta aproximação para os sinais em
LIBRAS.
A Figura 4.1 apresenta um exemplo de processo de Markov. Neste exemplo é modelado um simples processo com três estados (cı́rculos), Bull, Bear e Even, e três possı́veis
observações (retângulos), up, down e unchanged, e as transição entre os estados do modelo é probabı́listica (valores reais entre as setas ligando os estados). Dada a sequência de
observações up-down-down, podemos concluir que a sequência de estados que produziram
esta observação foi Bull-Bear-Bear, uma vez que estas observações só podem ser geradas
através destes estados [Blunsom 2004].
4.2
Modelos Ocultos de Markov
O Modelo Oculto de Markov é uma ferramenta matemática estatı́stica amplamente utilizada na área de reconhecimento de fala e que nos últimos anos vem sendo utilizada também na área de reconhecimento de gestos e reconhecimento de lı́nguas de sinais. Trata-se
de uma poderosa ferramenta estatı́stica para modelar a geração de sequências que podem ser caracterizadas por um processo subjacente gerando uma sequência de eventos
observáveis [Blunsom 2004] [Seymore, Mccallum e Rosenfeld 1999].
1
O nome Markov é uma referência ao matemático russo Andrei Markov, conhecido por seus estudos a
cerca de processos estocásticos.
24
Figura 4.1: Exemplo de processo de Markov. Retirado de [Blunsom 2004].
A Figura 4.2 apresenta um exemplo de um Modelo Oculto de Markov para uma extensão ao processo de Markov apresentado na Figura 4.1. Neste modelo, é possı́vel que
qualquer observação possa ser obtida a partir de todos os estados com uma distribuição
de probabilidade em cada um destes [Blunsom 2004].
Figura 4.2: Exemplo de modelo oculto de Markov. Retirado de [Blunsom 2004].
Com o problema modelado como Modelo Oculto de Markov, não é possı́vel mais,
somente a partir da sequência de observações, definir diretamente qual foi a sequência
de estados que geraram as observações. Desta forma, é possı́vel somente determinar a
25
probabilidade de o modelo gerar uma sequência de observações e quais sequências de
estados provavelmente geraram as observações.
4.2.1
Definição Formal
Dado um alfabeto de estados S com tamanho N , e um alfabeto de observações V com
tamanho M :
S = (s1 , s2 , . . . , sn )
(4.1)
V = (s1 , s2 , . . . , sm )
(4.2)
Definimos Q como uma sequência de estados de tamanho T , e a sequência de observações correspondentes como O:
Q = q1 , q2 , . . . , qT
(4.3)
O = o1 , o2 , . . . , oT
(4.4)
A é a matriz de transição que armazena as probabilidades do estado j seguir ao estado
i no próximo intervalo de tempo:
A = [aij ], aij = P (qt = sj |qt−1 = si )
(4.5)
B é a matriz de observações que armazena as probabilidades da observação k ser obtida
a partir do estado j, independentemente de t:
B = [bi (k)], bi (k) = P (xt = vk |qt = si )
(4.6)
π é a matriz de probabilidades inicial:
π = [π], πi = P (q1 = si )
(4.7)
Um Modelo Oculto de Markov é definido como:
λ = (A, B, π)
(4.8)
O modelo parte também de duas suposições. A primeira é de que o modelo trata-se
de um processo de Markov de primeira ordem, assim, o estado atual depende unicamente
do estado anterior. A segunda suposição diz que a observação no instante t depende
unicamente do estado atual.
26
4.2.2
Problemas relacionados aos HMMs
A grande maioria das aplicações que utilizam HMMs se reduzem a solucionar três problemas: o problema da avaliação, o problema da decodificação e o problema do aprendizado [Blunsom 2004].
4.2.2.1
O problema da Avaliação
O problema da avaliação consiste em dado um HMM e uma sequência de observações,
calcular P (O|λ), ou seja, a probabilidade de observarmos uma determinada sequência de
observações dado um modelo. A probabilidade da sequência de observações O para uma
sequência de estados Q é:
P (O|Q, λ) =
T
Y
P (ot |qt , λ) = bq1 (o1 ) × bq2 (o2 ) . . . bqT (oT )
t=1
e a probabilidade da sequência de estados é:
P (Q|λ) = πq1 aq1q2 aq2q3 . . . aqT −1qT
então podemos calcular a probabilidade das observações dado o modelo como:
P (O|λ) =
X
P (O|Q, λ)P (Q|λ) =
Q
X
πq1 bq1 (o1 )aq1q2 bq2 (o2 ) . . . aqT −1qT bqT (oT )
q1...qT
Esta formulação nos permite calcular a probabilidade de O, contudo este modelo direto gera um cálculo de custo exponencial em T . Uma melhor abordagem consiste em
armazenar os valores de probabilidade já calculados para que estes sejam obtidos de forma
direta quando necessários. É definido então os valores α como as probabilidades parciais
de observações da sequência o1 o2 . . . ot no estado si no instante t.
αt (i) = P (o1 o2 . . . ot , qt = si |λ)
O algoritmo que faz uso destes valores α é o chamado Forward Algorithm e este segue
os seguintes passos:
1. Inicialização:
α1 = πi bi (o1 ), 1 ≤ i ≤ N
27
2. Indução:
N
X
αt+1 (j) = [
at (i)aij ]bj (ot+1 ), 1 ≤ t ≤ T − 1, 1 ≤ j ≤ N
i=1
3. Finalização:
P (O|λ) =
N
X
αT (i)
i=1
O passo da indução deste algoritmo determina que para cada estado sj , αj (t) armazena
a probabilidade de atingir aquele estado tendo as observações até o instante t. Este
armazenamento de probabilidades intermediárias diminui a complexidade do cálculo para
N 2 T [Blunsom 2004].
No contexto do reconhecimento de gestos, a ideı́a básica é criar um Modelo Oculto de
Markov para cada sinal conhecido, e a partir dos dados obtidos pelo processamento do
vı́deo, determinar qual o sinal teve a maior probabilidade de ter sido realizado [Seymore,
Mccallum e Rosenfeld 1999].
4.2.2.2
O problema da Decodificação
O problema da decodificação consiste em determinar qual sequência de estados de um
modelo tem maior probabilidade de gerar uma sequência de observações conhecidas. Uma
possı́vel solução para este problema é a utilização do algoritmo de Viterbi. Este algoritmo
tem como objetivo encontrar a melhor sequência de estados para uma sequência de observações e é muito parecido com o Forward Algorithm, exceto que ao invés de somar as
probabilidades de transição, estas são maximizadas a cada passo. Definimos como a probabilidade do mais provável caminho de estados para a sequência de observações parciais
como:
δt (i) =
max
q1 ,q2 ,...,qt−1
P (q1 q2 ...qt = si , o1 , o2 . . . ot |λ)
O algoritmo de Viterbi segue os seguintes passos:
1. Inicialização:
δ1 (i) = πi bi (o1 ), 1 ≤ i ≤ N, ψ(i) = 0
2. Recursão:
δt (j) = max [δt−1 (i)aij ]bj (ot ), 2 ≤ t ≤ T, 1 ≤ j ≤ N
1≤i≤N
ψt (j) = arg max [δt−1 (i)aij ], 2 ≤ t ≤ T, 1 ≤ j ≤ N
i≤i≤N
28
3. Finalização:
P ∗ = max [δT (i)]
1≤i≤N
qT∗ = arg max [δt (i)]
1≤i≤N
4. Backtracking da sequência de estados ótima:
∗
), t = T − 1, T − 2, . . . , 1
qt∗ = ψt+1 (qt+1
Com o uso da recursão e do backtracking, é possı́vel determinar pontos onde o algoritmo
deve retroceder no processamento e procurar por outra sequência de estados melhor do
que a sendo analisada no momento. Apesar de este algoritmo apresentar facilmente a
sequência de estados que melhor descreve as observações, não existe uma maneira simples
de determinar a segunda melhor sequência [Blunsom 2004].
4.2.2.3
O problema do Aprendizado
O problema do aprendizado consistem em estimar os parâmetros de λ que atendam a
um critério de otimização. Este é tido como o problema mais difı́cil de solucionar, pois
não há um método analı́tico para sua solução. Contudo, o algoritmo de Baum-Welch,
baseado no algoritmo Expectation-Maximization, permite de maneira iterativa encontrar
soluções locais para este problema. Este tem como entrada um modelo e uma sequência
de observações de treinamento.
Definimos ξt (i, j) (Equação 4.9) como a probabilidade de estar no estado si no momento
t e passar ao estado sj no momento t + 1, dado um modelo e observação.
ξt (i, j) = P (qt = si , qt+1 = sj |O, λ)
(4.9)
Tendo αt (i) como a probabilidade de estar no estado si no tempo t desde o inı́cio da
observação e βt (i) como a probabilidade da geração da sequência no modelo no instante
t + 1, podemos reescrever ξt (i, j) como:
αt (i)aij bj (Ot+1 )βt+1 (j)
P (O|λ)
αt (i)aij bJ (Ot+1 )βt+1 (j)
= PN PN
i=1
j=1 αt (i)aij bj (Ot+1 )βt+1 (j)
ξt (i, j) =
(4.10)
Definimos também a variável γt (i) como a probabilidade de estar no estado si no
instante de tempo t.
29
γt (i) = P (qt = si |O, λ)
(4.11)
Podemos definir γt (i) também em função das váriaveis α e β:
αt (i)βt (i)
γt (i) = PN
i=1 αt (i)βt (i)
(4.12)
Podemos ainda, relacionar γt (i) com ξt (i, j):
γt (i) =
N
X
ξt (i, j)
(4.13)
j=1
Assim, temos que a probabilidade de partir do estado si para o estado sj na sequência
de observações é o somatório das probabilidades de estar em cada instante da observação
no estado si e transitar para o estado sj , ou seja:
T −1
X
ξt (i, j)
(4.14)
t=1
Já a probabilidade de estar no estado si e partir para um estado é:
T −1
X
γt (i)
(4.15)
t=1
Assim, podemos definir as variáveis πi , aij e bi (k) utilizadas pelo algoritmo de BaumWelch:
πi = probabilidade de estar no estado si no instante 1 = γ1 (i)
(4.16)
número de transições do estado si para o estado sj
número de transições do estado si para qualquer estado
(4.17)
número de vezes que foi observado o sı́mbolo ok no estado si
número de vezes no estado si
(4.18)
aij =
bi (k) =
A partir destas variáveis, o algoritmo Baum-Welch realiza diversas iterações para estimação de λ que melhor descreva a sequência de observações de treinamento.
30
4.3
Ferramentas Computacionais
Existem atualmente diversas ferramentas computacionais que implementam os Modelos
Ocultos de Markov e os algoritmos associados a seu uso. Nesta Seção são apresentadas
duas ferramentas computacionais que fornecem ambientes completos para utilização dos
modelos.
4.3.1
HTK: Hidden Markov Models Toolkit
O Hidden Markov Model Toolkit (HTK) é um conjunto de ferramentas de código aberto
para construção e manipulação de Modelos Ocultos de Markov, inicialmente desenvolvido
na Universidade de Cambridge. As primeiras utilizações deste software foram para aplicações na área de reconhecimento de fala, mas atualmente este vem sendo utilizado para
diversas aplicações que envolvem classificação de dados e reconhecimento de padrões.
4.3.2
GART: Gesture and Activity Recognition Toolkit
O Gesture and Activity Recognition Toolkit (GART), inicialmente chamado de Georgia
Tech Gesture Toolkit (GT2 K) é um conjunto de ferramentas de código aberto baseado
no HTK, para desenvolvimento de sistemas baseados em reconhecimento de gestos em
geral. O objetivo do toolkit é permitir que pesquisadores utilizem melhor seu tempo,
focando-se no processamento dos dados desejados e não na implementação de técnicas de
reconhecimento de gestos [Westeyn et al. 2003] [Lyons et al. 2007].
O GART foi desenvolvido com o objetivo de servir como ponte de comunicação entre
os pesquisadores da área de reconhecimento de gestos e o HTK, permitindo o uso do
mesmo sem conhecimentos profundos das especificidades do HTK. Entre os possı́veis uso
deste, destacam-se os estudos de reconhecimento de sinais da ASL [Westeyn et al. 2003].
31
Capı́tulo 5
Desenvolvimento do Software
Neste Capı́tulo é apresentado o desenvolvimento dos componentes utilizados na construção
do software de reconhecimento de sinais LIBRAS em vı́deo.
5.1
Base de Vı́deos
Para o desenvolvimento do sistema, uma base de vı́deos exemplos foi criada para o treinamento do módulo de reconhecimento. Foram definidos inicialmente 50 sinais distintos
para reconhecimento. Para cada um destes sinais foi realizada a gravação de 20 vı́deos exemplo. Os vı́deos foram gravados utilizando um webcam comum de notebook, capturando
os vı́deos na resolução 640x480 pixels a 15 quadros por segundo. Com o intuito de gerar
uma sistema de reconhecimento independente de usuário, os vı́deos foram gravados por 2
intérpretes distintos, sendo um destes uma intérprete mulher, com conhecimento avançado
em LIBRAS e o outro intérpretes um homem sem conhecimento prévio da lı́ngua.
Para a criação desta base de vı́deos exemplo, foram escolhidos sinais que apresentam
representações bastante diferentes entre si no que diz respeito a movimentação e posicionamento das mãos com relação ao corpo do intérprete. Esta escolha se deu com o
intuito de facilitar a criação e validação do módulo de reconhecimento de sinais nesta fase
inicial do projeto. Embora o sistema criado neste trabalho só seja capaz de reconhecer os
sinais presentes na base, a ampliação do vocabulário passı́vel de reconhecimento requer
somente a gravação de vı́deos exemplos dos sinais desejados.
5.1.1
Restrições com Relação aos Vı́deos
Para o funcionamento correto do módulo de processamento de vı́deo desenvolvido neste
trabalho, algumas restrições iniciais sobre os vı́deos de entrada devem ser respeitadas. São
32
elas:
• O fundo usado na gravação dos vı́deos deve ser branco ou claro;
• Somente o intérprete deve ser visı́vel à câmera;
• O intérprete deve utilizar roupas pretas de mangas compridas;
• O intérprete deve utilizar uma luva azul na mão direita;
• O intérprete deve utiliza uma luva laranja na mão esquerda;
• No inı́cio do vı́deo, o intérprete deve estar com suas mãos para baixo;
• No final do vı́deo, o intérprete deve estar com suas mãos para baixo.
Estas restrições foram impostas com o intuito de facilitar a fase de segmentação e
localização dos objetos desejados no vı́deo, no caso, o rosto do intérprete e suas mãos. A
Figura 5.1 apresenta a situação ideal para o bom funcionamento do módulo desenvolvido.
Figura 5.1: Situação ideal para o funcionamento correto do módulo de processamento de
vı́deo desenvolvido.
Conforme discutido na Seção 2, o reconhecimento da configuração da mão durante a
realização do sinal e a expressão facial do intérprete são caracterı́sticas importantes para
o reconhecimento do sinal. Contudo, com o objetivo de facilitar a implementação inicial
do sistema apresentado neste trabalho, a expressão facial durante a realização do sinal
33
foi desconsiderada, e a configuração da mão foi simplificada aproximando a mão por uma
elipse.
5.2
Estrutura Geral do Software
O software desenvolvido é constituı́do de dois grandes blocos que se comunicam entre si. O
primeiro bloco é o responsável pelo processamento dos vı́deos e extração das informações
necessárias para o reconhecimento dos sinais sendo realizado. O segundo bloco é o responsável pelo reconhecimento do sinal realizado no vı́deo. A Figura 5.2 apresenta o estrutura
do sistema desenvolvido. O bloco referente ao processamento dos vı́deos foi desenvolvido
em linguagem de programação C utilizando a biblioteca OpenCV como suporte principal.
O bloco referente ao reconhecimento dos sinais foi desenvolvido em duas partes, sendo
a primeira parte com a linguagem de programação Java e o toolkit GART, e a segunda
parte com a linguagem de programação C e o software HTK.
Vídeo
Processamento de Imagens
Extração de Informações
(OpenCV)
Informações
Reconhecimento dos Sinais
(HTK + GART)
Nome do Sinal
Figura 5.2: Estrutura de blocos do sistema desenvolvido.
5.3
5.3.1
Módulo de Processamento de Vı́deo
Pré-processamento
Inicialmente, o software desenvolvido carrega em memória duas imagens exemplos que
possuem cada uma somente uma amostra das cores das luvas utilizadas. Os histogramas
sobre o canal Hue destas imagens é então realizado, para utilização futura com o método
backprojection. Idealmente, estas imagens exemplos devem ser criadas utilizando a mesma
câmera que realizará a gravação dos vı́deos de entrada, de modo a reduzir efeitos que possam surgir devido a diferenças entre câmeras. A Figura 5.3 apresenta a imagem exemplo
utilizada para cálculo do histograma referente a luva laranja. É também carregado em
memória o arquivo XML que acompanha o exemplo de detecção de rostos do OpenCV.
Este contêm as informações necessárias para a localização de rostos em imagens utilizando
o método desenvolvido por [Viola e Jones 2004].
34
Figura 5.3: Imagem exemplo utilizada como amostra para cálculo do histograma referente
a luva laranja.
5.3.2
Segmentação da Imagem
Para cada quadro dos vı́deos de entrada, é realizada uma sequência de operações que tem
como objetivo localizar a posição do rosto e das mãos do intérprete. A primeira etapa do
processamento constitui em localizar a posição do rosto do intérprete na imagem. Para
esta tarefa, é utilizado o método desenvolvido por [Viola e Jones 2004]. Devido ao alto
custo computacional desta tarefa, a localização do rosto se dá somente nos primeiros
quadros do vı́deo. Para todos os quadros seguintes assumimos que o rosto do intérprete
permanece imóvel na mesma posição obtida inicialmente. A Figura 5.4 apresenta um
quadro exemplo do vı́deo onde a localização do rosto detectado pelo método é demarcado
com um retângulo vermelho sobre a imagem exemplo apresentada na Figura 5.1.
Figura 5.4: Quadro do vı́deo processado marcando a localização do rosto do intérprete
encontrado pelo método apresentado em [Viola e Jones 2004].
35
Em seguida, a imagem de entrada é convertida para o modelo de cores HSV, utilizando
as Equações 3.1. Utilizando esta imagem convertida, é criada então uma imagem máscara
para as cores laranja e azul, de forma a facilitar a segmentação das luvas nas próximas
etapas do processamento. A Figura 5.5 apresenta a imagem máscara criada para a cor
laranja sobre a imagem de entrada (Figura 5.1) convertida para o modelo de cores HSV.
Figura 5.5: Imagem máscara criada para a cor laranja sobre a imagem de entrada.
Da imagem de entrada convertida para o modelo HSV, o canal Hue é separado e
utilizando este, juntamente com os histogramas calculados para as imagens de exemplo
das luvas, é criada a imagem backprojection para as luvas azul e laranja. É realizado então
uma comparação pixel a pixel entre as imagens backprojection e as máscaras criadas e uma
nova imagem, contendo somente os pixels de interesse é criada. Esta imagem então passa
por uma sequência de erosões e dilatações morfológicas com o intuito de eliminar possı́veis
ruı́dos. A Figura 5.6 apresenta a imagem de entrada (Figura 5.1) após a realização destas
operações para a luva laranja.
Finalmente, sobre esta imagem é executado o algoritmo CamShift, para localização do
objeto na imagem. A Figura 5.7 apresenta o resultado final dos processamentos realizados
sobre a imagem de entrada (Figura 5.1), onde o retângulo vermelho demarca a posição do
rosto do intérprete, a elipse azul a posição da mão direita do intérprete e a elipse laranja
a posição da mão esquerda do intérprete.
36
Figura 5.6: Imagem de entrada após a realização das operações de backproject, erosões e
dilatações morfológicas para localização da luva laranja.
Figura 5.7: Imagem de entrada após a realização dos processamentos. O quadrado vermelho determina a localização do rosto. As elipses determinam a localização das mãos.
37
5.3.3
Vetor de Caracterı́sticas
Ao final do processo de segmentação de cada quadro do vı́deo, é possı́vel extrair as informações sobre a imagem, gerando um vetor de caracterı́sticas a ser enviado ao módulo de
reconhecimento de sinais. Diversos trabalhos utilizam diferentes vetores de caracterı́sticas
para o reconhecimento do sinal. [Mohandes, Quadri e Deriche 2007] utiliza informações
sobre a centróide das mãos e a distância relativa entre estas, já [Westeyn et al. 2003]
utiliza informações referentes a excentricidade das elipses que envolvem as mãos, a área
ocupada pelas mãos entre outras informações geométricas. Neste trabalho foram inseridas
no vetor de caracterı́sticas as seguintes informações:
• Excentricidade da elipse que envolve a mão direita;
• Excentricidade da elipse que envolve a mão esquerda;
• Distância entre mão direita e centro do rosto;
• Distância entre mão esquerda e centro do rosto;
• Ângulo entre a reta que liga a mão direita ao centro rosto e a linha horizontal traçada
no centro do rosto;
• Ângulo entre a reta que liga a mão esquerda ao centro rosto e a linha horizontal
traçada no centro do rosto;
• Área ocupada pela mão direita;
• Área ocupada pela mão esquerda.
Com o intuito de minimizar possı́veis erros gerados pelo sistema reconhecedor devido
a variações de posição do intérprete com relação a lente da câmera, as distâncias do vetor
de caracterı́sticas foram normalizadas com relação a altura do rosto detectado. Ás áreas
das mãos foram também normalizadas, mas com relação ao área do rosto detectado.
Ainda com o intuito de aprimorar o sistema reconhecedor, foi utilizada a técnica de δ’s
descrita em [Odell et al. 2000]. Esta consiste em adicionar ao vetor de caracterı́sticas um
novo atributo para cada uma das informações, apresentando valores de diferença entre os
quadros para cada atributo. Essa técnica tem como objetivo principal incluir no sistema
reconhecedor a variação dos atributos em cada quadro, indicando onde houve grande
variação de valores.
38
5.4
Módulo de Reconhecimento de Sinais
O módulo de reconhecimento de sinais criado e utilizado neste trabalho é baseado nos
Modelos Ocultos de Markov, técnica apresentada no Capı́tulo 4. Para a construção dos
modelos, foi utilizado como base os softwares HTK e GART, apresentados nas Seções
4.3.1 e 4.3.2 respectivamente.
O primeiro passo para a criação dos modelos de reconhecimento foi o processamento
dos vı́deos exemplos. Para cada um dos vı́deos exemplo, foi gerado um arquivo contendo
o vetor de caracterı́sticas apresentado na Seção 5.3.3. Com o intuito de eliminar quadros
do vı́deo em que o sinal não está sendo executado, por exemplo, inı́cio e fim do vı́deo,
vetores de caracterı́sticas repetidos em sequência foram eliminados dos arquivos.
Depois de processados e gerados todos os arquivos com as informações, estes arquivos
foram transformados em um único arquivo XML, seguindo o padrão de entrada do software GART. Este arquivo XML foi então enviado ao GART, que utilizando como base o
HTK, gerou os arquivos de execução do módulo de reconhecimento de sinais. Durante a
construção do modelo, o GART realiza um teste para verificar a taxa de acerto dos modelos criado. Nesta etapa, os parâmetros de criação dos modelos referentes ao número de
estados e números de estados de skips foi determinada manualmente, buscando otimizar
a taxa de acerto.
5.5
Execução do Software
O software desenvolvido neste trabalho é capaz de realizar o reconhecimento de sinais
tanto em vı́deos pré-gravados como em tempo real por imagens vindas de uma webcam.
Para a execução de vı́deos pré-gravados, o usuário deve informar, via linha de comando,
qual o arquivo de vı́deo a ser processado e possivelmente os parâmetros de configuração
do processo de segmentação. Ao final do processamento, o software apresenta em forma
de texto o sinal executado Para a execução em tempo real, uma vez iniciado o software,
é exibido para o usuário duas telas.
A primeira tela (Figura 5.8) apresenta uma interface para configuração do processo de
segmentação. Nesta interface, é permitido ao usuário alterar valores como o número de
erosões e dilatações para o processo de segmentação da luva azul e laranja, valores base
para criação da máscara inicial, etc. Ainda nesta tela, a região de cor preta localizada
abaixo dos controles apresenta em vermelho o resultado do processo de reconhecimento
do sinal.
39
Figura 5.8: Interface para controle dos parâmetros de configuração do processo de segmentação e resposta do processo de reconhecimento.
A segunda tela (Figura 5.9) apresenta a imagem sendo capturada pela webcam em
tempo real. Na tela inicial, o software realiza a segmentação das luvas, apresentando ao
usuário o resultado deste processo incluindo elipses coloridas em volta das mãos. Este
mecanismo permite ao usuário verificar se o software está segmentando corretamente
a imagem de entrada. Ainda na tela inicial, são incluı́dos três quadrados azuis. Os
quadrados azuis localizados na parte superior da tela são utilizados para captura de novas
imagens exemplos das luvas para cálculo do backproject. O quadrado azul localizado na
parte inferior da tela é utilizado para informar ao software o inı́cio da execução de um
sinal. Cada uma destas funções é iniciada deslizando a luva azul sobre a linha branca que
tem inı́cio no centro dos quadrados azuis.
Uma vez que o usuário determina que um sinal está sendo realizado, o software inicia
40
Figura 5.9: Tela inicial do software, apresentando a imagem de entrada da webcam juntamente com os 3 quadrados azuis de ação.
o processo de segmentação da imagem de entrada, armazenando em um arquivo texto os
valores do vetor de caracterı́sticas. Durante a realização do sinal, a imagem de entrada
é exibida continuamente ao usuário, juntamente com as linhas que ligam o centro das
mãos ao rosto, as elipses que envolvem as mãos, o quadrado que determina o rosto e os
pontos onde as mãos já estiveram durante a realização do sinal (Figura 5.10). Ao finalizar
a execução do sinal, o usuário deve posicionar suas mãos fora da captura da webcam e
aguardar um segundo. O software verifica então que não existe mais movimentação por
parte do usuário e envia ao módulo de reconhecimento o arquivo texto com os valores.
Uma vez reconhecido o sinal, o software escreve em vermelho o nome do sinal reconhecido
na interface de controle.
5.6
Resultados
Conforme apresentado na Seção 5.1, foram selecionados 50 sinais distintos para a criação
da base de vı́deos exemplo. A Tabela 5.1 apresenta as taxas de acerto para os Modelos
Ocultos de Markov criados variando o número de estados e o número de estados de
skip utilizando todos os vı́deos exemplo para treinamento e teste do sistema. A Tabela
41
Figura 5.10: Tela do software durante a realização de um sinal. As linhas ligam o rosto
ao centro das mãos, as elipses determinam a posição das mãos, o quadrado a posição do
rosto e os pontos isolados as posições por onde as mãos já passaram durante a realização
do sinal.
5.2 apresenta as taxas de acerto para os Modelos Ocultos de Markov criados variado o
número de estados e o número de estados de skip utilizando 70% da base de vı́deos para
treinamento e o restante (30%) para testes. Campos apresentando valor “-” referem-se a
configurações em que o sistema não foi capaz de gerar os modelos.
Pela Tabela 5.1, temos que a melhor configuração para a criação dos Modelos Ocultos
de Markov é utilizando 18 estados sendo nenhum deles de skip. Para esta configuração,
a taxa de acerto obtida foi de 99,90% e o Modelo só errou a classificação de um exemplo
do sinal ”Branco”com o sinal ”Azul”.
Pela Tabela 5.2, temos que a melhor configuração para a criação dos Modelos Ocultos
de Markov é utilizando 15 estados sendo 1 deles de skip, ou 17 estados sendo 1 deles
de skip. Para ambas as configurações, a taxa de acerto obtida foi de 97,33%. Para a
configuração com 15 estados, o Modelo errou no total a classificação de quatro sinais
(maracujá, 2 vezes azul e marido). Para a configuração com 17 estados, o Modelo errou
novamente total a classificação de quatro sinais (maracujá, marido, viver e sinal).
42
Tabela 5.1: Taxas de acertos para Modelos Ocultos de Markov utilizando 100% da base
de vı́deos para treinamento e teste.
Num. Estados de Skips
Num. Estados
0
1
2
3
10
99,10
96,00
94,00
90,90
11
99,30
97,00
-
94,90
12
99,70
98,60
98,90
95,40
13
99,60
99,20
97,90
-
14
99,30
99,70
98,90
96,50
15
99,00
99,70
99,60
97,60
16
99,30
99,70
98,90
98,40
17
99,40
99,70
99,20
99,20
18
99,90
99,70
99,50
99,20
19
99,60
99,80
99,70
-
20
99,80
99,70
99,70
99,60
Tabela 5.2: Taxas de acertos para Modelos Ocultos de Markov utilizando 70% da base de
vı́deos para treinamento e 30% para teste.
Num. Estados de Skips
Num. Estados
0
1
2
3
10
93,33
92,00
-
84,33
11
94,67
96,33
89,00
94,33
12
95,00
94,67
86,33
84,33
13
92,33
95,00
93,33
91,33
14
94,33
95,67
93,33
93,33
15
94,00
97,33
-
87,67
16
94,00
97,00
92,33
92,67
17
93,67
97,33
94,00
-
18
95,99
97,00
94,67
-
19
94,61
96,33
96,33
92,67
20
95,25
96,33
94,67
-
Esta alta taxa de acerto para um sistema que possui um alto número de sinais indica
a validade do sistema criado [Stein et al. 2007]. A escolha dos atributos que compõe o
43
vetor de caracterı́sticas se mostrou válida e capaz de representar corretamente os sinais
escolhidos para compor a base. Embora questões importantes que devem ser consideradas
para o reconhecimento de lı́nguas de sinais como a expressão facial e a configuração da
mão foram abstraı́das neste trabalho, o sistema criado mostrou ser válido para situações
onde estas questões podem ser desconsideradas [Stein et al. 2007].
44
Capı́tulo 6
Considerações Finais
A Lı́ngua Brasileira de Sinais - LIBRAS - é a forma de comunicação utilizada pela comunidade surda brasileira. Assim como as outras lı́nguas de sinais existentes, a LIBRAS
é uma lı́ngua de sinais espaço-visual que tem como principal caracterı́stica a movimentação das mãos do intérprete para comunicar-se. Além da movimentação das mãos, outras
caracterı́sticas importantes no reconhecimento de lı́nguas de sinais são a identificação da
expressão facial, a localização espacial das mãos durante a realização do sinal e a configuração das mãos durante a sinalização. Esta grande quantidade de informações a serem
consideradas para o reconhecimento de sinais dificulta muito a criação de softwares com
este intuito. Contudo, softwares deste tipo são de extrema importância para a inclusão
de pessoas surdas na sociedade.
Neste trabalho foi apresentada a teoria e o desenvolvimento de um software capaz de
reconhecer sinais em LIBRAS realizados isoladamente por intérpretes tanto em vı́deos
digitais gravados como em tempo real. Foram determinadas como restrições dos vı́deos o
uso de luvas coloridas, a utilização de roupas escuras e a parede atrás do intérprete com
cor clara. Estas restrições se deram principalmente com o intuito de facilitar a tarefa de
segmentação das imagens de entrada, para extração das caracterı́sticas utilizadas para
reconhecimento dos sinais. Para a realização das tarefas de processamento de imagens, foi
utilizada principalmente a técnica de segmentação baseada em histograma e momentos da
imagem. Já para a tarefa de reconhecimento dos sinais foi realizada utilizando como base
os Modelos Ocultos de Markov. Uma base de vı́deos exemplo contendo 20 repetições para
cada um dos 50 sinais pré-determinados (1000 vı́deos exemplo no total) foi criada para o
treinamento do sistema. Utilizando 70% dos vı́deos desta base para treinamento de 30%
45
desta para teste, obteve-se uma taxa de acerto de aproximadamente 97%, demonstrado a
validade e eficiência do sistema de processamento de imagens criado .
O software criado e apresentado neste trabalho servirá como parte fundamental na
criação de um sistema completo de tradução LIBRAS/Português. Como trabalhos futuros, pretende-se inicialmente aumentar a quantidade de sinais que o software é capaz
de reconhecer, realizando a gravação de novos vı́deos exemplos para os sinais desejados. Pretende-se também como passo inicial eliminar a necessidade de utilização de luvas
coloridas, realizando a localização das mãos baseado na pigmentação da cor da pele do
intérprete. Outra restrição que se pretende eliminar em trabalhos futuros é com relação
reconhecimento de sinais isolados, uma vez que um software de tradução deve ser capaz
reconhecer e traduzir frases completas. Por fim, o sistema de processamento de imagens pode também ser aprimorado para ser capaz de capturar e utilizar informações da
expressão facial do intérprete.
46
Referências Bibliográficas
[Assalehand et al. 2008]ASSALEHAND, K. et al. Vision-based system for continuous arabic sign language recognition in user dependent mode. Proceeding of the the 5 Internation
Symposium on Mechatronics and its Applications, 2008.
[Begun e Hasanuzzaman 2009]BEGUN, S.; HASANUZZAMAN, M. Computer visionbased bangladeshi sign language recognition system. 12th International Conference on
Computers and Information Technology, p. 414, 2009.
[Blunsom 2004]BLUNSOM,
P.
Hidden
Markov
Models.
2004.
Http://ww2.cs.mu.oz.au/460/2004/materials/hmm-tutorial.pdf.
[Bradski e Kaehler 2008]BRADSKI, G.; KAEHLER, A. Learning OpenCV: Computer Vision with the OpenCV Library. 1st. ed. [S.l.]: O’Reilly Media, 2008. Paperback. ISBN
0596516134.
[Bradski 1998]BRADSKI, G. R. Computer vision face tracking for use in a perceptual
user interface. Intel Technology Journal, n. Q2, p. 15, 1998.
[Capovilla e Raphael 2001]CAPOVILLA, F. C.; RAPHAEL, W. D. Dicionário Enciclopédico Ilustrado Trilı́ngue da Lı́ngua de Sinais Brasileira. São Paulo, Brasil: Editora
da Universidade de São Paulo, 2001.
[Comaniciu e Meer 2002]COMANICIU, D.; MEER, P. Mean shift: A robust approach
toward feature space analysis. IEEE Transactions on Pattern Analysis and Machine
Intelligence, IEEE Computer Society, Los Alamitos, CA, USA, v. 24, p. 603–619, 2002.
ISSN 0162-8828.
[Fialho 2004]FIALHO, A. R. S. Estudo de Técnicas de Rastreamento das Mãos para o
Desenvolvimento de Interfaces Homem-Máquina. Campo Grande, Brasil, 2004.
47
[Gonzalez 2010]GONZALEZ, R. C. Processamento Digital de Imagens. São Paulo, Brasil:
Pearson Prentice Hall, 2010.
[Lira e Souza 2008]LIRA, G. A.; SOUZA, T. A. F. LIBRAS - Dicionário da Lı́ngua
Brasileira de Sinais. 2008. Http://www.acessobrasil.org.br/libras/.
[Lyons et al. 2007]LYONS, K. et al. Gart: The gesture and activity recognition toolkit.
In: JACKO, J. A. (Ed.). HCI (3). [S.l.]: Springer, 2007. (Lecture Notes in Computer
Science, v. 4552), p. 718–727.
[Martin 2000]MARTIN,
J.
A
tems for Signed Languages:
Linguistic
Comparison:
Two
Notation
Sys-
Stokoe notation and Sutton SigWriting. 2000.
Http://www.signwriting.org/archive/docs1/sw0032-Stokoe-Sutton.pdf.
[McCleary e Viotti 2007]MCCLEARY, L.; VIOTTI, E. Transcrição de dados de uma
lı́ngua sinalizada: um estudo piloto da transcrição de narrativas na lı́ngua de sinais
brasileira (LSB). Goiânia, GO, Brasil: Cânone Editorial, 2007.
[Mohandes, Quadri e Deriche 2007]MOHANDES, M.; QUADRI, S.; DERICHE, M. Arabic sign language recognition an image-based approach. Advanced Information Networking and Applications Workshops, International Conference on, IEEE Computer Society,
Los Alamitos, CA, USA, v. 1, p. 272–276, 2007.
[Morrissey 2008]MORRISSEY, S. Data-Driven Machine Translation for Sign Languages.
Tese (Doutorado) — Dublin City University, Dublin, Irlanda, 2008.
[Odell et al. 2000]ODELL, J. et al. The HTK Book for HTK V3.0. Cambridge, UK: Cambridge University Press, 2000.
[Peres et al. 2006]PERES, S. M. et al. Libras signals recognition: a study with learning
vector quantization and bit signature. In: SBRN ’06: Proceedings of the Ninth Brazilian
Symposium on Neural Networks. Washington, DC, USA: IEEE Computer Society, 2006.
p. 21. ISBN 0-7695-2680-2.
[Pistori e Neto 2003]PISTORI, H.; NETO, J. J. Tecnologia Adaptativa em Engenharia de
Computação: Estado da Arte e Aplicações. Tese (Doutorado) — USP, São Paulo, Brasil,
2003.
48
[Rabiner 1989]RABINER, L. R. A tutorial on hidden markov models and selected applications in speech recognition. Proceedings of the IEEE 77, p. 257—-286, 1989.
[Ribeiro 2006]RIBEIRO, H. L. Reconhecimento de Gestos Usando Segmentação de Imagens Dinâmicas de Mãos Baseada no Modelo de Mistura de Gaussianas e Cor de Pele.
Dissertação (Mestrado) — Universidade de São Paulo, São Carlos, SP, Brasil, 2006.
[Rybená 2010]RYBENá. 2010. Http://www.rybena.org.br.
[Seymore, Mccallum e Rosenfeld 1999]SEYMORE, K.; MCCALLUM, A.; ROSENFELD,
R. Learning hidden markov model structure for information extraction. In AAAI 99
Workshop on Machine Learning for Information Extraction, p. 37–42, 1999.
[Souza e Vieira 2006]SOUZA, V. C.; VIEIRA, R. Uma proposta para tradução automática
entre libras e português no sign webmessage. Proceedings of the Brazilian Symposium on
Artificial Intelligence, Ribeirão Preto, Brasil, 2006.
[Starner e Pentland 1995]STARNER, A.; PENTLAND, A. Visual Recognition of American Sign Language Using Hidden Markov. Tese (Doutorado) — Massachussets Institute
of Technology, Massachussets, 1995.
[Stein et al. 2007]STEIN, D. et al. Hand in hand: Automatic sign language to speech
translation. In: Conference on Theoretical and Methodological Issues in Machine Translation. Skövde, Sweden: [s.n.], 2007. p. 214–220.
[Sutton 1996]SUTTON, V. SignWriting web site. 1996. Http://www.signwriting.org.
[Viola e Jones 2004]VIOLA, P.; JONES, M. Robust real-time face detection. Int. J. Comput. Vision, Kluwer Academic Publishers, Hingham, MA, USA, v. 57, p. 137–154, May
2004. ISSN 0920-5691.
[Westeyn et al. 2003]WESTEYN, T. et al. Georgia tech gesture toolkit: Supporting experiments in gesture recognition. In: Proceedings of the 5th international conference on
Multimodal interfaces. New York, NY, USA: ACM, 2003. (ICMI ’03), p. 85–92. ISBN
1-58113-621-8.
49
Download

Acesso ao Trabalho - Bacharelado em Ciência da Computação