Technical Notes in Computational Intelligence, ICA, PUC-Rio 1 Realce de Impressões Digitais por Algoritmos Genéticos Marco Aurélio C. Pacheco 1, Raul Queiroz Feitosa 1, Dan Posternak 1 1 ICA: Computational Intelligence Laboratory, Department of Electrical Engineering, PUC-Rio R. Marques de S. Vicente 225, Gávea, Rio de Janeiro, CEP 22453-9, RJ, Brazil {marco, raul}@ele.puc-rio.br dposternak@alternex.com.br Resumo. Este projeto diz respeito à realce uma escala de cinza representado por uma imagem da impressão digital de imagens pretobranco através de um algoritmo genético. A idéia é mostrar uma vez mais a aplicação do algoritmo genético para ajudar um reconhecimento de padrões futuros de uma impressão digital. Palavras-chave: Algoritmo Genético, impressão digital, Realce. Abstract. This project concerns the enhancement of a grey-scale represented fingerprint image by a black-white image through a Genetic Algorithm. The idea is to show once more Genetic Algorithm application to help pattern recognition of a fingerprint in the future. Keywords: Genetic Algorithm, Fingerprint, Realce. 1 Introdução Com o crescimento avassalador dos meios de comunicações na última década, é fato motivante que tenhamos dois tipos de preocupação: O que nos interessa e o que queremos que os outros saibam. Como hoje em dia há cada vez mais uma confiança crescente na transferência de dados por meios digitais, há também uma preocupação em saber se há algum tipo de segurança no tráfego destes. Para controle de segurança, utilizam-se técnicas biométricas, dentre as quais, está o reconhecimento de impressões digitais.
Technical Notes in Computational Intelligence, ICA, PUC-Rio 2 O objetivo deste trabalho é realçar uma imagem de impressão digital em tons de cinza, transformando-a em uma imagem em preto e branco. Este realce tem como objetivo minimizar imperfeições no reconhecimento da imagem devido provavelmente a um "scaneamento" mau feito que torne os tons de cinza muito escuro e consequentemente torne difícil separar os cumes dos vales de uma impressão digital. Para se ter uma idéia do problema, observe a figura abaixo: Fig. 1. Impressão Digital scaneada. Há cumes e vales que se confundem devido a escuridão da imagem. 1.1 Realce A função do Realce é chamar a atenção para detalhes que desejamos conhecer melhor visualmente. O Realce é a segunda fase em processamento de imagens que vai desde a Aquisição da Imagem passando pelo Realce, Segmentação, Pós-Processamento, Extração de Atributos e Reconhecimento. Tendo isto em vista, pode-se dizer que dependendo do que queremos realçar, poderemos melhorar o reconhecimento de uma imagem. Neste trabalho, foi realizado Realce de uma impressão digital em segmentos de 64x64 por Algoritmos Genéticos. 1.2 Algoritmos Genéticos Algoritmos Genéticos têm sido utilizados para resolução de problemas desde o começo dos anos de 197. Um grande passo para a adoção desta poderosa ferramenta foi dado a partir da introdução dos Fundamentos Matemáticos por John Holland. Os Algoritmos Genéticos se baseiam nos mecanismos da genética para chegar a uma solução ótima, sendo estes o crossover e a mutação entre outros. Considerando
Technical Notes in Computational Intelligence, ICA, PUC-Rio 3 que na genética tratamos a evolução de seres ou indivíduos como uma seleção natural do ambiente, cria-se uma função de avaliação que terá o intuito de melhorar cada vez mais o desempenho da população corrente. Assim sendo, tendo uma população inicial, colocaria esta a prova de uma função de avaliação. Os n melhores sobrevivem e vão cruzar com os descendentes desta geração na geração seguinte ou sofrer mutação (os sobreviventes e os descendentes). Isto levará a uma melhoria contínua até que se tenha uma população aonde os indivíduos se aproximam de uma solução que pode ser lucrativa para o problema da qual extraímos o melhor, que é o melhor indivíduo que já existiu. Para que AGs convirjam, é necessário fazer ajustes em parâmetros que regulam a diversidade desta população, pois aonde há diversidade, há intercâmbio facilitando o surgimento de outras soluções (indivíduos) que podem ser melhores do que as já existentes. 1.2.1 Cromossoma O cromossoma é o indivíduo da população e uma das soluções propostas pelo AG para o problema. Este será avaliado e preservado se atingir uma posição bem colocada entre os demais cromossomas. Por ser a solução, tem que ter boa representatividade do problema como solução proposta, e como catalizador do algoritmo genético na busca por melhores soluções. Neste trabalho, o cromossoma foi implementado binariamente de forma que cada ou 1 sejam os genes. 1.2.2 Crossover O Crossover é um operador de diversidade. O Crossover utilizado neste trabalho será o crossover de 1 ponto: (1)Sorteio de taxa de crossover Capture 2 cromossomas Sorteie ponto de corte Troque pedaços de mesmo tamanho entre os comossomas Vá para o próximo par Vá para (1). O ponto de corte é onde se dará a quebra do cromossoma. Esta quebra se dará de par em par como exemplificado acima. 1.2.3 Mutação A mutação tem um poder mais destrutivo que o crossover de bons padrões de soluções viáveis, por isso, deve-se utilizar em doses pequenas. A mutação também possui uma taxa de ocorrência, que poderá ser disparada a cada gene rastreado pelo
Technical Notes in Computational Intelligence, ICA, PUC-Rio 4 AG. No caso do cromossoma ser binário, pode se sortear a cada gene (bit) se haverá a mutação, e se positivo, troca-se o valor binário corrente. 2 Descrição do Problema O problema consiste em melhorar a visualização dos cumes e vales de uma impressão digital. Para isto o AG deve, para cada linha "scaneada" achar os melhores pontos de segmentação da imagem para separação de trechos pretos de brancos (após um trecho preto vem um branco, ou vice-versa). Para avaliar a solução, será utilizada a correlação entre linha estimada e a linha corrente da imagem (a linha estimada será um cromossoma). r = I 1 i= I 1 i= [ y( i) y ] yˆ ( i) [ yˆ ] 2 I 1 [ y( i) y ] yˆ ( i) 2 [ yˆ ] i= (1) Onde: y = 1 1 I I i= y ( i) (2) e y ˆ 1 = I I 1 i= yˆ ( i) (3) Aonde y é a curva que define a variação em tons de cinza e ŷ a curva discreta que representa os segmentos como branco ou preto (1 ou ) como na figura:
Technical Notes in Computational Intelligence, ICA, PUC-Rio 5 Fig. 2. Variação dos tons de cinza (y) e curva de preto e branco (ŷ) em uma linha scaneada de uma impressão digital. 3 Experimentos Nesta seção será descrito os 2 tipos de experimentos realizados e na próxima seção será feita uma comparação entre estes. 3.1 Experimento 1 3.1.1 Codificação Segundo o professor Abutaleb em [1] cada largura scaneada que faça parte de um cume ou um vale que tenha inclinação de ± 45º, terá no mínimo 2 pixels de largura e no máximo 6. Para cada imagem digital, foram utilizados segmentos de 64x64 pixels, sendo assim, há um algoritmo genético para cada linha que determinará os pontos de corte da linha que separam trechos pretos de brancos. Sendo 2 pixels no mínimo e 6 no máximo para largura de cada trecho, foi tentado a modelagem de um cromossoma de 187 bits. Se cada corte na linha scaneada, pode ter uma posicao que varia de 1 a 63 (tamanho da linha - 1), então, para cada posição, serão dimensionados 6 bits (CEIL(log 2 (tamanho linha)), aonde CEIL é arredondamento para cima) e como serão possíveis no máximo 31 cortes (se tiver 2 pixels de largura), teremos 31x6 = 186. Como após cada trecho preto vem um branco ou vice-versa, precisa-se ter apenas uma cor inicial da linha no cromossoma, ou seja, o cromossoma terá 187 bits. 3.1.2 Decodificação Para Decodificar o cromossoma, serão consideradas as posições de cortes que variam de 1 a 63. A ocorrência de posições de cortes repetidas devem ser distintas. 3.1.3 Resultados Foi obtida correlação relativamente baixa de.59273:
Technical Notes in Computational Intelligence, ICA, PUC-Rio 6 Fig. 3. Imagem gerada pelo AG e imagem original.59273. respectivamente com correlação de Para este resultado ocorrer foi necessário rodar o AG com 5 indivíduos por geração durante 1 gerações. Isto se explica pelo fato de o cromossoma de 187 bits não cobrir todo o espaço de busca possível. Se tivermos 6 bits para cada corte, um tamanho que gere uma linha com probabilidade alta de não conter segmentos com repetição, e se encaixe o melhor possível na linha da imagem original, seria 31!*2 6 o que torna uma implementação pouco viável. Por isso, deve-se aumentar as chances de diversos pontos de corte ocorrerem aumentando-se a população. 3.2 Experimento 2 O Experimento 2 já parte do princípio da diminuição do segmento realçado, haja visto que 64x64 é oneroso computacionalmente, além de exigir um espaço de busca que para dar resultados ótimos, deveria ter um cromossomo com muito mais casas do que foi planejado. Neste Experimento, o tamanho da linha foi reduzido de 64 pixels para 16 pixels. Com isso, como foi visto em 3.1.3, as chances de haver cortes coincidentes com a imagem original é maior devido à diminuição do espaço de busca. Neste Experimento 2, o tamanho da população é de 1 por geração com 1 gerações. 3.2.1 Codificação Para o cromossoma que busca em 16 trechos foi dimensionado como CEIL(log 2 (tamanho linha))x(tamanho_linha - 1). Desta vez foi desconsiderado o fato de poder ser 2 pixels o mínimo de largura, com a intenção de aumentar a probabilidade de diversificação de cortes. 3.2.2 Decodificação A decodificação é feita da mesma maneira do Experimanto 1.
Technical Notes in Computational Intelligence, ICA, PUC-Rio 7 3.2.3 Resultados Todos os 4 segmentos de 16x64 testados tiveram correlação maior que.7, sendo a correlação final do segmento 64x64 de.7211 conforme figura abaixo: Fig. 4. Resultado visual do experimento2. Tempo de processamento muito menor para os 4 segmentos de 64x16 do que o experimento 1 com 5 inidvíduos processados para cada AG. 4 Conclusão e Experimentos Futuros O Experimento 2 mostrou-se melhor que o Experimento 1 devido a diminuição do espaço de busca do problema tornando o cromossoma mais representativo. Ainda poderia se diminuir mais ainda o espaço de busca, mas corre-se o risco de encontrarse segmentos de pixels com tons de cinza repetidos por todo o tamanho do da linha, e incorrermos no erro de divisão por zero o que daria indefinição ou infinito levando o AG a se perder na melhor solução. Ainda dentro da comparação com outros métodos, a busca aleatória não conseguiu "vencer" os AGs do Experimento 1 especialmente no AG que teve pior correlação. Olhando para o Experimento 1 aonde tivemos o pior AG na linha 1 com correlação de.431, tivemos na busca aleatória para esta linha, a melhor correlação atingida de.4294. Para a melhor linha que foi a 58, tivemos correlação.7361 para o AG e para a busca aleatória.5595, ou seja, a busca aleatória conseguiu ser pior do que um AG do pior experimento (Experimento 1) para 5 rodadas. Dimniuindo-se o espaço de busca, aumenta-se as chances de se obter soluções melhores, diminuindo-se o tempo de processamento e o "swap" de disco. Para um possível experimento futuro, pretende-se investigar mais a ligação de processamento de imagens com Algoritmos Genéticos em controle de qualidade visual para industrias.
Technical Notes in Computational Intelligence, ICA, PUC-Rio 8 Referências [1] Abutaleb S., Ahmed and Kamel M., A Genetic Algorithm for the Estimation of Ridges in Fingerprint. [2] Pacheco, Marco Aurélio C., Notas de Aula de 22 em http://www.ica.ele.puc-rio.br [3] Feitosa, Raul Queiroz, Notas de Aula de 22 e Transparências em http://www.ele.pucrio.br/~visao/22.2 [4] Gonzales, Rafael C., Digital image processing - Addison-Wesley Publishing Company, Inc., 1992