UNIVERSIDADE PRESBITERIANA MACKENZIE PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA André Brasiliano da Silva ROBUSTEZ EM UM SISTEMA DE DETECÇÃO E RASTREAMENTO DE OLHOS PARA IMPLEMENTAÇÃO DE UMA INTERFACE HUMANO-COMPUTADOR Dissertação apresentada ao Programa de Pós-Graduação em Engenharia Elétrica da Universidade Presbiteriana Mackenzie como parte dos requisitos para a obtenção do tı́tulo de Mestre em Engenharia Elétrica. Orientadores: Maurı́cio Marengoni e Valéria Farinazzo Martins São Paulo 2014 S586r Silva, André Brasiliano da Robustez em um sistema de detecção e rastreamento de olhos para implementação de uma interface humano-computador. / André Brasiliano da Silva - São Paulo, 2014. 89 f.: il.; 30 cm. Dissertação (Programa de Pós-Graduação (Stricto Sensu) em Engenharia Elétrica) - Universidade Presbiteriana Mackenzie - São Paulo, 2014. Orientador: Prof. Dr. Mauricio Marengoni Bibliografia: f. 70-74. 1. IHC. 2. Visão computacional. 3. Rastreamento da ı́ris. 4. Extração de caracterı́sticas. 5. Problemas motores. 6. Região de interesse. I. Tı́tulo CDD: 621.30285632 RESUMO O rastreamento ocular para usuários com problemas motores é um estudo importante na área de Interface Humano-Computador (IHC). Com o objetivo de fornecer um sistema de rastreamento ocular de baixo custo, este trabalho apresenta uma nova abordagem para um sistema robusto e com alto desempenho. Com relação ao trabalho base para esta pesquisa, a implementação proposta contém inovações em todas as etapas do processo envolvendo o rastreamento ocular, desde a detecção da região da face e dos olhos até a detecção da ı́ris. Neste trabalho, foi utilizado o conceito de processamento local, delimitando as regiões de interesse em todas as etapas do processo: detecção da região da face, região dos olhos e região da ı́ris. Este trabalho permite que pessoas possam efetuar ações controlando o mouse através do movimento dos olhos em uma interface de rastreamento ocular, utilizando apenas equipamentos de uso comum, como, por exemplo, uma webcam. O processo de detecção da face e detecção ocular foi feito através da técnica de Viola e Jones. Para a detecção e rastreamento da ı́ris foi utilizada a Transformada de Hough, e utilização de regiões de interesse com o objetivo de limitar a área de processamento da imagem, e consequentemente, o custo computacional, resultando em uma aplicação com um melhor desempenho e robustez em todas as etapas. Obteve-se um ganho de até 33% em relação ao tempo de processamento do sistema, quando comparado com o sistema base, porém, operando com imagens em alta definição. Foi realizada ainda uma comparação com sistemas de rastreamento ocular de uso comercial e diferentes tipos de equipamentos para validar as técnicas estudadas neste trabalho. Palavras-chave: IHC, visão computacional, rastreamento da ı́ris, extração de caracterı́sticas, problemas motores, região de interesse. i ABSTRACT Eye tracking is an important issue for Human Computer interaction, mainly for users with hand-eye coordination problems. The work presented here shows a low cost and robust eye tracking system capable to work with an HD stream. The implementations used in this work over the base system present different techniques in all stages, from face detection to iris detection. Local processing is used in most stages in this implementation, delimiting the region of interest (ROI) for face detection, eye detection and iris detection. The system robustness allow the eye tracking system to control the mouse using eye movements allowing disable users to communicate through a communication interface. The hardware required is simple and based in an high definition webcam. The face detection and eye detection processes are based on the Viola Jones technique; iris detection and tracking are based on the Hough Transform. The usage of local processing reduces the computational cost and even working with high definition stream leads to a performance 33% better than the base system. The system presented here was compared with a commercial system and a set of equipment were tested in order to define the best set up for the eye tracking system and to validate the work presented here. Future work is presented at the end in order to allow the project continuity. Keywords: HIC, computer vision, iris tracking, feature extraction, disable users, region of interest. Sumário 1 INTRODUÇÃO 1.1 Objetivos e Detalhamento da Pesquisa . . . . . . . . . . . . . . . . . . . . 1.2 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 5 2 FUNDAMENTAÇÃO TEÓRICA 2.1 Interação Humano-Computador . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Comunicação Alternativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Principais algoritmos para detecção e processamento da região de interesse 2.3.1 Detecção de Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Transformada de Hough . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Modelo-Base para o estudo . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Detecção e Rastreamento de Olhos para Detecção de uma Interface Humano-Computador . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 8 10 10 14 15 16 3 TRABALHOS CORRELATOS 3.1 ITU Gaze Tracker . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Tobii T60 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 EAS Binocular . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Robustez em um Sistema de Detecção e Rastreamento Ocular . . . . 19 19 22 24 24 4 MODELO PROPOSTO 4.1 Descrição do Macro Fluxo . . . . . . . . 4.1.1 Captura do frame da webcam . . 4.1.2 Detecção da Região da Face . . . 4.1.3 Detecção da Região dos Olhos . . 4.1.4 Busca pela Região da Íris . . . . 4.1.5 Calibração do Sistema . . . . . . 4.1.6 Rastreamento da Íris . . . . . . . 4.1.7 Movimento do Mouse . . . . . . . 4.1.8 Acionamento do Click do Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 29 30 33 36 39 40 41 43 5 DESENVOLVIMENTO DA APLICAÇÃO 5.1 Metodologia de Desenvolvimento da Aplicação 5.2 Descrição do Desenvolvimento da Aplicação . 5.3 Análise de Requisitos . . . . . . . . . . . . . . 5.4 Projeto . . . . . . . . . . . . . . . . . . . . . . 5.5 Implementação . . . . . . . . . . . . . . . . . 5.5.1 Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 44 46 47 51 51 56 6 TESTES E DISCUSSÕES 6.1 Detalhamento dos Testes . . . . . . . . . . . . . . . . . . . . . 6.2 Comparação entre Sistemas . . . . . . . . . . . . . . . . . . . 6.2.1 Comparação com o Sistema-Base . . . . . . . . . . . . 6.2.2 Comparação com o Sistema Comercial EAS Binocular . 6.3 Testes com diferentes monitores . . . . . . . . . . . . . . . . . 6.4 Testes com diferentes usuários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 57 58 58 59 61 65 . . . . . . . . . . . . . . . . . . 7 CONCLUSÃO 67 7.1 Aspectos Gerais do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.2 Contribuições do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 7.3 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 REFERÊNCIAS BIBLIOGRÁFICAS 74 ANEXOS 75 Lista de Figuras 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Representação da IHC como parte da Interação Humano-Computador. . . Layout ilustrativo do Eyegaze [30]. . . . . . . . . . . . . . . . . . . . . . . Representação da Janela de Detecção. [16] . . . . . . . . . . . . . . . . . . Representação da Imagem Integral [16]. . . . . . . . . . . . . . . . . . . . . Coordenadas da Transformada de Hough [33]. . . . . . . . . . . . . . . . . Exemplo de detecção de cı́rculos utilizando a Transformada de Hough, com a equação de circunferência [17]. . . . . . . . . . . . . . . . . . . . . . . . . Fluxo do modelo proposto por [22]. . . . . . . . . . . . . . . . . . . . . . . Modelo utilizado na identificação da região dos olhos [22]. . . . . . . . . . . Modelo utilizado na identificação da região da ı́ris [22]. . . . . . . . . . . . Sistema de rastreamento ocular [35]. . . . . . . . . . . . . . . . . . . . . . Interface da aplicação ITU Gaze Tracker [27]. . . . . . . . . . . . . . . . . Modelos de configuração da área da pupila, configuração boa (esquerda) e configuração ruim (direita) [27]. . . . . . . . . . . . . . . . . . . . . . . . . Ambiente de testes ITU Gaze Tracker [27]. . . . . . . . . . . . . . . . . . . O potencial erro médio do Tobii T60 (cı́rculo vermelho) e o ITU Gaze Tracker (cı́rculo externo amarelo) ilustrado em um screenshot da página do NY Times. [27] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Projeto Tobii modelo T60 [36]. . . . . . . . . . . . . . . . . . . . . . . . . . Produto EAS Binocular da empresa LC Technologies, Inc [30]. . . . . . . . Diagrama de Fluxo da Implementação A. . . . . . . . . . . . . . . . . . . . Diagrama de Fluxo da Implementação B. . . . . . . . . . . . . . . . . . . . Diagrama de Fluxo da Implementação C. . . . . . . . . . . . . . . . . . . . Implementação do modelo apresentado no trabalho [39]. . . . . . . . . . . . Fluxo macro do modelo proposto neste trabalho. . . . . . . . . . . . . . . . Conversão da imagem original para escala de cinza com equalização de histograma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Representação da sequencia de busca de atributos na imagem. . . . . . . . Representação da utilização de atributos utilizados por [41]. . . . . . . . . Estrutura que representa o detector em cascata [16]. . . . . . . . . . . . . . Região de interesse da face. . . . . . . . . . . . . . . . . . . . . . . . . . . Pseudocódigo do processo de detecção da face. . . . . . . . . . . . . . . . . Região de interesse do olho esquerdo. . . . . . . . . . . . . . . . . . . . . . Região de interesse do olho direito. . . . . . . . . . . . . . . . . . . . . . . Pseudocódigo do processo de detecção da região do olho esquerdo. . . . . . Detecção da ı́ris, apresentada por [25], utilizando a Transformada de Hough. Região de interesse da ı́ris do lado esquerdo. . . . . . . . . . . . . . . . . . Região de interesse da ı́ris do lado direito. . . . . . . . . . . . . . . . . . . Pseudocódigo do processo de detecção da região da ı́ris. . . . . . . . . . . . Modelo de cálculo de limites das posições x,y. . . . . . . . . . . . . . . . . Modelo de prototipação [44]. . . . . . . . . . . . . . . . . . . . . . . . . . . Processo de desenvolvimento de protótipos [45]. . . . . . . . . . . . . . . . Fluxo principal do sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrama de Caso de Uso do sistema. . . . . . . . . . . . . . . . . . . . . . Diagrama de Sequência do sistema. . . . . . . . . . . . . . . . . . . . . . . Diagrama de Pacotes do sistema. . . . . . . . . . . . . . . . . . . . . . . . 8 10 12 13 14 15 16 16 17 19 20 21 22 23 23 24 25 25 25 26 28 29 31 31 32 33 34 35 35 36 37 38 38 40 42 45 46 46 47 48 49 42 43 44 45 46 47 48 49 50 51 52 Diagrama de Classe do sistema. . . . . . . . . . . . . . . . . Tela Inicial da aplicação desenvolvida neste trabalho. . . . . Tela de calibração do sistema EyeGaze. . . . . . . . . . . . . Primeira mensagem no inı́cio da calibração. . . . . . . . . . Segunda mensagem no inı́cio da calibração. . . . . . . . . . . Tela de calibração da aplicação desenvolvida neste trabalho. Tela de digitação de números do sistema EyeGaze. . . . . . . Tela de digitação de números desenvolvida neste trabalho. . Ambiente de testes para o monitor de 15 polegadas. . . . . . Ambiente de testes para o monitor de 24 polegadas. . . . . . Ambiente de testes para o monitor de 32 polegadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 52 53 54 54 55 55 56 62 63 63 Lista de Tabelas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Desempenho dos métodos A, B e C em relação ao método proposto por [22] (tempo total). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Descrição dos equipamentos utilizados. . . . . . . . . . . . . . . . . . . . . Tempo para detecção da ı́ris com relação ao método desenvolvido no trabalho [39]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tempo total (detecção da face, olhos e ı́ris até o inı́cio da calibração do sistema) para o método do trabalho base [39]. . . . . . . . . . . . . . . . . Ganho em relação ao sistema desenvolvido em [39]. . . . . . . . . . . . . . Comparação do processo de calibração deste trabalho com o produto EAS Binocular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparação na digitação de um número de telefone com o produto EAS Binocular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparação na digitação de um número sequencial com o produto EAS Binocular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Descrição dos tipos de monitores. . . . . . . . . . . . . . . . . . . . . . . . Comparação do processo de calibração em diferentes monitores. . . . . . . Comparação na digitação de um número sequencial nos diferentes monitores. Comparação do processo de calibração. . . . . . . . . . . . . . . . . . . . . Comparação na digitação de um número sequencial. . . . . . . . . . . . . . Valores detalhados do teste de calibração deste trabalho com o produto EAS Binocular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Valores detalhados do teste de digitação deste trabalho com o produto EAS Binocular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Valores detalhados do teste de digitação de um número sequencial deste trabalho com o produto EAS Binocular. . . . . . . . . . . . . . . . . . . . Valores detalhados do teste de calibração em diferentes monitores. . . . . . Valores detalhados do teste de digitação de um número sequencial em diferentes monitores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Valores detalhados do teste de calibração com diferentes usuários. . . . . . Valores detalhados do teste de digitação de um número sequencial com diferentes usuários. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 51 59 59 59 60 60 61 62 64 64 66 66 75 76 77 78 79 80 81 1 INTRODUÇÃO O rápido crescimento e barateamento da tecnologia popularizou o uso de computadores por pessoas leigas em Computação, o que gerou uma demanda no desenvolvimento de sistemas que pudessem ser utilizados por pessoas sem especialização. É criada então, na década de 80, a área de Interação Humano-Computador na Ciência da Computação [1]. A Interação Humano-Computador (IHC) pode ser definida como a parte de um sistema computacional com a qual uma pessoa entra em contato fı́sico e conceitual [2], ou seja, a interface pode ser entendida como um sistema de comunicação que possui dois componentes, um sendo o componente fı́sico - hardware e software - em que o usuário é capaz de perceber e de interagir com o mesmo; e outro conceitual, em que ele interpreta, processa e raciocina. Assim, IHC é a área que considera todos os aspectos relacionados com a interação entre pessoas e computadores [3]. Neste contexto, foi definido, em 1981 [4], a interface de um sistema com o usuário sendo “a parte de um sistema computacional com a qual a pessoa entra em contato fı́sica, perceptiva e conceitualmente”. A interface é a parte do sistema computacional com a qual o usuário se comunica, ou seja, aquela com a qual ele entra em contato para executar ações dos sistemas e obter os resultados, os quais são interpretados pelo usuário, definindo assim as próximas ações. A esse processo de comunicação entre usuário e sistema se dá o nome de interação [3]. Nos últimos anos, a área de IHC tem se desenvolvido, e esforços têm sido empregados em relação a questões de projeto e avaliação de interfaces não convencionais, tais como interfaces gestuais [5], interfaces por voz (Voice User Interface) [6] e interfaces por rastreamento ocular [7]. As interfaces por rastreamento ocular são aquelas que consistem em detectar, por meio de uma ou mais câmeras, a direção do olhar do usuário que se encontra a frente do monitor [8]. Duchowski [9] descreve, em sua pesquisa, aplicações de rastreamento ocular e sua 1 utilização em diversas áreas como, por exemplo, Neurociência, identificando componentes neurais, interligados à visão, a partir de fotorreceptores da retina e terminando em suas regiões corticais envolvidas na visão. Psicologia, Engenharia, Ciência da Computação, Marketing e Propaganda são outros exemplos de áreas que utilizam aplicações de rastreamento ocular citados por [9]. Interfaces por rastreamento ocular têm sido usadas, também, para permitir a inclusão de pessoas com deficiências motoras dos membros superiores [10]. Alguns produtos comerciais de rastreamento ocular possuem um alto ı́ndice de acuracidade, porém possuem um custo elevado como, por exemplo, Tobii T60 [11], um produto comercial, em que um monitor de 17o polegadas, é integrado ao sistema de rastreamento ocular; tal equipamento contemplando as funcionalidades descritas possui um custo médio de US$30 mil. Outros produtos comerciais na área de rastreamento ocular são apresentados pela empresa SensoMotoric Instruments (SMI) [12], que desenvolve várias aplicações de rastreamento ocular, dentre elas a linha de produtos RED. Trata-se de um sistema binocular, adaptável em monitores de 19o até 60o , que possui uma acurácia em o (graus) de 0.4o , trabalhando nas faixas de 60Hz até 500Hz, com custo variando entre US$20 mil até US$30 mil. Alguns procedimentos de rastreamento ocular possuem um alto custo, pois, em geral, envolvem um conjunto de equipamentos sofisticados, profissionais e de montagem complexa, tais como câmeras, detectores, óculos especiais e receptores, além de equipamentos de hardware capazes de executar o processamento em uma escala profissional. Um exemplo disso é o sistema apontado por [13], em que são exibidos diversos sistemas computadorizados de Comunicação Alternativa Facilitadora (CAF) como ImagoDiAnaVox [14] e NoteVox [15], que se baseiam em diversos dispositivos e interfaces multimodais, e apresentam uma solução por acionamento do movimento ocular para os sistemas de comunicação alternativa. Para se projetar um sistema de rastreamento ocular, técnicas de Visão Computacional e Processamento de Imagens, tais como a técnica de detecção de objetos de Viola e Jones 2 [16] e a técnica da Transformada de Hough [17] para extração de caracterı́sticas de uma imagem devem ser utilizadas. Neste contexto, vários métodos têm sido desenvolvidos para a solução desse problema, assim como para a melhora do rastreamento e da usabilidade de um sistema de rastreamento ocular. Pode-se, por exemplo, usar a detecção da ı́ris, com uma [18] ou duas câmeras [19], para efetuar o rastreamento. “Óculos” detectores [20] tratam de uma outra possibilidade de fazer essa detecção, ou, ainda, a utilização de técnicas de processamento de imagens como, por exemplo, a detecção da parte branca dos olhos [21]. Desse modo, o foco principal deste trabalho é aplicar as técnicas de Processamento de Imagens em tempo real que possibilitem o desenvolvimento de uma aplicação de rastreamento ocular robusta, ou seja, que utilize imagens em alta definição sem perda de desempenho, sendo eficiente e com baixo custo financeiro e computacional. A aplicação permite que uma pessoa possa, por meio do movimento dos olhos, por exemplo, levar o ponteiro do mouse até o ponto desejado, e então efetuar uma determinada ação. Esta pesquisa iniciou-se com o trabalho proposto por [22], o qual teve como principal objetivo identificar e implementar um modelo de rastreamento ocular robusto. O modelo de rastreamento ocular proposto por [22] possui certas limitações, como, por exemplo, a utilização de imagens de baixa resolução e o processamento de toda a região da imagem para cada frame capturado, tornando o sistema pouco robusto e muito suscetı́vel a falhas. A partir no modelo proposto por [22], foram iniciadas pesquisas baseadas em técnicas de Processamento de Imagens em tempo real e processamento apenas de regiões de interesse, garantindo um melhor desempenho, qualidade e robustez do sistema quando comparado com o modelo proposto por [22]. Para validar o modelo proposto neste trabalho, foi desenvolvido um sistema de rastreamento ocular a partir das técnicas pesquisadas e, então, realizados testes comparativos com a aplicação utilizada como base deste trabalho e, também, com aplicações de rastreamento ocular de uso comercial existente. 3 O projeto de desenvolvimento de uma aplicação de rastreamento ocular baseou-se no sistema de rastreamento ocular apresentado por [22], sendo desenvolvido para este trabalho um novo sistema de rastreamento ocular e, a partir daı́, foi desenvolvida uma nova interface com o usuário. Assim, pode-se considerar como desenvolvimentos distintos, pois o desenvolvimento de um sistema de rastreamento ocular tem objetivo de implementar as técnicas pesquisadas neste trabalho, já o desenvolvimento de uma interface tem como objetivo a validação das técnicas implementadas, passando pela validação do usuário. 1.1 Objetivos e Detalhamento da Pesquisa O objetivo deste trabalho é identificar e desenvolver um sistema de rastreamento ocular que seja eficiente, robusto e de baixo custo. A partir do desenvolvimento da pesquisa realizada por [22], este trabalho apresenta outras técnicas das quais, partindo dos resultados apresentados, é possı́vel avaliar a melhor técnica para cada etapa do Processamento das Imagens, como a detecção ocular, a utilização da região da face e, então, a identificação e rastreamento da ı́ris. A realização do desenvolvimento de uma interface com o usuário, de forma que possibilitou a realização de testes comparativos, com relação a outros sistemas; testes que permitiram avaliar não só as técnicas utilizadas, mas também os pontos de melhoria na aplicação, de forma que o sistema possa ser utilizado. Para alcançar os objetivos propostos neste trabalho, foram realizadas as seguintes atividades: • Pesquisa e revisão bibliográfica dos temas abordados no projeto, sendo os mesmos: região de interesse, processamento de imagens em tempo real, detecção da face, detecção dos olhos, detecção e rastreamento da ı́ris. • Estudo da biblioteca de desenvolvimento OpenCV [23] em conjunto com a ferramenta de desenvolvimento Microsoft Visual Studio. 4 • Definição das técnicas e processos de desenvolvimento a serem utilizadas na implementação do projeto de desenvolvimento de um sistema de rastreamento ocular. • Desenvolvimento de uma interface para permitir a realização de testes comparativos com outros sistemas. • Testes da aplicação de rastreamento ocular desenvolvida segundo as definições propostas. Testes integrados para validação e determinação dos requisitos básicos da aplicação e testes comparativos com outros sistemas, com objetivo de validar o ambiente e as funcionalidades do projeto desenvolvido. 1.2 Organização do Trabalho Este trabalho está organizado em 5 capı́tulos, conforme explicitado a seguir. O Capı́tulo 2, Fundamentação Teórica, aborda os conceitos e métodos fundamentais utilizados para a realização deste trabalho, incluindo processamento de imagens, e detecção de objetos, conforme apresentado por [16], [24] e [25]; definições de região de interesse em uma imagem [26], rastreamento da ı́ris [22] e controle de visada [27]. O Capı́tulo 4, Modelo Proposto, descreve o modelo proposto neste trabalho, detalhando cada etapa do processo e as técnicas utilizadas para o desenvolvimento da aplicação. O Capı́tulo 5, Desenvolvimento da Aplicação, detalha o desenvolvimento proposto da aplicação. Trata-se do desenvolvimento de uma aplicação baseada em regiões de interesse, caracterı́sticas da face do usuário, sendo composto pelas etapas: especificação de requisitos do sistema, desenvolvimento do projeto e processo de testes. O Capı́tulo 6, Testes e Discussões, apresenta a criação do ambiente de testes para utilização e avaliação da aplicação desenvolvida, testes comparativos com outros sistemas de rastreamento ocular, e testes com diferentes equipamentos. O Capı́tulo 7, Conclusão, destaca as contribuições da pesquisa, juntamente com as limitações dos resultados obtidos, apresentando alguns pontos que podem servir de in5 dicações a trabalhos futuros. 6 2 FUNDAMENTAÇÃO TEÓRICA Neste capı́tulo, é apresentada a fundamentação teórica e também os conceitos fundamentais que constituem o embasamento teórico e técnico deste projeto. A seção 2.1 aborda a área de IHC; a seção 2.2 apresenta a base da comunicação alternativa; a seção 2.3 aborda os principais algoritmos para processamento da região de interesse, e a seção 2.4 versa sobre os projetos atuais que utilizam o conceito de rastreamento ocular e controle de visada. 2.1 Interação Humano-Computador Com o rápido avanço da tecnologia, quase todas as pessoas têm contato com sistemas computacionais de uma forma ou de outra. Isso tem aumentado o espectro dos usuários, pois não se restringem mais aos técnicos em Eletrônica ou Informática, mas incluem também pessoas de qualquer área do conhecimento ou que tenham variados graus de conhecimento da tecnologia. O principal desafio da área de IHC consiste em manter atualizados os avanços tecnológicos e assegurar que sejam aproveitados para levar ao máximo o benefı́cio ao ser humano. Um dos principais motivos de investimento em pesquisas na área de IHC é a busca do aumento da eficiência e produtividade dos usuários e, consequentemente de um maior ganho financeiro. Conforme descrito por [28], há pessoas que, apesar de serem social, econômica, intelectual e culturalmente bem posicionadas, sentem dificuldades em operar determinados tipos de máquinas digitais, passando a fazer parte dos excluı́dos da sociedade da informação. A área de IHC tem caracterı́stica multidisciplinar, e seu objetivo é tornar as máquinas sofisticadas mais acessı́veis, no que se refere à interação, aos seus usuários potenciais. Sendo uma abordagem não exclusiva apenas da área da Computação, mas compartilhada por toda a área de Ciência da Informação. 7 Numa primeira visão, considerando o computador como um tipo de máquina, poderia se pensar em IHC como parte da Interação Homem-Máquina. No entanto, embora a interação entre um ser humano e um computador possua aspectos em comum com a interação entre um ser humano e uma máquina qualquer, ela possui aspectos que a diferenciam. A Figura 1 ilustra a interação humano-computador da área de IHC, sendo que o usuário executa uma determinada ação na interface de alguma aplicação, e a aplicação retorna para o usuário a interpretação da ação solicitada de forma mais amigável. Figura 1: Representação da IHC como parte da Interação Humano-Computador. Conforme descrito por [29], os sistemas efetivos geram sentimentos positivos de sucesso, competência e clareza para os usuários. Os usuários não se sentem atrapalhados com o uso do computador e podem fazer uma previsão do que ocorrerá como resultado para cada ação executada. Quando um sistema interativo é bem projetado, a dificuldade na sua operação desaparece, permitindo que o usuário possa se concentrar em seu trabalho com prazer. 2.2 Comunicação Alternativa À medida que as Tecnologias da Informação e Comunicação (TICs) se desenvolvem, novos recursos têm sido disponibilizados para criação de ferramentas, possibilitando a interação entre a computação e diversas áreas. Conforme descrido por [13], tal interação tem possibilitado o surgimento de novas pesquisas com objetivo de promover a inclusão social de pessoas com deficiência. Neste contexto, esta seção apresenta o uso de interfaces multimodais com acionamento 8 por direção do olhar, utilizados como solução para promover a comunicação alternativa de pessoas com deficiência, buscando a inclusão social por meio da inclusão digital. Pessoas que possuem problemas motores apresentam dificuldades para expressarem os seus desejos, pensamentos ou até mesmo suas necessidades mais básicas. Nesse contexto, [13] aponta algumas patologias existentes, destacando-se a Esclerose Lateral Amiotrófica (ELA), na qual funções cognitivas estão preservadas, porém a comunicação oral é prejudicada pela alteração motora. Para estes casos, o tipo de comunicação é limitada, como por exemplo, ao movimento das mãos, movimentação da cabeça, movimento dos olhos, podendo se dar com um simples piscar de olhos ou a movimentação dos olhos direcionando o mesmo para um determinado objeto. Como descrito por [13], conceitos de interfaces multimodais podem servir de solução para o processo de comunicação alternativa para pessoas portadoras de deficiência, chamado de Comunicação Alternativa Facilitadora (CAF). São apresentados também dois modelos de sistemas utilizando o conceito CAF, sendo eles ImagoDiAnaVox [14] e NoteVox [15]. Tais sistemas apresentam modelos de interfaces com acionamento por movimento ocular, sendo que sua utilização principal é a busca visual em crianças com Transtorno Invasivo do Desenvolvimento. O Sistema Eyegaze foi desenvolvido pela empresa LC Technologies Inc [30]. A movimentação ocular é descrita por meio do método pupil-center-corneal reflection (PCCR). As taxas de amostragens foram geradas com 60 hertz, sendo que para cada captura de amostragem são gerados indicadores a partir da captura ocular pela câmera. São gerados os indicadores de diâmetro da posição da pupila a partir das coordenadas x-y, a partir do centro da pupila identificada na tela, e o deslocamento ao longo do eixo z com base na duração e localização dos pontos identificados. Pode-se observar na Figura 2 o equipamento utilizado para o sistema Eyegaze e a posição do usuário em relação à câmera, o equipamento utiliza uma câmera infravermelho adaptada na base do monitor. 9 Figura 2: Layout ilustrativo do Eyegaze [30]. O uso de interfaces de acionamento ocular, conforme citado por [13], justifica-se nos casos em que o único movimento que, de fato, a pessoa tem controle é dos olhos. O autor cita que sistemas comerciais ainda são inacessı́veis para uma grande parcela da população, devido ao seu custo elevado, sendo que tal situação poderá ser revertida devido ao desenvolvimento de novos sistemas. Esta seção demonstra uma utilização importante de sistemas de rastreamento ocular, e a falta de acessibilidade a esses sistemas e equipamentos. Este trabalho inicia a possibilidade de tornar sistemas de rastreamento ocular mais acessı́veis, não só para pessoas com algum tipo de deficiência, mas para qualquer tipo de pessoa. 2.3 Principais algoritmos para detecção e processamento da região de interesse 2.3.1 Detecção de Objetos A detecção de objetos em Visão Computacional, consiste na tarefa de encontrar um determinado objeto em uma imagem ou em uma sequência de imagens. Seres humanos têm a capacidade de reconhecer uma infinidade de objetos em imagens com pouco esforço, mesmo com o fato de que objetos em imagens podem variar em diferentes pontos 10 de vista, tamanhos, escala, ou, até mesmo, quando são traduzidas. Os objetos podem até mesmo serem reconhecidos quando estão parcialmente obstruı́dos da visão. Essa tarefa ainda é um desafio para os sistemas de Visão Computacional em geral, pois ainda não foi resolvida satisfatoriamente para o caso geral, em que objetos, cenários, iluminação e pose são arbitrárias. Um dos principais problemas desse processo, conforme descrito por [31], está relacionado à quantificação das informações visuais presentes nas imagens, ou seja, para um reconhecimento de um dado objeto é necessário encontrar, de alguma maneira, caracterı́sticas na imagem que o distinguam dos outros objetos da cena. Viola e Jones [16] abordam uma maneira de detecção de objetos em uma determinada “região de interesse”, onde o algoritmo apresentado é superior aos demais já criados, se comparados isoladamente. Tal algoritmo teve, inicialmente, seu principal objetivo na detecção da região da face, onde os resultados em sua detecção e a exibição de falsos positivos obtiveram taxas equivalentes aos melhores resultados já publicados. A técnica apresentada por Viola e Jones [16] descreve diferentes maneiras para a realização da detecção de objetos, conforme a representação na Figura 3, que apresenta um exemplo das caracterı́sticas do retângulo em relação à janela de detecção. A soma dos pixels dentro dos retângulos brancos é subtraı́da da soma de pixels dos retângulos cinzas. Duas caracterı́sticas são apresentadas em (A) e (B), a Figura (C) apresenta uma caracterı́stica de três retângulos, e a Figura (D) uma caracterı́stica com quatro retângulos. 11 Figura 3: Representação da Janela de Detecção. [16] Uma das técnicas é chamada de Imagem Integral, sendo que a integral de uma determinada posição x,y é a soma dos pixels acima e dos pixels à esquerda do ponto x,y. Desta maneira, pode computar rapidamente as caracterı́sticas do retângulo por meio da utilização de uma representação intermediária da imagem, conforme apresentado na Equação 1: X ii(x, y) = 0 0 0 i(x , y ), 0 x ≤x,y ≤y Equação 1: Imagem integral [16]. A Figura 4 mostra a área utilizada para o cálculo da Imagem Integral. 12 (1) Figura 4: Representação da Imagem Integral [16]. A representação da imagem integral, demonstrada na Figura 4, apresenta a soma dos pixels dentro do retângulo D, que podem ser calculados a partir de quatro referências de matriz. O valor da imagem integral no ponto 1 é a soma dos pixels no retângulo A. O valor do ponto 2 é (A + B), o ponto 3 é (A + C) e o valor do ponto 4 é (A + B + C + D). A soma dentro do ponto D pode ser calculada como 4 + 1 - (2 + 3). Onde ii(x,y) é a Imagem Integral e i(x,y) é a imagem original. Outra técnica é definida pela utilização do método AdaBoost [32] que, por sua vez, tem como objetivo a utilização do processo de aprendizagem a fim de realizar buscas em determinadas regiões de uma imagem. Visando o aumento de velocidade no processo de detecção, a terceira técnica citada por Viola e Jones [16] tem como objetivo a classificação por meio de uma estrutura em cascata, focando em regiões promissoras da imagem. Tais técnicas mostradas são utilizadas como base de muitos sistemas de detecção ocular, por se tratarem de métodos robustos e com um melhor desempenho, de acordo com cada contexto. 13 2.3.2 Transformada de Hough A Transformada de Hough é uma técnica de extração de caracterı́sticas muito utilizada em Análise de Imagens, Visão Computacional e Processamento de Imagem Digital. A partir de um processo de votação, a técnica tem como principal objetivo detectar objetos a partir de uma classe de formas. Um dos problemas na análise de imagens é a dificuldade de detecção de formas simples, como linhas retas [33], cı́rculos ou elipses. Em alguns casos, a detecção de borda pode ser uma etapa de pré-processamento, auxiliando na obtenção de pontos da imagem ou pixels da imagem que estão na curva desejada no espaço da imagem. Para detecção de retas, a Transformada de Hough utiliza de coordenadas polares como parâmetros de busca, conforme apresentado na Figura 5. Figura 5: Coordenadas da Transformada de Hough [33]. O parâmetro r representa a distância da reta à origem, enquanto θ é o ângulo do vetor a partir da origem até o ponto mais próximo. A partir desta parametrização, a equação da reta pode ser escrita conforme exibido na Equação 2: r cos Θ y= − x+ sin Θ sin Θ Equação 2: Equação da reta para Transformada de Hough [33]. 14 (2) A Transformada de Hough também pode ser utilizada para detecção de cı́rculos, conforme descrito por [17]. Esse processo realiza de forma parecida a detecção de uma reta, porém, para detecção de um cı́rculo, é necessário a utilização de três parâmetros, conforme apresentado na seguinte função: C:( X centers, Y centers, r) Função de circunferência para Transformada de Hough [17]. Onde (Xc, Yc) definem a posição central e r é o raio da circunferência, permitindo a detecção de um cı́rculo, conforme ilustrado na Figura 6. Figura 6: Exemplo de detecção de cı́rculos utilizando a Transformada de Hough, com a equação de circunferência [17]. A próxima seção aborda os trabalhos relacionados e que foram utilizados como base de estudo para o desenvolvimento deste projeto. 2.4 Modelo-Base para o estudo Esta seção apresenta o trabalho relacionado que foi utilizados como base da pesquisa e modelo para o desenvolvimento da aplicação proposta. A subseção 2.4.1 aborda um modelo de detecção e rastreamento ocular, baseado em processamento de filtros na imagem, a fim de encontrar pontos de borda que se assemelham a uma ı́ris. 15 2.4.1 Detecção e Rastreamento de Olhos para Detecção de uma Interface Humano-Computador O trabalho apresentado por [22], consiste no desenvolvimento de um sistema capaz de, a partir da imagem capturada por uma webcam comum, identificar o movimento dos olhos do usuário e converter esta informação no movimento do mouse. A Figura 7 apresenta o fluxo de desenvolvimento do modelo proposto por [22], ilustrando as etapas de Processamento de Imagens. Figura 7: Fluxo do modelo proposto por [22]. A identificação da região da face é determinada utilizando o sistema proposto por [24], e, a partir desse resultado, o modelo realiza a busca na imagem por conjuntos de pontos de borda que aproximam-se de uma circunferência, criando hipóteses e testando-as para regiões onde possam estar os olhos do usuário. A detecção da região dos olhos se da a partir do gradiente da imagem convertida para tons de cinza. Em seguida, o algoritmo de detecção utiliza projeções horizontais e verticais dos pontos do gradiente, realizando a identificação da região dos olhos com alta precisão [34], conforme apresentado na Figura 8. Figura 8: Modelo utilizado na identificação da região dos olhos [22]. A Figura 8 ilustra o processo de identificação da região dos olhos, utilizando projeções 16 verticais, apresentado por [22]. A imagem [A] é resultado da projeção horizontal do gradiente da imagem original, encontrando dois pontos de máximo, sendo um em cada metade da imagem. A imagem [B] apresenta o terço médio da face, limitado pelas retas verticais laterais, identificando o ponto de máximo da projeção vertical da região e, finalmente, na imagem [C], na mesma região identificada no passo anterior, são encontrados dois pontos de máximo nas projeções horizontais, uma em cada metade da face. Tais pontos, juntamente com a reta horizontal, determinam os pontos onde a busca pelos olhos é iniciada. Tal técnica obteve uma precisão de 95% de acerto na identificação da região dos olhos, conforme resultados apresentado por [22]. Após realizada a detecção, um outro conjunto de pontos de borda, que se aproxima de uma circunferência nas duas regiões dos olhos, é utilizado para a detecção das ı́ris. A fim de reduzir o número de falsos positivos, são considerados o diâmetro esperado da ı́ris e também a existência de uma diferença de tonalidade significativa entre pontos externos e internos da borda, conforme apresentado na Figura 9. Figura 9: Modelo utilizado na identificação da região da ı́ris [22]. O estágio final do projeto desenvolvido e descrito por [22], na seção de experimentos, 17 permite uma taxa de identificação da ı́ris em imagens com boa iluminação frontal de até 87%. Os problemas relatados e verificados em [22] estão relacionados a falhas na detecção dos olhos, onde variações de iluminação no ambiente tornam a detecção dos olhos e seu rastreamento mais demorado, necessitando, em vários momentos, de uma reinicialização de todo o processo, não apresentando robustez adequada para uso real. A necessidade da aplicação de filtros, em toda região, em tempo real, torna o processo demorado para a detecção da região dos olhos. Além disso, o processo de movimentação do ponteiro do mouse é pouco preciso, necessitando de um procedimento de calibração mais eficaz. 18 3 TRABALHOS CORRELATOS Esta seção apresenta os trabalhos correlatos de sistemas de rastreamento ocular utilizados como base de estudos neste trabalho. A seção 3.1 aborda o sistema ITU Gaze Tracker, desenvolvido pelo grupo de pesquisas ITU GazeGroup [35]; a seção 3.2 versa sobre o produto comercial Tobii, desenvolvido pela empresa Tobii Technology [36]; a seção 3.3 apresenta o produto comercial EAS Binocular, desenvolvido pela empresa LC Technologies Inc. [30]; a seção 3.4 apresenta um trabalho que utilizou como base o trabalho apresentado na subseção 2.4.1, visando identificar melhorias no processo, tornando o sistema mais robusto. 3.1 ITU Gaze Tracker Pesquisas relacionadas à rastreamento ocular e controle de visada são temas em constante evolução em diferentes trabalhos. Um desses trabalhos é apresentado pelo grupo de pesquisas ITU GazeGroup (Research on eye tracking and gaze interaction) [35], em que o processo de rastreamento ocular consiste em uma ou mais câmeras capturando os olhos do usuário, a fim de medir e identificar os movimentos oculares, conforme apresentado na Figura 10. O projeto, conforme ilustrado na imagem, possui como etapa inicial a captura da imagem, seguida da extração das caracterı́sticas da imagem, como, por exemplo, o centro da pupila e/ou o centro da ı́ris. Uma etapa de fixação dos olhos é adicionada para minimizar os ruı́dos durante o Processamento da Imagem. Após a finalização das etapas de Processamento de Imagem, é iniciado o processo de calibração do usuário, que tem como objetivo fazer o mapeamento entre a posição da pupila com as coordenadas na tela. Figura 10: Sistema de rastreamento ocular [35]. A aplicação Gaze Tracker foi desenvolvida inicialmente para utilização em testes de 19 usabilidade, conforme descrito por [27]. A aplicação Gaze Tracker possui as seguintes caracterı́sticas: a obtenção da direção do olhar e pontos não visualizados pelo usuário. Trata-se de um código aberto e baseia-se em equipamentos de baixo custo, obtendo os mesmos resultados de rastreadores oculares comerciais. Os requisitos para utilização da aplicação são uma webcam ou câmera de vı́deo com visão noturna e iluminação infravermelho. Utilizando a biblioteca OpenCV [23], para Processamento de Imagens, os passos utilizados no Processamento de Imagens capturadas a partir de uma câmera são descritos por [37], sendo a câmera posicionada para capturar apenas os olhos do usuário em infravermelho. Para determinar o centro do olho mostrado na Figura 11, é executada uma segmentação na imagem extraindo os pontos de contorno entre a pupila e a ı́ris. Os pontos encontrados são transformados em uma elipse usando o procedimento RANSAC (RANdom SAmple Consensus) [38] para eliminar os falsos positivos. A Figura 11 mostra como é realizada a captura do olho do usuário, detalhando a tela de configuração do sistema ITU Gaze Tracker, sendo possı́vel configurar, por exemplo, o tamanho da área da pupila do usuário e o do brilho da câmera infravermelho. Figura 11: Interface da aplicação ITU Gaze Tracker [27]. 20 A Figura 12 apresenta outro exemplo de configuração que o sistema permite fazer, apresentando uma configuração considerada “boa”, quando os parâmetros não estão configurados muito abaixo e nem muito alto (esquerda) e uma outra configuração considerada “ruim”, pois os parâmetros foram configurados com seus valores máximos. Figura 12: Modelos de configuração da área da pupila, configuração boa (esquerda) e configuração ruim (direita) [27]. A precisão dos rastreadores é calculada a partir do ângulo visual, em que o tamanho de um pixel S e a distância do usuário em relação a tela D precisam ser pré-determinados. O cálculo de precisão em graus é feito por meio da Equação 3: 180 .2.tan− 1 Ao = π Ap x .S 2 ! (3) D Equação 3: Cálculo de precisão em graus. O cálculo da distância entre as posições oculares detectadas e a posição do possı́vel alvo produz uma taxa de erros em pixels, e sua precisão é calculada por meio da Equação 4: Ap x = M X ||Ti −Pi ,j|| j=1 N PN ! M i=1 (4) Equação 4: Distância entre as posições oculares. Ap x é a precisão em pixels, e a distância entre os olhos é feita pela amostra de P i, e seu correspondente é calculado por T i, gerando uma taxa de erro em pixels. 21 O desenvolvimento do sistema ITU Gaze Tracker teve como objetivo a captura e rastreamento ocular, e seu processo parte da detecção de um único olho do usuário, sendo necessárias duas lâmpadas infravermelho iluminando os olhos do usuário. O projeto teve um custo total de US$100, diferente de um equipamento profissional, citado na pesquisa, conhecido como Tobii modelo T60 [11], que tem um custo de US$30 mil. A Figura 13 mostra o ambiente utilizado para a execução dos testes do ITU Gaze Tracker, sendo apresentado o monitor adaptado com uma câmera infravermelho na base. O usuário deve ficar a uma distância de 60 cm do monitor para melhor captura da imagem. Figura 13: Ambiente de testes ITU Gaze Tracker [27]. Experimentos realizados com o ITU Gaze Tracker obtiveram uma taxa de erro maior em relação ao sistema Tobii T60, porém os resultados foram muito satisfatórios tratandose de um sistema de baixo custo. A Figura 14 mostra a diferença entre os sistemas, após a utilização e análise dos resultados de ambos. Os cı́rculos vermelhos mostram o erro médio potencial do sistema Tobii T60, e os cı́rculos amarelos mostram os resultados com ITU Gaze Tracker. 3.2 Tobii T60 O produto Tobii T60 [11] consiste de um produto comercial, em que um monitor de 17o polegadas é integrado ao sistema de rastreamento ocular. O T60 realiza o rastreamento binocular, ou seja, os dois olhos são rastreados simultaneamente a uma taxa de 60Hz. O 22 Figura 14: O potencial erro médio do Tobii T60 (cı́rculo vermelho) e o ITU Gaze Tracker (cı́rculo externo amarelo) ilustrado em um screenshot da página do NY Times. [27] modelo permite o movimento da cabeça do usuário em até 70cm, sendo necessário que a cabeça permaneça centralizada ao monitor. O T60 integra um processador dedicado, cujo objetivo é o de não sobrecarregar o computador. O desempenho do sistema é relatado com uma latência de 33ms a partir da exposição do usuário à câmera de captação da imagem. A Figura 15 apresenta o projeto Tobii modelo T60, sendo um monitor com uma câmera de captura infravermelha adaptada na base. Figura 15: Projeto Tobii modelo T60 [36]. 23 3.3 EAS Binocular O produto EAS Binocular possui as seguintes caracterı́sticas: - captura de imagens em infravermelho; - taxa de atualização de 120Hz; - captura e processamento dos dois olhos de forma independente; - captura 3D da localização ocular; - detecção do diâmetro da pupila; - modos de calibração entre 05 e 13 pontos; e uma taxa de acuracidade posicional de 0.45o e pode ser adaptado em monitores entre 10” e 35” polegadas. A Figura 16 apresenta o produto EAS Binocular, mostrando a câmera de captura infravermelho adaptado a base do monitor. Figura 16: Produto EAS Binocular da empresa LC Technologies, Inc [30]. O sistema EAS Binocular é utilizado na realização de testes comparativos com o sistema proposto neste trabalho, processo detalhado no capı́tulo 6. 3.4 Robustez em um Sistema de Detecção e Rastreamento Ocular A melhoria da pesquisa realizada por [22], que deu origem a um sistema mais robusto constituiu, um dos primeiros passos deste trabalho de mestrado. Com as implementações propostas e implementadas no trabalho base [39], foi obtido um ganho de até 51% em relação ao modelo proposto por [22], conforme apresentado na Tabela 1, tornando o sistema mais robusto e com um desempenho mais elevado, mantendo 24 os requisitos de hardware e software. A taxa de melhora apresentada, em relação ao sistema utilizado como base, está relacionada à melhora no processo de detecção das regiões da face e dos olhos, o qual, diferente do modelo apresentado por [22] na seção 2.4.1, realizou três modificações nesse processo, limitando a região de busca dos olhos. A Figura 17 apresenta a primeira modificação (método A) implementada no sistema proposto por [22], apresentado no trabalho [39], com objetivo de alterar apenas os processos de detecção da face e detecção dos olhos. Figura 17: Diagrama de Fluxo da Implementação A. A segunda modificação (método B) no sistema proposto por [22], exibida na Figura 18, mantém o processo original de detecção da face e dos olhos, e aplica a modificação após a primeira detecção da ı́ris, definindo uma região de interesse em torno dos olhos, para realizar uma busca local da região da ı́ris. O objetivo dessa modificação é limitar o processamento apenas a uma região de interesse. Figura 18: Diagrama de Fluxo da Implementação B. Na terceira modificação (método C), apresentada na Figura 19, combina-se o método A (Figura 17) com a região em torno dos olhos do método B (Figura 18) para realizar uma busca local da ı́ris. O processo de identificação da região da ı́ris, devido ao seu desempenho satisfatório proposto por [22], foi mantido no trabalho proposto por [39]. Figura 19: Diagrama de Fluxo da Implementação C. 25 A Figura 20 mostra o resultado da implementação, a partir do diagrama de fluxo da implementação C, exibindo as marcações das regiões de interesse processadas a partir da imagem capturada pela webcam. Figura 20: Implementação do modelo apresentado no trabalho [39]. A Tabela 1 mostra o ganho e a perda de desempenho dos métodos implementados por [39], tomando como base o tempo total (detecção de ı́ris e calibração do sistema) dos resultados obtidos com o método [22], tempos aplicados a testes realizados com dois usuários. Tabela 1: Desempenho dos métodos A, B e C em relação ao método proposto por [22] (tempo total). Usuário 1 Usuário 2 Método A -24% -4% Método B 16% 13% Método C 51% 20% 26 4 MODELO PROPOSTO Este capı́tulo apresenta o modelo proposto neste trabalho, visando o desenvolvimento de software aplicado a rastreamento ocular e controle de visada. A seção 4.1 apresenta o detalhamento do macro fluxo do modelo proposto neste trabalho. 4.1 Descrição do Macro Fluxo A utilização de regiões de interesse [26] permite o Processamento de Imagens com alta resolução, em tempo real, sem a perda de desempenho. Uma imagem com alta resolução possui um número maior de pixel tornando a detecção de objetos mais precisa e robusta. A Figura 21 detalha o modelo proposto neste trabalho, servindo de base para o desenvolvimento da aplicação, tendo como objetivo principal o processamento de regiões de interesse na imagem, possibilitando um melhor desempenho em cada etapa de processamento. 27 Figura 21: Fluxo macro do modelo proposto neste trabalho. À seguir são detalhadas cada uma das atividades do modelo proposto, ilustradas na Figura 21. 28 4.1.1 Captura do frame da webcam O modelo proposto por [22] realiza a captura do frame em uma resolução máxima de 640x480 pixels, com uma taxa de 15fps. Neste trabalho, a captura de frames pela webcam é feita com uma qualidade não inferior a 720p, ou seja, captura é realizada com resolução mı́nima de 1280x720 pixels com uma taxa de 30fps. Para que o desempenho do computador não seja um fator negativo no Processamento da Imagem, são processadas apenas as regiões de interesse, eliminado o problema de desempenho encontrado no modelo proposto por [22], que faz o processamento em toda a imagem para cada frame capturado. Para a próxima etapa do processo, a imagem é convertida para uma imagem em escala de cinza e realizada a equalização do histograma, demonstrado na Figura 22. Figura 22: Conversão da imagem original para escala de cinza com equalização de histograma. 29 4.1.2 Detecção da Região da Face Nesta etapa recebe-se como parâmetro de entrada a imagem em escala de cinza e realiza-se a detecção da região da face. Para a detecção da face é utilizada a técnica apresentada por [16] e como parâmetro de entrada um arquivo XML contendo os Classificadores Haar, conforme descrito na biblioteca do OpenCV [40]. Com a região da face delimitada, uma estimativa da região dos olhos é extraı́da da imagem, servindo de parâmetro de entrada para a detecção dos olhos. A técnica segue as caracterı́sticas apresentadas na seção 2.3.1, que utiliza três contribuições: Imagem Integral; Algoritmo de aprendizagem baseado em AdaBoost [32] e um método de combinação de classificadores de complexidade baseados em Haar-like features [41], ou seja, extração de atributos da imagem digital na detecção de objetos, criando um filtro em cascata eficiente. A solução proposta por [41], consiste na busca de atributos simples na imagem, e em sua sucessiva busca por atributos mais detalhados. A busca pelos atributos na imagem, é feita por uma variante do algoritmo AdaBoost [32], que consiste na busca de uma série de classificadores, que possuam um funcionamento em conjunto. A Figura 23 mostra a representação do algoritmo AdaBoost durante o processo de busca de atributos da imagem. 30 Figura 23: Representação da sequencia de busca de atributos na imagem. O algoritmo proposto por [41], trata regiões de 24x24 pixels, e a imagem é escaneada em 11 diferentes escalas, cada uma é 1.25 vezes maior que a anterior. A Figura 24 apresenta os atributos utilizados pelo primeiro classificador. Figura 24: Representação da utilização de atributos utilizados por [41]. O detector é então composto por 38 classificadores em cascata que usam no total 6060 atributos. O primeiro classificador usa apenas dois atributos e é capaz de rejeitar 50% 31 das imagens não-face e aceitar perto de 100% das imagens de regiões da face. O próximo classificador utiliza dez atributos. Os próximos dois classificadores usam 25 atributos cada, e são seguidos por três classificadores com 50 atributos. Os próximos classificadores usam quantidades variadas de atributos. Os classificadores são organizados no formato de uma árvore de decisão degenerada, que consiste no detector em cascata. O funcionamento dessa estrutura ocorre pela passagem de todas as sub janelas de uma imagem por diversos classificadores, sendo os primeiros mais simples que os seguintes. Após a obtenção de um resultado positivo na execução do primeiro classificador, a janela segue para o próximo, continuando seu processo até ser rejeitada, ou então, chegar ao final da cascata. Podendo ser rejeitada em qualquer uma das etapas, o detector entende que não existe uma face na janela processada. A Figura 25 ilustra o processamento em cascata apresentado por [16]. Figura 25: Estrutura que representa o detector em cascata [16]. Após a região da face ser identificada pelo processo anterior, os pontos de borda são utilizados como base para o primeiro processo de delimitação da região de interesse, que consiste em reduzir a região da face em um único retângulo, onde todo o processamento subsequente será realizado. 32 A Figura 26 apresenta a região de interesse da face a partir do Processamento da Imagem de entrada, esta região é utilizada como parâmetro de entrada para as próximas etapas, sendo desconsiderada do processamento a área não demarcada. Esse processo proporciona um ótimo desempenho e torna possı́vel a utilização de imagens de alta resolução. Figura 26: Região de interesse da face. A Figura 27 apresenta o pseudocódigo do processo de detecção da região da face, exibindo os parâmetros utilizados para cada etapa do processo até a delimitação da região de interesse e o processo de exibição da região de interesse na imagem original. 4.1.3 Detecção da Região dos Olhos A delimitação da região de interesse da face é utilizada como base para a detecção da região dos olhos. O processo de detecção ocular utiliza a técnica de [16]. Após a realização da detecção ocular, uma nova delimitação da região de interesse é aplicada nas bordas de cada olho. Nesse processo são delimitadas duas novas regiões de interesse, sendo uma para o olho esquerdo e outra para o olho direito. Com a estimativa da região dos olhos realizada no passo anterior, o processo de detecção dos olhos baseia-se no mesmo processo utilizado na detecção da face, porém o 33 Figura 27: Pseudocódigo do processo de detecção da face. parâmetro de entrada contém o arquivo XML com os Classificadores Haar, para a região dos olhos, conforme descrito na biblioteca do OpenCV [40]. A identificação da região dos olhos serve de parâmetro de entrada para a identificação da região da ı́ris que, por sua vez, também é processada para os dois olhos de forma independente. A Figura 28 exibe a demilitação da região de interesse do olho esquerdo após o processo de detecção. A região delimitada, apresentada na figura, é o parâmetro de entrada para a detecção da ı́ris, sendo ignorada toda a área não demarcada neste processo. A Figura 29 exibe a demilitação da região de interesse do olho direito, utilizando o mesmo processo de detecção descrito para o olho esquerdo. A região delimitada apresen- 34 Figura 28: Região de interesse do olho esquerdo. tada na figura, conforme descrito anteriormente, é o parâmetro de entrada para a detecção da ı́ris, sendo também ignorada toda a área não demarcada neste processo. Figura 29: Região de interesse do olho direito. 35 A Figura 30 apresenta o pseudocódigo do processo de detecção do olho esquerdo, exibindo os parâmetros utilizados para cada etapa do processo até a delimitação da região de interesse e o processo de exibição da região de interesse na imagem original. Para o olho direito, um processo similar é executado, diferenciando apenas nos parâmetros utilizados para detecção e calculo das regiões. Figura 30: Pseudocódigo do processo de detecção da região do olho esquerdo. 4.1.4 Busca pela Região da Íris Neste trabalho, a detecção da ı́ris e seu rastreamento são os pontos principais a serem estudados. Para esse processo foi utilizada a técnica Transformada de Hough, conforme 36 descrita por [25]. A utilização desta técnica tem como objetivo a busca de cı́rculos na região de interesse de cada olho. A detecção da ı́ris é feita de maneira individual, ou seja, é feita a detecção da ı́ris do lado esquerdo independentemente da detecção do lado direito. A Figura 31 apresenta o resultado da técnica apresentada por [25], utilizando a técnica da Transformada de Hough. Figura 31: Detecção da ı́ris, apresentada por [25], utilizando a Transformada de Hough. O processo de detecção da ı́ris leva em consideração a região de interesse de cada olho, destacado na etapa anterior. A busca de um cı́rculo parte dos limites atribuı́dos para cada um dos olhos já detectados. Para obter uma melhor precisão na detecção da ı́ris, em conjunto com a técnica Transformada de Hough, descrita por [25], a detecção das bordas da região de interesse se fez necessária a fim de delimitar a região de busca da ı́ris a partir da região dos olhos. Esse processo torna possı́vel a identificação do centro da pupila, tornando a detecção e rastreamento da ı́ris mais robusta. A Figura 32 mostra a região de interesse da ı́ris do lado esquerdo e a Figura 33 mostra a região de interesse da ı́ris do lado direito. As imagens também apresentam a indicação 37 do canto de cada olho, os quais têm as suas posições determinadas pela detecção do centro da pupila. Figura 32: Região de interesse da ı́ris do lado esquerdo. A Figura 32 mostra o processo após a detecção da região dos olhos e a delimitação dos pontos de interesse na imagem, sendo realizado o Processamento da Imagem a fim de buscar e a detectar da ı́ris, apenas na região demarcada no processo anterior. A Figura 33 segue o mesmo processamento utilizado para a Figura 32, sendo efetuada a busca e detecção da ı́ris apenas ne região delimitada no processo anterior. Figura 33: Região de interesse da ı́ris do lado direito. Como pode ser observado nas figuras anteriores, o processo de busca e detecção da 38 ı́ris, para ambos os olhos, trabalha de forma independente, ou seja, tanto o olho esquerdo como o olho direito possuem processos independentes de busca e detecção, permitindo a parametrização, ou talvez, algum tipo de adaptação para qualquer um dos olhos, sem que o mesmo interfira no processamento do outro. 4.1.5 Calibração do Sistema Para garantir uma precisão satisfatória das ações a serem realizadas pelo usuário, como, por exemplo, a movimentação do ponteiro do mouse, foi adicionado à aplicação um processo de calibração. Tal processo exige, após a primeira interação do usuário durante a detecção da ı́ris, que o mesmo fixe o olhar para pontos definidos pela aplicação, com o objetivo de armazenar os limites de cada um dos quatro lados do monitor, sendo eles os pontos de máximo e mı́nimo dos eixos X e Y . As coordenadas são utilizadas para determinar a precisão do movimento do mouse visto que, neste trabalho, tais coordenadas são extraı́das de forma independente, ou seja, são extraı́das para cada olho separadamente. Esse processo torna o movimento do ponteiro mais preciso, pois a detecção de forma conjunta causa falhas de posicionamento e pouca precisão durante o processo de posicionamento do ponteiro do mouse. O processo de calibração foi separado em fases distintas, sendo que cada uma orienta o usuário a fixar o olhar para cada um dos pontos indicados na tela. As fases da calibração foram divididas da seguinte maneira: 1. centro da tela; 2. canto superior esquerdo; 3. canto superior direito; 4. canto inferior direito; 5. canto inferior esquerdo. As fases do processo de calibração são realizadas para os dois olhos, conforme já descrito. 39 4.1.6 Rastreamento da Íris Após a calibração realizada e os limites identificados, o processamento é retomado para a etapa inicial, porém com as regiões de interesse já demarcadas durante a primeira interação. O centro da ı́ris é demarcado para ser utilizado como referência para a próxima etapa do processo, sua posição em relação à imagem é transformada a partir de uma matriz de transformação em uma posição (x, y) proporcional ao tamanho da área de trabalho utilizada. Tal processo é base para a realização da movimentação do ponteiro do mouse. A Figura 34 apresenta o pseudocódigo do processo de detecção da ı́ris, exibindo os parâmetros utilizados para cada etapa do processo até a delimitação da região de interesse e o processo de exibição da região de interesse na imagem original. O processo se repete para detecção da ı́ris em ambos os olhos, direito e esquerdo, não havendo diferença de parâmetros ou configuração personalizada para ambos os olhos. Figura 34: Pseudocódigo do processo de detecção da região da ı́ris. 40 O processo de rastreamento da ı́ris aplicada neste trabalho, consiste em uma busca local realizada para cada frame capturado pela câmera. Devido a delimitação das regiões de interesse realizada nos processos anteriores de detecção da face e detecção da região dos olhos, a retomada do processo de detecção da ı́ris não possui custo computacional elevado. Os estados atuais da detecção da ı́ris são armazenados em variáveis de controle, com objetivo de aumentar a robustez da aplicação em uma possı́vel falha em alguma das etapas do processo, o sistema realiza a retomado do processo inicial a partir dos parâmetros armazenados no processamento do frame anterior, tornando o sistema tolerante a falhas, não necessitando realizar todas as etapas do Processamento de Imagens, o que poderia acarretar em um custo computacional desnecessário. 4.1.7 Movimento do Mouse A partir de todo o processo de detecção das caracterı́sticas da região da face com limitação das regiões de interesse, é possı́vel manipular essas informações de várias maneiras, como, por exemplo, controle do clique do mouse a partir do piscar de olhos do usuário, conforme descrito por [42] e [43]. Desta maneira, são desenvolvidos sistemas com base na detecção da ı́ris do usuário e o controle do mouse a partir dos movimentos dos olhos. O posicionamento do ponteiro do mouse é calculado a partir dos limites das regiões estabelecidas pelo processo de calibração. Tal processo tem como objetivo identificar os limites da área de visão do usuário, a fim de melhorar a precisão dos movimentos do ponteiro do mouse. A captura dos limites de tela é realizada no processo de calibração da aplicação, sendo armazenados os pontos demarcados em tela, para determinar os limites de tela, e também, o ponto central, pontos utilizados para posterior cálculo de posicionamento do mouse, baseado no posicionamento ocular. A Figura 35 ilustra os pontos armazenados durante o processo de calibração, sendo calculados os limites dos pontos capturados. 41 Figura 35: Modelo de cálculo de limites das posições x,y. Para geração do ∆x e ∆y, são considerados o posicionamento dos dois olhos do usuário, então é calculada a média sobre os valores a partir da diferença entre a média das posições. A Equação 5 apresenta o cálculo realizado para o ∆x. ∆x = XseL + XseR XsdL + XsdR − 2 2 (5) Equação 5: Cálculo do ∆x. Sendo XseL a posição X superior esquerda relacionada ao olho esquerdo, XseR a posição X superior esquerda relacionada ao olho direito, XsdL a posição X superior direita relacionada ao olho esquerdo e XsdR a posição X superior direita relacionada ao olho direito. A Equação 6 apresenta o cálculo para o ∆y. ∆y = Y seL + Y seR Y ieL + Y ieR − 2 2 − Y sdL + Y sdR Y idL + Y idR − 2 2 (6) Equação 6: Cálculo do ∆y. Sendo Y seL a posição Y superior esquerda do olho esquerdo, Y seR a posição Y superior esquerda do olho direito, Y ieL a posição Y inferior esquerda do olho esquerdo, Y ieR a posição Y inferior esquerda do olho direito, Y sdL a posição Y superior direita do olho 42 esquerdo, Y sdR a posição Y superior direita do olho direito, Y idL a posição Y inferior direita do olho esquerdo e Y idR a posição Y inferior direita do olho esquerdo. O cálculo dos pontos ∆x e ∆y são armazenados para posterior utilização no processo de movimentação do mouse, tal que, para cara posicionamento ocular capturado em cada frame processado pela aplicação, os valores de ∆x e ∆y são utilizados para mapear a tela do usuário, em relação à imagem capturada. A posição central, capturada no inı́cio do processo de calibração, é utilizado para realizar o movimento do mouse, sendo que, sua posição é armazenada em cada frame processado. O posicionamento X e Y capturados no frame, é comparado com o valor capturado no frame anterior, e então, o ponteiro do mouse é movimentado, tendo seu posicionamento X e Y acrescido e/ou decrescido de 20 pixels, sendo então, realizado o movimento do ponteiro do mouse. 4.1.8 Acionamento do Click do Mouse Para o acionamento da ação de click do mouse, foi utilizada a mesma operação realizada por [22], sendo executada a ação de “Click ” a partir do “fechamento” de um dos olhos, podendo ser, o olho esquerdo, ou o olho direito. O processo de “fechamento” de um dos olhos, é identificado a partir da não detecção da ı́ris de apenas um dos olhos por mais de dois segundos. 43 5 DESENVOLVIMENTO DA APLICAÇÃO Este capı́tulo versa sobre o desenvolvimento da aplicação baseado no modelo proposto. O desenvolvimento do sistema de software deste trabalho consiste no processamento de regiões especı́ficas da imagem, mais precisamente nas regiões mais importantes para os resultados esperados do processo. A aplicação foi desenvolvida com objetivo de validar as técnicas descritas no capı́tulo 4, realizando testes com o sistema-base e sistemas comerciais e, também a apresentação de casos de testes apenas da aplicação desenvolvida neste trabalho. A seção 5.1 apresenta a metodologia de desenvolvimento de software utilizada; a seção 5.2 descreve o escopo do desenvolvimento da aplicação; a seção 5.3 detalha o processo de análise de requisitos; a seção 5.4 versa sobre os recursos de hardware e software utilizados para o desenvolvimento da aplicação. Finalmente a seção 5.5 aborda o processo de implementação da aplicação desenvolvida. 5.1 Metodologia de Desenvolvimento da Aplicação A metodologia utilizada para suportar o desenvolvimento da aplicação é a metodologia baseada em Prototipação. Prototipação (ou modelo Evolutivo), conforme definido por [44], é classificada como um Modelo de Processo de Software, ou seja, ela determina a maneira precisa de como serão as atividades e dinâmicas da criação do software. O desenvolvimento é feito obedecendo a realização das diferentes etapas de análise de requisitos, projeto, codificação e os testes. Devido à complexidade no levantamento de requisitos, se faz necessária a utilização de um protótipo do sistema, sendo que um protótipo é uma versão inicial de um sistema de software, utilizado para apresentar conceitos e realização de testes experimentais. Um protótipo de software apóia duas atividades do processo de engenharia de requisitos: 44 • Levantamento de requisitos: Os protótipos de sistema permitem que os usuários realizem experiências para ver como o sistema apóia seu trabalho. Podem gerar novos requisitos e identificar pontos positivos e negativos do software. • Validação de requisitos: O protótipo pode revelar erros e omissões nos requisitos propostos. Uma função descrita em uma especificação pode parecer útil e bem-definida. Contudo, quando essa função é utilizada com outras, os usuários muitas vezes acham que sua visão inicial era incorreta e incompleta. A especificação de sistema pode, então, ser modificada para refletir sua compreensão alterada dos requisitos. A Figura 36 apresenta o modelo de desenvolvimento utilizando a metodologia de prototipação da Engenharia de Software. Figura 36: Modelo de prototipação [44]. Conforme descrito por [45], um protótipo é uma versão inicial de um sistema, para demonstrar conceitos e testar opções de projeto, podendo ser utilizado no processo de engenharia de requisitos, auxiliando na validação de requisitos requisitos, nos processos de projeto para explorar opções, no desenvolvimento de um projeto de interface de usuário e no processo de testes. A Figura 37 exemplifica o processo de desenvolvimento 45 de protótipos, apresentando as fases do desenvolvimento de um protótipo, seguindo a metodologia de prototipação. Figura 37: Processo de desenvolvimento de protótipos [45]. 5.2 Descrição do Desenvolvimento da Aplicação Para o desenvolvimento da aplicação de rastreamento ocular proposto neste trabalho, foi criado um fluxo de atividades no qual é detalhada a sequência de processamento da imagem. A Figura 38 mostra o fluxo principal da metodologia utilizada neste trabalho, seguindo o modelo proposto no capı́tulo 4. A execução da aplicação segue uma sequência de tarefas a serem executadas, conforme ilustrado na imagem. Figura 38: Fluxo principal do sistema. 46 5.3 Análise de Requisitos Segundo a IEEE [46], a análise de requisitos é um processo que envolve o estudo das necessidades do usuário para se encontrar uma definição correta ou completa do sistema ou requisito de software. O processo de análise de requisitos neste trabalho tem como objetivo, englobar as tarefas de especificação de requisitos, consolidando funções e apresentando a modelagem da aplicação, apresentando ferramentas que facilitarão o entendimento do sistema, como as funcionalidades e seu comportamento. A Figura 39 apresenta o Diagrama de Caso de Uso do sistema proposto baseado no fluxo principal exposto, mostrando a interação do usuário com o sistema, mostrando também as interações entre os módulos do sistema. Figura 39: Diagrama de Caso de Uso do sistema. 47 Na primeira interação com o usuário, o sistema irá realizar a inicialização dos parâmetros iniciais, sendo eles: - configurações para captura de imagens pela câmera (altura, largura, frames por segundo); - arquivos xml de configuração das regiões da face para detecção; - arquivo xml de configuração das regiões dos olhos para detecção. Seguido das etapas de processamento de detecção e delimitação de regiões de interesse da face, dos olhos e da ı́ris. Após a conclusão das etapas de processamento, é então inicializada a interface de calibração, seguida pela interface de rastreamento ocular, permitindo ao usuário a utilização do sistema. A Figura 40 apresenta o Diagrama de Sequência do sistema proposto, a fim de ilustrar a troca de mensagens entre o usuário e entre os módulos do sistema durante toda a sua execução. Figura 40: Diagrama de Sequência do sistema. O sistema foi desenvolvido de forma modular e independente, a fim de permitir o reaproveitamento de código. Para permitir o reaproveitamento de código, o módulo contendo as regras de processamento da face, dos olhos, e da ı́ris foi desenvolvido na construção de um Framework. Conforme abordado por [47], Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domı́nio de um subsistema da aplicação, que representam uma estrutura formada por blocos pré-fabricados de software, disponı́vel para a utilização de desenvolvedores, dos quais podem ser estendidos ou adaptados em uma solução especı́fica. 48 A Figura 41 apresenta o Diagrama de Pacotes do sistema proposto, desenvolvidos de forma independente. O pacote de apresentação contém as interfaces para os usuários, tendo como dependência os pacotes de regras e Rastreamento Ocular. O pacote de Rastreamento Ocular contém toda a lógica de rastreamento ocular, que são: posicionamento da ı́ris; movimento do mouse, tendo como dependência apenas o pacote de Regras. Por fim, o pacote de Regras possui a lógica de processamento de regiões de interesse da face, dos olhos e da ı́ris que, conforme ilustrado na Figura 41, é um conjunto de classes independentes, que podem ser utilizadas e/ou adaptadas em qualquer outro sistema. Figura 41: Diagrama de Pacotes do sistema. De acordo com a metodologia apresentada para o desenvolvimento de um sistema de rastreamento ocular, o desenvolvimento é constituı́do baseado na modelagem de desenvolvimento de sistema orientados a objetos. A Figura 42 exibe o Diagrama de Classe do sistema proposto. O Diagrama de Classe apresenta as classes principais do sistema, como sendo conteúdo do pacote de Regras apresentado anteriormente no Diagrama de Pacotes. 49 Figura 42: Diagrama de Classe do sistema. 50 5.4 Projeto Para a codificação do sistema desenvolvido neste trabalho foi utilizada a Integrated Development Environment (IDE) ou Ambiente Integrado de Desenvolvimento Microsoft Visual Studio 2013 Professional [48]. As linguagens de desenvolvimento de software Visual C# [49] (“C sharp”) e C++ [50], foram utilizadas para suportar o desenvolvimento da aplicação. A Tabela 2 apresenta os equipamentos de hardware utilizados para o desenvolvimento deste projeto de desenvolvimento do software. Tabela 2: Descrição dos equipamentos utilizados. Equipamento Modelo Configuração Notebook Sony Vaio SVS15115FBB Processador Intel Core i7, 6GB RAM, HD 750GB Monitor Benq XL24210T 24 polegadas e resolução FULL HD A captura em tempo real das imagens foi feita a partir de uma webcam com capacidade máxima de captura de 720p com 30fps. 5.5 Implementação A partir da especificação e análise de requisitos realizada anteriormente, realizou-se o desenvolvimento de um protótipo de uma aplicação de rastreamento ocular com as seguintes funcionalidades: • seleção da câmera de captura; • inicialização da captura; • inicialização da calibração; • controles de detecção dos olhos; – detecção do olho esquerdo; 51 – detecção do olho direito; • controles de detecção da ı́ris; – detecção da ı́ris esquerda; – detecção da ı́ris direita; • controle do mouse; – controle do mouse vertical; – controle do mouse horizontal. A Figura 43 apresenta a tela inicial do protótipo desenvolvido neste trabalho, que consiste em um ambiente de visualização do processamento da imagem cujas opções de configuração e parametrização são exibidas na coluna à direita. O protótipo permite que seja iniciada a captura da imagem, permite também a possibilidade de validar o processamento de cada etapa, como, por exemplo; verificar o processamento da imagem apenas para um dos olhos e/ou apenas para uma das ı́ris. O sistema permite também a inicialização da calibração e a validação independente do controle do mouse, analisando o desempenho dos movimentos do mouse, sendo possı́vel habilitar/desabilizar o controle de movimento do mouse ou apenas um tipo de movimento especı́fico (horizontal / vertical). Figura 43: Tela Inicial da aplicação desenvolvida neste trabalho. 52 Para a calibração do sistema, foi desenvolvido o modelo baseado no sistema EyeGaze. O sistema apresenta uma série de pontos na tela para que o usuário siga os mesmos com os olhos. A Figura 44 apresenta a tela de calibração do sistema EyeGaze. O sistema permite a visualização da região da ı́ris capturada em infravermelho nas janelas superiores apresentadas na imagem. Figura 44: Tela de calibração do sistema EyeGaze. 53 O processo de calibração do sistema desenvolvido neste trabalho inicia-se com duas mensagens apresentadas para o usuário, preparando o mesmo para o inı́cio da calibração. A Figura 45 apresenta a primeira mensagem e a Figura 46 exibe a segunda mensagem. Após a exibição das mensagens, é iniciada a calibração dos pontos. A Figura 47 apresenta a tela de calibração de pontos desenvolvida e o processo de calibração finalizado, sendo que todos os pontos estão sendo exibidos. Figura 45: Primeira mensagem no inı́cio da calibração. Figura 46: Segunda mensagem no inı́cio da calibração. 54 Figura 47: Tela de calibração da aplicação desenvolvida neste trabalho. Após o processo de calibração, a aplicação está apta para iniciar a movimentação do mouse a partir do movimento dos olhos do usuário. Para validação desta etapa do processo, uma interface foi desenvolvida para digitação de números, sendo que este processo também foi baseado no sistema EyeGaze. A Figura 48 apresenta a tela de digitação de números do sistema EyeGaze, seguida pela Figura 49 que apresenta a tela de digitação de números desenvolvida para validação do modelo proposto neste trabalho. Figura 48: Tela de digitação de números do sistema EyeGaze. 55 Figura 49: Tela de digitação de números desenvolvida neste trabalho. 5.5.1 Testes O detalhamento do processo de testes, juntamente com a apresentação dos resultados obtidos com o desenvolvimento da aplicação, abordando as técnicas listadas neste trabalho e a comparação com outros sistemas, são temas abordados no capı́tulo 6. 56 6 TESTES E DISCUSSÕES Este capı́tulo apresenta o desenvolvimento do processo de testes baseado no desenvolvimento do sistema de software proposto neste trabalho. O processo de testes está descrito da seguinte maneira: A seção 6.1 descreve a bateria de testes criados para o sistema proposto neste trabalho; a seção 6.2 apresenta os testes comparativos realizados com o sistema proposto por [39] e o sistema de uso comercial EAS Binocular ; e a seção seção 6.3 versa sobre testes em diferentes equipamentos. 6.1 Detalhamento dos Testes De acordo com o desenvolvimento da aplicação de rastreamento ocular deste trabalho, faz-se necessária uma bateria de testes a fim de garantir as técnicas aplicadas para o desenvolvimento da aplicação. Para este trabalho, foram identificados dois tipos de testes necessários e apontados como requisitos básicos, sendo eles detalhados na seção 6.2, sendo que um dos testes tem como objetivo comparar a aplicação desenvolvida neste trabalho com a aplicação modificada no trabalho desenvolvido e detalhado em [39]. O segundo teste trata da comparação com o produto de uso comercial EAS Binocular, criado pela empresa LC Technologies, Inc. [30], tem como objetivo identificar pontos em que um sistema de baixo custo, desenvolvido neste trabalho, pode-se equiparar com um produto comercial de rastreamento ocular. Essa comparação tem como objetivo detalhar o nı́vel de desempenho das aplicações, identificando pontos e técnicas a serem aprimoradas neste trabalho, e, também, em trabalhos futuros relacionados a rastreamento ocular. A subseção 6.2.1 aborda o comparativo do modelo proposto neste trabalho com o sistema utilizado como base. A subseção 6.2.2 versa sobre o comparativo entre o modelo proposto neste trabalho e o produto comercial EAS Binocular, e a subseção 6.4 descreve sobre a realização de testes com diferentes usuários. 57 6.2 Comparação entre Sistemas Os testes comparativos entre o modelo proposto neste trabalho e as aplicações descritas anteriormente têm como objetivo validar o modelo e as técnicas utilizadas e descritas neste trabalho e apresentar uma nova abordagem para desenvolvimento de um sistema de rastreamento ocular robusto e com baixo custo. Foram avaliadas as métricas de desempenho e precisão na extração de caracterı́sticas e desempenho no processo de calibração dos sistemas. 6.2.1 Comparação com o Sistema-Base Os testes primários foram definidos com base no sistema já modificado, apontado no trabalho apresentado em [39], que, por sua vez, obteve ganhos de até 51% com relação ao sistema desenvolvido por [22]. Foram realizados testes calculando tempo total do sistema, desde o inı́cio do processo de identificação da região da face, até o inı́cio do movimento do ponteiro do mouse. Nessa etapa o sistema passa por todo o processo de identificação e rastreamento da ı́ris do usuário. Baterias de dez testes foram realizadas para os dois sistemas, a fim de extrair a média dos tempos apurados durante a execução. Neste trabalho, a técnica para a busca e identificação da ı́ris consiste na utilização da Transformada de Hough [17]. O trabalho proposto por [39] baseia-se na utilização de filtros na imagem, identificando conjuntos de borda que formem uma elipse para a identificação da ı́ris. A Tabela 3 apresenta o tempo de detecção da região da ı́ris, do modelo proposto neste trabalho e o modelo proposto por [39]. 58 Tabela 3: Tempo para detecção da ı́ris com relação ao método desenvolvido no trabalho [39]. Tempo de detecção da ı́ris Sistema Proposto por [39] Este Trabalho entre 15s e 30s entre 5s e 8s A Tabela 4 apresenta o tempo total que a aplicação utiliza para realização dos seguintes processos: detecção da face, detecção dos olhos, busca e identificação da ı́ris. Tabela 4: Tempo total (detecção da face, olhos e ı́ris até o inı́cio da calibração do sistema) para o método do trabalho base [39]. Tempo Calculado Sistema proposto em [39] Este Trabalho entre 36s e 44s entre 12s e 15s Os testes comparativos mostram um ganho que a pesquisa deste trabalho obteve em relação ao trabalho apontado por [39]. A média realizada nas duas baterias de testes está apontada na Tabela 5. Tabela 5: Ganho em relação ao sistema desenvolvido em [39]. Este Trabalho Detecção da Íris 33% Processo até a calibração 29% Dentro do cenário criado para os testes da aplicação, pode-se notar o ganho de até 33% em relação ao sistema apresentado por [39]. 6.2.2 Comparação com o Sistema Comercial EAS Binocular Os testes foram realizados com dois usuários, verificando o desempenho entre os sistemas, nos processos de calibração e digitação de um número aleatório e digitação de um número sequencial de nove dı́gitos. Para testes no processo de calibração, o sistema EAS Binocular foi configurado a fim de efetuar o processo em cinco pontos, para que ambos os sistemas tenham a mesma 59 configuração. Para a execução dos testes comparativos, foi selecionado, um usuário especialista no sistema EAS Binocular e outro usuário especialista no sistema desenvolvido neste trabalho. A Tabela 6 apresenta o comparativo de tempo no processo de calibração, utilizando cinco pontos de calibração do sistema, apresentando a diferença em percentual calculada a partir dos resultados obtidos. Tabela 6: Comparação do processo de calibração deste trabalho com o produto EAS Binocular. Este Trabalho Desvio EAS Binocular Padrão Desvio Diferença % Padrão Usuário 1 12s 1,18 10s 1 -17% Usuário 2 15s 1,21 13s 0,5 -13% A Tabela 7 exibe o desempenho dos sistemas na digitação de um número de telefone (97482-06xx), juntamente com a diferença percentual entre os sistemas. Tabela 7: Comparação na digitação de um número de telefone com o produto EAS Binocular. Este Trabalho Desvio EAS Binocular Padrão Desvio Diferença % Padrão Usuário 1 43,30s 1,48 15,35s 0,66 -64% Usuário 2 40,20s 2,07 15,31s 0,96 -61% A Tabela 8 exibe o desempenho dos sistemas na digitação de um número sequencial de nove dı́gitos (123456789), apresentando também, a diferença entre os sistemas. 60 Tabela 8: Comparação na digitação de um número sequencial com o produto EAS Binocular. Este Trabalho Desvio EAS Binocular Padrão Desvio Diferença % Padrão Usuário 1 48,30s 1,68 17,95s 0,15 -62% Usuário 2 39,50s 1,23 13,30s 0,78 -66% Os resultados obtidos nos testes com o produto comercial com a aplicação comercial EAS Binocular, mostrou que a aplicação desenvolvida neste trabalho, possui um desempenho inferior quando comparado com um produto comercial. Tal comparação já era prevista, devido a diferença de arquitetura dos softwares e equipamentos utilizados, é possı́vel observar que, além das diferenças entre as aplicações, as aplicações foram comparadas realizando o mesmo processo, ou seja, ambas as aplicações foram comparadas nos mesmos quesitos, sendo que, ambas as aplicações executaram as tarefas de forma completa, independente do nı́vel de arquitetura de hardware e software. Além das diferenças apontadas no teste comparativo, um dos principais pontos a serem levados em consideração, é a diferença do custo entre as aplicações, sendo que, para este trabalho, o custo para utilização da aplicação é em torno de R$400, e o produto EAS Binocular possui um custo de US$ 30 mil, ou seja, este trabalho, possui um custo total de pouco mais de 1% quando comparado com o custo total do produto EAS Binocular. 6.3 Testes com diferentes monitores Testes em diferentes monitores se faz necessário neste trabalho, para que possa ser avaliado a utilização da aplicação, e das técnicas estudadas neste trabalho, em relação a utilização em diferentes equipamentos. Neste trabalho, foram realizados testes com três diferentes tipos de monitores, conforme apresentado na Tabela 9. 61 Tabela 9: Descrição dos tipos de monitores. Equipamento Modelo Configuração Notebook Sony Vaio SVS15115FBB 15.5 polegadas e resolução FULL HD Monitor Benq XL24210T 24 polegadas e resolução FULL HD TV Monitor Samsung UN32D 32 polegadas e resolução FULL HD Para os testes realizados neste trabalho, os monitores foram configurados em sua resolução máxima de 1920x1080pixels. Foram realizados baterias de cinco testes para cada equipamento, e os processos testados foram, a calibração e a digitação de um número sequencial de 1 à 9. A Figura 50 apresenta o ambiente para realização de testes com monitore de 15 polegadas. Figura 50: Ambiente de testes para o monitor de 15 polegadas. A Figura 51 apresenta o ambiente para realização de testes com monitore de 24 polegadas. 62 Figura 51: Ambiente de testes para o monitor de 24 polegadas. A Figura 52 apresenta o ambiente para realização de testes com monitore de 32 polegadas. Figura 52: Ambiente de testes para o monitor de 32 polegadas. 63 A Tabela 10 apresenta como resultado, a média do tempo de execução dos ciclos do processo de calibração para os equipamentos. Tabela 10: Comparação do processo de calibração em diferentes monitores. Monitor Sony Desv. BenQ Desv. Samsung Desv. (15’) Padrão (24’) Padrão (32’) Padrão Usuário 1 15s 1,27 12,8s 0,83 14s 2 Usuário 2 19,4s 1,81 15s 3,24 16,2s 2,16 A Tabela 11 apresenta como resultado, a média do tempo de execução dos ciclos do processo de digitação de um número sequencial nos equipamentos e o desvio padrão calculado baseado nos valores obtidos. Tabela 11: Comparação na digitação de um número sequencial nos diferentes monitores. Monitor Sony Desv. BenQ Desv. Samsung Desv. (15’) Padrão (24’) Padrão (32’) Padrão Usuário 1 55s 5,63 48s 3,08 64s 1,64 Usuário 2 62s 5,87 39s 3,03 69s 2,73 Os testes em diferentes equipamentos, foram realizados com sucesso em todos os equipamentos descritos nesta seção, independente da diferença de desempenho destacados anteriormente. Pode-se observar que, os diferentes equipamentos obtiveram resultados em que sua variação foi de no máximo 4s para o processo de calibração, e de 30s para o processo de digitação. O monitor de 32’ polegadas obteve os piores tempos quando comparados com os demais monitores utilizados durante os testes. Pode-se observar que devido a necessidade de movimentar a cabeça para os lados, no intuito de acompanhar o movimento do mouse, ocorreram falhas durante o processo de rastreamento, devido a perda da região dos olhos e consecutivamente da região da ı́ris, necessitando realizar essa etapa do processo mais vezes. Na tentativa de reposicionar a distância do usuário em relação ao monitor, o processo de detecção da região da ı́ris foi afetado, não sendo viável a realização de testes em uma distância maior do que 60cm do monitor. 64 O monitor intermediário possui os melhores tempos devido ao seu posicionamento em relação ao usuário, e a não necessidade do usuário em movimentar a cabeça para acompanhar o ponteiro do mouse, tornando o rastreamento mais preciso e com mı́nimo de necessidade de retomada do processo. A aplicação foi desenvolvida para ajustar automaticamente sua área de trabalho de acordo com a resolução do monitor, portando, com a resolução dos equipamentos padronizadas em 1920x1080 pixels, não houve perda de desempenho relacionado a diferentes resoluções, porém o tamanho da tela influencia na utilização da aplicação, pois, os equipamentos possuem diferentes tamanhos e independente da resolução trabalhada, os elementos exibidos em tela, possuem sua localização alterada conforme o tamanho do equipamento. Pode-se concluir a partir da realização dos teste que, não houve uma diferença de desempenho que possa inviabilizar a utilização da aplicação em diferentes equipamentos, sendo que, quanto maior a utilização em determinado equipamento, maior a expertise e velocidade no uso da aplicação. 6.4 Testes com diferentes usuários Baseado nos resultados obtidos nos testes com diferentes monitores, foram selecionados cinco usuários para realização testes. O monitor utilizado para a realização dos testes foi o monitor BenQ de 24 polegadas, devido ao melhor resultado nos testes. Os usuários selecionados são compostos de duas crianças do sexo masculino e três adultos, dos quais dois são do sexo feminino. As idades variam de 12 anos até 42 anos, e nenhum dos participantes teve qualquer tipo de contato com a aplicação até a realização dos testes. Foram definidas as etapas de calibração e digitação de um número sequencial de 1 à 9, e uma bateria de cinco ciclos do processo. 65 A Tabela 12 apresenta como resultado, a média do tempo de execução dos ciclos do processo de calibração e o desvio padrão baseado nos valores obtidos. Tabela 12: Comparação do processo de calibração. Tempo médio de calibração Desvio Padrão Usuário 1 13,2s 2,77 Usuário 2 15,8s 2,58 Usuário 3 15s 2,23 Usuário 4 12,8s 0,83 Usuário 5 13,6s 1,14 A Tabela 13 apresenta como resultado, a média do tempo de execução dos ciclos do processo de digitação de um número sequencial e o desvio padrão calculado baseado nos valores obtidos. Tabela 13: Comparação na digitação de um número sequencial. Tempo médio de digitação Desvio Padrão Usuário 1 49s 4,41 Usuário 2 43,6s 5,85 Usuário 3 39,4s 4,39 Usuário 4 40,4s 4,50 Usuário 5 34s 4,74 Durante a execução dos testes, pode-se notar que, após o terceiro ciclo do processo, os tempos obtidos foram mantendo uma constante, obtendo pouca variação em reação as duas primeiras iterações. Os testes com usuários distintos mostram a possibilidade da utilização da aplicação desenvolvida neste trabalho, em maior escala, podendo até, em determinados casos, substituir aplicações de uso comercial. 66 7 CONCLUSÃO Este capı́tulo apresenta as conclusões obtidas com o desenvolvimento deste trabalho. A seção 7.1 apresenta os aspectos gerais do trabalho, versando sobre abordagem e sobre o desenvolvimento da aplicação de rastreamento ocular e controle de visada; a seção 7.2 traz as contribuições deste trabalho e a seção 7.3 descreve os trabalhos futuros que podem ser desenvolvidos a partir desta tese. 7.1 Aspectos Gerais do Trabalho O trabalho explorou modelos de detecção e rastreamento ocular do usuário de forma a obter maior desempenho e robustez, dando continuidade ao trabalho apresentado em [39]. Este trabalho mostra ainda a viabilidade da utilização de diferentes técnicas para filtragem de imagens e, diferentemente do trabalho apresentado em [39], tornou possı́vel o processamento de imagens de alta resolução, melhorando a qualidade da detecção e rastreamento da ı́ris. A partir de delimitações de regiões de interesse na imagem, apresentadas neste trabalho, o Processamento de Imagens tornou-se mais robusto, por não ser mais necessário a realização de buscas e processamentos constantes em toda a região da imagem. Por meio de testes iniciais comparando o sistema utilizado no trabalho [39], foi possı́vel identificar uma melhora significativa de até 33% nos quesitos de desempenho em comparação às técnicas implementadas por [39]. Testes com diferentes equipamentos mostraram a possibilidade da utilização da aplicação em ambientes distintos, com monitores de diferentes tamanhos. Os testes comparativos com o produto comercial EAS Binocular, apresentou que a aplicação desenvolvida deste trabalho, no melhor caso obteve um resultado de -13%, e em seu pior caso, um resultado de -66%, porém, a perca de desempenho, pode ser equiparada com o custo total dos projetos. Os testes realizados, foram executados e 67 finalizados com sucesso em ambas as aplicações, independentemente dos resultados de desempenho obtidos, mostrando que é possı́vel, dependendo do requisito a ser analisado, que uma aplicação, com um custo total de R$400, pode substituir um produto que pode ultrapassar o custo de US$30 mil. 7.2 Contribuições do Trabalho O desenvolvimento de uma aplicação de rastreamento ocular visa proporcionar uma série de estudos, sendo eles: na área de IHC, estudos comparativos entre sistemas e equipamentos, e até mesmo, técnicas de diversos segmentos da área de Visão Computacional. As modificação das técnicas de Processamento de Imagens utilizadas no sistema utilizado como base deste trabalho, apresentando novas abordagens e melhorias em todas as etapas. O Processamento de Imagens de alta resolução em tempo real com baixo custo computacional, um dos pontos mais significativos deste trabalho, tornou possı́vel o processamento de regiões de interesse na imagem com baixo custo computacional. O estudo e realização de testes com vários monitores, identificou o melhor cenário para utilização da aplicação desenvolvida, mostrando a adaptação da aplicação em diferentes ambientes. A realização de testes com usuários, apurou o desempenho da aplicação com pessoas distintas, sendo realizado o levantamento e a apuração dos resultados obtidos diante do cenário proposto. A comparação com outro sistema de rastreamento ocular de uso comercial, mostrou que é possı́vel desenvolver uma aplicação que seja robusta, combinada com um desempenho satisfatório e com a utilização de equipamentos de baixo custo, podendo em determinados cenários, substituir aplicações uso comercial. 68 7.3 Trabalhos Futuros Algumas melhorias foram identificadas durante o desenvolvimento do trabalho apresentado, destacando-se a possı́vel utilização de outros tipos de recursos de hardware, como por exemplo, monitores de diferentes tamanhos e resoluções. As regiões de interesse em uma imagem são pontos a serem estudados, sendo que a possı́vel limitação das regiões de interesse, para cada tipo de caracterı́sticas facial, pode aumentar o desempenho e robustez do sistema em fatores consideráveis. A precisão do movimento do mouse é um ponto a ser explorado neste trabalho, por se tratar de um ponto sensı́vel identificado, e por se mostrar o dos pontos principais da aplicação, quando comparado com demais sistemas. Testes de usabilidade, utilizando uma massa considerável de usuários, a fim de realizar a validação das técnicas utilizadas no desenvolvimento da aplicação, e também, validação da interface do usuário. A realização de pesquisa de satisfação com os usuários, poderá criar uma base de conhecimento, para identificação de melhorias em todo o processo. 69 REFERÊNCIAS BIBLIOGRÁFICAS [1] D. Benyon, “Interação humano-computador,” Tradução de Heloı́sa Coimbra de Souza. 2a . ed. São Paulo: Person Prentice Hall, p. 464, 2011. [2] A. I. Orth, “Interface homem-máquina,” Porto Alegre: AIO, 2005. [3] J. Preece, Y. Rogers, H. Sharp, D. Benyon, S. Holland, and T. Carey, Humancomputer interaction. Addison-Wesley Longman Ltd., 1994. [4] T. P. Moran, “The command language grammar: A representation for the user interface of interactive computer systems,” International journal of man-machine studies, vol. 15, no. 1, pp. 3–50, 1981. [5] M. d. P. Guimaraes, V. F. Martins, and J. R. F. Brega, “A software development process model for gesture-based interface,” in Systems, Man, and Cybernetics (SMC), 2012 IEEE International Conference on. IEEE, 2012, pp. 2979–2990. [6] A. L. Kawamoto, V. F. Martins, and J. S. Neto, “Requirements and guidelines for the evaluation of voice user interfaces,” Aleksandar Lazinica. (Org.). User Interfaces, vol. 1, pp. 32–55, 2010. [7] A. Leonel, F. Buarque, S. C. Oliveira, and H. S. B Filho, “Uma interface humanomáquina inteligente baseada no rastreamento ocular para comunicação escrita de pacientes com sı́ndrome locked-in,” 2009. [8] H. Pistori and J. J. Neto, “Utilização de tecnologia adaptativa na detecção da direção do olhar,” Spc Magazine, vol. 2, 2003. [9] A. T. Duchowski, “A breadth-first survey of eye-tracking applications,” Behavior Research Methods, Instruments, & Computers, vol. 34, no. 4, pp. 455–470, 2002. [10] S. S. Liu, A. Rawicz, S. Rezaei, T. Ma, C. Zhang, K. Lin, and E. Wu, “An eye-gaze tracking and human computer interface system for people with als and other lockedin diseases,” Journal of Medical and Biological Engineering, vol. 32, no. 2, pp. 37–42, 2012. 70 [11] C. Weigle and D. C. Banks, “Analysis of eye-tracking experiments performed on a tobii t60,” in Electronic Imaging 2008. International Society for Optics and Photonics, 2008, pp. 680 903–680 903. [12] S. Instruments, “Sensomotoric instruments.” [Online]. Available: http://www. smivision.com/ [13] E. DE MACEDO, D. DELIBERATO, and M. DE JESUS GONÇALVES, “Interação multimodal em sistemas de comunicação alternativa e construção de interfaces com acionamento por direção do olhar,” in Comunicação alternativa: prática, tecnologias e pesquisa. teoria, Memnon, 2009, pp. 188–204. [Online]. Available: http://books.google.com.br/books?id=4mNyQwAACAAJ [14] F. C. Capovilla and M. D. E. C. Macedo, “Imagodianavox v40s versão para windows 95 em redes,” 1998. [15] J. L. P. Lima, E. C. Macedo, F. C. Capovilla, and G. C. Sazonov, “Implantação e adaptação do sistema de comunicação notevox para uma pessoa com esclerose lateral amiotrofica, um estudo de caso,” Tecnologia em (re)habilitação cognitiva, pp. 347– 353, 2000. [16] P. Viola and M. Jones, “Rapid object detection using a boosted cascade of simple features,” in Computer Vision and Pattern Recognition, 2001. CVPR 2001. Proceedings of the 2001 IEEE Computer Society Conference on, vol. 1. IEEE, 2001, pp. I–511. [17] D. T. OpenCV, “Hough circle transform.” [Online]. Available: http://docs.opencv. org/doc/tutorials/imgproc/imgtrans/hough circle/hough circle.html [18] C. Hennessey, B. Noureddin, and P. Lawrence, “A single camera eye-gaze tracking system with free head motion,” in Proceedings of the 2006 symposium on Eye tracking research & applications. ACM, 2006, pp. 87–94. [19] M. Yamamoto, T. Nagamatsu, and T. Watanabe, “Development of eye-tracking pen display based on stereo bright pupil technique,” in Proceedings of the 2010 Symposium on Eye-Tracking Research & Applications. ACM, 2010, pp. 165–168. 71 [20] C. Topal, A. Dogan, and O. Gerek, “An eye-glasses-like wearable eye gaze tracking system,” in Signal Processing, Communication and Applications Conference, 2008. SIU 2008. IEEE 16th. IEEE, 2008, pp. 1–4. [21] A. Soetedjo, “Eye detection based-on color and shape features,” Eye, vol. 3, no. 5, 2011. [22] V. F. Junior and M. Marengoni, “Detecçao e rastreamento de olhos para implementaçao de uma interface humano-computador,” Workshop de Visão Computacional, 2010. [23] G. Bradski, “The opencv library,” Dr. Dobb’s Journal of Software Tools, 2000. [24] J. Cândido and M. Marengoni, “Enhancing face detection using bayesian networks,” Honolulu, HI, Unitedstates: Acta Press, 2006. [25] K. Toennies, F. Behrens, and M. Aurnhammer, “Feasibility of hough-transform-based iris localisation for real-time-application,” in Pattern Recognition, 2002. Proceedings. 16th International Conference on, vol. 2. IEEE, 2002, pp. 1053–1056. [26] P. Kapsalas, K. Rapantzikos, A. Sofou, and Y. Avrithis, “Regions of interest for accurate object detection,” in Content-Based Multimedia Indexing, 2008. CBMI 2008. International Workshop on. IEEE, 2008, pp. 147–154. [27] S. A. Johansen, J. San Agustin, H. Skovsgaard, J. P. Hansen, and M. Tall, “Low cost vs. high-end eye tracking for usability testing,” in CHI’11 Extended Abstracts on Human Factors in Computing Systems. ACM, 2011, pp. 1177–1182. [28] J. O. F. de CARVALHO, “O papel da interação humano-computador na inclusão digital,” Transinformação, vol. 15, no. 3, 2012. [29] B. Shneiderman, Designing the user interface: strategies for effective human- computer interaction. Addison-Wesley Reading, MA, 1992, vol. 2. [30] I. LC Technologies, “Lc technologies, inc.” [Online]. Available: http://www.eyegaze. com/ [31] D. S. Machado, “Reconhecimento de objetos de formas variadas.” 72 [32] Y. Freund and R. E. Schapire, “A decision-theoretic generalization of on-line learning and an application to boosting,” Journal of computer and system sciences, vol. 55, no. 1, pp. 119–139, 1997. [33] D. T. OpenCV, “Hough line transform.” [Online]. Available: http://docs.opencv. org/doc/tutorials/imgproc/imgtrans/hough lines/hough lines.html [34] K. Peng, L. Chen, S. Ruan, and G. Kukharev, “A robust agorithm for eye detection on gray intensity face without spectacles,” Journal of Computer Science & Technology, vol. 5, 2005. [35] I. GazeGroup, “Research on eye tracking and gaze interaction,” 2011. [Online]. Available: http://www.gazegroup.org/ [36] T. Technology, “Tobii technology.” [Online]. Available: http://http://www.tobii. com/ [37] J. San Agustin, H. Skovsgaard, E. Mollenbach, M. Barret, M. Tall, D. W. Hansen, and J. P. Hansen, “Evaluation of a low-cost open-source gaze tracker,” in Proceedings of the 2010 Symposium on Eye-Tracking Research & Applications. ACM, 2010, pp. 77–80. [38] M. A. Fischler and R. C. Bolles, “Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography,” Communications of the ACM, vol. 24, no. 6, pp. 381–395, 1981. [39] A. Brasiliano, A. Kishimoto, M. Marengoni, and V. F. Martins, “A robust eye detection and tracking system for human computer interaction,” Workshop de Visão Computacional, 2013. [40] D. line]. T. OpenCV, Available: “Face detection using haar cascades.” [On- http://docs.opencv.org/trunk/doc/py tutorials/py objdetect/ py face detection/py face detection.html [41] P. Viola and M. J. Jones, “Robust real-time face detection,” International journal of computer vision, vol. 57, no. 2, pp. 137–154, 2004. 73 [42] A. Wakhare, A. Kardile, R. Nikam, and M. Dighe, “Real time iris tracking & blink detection for hands free cursor control.” [43] M. Chau and M. Betke, “Real time eye tracking and blink detection with usb cameras,” Boston University Computer Science Department, Tech. Rep., 2005. [44] R. Pressman, Engenharia de software. McGraw-Hill, 2006. [Online]. Available: http://books.google.com.br/books?id=MNM6AgAACAAJ [45] I. Sommerville, “Engenharia de software-8a edição (2007),” Ed Person Education. [46] The Institute of Electrical and Eletronics Engineers, “Ieee standard glossary of software engineering terminology,” IEEE Standard, September 1990. [47] M. Fayad and D. C. Schmidt, “Object-oriented application frameworks,” Communications of the ACM, vol. 40, no. 10, pp. 32–38, 1997. [48] M. Corporation, “Visual studio 2013 professional.” [Online]. Available: http: //www.visualstudio.com/products/visual-studio-professional-with-msdn-vs [49] M. Corporation, “Visual c#.” [Online]. Available: http://msdn.microsoft.com/ pt-br/library/kx37x362.aspx [50] S. C. Foundation, “The c++ programming language.” [Online]. Available: https://isocpp.org 74 ANEXOS Anexo 1 A Tabela 14 apresenta os valores detalhados do teste comparativo de tempo do processo de calibração apresentado na Tabela 6. Tabela 14: Valores detalhados do teste de calibração deste trabalho com o produto EAS Binocular. Usuário 1 Este Trabalho EAS Binocular Teste 1 13,6s 11s Teste 2 12,5s 11s Teste 3 12,3s 9s Teste 4 11s 9s Teste 5 10,69s 10s Usuário 2 Este Trabalho EAS Binocular Teste 1 16,36s 13s Teste 2 16s 13,5s Teste 3 15s 12,5s Teste 4 14,85s 13,5s Teste 5 13,25s 12,5s 75 Anexo 2 A Tabela 15 apresenta os valores detalhados do teste comparativo de tempo do processo de digitação de um número de telefone apresentado na Tabela 7. Tabela 15: Valores detalhados do teste de digitação deste trabalho com o produto EAS Binocular. Usuário 1 Este Trabalho EAS Binocular Teste 1 45s 16s Teste 2 44s 15,35s Teste 3 43,5s 15,85s Teste 4 43s 14,3s Teste 5 41s 15,25s Usuário 2 Este Trabalho EAS Binocular Teste 1 42,95s 16,36s Teste 2 41,25s 16s Teste 3 40,5s 15,17s Teste 4 38,2s 15,2s Teste 5 38,2s 13,86s 76 Anexo 3 A Tabela 16 apresenta os valores detalhados do teste comparativo de tempo do processo de digitação de um número sequencial apresentado na Tabela 8. Tabela 16: Valores detalhados do teste de digitação de um número sequencial deste trabalho com o produto EAS Binocular. Usuário 1 Este Trabalho EAS Binocular Teste 1 50,95s 18s Teste 2 48,85s 17,95s Teste 3 47,3s 18,15s Teste 4 47,95s 17,96s Teste 5 46,58s 17,73s Usuário 2 Este Trabalho EAS Binocular Teste 1 40,6s 14s Teste 2 40,13s 13,89s Teste 3 40,45s 13,52s Teste 4 38,35s 13,06s Teste 5 38s 12,07s 77 Anexo 4 A Tabela 17 apresenta os valores detalhados do teste comparativo de tempo do processo de calibração em diferentes monitores apresentado na Tabela 10. Tabela 17: Valores detalhados do teste de calibração em diferentes monitores. Usuário 1 Sony BenQ Samsung Teste 1 17s 14s 17s Teste 2 15s 13s 15s Teste 3 15s 12s 13s Teste 4 14,5s 12s 13s Teste 5 13,5s 13s 12s Usuário 2 Sony BenQ Samsung Teste 1 22s 19s 19s Teste 2 20s 18s 18s Teste 3 19s 13s 15s Teste 4 19s 13s 15s Teste 5 17s 12s 14s 78 Anexo 5 A Tabela 18 apresenta os valores detalhados do teste comparativo de tempo do processo de digitação de um número sequencial em diferentes monitores apresentado na Tabela 11. Tabela 18: Valores detalhados do teste de digitação de um número sequencial em diferentes monitores. Usuário 1 Sony BenQ Samsung Teste 1 55s 45s 64s Teste 2 50s 50s 64s Teste 3 53s 45s 63s Teste 4 65s 48s 67s Teste 5 55s 52s 63s Usuário 2 Sony BenQ Samsung Teste 1 70s 38s 72s Teste 2 55s 43s 69s Teste 3 58s 39s 65s Teste 4 65s 41s 68s Teste 5 55s 35s 71s 79 Anexo 6 A Tabela 19 apresenta os valores detalhados do teste comparativo de tempo do processo de calibração com diferentes usuários, apresentado na Tabela 12. Tabela 19: Valores detalhados do teste de calibração com diferentes usuários. Teste 1 Teste 2 Teste 3 Teste 4 Teste 5 Usuário 1 17s 15s 12s 12s 10s Usuário 2 19s 18s 13s 15s 14s Usuário 3 16s 15s 18s 14s 12s Usuário 4 14s 13s 12s 12s 13s Usuário 5 15s 12s 14s 14s 13s 80 Anexo 7 A Tabela 20 apresenta os valores detalhados do teste comparativo de tempo do processo de digitação de um número sequencial com diferentes usuários, apresentado na Tabela 13. Tabela 20: Valores detalhados do teste de digitação de um número sequencial com diferentes usuários. Teste 1 Teste 2 Teste 3 Teste 4 Teste 5 Usuário 1 55s 52s 48s 45s 45s Usuário 2 52s 45s 45s 38s 38s Usuário 3 45s 42s 40s 35s 35s Usuário 4 47s 43s 38s 38s 36s Usuário 5 45s 36s 37s 33s 34s 81