9
Sistema de Reconhecimento de Impressões Digitais Álvaro N. Prestes Relatório Técnico, Introdução ao Processamento de Imagens Programa de Engenharia de Sistemas e Computação - PESC/COPPE Universidade Federal do Rio de Janeiro, Brasil, 2011. [email protected] Resumo Este trabalho apresenta o desenvolvimento de um sistema pra o reconhecimento de impressões digitais utilizando o Sistema de Classificação de Henry combinado com os Detalhes de Galton. Foram implementados e comparados algoritmos de borramento, aguçamento, binarização e afinamento. Para a detecção de minúcias foi utilizado o método Crossing Number com pós-processamento para eliminação de falsas minúcias. O método utilizado para verificar a equivalência entre duas impressões digitais foi o da menor distância euclidiana. O algoritmo obteve bons resultados nos testes utilizando a base da Fingerprint Verification Conpetition, mas diversas melhorias podem ser introduzidas. 1. Introdução Biometria pode ser definida como a ciência que estuda as medidas de características físicas ou comportamentais de indivíduos. A análise matemática e/ou estatística dessas características tem como finalidade a identificação única de um indivíduo. Impressões digitais, íris, face, sons dos passos são exemplos de características biométricas para as quais sistemas automáticos de identificação tem sido desenvolvidos sendo a análise de impressões digitais o método mais difundido por possuírem características peculiares tais como: identificar unicamente um indivíduo – exceto nos raros casos como os de gêmeos idênticos (compartilham até mesmo o DNA), não mudar ao longo da vida – desde o nascimento, as características papilares permanecem as mesmas, exceto em casos deformação causadas por ferimentos ou produtos químicos, por exemplo. melhor desempenho computacional – em comparação com as características biométricas, as impressões digitais apresentam um menor custo computacional Qualquer sistema biométrico deve prover, pelo menos, as funcionalidades de verificação, na qual deve ser possível, dadas duas amostras, realizar a comparação destas obtendo uma medida de semelhança (comparação 1:1); e identificação, na qual, dada uma amostra, deve-se localizar, numa base de amostras, uma que seja correspondente à amostra de entrada. Neste caso, a comparação é dita 1:n e, ao invés de se obter uma amostra, pode-se ter uma lista das amostras que possuam semelhança acima de um limiar α (Castro, 2008). Ao longo de anos, métodos de classificação tem sido propostos com a finalidade de reduzir o número de amostras a serem comparadas no processo de identificação. Francis Galton foi pioneiro no estudo das características de impressões digitais tendo identificado características que considerou únicas e, combinadas, permitem a identificação de um indivíduo a partir de sua impressão digital.

Sistema de Reconhecimento de Impress es Digitaismarroquim/courses/cos756/trabalhos/2011/alvaro-prestes/alvaro...A linguagem de programação utilizada foi a C/C++ na IDE CodeBlocks

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Sistema de Reconhecimento de Impressões Digitais

Álvaro N. Prestes Relatório Técnico, Introdução ao Processamento de Imagens

Programa de Engenharia de Sistemas e Computação - PESC/COPPE Universidade Federal do Rio de Janeiro, Brasil, 2011.

[email protected]

Resumo

Este trabalho apresenta o desenvolvimento de um sistema pra o reconhecimento de impressões digitais utilizando o Sistema de Classificação de Henry combinado com os Detalhes de Galton. Foram implementados e comparados algoritmos de borramento, aguçamento, binarização e afinamento. Para a detecção de minúcias foi utilizado o método Crossing Number com pós-processamento para eliminação de falsas minúcias. O método utilizado para verificar a equivalência entre duas impressões digitais foi o da menor distância euclidiana. O algoritmo obteve bons resultados nos testes utilizando a base da Fingerprint Verification Conpetition, mas diversas melhorias podem ser introduzidas.

1. Introdução

Biometria pode ser definida como a ciência que estuda as medidas de características físicas ou comportamentais de indivíduos. A análise matemática e/ou estatística dessas características tem como finalidade a identificação única de um indivíduo. Impressões digitais, íris, face, sons dos passos são exemplos de características biométricas para as quais sistemas automáticos de identificação tem sido desenvolvidos sendo a análise de impressões digitais o método mais difundido por possuírem características peculiares tais como:

• identificar unicamente um indivíduo – exceto nos raros casos como os de gêmeos idênticos (compartilham até mesmo o DNA),

• não mudar ao longo da vida – desde o nascimento, as características papilares permanecem as mesmas, exceto em casos deformação causadas por ferimentos ou produtos químicos, por exemplo.

• melhor desempenho computacional – em comparação com as características biométricas, as impressões digitais apresentam um menor custo computacional

Qualquer sistema biométrico deve prover, pelo menos, as funcionalidades de verificação, na qual deve ser possível, dadas duas amostras, realizar a comparação destas obtendo uma medida de semelhança (comparação 1:1); e identificação, na qual, dada uma amostra, deve-se localizar, numa base de amostras, uma que seja correspondente à amostra de entrada. Neste caso, a comparação é dita 1:n e, ao invés de se obter uma amostra, pode-se ter uma lista das amostras que possuam semelhança acima de um limiar α (Castro, 2008).

Ao longo de anos, métodos de classificação tem sido propostos com a finalidade de reduzir o número de amostras a serem comparadas no processo de identificação. Francis Galton foi pioneiro no estudo das características de impressões digitais tendo identificado características que considerou únicas e, combinadas, permitem a identificação de um indivíduo a partir de sua impressão digital.

Figura 1: Exemplo de minúcias (Galton, 1982)

Baseado no trabalho iniciado por Galton, Edward Richard Henry apresentou um modelo que faz a distribuição de qualquer impressão digital em cinco classes de acordo com sua configuração geométrica, são elas:

• Arco Plano: linhas dactilares atravessam de um lado para outro sem formar o delta. • Arco Angular: apresentam acentuada elevação das linhas no núcleo, em forma de tenda.

Pode apresentar um delta, mas sem linha ou fragmento de linha, entre o delta e o núcleo.

• Presilha Interna: apresentam um delta à direita do observador e as linhas datilares do núcleo levemente curvadas para a esquerda.

• Presilha Externa: apresentam um delta à esquerda do observador e as linhas datilares do núcleo curvadas para a direita.

• Verticilo: apresentam dois deltas, sendo um à direita e outro à esquerda e as linhas nucleares ficam encerradas entre os dois deltas.

A ideia de Henry era identificar, primeiramente, uma característica global e então fazer o mapeamento das minúcias propostas por Galton. Dessa forma, o número de amostras a serem consideradas num processo de identificação é reduzido consideravelmente, embora as classes não possuam uma distribuição uniforme (Moyaer & Fu, 1975). O Sistema de Henry é o modelo de classificação mais utilizado até hoje (Henry, 1905).

Figura 2: Exemplo das classes propostas por Henry

Atualmente, a maioria dos sistemas biométricos tem considerado a correspondência de pelo menos doze minúcias para que duas impressões digitais sejam consideradas equivalentes. O FBI adotou o número mínimo de 20 correspondências. Estudos tem mostrado que, em média, em uma boa impressão digital são encontradas de 50 a 100 minúcias entre cristas finais e bifurcações (Costa, 2001).

O tópico seguinte descreve as etapas do desenvolvimento do sistema, os algoritmos e estratégias utilizadas, os experimentos realizados e resultados obtidos. Ao final são apresentadas algumas considerações e algumas ideias de trabalhos futuros que poderiam melhorar e contribuir com aqui apresentado.

2. Desenvolvimento do Sistema

A proposta deste trabalho é desenvolver um sistema que permita a identificação de um individuo a partir de suas impressões digitais utilizando como estratégia de classificação o Sistema de Henry e as minúcias Galton.

Para o desenvolvimento deste trabalho foi utilizada uma estação de trabalho com processador Intel Core i3, sistema operacional Windows 7 64 bits com 4GB de memória RAM. A linguagem de programação utilizada foi a C/C++ na IDE CodeBlocks. Para auxiliar nos procedimentos básicos de manipulação de imagens foi utilizada a API OpenCV 2.2 (versão 32bits) (OpenCV, 2011).

Para a realização dos experimentos e ajustes dos parâmetros foram utilizadas duas base de impressões digitais. A primeira delas é a DB1 que é utilizada na competição mundial Fingerprint Verification Competition (FVC, 2004) cujas amostras foram colhidas por um sensor ótico CrossMatch V300, possuem dimensão 640x480 e resolução de 500 dpi. A segunda base utilizada é composta de 100 amostras colhidas em papel e posteriormente digitalizadas. As amostras desta base possuem resolução e dimensões variadas e muitas estão seriamente danificadas devido a falhas no processo de coleta.

Diversos sistemas biométricos reportados na literatura consideram a criação e o armazenamento de um template que representa uma impressão digital já computada, mas não permite a reconstrução impressão (Faria, 2005). Além disso, um template proporciona ganho computacional por possuir apenas informações relevantes num formato adequado ao processo computacional. A figura abaixo ilustra o processo de aquisição/catalogação de uma impressão digital.

Figura 3: processo de aquisição

Neste trabalho, embora não se tenha utilizado um Sistema de Gerenciamento de Banco de Dados, adotou-se o formato XML para o armazenamento devido a natureza semi-estruturada dos dados, ou seja, após extraídas as minúcias, as informações são armazenadas num arquivo XML (ou em um SGBD com suporte a XML).

Os processos de identificação e verificação são ilustrados na figura abaixo.

Figura 4: processos de identificação e verificação

O processo de extração de minúcias é detalhado na figura abaixo e, inicialmente, não possuía as etapas de corte e equalização de tons de cinza. O corte foi introduzido com o

Imagem

(entrada)

Extrair

minúciasCodificar

Criar

TemplateArmazenar

Imagem

(entrada)Extrair Minúcias Codificar Criar Template

Comparar com

templates

armazenados

% semelhança

(saída)

Imagens A e B

(entrada)

Extrair

MinúciasCodificar

Criar

Templates

Comparar

templates A e B

% semelhança

(saída)

propósito de eliminar pixels não significativos da imagem de entrada como, por exemplo, bordas completamente brancas.

Figura 5: processo de extração de minúcias

A equalização dos tons de cinza se fez necessária pelo fato de existir grandes variações de iluminação em uma amostra e outra. Essa diferença de intensidade comprometia a binarização que é realizada com base num limiar. Com os tons equalizados, foi possível ajustar um valor de limiar que pode ser aplicado a qualquer amostra independente da variação da intensidade.

Figura 6: (a) imagem original (b) imagem de corte

Para a tarefa de borramento, foram implementados os filtros da mediana 3x3 e 5x5 que consiste em percorrer a imagem, substituindo cada pixel pelo seu vizinho mediano. Foi experimentado também o filtro gaussiano provido pela OpenCV. Nos testes realizados, o filtro na mediana 3x3 apresentou os resultados mais satisfatórios.

Para o aguçamento foram implementadas as máscaras proposta por (Gonzalez & Woods, 2002), a máscara Laplaciana e uma máscara mediana 3x3.

Figura 7:Máscaras para aguçamento

Imagem

(entrada)Cortar Equalizar Borrar Aguçar

BinarizarAfinarIdentificar

minúciasLimpar

Minúcias

Verdadeiras

(saída)

Para a binarização foi implementado o algoritmo proposto por (Otsu, 1979) sendo este o escolhido após a comparação com resultados obtidos pelo algoritmo de binarização de Gabor (Gabor, 1946).

Figura 8: Aplicação dos filtros. (a) corte, (b) equalizada, (c) borrada, (d) aguçada

O afinamento da imagem depois de binarizada foi realizado pelo algoritmo proposto por Holt (Holt, Stewart, Clint, & Perrott, 1987) a partir do trabalho de (Zhang & Suen, 1984) seguido do método para remoção de serrilhados Staircase Removal. Além deste, foi experimentado também o algoritmo proposto por Cychosz (Cychosz, 1994).

Depois de afinada a imagem, segue-se a etapa de identificação das minúcias que foi realizado pela aplicação do método chamado Crossing Number (Tamura, 1978). Este método, basicamente realiza um somatório dos 8-vizinhos (1 se o pixel é preto e 0 caso contrário) de cada pixel preto presente na imagem. A equação abaixo fornece o valor desse somatório.

�� �12�|� ���|

A tabela abaixo apresenta uma interpretação para os valores do método. É importante destacar que para o sistema, serão utilizadas apenas as cristas finais e as bifurcadas.

Crossing Number Tipo de minúcia 0 Ponto isolado 1 Ponto final 2 Ponto contínuo 3 Ponto bifurcado 4 Ponto cruzamento

Tabela 1: Propriedades do método Crossing Number.

O método Crossing Number por si só não é eficiente por realizar uma análise local retornando muitas falsas minúcias. Logo, se faz necessário um método para a eliminação dessas falsas minúcias. Para esta tarefa, foi utilizada a estratégia proposta por (Tico & Kuosmanen, 2000) que, basicamente, utiliza-se de uma janela de tamanho fixo e, partindo do pixel central (a minúcia) segue, até a borda, assinalando os pixels pretos com os valores 1, 2 ou 3. Ao final, as transições são computadas e assinaladas como verdadeira ou falsa. Para cristas finais, o algoritmo apenas segue os pixels pretos até a borda e, caso seja atingida, a minúcia é verdadeira. Depois de testes, os autores do método sugeriram uma janela de 23x23. É importante destacar que uma janela muito pequena pode gerar diversos falsos positivos e uma janela muito grande,

falsos negativos. Testes realizados mostram que aproximadamente 70% das minúcias detectadas são falsas.

Figura 9: falsas minúcias. (a) lago, (b) espora (Faria, 2005)

A figura abaixo ilustra os resultados obtidos após as etapas de binarização, afinamento e detecção de minúcias.

Figura 10: Deteção de minúcias

Observa-se na figura acima, que devido ao “fraco” contraste, a imagem depois de binarizada não representa fielmente as linhas da impressão digital original. Além disso, a janela 23x23 não foi suficiente para identificar que algumas bifurcações formavam um lago. E ainda, nota-se no topo que uma espora foi tida como minúcia verdadeira. Contudo, dado o número de minúcias corretamente identificadas, este resultado seria suficiente para o reconhecimento.

O processo de verificação foi construído com base na posição espacial das minúcias verdadeiras. De uma forma geral, dadas duas amostras, procura-se fazer a sobreposição do mapa de minúcias verificando o número de combinações. Considerando que as amostras foram colhidas em momentos distintos, estas podem apresentar variação no posicionamento das minúcias quando comparadas uma com a outra. Por esse motivo, utilizou-se de uma janela 15x15 na qual uma minúcia pode ser considerada equivalente entre as amostras. Atentando para o fato de que mais de uma minúcia podem estar presentes nessa janela, a escolha da minúcia correspondente é feita, então, com base na menor distância euclidiana.

Figura 11: verificação das minúcias

Essa diferença no posicionamento das minúcias pode ser observado na figura acima. Neste caso, qualquer uma das minúcias presentes na imagem B poderia ser tomada como “idêntica”. No entanto, além de serem de tipos diferentes, utilizando-se da menor distância, a minúcia mais próxima será tomada e removida da lista de candidatas. Esse procedimento se repete para todas as minúcias detectadas. Obtendo-se um número de combinações satisfatórias, as amostras são consideradas equivalentes.

3. Considerações Finais

No processo de desenvolvimento da aplicação, várias dificuldades se apresentaram. A primeira delas foi a preparação do ambiente de desenvolvimento no que diz respeito à instalação da OpenCV. A documentação se apresentou confusa dificultando a localização da informação desejada. Além disso, a incompatibilidade de hardware/arquitetura impossibilitaram a utilização de alguns recursos como, por exemplo, o da webcam. E ainda, a forma como a API trata a leitura das coordenadas causou confusão, pois a coordenada x (linha/altura) se refere, ao eixo y do plano e a coordenada y (coluna/largura) ao eixo x.

Na etapa de pré-processamento, alguns filtros não produziram o resultado esperado. A equalização de tons de cinza se faz necessária, mas o método utilizado introduziu muito ruído. Além disso, o filtro de aguçamento não proporcionou um bom contraste, comprometendo a etapa de binarização.

A eficácia do algoritmo está fortemente atrelada aos parâmetros de entrada. Nesse sentido, um melhor ajuste no conjunto de parâmetros pode introduzir melhorias no sistema. De toda forma, encontrar uma configuração ótima de parâmetros para um conjunto qualquer de amostras pode ser uma tarefa árdua.

Finalmente, com os experimentos realizados, o algoritmo se mostrou bastante promissor. Para um sistema de identificação no qual todas as amostras sejam obtidas a partir de um leitor ótico de boa resolução e iluminação adequada gerando, consequentemente, amostras de boa qualidade, o algoritmo deve proporcionar resultados bastante satisfatórios.

4. Trabalhos Futuros

Sendo parte de um experimento inicial, diferentes melhorias podem ser introduzidas no sistema aqui apresentado.

Pelas características de uma impressão digital, filtros especialistas para borramento e aguçamento podem ser desenvolvidos bem como uma estratégia para um tratamento eficaz de rotação. Além disso, métodos mais inteligentes e elaborados para a realização do matching podem ser desenvolvidos e comparados como, por exemplo, abordagens heurísticas utilizando Algoritmos Genéticos ou Redes Neurais.

A realização de conjunto elaborado de testes pode identificar uma melhor configuração para o conjunto de os parâmetros e, em oposição à extração de minúcias, outras estratégias podem ser testadas, tais como a de curvas elípticas.

5. Referências Bibliográficas

Castro, T. d. (2008). Identificação de Impressões Digitais Baseado na Extração de Minúcias. Dissertação de Mestrado, Universidade Federal de Juiz de Fora.

Costa, S. M. (2001). Classificação de Verificacão de Impressões Digitais. Dissertação de Mestrado: Universidade Federal de Juiz de Fora.

Cychosz, J. M. (1994). Efficient Binary Image Thinning using Neighborhood Maps. Graphics Gems IV.

Faria, D. R. (2005). Reconhecimento de Impressões Digitais com baixo custo Computacional para um Sistema de Contro . Dissertação de Mestrado, Juiz de Fora: Universidade Federal do Paraná, Programa de Pós-graduação em Informática.

FVC, C. F. (2004). Databases. Acesso em 21 de Maio de 2011, disponível em Fingerprint Verification Competition: http://bias.csr.unibo.it/fvc2004/databases.asp

Gabor, D. (1946). Theory of Comunication. Journal IEEE, 429-459.

Galton, F. (1982). Finger Prints.

Gonzalez, R. C., & Woods, R. E. (2002). Digital Image Processing. Addison Wesley.

Henry, E. R. (1905). Classification and Uses of Fingerprints. Wyman and Sons Ltda.

Holt, C. M., Stewart, A., Clint, M., & Perrott, R. (1987). A improved parallel thinning algorithm. Communications of the ACM. vol. 30.

Moyaer, B., & Fu, K. S. (1975). A Syntactic Approach to Fingerprint Pattern Recognition - Pattern Recognition (Vol. 7).

OpenCV. (2011). Documentation. Acesso em 21 de Maio de 2011, disponível em OpenCV Wiki: http://opencv.willowgarage.com/wiki/

Otsu, N. (1979). A Threshold selection method from gray level histograms. IEEE Trans. System Man and Cybernet , (pp. 62-66).

Tamura, H. (1978). A Comparison of Line Thinning Algorithms from Digital Geometry Viewpoint. 4th Int. Jt. Conf. On Pattern Recognition. Kyoto.

Tico, M., & Kuosmanen, P. (2000). Fingerprint Image Postprocessing. Signals, Systems and Computers. Record of the Thirty-Fourth Asilomar Conference on Vol. 2, (pp. 1735-1739).

Zhang, Y., & Suen, C. (1984). A fast parallel algorithm for thinning digital patterns. Communications of the ACM, 236-239.