390 IEEE LATIN AMERICA TRANSACTIONS, VOL. 3, NO. 5, DECEMBER 2005 Sistema Baseado em Inteligência Computacional para Entendimento de Imagens Oftalmológicas Antonio Valerio Netto Resumo: Neste projeto foi desenvolvido um sistema computacional de análise de imagens baseado em técnicas de aprendizado de máquina para auxiliar o diagnóstico na área oftalmológica, particularmente, um sistema de medidas objetivas e automáticas dos vícios de refração ocular (astigmatismo, hipermetropia e miopia). Os resultados do trabalho sugerem um caminho para melhorar a interpretação das imagens vindas da técnica de aquisição chamada HartmannShack (HS) para permitir que, posteriormente, outros problemas oculares sejam detectados e medidos. O trabalho atuou em um campo da área de entendimento da imagem (Image Understanding) usando máquinas de suporte vetorial (Support Vector Machines – SVM). Uma motivação para investigar técnicas de aprendizado de imagens para o reconhecimento e análise das imagens no contexto deste projeto foi a busca por um sistema de medição capaz de interpretar o conteúdo das imagens como um todo, ao invés de fazer a medição pela comparação de dados discretos extraídos da imagem com dados extraídos de uma imagem de referência. Palavras-Chave: Sistemas inteligentes, Entendimento de imagens, Máquinas de suporte vetorial, Aprendizado de máquina, Vícios refrativos, Imagens oftalmológicas. I. INTRODUÇÃO Uma forma eficiente e relativamente barata de medir os erros de refração ocular (miopia, hipermetropia, astigmatismo) faz uso de um equipamento constituído de lentes-teste e figuras projetadas num anteparo colocado a uma certa distância do paciente, que deve reconhecer perfeitamente as imagens projetadas. Em síntese, a rotina clínica de um exame de refração consiste de três passos fundamentais [1]: • Cicloplegiar o paciente (paralisa-se o músculo ciliar do olho, processo popularmente conhecido como "dilatar" a pupila); • Por meio da retinoscopia, avaliar qualitativamente e quantitativamente o erro refrativo ocular; • Em seguida, submeter o paciente a um teste (em um equipamento denominado "Green's") cujo método de medida utiliza optotipos constituídos por letras ou figuras projetadas em um anteparo, distantes 5m do paciente. Este Antonio Valerio Netto, Cientistas Associados Desenvolvimento Tecnológico Ltda, Divisão de Sistemas Computacionais (e-mail: [email protected]). deve reconhecer as letras ou figuras com o auxílio de várias lentes posicionadas frente aos seus olhos. Tal avaliação permite determinar as lentes corretivas mais adequadas ao paciente. Entretanto, a avaliação da lente corretiva é subjetiva, uma vez que o paciente é quem determina, em parte, a lente à qual melhor se adapta. No intuito de automatizar estas medidas de refração e diminuir o tempo de medição, que geralmente é em torno de 20 a 30 min, é muito útil contar com um equipamento automático e objetivo capaz de proporcionar a mesma, ou melhor, precisão do que as medidas tradicionais, em menor tempo. Isso favorece um aumento do número de exames feitos em pacientes no mesmo período de tempo de atendimento. Este tipo de sistema, denominado refrator automático, ou auto-refrator, é um teste automático que faz uma medição computadorizada do olho humano para determinar aproximadamente a prescrição das lentes para os óculos de um determinado paciente. O equipamento que faz esse teste é chamado de auto-refrator, e é freqüentemente combinado com um ceratômetro (Keratometer), equipamento utilizado para medir a curvatura da córnea, fornecendo ao médico rapidez e precisão em ambas as medidas [17] [18] [19] [20]. O médico utiliza os resultados do equipamento como ponto de partida para prescrever, por exemplo, um primeiro par de óculos para um paciente recente ou para determinar uma possível troca de lentes para um paciente que já usa óculos. Os auto-refratores também possibilitam ao médico fazer uma medição com razoável precisão em pacientes que não falam ou não são cooperativos, como indivíduos que sofrem de problemas mentais ou pacientes muito jovens [21]. Isso é de grande valia especialmente no caso de crianças, pois diminui o cansaço, além de orientar o oftalmologista nos casos de má informação e não cooperação [22]. Com o intuito de viabilizar tecnicamente a construção de um equipamento eficiente que ofereça uma alternativa aos auto-refratores importados atuais, buscou-se neste projeto investigar um sistema computacional com uma abordagem inédita para medição de vícios refrativos (astigmatismo, hipermetropia e miopia) baseado em tecnologia de análise de imagens utilizando técnicas de Aprendizado de Máquina. Aprendizado de Máquina (AM) é um campo de pesquisa da área de Inteligência Computacional que estuda o V. NETTO: SYSTEM BASED ON COMPUTATIONAL INTELLIGENCE desenvolvimento de métodos capazes de extrair conceitos (conhecimento) a partir de amostras de dados [2]. A idéia da utilização das técnicas de AM foi devido ao enorme progresso em pesquisa e aplicações práticas nos últimos anos que certificam a eficiência dessas técnicas, em especial, redes neurais artificiais e Máquinas de suporte vetorial, em extrair conceitos (conhecimento) a partir de amostras de dados. Em geral, os diversos algoritmos de AM são utilizados de forma a gerar classificadores para um conjunto de exemplos de dados. Essa abordagem oferece um leque de possibilidades em termos de pesquisa acadêmica e tecnológica voltada à interpretação de informações de um globo ocular. Com o reconhecimento e análise das características pertinentes ao globo ocular utilizando algoritmos de aprendizado de máquina é possível não apenas diagnosticar os vícios de refração, mas também obter outras informações sobre a saúde do mesmo [3]. O projeto sempre buscou ampliar horizontes para atingir o objetivo principal, ao mesmo tempo, que contribuir com as áreas que foram sendo investigadas para a construção desse caminho. Dessa forma, além da contribuição prática que foi o desenvolvimento de uma nova metodologia para medição dos vícios de refração ocular e da contribuição computacional baseada na investigação de um sistema de análise de imagens que atua no campo do Entendimento/Interpretação da Imagem (Image Understanding) onde existem hoje poucos projetos realizados utilizando Máquinas de suporte vetorial [4]. Dessa forma, os resultados apresentados podem auxiliar na verificação da adequação destas técnicas para a execução de tarefas nesse campo da área de reconhecimento de padrões. Uma outra contribuição consiste na introdução do uso das técnicas de AM em uma nova área (Optometria/ Oftalmológica). Acredita-se que o trabalho permita uma aproximação entre as áreas de Computação e Optometria, pois o que está sendo proposto é diferente do que os especialistas em Optometria vêm realizando na área de medição de anomalias [5]. Além disso, a utilização de um software inteligente visa fornecer um caminho para melhorar a interpretação das imagens do olho humano obtidas pela técnica de aquisição utilizada no projeto (técnica de Hartmann-Shack) para permitir que, posteriormente, outros problemas oculares sejam detectados e medidos baseados na mesma imagem. Nas próximas seções são apresentadas informações sobre a técnica utilizada para aquisição dos dados do olho humano (Hartmann-Shack); noções sobre a técnica de aprendizado de máquina (Máquinas de suporte vetorial) com o qual se obteve o melhor desempenho no módulo de análise do sistema; em seguida é apresentada na metodologia, a seqüência de desenvolvimento do projeto e na seção final contém as considerações relacionadas as perspectivas diante de algumas decisões tomadas ao longo do projeto, e as conclusões gerais sobre o trabalho. 391 II. TÉCNICA DE AQUISIÇÃO DE DADOS DO OLHO HUMANO Um dos maiores desafios deste projeto foi encontrar uma forma adequada de adquirir as informações necessárias do olho humano, visto que não é possível utilizar determinados métodos já patenteados por empresas estrangeiras. Com o aprofundamento dos estudos nesta área, concluiu-se que é impossível também, até o momento, utilizar alguma forma de aquisição de imagem bidimensional, como uma simples imagem digitalizada da íris ou da retina, pois estas imagens não conteriam as informações necessárias para o diagnóstico dos vícios refrativos. Foi observado, também, que quase todas as formas de aquisição de dados que contém as informações necessárias trabalham com um feixe de luz enviada para o olho humano. Dessa forma, o estudo foi se aprofundando na área de Optometria, em busca de soluções. Deparou-se com algumas metodologias de aquisicionamento, até a descoberta da técnica Hartmann-Shack. A escolha desta técnica está vinculada à inovação que ela está introduzindo na área de Optometria. Na opinião de especialistas, o medidor de anomalia (aberrometer) baseado no princípio de HartmannShack é o mais promissor dos vários métodos existentes [6]. Esta técnica é baseada na seguinte teoria, normalmente, é suposto que os raios de luz penetram no olho e formam uma imagem na retina. Se o objeto é um ponto de luz distante, por exemplo uma estrela, estes raios de luz são paralelos quando penetram no olho, e sofrem uma refração para formar uma imagem perfeita do ponto na retina. Ou melhor dizendo, o ponto de origem emite ondas de luz na mesma direção. Este fenômeno é semelhante a uma pedra jogada num tanque de água que gera ondas circulares que se propagam para fora. Se o ponto de origem está suficientemente distante, para que os raios penetrem no olho; eles virão, essencialmente, na forma de um plano. Adotando os raios de luz simplesmente como linhas, pode-se desenhar as frentes de onda perpendicularmente, afirmando então que se trata de ondas planas, o que é equivalente a afirmar que os raios são paralelos. Uma vez dentro do olho, a onda muda de forma tornando-se circular e, posteriormente, focando-se num ponto da retina. Imaginando o processo inverso, um feixe de luz proveniente de um ponto de reflexão de imagem da retina, saindo do olho. Se o olho é perfeito, a frente de onda emergente será um onda plana, e os raios serão paralelos. Entretanto, se o olho possuir alguma anomalia a frente de onda emergente será distorcida a medida em que vai se distanciando. Naturalmente, a reflexão da luz será muito embaçada, mas é possível capturar fotograficamente a luz refletida que sai do olho, como pode ser observado em uma fotografia com pontos vermelhos cobrindo a pupila dos olhos das pessoas, quando o flash é suficientemente luminoso. Dessa forma, para a medição das anomalias do olho, um ponto origem de luz é criado na retina, e a frente de onda de luz emergente deste olho é analisada por um conjunto de finas lentes. Este conjunto de microlentes divide a frente de onda em vários feixes individuais, cada qual focado em um sensor CCD (Charge-Coupled Device). Para um olho perfeito, uma onda plana refletida será focada perfeitamente dentro de um 392 IEEE LATIN AMERICA TRANSACTIONS, VOL. 3, NO. 5, DECEMBER 2005 grid de imagens de pontos (Figura 1). Será gerada uma imagem contendo todos os pontos vindos do conjunto de lentes, e os espaçamentos entre estes pontos serão os mesmos existentes no lenslet (origem). É importante observar que a direção da propagação da luz é a mesma em todas as direções para uma onda plana perfeita, mas em uma onda com anomalias a direção da propagação da luz varia dentro da frente de onda. Conseqüentemente, este sistema pode ser usado para determinar a forma de propagação da frente de onda de luz, pela análise da localização dos pontos registrados pelo sensor CCD [6]. A Fig. 1 mostra a reflexão de uma frente de onda (wavefront) distorcida em um olho amétrope. Os raios de luz refletidos em um olho imperfeito, não são paralelos. Conseqüentemente, ao atingir o conjunto de microlentes, eles irão focar as imagens dos pontos desordenadamente. Pela análise exata da localização de cada ponto neste conjunto desordenado é possível calcular a inclinação (slope) da frente de onda com anomalia em relação ao conjunto de lentes, chegando-se finalmente a forma desta anomalia [7]. Fig. 1. Princípio da frente de onda [7]. III. MÁQUINAS DE SUPORTE VETORIAL No decorrer do desenvolvimento das técnicas de AM, diversos pesquisadores se inspiraram nos sistemas biológicos para desenvolverem as redes neurais artificiais, cujos conceitos são baseados nos mecanismos de aprendizado cerebrais, e os algoritmos genéticos, que têm seus conceitos inspirados no processo de evolução natural e na genética. No campo de aprendizado simbólico, têm-se as árvores de decisão, e inspirado nos processos cognitivos houve o desenvolvimento dos sistemas de raciocínio baseado em casos (RBC). As Máquinas de suporte vetorial, por sua vez, fundamenta-se em teorias estatísticas. As SVMs (Support Vector Machines – Máquinas de suporte vetorial) constituem uma família de algoritmos de aprendizado que vem recebendo grande atenção nos últimos anos [29]. Elas foram desenvolvidas a partir de 1992 pela equipe do pesquisador Vladimir Vapnik [9] e seus fundamentos são provenientes da teoria de aprendizagem estatística apresentada nas décadas de 60 e 70 por Vapnik e Chernovenkis [8]. Vapnik idealizou o princípio indutivo de Minimização do Risco Estrutural (Structural Risk Minimization – SRM) que busca minimizar o erro do conjunto de treinamento (risco empírico), juntamente com o erro do conjunto de teste. Segundo Vapnik, a motivação para esse princípio surgiu da necessidade de desenvolver limites teóricos para a capacidade de generalização dos sistemas de aprendizagem. Uma maior generalização normalmente implica em um maior número de acertos na fase de teste. No caso do princípio de Minimização do Risco Empírico utilizado em RNAs a generalização é obtida pela escolha de pesos para os neurônios de modo a prover um erro de treinamento mínimo [28]. No entanto, somente a Minimização do Risco Empírico não fornece bons resultados. É preciso considerar o Risco Estrutural, pois quanto maior esse risco, mais complexo é o hiperplano de decisão dessas funções no espaço de entrada dos dados [30]. Obter um equilíbrio entre ambos os erros permite superar tendências de excesso de ajustes (overfitting) e melhorar a capacidade de generalização. As SVMs podem ser consideradas máquinas de aprendizagem com apenas uma camada escondida, treinadas por um algoritmo supervisionado. Seu treinamento é relativamente simples, e requer a resolução de um problema quadrático, dependente dos vetores de treinamento e de alguns parâmetros especificados pelo usuário. É feito um mapeamento não-linear dos dados em um espaço de dimensão elevada onde um hiperplano ótimo (com a maior margem de separação possível) possa ser construído, permitindo a separação das classes positivas e negativas ou a utilização da máquina para regressão. A SVM possibilita a abordagem dos problemas de duas formas. Na primeira, não são considerados erros de classificação, ou seja, padrões que por ventura estejam fora dos valores típicos de sua classe irão desviar o hiperplano de separação de forma que este padrão (incorreto) seja classificado como correto. Na segunda, são estabelecidas variáveis de folga, de forma que padrões fora dos valores típicos da sua classe podem ser desconsiderados, dependendo da quantidade de folga que se use, diminuindo assim a probabilidade de erro de classificação. Algumas das principais características das SVMs que justificam sua utilização são [10]: o Boa capacidade de generalização - os classificadores gerados por uma SVM em geral alcançam bons resultados em termo de generalização. Essa capacidade é medida por sua eficiência na classificação de dados que não pertençam ao conjunto utilizado em seu treinamento, portanto, é evitado o overfitting (memoriza os padrões de treinamento, gravando suas peculiaridades e ruídos, ao V. NETTO: SYSTEM BASED ON COMPUTATIONAL INTELLIGENCE invés de extrair as características gerais que permitirão a generalização ou reconhecimento de padrões não vistos durante o treinamento). o Robustez em grandes dimensões – as SVMs são robustas diante de objetos de grandes dimensões, como por exemplo, imagens. Comumente há a ocorrência de overfitting nos classificadores gerados por outros métodos inteligentes sobre esses tipos de dados. o Teoria bem definida – as SVMs possuem uma base teórica bem estabelecida dentro da Matemática e Estatística. Dentre as várias técnicas conhecidas de AM potencialmente aplicáveis, as SVMs possuem características que justificam a sua utilização no contexto deste projeto [24]. As SMVs têm boa capacidade de generalização; robustez diante de objetos de dimensões elevadas, como imagens; convexidade da função objetivo, isto é, possui apenas um mínimo global; capacidade de lidar com dados ruidosos e uma base teórica bem estabelecida na Matemática e Estatística. As SVMs têm sido muito utilizadas em aplicações recentes, com resultados comparáveis aos obtidos por outros algoritmos de aprendizado, como RNAs, tendo se mostrado superiores em algumas tarefas. É o caso de reconhecimento de caracteres [11] [25], detecção de faces humanas em imagens [12] [26] e reconhecimento de pessoas pelas características da cor e forma do corpo [27]. Apesar do bom desempenho em diversas aplicações, algumas ressalvas devem ser feitas com relação à complexidade computacional na busca por soluções, da ordem de n2 a n3, em que n é o número de exemplos de treinamento. Apesar de polinomial, esse valor pode ser significativo em aplicações em que o volume de dados é grande. Porém, os tempos de treinamento são consideravelmente menores do que em outros algoritmos de aprendizagem. Outro problema é a forma como o conhecimento é adquirido e codificado pelos classificadores gerados por SVMs. Esse conhecimento não é facilmente interpretado, o que é uma desvantagem sobre outras técnicas de AM como as árvores de decisão, que organizam o conhecimento adquirido em uma estrutura diretamente interpretável [31]. IV. METODOLOGIA E RESULTADOS O desenvolvimento do projeto envolveu três fases distintas que são apresentadas na Tabela 1. Fase 0 Sistema de aquisição das imagens oftalmológicas por meio da técnica de Hartmann-Shack realizada pela Universidade de Indiana (EUA). Fase 1 Realização do pré-processamento (módulo de préprocessamento) e extração de características (módulo de extração de característica) das imagens adquiridas na fase 0. Fase 2 Reconhecimento e análise dos dados obtidos na fase 1, por meio de técnicas de aprendizado de máquina (módulo de análise). Tab. 1. Fases envolvidas no projeto do sistema de medição. 393 Para aquisição das imagens foi utilizado um equipamento chamado “Aberrometer” construído na School of Optometry da Indiana University que opera baseado nos princípios de Hartmann-Shack. Foram adquiridas imagens dos olhos de 100 pacientes, cujas pupilas foram dilatadas e a acomodação paralisada com a aplicação de ciclopentalato (0.5%, uma gota), sendo três imagens do olho direito (OD) e três do olho esquerdo (OS), totalizando seis imagens por paciente (600 exemplos) [13]. Cada imagem é identificada por um rótulo em que consta o número do paciente, o olho (direito ou esquerdo) e o número da aquisição, por exemplo, 24o64_OD1. Cada imagem é associada a três medidas, esférica (S), cilíndrica (C) e eixo do astigmatismo (A), que caracterizam os vícios refrativos do olho correspondente. Uma medida S negativa indica que o olho diagnosticado sofre de miopia (dificuldade de enxergar à distância), e quando positiva indica a presença de hipermetropia (dificuldade de enxergar de perto). As medidas C e A estão relacionadas ao astigmatismo e ao eixo do astigmatismo, respectivamente (visão distorcida, tanto de longe quanto perto). Essas medidas são utilizadas no treinamento dos algoritmos de AM, e foram obtidas pelo algoritmo desenvolvido por pesquisadores da equipe de Optometria da Universidade de Indiana [32], o qual é baseado no princípio do polinômio de Zernike [23]. As medidas associadas às imagens do banco têm resolução de 0.25 D para S e C, com valores para esférica (S) variando no intervalo entre -1.75 D e +0.25 D, e com valores para cilíndrica (C) variando entre 0.0 D e 1.25 D; valores do eixo do astigmatismo (A) variam entre 0º e 180º, com resolução de 5o. O banco é constituído de imagens em tons de cinza (grayscale) com resolução de 536 x 414 pixels. A aquisição de imagens oftalmológicas por meio do “Aberrometer” não gera imagens em um padrão que permita a sua utilização direta pelo sistema proposto, dessa forma, se faz necessário uniformizá-las e posteriormente retirar características (ruídos) que poderiam distorcer os resultados do módulo de extração de características. Para isto, foram desenvolvidos módulos computacionais baseados nos métodos de análise de histograma e informação espacial e geométrica do domínio da aplicação [14]. O pré-processamento das imagens engloba duas fases. A primeira consiste em centralizar o círculo de HS, que corresponde ao diâmetro da pupila e à região de interesse para a análise, em uma nova imagem de tamanho padrão. Esse tamanho padrão foi especificado de acordo com o maior diâmetro de pupila (maior tamanho do círculo de HS) encontrado no banco de imagens. A segunda etapa consiste na eliminação de ruídos devidos às imperfeições e desalinhamento óptico no equipamento de aquisição [24]. Na Fig. 2 é apresentada uma visão geral do processamento efetuado por esse módulo. 394 IEEE LATIN AMERICA TRANSACTIONS, VOL. 3, NO. 5, DECEMBER 2005 Fig. 2. Operações efetuadas pelo módulo de pré-processamento das imagens oftalmológicas [24]. Após o pré-processamento, é realizada uma extração de características com o objetivo de reduzir o número de atributos de entrada para o módulo de análise sem perder informações relevantes. Da análise multivariada foi implementada a técnica da PCA (Principal Component Analysis) [15]. Foram montados quatro vetores de características distintos, com diferentes números de atributo. Para isto, foi implementado um aplicativo para gerar automaticamente o vetor de características de cada uma das imagens da base original, processando toda a base sem intervenção do usuário. Esse aplicativo recebe como entrada, os vetores de pixels que representam as imagens de HS já préprocessadas, e gera como saída, os vetores de características. Esses vetores contêm valores numéricos gerados pela PCA. A PCA transforma um grupo de variáveis correlacionadas (caso dos pixels) em variáveis não correlacionadas. A PCA é um dos métodos estatísticos multivariados em que dadas p variáveis X1, X2, ..., Xp, busca-se encontrar combinações lineares destas para produzir índices Z1, Z2, ..., Zp não correlacionados. O tempo de processamento para extrair as características de todas as imagens da base utilizando a PCA foi de aproximadamente três horas, uma média de 25 segundos por extração. O hardware utilizado foi um Pentium III 500MHz com 512MB de memória RAM. Observando-se as três medidas – esférica (S), cilíndrica (C) e eixo do astigmatismo (A) – associadas a cada imagem de HS que caracterizam os vícios refrativos verificou-se dois problemas que prejudicaram seriamente o treinamento do algoritmo de aprendizado no módulo de análise. O primeiro problema está relacionado à presença de medidas ambíguas de S, C e A associadas a múltiplas imagens do mesmo olho. Em muitos casos existe uma grande diferença entre as três imagens do mesmo olho de um mesmo paciente, e cada uma delas está associada a medidas diferentes de S, C e A. Por exemplo, o olho direito (OD) do paciente “24o6p” possui as três medidas de S bastante diferentes. Essa diferença é salientada quando são utilizadas as medidas no padrão de “Auto Ref”, as quais são calculadas a partir das medidas originais do banco de imagens [24]. O padrão “Auto Ref” utilizado para apresentar a saída adota a resolução da saída utilizada por vários auto-refratores comerciais, nos quais as medidas são apresentadas com resolução de 0.12 ou 0.25 Dioptrias para miopia, hipermetropia (esférica) e astigmatismo (cilíndrica); e de 5o para o eixo do astigmatismo. São essas as medidas utilizadas no treinamento dos algoritmos de AM. Para treinar adequadamente o módulo de análise seria importante que as três medidas de um mesmo olho fossem semelhantes. Uma alternativa, caso exista dificuldade de replicabilidade na metodologia de obtenção das medidas, seria aumentar o número de exemplos por olho (por exemplo, 30 imagens). A existência de poucos exemplos muitas vezes dificulta a geração de um bom modelo estatístico baseado em padrões, o que diminui as chances de um desempenho adequado na fase de generalização por um sistema baseado em AM. A segunda limitação do banco de imagens é conseqüência direta do primeiro problema, e é o ruído presente nos valores medidos. Por exemplo, existiam medidas de paciente que a diferença entre os valores apresentados para a saída S, C e A estavam acima do erro permitido. Para ser aceita, as diferenças nas medidas devem estar dentro da margem de erro permitida pela resolução do equipamento de aquisição das imagens, que para S e C é de ±0.25 Dioptrias (D), e para A é de ±5 graus (o). Em muitas das imagens do banco foi possível verificar essa variação superior à margem de erro tolerada. Existem casos graves em que a diferença entre as medidas chega a ser de 0.75 D para S, 0.5 D para C e 70o para A [24]. Diante desse fato, foram retirados do banco de imagens original os exemplos referentes a um mesmo olho cujas medidas apresentavam diferença superior a 0.25 D para S e C, e superior a 5o para A. O banco de imagens resultante ficou com 426 exemplos. Em vista das limitações do banco de imagens optou-se por investigar o algoritmo SVM para a implementação do módulo de análise. Como discutido anteriormente, as SVMs possuem uma boa capacidade de generalização por seguir o princípio de minimização do risco estrutural, ao invés do princípio de minimização do risco empírico empregado por RNAs convencionais. A minimização do risco estrutural reduz o erro de generalização, enquanto o risco empírico minimiza o erro de treinamento [28]. O módulo de análise utilizando SVM foi implementado baseando-se na ferramenta Torch, (linguagem C) para a plataforma LINUX [33]. Nos experimentos foram manipulados os seguintes parâmetros do modelo SVM: o tipo de kernel (linear, polinomial, Gaussiano e sigmoidal), o critério de parada e os parâmetros dos kernels. Foi desenvolvido um algoritmo para gerar automaticamente diferentes combinações de valores possíveis para o conjunto de parâmetros, inclusive ajustando os parâmetros específicos dos kernels [24] e, posteriormente, treinar o modelo resultante com o sub-conjunto de treinamento e validação. Outro programa obtém a medida de desempenho (estimativa de erro) para o modelo definido pelo conjunto de parâmetros V. NETTO: SYSTEM BASED ON COMPUTATIONAL INTELLIGENCE sendo testado, utilizando o sub-conjunto de teste. O conjunto de parâmetros do modelo que apresentou a melhor medida de desempenho foi armazenado para posterior utilização no módulo de análise. Devido ao grande número de combinações possíveis para os parâmetros, os treinamentos e a verificação do melhor modelo demandaram um longo tempo e esforço. Para estimar o erro foi adotado o método de reamostragem aleatória (random resampling), isto é, o conjunto de dados original com 426 exemplos foi particionado 10 vezes em dois subconjuntos, um sub-conjunto de treinamento e validação com 80% dos exemplos, e um sub-conjunto de teste com 20% dos exemplos. Essas 10 partições foram montadas aleatoriamente e têm como objetivo aumentar a significância estatística dos resultados. Na montagem dos subconjuntos procurou-se manter uma distribuição uniforme dos exemplos de cada medida de S, C e A. Quando o aprendizado é tratado como um problema de classificação, uma medida de desempenho comumente usada é a taxa de erro do classificador. Usualmente, a taxa de erro compara a classe verdadeira de cada exemplo com a classe atribuída pelo classificador h. O operador ||E|| retorna 1 se a expressão E for verdadeira, e zero caso contrário; n é o número de exemplos. Para problemas de regressão, o erro pode ser estimado calculando-se a distância entre o valor real e o valor atribuído pelo classificador. Usualmente, a medida adotada é o erro quadrático médio (mean squared error – MSE) [34]. A arquitetura adotada no experimento é apresentada na Figura 3 Para cada uma das medidas S, C e A foi treinado um modelo de SVM. É possível observar na figura que, inicialmente, o processo de aprendizado foi tratado como um problema de regressão, isto é, foram utilizadas SVMs para regressão e as saídas S, C e A consistem, cada uma, em um valor contínuo estimado para cada uma das medidas. Por exemplo, a SVM para estimar S possui como entrada um vetor de características de 6400 atributos extraídos utilizando PCA e gera como saída um valor real. Posteriormente, este valor é convertido no padrão de medida “Auto Ref”, que apresenta o valor segundo a resolução de um auto-refrator comercial, de 0,25 D. 395 Os erros médios obtidos com os conjuntos de teste definidos pelas 10 partições pelas melhores configurações de SVM, para cada uma das medidas S, C e A são mostrados na Tabela 2. A segunda coluna da tabela apresenta a quantidade de exemplos de cada uma das medidas presentes em cada conjunto de teste. Na coluna com o título “Medida exata” são apresentadas as taxas médias (em porcentagem) e o desvio padrão (em porcentagem) do erro das SVMs para as medidas de S, C e A. A coluna com o título “Propagação do erro” também apresenta o erro médio e desvio padrão, porém considerando uma tolerância do erro das medidas de S e C de ±0.25 D, e uma tolerância do erro de A de ±5o. Isso significa que, se uma medida S ou C possui valor igual a 0.5 D, são computados como acertos do classificador os valores 0.5 D, 0.25 D ou 0.75 D. Para uma medida A cujo valor exato é 30o são computados como acertos os valores 30o, 25o ou 35o. Tab. 2. Desempenho das melhores configurações de SVM para a arquitetura regressiva. Alternativamente a uma arquitetura para regressão, decidiu-se investigar se uma arquitetura de SVM para classificação (Figura 4) apresentaria melhor desempenho, e o módulo de análise foi alterado para tratar o problema de aprendizado como um problema de classificação. Com isso, ao invés de aproximar um valor de saída as SVMs devem associar uma imagem a uma das classes de saída. O conjunto de medidas de S foi separado em 9 classes, correspondentes a cada grupo de medidas entre -1.75 D e +0.25 D, com intervalos de 0.25 D; o conjunto de medidas C foi separado em 6 classes, correspondentes a cada grupo de medidas entre 0.0 D e 1.25 D, com intervalos de 0.25 D; e o conjunto de medidas de A foi separado em 25 classes. Fig. 4. Módulo de análise para classificação [24]. Fig. 3. Módulo de análise proposto inicialmente com medidas regressivas. [24]. As saídas de S, C e A são representadas por vetores de 9, 6 396 IEEE LATIN AMERICA TRANSACTIONS, VOL. 3, NO. 5, DECEMBER 2005 ou 25 elementos, respectivamente, em que cada elemento do vetor corresponde a uma classe na posição correspondente. Por exemplo, a posição 1 do vetor está associada à primeira classe das medidas, a posição 2 à segunda classe das medidas, e assim por diante. Assim, uma SVM para medir S possui como entrada um vetor de 6400 atributos e como saída um vetor de 9 elementos: a posição do maior dos 9 elementos do vetor de saída indica a correspondente classe da saída. Os resultados obtidos com as melhores configurações da arquitetura de classificação, para cada uma das medidas, são mostrados na Tabela 3. Trata-se de SVMs com núcleo gaussiano, porém com parâmetro c (limite entre o erro de treinamento e a margem) apresentando, respectivamente, os valores 100, 3 e 100, e o parâmetro std do núcleo gaussiano com valor 18, 25 e 22 respectivamente para as saídas S, C e A. Tab. 3. Desempenho das melhores configurações de SVM para a arquitetura de classificação. Os resultados obtidos com a transformação do problema de regressão em um problema de classificação apresentaram uma melhora, porém insuficiente para garantir um bom desempenho do sistema de medição. Optou-se, então, por aumentar a quantidade de atributos do vetor de características fornecido como entrada. Foram testadas três variações, com 1400 (resultados de erro médio e desvio padrão na Tabela 4), 14000 (resultados na Tabela 5) e 28000 atributos (resultados na Tabela 6). Como podem ser observados, os resultados apresentados foram inferiores ou semelhantes aos obtidos utilizando-se 6400 atributos. Por isso, foi mantida a configuração inicial (6400 atributos). Na Tabela 4, para as medidas S e C, tem-se SVMs com núcleo gaussiano, com parâmetro c apresentando, respectivamente, os valores 1 e 2, e o parâmetro std do núcleo gaussiano o valor 7000. Para a medida A, tem-se uma SVM com núcleo linear, com parâmetro c apresentando o valor 0,1; e o parâmetro h o valor 300. Na Tabela 5, para as medidas S, C e A, tem-se uma SVM com núcleo gaussiano, com os parâmetros c e std, respectivamente com os valores 100 e 20, valores default do simulador SVMTorch, os valores default foram aqueles que garantiram uma melhor classificação pela SVM em análise. A Tabela 6 apresenta SVMs com núcleo gaussiano para as medidas S, C e A, com o parâmetro c apresentando o valor 2, e o parâmetro std do núcleo gaussiano apresentando o valor 100 para as saídas S e C e 7000 para a saída A. Tab. 5. Resultados da arquitetura de classificação com 14000 atributos. Tab. 6. Resultados da arquitetura de classificação com 28000 atributos. Com o intuito de verificar quanto os resultados obtidos são influenciados pelo desbalanceamento das classes, i.e., pelas diferentes quantidades de exemplos por classe, buscou-se balancear a quantidade de exemplos de cada classe de medidas antes de apresentá-los ao módulo de análise. Foram montadas 10 novas partições dos exemplos de entrada, contendo dois conjuntos cada: um conjunto de treinamento e validação, com 80% dos exemplos, e um conjunto de teste, com 20% dos exemplos. Para as medidas de S e C os conjuntos foram constituídos por classes com mais de 30 exemplos, e para as medidas de A os conjuntos foram constituídos por classes com mais de 25 exemplos. Foram escolhidas cinco classes para S, quatro classes para C e quatro classes para A. Os resultados obtidos podem ser observados na Tabela 7 que apresenta SVMs com núcleo gaussiano para as medidas S, C e A, com o parâmetro c apresentando o valor 4, e o parâmetro std do núcleo gaussiano apresentando o valor 85 para as saídas S e C e 5500 para a saída A. Tab. 7. Resultados da arquitetura de classificação com balanceamento artificial (6400 atributos). Os resultados obtidos indicam a importância de balancear o banco de imagens para facilitar o treinamento e, conseqüentemente, obter um melhor desempenho na fase de teste, principalmente se existir um grande número de classes (observar a diferença entre os resultados da medida A). Este fator deve ser levado em consideração no momento da construção de um banco de imagens para teste. Contudo, observou-se que os resultados da medida C foram inferiores aos resultados apresentados na Tabela 3. Isso pode estar ocorrendo devido a duas das classes originais (medidas iguais a 0.25 e 0.50, na Tabela 3) possuírem uma quantidade de exemplos muito elevada em comparação às demais classes. O alto índice de acerto é decorrente da maior quantidade de exemplos dessas classes nos conjuntos de teste. V. CONSIDERAÇÕES FINAIS Tab. 4. Resultados da arquitetura de classificação com 1400 atributos. Uma motivação para investigar técnicas de AM para o reconhecimento e análise das imagens HS no contexto deste projeto foi a busca por um sistema de medição capaz de V. NETTO: SYSTEM BASED ON COMPUTATIONAL INTELLIGENCE interpretar o conteúdo das imagens como um todo, ao invés de fazer a medição pela comparação de dados discretos extraídos da imagem com dados extraídos de uma imagem de referência, como é feito atualmente por especialistas em Optometria utilizando técnicas como os polinômios de Zernike [23]. Nessas abordagens convencionais, muitas informações contidas nas imagens são ignoradas no processo de análise [5] [16]. Uma abordagem baseada na análise do conteúdo da imagem permitirá, no futuro, que além dos vícios refrativos sejam detectadas outras enfermidades do olho humano a partir das imagens de HS, como é o caso do “Tears Film Breakup” [16]. Apesar das limitações da base de dados utilizada, haja vista que ela não foi aquisicionada levando em consideração pontos importantes (balanceamento, quantidade de exemplares por classes e ausência de ambigüidades) para sua utilização em um módulo de análise baseado em técnicas de aprendizagem de máquina. O comportamento das SVMs demonstraram que as mesmas conseguem responder bem as adversidades de um banco de dados obtidos por um sistema real. Na área médica, muitas vezes, é difícil obter um espectro adequado onde todas as classes estão representadas com quantidades suficientes para que se tenha um excelente desempenho no módulo de análise. Observando a facilidade das SVM de relacionar suas saídas com os dados que são usados para supervisioná-las, é possível vislumbrar uma excelente oportunidade no momento que se deseja reproduzir em um sistema computacional de baixo custo, resultados obtidos com sistema complexos e custosos. Por exemplo, poderia se detectar e diagnosticar uma doença ocular utilizando uma complexa parafernália e depois tentar relacionar por meio de uma imagem ou de dados vindos de sensores específicos esta doença utilizando SVM. Para as imagens de Hartmann-Shack, ao invés dos dados obtidos com o medidor de anomalia (“aberrometer”) convencional para alimentar a base de dados a ser utilizada para supervisionar o módulo de análise, poderia se utilizar um outro sofisticado aparelho para adquirir estes dados. Este aparelho sofisticado é muito caro para se ter uma versão comercial. Contudo, poderia se ter toda a sua característica e precisão relacionada com uma imagem do olho humano (por exemplo, com a imagem de Hartmann-Shack), utilizando para isso um módulo de análise baseado em técnicas de aprendizagem de máquina. Por se tratar de um trabalho pioneiro, existem muitas oportunidades de continuidade na área de atuação do projeto. Um dos primeiros trabalhos sugeridos seria a investigação de outras técnicas de extração de características. Como o objetivo da extração de características é diminuir os atributos de entrada para o módulo de análise, poderia ser testada uma compressão de imagens baseada em transformadas de wavelet (Wavelet compression), como Daubechies, que é um dos métodos mais eficientes de compressão de imagens. Seria interessante verificar o comportamento do módulo de análise com os atributos fornecidos por essa técnica e comparar os resultados aos obtidos com a PCA. Um outro trabalho interessante está vinculado ao estudo das relações entre os vetores de características gerados pelas técnicas aplicadas e as 397 medidas (no caso do projeto, os valores de S, C e A) utilizadas para supervisionar o treinamento dos algoritmos de AM. Entender esta relação pode ser fundamental no momento em que se estiver buscando extrair outros tipos de informações das imagens de HS. Outro ponto a ser pesquisado é a influência do diâmetro do olho na imagem de HS analisada. Ele poderia ser utilizado como uma medida de supervisão adicional do módulo de análise, juntamente com S, C e A. É interessante saber se essa informação é significativa no processo de reconhecimento dos vícios refrativos, ou mesmo na análise de outros problemas oculares. Para evitar a dependência, no momento da análise das imagens, com relação a alguma característica imposta pelo treinamento supervisionado, como é o caso da resolução das medidas de miopia, hipermetropia e astigmatismo, sugere-se utilizar um módulo de análise baseado em redes neurais não supervisionadas (redes Self-Organising). Dessa forma, a própria rede trataria de identificar as classes utilizando características encontradas na própria imagem. Abstraindo as informações deste projeto, é possível imaginar um sistema adaptado utilizando técnicas de aprendizado de máquina para análise de outras imagens oftalmológicas com o intuito de identificar outros problemas oculares, como por exemplo, imagens provenientes das técnicas: Fluorescein, Retro-illumination e Optical scatter map [7]. Além disso, a própria imagem fornecida pelo Hartmann-Shack pode estar oferecendo este tipo de desafio, como é o caso do já citado “Tear Film Breakup”. VI. AGRADECIMENTOS O autor agradece ao Professor Ph.D. Larry Thibos da School of Optometry - Indiana University - USA, pelo auxílio com informações da área de Optometria e pela liberação do banco de imagens de Hartmann-Shack, e a Profa. Ph.D. Maria Cristina F. de Oliveira e o Prof. Ph.D. André P. L. F. Carvalho do Instituto de Ciências Matemática e de Computação da Universidade de São Paulo (ICMC/USP). Também agradecer o suporte financeiro da FAPESP (processos: 00/04779-2, 01/09540-0 e 02/08038-2). VII. REFERÊNCIAS BIBLIOGRÁFICAS [1] Ventura, L. et al. (1996). Desenvolvimento de um software para a determinação automática de miopia, hipermetropia e astigmatismo oculares, Revista de Física Aplicada e Instrumentação, vol. 11, n. 2, p. 77-83, junho. [2] Mitchell, T. (1997). Machine Learning. McGraw Hill. [3] Valerio Netto, A. & Oliveira, M. C. F. (2002). Using neural nets to measure ocular refractive errors - a proposal, Proceeding SPIE - Applications and Science of Neural Networks, Fuzzy Systems, and Evolutionary Computation, Seattle – EUA, December. [4] Egmont-Petersen, M. et al. (2002) Image processing with neural networks – a review, Pattern Recognition, v. 35, pp. 2279-2301, October. [5] Valerio Netto, A. (2001). Proposal to use artificial intelligence in the field of ophthalmology, Oxyopia: 398 Vision Science Seminar – Indiana University (IU), Indiana - USA, October. [6] Thibos, L. N. & Hong, X. (1999). Clinical applications of the shack-hartmann aberrometer, Optometry and vision science, vol. 76, no. 12, pp. 817-825. [7] Thibos, L. N. (2000). Principles of hartmann-shack aberrometry, Wavefront Sensing Congress, Santa Fe. http://www.opt.indiana.edu/people/faculty/thibos/VSIA/ VSIA-2000_SH_tutorial_ v2/index.htm [8] Vapnik, V. N. & Chervonenkis, A. (1968). On the uniform convergence of relative frequencies of events to their probabilities. Theory of probability and applications, (16):262-280. [9] Vapnik, V. et al. (1992). A Training Algorithm for Optimal Margin Classifiers. In Fifth Annual Workshop on Computational Learning Theory, Pittsburgh. [10] Smola, A. J. et al. (1999). Advances in large margin classifiers. MIT Press. [11] Dummais, S. (1998). Using SVM for text categorization. IEEE Intelligence Systems, pages 21-23. [12] Fernadez, R & Viennet, E. (1999). Face identification using support vector machines, Proc. of the European symposium on artificial neural networks, pp. 195-200, Brussels, D-Facto Press. [13] Thibos, L. N., et al. (2002). Statistical variation of aberration structure and image quality in a normal population of healthy eyes, JOSA A, Volume 19, Issue 12, pp. 2329-2348. [14] Sonka, M.; Hlavac, V.; Boyle, R. (1999). Image processing, analysis, and machine vision. Second ed. PWS Publishing. [15] Johnson, R.A. & Wichern, D. (1982). Applied multivariate statistical analysis, 2nd edition, PrenticeHall, New Jersey. [16] Himebaugh, N. et al. (2001). Comparison of Fluorescein and Hartmann-Shack wavefront sensing methods for monitoring tear film breakup, http://research.opt. indiana.edu/ [17] Steinberg, C. S. (2002). Eye exam tests. http://www.visioncare.com/cityeyes/tests.htm (November). [18] Canon (2002). RK-5 auto ref-keratometer - Take the next step, Canon Inc., http://www.canom.com (November). [19] Nidek (2002). Auto refractometers AR-600, ARK-700 and AR-660, http://www.nidek.com, (August). [20] Topcon (2002). Bringing the future into focus, http://www.topcon.com/auto.htm (August). [21] Uras, R. (1995). Analise comparativa da refração automática objetiva com refração clínica, Tese (Doutorado), UNIFESP, Escola Paulista de Medicina, São Paulo – SP, 79 Pp. [22] Santos, J. F. et al.. (1998). Estudo comparativo entre dois métodos de refração: objetiva e subjetiva, Revista Brasileira de Oftalmologia, vol. 57, n. 2, fevereiro. [23] Liang, J., et al. (1994). Objective measurement of wave aberrations of the human eye with the use of a HartmannShack wave-front sensor. J. Opt. Soc. Am., Vol. 14, No. 11/ July, pp. 1949-1957. IEEE LATIN AMERICA TRANSACTIONS, VOL. 3, NO. 5, DECEMBER 2005 [24] Valerio Netto, A. (2003). Processamento e análise de imagens para medição de vícios de refração ocular, Tese de doutorado, ICMC/USP, São Carlos, julho, p. 145. [25] Lecun. Y. A et al. (1995). Comparison of learning algorithms for handwritten digit recognition. Proceedings of the international conference on artificial neural networks, vol. 2, pages 53-60, Nanterre, France. [26] Osuna, E. (1998). Applying SVMs to face detection, IEEE Intelligence Systems, pp. 23-26. [27] Nakajima, C. et al. (2002). Full-body person recognition system, Pattern Recognition, September, 15 Pp. [28] Vapnik, V. (1995). The Nature of Statistical Learning Theory, Springer-Verlag, New York. [29] Schölkopf, B. (1998). SVMs – a practical consequence of learning theory. IEEE Intelligence Systems, pp. 36-40, July. [30] Cherkassky, V. & Mulier, F. (1998). Learning from data. Concepts, theory and methods. John Wiley and Sons, Inc. [31] Cristianini, N & Shawe-Taylor, J. (2001). An introduction to support vector machines and other kernelbased learning methods. Cambridge University Press. [32] Hong, X. et al. (2002). Shack-Hartmann data analysis software for MATLAB http://research.opt.indiana.edu/ Library/SHtoolkit/README.html [33] Torch (2002). Torch: a modular machine learning software library. http://www.torch.ch/ [34] Monard, M. & Baranauskas, J. (2003). Conceitos sobre aprendizado de máquinas em Sistemas Inteligentes: Fundamentos e Aplicações. Cap. 4., Editora Manole. VIII. BIBLIOGRAFIA Antonio Valerio Netto é doutor em ciência da computação e matemática computacional pelo Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo (ICMC/USP). Iniciou sua carreira como técnico em informática industrial (ETEP). Posteriormente, formou-se bacharel em ciência da computação pela Universidade Federal de São Carlos (UFSCar) e mestre em engenharia pela Universidade de São Paulo (EESC/USP). Em 2001 foi pesquisador visitante na Universidade de Indiana (EUA). Trabalhou vários anos como engenheiro de desenvolvimento em empresas de alta tecnologia e posteriormente, como consultor de novas tecnologias da Debis Humaitá, empresa do grupo DaimlerChrysler, e T-Systems do Brasil, empresa do grupo Deutsche Telekom. Atualmente, é sócio fundador da Cientistas Associados Desenvolvimento Tecnológico Ltda. onde ocupa o cargo de gerente da divisão de tecnologia. Possui em torno de 70 publicações entre livro, capítulos de livro, revistas e congressos internacionais e nacionais nas áreas de computação e engenharia. Participou de diversos projetos tecnológicos financiados pelo governo e instituições privadas. Recebeu diversos prêmios e menções honrosas, como a do SAE (Society of Automotive Engineers) Brasil 2001 – melhor paper técnico na categoria projetos. Suas áreas de interesse são: sistemas interativos; simulação visual; aquisição, processamento e análise de imagens digitais; sistemas inteligentes e desenvolvimento de negócios na área de tecnologia.