Uso de Visão Computacional para Interface Homem-Computador



Documentos relacionados
Ferramenta para detecção de fadiga em motoristas baseada no monitoramento dos olhos

SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

1.1. Organização de um Sistema Computacional

Detecção e Rastreamento de Objetos coloridos em vídeo utilizando o OpenCV

Procedimento de anexação de peças e envio

XIX CONGRESSO DE PÓS-GRADUAÇÃO DA UFLA 27 de setembro a 01 de outubro de 2010

Disciplina: Introdução à Informática Profª Érica Barcelos

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

Aula 3 - Registro de Imagem

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS

Aula 3 - Registro de Imagem

SCANNER DE TRIANGULAÇÃO LASER PARA PROTOTIPAGEM 3D

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

O Primeiro Programa em Visual Studio.net

VCA Treinamento em Algoritmo

Santa Cruz do Sul, outubro de 2015.

MANUAL PARA INCLUSÃO DIGITAL- ANDRAGOGIA

Segundo Pré-teste. Data de realização. 18 de Novembro de Local.

Pesquisa e organização de informação

Cálculo de volume de objetos utilizando câmeras RGB-D

RADIOLOGIA DIGITAL. Conceitos Básicos. Eizo Soluções Médicas

4 Segmentação Algoritmo proposto

Manual SAGe Versão 1.2 (a partir da versão )

Periféricos, dispositivos de entrada e dispositivos de saída

Alarme Automotivo com mensagem para móvel utilizando Arduino

Prof. Esp. Lucas Cruz

5 Extraindo listas de produtos em sites de comércio eletrônico

CorelDRAW UM PROGRAMA DE DESIGN

Passo 3: Posicionando a Câmera na Prova Didática Teórica ou na Prova de Defesa da Produção Intelectual

15 Computador, projeto e manufatura

Sistema de Controle de Solicitação de Desenvolvimento

Manual Sistema MLBC. Manual do Sistema do Módulo Administrativo

PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO

Algoritmos. Cláudio Barbosa

TÍTULO: GARRA ROBÓTICA PERCEPTIVA CATEGORIA: CONCLUÍDO ÁREA: CIÊNCIAS EXATAS E DA TERRA SUBÁREA: COMPUTAÇÃO E INFORMÁTICA

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

NAPNE / RENAPI. HEADdev. Versão traduzida e adaptada por Jéssica Froes NAPNE CEFET Bento Gonçalves RS 2006 Revisado por Josiane Pagani 2008

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens

PLANOS DE CONTINGÊNCIAS

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Localização de placas em imagens de veículos. Resumo

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática

Configuração do Ambiente de Trabalho

UFGD FCA PROF. OMAR DANIEL BLOCO 6 CLASSIFICAÇÃO DE IMAGENS

Guia Rápido. Copyright Todos os direitos reservados.

Fundamentos de Hardware

ULA Sinais de Controle enviados pela UC

UFGD FCA PROF. OMAR DANIEL BLOCO 4 PROCESSAMENTO DE IMAGENS

Aula 2 Aquisição de Imagens

PROCEDIMENTOS PARA CONVERSÃO DE IMAGENS DIGITALIZADAS EM DOCUMENTO PDF ÚNICO UTILIZANDO A IMPRESSORA FREEPDF XP.

PALAVRAS-CHAVE: Massas Nodulares, Classificação de Padrões, Redes Multi- Layer Perceptron.

CHECK - LIST - ISO 9001:2000

Atividade: matrizes e imagens digitais

Esclarecimento: Não, a operação de matching ocorre no lado cliente da solução, de forma distribuída.

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

SAJ. Cadastro Excepcional para Processos Digitais

7.Conclusão e Trabalhos Futuros

AULA 1 Iniciando o uso do TerraView

Departamento de Matemática - UEL Ulysses Sodré. Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

Um Driver NDIS Para Interceptação de Datagramas IP

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Entendendo como funciona o NAT

Lógica de Programação

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

Análise de Dados do Financeiro

possível até impedir o funcionamento do Windows. Faz-scuidado redobrado ao ativar determinados recursos.

Aula 03 PowerPoint 2007

PRINCÍPIOS DE INFORMÁTICA PRÁTICA OBJETIVO 2. BASE TEÓRICA. 2.1 Criando Mapas no Excel. 2.2 Utilizando o Mapa

Manual do usuário. Mobile Player

Organização e Arquitetura de Computadores I

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Anexo III Funcionamento detalhado do Sistema Montador de Autoria

Correção Automática de Testes de Múltipla Escolha MCTest - Versão para Android

CONTROLAR O PONTEIRO DO MOUSE UTILIZANDO O MOVIMENTO DE UM OLHO CAPTURADO ATRAVÉS DE UMA CÂMERA INFRAVERMELHA FIXA

Manual do Visualizador NF e KEY BEST

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Sumário INSTALAÇÃO DO SIATRON CONDOMÍNIO ATIVAÇÃO DA LICENÇA PRESTADORES DE SERVIÇOS PARÂMETROS DO SISTEMA

Introdução. O que é o Registro do Windows

IW10. Rev.: 02. Especificações Técnicas

Informática. Prof. Macêdo Firmino. Macêdo Firmino (IFRN) Informática Setembro de / 25

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Informática Aplicada a Radiologia

BH PARK Software de Estacionamento

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Desenvolvimento do Módulo de Pré-processamento e Geração de Imagens de. Imagens de Teste do Sistema DTCOURO

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Exercício 1: Ajustes rápidos em retrato

Planejando o aplicativo

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

ÍNDICE MANUAL SITE ADMINISTRÁVEL TV. 1. Introdução 2. Acessando o site administrável/webtv SITE ADMINISTRÁVEL 3. CONFIGURAÇÕES

Ajuda On-line - Sistema de Portaria. Versão 4.8.J

Transcrição:

UNIVERSIDADE FEDERAL DE GOIÁS UFG CAMPUS CATALÃO CAC DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO DCC Bacharelado em Ciência da Computação Projeto Final de Curso Uso de Visão Computacional para Interface Homem-Computador Autor: Lucas Faria Porto Orientador: Márcio de Souza Dias Catalão - 2011

Lucas Faria Porto Uso de Visão Computacional para Interface Homem-Computador Monografia apresentada ao Curso de Bacharelado em Ciência da Computação da Universidade Federal de Goiás Campus Catalão como requisito parcial para obtenção do título de Bacharel em Ciência da Computação Área de Concentração: Visão Computacional Orientador: Márcio de Souza Dias Catalão - 2011

F. Porto, Lucas Uso de Visão Computacional para Interface Homem-Computador/Márcio de Souza Dias- Catalão - 2011 Número de páginas: 48 Projeto Final de Curso (Bacharelado) Universidade Federal de Goiás, Campus Catalão, Curso de Bacharelado em Ciência da Computação, 2011. Palavras-Chave: 1. Visão Computacional. 2. Processamento de Imagens Digitais. 3. Interface Homem-Computador

Lucas Faria Porto Uso de Visão Computacional para Interface Homem-Computador Monografia apresentada e aprovada em Pela Banca Examinadora constituída pelos professores. de Márcio de Souza Dias Presidente da Banca Márcio Antônio Duarte Thiago Jabur Bittar

Dedico este trabalho a todos que me apoiaram nesta árdua jornada; os meu amigos, minhas irmãs e principalmente aos meus pais.

AGRADECIMENTOS Agradeço primeiramente a Deus por ter me dado sabedoria para superar todos os desafios durante esta jornada. Agradeço especialmente aos meus pais, Eloi Porto e Gessiene Andrade, no qual sou eternamente grato por me apoiarem em minhas escolhas, por estarem comigo nesta caminhada e principalmente por compreenderem a minha ausência. As minhas irmãs que são um exemplo caráter e determinação para vencer qualquer desafio. O agradecimento a todos os professores do DCC no qual sou grato pelos conhecimentos adquiridos. Aos colegas e companheiros de curso nos quais serão sempre lembrados: pelas histórias, aulas, provas, algumas brigas, festas e principalmente pela amizade construída; lembrados como uma família, caracterizada pela amizade forte que permanece mesmo com aqueles que por algum motivo mudaram de rumo no meio da jornada. Agradeço a turma de 2007, vale ressaltar a melhor. Algumas pessoas em especial que apareceram através do destino e que de maneira inexplicável marcou minha vida: Adam Moreira, Ana Paula Suzuki, Bleno Sampaio, Fábio Amorim, Faimison Porto, Fernando Antônio, Hugo Sica, Igor André, Janaína Teixeira, Leandro Pedrosa, Luana Fidellys (Band), Luiz Gustavo, Márcia Ribeiro, Marcos Bráulio, Máx Gabriel, Renato França, Ricardo Rodrigues, Roger Costa, Vinícius Gustavo, Wilklyney Pires. Muito obrigado a todos.

As derrotas só existem para aqueles que deixam de acreditar nas vitórias (Gichin Funakoshi)

RESUMO Porto, L. Uso de Visão Computacional para Interface Homem-Computador. Curso de Ciência da Computação, Campus Catalão, UFG, Catalão, Brasil, 2011, 48p. Pacientes portadores de tetraplegia apresentam um quadro clínico de paralisia grave dos membros abaixo do pescoço, como resultado, estas pessoas, portadoras de necessidades especiais tornam-se extremamente dependentes de auxílio em suas atividades cotidianas, tendo diversas dificuldades ao acesso à informação e uso dos meios computacionais disponíveis atualmente. O trabalho em questão aborda o estudo de técnicas processamento digital de imagens com foco em visão computacional, para o desenvolvimento de uma interface homem-computador voltado para estes usuários; baseado na utilização de uma webcam de baixa qualidade sem a necessidade de investimento ou criação de um hardware especial. Com o resultado deste estudo foi possível o desenvolvimento de um protótipo para captação e interpretação dos movimentos do olhar do usuário através da webcam e refletindo na movimentação do cursor do mouse. Os resultados obtidos foram satisfatórios com altas taxas de acertos, comprovando a viabilidade do modelo proposto de interface homem-computador. Palavras-Chaves: Visão Computacional, Processamento de Imagens Digitais, Interface Homem-Computador i

Sumário 1 Introdução 1 2 Estado da Arte 4 3 Fundamentação Teórica 6 3.1 Imagem Digital................................. 6 3.2 Visão Computacional.............................. 7 3.3 Busca por Objetos............................... 11 3.3.1 Imagem Integral............................ 12 3.3.2 Algoritmo AdaBoost.......................... 13 3.3.3 Árvore de Decisão............................ 15 4 Desenvolvimento 16 4.1 Abordagem Inicial............................... 16 4.2 Restrições.................................... 18 4.3 Carregar Modelos................................ 18 4.4 Obter Imagem.................................. 21 4.5 Localizar Olhos................................. 21 4.6 Pré-processamento............................... 23 4.7 Comparar Modelo de Decisão......................... 24 4.8 Mover Cursor.................................. 25 5 Análise e Resultados 26 5.1 Detalhes dos Testes............................... 26 5.2 Testes e Análises................................ 27 6 Conclusão 31 Referências 33 Apêndices 35 ii

A Código Fonte 36 A.1 Classe eyemouse................................ 36 iii

Lista de Figuras 3.1 Representação de uma Imagem digital, origem dos eixos em uma imagem e a representação de um ponto......................... 6 3.2 Relação entre as áreas de utilização de imagens................ 7 3.3 Passos de um sistema de Visão Computacional [Júnior, 2009]........ 8 3.4 Dispositivos utilizados para aquisição de imagem [Júnior, 2009]....... 9 3.5 Exemplo utilização de filtros de pré-processamento de imagem........ 9 3.6 Exemplo de extração de borda e contorno................... 10 3.7 Exemplo de segmentação de imagem [Júnior, 2009].............. 10 3.8 Exemplo de uma representação [Júnior, 2009]................. 10 3.9 Exemplo de reconhecimento das mãos para execução de uma determinada música [Júnior, 2009]............................... 11 3.10 Exemplos de cálculos com imagem integral [Viola e Jones, 2001]....... 12 3.11 Características Haar-like [Viola e Jones, 2001]................. 13 3.12 Exemplo de cálculo de um elemento de característica Haar-like....... 13 3.13 Características Haar-like selecionadas pelo AdaBoost [Santos, 2008]..... 14 3.14 Exemplo do classificador em cascata [Ma, 2007]................ 15 4.1 Passos de execução do protótipo proposto................... 17 4.2 Exemplos de posições do usuário em frente a webcam............. 19 4.3 Pontos na tela onde o usuário tem que olhar, tanto para a criação dos modelos quanto para o funcionamento do protótipo.............. 19 4.4 Modelos de decisão: Imagens capturadas do usuário olhando para cada região no monitor................................ 20 4.5 Parte da codificação do arquivo classificador no formato XML........ 20 4.6 Exemplo de criação de classificador e utilização do método de busca Haar de faces em uma imagem............................ 22 4.7 Região do par de olhos encontrados delimitado pelo retângulo vermelho... 22 4.8 Histogramas referentes a quatro tipos básicos de imagens [Gonzalez e Woods, 2000]. 23 iv

4.9 Aplicação de Técnicas de processamento de Imagens, temos respectivamente a imagem colorida, a mesma em escala de cinza e após a equalização do histograma.................................. 24 4.10 Imagem sendo comparada com os modelos de decisão carregados em memória 25 5.1 Imagem obtida durante a aplicação do primeiro teste............. 27 5.2 Imagem obtida durante a aplicação do segundo teste............. 28 5.3 Imagem obtida durante a aplicação do terceiro teste............. 29 v

Lista de Tabelas 4.1 Resultado da comparação da imagem obtida na webcam com os modelos de decisão conforme a Figura 4.10....................... 25 5.1 Resultado referente ao primeiro teste...................... 28 5.2 Resultado referente ao segundo teste...................... 29 5.3 Resultado referente ao terceiro teste...................... 30 vi

Lista de Siglas FPS LED OpenCV PDI RAM SSR SVM XML Frames Por Segundo Light-Emitting Diode Open Source Computer Vision Processamento Digital de Imagens Random Access Memory Six Segmented Rectangular Support Vector Machines extensible Markup Language vii

Capítulo 1 Introdução Atualmente o computador é a forma de comunicação mais utilizada no mundo, oferecendo ferramentas cada dia mais presente na comunicação. Sendo utilizados e-mails, fóruns de discussão, mensageiros eletrônicos e outros. A vantagem dos recursos computacionais para a comunicação é a facilidade ao acesso a informação e a integração entre pessoas do mundo inteiro, seja de forma para o convívio social ou um meio para relações comerciais [Martins, ]. Infelizmente uma parcela da população fica restringida ao acesso da tecnologia por não existir um mecanismo de interação com o mundo ao seu redor que se encaixe com sua limitação física. No Brasil existem mais de 24,5 milhões de pessoas com algum tipo de necessidade especial, incluindo física e mental. Isso representa 14,5% da população no ano 2000 [IBGE, 2000]. No mundo já existem diversas tecnologias com a finalidade de promover uma inclusão social para as pessoas com necessidades especiais, possibilitando uma maior acessibilidade a elas. Como exemplos, podem ser citadas adaptações em estruturas físicas de edifícios e ruas para facilitar o deslocamento para os cadeirantes, produtos com texto em braile para deficientes visuais, veículos adaptados, etc. Ambos os exemplos citados, são alguns dos diversos utensílios, adaptações, dispositivos e equipamentos criados visando facilitar a realização de algumas tarefas diárias e proporcionar uma vida mais produtiva e feliz, em casa, na escola ou no trabalho [Rocha e Couto, 2008]. No uso dos computadores a história não é diferente, para casos de deficiência física mais complexa, as tarefas mais simples, como uso do mouse e teclado se tornam difíceis e limitadas. Pessoas com tetraplegia ou problemas motores nos membros superiores ficam impossibilitadas do uso dos mesmos. Para tentar contornar essas limitações, diversos meios, sejam por softwares ou hardwares especiais foram criados e/ou adaptados para possibilitar interação destes usuários com o computador [Rocha e Couto, 2008]. O avanço das técnicas de processamento digital de imagens, estão possibilitando mais qualidade, melhoramento nas imagens, equipamentos mais avançados e viáveis, consequentemente novas soluções estão surgindo para possibilitar o acesso das pessoas de- 1

ficientes no meio computacional, onde estas soluções estão conseguindo ajudar na interação destes usuários. Um exemplo disso são as técnicas de Processamento Digital de Imagens (PDI) aplicadas nos tons das imagens, melhorando o entendimento de um usuário com dificuldades de distinguir ou perceber as diferenças entre as cores (daltonismo) [Moreira e Santos, 2009]. Com novos avanços e pesquisas na área de PDI, o termo visão computacional surge como um conjunto de técnicas possibilitando um programa extrair dados e interpretar as características relevantes em uma imagem possibilitando que um sistema ou o computador extraia as informações que foi pré-determinado. A ideia central dessa técnica é simular a visão humana no meio computacional baseando-se como o homem consegue distinguir um objeto ou uma característica importante em uma determinada imagem [Nascimento, 2009]. Com a aplicação das técnicas de PDI e Visão Computacional, espera-se neste trabalho conseguir por meio do uso de uma simples webcam do usuário, desenvolver um protótipo que identifique nas imagens obtidas em tempo real o rosto do mesmo, características e dados relevantes para obter a localização dos olhos e saber para qual a direção que o olho esta apontando na tela, com intuito de movimentar o cursor do mouse. Muitos detalhes vão ser relevantes para que este estudo obtenha um resultado satisfatório nos testes finais, onde diversas situações poderão influenciar no comportamento do protótipo, sendo alguns deles: o ambiente em que o usuário se encontra (iluminação), posicionamento do usuário em frente à câmera, se o mesmo usa óculos, computadores com poder de processamento considerados fracos, baixa qualidade da webcam, etc. Portanto, seria possível a criação do protótipo resultante deste estudo visando o controle do cursor do mouse através da mudança da posição dos olhos do usuário de forma eficaz e financeiramente acessível, sem a necessidade da criação de um hardware específico ou investimentos em uma webcam com uma resolução maior? É o que este estudo pretende responder. A presente monografia está dividida nos capítulos a seguir: Capítulo 1: Introdução Texto introdutório sobre a visão inicial do trabalho abordado, uma idéia do protótipo a ser desenvolvido, com ênfase no problema, objetivos e metas. Capítulo 2: Estado da Arte Aborda vários trabalhos semelhantes ao proposto neste trabalho, citando as principais características abordadas, as técnicas utilizadas, etc. Capítulo 3: Fundamentação Teórica 2

Ênfase na parte teórica por trás do trabalho proposto, reunindo a maioria dos conceitos científicos sobre processamento Digital de Imagens e Visão Computacional. Capítulo 4: Desenvolvimento Ênfase completa do desenvolvimento do protótipo. Descrição detalhada do algoritmo e das técnicas empregadas neste trabalho. Capítulo 5: Análise e Resultados Neste capítulo é abordada toda a análise referente à execução de testes e resultados alcançados no protótipo. Capítulo 6: Conclusão Conclusão do trabalho proposto e abordagem de trabalhos futuros. 3

Capítulo 2 Estado da Arte Nesta seção são apresentados alguns estudos semelhantes ao abordado aqui. Demonstrando ao leitor que a área citada neste trabalho trata-se de fontes de interesse de estudos científicos. Diversos trabalhos de processamento de imagens e visão computacional estão focados na extração de características faciais. No trabalho apresentado em [Carvalho et al., 2005] o objetivo é detectar as informações do olho humano por meio de suas características geométricas em uma imagem estática. Neste trabalho, técnicas de processamento foram utilizadas para possibilitar a extração de bordas revelando a circunferência que caracteriza a íris, posteriormente o centro da mesma. É apresentado em [Moreira e Santos, 2009], o desenvolvimento de um software com a mesma finalidade proposta neste trabalho. Os autores utilizaram alguns conceitos de processamento de imagens digitais e visão computacional importantes para chegar ao resultado esperado. A captação para a extração e interpretação dos dados essenciais, se deu com o uso de uma webcam localizada na parte central e superior do monitor possibilitando captura total da face do usuário. O desenvolvimento das técnicas de processamento das imagens é toda feita na linguagem de programação Matlab que comporta diversos recursos e técnicas para o processamento de imagens. O funcionamento geral é descrito com os seguintes passos: localização da região dos olhos através da comparação de template, neste caso o template é uma imagem de um olho que serve como modelo para a busca em imagem e posteriormente, localização da pupila comparando com um template padrão da pupila. Com a região da pupila localizada na imagem, o último passo é obter a coordenada cartesiana (x,y) referente ao centro da pupila, possibilitando associar esta posição em uma coordenada no monitor, toda mudança da posição central da pupila reflete na posição do cursor do mouse no monitor. Outro trabalho semelhante, apresentado em [Peixoto et al., 2008], demonstra a comparação de algumas técnicas existentes para localização da região dos olhos em uma 4

imagem digitalizada. A metodologia deste trabalho consiste no uso de três tipos de combinações entre redes neurais artificiais e algoritmos de aprendizado de máquinas. No treinamento da rede foram utilizadas imagens de faces possibilitando maior fidelidade do sistema de reconhecimento. Cada imagem foi devidamente normalizada e distribuída como entrada de treinamento para futuras comparações para a rede. A saída foi previamente definida com apenas quatro posições, são elas: esquerda, direita, em baixo e em cima; na qual se refere à direção que o cursor do mouse tem que se mover. A técnica de rastreamento do olhar usando redes neurais também é proposto em [Nascimento, 2009] que tem como característica principal o uso de um óculos especial para utilização do usuário, que tem acoplado uma webcam que utiliza iluminação de 6 LEDs infravermelhos cujo comprimento de onda melhora a visualização da íris. Este dispositivo foi proposto no trabalho [Vieira, 2009] e desenvolvido em 2008 [Vieira e Fontana, 2008]. O trabalho proposto em [Restom, 2006] propõe o reconhecimento das características faciais (ponta do nariz e olhos), que são detectados e monitorados em tempo real para usar suas ações como eventos de mouse. As coordenadas e movimento da ponta do nariz no vídeo são interpretados para tornar as coordenadas e movimento do ponteiro do mouse na tela do usuário. O piscar dos dois olhos são interpretados como eventos de click do botão do mouse. O único dispositivo externo que o usuário precisa é de uma webcam que alimenta o programa com as imagens de vídeo. O trabalho é desenvolvido na linguagem de programação Java que implementa o filtro SSR (Six Segmented Rectangular) e o classificador SVM (Support Vector Machines) que trabalha com aprendizado de máquina a partir de imagens de exemplo, ambas técnicas são utilizadas para encontrar a face e as características faciais. No próximo capítulo será abordada a parte teórica do trabalho proposto. 5

Capítulo 3 Fundamentação Teórica 3.1 Imagem Digital A representação de uma imagem digital se dá por meio de uma matriz cujos índices de linhas e colunas identificam um determinado ponto na imagem. Essa representação é definida por uma função bidimensional f(x,y), onde x e y são coordenadas espaciais na imagem chamados pixels, que corresponde ao valor do elemento e a intensidade ou nível de cinza naquele ponto da matriz. Uma imagem digital é em geral composta por uma quantidade finita de pixels, sendo que cada um dos quais tem uma localização e um valor de intensidade específico. A Figura 3.1 abaixo, representa uma imagem digital, monocromática, mostrando sua origem no ponto (0,0) e o posicionamento dos eixos de coordenadas cartesianas. Figura 3.1: Representação de uma Imagem digital, origem dos eixos em uma imagem e a representação de um ponto. O termo Processamento de Imagens Digitais é o estudo computacional sobre imagens que se divide nas seguintes subáreas; de acordo com o foco realizado sobre a imagem, 6

sendo elas a computação gráfica, processamento de imagens e visão computacional, cada uma destas subáreas contém aspectos particulares que as diferenciam das demais. A computação gráfica é a subárea que procura a representação de dados e informação através de uma visualização gráfica. A área de processamento de imagem tem como característica a entrada de uma determinada imagem em seu processo, que após ser processada tem como resultado de saída uma nova imagem. A visão computacional utiliza uma imagem como ponto de partida para a identificação, medição ou quantificação de objetos na mesma. A subdivisão das áreas comentadas anteriormente é representada conforme a Figura 3.2 que também mostra a subárea de processamento de dados; a mesma tem como característica a entrada de uma massa de dados, a mesma é processada e tem como retorno informações relevantes para resolução de um determinado problema. Mesmo com esta divisão, nada impede que as subáreas se relacione entre si para alcançar o objetivo desejado [Souza, 2008]. Figura 3.2: Relação entre as áreas de utilização de imagens. 3.2 Visão Computacional Na visão computacional, os algoritmos mais sofisticados vêm sendo usados em aplicações de diversas áreas e finalidades, tais como rastreamento de objetos, detecção de movimentos, reconhecimento de gestos e faces, dentre outras. Um exemplo de aplicação seria um sistema de reconhecimento de caracteres, que poderia ser utilizado para obter a informação automaticamente da placa de um motorista multado; outro exemplo de aplicação seria um sistema de vigilância capaz de identificar o movimento de uma pessoa e movimentar a câmera para acompanhá-la de maneira automática [Leão et al., 2011]. Em geral, as aplicações de Visão Computacional são estruturadas conforme ilustrado 7

na Figura 3.3. Nesta figura, cada retângulo representa uma etapa do processo de extração e transformação de imagens em dados. Figura 3.3: Passos de um sistema de Visão Computacional [Júnior, 2009]. A primeira etapa corresponde à aquisição da imagem, isto é, captar uma imagem digital através de um dispositivo de captação, por exemplo, uma câmera, scanner, leitor biométrico, etc. Essa imagem capturada é tratada durante o pré-processamento a fim de prepará-la para a etapa seguinte, as melhorias depende do problema relacionado, as técnicas podem ser para retirar ruídos, realçar o contraste, entre outras; visando aumentar o sucesso da extração de características importantes para a solução do problema. Durante a detecção e segmentação são selecionadas as regiões das imagens que podem ter informações relevantes, um exemplo seria um sistema de reconhecimento de caracteres, onde as informações relevantes são os caracteres disponíveis na imagem. Na representação, as regiões segmentadas na etapa anterior são preparadas para o último passo, a interpretação. Nesta etapa, finalmente é retido as informações desejadas da imagem. Logo abaixo há a descrição mais detalhada dos passos citados acima. Aquisição: Como visto em [Gonzalez e Woods, 2000] e [Jähne et al., 2002], este passo permite a produção de uma imagem digital, sendo que a aquisição está ligada diretamente ao processo de captura da imagem por um ou vários dispositivos de captura. O resultado da aquisição da imagem pode variar entre uma imagem bidimensional, tridimensional ou ainda um vídeo que é uma sequência de imagens. O resultado da imagem depende diretamente do dispositivo de captura. Na Figura 3.4 mostra alguns dispositivos comuns de aquisição de imagens. Pré-processamento: De acordo com [Gonzalez e Woods, 2000], neste passo é utilizado técnicas relevantes na visão computacional que são aplicadas em imagens; visando melhorar significativamente a qualidade e/ou realçar alguma característica presente na imagem, assim deixá-la mais adequada para as próximas etapas. Tem como exemplo de aplicação de filtros em imagens: a redução de ruídos, o controle do nível de brilho ou con- 8

Figura 3.4: Dispositivos utilizados para aquisição de imagem [Júnior, 2009]. traste, entre outras aplicações. A seguir dois exemplos de aplicação de filtros em imagem; na Figura 3.5(a) temos a imagem original; enquanto na Figura 3.5(b) temos a mesma imagem em escala de cinza, e por último na Figura 3.5(c), temos a imagem em preto e branco, também conhecida como imagem binária. Figura 3.5: Exemplo utilização de filtros de pré-processamento de imagem. Extração de características: Este passo visa transformar os dados de entrada da imagem em um conjunto de características relevantes para alcançar o objetivo esperado, como exemplos, a detecção de textura, detecção de formas geométricas, detecção de bordas, cantos, pontos ou movimento; como é mostrado na Figura 3.6(a), temos uma imagem comum e na Figura 3.6(b) temos a extração das bordas da mesma, deixando evidente a presença das formas geométricas presentes nos edifícios [Jähne e Haußecker, 2000]. Detecção e segmentação: Em [Gonzalez e Woods, 2000], o autor cita que em algum ponto do processo, uma decisão é feita sobre a importância de uma ou mais regiões da imagem. Neste passo visa dividir a imagens em partes ou objetos para facilitar sua análise, um exemplo prático seria em um sistema de reconhecimento de caracteres, onde a segmentação extrairia os caracteres presentes na imagem. A Figura 3.7 ilustra um exemplo de segmentação. Temos na Figura 3.7(a) a imagem com o objeto a ser localizado, enquanto na Figura 3.7(b) temos a imagem de fundo sem a existência do mesmo, por último na Figura 3.7(c), temos a identificação do objeto de interesse na imagem. 9

Figura 3.6: Exemplo de extração de borda e contorno. Figura 3.7: Exemplo de segmentação de imagem [Júnior, 2009]. Representação: No passo de representação é uma parte da solução para transformar os dados da imagem em uma forma adequada de dados, agrupando-os e armazenando os diversos padrões presentes no objeto [Jähne e Haußecker, 2000]. São enfatizadas as características de interesse para o passo seguinte. No exemplo de reconhecimento de caracteres, buracos e concavidades são características importantes que ajudam na distinção de algumas letras [Gonzalez e Woods, 2000]. Outro exemplo de representação pode ser visto na Figura 3.8; na Figura 3.8(a) temos a imagem sem a presença do objeto. Na Figura 3.8(b) temos a presença do objeto na imagem; a localização através da segmentação pode ser vista na Figura 3.8(c). No último passo (Figura 3.8(d)), a imagem é transformada para preto e branco contendo apenas o contorno do objeto, neste caso o contorno poderia representar que o objeto está em movimento. Figura 3.8: Exemplo de uma representação [Júnior, 2009]. 10

Interpretação: Por fim, no passo de interpretação permite a atribuição de significado ao conjunto de objetos reconhecidos na imagem [Gonzalez e Woods, 2000]. Geralmente neste passo, a entrada é uma quantidade pequena de dados provinda dos passos anteriores, efetuando uma classificação dos objetos detectados em diferentes categorias [Jähne e Haußecker, 2000]. No exemplo de reconhecimento de caracteres, este passo seria responsável por identificar que um determinado conjunto de objetos, onde neste caso, cinco números seguidos por um hífen e outros três números representa um código de endereço postal, porém outros conjuntos podem ter diversos significados. Outro exemplo na Figura 3.9(a) mostra uma pessoa simulando estar tocando um instrumento, enquanto na Figura 3.9(b) o sistema identifica e interpreta o posicionamento das mãos, resultando na execução de uma música (Figura 3.9(c)). Figura 3.9: Exemplo de reconhecimento das mãos para execução de uma determinada música [Júnior, 2009]. 3.3 Busca por Objetos No trabalho de [Fu e Mui, 1981], na visão computacional o primeiro passo em análise de imagens é a segmentação da imagem; como foi discutido anteriormente aplicação de técnicas de segmentação é importante para medição, quantificação ou identificação de objetos em uma cena. As técnicas de segmentação de imagens podem ser baseadas nas características de um determinado pixel como cor e intensidade; o mesmo é capaz de identificar pontos, linhas, bordas e combina-los. De acordo com [Carvalho et al., 2005], a detecção de faces em uma imagem, pode ser caracterizada pela utilização de técnicas de extração de contorno para localização e identificação de formas geométricas características de um rosto humano, variações de cores e detecção de determinadas características faciais, como sobrancelhas, orelhas, olho, boca, etc. Neste trabalho foi utilizo a técnica de segmentação proposta por [Viola e Jones, 2001]. Este método consiste no aprendizado a partir de uma entrada de um conjunto de imagens 11

que classifica o objeto a ser localizado. Como sugerido em [Viola et al., 2005], essa técnica pode ser usado para detectar faces humanas ou qualquer outro objeto dependendo do treinamento inicial. Nos trabalhos apresentados em [Castrillón-Santana et al., 2008] e [Lienhart e Maydt, 2002] é deixado bem claro a eficiência na detecção de faces do método proposto acima. O algoritmo de Viola-Jones é composto de três partes distintas que o distingue de outros, elas são: (1) a criação da imagem integral, (2) a utilização do algoritmo Adaboost para classificação utilizando características Haar-like e (3) a criação de uma estrutura em árvore, chamada classificadores em cascata [Oliveira, 2008]. 3.3.1 Imagem Integral De acordo com [Santos, 2008], o método da imagem integral foi abordado para ser possível localizar de maneira eficiente a presença ou não de uma característica Haar-like em diversas localizações (sub-janelas) na imagem em que se quer localizar um objeto. Esta técnica corresponde ao somatório dos valores da intensidade de todos os pixels localizados acima e a esquerda do pixel em questão. Na Figura 3.10 temos o exemplo de quatro sub-janelas em uma imagem qualquer, onde o valor da imagem integral na posição 1 é o resultado da soma da intensidade dos pixels no retângulo A. O valor da posição 2 é igual a soma de A+B, para a posição 3 é A+C e por último a posição 4, o valor é a soma de A+B+C+D. Para obter os valores dos pixels do retângulo D o resultado é dado por 4+1-(2+3) [Santos, 2008]. Para descobrir o valor médio desta região, basta dividir o valor do somatório da intensidade dos pixels pela quantidade dos mesmos. Os processos seguintes serão realizados com base no valor da imagem integral como citado acima. Figura 3.10: Exemplos de cálculos com imagem integral [Viola e Jones, 2001]. Na Figura 3.11 mostra as características do tipo Haar-like, cada uma contém retângulos claros e escuros que representam as regiões da característica. O resultado referente à soma 12

dos valores de intensidade dos pixels entre as regiões claras são subtraídas pela soma das regiões escuras (Figura 3.12(a)); este valor encontrado representa a característica determinada para aquela região na imagem (Figura 3.12(b)). Esta técnica é eficiente para avaliar se existe ou não uma característica Haar-like em uma determinada posição na imagem [Araujo, 2010]. Figura 3.11: Características Haar-like [Viola e Jones, 2001]. Figura 3.12: Exemplo de cálculo de um elemento de característica Haar-like. 3.3.2 Algoritmo AdaBoost De acordo com [Kuncheva, 2004] o algoritmo de aprendizado AdaBoost é uma variação do Adaptive Boosting. O mesmo define quais das características Haar-like serão utilizadas e quais os valores dos limiares para cada uma das características. De acordo com [Viola e Jones, 2001] um bom classificador não necessita de uma grande quantidade de características Haar-like, o mesmo pode ser obtido pela combinação de um número pequeno das mesmas; tornando um dos principais problemas, escolher qual das características é mais indicada para alcançar o resultado desejado. 13

Nas Figuras 3.13(a) e 3.13(b) o algoritmo escolheu as duas características Haar-like para identificação da face na imagem positiva de entrada (Figura 3.13(c)). Nas Figuras 3.13(d) e 3.13(e) mostra a sobreposição das características Haar-like na mesma imagem de entrada. Na Figura 3.13(d) é possível perceber que a característica selecionada foi a de dois retângulos na altura dos olhos e do nariz, neste caso o algoritmo percebeu a diferença de luminosidade na imagem entre o nariz e a região dos olhos. Enquanto na Figura 3.13(e) a diferença de luminosidade esta entre a região dos olhos e a testa [Santos, 2008]. Figura 3.13: Características Haar-like selecionadas pelo AdaBoost [Santos, 2008]. Para que a identificação seja executada rapidamente, é necessário ter uma sequencia de classificadores em ordem crescente, onde os primeiros classificadores contém uma quantidade de característica muito menor que os últimos, ou seja, o primeiro classificador já descarta a maioria das sub-janelas que não contém o objeto com muito pouco processamento, pois realiza o cálculo para apenas duas características Haar-Like; segundo [Viola e Jones, 2001] esta operação executa apenas 60 instruções de um microprocessador. Os próximos classificadores executam o mesmo procedimento citados acima, porém utilizando uma quantidade maior de características Haar-like. À medida que a sub-janela vai avançando, outros classificadores mais complexos são aplicados, consequentemente mais processamento é necessário, esta estrutura de formação hierárquica dos classificadores é conhecida como árvore de decisão em cascata, se a subjanela passa por todos os classificadores da árvore, a mesma é reconhecida como face [Santos, 2008]. 14

3.3.3 Árvore de Decisão Na etapa de aprendizado do AdaBoost, o algoritmo é responsável por escolher as características Haar-like para cada classificador e treina-lo da melhor maneira possível. O resultado do processo de aprendizagem são os classificadores fracos, cada um contendo um limiar e características Haar-like; todos são combinados, resultando em um classificador forte visando minimizar a ocorrência de falsos positivos durante a busca [Araujo, 2010]. A Figura 3.14 mostra os passos através dos classificadores, onde a sub-janela pode ser rejeitada por um dos classificadores ou no fim ser considerada como o objeto localizado na imagem. A aplicação do treinamento baseado em meta heurística AdaBoost, os últimos classificadores são treinados com as amostras que os primeiros não conseguiram identificar de maneira correta, ou seja, os falsos positivos que passaram pelos classificadores iniciais não irão passar pelos próximos classificadores [Santos, 2008]. Esta abordagem demonstra a eficiência na localização de um objeto em uma imagem. No próximo capítulo aborda a descrição detalhada do protótipo deste trabalho. Figura 3.14: Exemplo do classificador em cascata [Ma, 2007]. 15

Capítulo 4 Desenvolvimento 4.1 Abordagem Inicial Neste capítulo serão abordados todos os passos realizados para se chegar ao resultado esperado deste trabalho. Para o desenvolvimento foi utilizado a linguagem de programação C++ por ter suporte com a biblioteca OpenCV (Open Source Computer Vision) escrita em C e C++ otimizada para processadores multicores; com suporte aos sistemas operacionais Unix e Windows. A biblioteca contém interface de desenvolvimento para as linguagens de programação C, C++ e Python; a mesma contém mais de 2000 técnicas robustas e eficientes voltadas para computação aplicado nas áreas de processamento de imagens, visão computacional e com um forte foco em aplicações com imagens em tempo real [Bradski e Kaehler, 2008]. O hardware envolvido no desenvolvimento e testes do protótipo foi um notebook, com tela de 15,4 polegadas, processador Intel Core i3 2,26GHz com 3GB de memória RAM, o sistema operacional é o Windows 7 Ultimate 64 Bits. Para a programação foi utilizada a plataforma de desenvolvimento Microsoft Visual Studio C++ 2010 Express Edition que é disponibilizada gratuitamente no site do software e é de simples configuração a integração da biblioteca OpenCV. Para atender a proposta deste trabalho, a webcam utilizada é que vem integrada no notebook, uma webcam com resolução baixa de 640 X 480 pixels. Esta decisão visa o funcionamento do protótipo sem a necessidade de criação ou compra de um hardware especial como acontece em [Nascimento, 2009] que utiliza uma webcam com iluminação especial acoplado em um óculos para identificação da íris. Com esta escolha, a mesma influenciou na precisão final do protótipo, pois a ideia inicial era o desenvolvimento de um protótipo que rastreasse as coordenadas do centro da pupila do olho do usuário, fazendo uma referência desta coordenada com uma coordenada qualquer no monitor, com isso para qualquer região que o usuário olhasse na tela o mouse 16

iria se mover para a mesma. A aplicação da ideia inicial não foi possível pelo fato da webcam não ter resolução e qualidade suficiente para extração das borda do olho e o círculo da íris para a localização do centro da pupila. A abordagem deste trabalho foca com a comparação de imagens da região dos olhos do usuário, descrita com mais detalhes neste capítulo. A mesma não é tão precisa quanto à primeira, mas bons resultados com os recursos de hardware presentes foram alcançados. Os passos de execução do protótipo podem ser observados na Figura 4.1, onde cada retângulo representa um passo importante para obter o resultado esperado, sendo eles Carregar Modelos, Obter Imagem, Localizar Olhos, Pré-processamento, Comparar Modelo de Decisão e por último Mover Cursor. Figura 4.1: Passos de execução do protótipo proposto. Carregar Modelos: Neste passo é carregado em memória o classificador XML (Extensible Markup Language) para localização da região dos olhos e as imagens para comparação em tempo de execução, estas imagens são chamadas de Modelos de Decisão. Obter Imagem: Neste passo é responsável por obter o fluxo de imagens do usuário captadas pela webcam. Localizar Olhos: Em cada imagem captada pela webcam no passo anterior é feita a busca para identificação da região dos olhos do usuário. Pré-processamento: Neste passo é efetuado o tratamento na imagem da região dos olhos obtida do passo anterior, este tratamento tem como objetivo realçar as carac- 17

terísticas presente na imagem deixando-a mais adequada para o próximo passo. Comparar Modelo de Decisão: Com a imagem pré-processada o próximo passo é compara-la com todas as imagens em memória (Modelos de Decisão) visando descobrir em qual direção o usuário esta focando o olhar. Esta comparação leva em conta com qual dos modelos a imagem mais se parece. Mover Cursor: No último passo é movimentado o cursor do mouse para a direção da região resultante do passo anterior. Após a movimentação do cursor do mouse, o protótipo pode ter dois possíveis estados, onde o protótipo teria sua execução finalizada ou voltar para o passo Obter Imagem. Caso o protótipo não seja finalizado será obtida a próxima imagem do fluxo da webcam sendo aplicado todos os passos até a nova movimentação do mouse. Todos os passos acima serão detalhados mais adiante neste capítulo. 4.2 Restrições Antes de descrever todos os passos do protótipo é necessário que algumas restrições sejam obedecidas, tais como manter a cabeça na posição reta, com toda a face do usuário de frente, centralizada e visível para captura da webcam, visando o processamento correto da região dos olhos. A Figura 4.2 mostra alguns exemplos de posições do usuário em frente a webcam, note que o único posicionamento correto é da Figura 4.2(a); enquanto na Figura 4.2(b) mostra a posição do usuário mais a esquerda na imagem, nesta posição o olhar do usuário não tem deslocamento da íris para a esquerda quando o mesmo olhando nesta região do monitor, já nos demais exemplos se torna impossível da localização da região dos olhos necessária para o funcionamento correto do protótipo. 4.3 Carregar Modelos No início da execução do protótipo ocorre com o carregamento em memória das imagens dos modelos de decisão e do classificador XML que serão abordados com mais detalhes mais adiante neste capítulo. Os modelos de decisão são imagens da região dos olhos já processadas e criadas pelo protótipo a partir de imagens do usuário. As mesmas servirão de modelos para comparação com a imagem da região dos olhos do usuário capturadas em tempo real pela webcam. 18

Figura 4.2: Exemplos de posições do usuário em frente a webcam. Para a criação dos modelos de decisão, o usuário deverá olhar em alguns pontos da tela do computador. As imagens modelos da região dos olhos do usuário são processadas, salvas em um diretório do protótipo e são carregadas em memória uma única vez no início a cada execução do mesmo. Os modelos de decisão são divididos em cinco classificações das regiões no monitor, com elas o protótipo poderá identificar para qual das cinco regiões o usuário esta olhando, sendo elas: 1 - Em cima, 2 - Centro, 3 - Em Baixo, 4 -Direita e 5 - Esquerda, conforme representado na Figura 4.3 os pontos. Na Figura 4.4 demonstra as imagens adotadas como modelo comparativo para determinar qual região o usuário esta olhando no monitor. Para cada região é captura uma imagem da região dos olhos do usuário, a mesma é pré-processada e salva pelo protótipo. Figura 4.3: Pontos na tela onde o usuário tem que olhar, tanto para a criação dos modelos quanto para o funcionamento do protótipo. 19

Figura 4.4: Modelos de decisão: Imagens capturadas do usuário olhando para cada região no monitor. Também é neste passo que é efetuado carregamento do arquivo classificador no formato XML, o mesmo contém os modelos de classificação de reconhecimento da região dos olhos baseado na técnica de segmentação para busca em tempo real proposta em [Viola e Jones, 2001], na Figura 4.5 representa uma pequena parte da codificação deste classificador mostrando descrição dos retângulos presentes na característica e dos valores obtidos após o treinamento em uma imagem positiva. Uma vantagem desta técnica de busca é para alterar o objeto a ser localizado basta carregar o classificador referente ao mesmo. A OpenCV contém diversos classificadores prontos para serem utilizados em aplicações, como busca de faces e características faciais tais como par de olhos, sobrancelha, nariz, boca, olho esquerdo, olho direito, etc. Neste trabalho foi utilizado o classificador de busca para localização da região na imagem que contenha o par de olhos, este classificador contém 15000 amostras negativas e 7000 amostras positivas de pares de olhos detectados, de tamanho 45x11 pixels cada [Castrillón Santana et al., 2007]. Com essa classificador é possível a localização do par de olhos disponível em qualquer face em uma imagem estática ou em tempo real [Bradski e Kaehler, 2008]. Figura 4.5: Parte da codificação do arquivo classificador no formato XML. 20

4.4 Obter Imagem Com os modelos carregados em memória no passo anterior, agora é obter o fluxo de vídeo da webcam. Este passo é responsável pela entrada da imagem do usuário para alcançar o resultado proposto. O fluxo de vídeo da webcam processado pelo protótipo é cerca de 30 FPS (Frames Por Segundo) ou seja 30 imagens capturadas do usuário, onde cada uma vai passar pelos demais passos para a movimentação do cursor do mouse. No trabalho proposto em [Jackson, 1995], este valor obtido (30 FPS), para a indústria, é o mínimo para poder determinar sendo um fluxo de vídeo com qualidade. Esta informação é de suma importância para a resposta do movimento do cursor do mouse, não sendo perceptível qualquer atraso em todos os passos do processamento da informação, desde a captura da image até a movimentação do cursor. 4.5 Localizar Olhos Para o processo de reconhecimento da região dos olhos em imagens utilizada neste trabalho, é uma técnica de aprendizado de máquina baseada nas características Haar-like vista na seção 3.3. Esta foi proposta por [Viola e Jones, 2001] e em [Viola et al., 2005] sendo aperfeiçoada por Rainer Lienhart e faz parte das técnicas de busca disponíveis na biblioteca OpenCV. A mesma é capaz de processar imagens em alta velocidade com altas taxas de acertos; para sua utilização é necessário o classificador citado anteriormente com as características do objeto para busca do mesmo. A abordagem de busca de [Viola e Jones, 2001] através das características Haar-like é muito interessante, esta abordagem codifica a existência dos contrastes entre regiões da imagem. O conjunto destas informações podem ser usadas codificando regiões de contraste localizadas, por exemplo, em uma face humana. Este método de busca através das características comuns presentes no objeto visa tornar a detecção em um processo mais eficiente. Para a utilização do método de detecção é necessário a utilização do classificador citado anteriormente. O classificador é obtido após o treinamento com muitas imagens do objeto a ser identificado em imagens, uma bola, um carro ou uma face por exemplo. Essas imagens recebem a classificação de Imagens Positivas. São utilizadas outras imagens durante o treinamento, sendo imagens aleatórias que não contenha o objeto em questão, estas são classificadas como Imagens Negativas [Viola e Jones, 2001]. A Figura 4.6 mostra este processo descrito acima, onde na Figura 4.6(a) temos a representação das Imagens Positivas e Imagens Negativas, aplicando-as no método de treinamento disponível na biblioteca OpenCV obteremos o classificador XML conforme a Figura 4.6(b). Aplicando 21

o método de busca em uma imagem qualquer utilizando este classificador (Figura 4.6(b)), obteremos a localização de todas as faces na foto (Figura 4.6(c)). Figura 4.6: Exemplo de criação de classificador e utilização do método de busca Haar de faces em uma imagem. Como pode ser visto em [Castrillón-Santana et al., 2008] e [Júnior, 2009] a aplicação desta técnica acima é bastante eficiente. Na Figura 4.7 mostra a região dos olhos encontrado pelo método de classificação Haar delimitada pelo retângulo vermelho. A aplicação no fluxo de vídeo da webcam, retorna apenas a região dos olhos do usuário necessária para atingir o objetivo proposto, sendo o restante da imagem eliminado para evitar processamento desnecessário que pode prejudicar o desempenho final. Figura 4.7: Região do par de olhos encontrados delimitado pelo retângulo vermelho. 22

4.6 Pré-processamento O próximo passo é de pré-processamento da imagem na região dos olhos retornado do passo anterior. Esta etapa é de suma importância nesta parte do protótipo, a imagem captada é convertida de imagem colorida para imagem em escala de cinza, este processamento é necessário para a aplicação do próximo método de processamento visando a melhora do contraste da imagem. No trabalho de [Gonzalez e Woods, 2000] a representação do contraste é uma medida qualitativa e que está relacionada com a distribuição dos tons de cinza em uma imagem. O histograma é a representação gráfica desta distribuição dos níveis de cinza de uma imagem. A técnica equalização de histograma tem como objetivo melhorar a qualidade da imagem obtendo o melhor contraste da imagem capturada. Na Figura 4.8 tem a representação dos histogramas de quatro imagens básicas, sendo elas uma imagem escura na Figura 4.8(a), uma imagem clara (Figura 4.8(b)), imagem de baixo contraste (Figura 4.8(c)) e a última, uma imagem de alto contraste (Figura 4.8(d)). Figura 4.8: Histogramas referentes a quatro tipos básicos de imagens [Gonzalez e Woods, 2000]. Esta técnica melhora o contraste da imagem, resolvendo parcialmente a questão do problema de variação de luminosidade no ambiente, pois mesmo com uma mudança significativa na claridade, mais escuro ou mais claro, o resultado da equalização preserva as características importantes para o passo seguinte na execução do protótipo. A Figura 4.9 mostra a melhora na imagem após aplicação das técnicas de processamento de imagens, onde temos a imagem colorida a esquerda, ao centro a imagem em 23

escala de cinza e a direita a imagem após a equalização de seu histograma. Figura 4.9: Aplicação de Técnicas de processamento de Imagens, temos respectivamente a imagem colorida, a mesma em escala de cinza e após a equalização do histograma 4.7 Comparar Modelo de Decisão Com a imagem processada, o próximo passo é a comparação desta com os modelos de decisão. Como visto na seção 4.3, os modelos de decisão são imagens processadas do usuário focando o olhar nos pontos determinados na região do monitor carregada em memória no início da execução do protótipo. A região dos olhos encontrada em cada frame da webcam, é comparada após o pré-processamento com todos os modelos de decisão. No trabalho apresentado em [Bradski e Kaehler, 2008] descreve claramente a eficiência do método proposto para comparação de duas imagens disponível na OpenCV; este processo é feito pixel-a-pixel levando em conta a posição do mesmo na imagem. Para cada comparação com o modelo, é retornado um valor referente a igualdade das duas imagens, onde se o retorno for zero significa que as duas imagens são idênticas, caso for diferente de zero, significa que as imagens não são iguais, quanto maior este valor maior a diferença entre mesmas. Durante a execução do protótipo a imagem pré-processada originada do passo anterior é comparada com as imagens dos modelos de decisão. Este passo de comparação visa identificar com qual dos modelos em memória a imagem obtida em tempo real mais se parece. Esta identificação é importante para determinar para qual sentido o cursor do mouse tem que se mover. Na Figura 4.10 representa o método de comparação citado anteriormente, onde cada imagem do modelo de decisão que representa uma região do monitor é comparada com a imagem da obtida pela webcam em tempo real. O resultado deste processo comparativo entre as imagens dos modelos de decisão e a imagem pré-processada da região dos olhos do usuário, obtida pela webcam, pode ser visto na tabela 4.1. Com a identificação do menor valor de comparação na tabela, podemos associar que o usuário esteja olhando para aquela determinada região no monitor, com isso definimos para qual direção o cursor do mouse deverá se mover. 24

Figura 4.10: Imagem sendo comparada com os modelos de decisão carregados em memória Tabela 4.1: Resultado da comparação da imagem obtida na webcam com os modelos de decisão conforme a Figura 4.10 Resultado da Comparação 4.8 Mover Cursor Modelo Resultado Imagem 1 6345 Imagem 2 4789 Imagem 3 5234 Imagem 4 7123 Imagem 5 2145 Com o resultado da comparação com os modelos de decisão, agora é possível movimentar o cursor do mouse para o lado que o usuário esta olhando, para cada região dos olhos encontrada no frame, o protótipo pega no momento localização (x,y) do mouse no monitor e altera os valores da posição cartesiana; como exemplo, se for constatado que o usuário estiver olhando para a região em cima o valor de posição Y terá seu valor decrementado, por outro lado, se o usuário estiver olhando na região em baixo do monitor, o valor de posição Y terá seu valor incrementado. O mesmo vale para quando o usuário estiver olhando para a região esquerda e para a região direita do monitor; sendo para esquerda o valor de posição X será decrementado e para a direita o valor de posição X será incrementado. Ao contrário desses quatro pontos, o central não modifica a posição do cursor, o mesmo serve apenas como referência para os demais modelos de decisão. No próximo capítulo será abordada a parte referente aos testes no protótipo e análises dos resultados dos mesmos. 25