• Nenhum resultado encontrado

Interface com Computador por Controlo Visual de Cursores

N/A
N/A
Protected

Academic year: 2021

Share "Interface com Computador por Controlo Visual de Cursores"

Copied!
88
0
0

Texto

(1)

Universidade do Porto Licenciatura em Engenharia Electrotécnica e de Computadores

Relatório de Projecto

Interface com Computador por

Controlo Visual de Cursores

Estágio realizado no

Instituto de Engenharia Biomédica (INEB)

Rui Vítor Figueiras Meireles

Orientador: Aurélio Campilho

Projecto/Seminário/Trabalho Final de Curso

(2)

Agradecimentos

Gostaria de manifestar o meu enorme reconhecimento ao Prof. Aurélio Campilho pela orientação científica do trabalho realizado.

Agradeço ao Prof. Jorge Alves da Silva pelos esclarecimentos prestados e pela gentil cedência de imagens.

Um agradecimento especial ao Prof. Miguel Velhote Correia pelo interesse demonstrado, pelas ajudas prestadas e pela constante disponibilidade para dar sugestões e esclarecer dúvidas.

Gostaria também de agradecer aos meus colegas de estágio o bom ambiente proporcionado no laboratório, em especial ao Nuno Valentim e ao Jorge Correia.

Agradeço aos meus pais os sacrifícios suportados e todas as ajudas prestadas nas alturas necessárias.

Finalmente gostaria de referir o suporte financeiro através de uma Bolsa de Iniciação Científica atribuida pela Fundação de Ciência e Tecnologia (FCT).

(3)

Índice

1 . Introdução... 4 1.1. Enquadramento Global... 4 1.2. Objectivos ... 4 1.3. Contribuições do Trabalho ... 5 1.4. Organização do Trabalho ... 5

2 . A determinação da Direcção do Olhar ... 7

2.1. Introdução ... 7

2.2. Caracterização do Problema... 7

2.3. Estado da Arte ... 8

2.4. Arquitectura Geral do Modelo ... 9

3 . Calibração do Sistema... 13

3.1. Introdução ... 13

3.2. Metodologia... 16

3.2.1. A Calibração dos Parâmetros Intrínsecos da Câmara... 16

3.2.2. A Relação Distância/Tamanho... 19

3.2.3. A Determinação do Diâmetro dos Olhos do Utilizador ... 23

3.2.4. A Calibração dos Parâmetros Extrínsecos da Câmara ... 24

3.3. Resultados ... 27

3.4. Síntese... 29

4 . Aquisição e Análise de Imagem ... 31

4.1. Introdução ... 31

4.2. Aquisição de Imagem... 31

4.3. Análise de Projecções... 33

4.4. Análise de Imagem... 35

4.4.1. A Localização da Face e dos Olhos... 35

4.4.1.1. A Localização da Face... 36

4.4.1.2. A Localização dos Olhos ...41

4.4.2. Extracção do Contorno da Íris...45

4.4.2.1. A Detecção de Contornos ... 46

4.4.2.2. A Binarização dos Olhos ...48

4.4.2.3. A Determinação do Contorno da Íris ... 51

4.4.3. Detecção de Elipses... 55

4.5. Condições de Iluminação ... 59

4.6. Síntese... 63

5 . Localização 3D... 65

(4)

1. Introdução

1.1.

Enquadramento Global

Neste projecto pretende-se criar uma interacção pessoa -máquina partindo unicamente de imagens captadas por uma câmara vídeo. A interacção far-se-á através da determinação do ponto do ecrã do monitor observado pelo utilizador.

Este projecto insere-se nas áreas de Análise de Imagem e Visão por Computador. Alguns domínios específicos destas áreas foram abordados ao longo das diferentes etapas do projecto:

• Identificação de Características em imagens de faces;

• Análise de Projecções;

• Estudo de técnicas de Binarização;

• Estimação de Elipses;

• Calibração de Parâmetros intrínsecos e extrínsecos de Câmaras;

• Localização Tridimensional de Objectos;

• Estudo de Condições de Iluminação.

O projecto foi realizado no âmbito das actividades do grupo de Visão por Computador e Processamento de Imagem (CVIP) do Instituto de Engenharia Biomédica (INEB), inserido na disciplina curricular Projecto/Seminário/Trabalho Final de Curso (PSTFC) da Licenciatura em Engenharia Electrotécnica e de Computadores (LEEC) da Faculdade de Engenharia da Universidade do Porto (FEUP).

1.2.

Objectivos

Como objectivo global pretende -se estudar metodologias de visão por computador, nomeadamente de Análise de Imagem, de modo a procurar desenvolver um sistema de controlo visual de cursores através da direcção do olhar. O ponto do ecrã observado pelo utilizador será determinado partindo apenas de uma imagem captada por uma câmara situada por baixo do monitor do computador.

O projecto é muito abrangente e contem fases bastantes distintas, pelo que se podem identificar os seguintes objectivos parcelares:

• Detecção da face e localização dos olhos em imagens digitais;

• Extracção dos parâmetros das elipses que delimitam as íris;

• Calibração da câmara;

(5)

1.3.

Contribuições do Trabalho

O método utilizado foi baseado em pesquisas de outros autores que já tinham realizado estudos nesta área. Algumas abordagens não originais foram utilizadas e algumas modificadas de modo a melhorar a qualidade do método. Contudo houve várias contribuições originais durante a implementação do projecto, das quais se destacam:

• Desenvolvimento de um método de Análise de Projecções envolvendo Suavização de Sinais, Detecção e Etiquetização de Extremos e posterior Análise de Características e de Padrões;

• A Determinação e Localização de Características Faciais usando métodos de Análise de Imagem;

A determinação da região de interesse (ROI – Region Of Interess) através de projecções horizontais de imagens de faces por procura do padrão Sobrancelha/Olho.

• A Binarização automática da íris numa imagem de um olho;

• O método de conjugar a detecção de contornos com o resultado da binarização para seleccionar apenas o contorno da íris;

• A refinação da solução obtida por um algoritmo de detecção de elipses já implementado, usando para isso uma transformada de Hough para elipses com variações dos parâmetros bastante restritas;

• O estudo teórico da determinação das coordenadas 3D de segmentos frontais à câmara;

• A comprovação da relação distância/tamanho usando as várias grelhas frontais;

• A determinação mais precisa do diâmetro dos olhos do utilizador;

• A Calibração dos parâmetros extrínsecos da Câmara, de modo a determinar a sua posição relativamente ao monitor, usando um placar vertical (ou mais).

1.4.

Organização do Trabalho

O trabalho encontra-se organizado tendo em conta a hierarquia das diferentes fases do projecto. Cada capítulo refere-se a uma parte distinta do projecto, embora exista uma certa interacção entre as diversas fases, sendo por vezes indispensável referir aspectos de outro capítulo.

O capítulo 2 aborda o problema da determinação da direcção do olhar em forma geral, referindo a utilidade de um método para o resolver e os domínios de aplicação. Descreve também as metodologias seguidas por outros autores e apresenta o diagrama funciona l proposto.

O capítulo 3, A Calibração do Sistema , explica a necessidade de se efectuar uma calibração prévia, e refere fundamentos teóricos de calibração de câmaras, de

(6)

distâncias. Descreve também as metodologias utilizadas nas várias etapas da calibração e apresenta os resultados obtidos.

O capítulo 4, Aquisição e Análise de Imagem, engloba uma parte substancial do trabalho. Refere a necessidade de analisar sinais unidimens ionais ou projecções de imagens, e descreve pormenorizadamente todo o processo de análise de imagem, desde a determinação da localização da face e dos olhos partindo de imagens de caras, passando pelo processo de determinação dos cortornos das íris que servirão para estimar as elipses. A localização da câmara e as condições de iluminação ideais para a captura das imagens são também discutidas neste capítulo.

O capítulo 5, Localização 3D, refere princípios teóricos da perspectiva cónica, de projecções segundo raios paralelos, e das assunções tomadas no método utilizado. Descreve também pormenorizadamente todos os cálculos e transformações efectuados para a determinação da posição 3D do contorno da íris e a posterior determinação da direcção do olhar.

O 6º capítulo, Análise de Resultados, descreve os resultados finais e também os obtidos nas várias fases, discutindo as limitações do método utilizado e possíveis melhoramentos.

Finalmente, o último capítulo, Conclusão , transmite uma ideia do funcionamento global do método utilizado e refere perspectivas futuras que poderão vir a ser implementadas.

Posteriormente encontram-se referências a outros autores e livros cuja consulta contribuiu para a elaboração do projecto.

(7)

2. A determinação da Direcção do Olhar

2.1.

Introdução

O sentido da visão é sem dúvida o mais apurado nos seres humanos, e aquele que mais contribui para a percepção do mundo que nos rodeia. Embora os seres humanos possuam um ângulo de visão de aproximadamente 180º, para focar um determinado ponto, ou observá-lo com detalhe, é necessário colocar os nossos olhos voltados para ele, ou seja, direccionar o olhar para o ponto. A direcção do olhar pode ser definida como a orientação dos olhos durante a observação de um determinado objecto.

A direcção do olhar tem também um papel muito importante na comunicação. Ao observar a orientação dos olhos de uma pessoa pode ser possível determinar o que ela observa, os seus interesses, aquilo que lhe capta a atenção, ou até mesmo inferir as suas intenções. É uma fonte de informação, uma forma de comunicação visual, fortemente implementada na interacção social de todos os povos.

Um sistema computacional que se consiga aperceber da direcção do olhar do seu utilizador possibilitará uma interacção mais acentuada do que a existente nos sistemas tradicionais. Poderá conhecer os seus pontos de interesse, antecipar os seus movimentos, e mesmo alterar a abordagem ao utilizador, adaptando-se às suas reacções. Esta interacção poderia até vir a substituir alguns dos tradicionais periféricos de entrada, como ratos, track -balls, ou touch -screens. Um sistema intuitivo com estas capacidades beneficiaria sem dúvida aplicações de marketing e publicidade, sistemas lúdicos e de entretenimento ou sistemas vídeo, como aplicações de video-conferência.

2.2.

Caracterização do Problema

Admite-se que a direcção do olhar é a recta imaginária que parte do centro do olho na direcção para onde este se encontra voltado. Contudo, a determinação da direcção do olhar não é trivial, se não se impuser restriçõe s aos movimentos permitidos ao utilizador. Isto porque determinar a posição dos olhos relativamente à cara não é suficiente, pois a orientação da cara também é um indicador do ponto observado. Ultimamente tem havido muitas abordagens sugeridas por vários autores para este problema, recorrendo a metodologias e procedimentos muito diferenciados.

De facto muitos sistemas abordam o problema como se a direcção do olhar fosse determinada pela orientação da cara do utilizador [5, 8, 9]. Algumas delas, como sistemas de realidade virtual, utilizam capacetes que permitem saber a posição da cabeça do utilizador a cada instante, ou mesmo câmaras montadas na cabeça do utilizador. Outros sistemas servem-se de marcas na cara do utilizador para a localizar, ou recorrem à projecção na face de iluminação especial para determinar a orientação [8].

(8)

posição da face [4, 8, 12], ou apenas quantizar o seu desvio relativamente à posição central entre as pálpebras [5, 7]. Alguns sistemas obrigam o utilizador a manter a cara fixa, ou permitem apenas determinados movimentos [5, 7]. Sistemas stereo , utilizando duas ou mais câmaras para situar a cara ou os olhos num sistema tridimensional também são vulgares [8].

A melhor solução, ou abordagem, dependerá assim do intuito final do problema, da precisão que se deseja obter, da liberdade de movimentos que se quer dar ao utilizador e do custo do equipamento.

Para este problema procurou-se uma solução simples, de implementação acessível e que não exigisse equipamento sofisticado. Também se optou por utilizar um método não invasivo, isto é, que não interagisse fisicamente com o utilizador, não o obrigando a usar equipamento incómodo.

2.3.

Estado da Arte

A estimação da direcção do olhar é um problema relativamente recente que tem sofrido bastantes avanços nos últimos anos. Com a crescente evolução da tecnologia dos computadores, novos métodos antes postos de lado devido à pesada carga computacional que envolvem têm sido testados.

Um deles é o proposto por Rickert e Jones [7], que estimam a direcção do olhar utilizando redes neuronais. O método tenta modelizar a região em volta dos olhos do utilizador usando modelos deformáveis. Depois de obtida a modelização tenta adaptar padrões de faces armazenadas, em que o ponto observado em cada uma delas é conhecido, à imagem captada pela câmara. A partir dos padrões que melhor se ajustaram determina a direcção do olhar.

Colombo, Bimbo e De Magistris [5] sugeriram uma interface adaptativa com computador. Apenas utilizando uma câmara, com a face numa posição sempre frontal, extraíram características dos olhos da imagem usando modelos deformáveis. Depois analisando a posição relativa e a distância entre os olhos determinaram a distância e a posição da face do utilizador à câmara. Deste modo criaram uma interacção em ambiente 3D através do seguimento da cabeça, e em interfaces 2D através da posição da íris relativamente aos limites do olho.

Um sistema em tempo-real de controlo de cursores com mãos livres foi sugerido por Toyama [9]. Este método pretende substituir o rato, sendo o controle do cursor feito pela posição da cabeça, apontando o nariz para a zona do ecrã desejada. Este método não estima a orientação dos olhos, apenas extrai informação sobre a localização dos olhos, nariz e boca na imagem, e estima o plano da face e a recta perpendicular que passa pelo nariz.

Talmi e Liu [8] apresentaram um sistema mais complexo, envolvendo 3 câmaras vídeo. Duas delas, uma de cada lado do monitor, criam um sistema stereo que determina a posição e a orientação da cabeça no espaço tridimensional. Uma outra câmara pan-tilt motorizada de grande ampliação segue o olho, controlada pela informação obtida pelas

(9)

outras duas, e tenta determinar o desvio entre a direcção do olhar e a direcção da face. Tal é realizado criando um reflexo no olho, projectado por um led colocado nesta câmara. Determinando o centro da pupila e o ponto do reflexo calculam a orientação do olho e a compensação que é necessário dar à direcção da orientação da face.

Um método mais simples que não se baseia na orientação da face foi estudado por Perrone [4]. Este método procura determinar o contorno de cada íris numa imagem da face e calcular a direcção do olhar baseado na deformação das elipses que melhor aproximam estes contornos. Ao determinar o desvio da direcção dos olhos relativamente à câmara, em vez de relativamente à face, evita-se abordar o problema da orientação da cara do utilizador.

Um sistema com um princípio de funcionamento idêntico, mas mais complexo, foi sugerido por Wang e Sung [12]. Para evitar compe nsar os movimentos da cabeça, através de uma imagem captada por uma câmara fixa determinam a posição tridimensional e orientação de ambos os olhos. Para tal analisam também os contornos da íris utilizando uma outra câmara motorizada de alta resolução que os segue em tempo real. A ambiguidade de soluções gerada pela estimação das elipses dos olhos é resolvida verificando os sentidos da direcção do olhar possíveis para cada um dos olhos (método dos dois círculos).

Alguns destes métodos, por vezes devido a algumas técnicas pesadas utilizadas no seu processo, não foram implementados em tempo real [7, 8, 9]. As técnicas que utilizam mais que uma câmara mostraram, regra geral, resultados mais precisos [8, 12]. Contudo, esta é uma área ainda em fase de crescimento, e certamente novas técnicas e diferentes abordagens ao problema irão surgir num futuro próximo. Embora técnicas simples tenham originado resultados satisfatórios, embora com precisões não muito boas, um bom método de determinação do olhar deverá ter tendência conjugar as duas técnicas: a determinação da orientação da face juntamente com a determinação da orientação dos olhos.

2.4.

Arquitectura Geral do Modelo

O modelo utilizado no estudo deste problema procurou ser relativamente simples, tanto a nível de im plementação como a nível de requisitos de equipamento. Assim optou-se por um método não invasivo, de modo a que o utilizador não fosse obrigado a usar equipamento incómodo, e que necessitasse apenas de um computador e uma câmara vídeo.

A solução adoptada estima o olhar partindo apenas da informação obtida pelos contornos das íris dos olhos do observador. Desta forma, a orientação da face não irá ser considerada. Os contornos das íris (não as íris) irão ser localizadas no espaço tridimensional e as direcções do olhar, que se assumem ser perpendiculares aos planos que contêm os contornos de cada íris serão estimadas posteriormente.

(10)

1). Pretende-se capturar imagens da zona dos olhos com uma resolução razoável, mas também permitir ao utilizador liberdade de movimentos.

Fig. 1 - Arquitectura do sistema

Num sistema deste género, sem uma câmara motorizada, apenas se consegue obter grandes resoluções dos olhos com grandes restrições de movimentos, de forma a que o olho do utilizador não fuja da zona capturada pela câmara. Contudo, quanto mais próxima for obtida a imagem do olho, mais distorção esta apresentará, o que também retira exactidão ao método.

A localização 3D de objectos está praticamente sempre associada a sistemas

stereo. Contudo, assumindo certos pressupostos e impondo certas restrições ao sistema,

é possível localizar tridimensionalmente os contornos das íris apenas através de uma imagem da cena, sabendo antecipadamente informações de certos parâmetros (informações obtidas na fase de calibração). Assim o problema torna-se mais acessível, embora com uma perda de precisão associada.

Assume-se que o contorno da íris de um olho humano forma uma circunferência perfeita. Se o utilizador olhar directamente para a câmara a projecção dessa circunferência na imagem sofre uma distorção de perspectiva homogénea, resultando na imagem uma íris com contorno circular. Contudo, se o utilizador olhar para qualquer outra direcção o seu contorno projectar -se-á como uma elipse.

Analisando a posição, a dimensão e a orientação desta elipse é possível localizar as coordenadas tridimensionais do contorno do olho que a gerou, e consequentemente estimar a direcção do olhar. O ponto onde esta direcção intercepta o plano do monitor será o ponto observado. A Fig. 2 exemplifica o esquema de funcionamento.

(11)

Fig. 2 - Esquema de funcionamento

De modo a ser possível fazer a correspondência de pontos da imagem com pontos do espaço tridimensional e localizar o monitor relativamente à câmara é necessário determinar os parâmetros intr ínsecos e extrínsecos desta. Para tal efectua-se uma calibração prévia do sistema. Esta calibração destina-se também a obter informação necessária sobre o utilizador.

O diagrama funcional do método escolhido encontra-se apresentado a seguir (Fig. 3). Este diagrama mostra as várias etapas constituintes da metodologia seguida. Estão também representados exemplos de imagens resultantes de cada uma das fases, de modo a permitir ilustrar a evolução das diferentes fases do algoritmo.

(12)

Fig.

3

(13)

3. Calibração do Sistema

3.1.

Introdução

A calibração consiste em determinar todos os parâmetros que caracterizam o sistema, o ambiente em que se insere e o modo como vai ser utilizado. Estes parâmetros podem ser referentes tanto a características físicas de objectos como a coeficientes ou matrizes. Têm valores constantes cujo valor se pretende estimar. A caracterização total do modelo passa pela determinação de todos parâmetros. Uma estimação grosseira pode deteriorar a qualidade dos resultados ou mesmo inviabilizar o correcto funcionamento do sistema.

Para se poder fazer a correspondência dos pontos do espaço tridimensional com os pixels das imagens é necessário efectuar previamente a calibração da câmara. Esta compreende duas fases: a determinação dos seus parâmetros intrínsecos e extrínsecos.

Os parâmetros intrínsecos servem para se poder relacionar as coordenadas pixel relativas às imagens com as coordenadas de pontos do espaço medidos no sistema referencial com origem no centro da câmara. Estes parâmetros dependem exclusivamente das características físicas da câmara (da sua geometria interna, do tipo de lente).

Os parâmetros extrínsecos consistem na posição e na orientação do referencial de coordenadas da câmara relativamente a um outro sistema de coordenadas. A determinação dos parâmetros extrínsecos nem sempre é necessária, caso se possa trabalhar exclusivamente com as coordenadas da câmara (coordenadas no sistema referencial da câmara). Contudo, no caso em questão, a sua determinação terá que ser efectuada, porque será necessário saber qual a posição do ecrã do computador relativamente ao sistema coordenado da câmara.

A conversão de coordenadas tridimensionais de um sistema de eixos coordenados para outro é realizada através de uma transformação linear. No caso da transformação das coordenadas de um ponto no espaço XX=(X;Y;Z) num certo sistema referencial do mundo em coordenadas do referencial da câmara XXc=(Xc;Yc;Zc) basta conhecer a matriz de rotação R e o vector de translação T que transformam este determinado referencial do mundo no da câmara.

T XX R

XXc = * + ( 1 )

A matriz R é uma matriz 3x3 que pode ser determinada a partir do conhecimento dos ângulos que o referencial do mundo tem que girar em torno de cada um dos seus eixos para se transformar num referencial idêntico ao da câmara a menos de uma deslocação, T. T é um vector coluna de 3 elementos.

Utilizando um dos modelos mais simples para a descrição do processo geométrico de formação da imagem, o modelo “buraco de alfinete” (“pinhole”) [2, 3], pode-se obter as coordenadas pixel a partir das coordenadas câmara por uma simples transformação matricial (não invertível). Para tal bastará apenas saber as coordenadas de

(14)

importantes introduzidos, nomeadamente a distorção provocada pela lente. Por outro lado a medição de distâncias no referencial da câmara é difícil e bastante sujeita a erros pelo facto de não se saber a distância focal da câmara f, que é a distância do centro óptico da lente ao plano da imagem.

A figura seguinte (Fig. 4) mostra a construção da projecção de um ponto 3D no plano imagem. Todos os raios projectantes passam no centro da lente (“buraco de alfinete”). Geralmente considera-se o plano imagem invertido, de modo às coordenadas das projecções terem o mesmo sinal que as coordenadas 3D.

Fig. 4 - Modelo “buraco de alfinete” [3]

A determinação dos parâmetros intrínsecos obtém-se a partir da relação das coordenadas 3D do espaço com a sua respectiva projecção no plano da imagem. Tendo as coordenadas da câmara XXc=(Xc;Yc;Zc) de uma série de pontos do espaço determinam -se as coordenadas normalizadas desses mesmos pontos. As coordenadas normalizadas são obtidas dividindo as duas primeiras componentes pela terceira (seguindo a convenção do eixo Zc ser o perpendicular à superfície da lente). Note-se que deste modo todos os pontos de um raio projectante (com origem no centro da lente) terão as mesmas coordenadas normalizadas.

      =       = y x Z Y Z X x c c c c n / / ( 2 )

Com os resultados da calibração é possível estimar a distorção da lente que irá afectar estes pontos normalizados. Geralmente a influência da distorção radial é bastante superior comparativamente ao da distorção tangencial. A distorção será tanto maior

(15)

quando maior for a distância normalizada destes pixels ao ponto principal normalizado – de coordenadas xn=(0;0).

O vector da distorção tangencial d x é dado por:

      + + + + = y x t kc y r t kc x r t kc y x t kc dx * * ) 2 ( _ * 2 ) * 2 ( * ) 1 ( _ ) * 2 ( * ) 2 ( _ * * ) 1 ( _ * 2 2 2 2 2 ( 3 ) onde kc_t(1) e kc_t(2) são os coeficientes da distorção tangencial e 2 2 2

y x

r = + .

As coordenadas normalizadas com distorção xdn calculam-se da seguinte forma: dx x r r kc r r kc y x x n d d dn = + + +      = (1 _ (1)* 2 _ (2)* 4)* ( 4 )

onde k c_r(1) e kc_r(2) são os coeficientes da distorção radial.

Obtidas as coordenadas normalizadas com distorção desses pontos obtêm-se as coordenadas pixel através da seguinte equação linear:

          =           1 * 1 d d p p y x KK y x ( 5 )

KK é designada como a matriz de transformação da câmara. Esta matriz permite

converter coordenadas normalizadas em coordenadas pixel. Depende dos valores estimados para a distância focal da câmara fc e do ponto principal cc (ambos expressos em pixels), e é dada pela seguinte expressão:

          = 1 0 0 0 0 y y x x cc fc cc fc KK ( 6 )

Caso não se pretenda estimar a distorção (ou caso não se tenha dados suficientes), as coordenadas pixel podem ser calculadas substituindo em (6) xdn por xn.

As equações (3) a (6) aplicam-se nos casos em que se conhecem os coeficientes de distorção radiais de 2ª e 4ª ordem e os tangenciais. Também se assumiu que os pixels são rectangulares (e não quadrados, visto a distância focal em pixels fc ter valores diferentes para as duas componentes). Desta forma o ângulo entre os eixos xp e yp da imagem é de 90º. Este modelo corresponde ao descrito por Heikkilä [6], embora a notação dos parâmetros intrínsecos aqui utilizada seja diferente daquela descrita no seu

paper.

Embora segundo as equações (1) a (6) sejam directas as transformações de coor denadas do sistema referencial do mundo para as coordenadas pixel, as respectivas transformações inversas são um pouco mais complicadas.

Para se calcular as coordenadas normalizadas distorcidas xd a partir das coordenadas pixel x o processo é idêntico, bastando inverter a matriz KK na equação

(16)

Contudo, para o modelo de distorção utilizado, não existe nenhuma expressão algébrica para realizar a transformação de coordenadas normalizadas distorcidas xnd para as normalizadas xd (processo de normalização). Assim recorreu-se a um método iterativo de convergência – aproxima-se sucessivamente do valor de xd que gera o xp actual usando as equações (3) e (4) – para se poder obter estas coordenadas.

Embora se possa realizar facilmente a projecção 3D das coordenadas câmara

XXc para as normalizadas xn – equação (2) – o inverso não é possível sem informação adicional, pois há uma infinidade de pontos do espaço com a mesma projecção na imagem (Fig. 5). De modo a se obter as coordenadas câmara de um ponto normalizado é necessário saber uma das suas coordenadas 3D. Assim será impossível localizar um ponto no espaço apenas partindo da sua projecção na imagem (como referido anteriormente a transformação matricial da projecção de coordenadas tridimensionais num plano não é invertível).

Fig. 5 - Transformação de perspectiva inversa [3]

3.2.

Metodologia

3.2.1. A Calibração dos Parâmetros Intrínsecos da Câmara

Esta fase descreve os métodos utilizados para calibrar o sistema, isto é, os métodos para estimar todos os parâmetros cujo valor é necessário conhecer de modo a que o sistema possa trabalhar. Como uma inexactidão de resultados na fase do projecto que envolve localização 3D poderia comprometer seriamente o funcionamento do método, a calibração teve que ser realizada assegurando certo nível de confiança. Assim procurou-se utilizar um método seguro que garantisse bons resultados e ao mesmo

(17)

tempo desse uma estimativa do erro cometido. O método de calibração teria também de ser simples e de não exigir equipamentos de custo elevado (como instrumentos de precisão ou lasers).

Como solução utilizou-se uma implementação em Matlab de um software incluído na “Open CV” (Open Source Computer Vision Library) da INTEL [14] para determinar os parâmetros intrínsecos da câmara. Este software permite calibrar uma câmara através de múltiplas imagens de posições diferentes de uma grelha quadriculada (Fig. 6). A partir da dimensão conhecida das quadrículas, o programa determina qual a posição exacta no espaço tridimensional que cada ponto da grelha ocupa (Fig. 7). É um método iterativo que vai ajustando os parâmetros intrínsecos da câmara de modo a minimizar o erro de projecção de cada uma das imagens.

(18)

Fig. 7 - Posição de cada grelha no referencial da Câmara

Após este algoritmo efectuar a convergência para a melhor solução os seguintes parâmetros intrínsecos da câmara são retornados:

distância focal (em pixels);

• ponto principal da imagem (o correspondente ao centro da lente);

• os coeficientes de distorção radial (modelo de distorção radial simétrico de 4ª ordem) e tangenciais;

Consequentemente obtém-se a matriz de transformação KK para converter coordenadas normalizadas distorcidas em coordenadas pixel.

O software utilizado permitia estimar os valores do coeficiente de distorção radial de 6ª ordem e do desvio de inclinação. Nesse caso as equações anteriormente descritas seriam diferentes. Contudo este tipo de modelo só será necessário utilizar com câmaras de grande angular, e sendo estas de extrema resolução, pois normalmente origina valores de exactidão muito baixa para estes dois coeficientes (com grandes desvios padrão).

Após a calibração é possível saber os parâmetros extrínsecos da câmara relativamente a cada um dos planos da grelha utilizados.

(19)

Fig. 8 - O sistema referencial de uma das grelhas

Por exemplo, para a imagem da Fig. 8, o software retorna as matrizes de rotação

Rc e de translação Tc que permitem transformar pontos XXg do sistema coordenado da grelha para as respectivas coordenadas XXc no sistema da câmara.

Tc XX Rc

XXc = * g+ ( 7 )

3.2.2. A R elação Distância/Tamanho

Conhecidos os parâmetros intrínsecos da câmara é possível para cada ponto do espaço no sistema referencial da câmara associar-lhe um pixel na imagem, e para cada

pixel da imagem associar um raio projectante (uma recta que passa no centro da lente)

cujos pontos constituintes têm a mesma coordenada normalizada.

Contudo interessa determinar coordenadas espaciais de pixels da imagem. Tal só será possível, como referido anteriormente, se se dispuser de informação adicional.

Tendo apenas um ponto isolado na imagem não é possível determinar a sua localização 3D, tem-se 2 equações lineares para determinar 3 incógnitas – equação (2).

Tendo dois pontos na imagem XXc1=(Xc1;Yc1;Zc1) e XXc2=(Xc2;Yc2;Zc2) que se

sabe formarem um segmento frontal à câmara (tal significa que a recta formada por estes é perpendicular ao eixo Zc) de comprimento conhecido já será possível localizá-los no espaço. De facto, com 2 pontos teremos 4 equações para 6 incógnitas, mas uma das incógnitas desaparece fazendo Zc1=Zc2, pois o segmento é de frente. Falta agora

determinar mais uma equação para resolver o sistema.

Segundo o modelo “buraco de alfinete” [2, 3] conhecendo a distância focal f e a distância entre o plano imagem e a lente s pode determinar-se o tamanho de um objecto paralelo à lente pelo tamanho da sua projecção na imagem, admitindo que o tamanho real do objecto é conhecido. Para determinar a distância utilizar-se-iam exclusivamente cálculos baseados em regras geométricas.

A Fig. 9 mostra o princípio da formação das ima gens com uma lente delgada (a lente da objectiva da câmara).

(20)

Fig. 9 - Formação de imagens com uma lente delgada [3]

No entanto ao projectar objectos distantes (r elevado) geralmente assume-se que s

f ≅ . Contudo estas grandezas são muito difíceis de estimar, e cálculos que se baseiem nos seus valores terão consequentemente um erro substancial.

Fig. 10 - Deformação de perspectiva

Aplicando regras elementares de Geometria é fácil verificar que um objecto de tamanho t colocado a uma distância Z1 do centro da lente terá uma projecção t1 no plano imagem proporcional à distância focal f (Fig. 10). Note -se que objectivas com grandes

zooms têm distâncias focais grandes.

1 1 1 1 * t t f Z f t Z t = ⇔ = ( 8 )

Assim se depreende que sabendo o tamanho t do objecto e a distância focal f da câmara a distância Z1 à câmara é inversamente proporcional ao tamanho do objecto no plano imagem.

Se se colocar o mesmo objecto a uma nova distância Z2 ter-se-á então um novo tamanho t2 associado. Usando a equação (8) para esta nova distância, e dividindo as duas expressões obtem-se:

(21)

2 1 1 2 1 2 1 2 / 1 / 1 * * t t t t t t f t t f Z Z = = = ( 9 )

Ou seja, um acréscimo na distância do objecto traduz-se num decréscimo proporcional do seu tamanho na imagem. Chega-se assim à conclusão que para poder calcular a distância associada ao objecto para um determinado tamanho é necessário saber a relação t1/Z1 para qualquer outro caso. Infelizmente a distância do plano imagem ao centro da lente não é conhecida.

Como não se dispunha do valor de f foi experimentado um método inovador para determinar a relação existente entre o tamanho t1 e a distância Z1. Capturaram-se várias imagens com a grelha numa posição frontal à câmara (Fig. 11), imagens estas que tomaram parte no processo de calibração para a determinação dos parâmetros intrínsecos.

Fig. 11 - Posições frontais de várias grelhas

(22)

Como são conhecidas as dimensões das quadrículas determina-se facilmente as coordenadas de cada “canto” da grelha (cada vértice que une quatro quadrados). Depois determinou-se as coordenadas destes pontos todos relativamente ao referencial da câmara, usando a transformação da equação (7). Estas coordenadas terão todas um valor

Zc muito próximo, embora não sejam exactamente iguais. Finalmente calculou-se as coordenadas normalizadas dos pontos.

O passo seguinte foi determinar todas as ligações possíveis de cantos dessa grelha, ou seja, combinar cada canto com todos os restantes ( N

C2 ou       2 N ). Depois, para cada ligação, determinou-se a distância do seu ponto médio à câmara (Z1) e o seu tamanho na imagem normalizada dividido pelo seu tamanho real (t1/t). Essa informação foi representada num gráfico para todos os pontos das várias grelhas. De seguida foi efectuada uma interpolação para determinar a função que melhor descreve a relação entre estas duas grandezas. Os valores do eixo dos xx (os tamanhos normalizados dos segmentos) encontram-se invertidos, já que se sabe à partida que a relação entre estes valores e a distância são inversamente proporcional. Deste modo obter-se-á um gráfico linear (Fig. 13).

Fig. 13 - Interpolação Linear Z1 = f(t/t1)

Para cada grelha tem-se assim uma nuvem de pontos no gráfico, com distâncias

Z1 muito próximas. Pode -se agora, por intermédio da função determinada na interpolação, saber a distância Z1 a que está um segmento de tamanho conhecido t que se encontra numa posição frontal à câmara e cujo tamanho na imagem normalizada é t1.

Deve-se tentar colocar as grelhas o mais paralelas possível à lente da câmara. Como se pode ver na figura há diferenças – numa mesma grelha – nas distâncias dos pontos à câmara até 3 cm. Embora se utilize a distância média de cada segmento na

(23)

interpolação pelo facto de os dois extremos da ligação não terem o mesmo valor de Zc estão a sofrer distorções de perspectiva diferentes, que não estão a ser consideradas neste processo.

Obtida esta relação “distância/tamanho” pode -se determinar a distância de segmentos frontais à câmara, sabendo antecipadamente o seu tamanho real. Isto servirá posteriormente para estimar a localização 3D dos contornos do olho com base no tamanho do seu diâmetro na imagem. Mas para isso é necessário conhecer antecipadamente o seu tamanho real.

Este parâmetro pode ser passado ao programa, mas visto ser uma medida muito pequena e sujeita a erros de medição, foi elaborado outro método. Assim foi necessário efectuar uma calibração do sistema para estimar o diâmetro dos olhos do utilizador.

3.2.3. A Determinação do Diâmetro dos Olhos do Utilizador

De modo a calibrar o sistema para o tamanho dos seus olhos o utilizador medirá a distância entre eles, com a máxima precisão possível, e introduzirá esse dado durante a fase de calibração do sistema. Depois, através de uma imagem frontal para a câmara (de modo a os olhos estarem ambos à mesma distância e a sua projecção aparecer como uma circunferência) os contornos das íris são estimados (como será explicado adiante) e a distância ente eles é calculada (Fig. 14).

(24)

O diâmetro de cada olho foi considerado igual ao tamanho do eixo maior da elipse que melhor se adaptou ao contorno da íris.

Sabendo a distância real entre os olhos dist e calculando o diâmetro médio dos olhos em pixels 2 _ 2 _ _ 1 _ _ p diam p diam p

diam = + e também a distância entre os olhos

em pixels dist_p é fácil determinar o diâmetro real dos olhos por uma regra de 3 simples: p diam p dist dist diam * _ _ = ( 10 )

Nesta altura, conhecidos o diâmetro dos olhos do utilizador e o respectivo diâmetro em pixels na imagem seria possível determinar a distância dos olhos do utilizador à câmara.

3.2.4. A Calibração dos Parâmetros Extr ínsecos da Câmara

O último passo da calibração foi a determinação dos parâmetros extrínsecos da câmara relativamente ao sistema de coordenadas do monitor do computador. Como posteriormente se irá determinar a intersecção dos raios visuais com o plano do ecrã do monitor é necessário defini-lo correctamente. Contudo não é possível determinar as matrizes de transformação Rce e Tce (que transformam coordenadas câmara em coordenadas ecrã) por intermédio de imagens deste, como foi feito com as grelhas, pois devido à disposição do sistema o monitor não é visível nas imagens captadas pela câmara.

Assim teve que se usar outro método para se localizar o monitor relativamente à câmara. Um método de obtenção do vector Tce medindo directamente a distância entre os dois eixos seria certamente muito pouco rigoroso, pois não se consegue localizar ao certo a origem do referencial da câmara (este encontra -se no interior desta). Além do mais, a medição dos ângulos do rotação de cada eixo coordenado teria também muito pouco rigor, pois não é garantido que os eixos das coordenadas da câmara sejam paralelos às superfícies da sua armadura.

O método escolhido para realizar este processo foi recorrer a um plano auxiliar. Colocou-se previamente o monitor numa posição em que o plano formado pelo seu ecrã ficasse perpendicular ao solo. Depois colocou-se um painel vertical numa posição paralela ao ecrã. A imagem seguinte (Fig. 15) ilustra a situação.

(25)

Fig. 15 - Determinação dos parâmetros extrínsecos da câmara

Como se vê na figura a grelha quadriculada foi colocada no painel, tendo a preocupação de alinhar os seus lados com as arestas que delimitam o ecrã do monitor. Se todo este processo tiver sido realizado com rigor, tem-se uma “réplica” do plano do ecrã numa posição visível pela câmara.

Agora é possível determinar os parâmetros extrínsecos da câmara relativamente ao plano do painel. De facto a imagem utilizada neste processo (Fig. 16) foi também utilizada para determinar os parâmetros intrínsecos da câmara, e por isso já são conhecidas as matrizes de transformação Rc e Tc.

(26)

Fig. 17 - Posição do placar relativamente à câmara

Nesta altura já se tem condições para determinar as matrizes R e T que transformam as coordenadas do placar em coordenadas do ecrã. O vector de translação

T foi medido, com a maior precisão conseguida, utilizando uma fita métrica, medindo

cada com ponente (X,;Y;Z) (no sistema coordenado do placar) do vector que une as origens dos dois referenciais (Fig. 18). O vector de rotação com a rotação necessária para cada eixo do referencial do placar ficar paralelo ao do ecrã foi também medido, e consequentemente calculada a matriz (3x3) de rotação R. Neste caso o vector de rotação seria (0,π,0), pois os eixos dos dois referenciais são paralelos (o referencial sofre apenas uma rotação de 180º em torno do eixo dos xx).

Fig. 18 - Posição relativa dos sistemas referenciais do ecrã e do placar

Agora basta realizar as duas transformações (câmara-placar/placar-ecrã) para converter coordenadas do referencial da câmara XXc em coordenadas do ecrã XXe.

T Tc XX Rc R T XX R XX Tc XX Rc XX Tc XX Rc XX c g e c g g c + − = + = − = ⇔ + = − − )) ( * ( * * ) ( * * 1 1 ( 11 ) ou seja, Tce XX Rce XXe = * c+ , com 1 * − =R Rc Rce e Tce=TR*Rc−1*Tc ( 12 )

(27)

3.3.

Resultados

Os resultados obtidos para os parâmetros intrínsecos da câmara foram os seguintes. Esta calibração utilizou uma grelha de 9x7 quadrículas, embora os cantos exteriores não sejam utilizados (a zona útil são apenas 7x5 quadrículas), sendo cada quadrícula um quadrado de 28 milímetros de lado, em 25 posições diferentes.

Calibration results (with uncertainties):

Focal Length: fc = [ 1488.17385 1418.35812 ] ± [ 11.89975 11.42286 ] Principal point: cc = [ 470.95976 224.15195 ] ± [ 28.62565 21.06361 ] Skew: alpha_c = [ 0.00000 ] ± [ 0.00000 ]

=> angle of pixel axes = 90.00000 ± 0.00000 degrees Distortion: kc = [ -0.30933 0.41637 -0.00273 0.00237 0.00000 ] ± [ 0.06069 0.50115 0.00285 0.00260 0.00000 ] Pixel error: err = [ 0.61244 0.68442 ]

Note: The num erical errors are approximately three times the standard deviations (for reference)

A distância focal e o ponto principal estão expressos em pixels (a distância focal “real” em milímetros não é determinada) e o desvio dos eixos em graus. Os 2 primeiros coeficientes de kc referem-se aos coeficientes de distorção radial de 2ª e 4ª ordem respectivamente – kc_r(1) e kc_r(2). O terceiro e quarto referem-se aos coeficientes tangenciais – kc_r(1) e kc_r(2). O último coeficiente de k c é o coeficiente de distorção radial de 6ª ordem. Como este valor não foi estimado, bem como o desvio dos eixos da imagem, os seus valores são nulos.

Verifica-se que embora o erro da estimação de um pixel ao converter um ponto com coordenadas câmara para coordenadas pixel (Pixel error) seja bastante pequeno (inferior a 1 pixel em cada direcção) os valores para certos coeficientes de distorção não são uma estimativa de muita confiança (para o radial de 4ª ordem e para os tangenciais), pois o seus desvios padrão têm valores altos compara tivamente com a média, o que leva a que os intervalos de confiança atinjam valores muito baixos, chegando alguns até a “cruzar” o valor zero.

De modo a estimar estes valores com maior exactidão deve -se usar câmaras e objectivas de melhor qualidade, ter as imagens muito bem focadas e utilizar bastantes imagens na calibração.

As imagens seguintes (Fig. 19/Fig. 21) mostram os diagramas de distorção para os pixels das imagens.

(28)

Fig. 19 - Componente Radial da Distorção Fig. 20 - Componente Tangencial da Distorção

Fig. 21 - Modelo completo da Distorção

Por análise das figuras e dos seus valores é nitidamente visível a grande predominância da componente radial na distorção total do modelo.

Os valores seguintes são o resultado da calibração quando se estima os valores do coeficiente de distorção radial de 6ª ordem e do desvio dos eixos da imagem.

Calibration results (with uncertainties):

Focal Length: fc = [ 1489.01886 1419.53158 ] ± [ 11.95753 11.50998 ] Principal point: cc = [ 472.65244 216.46073 ] ± [ 28.67513 21.18704 ] Skew: alpha_c = [ -0.00235 ] ± [ 0.00232 ]

=> angle of pixel axes = 90.13449 ± 0.13306 degrees Distortion: kc = [ -0.34268 1.47704 -0.00389 0.00308 - 6.78554 ] ± [ 0.11934 2.40496 0.00328 0.00284 13.65753 ] Pixel error: err = [ 0.60837 0.68441 ]

Note: The numerical errors are approximately three times the standard deviations (for reference)

O coeficiente radial de 6ª ordem tem um intervalo de confiança com uma gama grande demais (comparativamente com a média) para ser utilizado na estimação da distorção. O desvio do ângulo também tem um intervalo associado relativamente

(29)

grande, e não se incluiu nos parâmetros intrínsecos de modo a seguir o modelo de Heikillä, e por sugestão do implementador do software de calibração.

O resultado da regressão que aproximou a relação existente entre o inverso do tamanho do objecto (t/t1) e a sua distância à câmara (Z1) foi o esperado. Como se viu anteriormente no gráfico a recta

6685 . 1 * 0034 . 1 − = x y

aproximou bem as “nuvens” de pontos, confirmando a relação linear que se esperava. De notar a proximidade da expressão com a recta y=x, já que o valor da ordenada na origem (-1.6685mm) é muito pouco significativo para as distâncias que se utilizam (da ordem dos 550/900mm). Não esquecer que a relação “ideal” directamente proporcional entre a distância e o tamanho do objecto – equação (8) – parte da aproximação sf .

De modo a comprovar a forte relação linear desta relação realizou-se também uma interpolação quadrática com os mesmos valores. A equação resultante,

2283 . 4 98623 . 0 10 * 2069 . 1 5 2+ + = − x x y

mostra que o termo quadrático é quase desprezável para os valores de x utilizados. Usando o método de determinação da dimensão dos olhos foi possível estimar o diâmetro dos olhos do utilizador com uma precisão maior que a obtida utilizando com uma simples régua. Os valores obtidos para o diâmetro dos olhos foram sempre praticamente iguais, próximos dos 13 milímetros.

Para a estimação ser mais segura poder-se-ia realizar o cálculo com várias imagens, e utilizar a média dos resultados. Obviamente este parâmetro só deverá ser aceite caso a detecção de ambos os olhos tenha sido efectuada correctamente.

A calibração dos parâmetros extrínsecos da câmara foi um processo cujos erros não se puderam quantificar. Contudo é de esperar um ligeiro erro nas medições dos vectores de rotação e de translação visto não terem sido realizadas com instrumentos de grande precisão. Fica apenas a referência que um erro de 1 centímetro na componente X ou Y do vector de translação origina um erro de 1 centímetro na localização final da estimação do olhar.

3.4.

Síntese

As diferentes calibrações do sistema funcionaram como desejado, e geraram estimativas bastante boas para os vários parâmetros.

O método usado para a determinação dos parâmetros intrínsecos da câmara gerou resultados com uma grande exactidão. O método provou ser robusto e as estimativas obtidas continham erros relativamente pequenos. A distorção radial da objectiva não foi suficientemente pequena para poder ser desprezada.

(30)

método extremamente exacto, a margem de erro obtida é relativamente pequena comparada com as distâncias utilizadas (na ordem dos 40/60 cm).

A determinação mais precisa do diâmetro dos olhos do utilizador foi proposta de modo a conferir uma maior exactidão no funcionamento geral do algoritmo. Os resultados obtidos mostraram-se constantes e de valores aceitáveis.

O método de calibração dos parâmetros extrínsecos da câmara proposto foi a melhor alternativa encontrada para estimar as matrizes de transformação com a maior exactidão possível. Embora seja um método sujeito a erros de medição por parte do utilizador, a solução não virá muito afectada a menos que se efectuem erros grosseiros nas medições.

(31)

4. Aquisição e Análise de Imagem

4.1.

Introdução

Este capítulo trata de uma das fases mais importantes do trabalho. São os métodos de aquisição e posterior tratamento e análise de imagem que irão gerar a informação que permitirá estimar correctamente a direcção do olhar.

Esta parte fundamental do projecto é a que exige maior tempo de processamento, e é também aquela cujas abordagens e metodologias a seguir são menos rígidas, havendo sempre múltiplas formas de atingir o mesmo objectivo. Por esta razão, este capítulo foi um dos que mais contribuições originais gerou. A análise de imagem exige muita experimentação e a também a utilização de várias abordagens diferentes de modo a determinar as melhores técnicas, mas requer também uma grande dose de imaginação e de criatividade.

Neste capítulo irão ser explicados em detalhe todo o processo da captação de imagem, desde a localização da câmara até à escolha da iluminação adequada, bem como todos os algoritmos e metodologias utilizados na detecção e extracção das características faciais até se atingir o resultado final, a determinação das elipses que melhor se ajustam às íris dos olhos do utilizador, numa certa imagem.

4.2.

Aquisição de Imagem

Para a aquisição de imagem recorreu-se a uma câmara situada na base do monitor, de modo a captar a face do utilizador de baixo para cima (Fig. 22). A câmara teria de ficar situada numa posição de modo a garantir que os olhos ficassem direccionados sempre para um mesmo lado. Com a câmara nesta posição é garantido que o utilizador enquanto observar o ecrã estará sempre a olha r para cima, do ponto de vista da câmara

(32)

Tal requisito foi necessário cumprir de modo a eliminar a ambiguidade que haveria caso a câmara captasse os olhos voltados para várias direcções. Como se pretende determinar a direcção do olhar por análise dos contornos das íris projectados nas imagens, é necessário garantir que não haverá ambiguidade, isto é, para uma dada elipse só poderá haver uma posição correspondente do olho. Caso contrário haveria duas soluções possíveis (duas direcções do olhar) e não se saberia qual a correcta.

As imagens seguintes (Fig. 23/Fig. 27) demostram esta ambiguidade e a razão de se ter colocado a câmara por baixo do monitor.

Fig. 23 - Olho voltado para a câmara

Fig. 24 - O olho é visto como uma circunferência

Fig. 25 - O olho é visto

como uma elipse Fig. 26 - Olho voltado para cima Fig. 27 - Olho voltado para baixo

Outro aspecto para a decisão de usar a câmara numa posição abaixo da face do utilizador é o facto de o contorno da íris do olho humano não formar uma circunferência perfeita. Assim, imagens correspondentes a posições quase frontais não apresentarão grande rigor nos seus resultados, visto as “irregularidades” da circularidade do contorno se tornarem mais perceptíveis. Deste modo, contornos da íris com uma excentricidade menor te rão este efeito mais atenuado, e por isso, uma precisão maior. Assim, com a câmara posicionada por baixo do ecrã, assegura -se que enquanto o utilizador estiver a olhar para pontos do ecrã o contorno das suas íris nunca se confundirá com uma circunferência.

Um terceiro motivo para a colocação da câmara em baixo e não em cima do monitor prende-se com o facto de a maior parte das vezes a pálpebra superior estar a encobrir a íris. Assim, numa imagem captada por baixo, o contorno visível da íris (predominantemente na metade inferior da íris) será melhor visualizado, já que a pestana inferior não é suficientemente grande para encobrir o olho. Por outro lado, uma captação de imagens superior tem o problema de o olho ficar semi oculto pela sobrancelha, ou pela pestana superior.

(33)

4.3.

Análise de Projecções

Ao analisar imagens para a detecção de certas características ou padrões muitas vezes recorre -se ao uso das suas projecções. Uma imagem é um sinal bidimensional representado por uma função de duas variáveis (x,y) (a posição espacial do pixel), a que se associa uma intensidade f(x,y). Operar com sinais unidimensionais em vez de imagens bidimensionais é por vezes mais simples, mais cómodo e mais rápido, pelo que esta técnica é frequentemente utilizada.

A projecção de uma imagem consiste em aplicar o somatório de todas as intensidades dos pixels numa determinada direcção, horizontal ou vertical. Ao projectar uma imagem resulta um sinal unidimensional. Projectando uma imagem segundo a direcção vertical constrói-se um sinal da mesma largura da imagem. Assim o valor do sinal num determinado ponto corresponde à soma de todas as intensidades da coluna correspondente a esse ponto na imagem. Da mesma forma, ao projectar horizontalmente uma imagem o sinal resultante terá um comprimento igual à altura da imagem.

As projecções apresentam geralmente um nível apreciável de ruído, em parte devido a erros de quantização (uma imagem é uma função discreta de variável discreta) mas também devido à própria morfologia da imagem. Assim torna -se necessário suavizá-lo, usando filtros passa-baixo, de modo a eliminar as suas componentes de alta frequência. Recorreu-se a filtragens por aplicação sucessiva de filtros elementares de janela flutuante (médias, medianas), cujas dimensões dependem directamente da dimensão do sinal a analisar, do nível de ruído existente e no grau de suavização que se pretende atingir (Fig. 28/Fig. 29).

Fig. 28 - Sinal obtido por Projecção Fig. 29 - Sinal Suavizado

Devido à grande utilização de projecções no decorrer do projecto, implementaram-se funções de filtragem e de análise deste tipo de sinais. A característica mais importante será identificar, quantificar e etiquetar os extremos relativos (máximos e mínimos) de um sinal. Para tal foi criada uma função que detecta e atribui uma etiqueta a todos os máximos e mínimos (etiquetização). Esta etiqueta é um número positivo, no caso dos máximos, e negativo nos mínimos. O seu módulo é crescente à medida que o número de extremos aumenta.

Nas imagens seguintes é visível o sinal de retorno desta função, contendo as etiquetas que marcam a localização de cada extremo (Fig. 30) e também o sinal original,

(34)

Fig. 30 - Etiquetização dos Extremos do Sinal Suavizado

Fig. 31 - Sinal Suavizado e Extremos Relativos

Refere-se agora a dificuldade da detecção de extremos num sinal discreto. A detecção dos pontos com derivada nula não é suficiente, visto muitas vezes estes ocorrerem em subidas ou descidas (pontos de inflexão) devido à quantização do sinal. Eventualmente um extremo de um sinal pode não apresentar derivada nula, mudando esta de sinal sem atingir o valor zero. A análise de extremos usando a segunda derivada torna-se impossível devido ao enorme nível de ruído que esse sinal apresenta.

Num sinal discreto os extremos podem ser considerados patamares de máximos ou mínimos, cujos pontos vizinhos são respectivamente menores ou maiores que o nível do patamar.

A função de detecção de extremos percorre o sinal da esquerda para a direita, marca ndo o fim dos patamares como máximos ou mínimos provisórios, e depois em sentido contrário marcando o início deles. Esta marcação do início ou do fim dos patamares é feita analisando os locais onde a derivada da função inverte o sinal. Pontos de derivada nula são ignorados nesta análise. No segundo varrimento os patamares de inflexão (aqueles que apresentam um máximo provisório no seu início e um mínimo provisório no fim, ou vice-versa) são descartados.

A interpretação dos valores no início e no fim de cada patamar irão caracterizá-lo como sendo um conjunto de máximos, de mínimos, ou de pontos de inflexão. Posteriormente é feito mais um varrimento do sinal para atribuir as etiquetas correspondentes, atribuindo valores positivos crescentes aos máximos e valores negativos decrescentes aos mínimos, pela ordem com que estes surgem no sinal.

Foram também criadas funções para determinar a largura de cada um dos “montes” e “vales” do sinal, e ainda outras para determinar os n maiores montes ou vales. Tais funções mostraram ser bastantes úteis em diversas partes do projecto, tornando a análise de projecções mais simples e organizada.

(35)

Fig. 32 - Sinal com o Maior Vale Assinalado

A imagem anterior (Fig. 32) mostra uma projecção com o maior vale assinalado.

4.4.

Análise de Imagem

4.4.1. A Localização da Face e dos Olhos

Esta é a primeira etapa da análise de imagem. A localização da face será a primeira fase, e irá definir a região de interesse a partir da imagem original. A ima gem original tem dimensões de 576 por 768 pixels e apresenta a cara do utilizador numa posição desconhecida à partida. Após definida esta região a fase da extracção dos olhos irá determinar duas novas regiões de interesse, cada uma centrada num dos olhos.

A figura seguinte (Fig. 33) mostra as imagens que resultantam de cada uma destas fases, que serão descritas de seguida

(36)

4.4.1.1. A Localização da Face

A localização dos limites da face é a primeira etapa da análise das imagens. Embora se parta do princípio que a imagem contém a face de uma pessoa a sua localização é incerta. Visto ser pretendida uma grande resolução nos olhos a face terá dimensões consideráveis, o que poderá resultar que esta não se encontre totalmente visível na imagem. Além disso, há uma certa liberdade para a posição da face relativamente à câmara, o que leva a que a face não esteja centrada na maior parte das situações.

Assim, foi necessário desenvolver um método que garantia a localização exacta da face mesmo em situações em que um dos limites laterais da face não estivesse visível, ou noutras em que o limite superior da imagem não incluísse a parte superior do rosto.

Tal análise permite tornar o sistema mais robusto e mais flexível, não impondo restrições adicionais ao posicionamento correcto da face e permitindo utilizar um maior factor de zoom na objectiva, o que aumenta a versatilidade do método.

O ponto de partida é uma imagem da face do utilizador, obtida com a câmara posicionada por baixo do monitor (Fig. 34). As dimensões das imagens utilizadas foram fixas, de 576 por 768 pixels. Estas dimensões foram impostas pela placa de aquisição utilizada.

Fig. 34 - Imagem Original

De seguida calcularam-se os módulos dos gradientes vertical e horizontal da imagem (Fig. 35/Fig. 36). Estes gradientes foram calculados aplicando o operador de

Sobel com janelas de 3x3 pixels. Embora este método não seja dos que garantem maior

exactidão na detecção de contornos, nesta fase do processo apenas se quer obter uma estimativa dos limites, e a utilização de métodos mais precisos (como os métodos de

Canny ou Shen-Castan [1]) aumentaria significativamente o tempo de processamento,

(37)

Fig. 35 - Gradiente com Orientação Vertical Fig. 36 - Gradiente com Orientação Horizontal

Seguidamente, estas imagens foram binarizadas utilizando um nível de binarização fixo, que gerou bons resultados com todas as imagens utilizadas (Fig. 37/Fig. 38).

Fig. 37 - Gradiente Vertical Binarizado Fig. 38 - Gradiente Horizontal Binarizado

Através destas imagens pretende-se determinar qual a zona da imagem a seleccionar (excluindo todas as outras zonas) para a posterior detecção dos olhos.

Na fase seguinte obtiveram-se a projecção segundo a direcção vertical dos pontos brancos da imagem do gradiente vertical e a projecção segundo a direcção horizontal dos pontos brancos da imagem do gradiente horizontal (Fig. 39). Tal permite obter dois sinais cujos máximos de cada um correspondem à localização das colunas e das linhas da imagem onde os contornos são mais acentuados.

Como a análise destes sinais irá influenciar a determinação dos limites de região de interesse, convém que estes se encontrem o mais livres de ruído e oscilações bruscas possível, de modo a aproximarem-se ao máximo dos padrões procurados. Para tal usaram -se filtros passa-baixo simples, com janelas flutuantes de média e mediana cuja dimensão tem em conta a dimensão do sinal. A escolha da dimensão destas é importante, para se obter uma boa suavização sem destruir as características principais do sinal.

(38)

Fig. 39 - Projecções dos Gradientes

A projecção vertical evidencia os limites laterais da face. Na projecção horizontal (onde os valores do eixo horizontal correspondem às linhas da imagem) são nítidos os máximos correspondentes ao início do cabelo, sobrancelhas e olhos.

Para determinar os limites laterais da imagem (Fig. 40) procurou-se o primeiro e o último valor da projecção horizontal que ultrapassassem uma determinada percentagem fixa do máximo. Contudo, se um dos limites da face não for visível na imagem (caso em que o primeiro e o último máximo estã o muito próximos um do outro) identifica -se o lado em falta e não se efectua corte no lado da imagem correspondente.

Fig. 40 - Limites Horizontais de Corte

Para determinar os limites superior e inferior de corte a abordagem será obviamente diferente. O objectivo será eliminar tudo o que estiver para baixo dos olhos, pois elementos como a boca, barba e as narinas dificultam a posterior detecção dos olhos. A existência de cabelo não é prejudicial, como se verá adiante. Assim, esta fase

(39)

consistia fundamentalmente na obtenção de um bom limite inferior da região de interesse (ROI).

O melhor método que se testou foi analisar os máximos da projecção horizontal. Ao identificar o máximo correspondente aos olhos resolve-se o problema. Contudo, devido à liberdade que se deu quanto à posição da face, não se sabe quantos máximos existem no sinal antes do máximo correspondente ao olho, pois o cimo da imagem pode ser o cabelo (ou a ausência deste), a testa do utilizador ou mesmo o fundo por detrás dele. Desta forma os máximos correspondentes aos olhos não podem ser identificados pelo seu número.

Neste método usou-se apenas os primeiros 80% da projecção horizontal (Fig. 41). Tal deveu-se ao facto de se saber antecipadamente que os olhos não se encontram nesta zona da imagem, e também porque a parte final do sinal poderia ocasionar erros na detecção caso apanhasse os ombros do indivíduo (apareceria um pico muito alto na projecção).

Fig. 41 - Projecção do Gradiente Horizontal (80%)

De seguida fez-se uma procura e etiquetagem de máximos e mínimos do sinal, usando as funções de análise de projecções descritas anteriormente. Depois de saber a localização de cada um dos extremos procedeu-se a uma análise de modo a detectar o padrão “sobrancelhas -olhos” (os dois máximos no centro do sinal).

Para o efeito procurou-se os primeiros três mínimos “adjacentes” (contêm exactamente dois máximos entre o primeiro e o terceiro mínimo) que obedeçam às seguintes condições:

• a diferença de amplitude do 1º para o 3º mínimo não pode exceder 25% da amplitude máxima;

(40)

• as amplitudes dos 2 máximos para o mínimo do meio devem diferir um certo valor mínimo (para evitar detectar pequenas oscilações não retiradas após o processo de suavização);

• um dos máximos deve ser superior a 70% do valor máximo do sinal. Com estes testes o padrão Sobrancelha/Olho foi detectado a maior parte das vezes. O limite inferior da ROI será durante a descida do segundo máximo para o terceiro mínimo (70% da descida mais uma margem de segurança).

O limite superior será o topo da imagem, excepto em casos em que a diferença entre os limites superior e inferior seja bastante elevado, sendo nestes casos o limite superior determinado um valor fixo acima do inferior.

A Fig. 42 mostra a projecção horizontal juntamente com os limites verticais da região de interesse.

Fig. 42 - Limites Verticais da Região de Interesse

Este método não funcionou nos casos em que o olho e a sobrancelha se encontravam “juntos” num só pico. Desta forma a detecção do padrão falhava. Para contornar estes casos considerou-se que o máximo do sinal corresponderia a este pico. Assim determinou-se o limite inferior de corte a 70% da descida deste máximo para o mínimo seguinte (mais uma margem de segurança).

O processo de detecção do limite inferior de corte não é simples, e este método foi o que proporcionou melhores resultados (Fig. 43). Contudo, muitos outros foram testados (e posteriormente rejeitados). O grande problema prende-se com o facto de não se saber quantos máximos terá a projecção, e nem sequer se saber a que zona da cara corresponderá o maior máximo. Faces com barba, com pouco cabelo ou com sobrancelhas finas originarão certamente projecções muito diferentes, e daí a dificuldade desta etapa.

Refira-se, a título de exemplo, que outras técnicas que não resultaram. Todos aqueles que se baseassem na procura do maior máximo para identificação da zona da cara não eram de confiança. A procura de “vales” no sinal também não resultou bem, pois a sua extensão é muito variável e tanto o mínimo acima da sobrancelha como o mínimo abaixo do olho têm por vezes amplitudes não muito baixas.

(41)

Fig. 43 - Padrão “Sobrancelha-Olho” na Projecção Horizontal de várias imagens

Tendo os quatro limites determinados pode -se efectuar a definição da ROI, obtendo a seguinte imagem (Fig. 44) que será objecto de processamento em fases posteriores.

Fig. 44 - Imagem após o Corte Inicial

4.4.1.2. A Localização dos Olhos

Partindo desta imagem o objectivo será agora definir duas ROI de modo a que cada uma contenha um dos olhos.

O passo seguinte consistiu na binarização da imagem. Contudo um nível de binarização fixo não funcionaria bem, pois será dependente das condições de iluminação, do tom de pele e da cor dos olhos do utilizador. Para a selecção do limiar de binarização recorreu-se ao Histograma acumulado da região de interesse. Este sinal mostra, para cada valor de intensidade da imagem (entre 0 e 255) as ocorrências de

(42)

(entre 0 e 255) a função do Histograma Acumulado H(n) toma o valor do número total de pixels da imagem (i,j) cuja intensidade I(i,j) é igual ou inferior a n .

Desta forma obtém-se um sinal monótono crescente (Fig. 45). O nível de binarização seleccionado será aquele que originar uma imagem com uma dada percentagem de pixels pretos (neste caso usou-se 20%).

Fig. 45 - Histograma Acumulado e Limiar de Binarização

Binarizou-se assim a imagem da face usando o nível de binarização obtido (Fig. 46).

Fig. 46 - Face Binarizada

De seguida retiraram-se os objectos pequenos da imagem, eliminando todos aqueles que apresentavam uma área inferior a um certo valor (considera-se como objecto um conjunto conexo – conectividade 8 – de pixels pretos). Com esta operação pretende -se que os objectos correspondentes aos olhos sejam retirados (Fig. 47).

Referências

Documentos relacionados

Por exemplo, (Mases et al. Autores diferentes citados no mesmo parênteses devem ser ordenados cronologicamente e não alfabeticamente. No caso de repetir a mesma referência

Here, we aim to understand how expression of RA degradation enzymes (Cyp26) can be correlated with RA distribution and functions during amphioxus (B. lanceolatum)

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

Este estágio de 8 semanas foi dividido numa primeira semana de aulas teóricas e teórico-práticas sobre temas cirúrgicos relevantes, do qual fez parte o curso

O TBC surge como uma das muitas alternativas pensadas para as populações locais, se constituindo como uma atividade econômica solidária que concatena a comunidade com os

No primeiro, destacam-se as percepções que as cuidadoras possuem sobre o hospital psiquiátrico e os cuidados com seus familiares durante o internamento; no segundo, evidencia-se

A pesquisa pode ser caracterizada como exploratória e experimental em uma primeira etapa (estudo piloto), na qual foram geradas hipóteses e um conjunto de observáveis, variáveis

A presente dissertação é um estudo de caso da Escola Municipal Guimarães Rosa, da Rede Municipal de Educação de Belo Horizonte, que possui baixo índice socioeconômico