• Nenhum resultado encontrado

2011.2_TCC - Versão completa, final, corrigida e bela

N/A
N/A
Protected

Academic year: 2021

Share "2011.2_TCC - Versão completa, final, corrigida e bela"

Copied!
71
0
0

Texto

(1)

IGOR LEONARDO OLIVEIRA BASTOS

UTILIZAÇÃO DE VISÃO COMPUTACIONAL PARA CONTROLE DE UMA LOUSA DIGITAL

FEIRA DE SANTANA 2012

(2)

UTILIZAÇÃO DE VISÃO COMPUTACIONAL PARA CONTROLE DE UMA LOUSA DIGITAL

Trabalho de Conclusão de Curso apresentado ao Curso de Engenharia de Computação da Universidade Estadual de Feira de Santana, como requisito parcial à obtenção do grau de Bacharel em Engenharia de Computação. Orientador (a): Prof. Dr. Cláudio Eduardo Góes

Feira de Santana 2012

(3)

sempre se esforçaram para me guiar pelos caminhos certos, me servindo como exemplo de caráter e do que é correto,

ao meu irmão, que sempre me foi companheiro e me mostrou a importância do esforço e dedicação, à minha namorada, a quem eu devo a alegria e paz encontradas nos momentos mais difíceis.

(4)

Ao professor Doutor Cláudio Eduardo Góes, pelo compromisso e orientação durante o processo de construção deste trabalho.

Aos meus familiares e amigos.

(5)

Este trabalho visa apresentar o desenvolvimento de um software que desempenhe as funções de uma lousa digital, utilizando para isto, conceitos e técnicas de processamento de imagens digitais e redes neurais artificiais. A idéia de desenvolvimento deste software decorre da importância e facilitação, no tocante à exposição de idéias, que este tipo de recurso oferece. Além disso, nota-se que o alto custo desta tecnologia representa o principal gargalo para sua popularização, o qual é promovido pela utilização de equipamentos e mecanismos de custo elevado para a determinação e a interpretação das interações do usuário, custo este não presente em uma implementação em software. Para o desenvolvimento do presente trabalho, utilizou-se a linguagem de programação Java, além das bibliotecas JMF, JAI e Neuroph. Além disso, utilizou-se equipamentos de baixo custo, como webcams e projetores. Obteve-se, com o presente trabalho, bons resultados que foram descritos, validados e analisados na seção de resultados e considerações finais. Palavras-chave: Lousa digital. Processamento de imagens digitais. Redes neurais artificiais.

(6)

This paper presents the development of software that performs the functions of a digital whiteboard, using for this, concepts and techniques of digital image processing and artificial neural networks. The idea of developing this software stems from the interestand facilitation, as regards the exposition of ideas, which offers this type of resource. Also, it´s notorious that the high cost of this technology represents a major bottleneck for its popularization, which is promoted by the use of high-cost equipment and mechanisms for assessment and interpretation of user interactions, what is not present in an implementation software. For the development of this work, the Java programming language and the libraries JMF, JAI and Neuroph were used. Furthermore, low-cost equipment, as webcams and projectors, were utilized. With the present work, good results were obtained. They are described, validated and analyzed in the results section and concluding remarks.

(7)

Tabela 1 – Estrutura do trabalho em etapas 41

Tabela 2 – Redes neurais suportadas na biblioteca Neuroph 45

Tabela 3 – Tabela 4 –

Formatos compatíveis com o JMF

Eventos de mouse associados aos gestos

46 56

(8)

HSI Hue, Saturation e Intensity

HSL Hue, Saturation e Luminance

HSV Hue, Saturation e Value

JAI Java Advanced Imaging

JMF JVM

Java Media Framework Java Virtual Machine

(9)

1 INTRODUÇÃO

2 FUNDAMENTAÇÃO TEÓRICA...16

2.1 PRINCIPAIS TECNOLOGIAS DE LOUSAS DIGITAIS...16

2.1.1 INFRAVERMELHO...16 2.1.2 ULTRASSOM E INFRAVERMELHO...17 2.1.3 RESISTIVA...17 2.1.4 ELETROMAGNÉTICA...17 2.2 TRABALHOS RELACIONADOS...18 2.2.1 PROJETO ECLASS...18 2.2.2 PROJETO ICLASS...19

2.2.3 PROJETO DE LOUSA INTERATIVA DE ALTA RESOLUÇÃO...19

FONTE: CRUZ JUNIOR (2011) ADAPTADOR PELO AUTOR...20

2.2.4 PROJETO DE LOUSA DIGITAL DE BAIXO CUSTO DESENVOLVIDO NO PROJETO ANUAL...20

2.3 CONCEITOS QUANTO AO PROCESSAMENTO DE IMAGENS...21

2.3.1 ESTRUTURA DA IMAGEM...21

2.3.2 CONECTIVIDADE E VIZINHANÇA DE PIXELS...21

2.3.3 ESPAÇOS DE CORES E SEGMENTAÇÃO POR PELE...22

2.3.3.1 ESPAÇO RED, GREEN E BLUE (RGB)...22

2.3.3.2 ESPAÇOS HUE, SATURATION E INTENSITY (HSI), HUE, SATURATION E LUMINANCE (HSL) E HUE, SATURATION E VALUE (HSV)...23

2.3.3.3 ESPAÇO LUMA, BLUE CHROMINANCE DIFFERENCE, RED CHROMINANCE DIFFERENCE (YCBCR)...24

2.3.3.4 SEGMENTAÇÃO DE PELE UTILIZANDO ESPAÇOS DE CORES MISTOS. 24 2.3.4 OPERAÇÕES SOBRE A IMAGEM...25

(10)

...27

2.3.4.3 EROSÃO E DILATAÇÃO...27

2.4 REDES NEURAIS ARTIFICIAIS...30

2.4.1 REDE PERCEPTRON MULTICAMADA...31

2.4.1.1 APRENDIZADO SUPERVISIONADO DA REDE...32

2.4.1.2 O ALGORITMO BACKPROPAGATION...32

3 MATERIAIS E MÉTODOS...34

3.1 TECNOLOGIAS ENVOLVIDAS NO DESENVOLVIMENTO...34

3.1.1 LINGUAGEM JAVA...35

3.1.2 JAVA ADVANCED IMAGING (JAI)...35

3.1.3 NEUROPH...35

3.1.4 JAVA MEDIA FRAMEWORK (JMF)...36

Tipo de Mídia...37

Operações com o JMF...37

Audio Video Interleave (AVI)...37

Leitura/Escrita...37

Moving Picture Experts Group (MPEG)...37

Leitura...37

QuickTime...37

Leitura/Escrita...37

WAVEform Audio Format (Wav)...37

Leitura/Escrita...37

Musical Instrument Digital Interface (MIDI)...37

Leitura...37

3.2 DESENVOLVIMENTO DO SOFTWARE...37

3.2.1 O SISTEMA DESENVOLVIDO...37

(11)

3.2.4 CONTINUIDADE DE REGIÕES E MEMBROS DO USUÁRIO...40

3.2.5 REDES NEURAIS PARA CLASSIFICAÇÃO DE GESTOS...40

3.2.5.1 ARQUITETURA DA REDE NEURAL UTILIZADA...41

3.2.5.2 EXECUTANDO O PROGRAMA E UTILIZANDO-SE DA REDE NEURAL MONTADA...41

Gestos...43

Eventos de mouse...43

Mão fechada...43

Pressiona o botão esquerdo do mouse...43

Mão esquerda em L...43

Troca a mão de movimentação do mouse para a esquerda e a de eventos para a direita...43

Mão direita em L...43

Troca a mão de movimentação do mouse para a direita e a de eventos para a esquerda...43

Mão esquerda/direita aberta...43

Solta o botão pressionado do mouse...43

3.5.2.3 DETECTANDO OS GESTOS DURANTE A EXECUÇÃO DO PROGRAMA...43

...43

3.2.6 INTEGRAÇÃO COM O SISTEMA DESENVOLVIDO NO PROJETO ANUAL..44

Fonte: Próprio autor...44

Ainda na Figura 38, é importante ressaltar que esta interface apresentada conta com botões para acesso às mais diversas funções da lousa. Nota-se, por exemplo, no canto inferior esquerdo, a presença de botões e abas. Estes botões contêm funções como, abrir apresentações de slides, salvá-las e fechá-las...44

4 ANÁLISE E DISCUSSÃO DE RESULTADOS...44

4.1 DETECÇÃO DE PELE...44

4.2 DETECÇÃO DE CONTINUIDADES...45

4.3 TREINAMENTO E RECONHECIMENTO ATRAVÉS DE REDES NEURAIS...45

Qtde. gestos treinados...46

Número de gestos realizados...46

(12)

Tempo para treinamento ...46 5...46 40...46 40...46 0...46 100...46 Cerca de 1 minuto...46 8...46 40...46 36...46 4...46 90...46 Cerca de 5 minutos...46 10...46 40...46 29...46 11...46 72.5...46 Cerca de 20 minutos...46 14...46 40...46 21...46 19...46 52.5...46 Mais de 50 minutos...46 5 CONSIDERAÇÕES FINAIS...47

(13)

1. INTRODUÇÃO

Desde o final do século XX, nota-se uma mudança significativa na veiculação da informação (PROCÓPIO; SOUZA, 2009). Esta mudança ocorre no tocante a utilização de recursos cada vez mais eficazes na tentativa de atrair e passar, de maneira mais eficiente, a mensagem a qual se deseja ao receptor alvo.

Neste contexto, onde há uma constante busca por um aumento do dinamismo, atratividade e até percepção do que é passado, os recursos visuais vêm ganhando cada vez mais destaque por serem, segundo Schmidt e Pazin Filho (2007), recursos complementares para melhorar a retenção do que é informado durante, por exemplo, uma aula, seminário, exposição ou apresentação.

Desta forma, assim como outros recursos visuais, a lousa digital vem, a cada dia, se tornando mais utilizada. Esta apresenta características que promovem a concepção e proposição de aulas, seminários, exposições ou apresentações mais dinâmicas, ilustradas e, principalmente, produtivas (CRUZ JUNIOR, 2011).

No entanto, a disseminação desta tecnologia esbarra no seu alto custo, restringindo a sua utilização por parte de instituições com menor poder aquisitivo, como universidades e escolas públicas.

O alto custo da lousa digital decorre, principalmente, da utilização de técnicas para a detecção das interações do usuário baseadas em equipamentos como ultrassom, emissores de luz infravermelha e emissores/sensores de campo magnético e painéis sensíveis ao toque, os quais aumentam o custo total do equipamento (MORAES, 2011).

Com base neste contexto, formas alternativas para o desenvolvimento da lousa vêm sendo valorizadas, as quais têm seu foco no desenvolvimento de

softwares que, associados a equipamentos de baixo custo como webcams e

projetores, sejam capazes de interpretar as interações do usuário e prover as funções de uma lousa digital convencional.

Desta forma, o objetivo deste trabalho é expor o desenvolvimento de uma lousa digital baseada em software utilizando equipamentos de baixo custo. Para tal, foi necessário desenvolver rotinas para aquisição de imagens utilizando uma

webcam, elaborar rotinas de calibração de câmera e mudança de perspectiva,

(14)

digitais, desenvolver rotinas de detecção de movimentos e interações do usuário, além de testar e validar estas etapas.

Assim, este trabalho organiza-se de forma a apresentar, primeiramente, uma fundamentação teórica a respeito dos principais conceitos envolvidos no desenvolvimento do aplicativo, relativos ao processamento digital de imagens, espaços de cores e redes neurais artificiais. Além disso, esta seção conta com trabalhos similares, os quais serviram como bases para o desenvolvimento do presente trabalho por possuírem semelhanças, tanto em seus algoritmos, quanto em sua aplicabilidade. Após esta seção, tem-se a metodologia, onde é feita a descrição do raciocínio utilizado na construção do projeto e as tecnologias envolvidas nesta construção, como as bibliotecas Neuroph, JAI e a linguagem Java, além de ser detalhado o desenvolvimento do software. Posteriormente, são apresentados os resultados obtidos, com uma análise da eficiência e eficácia dos algoritmos desenvolvidos e do produto obtido, seguidos por uma seção de considerações finais, trazendo uma análise da aplicabilidade do software desenvolvido e de trabalhos futuros relacionados. Por fim, são apresentadas as referências utilizadas.

É válido salientar que o presente trabalho encontra-se inserido em um projeto desenvolvido, anteriormente, por alunos da disciplina Projeto Anual da Universidade Estadual de Feira de Santana, o qual visava desenvolver uma tecnologia similar, de lousa digital de baixo custo, porém, com o uso de um laser como marcador das interações do usuário.

(15)

2 FUNDAMENTAÇÃO TEÓRICA

Nesta seção, os principais conceitos em relação ao trabalho desenvolvido são expostos a fim de mostrar, entre outros aspectos, a teoria sobre a qual este trabalho se embasa.

2.1 PRINCIPAIS TECNOLOGIAS DE LOUSAS DIGITAIS

Existem diversas tecnologias as quais norteiam o funcionamento de uma lousa digital, sendo estas diferenciadas pela maneira a qual tratam, detectam e interpretam interações do usuário. A maior parte destas tecnologias tem seu mecanismo de funcionamento baseado em seus componentes físicos (hardware), o que faz com que haja um aumento do seu custo. Dentre estas, cabe citar:

2.1.1 Infravermelho

A tecnologia de infravermelho baseia-sena utilização de vários feixes de luz infravermelha atravessando toda a lousa nos sentidos vertical e horizontal. Ao se tocar neste quadro, estes feixes são interrompidos e então, é possível detectar a posição onde houve o toque por parte do usuário (LOUSA DIGITAL, 2011). A disposição dos feixes é feita de forma similar à mostrada na Figura 1.

Figura 1 – Disposição dos feixes na lousa infravermelha.

Fonte: Lousa Digital (2011).

A tecnologia de Infravermelho tem como ponto positivo o fato de que o seu funcionamento não depende de um objeto específico, como uma caneta, para

(16)

funci-onar, além de não depender da integridade da superfície do quadro e de possuir uma manutenção fácil. Já o seu ponto negativo é a necessidade de uma calibração bem feita para que haja uma correspondência satisfatória entre o toque do usuário e a interpretação do mesmo por parte da lousa (LOUSA DIGITAL, 2011).

2.1.2 Ultrassom e Infravermelho

A tecnologia de Ultrassom e Infravermelho baseia-se na utilização de uma caneta que emite sinais de ultrassom e infravermelho para um sensor localizado, geralmente, no canto superior esquerdo da lousa. A partir desta emissão, calcula-se a distância e o ângulo correspondentes à interação desta caneta sobre a lousa, proporcionando ao sistema definir a posição a qual foi tocada pelo usuário (LOUSA DIGITAL, 2011), como pode ser visto na Figura 2.

Figura 2 – Lousa digital baseada em Ultrassom e Infravermelho

Fonte: Lousa Digital (2011).

Esta tecnologia tem os seus pontos fortes relacionados à robustez, a qual per-mite a obtenção de resultados precisos provenientes de sua utilização. Além disso, apresenta um baixo custo quando comparada a outras tecnologias baseadas em componentes físicos da lousa. Já como ponto negativo, pode-se citar a obrigatorie-dade da utilização da caneta (específica da lousa) (MULTITOUCH WHITEBOARD, 2011).

2.1.3 Resistiva

A tecnologia resistiva baseia-se na utilização de duas placas paralelas flexí-veis separadas por um espaço fino. Ao tocar a tela, a pressão realizada pelo usuário

(17)

promove o toque entre as duas placas permitindo ao sistema identificar esta posição (LOUSA DIGITAL, 2011), como mostrado na Figura 3, a seguir.

Figura 3 – Funcionamento da Lousa Digital Resistiva.

Fonte: Lousa Digital (2011).

Este tipo de lousa possui como ponto positivo a sua alta precisão, porém, a sensibilidade da superfície a fatores como picos de energia ou mesmo à manuten-ção de sua perfeita integridade se mostram como fatores negativos (MULTITOUCH WHITEBOARD, 2011).

2.1.4 Eletromagnética

A lousa eletromagnética baseia-se na utilização de um campo magnético e de sensores os quais detectam qualquer alteração neste campo provocada pela utiliza-ção de uma caneta (específica da lousa). Esta caneta promove alterações distintas do campo para cada evento que se deseja realizar com ela, como por exemplo, o to-que sobre sua superfície (LOUSA DIGITAL, 2011), como mostrado na Figura 4.

Figura 4 – Funcionamento da Lousa Digital Eletromagnética.

(18)

O ponto positivo desta tecnologia, assim como a resistiva mostrada anterior-mente, é a boa precisão da resposta obtida pelo sistema quanto à posição da intera-ção promovida pelo usuário. Como desvantagem existe a dependência da utilizaintera-ção da caneta (específica da lousa), a sensibilidade a campos magnéticos externos ou picos de energia, ou mesmo a sensibilidade física da superfície do equipamento (MULTITOUCH WHITEBOARD, 2011).

2.2 TRABALHOS RELACIONADOS

Devido à aplicabilidade da lousa digital no ambiente didático e seu papel sig-nificativo na promoção de um maior dinamismo em apresentações, exposições, etc.; alguns produtos semelhantes ao proposto neste trabalho foram e vêm sendo desen-volvidos nos últimos anos. Dentre os mesmos, pode-se citar:

2.2.1 Projeto eCLASS

O eCLASS é (um projeto) pioneiro quanto ao uso de tecnologias que visam fornecer ao usuário a idéia de ubiqüidade. Este projeto, hoje em dia conhecido como CLASSROOM 2000, foi desenvolvido pelo Georgia Institute of Technology (ABOWD, 1996).

O principal foco do projeto eCLASS é o da criação de um ambiente onde vários recursos tecnológicos voltados à educação são disponibilizados, dentre eles, a lousa digital, e o impacto que a utilização dos mesmos promove neste aspecto (ABOWD, 1996).

Na Figura 5, pode ser visto um ambiente onde o projeto eCLASS foi implantado. Percebe-se, circulados na imagem, a grande quantidade de recursos voltados a educação presentes neste ambiente. Na parte superior da imagem, projetores e telas de projeção são mostrados. Além disso, podem ser visualizados computadores e uma lousa digital, também circulados.

(19)

Fonte: Abowd (1996) adaptado pelo autor.

2.2.2 Projeto iCLASS

O projeto iCLASS pode ser entendido como a versão brasileira do projeto eCLASS mostrado anteriormente. Este projeto foi desenvolvido por uma parceria en-tre o Instituto de Ciências Matemáticas e Computação de São Paulo, pelo Departa-mento de Computação e Estatística, pela Universidade de São Paulo – USP e pelo

Georgia Institute of Technology, produtor do eCLASS (ICLASS, 2011).

De maneira análoga ao projeto eCLASS, este projeto visa a construção de um ambiente educacional utilizando tecnologias voltadas à educação, promovendo uma avaliação do impacto que estas técnicas proporcionam neste âmbito.

O foco deste projeto baseia-se na construção de um software capaz de gerir os diversos recursos presentes nesta sala, onde se inclui uma lousa digital (ICLASS, 2011). Na Figura 6, pode ser visto um ambiente no qual o projeto está em atuação. Ao fundo, uma lousa digital pode ser vista.

(20)

Fonte: Iclass (2011).

2.2.3 Projeto de Lousa Interativa de Alta Resolução

Este projeto foi desenvolvido pelo tecnólogo em Eletrônica José Carlos da Cruz Junior e propõe o desenvolvimento de uma lousa digital baseada em software de forma a se assemelhar bastante com o presente trabalho, incluindo o foco no baixo custo (CRUZ JUNIOR, 2011).

Entretanto, o presente trabalho e o proposto pelo tecnólogo José Carlos da Cruz diferem, entretanto, quanto ao mecanismo utilizado para a detecção das interações do usuário com lousa. No trabalho do tecnólogo, utiliza-se um elemento fixo para interação com a lousa que é uma caneta com um diodo emissor de luz infravermelha. Através do uso de uma câmera específica para a detecção de luz infravermelha (CRUZ JUNIOR, 2011), é feita a detecção das interações desta caneta com a lousa. Na Figura 7, a seguir, o esquemático da caneta (desenvolvida pelo próprio autor do projeto) pode ser visualizado.

(21)

Figura 7 – Caneta para interação com a lousa. (1) Caneta emissora. (2) Botão de impulso. (3) Diodo emissor de luz infravermelha. (4) Microcontrolador com para comunicação com câmera. (5) Pilhas tamanho AA.

Fonte: Cruz Junior (2011).

Na Figura 8, a seguir, pode ser visto o funcionamento da lousa digital proposta pelo tecnólogo José Carlos da Cruz Júnior. Esta lousa funciona baseada na projeção da imagem do computador sobre alguma superfície. Daí, o usuário, utilizando a caneta mostrada na Figura 7, interage sobre esta projeção. A câmera infravermelha, por sua vez, detecta a posição e ações da caneta e fornece suas coordenadas ao software responsável pelo funcionamento da lousa, que o interpreta em respostas correspondentes a estas ações.

Figura 8 – Funcionamento da lousa interativa do tecnólogo

(22)

2.2.4 Projeto de Lousa Digital de baixo custo desenvolvido no Projeto Anual

O Projeto de Lousa Digital de baixo custo foi desenvolvido por alunos da disciplina Projeto Anual da Universidade Estadual de Feira de Santana – UEFS. Este projeto visava, como o próprio nome diz, o desenvolvimento de uma lousa digital utilizando equipamentos de baixo custo, tendo para isso, o seu funcionamento baseado em software, assemelhando-se ao projeto apresentado neste trabalho.

O funcionamento do software desenvolvido pelos alunos do Projeto Anual baseia-se na utilização de uma caneta laser e uma câmera convencional (webcam), onde a cada imagem capturada pela câmera, é verificada a incidência do laser para determinação do posicionamento do cursor e das interações do usuário com o

software.

É importante salientar que neste software desenvolvido no Projeto Anual, foi construída toda uma interface capaz de prover ao usuário funções comumente presentes em lousas digitais convencionais, como exibição e edição de apresentações, gravação de sons, realização de marcações sobre partes desejadas, entre outras. Assim, o presente trabalho, o qual foi integrado a este do Projeto Anual, teve, à sua disposição, esta interface já desenvolvida, a qual teve de ser, apenas, levemente adaptada de forma a incluir as novas rotinas desenvolvidas.

2.3 CONCEITOS QUANTO AO PROCESSAMENTO DE IMAGENS

Para o desenvolvimento do presente trabalho, houve a necessidade da obten-ção de uma base teórica a respeito do processamento digital de imagens, a qual vai desde a conceituação e noção da estrutura e dos elementos que compõem as ima-gens digitais, até os operadores usados sobre estas de forma que se possa minimi-zar a presença de ruídos e distorções que prejudicassem a eficácia dos algoritmos utilizados no presente trabalho.

2.3.1 Estrutura da imagem

A imagem digital proveniente, neste trabalho, de uma webcam, é uma representação, em forma de uma matriz bidimensional, de uma imagem, a qual permite a sua exibição e processamento. Esta matriz possui em suas células,

(23)

chamadas neste caso de pixels (Picture elements), valores que correspondem à intensidade da imagem no ponto (GONZÁLEZ; WOODS, 2002).

Na Figura 9, a seguir, uma representação da estrutura da imagem pode ser vista, onde M e N representam as suas dimensões (representadas nos seus eixos x e y); e a origem é representada pelo ponto (0,0).

Figura 9 – Estrutura bidimensional das imagens digitais

Fonte: González e Woods (2002).

Cada ponto da Figura 9 representa um pixel da imagem, sendo que, no caso de imagens monocromáticas, estes pixels possuem um único valor representando sua intensidade. No caso de imagens coloridas, cada pixel possui a intensidade referente a cada um dos canais da imagem.

2.3.2 Conectividade e vizinhança de pixels

Os conceitos de vizinhança e conectividade de pixels estão intimamente relacionados, na medida em que, o tipo de vizinhança estipula a regra para determinar se dois pixels são ou não conexos.

Os mais comuns tipos de vizinhança de pixel são a vizinhança-de-4 e vizinhança-de-8. Como o nome já diz, estas diferem pela quantidade de vizinhos. A vizinhança-de-4 considera como vizinhos os pixels na vertical e horizontal,

(24)

desconsiderando como tais os pixels nas diagonais do pixel o qual se deseja avaliar a vizinhança. Já a vizinhança-de-8, considera todos estes pixels como vizinhos (VALISE, 2011), como pode ser visto na Figura 10, a seguir.

Figura 10– Conceito de vizinhança de pixel baseada no pixel central; a) Vizinhança de 4. b) Vizinhança de 8.

Fonte: Valise (2011).

A determinação da conectividade depende da regra de vizinhança determinada.

2.3.3 Espaços de cores e segmentação por pele

Um espaço de cores pode ser entendido como um sistema tridimensional de coordenadas, onde cada uma das cores primárias é representada por um dos eixos (RIBEIRO, 2006).

O entendimento e utilização de aspectos referentes a estes espaços de cores se mostraram importantes para o presente trabalho devido ao fato de que, o algoritmo de detecção de pele utilizado, o qual será apresentado posteriormente na seção 2.3.3.4, realiza uma segmentação baseada nas cores para determinar se um pixel representa ou não a pele do usuário. É importante salientar que os mais variados espaços de cores possuem formas diferentes de representá-las, sendo que entre eles, pode-se destacar, para o proposto trabalho, os espaços RGB (vermelho, verde e azul), HSV (matiz, saturação e valor), HSI (matiz, saturação e intensidade), HSL (matiz, saturação e brilho) e YCbCr (luminância, crominância azul e crominância vermelha), também conhecido como YUV (luminância, subtração da luminância pelo azul, subtração da luminância pelo vermelho).

(25)

2.3.3.1 Espaço Red, Green e Blue (RGB)

O espaço Red, Green e Blue (RGB) é um dos modelos mais utilizados atualmente, se fazendo presente em dispositivos como monitores de computador e

scanners. Neste espaço, cada uma das cores primárias (vermelho, verde e azul) é

misturada a outra para produzir as cores resultantes. Isto se relaciona ao caráter aditivo deste modelo, o qual tem a cor branca como a soma das três cores primárias em seu valor máximo (RIBEIRO, 2006).

A representação do modelo RGB mais comum é de um cubo, onde as extremidades do cubo (vértices) são representadas pelas cores primárias, secundárias, pela cor preta (origem do cubo) e pela cor branca (GONZALEZ; WOODS, 2002). Este cubo pode ser visualizado na Figura 11, a seguir.

Figura 11 – Representação de cores no modelo RGB.

Fonte: Ribeiro (2006).

Segundo este modelo, os pixels da imagem possuem um valor representando cada um dos canais da imagem. Comumente, tem-se a representação de 256 intensidades diferentes por cor, levando ao uso de 1 (um) byte para representar cada um dos canais do pixel, chegando-se ao total de 16,7 milhões de cores (RIBEIRO, 2006).

O modelo RGB possui uma grande desvantagem no tocante ao fato de que não se baseia, para a formação das suas cores, no sistema de percepção visual humano, fazendo com que cores próximas dentro deste espaço possam não ser próximas em termos de percepção visual. Devido a esse problema, este espaço não é utilizado para determinados aspectos de reconhecimento (RIBEIRO, 2006).

(26)

2.3.3.2 Espaços Hue, Saturation e Intensity (HSI), Hue, Saturation e

Luminance (HSL) e Hue, Saturation e Value (HSV)

Os espaços HSI, HSL e HSV possuem a similaridade de utilizarem a matiz e a saturação para a representação das cores. Diferentemente do modelo RGB, estes modelos se baseiam na percepção humana da cor.

Nestes modelos, a matiz relaciona-se à cor em si e define qual cor é dominante em uma área. A cor é representada em ângulo e varia do vermelho, passando pelas cores laranja, amarelo, verde, azul, púrpura, até chegar ao vermelho novamente.

Já a saturação, relaciona-se à pureza da cor. Esta pureza é indicada pela quantidade de cor branca misturada à cor original. A sua medida é inversamente proporcional, fazendo com que uma cor com saturação máxima seja uma cor completamente pura (GONZÁLEZ; WOODS, 2002).

A intensidade, brilho ou valor, por fim, relaciona-se à luminância da cor, que pode ser entendida como a variação do quão claro ou escuro a cor vai se apresentar.

No espaço HSV, a representação da cor é dada por um cone com base hexagonal. Nesta representação, tem-se que o ângulo formado pelo eixo central do cone com o eixo horizontal representa a matiz da cor. Já a distância deste eixo central até o ponto que representa a cor na base do hexágono, representa a sua saturação. Por fim, a distância da base do hexágono até a ponta do cone (altura do cone) representa a sua intensidade ou valor (RIBEIRO, 2006). Na Figura 12, a seguir, a representação deste espaço pode ser vista.

Figura 12 – Representação de cores no modelo HSV.

(27)

Já os espaços HSI e HSL, considerados como variantes do espaço HSV, diferem deste na medida em que o cálculo de suas componentes mostra-se diferente (RIBEIRO, 2006). A representação destes espaços é similar ao HSV e pode ser vista na Figura 13, a seguir. Nota-se que ambos apresentam estrutura dupla para a representação de suas cores (duplo-hexacônica e duplo-tetraédrica). Estas estruturas, apesar de duplicadas, não apresentam diferenças significativas quando comparadas ao modelo apresentado na Figura 12.

Figura 13 – Representação de cores em estruturas duplas. a) Representação no espaço HSL. b).Representação no espaço HSI.

Fonte: Ribeiro (2006) adaptado pelo autor.

A utilização destes espaços de cores em trabalhos de segmentação de pele é bastante comum, já que possuem características desejáveis quanto à intuitividade, proximidade da percepção humana e discriminação entre as propriedades de luminância e crominância, porém, o custo computacional relacionado ao tratamento dos aspectos de luminância, saturação e matiz se mostra como ponto negativo destes modelos (RIBEIRO, 2006).

2.3.3.3 Espaço Luma, Blue Chrominance Difference, Red Chrominance

(28)

O espaço YCbCr é um espaço proveniente de uma codificação sobre o espaço RGB. Este espaço é comumente utilizado pelos estúdios de televisão europeus e para trabalhos e compressão de imagens, nos quais o uso do espaço RGB é inadequado. Aqui, a cor é representada por um fator chamado luma (Y), que corresponde a luminância calculada através de pesos dados aos canais do espaço RGB, além de ser composta pela subtração da luma dos componentes vermelho (Cr) e azul (Cb) da cor (RIBEIRO, 2006). O equacionamento deste espaço pode ser dado a partir das equações abaixo.

+¿0,587 G+0,114 B

Y =0,299 R¿

(1)

Cr=( R−Y )0,713+128 (2)

Cb=( B−Y )0,564 +128 (3)

O espaço de cores YCbCr pode ser representado graficamente por um cubo, semelhante ao RGB e mostrado na Figura 14. Este espaço, por ter uma separação entre as componentes luminância (Y) e crominância (Cr), se torna atrativo para a detecção de pessoas em imagens digitais, usando como parâmetro a cor da pele da

pessoa (RIBEIRO, 2006).

Figura 14 – Representação do espaço YCbCr.

Fonte: Ribeiro (2006).

O espaço YCbCr é também conhecido como YUV, sendo os canais U e V, segundo González e Woods (2002), correspondentes ao Cb e Cr, respectivamente,

(29)

por serem obtidos pela subtração das componentes azul e vermelha, nesta ordem, pela componente luma (Y).

2.3.3.4 Segmentação de pele utilizando espaços de cores mistos

Nas últimas décadas, nota-se que a visão computacional tem tentado reproduzir, com auxílio do avanço da tecnologia, diversas funcionalidades do sistema de percepção humano (CARVALHO; TAVARES, 2008). Dentre estas funcionalidades, pode-se citar a detecção de partes do corpo baseada na detecção da pele utilizando como parâmetro a cor.

A detecção baseada na cor vem ganhando bastante popularidade devido ao rápido processamento, à simplicidade destas técnicas quando comparadas a técnicas de reconhecimento por morfologia e aos bons resultados decorrentes da implementação destes algoritmos (RIBEIRO, 2006).

Um dos pontos cruciais para a eficiente detecção da pele gira em torno do espaço de cores mais adequado para esta detecção. No decorrer das últimas décadas, diversos estudos têm sido desenvolvidos neste sentido, como os trabalhos de Garcia e Tiziritas (1999), baseados nos espaços de cores HSV e YCbCr e; Peer, Kovac e Solina (2003), o qual cria uma regra de classificação baseada exclusivamente no espaço RGB. Graças a estes e outros trabalhos, chegou-se a técnicas que possuem alto grau de eficácia no tocante à detecção dos pixels pertencentes à pele.

A técnica utilizada no presente trabalho foi desenvolvida por Gomez, Sanchez e Sucar (2002), onde são utilizados aspectos de espaços de cores distintos para a avaliação e determinação de quais pixels podem ser enquadrados como pertencentes à pele. Para o desenvolvimento desta técnica, uma grande quantidade de imagens de pessoas com diferentes tons de pele, captadas por diferentes câmeras e sob diferentes condições de luz, foram utilizadas, chegando-se ao desenvolvimento de uma técnica baseada em um espaço híbrido 3D (H-GY-Wr), o qual combina a matiz (H) dos espaços HSI/HSL/HSV, o GY, pertencente ao espaço (RGB-Y) onde o Y corresponde à luminância e o Wr, fator desenvolvido pelos pesquisadores que pode ser calculado a partir da Equação 4, mostrada abaixo (GOMEZ; SANCHEZ; SUCAR. 2002), onde as variáveis r,g e b correspondem às cores primárias do espaço RGB normalizadas.

(30)

Wr=

(

r r +g+b− 1 3

)

2 +

(

2 r + g+b− 1 3

)

2 (4)

Segundo este modelo, os pixels são considerados como pertencentes à cor de pele se satisfizerem todas as condições mostradas, abaixo.

−17,4545<H <26,666 (5)

GY <−5,9216 (6)

Wr<0,0271 (7)

Esta técnica apresentou, nos estudos realizados em 2002 pelos seus desenvolvedores, uma alta taxa de reconhecimento de pixels de pele, chegando a valores, nesta etapa de validação inicial, de cerca de 97% de acerto e com uma taxa de apenas cerca de 5% de detecção de falsos positivos (GOMEZ; SANCHEZ; SUCAR, 2002). Após um realizar um estudo a respeito de várias técnicas desenvolvidas, optou-se pela utilização desta técnica de detecção de pele, a qual apresentou, segundo Ribeiro (2006), resultados mais eficazes quando comparada a outras .

2.3.4 Operações sobre a imagem

Neste trabalho, foi necessária a utilização de operadores para o melhoramento da imagem, a fim de aumentar a eficácia do algoritmo de detecção de pele e de controle das funções da lousa por parte do usuário. Estes operadores podem ser entendidos como um pré-processamento aplicado sobre as imagens provenientes da câmera.

2.3.4.1 Binarização

A binarização consiste em um processo onde, tomando como base um dado valor de limiar ou de corte, atribui-se a coloração distinta (geralmente preto e branco) aos pixels da imagem. Esta técnica é útil para extração de partes de interesse da imagem.

(31)

O valor de limiar utilizado pode ser obtido com base em uma simples inspeção do histograma da imagem, onde a distribuição dos valores dos pixels pode ser vista, ou pode ser calculado através de métodos automáticos, como o de Otsu (GONZÁLEZ; WOODS, 2010).

2.3.4.1.1 Obtenção do limiar ótimo através do algoritmo de Otsu

O método de Otsu consiste na obtenção, com base na distribuição dos valores dos pixels da imagem, de um valor de limiar que tende a separar a frente do plano de fundo da imagem, os quais são representados, neste algoritmo, como duas classes distintas (GONZÁLEZ; WOODS, 2010).

A definição das classes é feita considerando-se um valor de limiar k qualquer como valor de corte, sendo este um valor intermediário entre o valor máximo e mínimo de intensidade de pixel encontrado na imagem (geralmente assume-se que

k é igual a 1). Daí, considerando L o número de níveis de intensidade dos pixels da

imagem, pode-se inferir que as classes C1 e C2 são obtidas de forma a C1 conter os

pixels de valor entre zero e k. Já C2, contém os pixels entre k e L-1 (GONZÁLEZ;

WOODS, 2010).

Definidas as classes, calcula-se os valores de intensidade média de cada classe e intensidade média global, além da probabilidade do pixel pertencer a cada uma das classes. Com base nisso, calcula-se a variância entre as classes, representada pela equação 8 a seguir, onde P1 e P2 representam as probabilidades

de os pixels pertencerem às classes C1 e C2, respectivamente. Já m1, m2 e mg,

representam a média das intensidades das classes C1, C2 e a média global, respectivamente.

σ2

=P1

(

m1mg

)

2

+P2

(

m2mg

)

2 (8)

A partir deste ponto, varia-se o valor de k para que haja um valor máximo de variância, o qual representa uma maior distinção entre as classes.

Na Figura 15, abaixo, pode ser vista uma imagem onde o algoritmo de Otsu foi aplicado para cálculo do limiar. Do lado esquerdo, pode ser vista a imagem original (imagem em escala de cinza). Do lado direito, a sua correspondente binarizada pode ser vista utilizando o limiar obtido pelo método de Otsu.

(32)

Figura 15 – Aplicação da Binarização. a) Imagem Original b) Imagem binarizada

Fonte: González e Woods (2002) adaptado pelo autor.

2.3.4.2 Detecção de Bordas

A detecção de bordas é um processo no qual é feita a convolução de uma máscara com a imagem a qual se deseja realizar a detecção. Esta máscara possui elementos que, quando passados sobre pixels da imagem, tendem a realçar as bordas. Na Figura 16, a seguir, são apresentadas máscaras referentes aos filtros de borda de Prewitt e Sobel. Estes filtros são utilizados para realçar bordas nas imagens (GONZÁLEZ; WOODS, 2002).

Figura 16 – Máscaras para detecção de bordas. a) Máscaras de Sobel b) Máscaras de Prewitt.

Fonte: González e Woods (2002) adaptado pelo autor.

O realce provocado pelas máscaras mostradas na Figura 16 é somente notado em regiões onde exista diferenças consideráveis entre as intensidades de um pixel com os seus vizinhos, caracterizando uma borda. Os sentidos da borda são eficientemente detectados se a máscara utilizada for condizente com a direção da borda da imagem. Na Figura 16, são mostradas as máscaras de Sobel e de Prewitt para a detecção de bordas nos sentidos horizontal e vertical, respectivamente.

(33)

As máscaras mostradas na Figura 16a e 16b apresentam resultados semelhantes, diferindo apenas na intensidade que a borda é realçada. Este realce é maior nas máscaras mostradas na Figura 16a, as quais correspondem ás máscaras de Sobel. Na Figura 17, a seguir, uma imagem pode ser vista juntamente com a sua correspondente com a detecção de bordas aplicada, utilizando para tal, as máscaras de Sobel nos sentidos vertical e horizontal (GONZÁLEZ; WOODS, 2002).

Figura 17 – Máscaras para detecção de bordas. a) Imagem Original b) Imagem com bordas detectadas

Fonte: González e Woods (2002) adaptado pelo autor.

A detecção de bordas se mostra um recurso útil na segmentação de imagens, por poder realçar os contornos de objetos de interesse presentes nas imagens digitais.

2.3.4.3 Erosão e Dilatação

A erosão e a dilatação são operações baseadas na morfologia da imagem. Estes procedimentos são realizados através da convolução de um elemento estruturante com a imagem. Na Figura 18, exemplos de elementos estruturantes podem ser vistos.

(34)

Fonte: González e Woods (2002).

O formato do elemento estruturante determina de que forma a erosão ou dilatação atuará sobre a imagem. Desta forma, a determinação correta das dimensões deste elemento se faz necessária para o uso adequado destas operações.

A erosão representa um desgaste da imagem pela “atuação” de um elemento estruturante sobre a imagem de entrada. Este procedimento pode ser utilizado sobre imagens binárias, monocromáticas ou mesmo sobre imagens coloridas (GONZÁLEZ; WOODS, 2002), e é representada pela Equação 9, onde A representa a imagem e B representa o elemento estruturante.

(9) Já a dilatação representa um aumento dos objetos da imagem, onde através da convolução do elemento estruturante com a imagem de entrada, faz-se com que os objetos presentes nesta imagem cresçam (a depender do formato e tamanho do elemento estruturante). Assim como a erosão, esta pode acontecer sobre imagens binárias, monocromáticas e coloridas, lembrando que também para ambas as operações, o elemento estruturante pode assumir valores em escala de cinza, valores binários ou mesmo como uma imagem colorida (GONZÁLEZ; WOODS, 2010). Abaixo, a representação da dilatação é feita através da equação 10, onde A representa a imagem e B representa o elemento estruturante.

(10) Na Figura 19, abaixo, tem-se à esquerda a imagem original binária. Ao meio, tem-se o resultado da aplicação da erosão sobre a mesma e, à direita, o resultado

(35)

da aplicação da dilatação sobre a imagem original, considerando pra estas operações, o uso de um elemento estruturante de dimensões 3x3, binário e completamente preenchido.

Figura 19 – Erosão e Dilatação. a) Imagem Original b) Imagem Erodida c) Imagem Dilatada.

Fonte: Abertura e Fechamento (2011).

É válido ainda ressaltar que a erosão e a dilatação originam duas operações derivadas da sua combinação. Estas são as operações de abertura e fechamento, as quais são, no caso da primeira, a erosão seguida de uma dilatação utilizando o mesmo elemento estruturante; e no caso da última, a dilatação seguida da erosão (GONZÁLEZ; WOODS, 2010). A seguir, pode ser vista a equação 11, correspondente à abertura, assim como a equação 12, referente ao fechamento.

(11) (12) Os efeitos destas operações podem ser vistos na Figura 20, onde se tem à esquerda a imagem original (a), aplicação da abertura sobre esta imagem original (b); e a aplicação do fechamento também sobre esta imagem original (c).

Figura 20 – Abertura e Fechamento. a) Imagem Original b) Aplicação da Abertura c) Aplicação do Fechamento.

(36)

Fonte: Abertura e Fechamento (2011).

2.3.5 Mudança de perspectiva e calibração de câmera

No presente trabalho, houve necessidade de desenvolvimento de um algoritmo de mudança de perspectiva, o qual relacionaria os pontos das imagens obtidas com a câmera, de dimensões 352x288, com o painel do software da lousa digital, o qual tem a dimensão máxima do monitor onde o software está sendo executado.

A correspondência foi feita de forma a ajustar, nos sentidos horizontal e vertical, cada ponto da imagem obtida com a câmera ao painel da lousa, seguindo uma relação de proporcionalidade. Esta relação pode ser vista nas equações 13 e 14, a seguir, onde xNovo e yNovo representam coordenadas já ajustadas ao painel da lousa, enquanto x e y representam as coordenadas obtidas na imagem proveniente da câmera.

xNovo=x∗( DimensãoHorizontalLousa DimensãoHorizontalImagemCâmera)

(13) yNovo= y∗( DimensãoVerticalLousa

DimensãoVerticalImagemCâmera)

(14)

Feita esta correspondência, tem-se, por exemplo, que quando o usuário desloca o braço que controla o cursor do mouse para o canto da imagem capturada pela câmera, uma ação correspondente é observada no painel da lousa, fazendo com que o cursor do mouse na lousa também atinja este canto.

Além desta mudança de perspectiva, fez-se necessário o desenvolvimento de um algoritmo para calibração da câmera, mediante a possibilidade de uso do

software da lousa digital associado a um projetor.

A calibração da câmera é feita com base nos pontos que limitam a projeção (quinas da imagem projetada). As coordenadas destes pontos permitem, através do

(37)

cálculo dos coeficientes linear e angular, a obtenção das equações de reta que correspondem às bordas da imagem projetada, como mostrado na Figura 21, a seguir.

Figura 21 – Cantos da imagem e obtenção das equações da reta

Fonte: Próprio autor.

Utilizando-se dos pontos e obtendo as equações que representam as retas (bordas), pode-se ajustar o posicionamento de quaisquer interações sobre a imagem projetada para com o software da lousa, utilizando o algoritmo de mudança de perspectiva citado anteriormente de forma conjunta a um algoritmo que calcula a distância deste ponto de interação em relação às bordas da imagem utilizando as equações de reta que as representam. Desta forma, o ajuste dos pontos de interação passaria a ser dado pelas relações 15 e 16, a seguir, onde dx e dy representariam as distâncias, em relação às bordas superior e esquerda da imagem projetada capturada pela câmera.

xNovo=dx∗( DimensãoHorizontalLousa DimensãoHorizontalImagemCâmera) (15) yNovo=dy∗( DimensãoVerticalLousa DimensãoVerticalImagemCâmera) (16) 2.4 REDES NEURAIS ARTIFICIAIS

No presente trabalho, para a realização da identificação dos possíveis gestos do usuário e interação do mesmo com a lousa através destes gestos, fez-se

(38)

necessário o uso de inteligência artificial, mais especificamente, de redes neurais artificiais.

As redes neurais artificiais são modelos computacionais que se inspiram no cérebro humano, possuindo capacidades e características, relativas à aquisição, manutenção e uso do conhecimento, inspiradas no funcionamento deste cérebro (BRAGA; CARVALHO; LUDERMIR, 2000). São considerados sistemas distribuídos, compostos por unidades de processamento simples (nodos) que possuem a capacidade de processar segundo determinadas funções matemáticas. Estes nodos, conhecidos como neurônios, formam as camadas das redes, as quais estão conectadas por ligações ponderadas por pesos, responsáveis pelo armazenamento do conhecimento adquirido pela rede (BRAGA; CARVALHO; LUDERMIR, 2000).

O grande atrativo para o uso de redes neurais artificiais reside na capacidade destas de, com base no seu aprendizado (treinamento), generalizar, o que permite que entradas com pequenas variações, em relação ao conjunto de treinamento, sejam corretamente avaliadas, permitindo, por exemplo, o reconhecimento de gestos desde que previamente treinados na rede. Desta forma, como tem-se, neste trabalho, interesse em reconhecer gestos por parte do usuário para a determinação de eventos de mouse, o uso de redes neurais se torna adequado e suficiente para atender a estas necessidades.

Como a detecção e interpretação dos gestos é um problema tipicamente de classificação, optou-se pelo uso da rede neural Perceptron MultiCamada, comumente utilizada em problemas similares.

Para o auxílio no desenvolvimento da rede, foi utilizada a biblioteca Neuroph 2.5.1 (NEUROPH, 2011). Esta traz algumas funcionalidades que auxiliaram e agilizaram o processo de desenvolvimento da rede e seu conseqüente treinamento. 2.4.1 Rede Perceptron MultiCamada

A rede Perceptron Multicamada consiste em uma extensão da rede

Perceptron de camada única. Este Perceptron de camada única é uma rede

baseada no modelo de neurônio artificial proposto por McCulloch-Pitts (BRAGA; CARVALHO; LUDERMIR, 2000). A inserção de novas camadas (camadas intermediárias), as quais aumentam o poder de processamento e possibilitam a

(39)

solução de problemas mais complexas, proporcionou o surgimento do Perceptron Multicamada.

O funcionamento do Perceptron MultiCamada é similar ao do Perceptron de camada única, diferindo apenas que, com a existência de no mínimo uma camada intermediária, as saídas dos neurônios (unidades de processamento) são propagadas para as camadas posteriores até que se chegue à camada de saída.

Estas saídas são tidas como entradas para as camadas posteriores e são, como todas as entradas da rede, ponderadas por pesos. Na Figura 22, a seguir, pode ser visto um neurônio de McCulloch-Pitts. Este é a unidade de processamento das redes Perceptron.

Figura 22 – Neurônio de McCulloch-Pitts.

Fonte: Braga, Carvalho e Ludermir (2000).

Através do modelo mostrado na Figura 22, acima, nota-se a existência de um conjunto de entradas, denotado por xi, e um conjunto de pesos relativos a estas

entradas, denotados por wi. O funcionamento deste neurônio, o qual rege o

funcionamento das redes Perceptron, baseia-se na ponderação das entradas através dos pesos e, com base nestes valores, a análise se estes estímulos satisfazem as condições de ativação do neurônio, dadas pela sua função de ativação. Nas redes Perceptron Multicamada, a saída de cada um destes neurônios é utilizada como estímulo (entrada) para as camadas posteriores, sendo necessário para o treinamento da rede, o ajuste dos pesos envolvidos em todas as camadas.

Na Figura 23, abaixo, um exemplo de rede Perceptron Multicamada pode ser visto, onde os neurônios são representados pelos quadros e círculos pretos.

(40)

Fonte: Braga, Carvalho e Ludermir (2000).

Neste trabalho, optou-se pelo uso da função de ativação Sigmóide, comumente utilizada em aplicações semelhantes. Esta função é dada pela equação 17, onde o termo A corresponde ao parâmetro de inclinação da função (REDES NEURAIS ARTIFICIAIS, 2011).

F ( x )=1/(1+eAx

) (17)

Esta função pode ser representada pelo gráfico em forma de S mostrado na Figura 24, a seguir.

Figura 24 – Gráfico da função Sigmóide.

Fonte: Redes Neurais Artificiais (2011).

2.4.1.1 Aprendizado Supervisionado da Rede

O aprendizado supervisionado é o método mais comum no treinamento de redes neurais artificiais (BRAGA; CARVALHO; LUDERMIR, 2000). Neste tipo de

(41)

treinamento, as entradas e as saídas desejadas para a rede são fornecidas, permitindo que, com base nestes valores, seja feito o ajuste da rede de forma a relacionar estas entradas às suas saídas correspondentes.

O princípio do aprendizado supervisionado consiste na minimização da diferença entre a saída desejada e a encontrada pela rede para cada entrada do conjunto de treinamento. A minimização da diferença é incremental, proporcionando o ajuste dos pesos da rede e, conseqüentemente, levando a uma solução (BRAGA; CARVALHO; LUDERMIR, 2000).

Na Figura 25, a seguir, um pequeno modelo esquemático pode ser visto demonstrando o funcionamento do aprendizado supervisionado. Nesta figura, o Professor representa o conjunto de dados do treinamento e fornece, à rede, representada por RNA, as entradas e saídas desejadas. Desta forma, o treinamento consiste na minimização do erro proveniente da diferença da saída fornecida pelo Professor e da saída fornecida pela rede. Esta minimização é incremental e é feita até que se chegue a um critério de parada.

Figura 25 – Aprendizado Supervisionado.

Fonte: Braga, Carvalho e Ludermir (2000).

Os exemplos de treinamento supervisionado mais comumente utilizados são a chamada Regra Delta e a sua generalização para redes de camadas múltiplas, conhecido como BackPropagation (BRAGA; CARVALHO; LUDERMIR, 2000), o qual foi o utilizado no presente trabalho.

(42)

2.4.1.2 O algoritmo BackPropagation

O algoritmo conhecido como BackPropagation é, atualmente, o mais difundido algoritmo para o treinamento de redes de múltiplas camadas. Este algoritmo baseia-se no aprendizado supervisionado por correção de erros (BACKPROPAGATION, 2011), que consiste em um aprendizado onde as saídas desejadas são fornecidas e, progressivamente, a rede tende a diminuir, através de ajustes de seus pesos, a diferença ou erro entre o valor obtido e a saída desejada fornecida no treinamento.

O BackPropagation tem seu funcionamento baseado em duas fases, sendo estas a propagação e a retropropagação.

Na primeira fase do algoritmo, tem-se a submissão da rede a uma entrada e a propagação das saídas dos neurônios para as camadas subseqüentes, até que se chegue à camada de saída, onde a resposta da rede referente àquela entrada é obtida. Pode-se, então, calcular o erro desta resposta em comparação ao valor fornecido no treinamento (BACKPROPAGATION, 2011). Na Figura 26, a fase de propagação do BackPropagation pode ser visualizada, com destaque para a propagação das saídas de cada neurônio para as camadas subsequentes.

Figura 26 – Fase de propagação do BackPropagation.

Fonte: Backpropagation (2011).

Na segunda fase do algoritmo, a retropropagação, é feito um ajuste dos pesos de forma a reduzir o erro relativo à comparação entre a saída desejada e a obtida com a rede. Este ajuste é feito partindo da camada de saída em direção à camada de entrada da rede e leva em consideração, se a camada em questão for uma

(43)

camada intermediária, o erro proveniente das camadas seguintes, ponderadas pelos pesos das conexões entre elas (ITO; SERRA, 1998).

Na Figura 27, a seguir, a fase de retropropagação do BackPropagation pode ser vista.

Figura 27 – Fase de retropropagação do BackPropagation.

Fonte: Backpropagation (2011).

O algoritmo do BackPropagation, por se basear na diferença entre a saída desejada e a obtida e tentar minimizar este erro existente entre elas, garante que a rede caminhe na direção de minimizar este erro. Apesar dos reveses do mesmo em relação ao tempo gasto no aprendizado, para aplicações de tamanho e simplicidade medianas, como a do atual problema, o uso deste algoritmo mostra-se adequado.

3 MATERIAIS E MÉTODOS

Foi adotada uma metodologia baseada, primeiramente, na realização de pesquisas e levantamento de materiais a respeito das principais técnicas de processamento de imagens digitais envolvidas no desenvolvimento, além das

(44)

técnicas de segmentação e de inteligência artificial empregadas, para que, posteriormente, fosse dada uma maior ênfase no desenvolvimento das rotinas de interesse para o trabalho.

A estruturação do projeto, embora não claramente delimitada, pode ser dividida em quatro grandes etapas, as quais englobam atividades que vão desde o levantamento bibliográfico, até a discussão dos resultados obtidos, conforme mostrado na Tabela 1.

Tabela 1 – Estruturação do trabalho em etapas.

Etapa 01 – Levantamento Bibliográfico

• Pesquisa Bibliográfica

• Identificação e estudo de projetos simila-res

• Identificação e compreensão a respeito de técnicas importantes ao desenvolvi-mento.

Etapa 02 – Estruturação do Ambiente de Desenvolvimento

• Identificação das tecnologias existentes para auxílio no desenvolvimento

• Identificação e escolha da linguagem de desenvolvimento

• Estudo e compreensão das tecnologias selecionadas para o desenvolvimento Etapa 03 – Desenvolvimento do Trabalho

• Levantamento dos requisitos e limitação do escopo do trabalho

• Implementação das rotinas da aplicação Etapa 04 – Avaliação dos resultados Validação e discussão dos resultados

obtidos Fonte: Próprio Autor

Como visto na Tabela 1, o desenvolvimento deste trabalho teve, inicialmente, uma maior ênfase no levantamento bibliográfico a respeito de projetos similares desenvolvidos e técnicas de interesse para o alcance dos objetivos.

Já na Etapa 02, foram buscadas tecnologias e técnicas existentes e utilizadas para o processamento de imagens digitais. Após o estudo e compreensão destas técnicas, fez-se, ainda nesta etapa, a seleção de quais seriam utilizadas no desenvolvimento, além da configuração do ambiente de trabalho, com a seleção da linguagem de desenvolvimento (Java), de bibliotecas para auxílio no processamento

(45)

de imagens (Java Advanced Imaging - JAI), na captura e trabalho com webcams (Java Media Framework - JMF) e, na montagem e treinamento de redes neurais (Neuroph). Por fim, foi selecionado o ambiente de desenvolvimento para a construção do software (Netbeans IDE 7.0).

A escolha, nesta etapa, da linguagem Java, se deu devido ao poder de construção desta linguagem, associado à sua simplicidade e com o prévio conhecimento desta durante o curso. O mesmo ocorreu com as bibliotecas JMF, Neuroph e JAI, que também possuem recursos que atendem às necessidades do trabalho proposto. A biblioteca JAI, tida como referência no processamento de imagens digitais em linguagem Java, contém inúmeras técnicas úteis, neste âmbito, as quais podem ser facilmente acessadas e utilizadas através de suas rotinas. Já a biblioteca JMF, de maneira análoga, é utilizada para auxílio com dispositivos como câmeras e microfones, sendo de grande valor no tocante à aquisição e manipulação de arquivos de som e vídeo em linguagem Java. Já quanto a biblioteca Neuroph, foi estudada a sua documentação e pôde ser percebido que esta contém as rotinas essenciais para o desenvolvimento da arquitetura de rede selecionada, assim como o seu treinamento. Por fim, a escolha do ambiente Netbeans seguiu o mesmo princípio de familiaridade, adicionando o fato de este possuir recursos voltados ao desenvolvimento de interfaces gráficas, úteis para o desenvolvimento da proposta aplicação.

A Etapa 03 representou o desenvolvimento, de fato, da aplicação. Esta etapa foi iniciada com o levantamento dos requisitos do trabalho, os quais foram modelados como rotinas do software desenvolvido. Estas variam desde as funções de aquisição das imagens provenientes da webcam, até as mais variadas rotinas de processamento e segmentação de imagem. É válido salientar que, ainda nesta etapa, foram desenvolvidas e treinadas as redes neurais para a identificação de gestos por parte do usuário, juntamente com as respostas dadas a cada um deles.

Por fim, a Etapa 04 consistiu na validação e discussão dos resultados obtidos com o desenvolvimento do presente projeto. Como estratégia de validação, optou-se pela análise através de um estudo de caso composto por um cenário: integração das rotinas implementadas ao projeto Lousa Digital Interativa, desenvolvido por estudantes da instituição Universidade Estadual de Feira de Santana para a disciplina Projeto Anual. Este projeto possui caráter similar ao desenvolvido neste trabalho, propondo, de igual forma, o desenvolvimento de um software de lousa

(46)

digital de baixo custo, porém, diferindo do mesmo no tocante ao escopo e técnicas empregadas. Em seguida, pôde ser feita a análise e discussão dos resultados obtidos, além do levantamento de possíveis trabalhos futuros.

3.1 TECNOLOGIAS ENVOLVIDAS NO DESENVOLVIMENTO

Para o desenvolvimento, foram utilizadas as bibliotecas JAI, Neuroph e JMF. Além disso, vale ressaltar que foi utilizada como linguagem de programação a lin-guagem Java. Na Figura 28, abaixo, as principais tecnologias utilizadas no projeto podem ser vistas.

Figura 28 – Tecnologias usadas no presente trabalho. a) Linguagem de Programação Java b) Java Media Framework (JMF) c) Java Advanced Imaging (JAI) d) Neuroph.

Fonte: a) Indrusiak (1996). b) Java Media Framework (2011). c) Santos (2005). d) Neuroph (2011).

3.1.1 Linguagem Java

Java é uma linguagem de programação desenvolvida na primeira metade da década de 90, nos laboratórios da Sun Microsystems (INDRUSIAK, 1996). Esta linguagem foi desenvolvida com propósito de ser simples e de fácil uso, além de manter o poder de construção de linguagens que influenciaram na sua formação, como ADA 83, C++ e Eiffel (INDRUSIAK, 1996).

(47)

A linguagem Java apresenta como características, além do fato de ser orientada a objetos e ter sintaxe e uso simplificados, a distribuição com um vasto conjunto de bibliotecas, também chamadas de Application Programming Interface (API), que possuem integradas, em seus núcleos, rotinas acessíveis ao programador. O núcleo da linguagem Java possui um conjunto de bibliotecas incluso, os quais são conhecidos como Java API (INDRUSIAK, 1996).

É válido dizer que, para a execução de aplicações em linguagem Java, é ne-cessário a instalação, no ambiente de desenvolvimento, da máquina virtual Java (JVM), sobre a qual os aplicativos desenvolvidos nesta linguagem são executados. Devido a isto, aplicativos na linguagem Java podem ser executados nas mais dife-rentes plataformas desde que possuam a JVM instalada. Essa característica permi-tiu à linguagem Java uma grande dissipação nos mais diferentes dispositivos e pla-taformas, sob a forma de suas extensões como Java 2 Micro Edition (J2ME), para dispositivos móveis como celulares, ou Java 2 Standard Edition (J2SE), para desen-volvimento em computadores convencionais (INDRUSIAK, 1996).

3.1.2 Java Advanced Imaging (JAI)

A biblioteca Java Advanced Imaging - JAI consiste em um conjunto de rotinas voltadas a aquisição, manipulação e processamento de imagens digitais. O JAI provê um conjunto de rotinas que permitem a manipulação de imagens de forma simples e em alto nível (SANTOS, 2005). Esta biblioteca é compatível com a linguagem Java e possui, de forma integrada ao seu núcleo, funções que permitem a aplicação de técnicas sobre imagens digitais, como binarização, aplicação de negativo, detecção de bordas, entre outras.

3.1.3 Neuroph

O Neuroph é uma biblioteca que possui rotinas para a montagem, treinamento e execução de redes neurais artificiais. Esta biblioteca conta com código aberto e poucas classes, aspectos de grande importância para a sua utilização nos mais diversos aplicativos.

O Neuroph suporta a montagem e treinamento das mais variadas redes neurais artificiais. Na Tabela 2, abaixo, algumas destas redes suportadas podem ser vistas.

(48)

Tabela 2 – Redes neurais suportadas na biblioteca Neuroph. Redes Suportadas Adaline Perceptron Perceptron MultiCamada Hopfield Kohonen Hebbian Fonte: Próprio Autor.

Além das redes mostradas na Tabela 2, anteriormente, é válido ressaltar que o Neuroph consta com rotinas que representam alguns dos mais utilizados modelos de treinamento de redes neurais artificiais, como o BackPropagation (NEUROPH, 2011).

3.1.4 Java Media Framework (JMF)

A biblioteca Java Media Framework - JMF consiste em um conjunto de rotinas que permitem a adição de áudio e vídeo a aplicações desenvolvidas em Java. Esta conta com funções que vão desde a aquisição destas mídias através de dispositivos como câmeras e/ou microfones, até rotinas que permitem a manipulação dos dados provenientes destes dispositivos (JAVA MEDIA FRAMEWORK, 2011).

A biblioteca JMF permite operar com diferentes formatos de vídeo e áudio. Na Tabela 3, abaixo, alguns destes formatos podem ser vistos, juntamente com as operações que podem ser realizadas para cada um deles.

Tabela 3 – Formatos compatíveis com o JMF.

Tipo de Mídia Operações com o JMF

Audio Video Interleave (AVI) Leitura/Escrita

Moving Picture Experts Group (MPEG) Leitura

QuickTime Leitura/Escrita

(49)

Musical Instrument Digital Interface

(MIDI)

Leitura

Fonte: Próprio Autor.

3.2 DESENVOLVIMENTO DO SOFTWARE

O trabalho proposto se refere ao desenvolvimento de um software análogo a uma lousa digital, porém, com baixo custo. É notório mais uma vez salientar que, este trabalho, constitui uma parte adicional de um projeto similar anteriormente de-senvolvido na disciplina Projeto Anual por alunos da Universidade Estadual de Feira de Santana – UEFS, descrito na seção 2.2.4, o qual também propusera o desenvol-vimento de um software de mesmo âmbito, porém, diferindo do atual trabalho nas técnicas empregadas e no modo utilizado para detectar as interações do usuário com esta lousa.

Esta seção traz a descrição do que foi desenvolvido, de maneira conjunta às decisões tomadas neste desenvolvimento. Assim, as suas seções e subseções con-tam com aspectos que descrevem o desenvolvimento do software proposto, de-monstrando a utilização e aplicação dos algoritmos propostos na seção de funda-mentação teórica.

3.2.1 O sistema desenvolvido

O sistema desenvolvido corresponde ao software que possui as funções de uma lousa digital, utilizando como mecanismo de interação do usuário com este

software, a detecção de partes do corpo e a movimentação deste usuário em frente

a uma câmera comum.

Para um melhor entendimento do programa desenvolvido, um esquemático demonstrando o funcionamento deste pode ser visualizado na Figura 29, abaixo. Figura 29 - Funcionamento do programa.

(50)

Fonte: Próprio autor.

Através da Figura 29, observa-se que, primeiramente, é feita a aquisição das imagens provenientes da câmera, a qual é implementada com o uso de funções dis-ponibilizadas pela biblioteca JMF. Após esta aquisição, é realizada, com a varredura das imagens obtidas e submissão dos seus pixels ao algoritmo de detecção de pele demonstrado na seção 2.3.3.4, a detecção das zonas da imagem que correspondem à pele do usuário.

Com a submissão das imagens ao algoritmo de detecção de pele, tem-se as partes do corpo do usuário detectadas, as quais são separadas e interpretadas de maneira diferente para determinar a movimentação e eventos do mouse (como cli-ques). Esta separação é feita com a varredura da imagem em sentidos distintos jun-tamente com o uso de um algoritmo de continuidade, o qual permite a separação dos braços do usuário que são usados para a movimentação do mouse e determina-ção de seus eventos. É válido lembrar que, como demonstrado na Figura 29, é reali-zado um processamento das imagens provenientes do algoritmo de detecção de pele antes da execução do algoritmo de continuidade. Este processamento é realiza-do através de operações como a abertura e fechamento, além de binarização e de-tecção de bordas das imagens, as quais visam aumentar a eficácia do algoritmo de continuidades desenvolvido.

Por fim, as imagens correspondentes aos membros do usuário são submeti-das à rede neural Perceptron Multicamada com o auxílio da biblioteca Neuroph. Esta rede neural foi treinada com imagens que correspondem aos gestos utilizados para determinar os eventos do mouse, e é responsável pela determinação das respostas do software para com estes gestos.

As subseções, a seguir, destinam-se ao detalhamento de cada uma das eta-pas citadas anteriormente. Elas demonstram o raciocínio empregado na construção

(51)

de cada uma das etapas, trazendo imagens e trechos que auxiliam nesta demons-tração.

3.2.2 A aquisição das imagens

A aquisição das imagens é feita, com o uso de uma câmera convencional (webcam), através de rotinas próprias da biblioteca JMF. Esta biblioteca disponibiliza ao seu usuário a classe Player, a qual é responsável pela aquisição das imagens provenientes da câmera de forma vinculada a um objeto thread, permitindo que esta aquisição seja contínua.

O objeto Player, instanciado através de sua classe, conta com parâmetros que determinam o formato do vídeo (ou das imagens) adquiridas com a câmera. Es-tes parâmetros determinam a freqüência com que as imagens são adquiridas (frame

rate ou fps), seu tamanho, o tipo do dado usado para armazenar o vídeo e seu

espa-ço de cor, tendo sempre em vista as características e limitações da câmera utilizada. No Figura 30, a seguir, pode ser vista a construção de um objeto do tipo

Vide-oFormat, o qual é usado para a construção do Player. Este objeto é criado

determi-nando as características que o Player deve seguir para obter as imagens, ressaltan-do que as mesmas são limitadas pelas características da câmera.

Referências

Documentos relacionados

Para identificar quais treinamentos serão necessários para cada trabalhador ou equipe dentro de uma organização desenvolver um programa eficaz de T&amp;D, pode-se buscar

VUOLO, J.H. Fundamentos da Teoria de Erros, Edgard Blucher Ltda, São Paulo, 1992 YIN, R.K. Estudo de caso: planejamento e métodos, Bookman, Porto Alegre, 2005.. Quando a

A tabela 25 apresenta os resultados brutos desta avaliação em relação à característica busca e a tabela 26 exibe o resultado ponderado para esta característica.. A tabela 27

• Gerar nos alunos de Análise e desenvolvimento de software a capacidade de analisa, documentar e especificar sistemas computacionais de informação.. Estes devem fazer uso

• O ciclo de vida iterativo e incremental pode ser visto como uma generalização da abordagem em cascata: o software é desenvolvimento em incrementos e cada incremento é desenvolvido

• Deve-se avaliar o conjunto de requisitos essenciais para a definição do Documento de Visão do software e este deve incluir o escopo do projeto e suas limitações, bem como

• Depois de determinar os custos e benefícios para uma possível solução, você pode realizar a análise de custo- benefício.. Estudo

• Requisitos são tipicamente utilizados como informações fundamentais para a fase de projeto de um produto ou serviço, especificando as propriedades e funções necessárias