Anais do 12 O Encontro de Iniciação Científica e Pós-Graduação do ITA XII ENCITA / 2006 Instituto Tecnológico de Aeronáutica São José dos Campos SP Brasil Outubro 16 a 19 2006 IMPLEMENTAÇÃO DE ALGORITMO PARA IDENTIFICAÇÃO DE IMPRESSÕES DIGITAIS Alexandre Magnago Conceição Instituto Tecnológico de Aeronáutica - ITA/CTA 12228-900 São José dos Campos São Paulo Brasil Bolsista PIBIC-CNPq Correio eletrônico: alemgc@yahoo.com.br Elder Moreira Hemerly ITA-IEE-IEES Praça Mal. Eduardo Gomes 50 Vila das Acácias São José dos Campos-SP Correio eletrônico: hemerly@ita.br Resumo. Impressões digitais são uma maneira de reconhecer a identidade de uma pessoa com alto grau de fidelidade. Esse artigo formula um algoritmo baseado no método estatístico para identificação de impressões digitais. O objetivo é calcular o grau de similaridade entre uma impressão digital teste e outra presente em um banco de dados. O algoritmo é desenvolvido para ser invariante às mais comuns distorções ao se obter a imagem de uma impressão digital mais especificamente a rotação e translação. O programa final pode ser executado com rapidez em um PC comum com diversas aplicações. Palavras chave: impressões digitais autenticação processamento de imagens. 1. Introdução Identificar a verdadeira identidade de pessoas de forma rápida e eficiente é bastante útil para a humanidade. O uso de impressões digitais devido a sua imutabilidade no decorrer do tempo e unicidade foi e é largamente usado por sua confiabilidade. Sua implementação todavia era lenta e o advento dos computadores agilizou bastante esse processo que é agora usado tanto em algumas repartições governamentais quanto em empresas particulares que necessitam de maior segurança. Para o uso desse meio de identificação de forma rápida é necessário o desenvolvimento de um algoritmo computacional que possa simular o modo como o especialista identifica as impressões digitais. Esse é o propósito desse trabalho: o desenvolvimento e a implementação de um algoritmo que possa de forma rápida e eficiente identificar pessoas previamente cadastradas em um banco de dados. Existem diversos métodos de autenticação de impressões digitais. O foco desse trabalho reside naquele proposto por Wahab Chin e Tan [2] que é denominado método estatístico que é uma adaptação do método proposto por Hrechak e McHugh [1] o método estrutural. A escolha do primeiro método é justificada pela sua rapidez apesar de suportar um banco de dados menor que a do método estrutural. A autenticação de uma impressão digital foi dividida em duas partes: Na primeira são extraídas as características principais de uma identidade (etapa de image processing ). O resultado é uma matriz que contém tanto a localização quanto o tipo das características da identidade estudada Na segunda duas impressões digitais serão estudadas uma presente num banco de dados e outra chamada de teste. O intuito é saber se a impressão digital teste é similar àquela presente no banco de dados. O algoritmo retorna o grau de similaridade entre as duas impressões digitais. Para aceitar uma pessoa como sendo cadastrada no banco de dados basta estipular-se um grau de similaridade mínimo que depende do usuário final do programa. 2. Descrição do algoritmo O algoritmo resultante no final desse trabalho deve ser capaz de conseguir decidir se a digital de uma pessoa possui determinado grau de similaridade com uma identidade que consta de um banco de dados. O grande problema no processo de autenticação é que a digital quando tomada pela segunda vez sofre deformações devido à rotação translação e a pressão do dedo sob o sensor. O algoritmo proposto por Wahab Chin e Tan [2] é em parte invariante às deformações que normalmente ocorrem na obtenção da imagem. Existem vários tipos especiais de padrões na impressão digital. Tais padrões serão chamados de características (Fig. 1) que podem ser de diversos tipos. As mais comuns e aquelas que serão estudadas são a bifurcação (duas linhas que se unem) e a ilha (uma pequena linha com começo e fim próximos). A entrada desse algoritmo é uma matriz que contém as posições de tais características e seu tipo obtidas na primeira fase da autenticação. Para um especialista o que define a unicidade de uma impressão digital são as posições relativas entre as características que a compõe ou seja tanto o ângulo entre elas quanto a distância. A estratégia é considerar cada
Anais do XII ENCITA 2006 ITA Outubro 16-19 2006 característica juntamente com seu entorno. Dessa forma em um primeiro estágio de matching são utilizadas como características de entorno apenas as cinco características mais próximas e que estão dentro de um circulo de raio prédeterminado e em um segundo estágio são utilizadas características especiais definidas no primeiro estágio todavia em toda extensão da impressão digital. Figura 1. Exemplo típico de características em impressão digital. Após saber quais são as características do entorno pode-se determinar a distância entre essas e a característica central e o ângulo relativo entre àquelas do entorno. Esse processo deve ser feito para cada característica da impressão digital. Dessa formaestabelece-se um conceito primário de unicidade local que é expandido posteriormente para a unicidade global da impressão digital. A Figura 2 mostra um exemplo de característica com seu entorno e exemplifica os ângulos relativos e as distâncias. Figura 2. Exemplo de característica local. O processo é dividido em dois estágios para torná-lo mais rápido: 2.1. Primeiro estágio Nessa etapa é definido um vetor vetor 1 que contém: o tipo da característica central os tipos de cada características no entorno suas distancias e os ângulos relativos. Tal vetor deve ter portanto 16 coordenadas. Esse vetor é denominado característica local pois define uma característica em função de seu entorno. A primeira
Anais do XII ENCITA 2006 ITA Outubro 16-19 2006 coordenada do vetor corresponde ao tipo da característica central. Daí em diante para cada grupo de três coordenadas (sendo no máximo cinco grupos de três totalizando 16 coordenadas) são atribuídos respectivamente os valores: tipo de coordenada vizinha sua distância à característica central e seu ângulo relativo com a característica anterior (o sentido de rotação considerado é o anti-horário). A Figura 3 exemplifica esse processo. Figura 3. Representação vetorial da característica local. Serão definidos tantos vetores deste tipo quanto forem as características encontradas na impressão digital na fase de image processing. Esses vetores ajudam a melhorar a velocidade do algoritmo já que para as imagens do banco de dados essa parte do processamento será feita apenas uma vez restando realizar o processo para a imagem teste somente. O critério de comparação entre duas características é feito com bases nos vetores definidos acima comparando-se cada característica local da impressão digital base definida pelo seu vetor com todos os outros vetores da imagem teste. A comparação desses vetores é feita primeiramente se verificando se a primeira coordenada é a mesma e em caso positivo se comparam os vetores em grupos de três coordenadas (cada grupo de três coordenadas define uma característica vizinha). Para cada grupo encontrado na imagem teste que é dentro de uma pequena margem de erro igual àquele que consta no banco de dados também definido por um vetor soma-se um ao grau de similaridade da característica local grau esse que varia de zero até cinco. No final desse estágio a cada característica tanto na impressão digital teste quanto na base é atribuído um grau de similaridade. Aquelas que possuem grau de no mínimo 1 serão marcadas e usadas no próximo estágio. 2.2. Segundo estágio Aqui o conceito de característica local é usado novamente mas agora sob o nome de característica global respeitando os critérios de se achar os tipos das características vizinhas suas distâncias e seus ângulos relativos. A diferença é que nessa fase não há restrições quanto à distância máxima da característica vizinha ou quanto ao número máximo de características a serem usadas como de entorno. A característica central desse estágio a ser escolhida é um elemento importante pois ela define o centro da impressão digital base de toda a comparação nessa parte. Portanto se escolhe para ser a característica central aquela que tem maior grau de similaridade (obtido no 1º estágio) na impressão digital contida no banco de dados e sua similar naquela a ser testada. As características vizinhas serão aquelas que foram marcadas no 1º estágio. Defini-se um outro vetor vetor 2 (define a característica global) similar ao vetor 1 que contém as informações das características na vizinhança todavia seu número de coordenadas não é previamente definido mas depende do número de características marcadas no primeiro estágio. O vetor 2 possui na sua primeira coordenada o tipo de característica central e nos grupos de três que se seguem (tantos grupos quantas forem as características marcadas menos um) guardam-se respectivamente o tipo da característica a distância à característica central e o ângulo relativo.
Anais do XII ENCITA 2006 ITA Outubro 16-19 2006 3. Implementação do algoritmo Partindo do algoritmo desenvolvido se pode implementá-lo para o uso em computadores. Utilizou-se a linguagem de programação C. Na Figura 4 é mostrado o esquema em diagrama de blocos para o algoritmo desenvolvido de modo que esse esquema foi utilizado como base para a criação do programa de computador. Estão representadas nos blocos as etapas importantes do processo geral. Figura 4. Diagrama de blocos do algoritmo. Como já foi dito anteriormente o programa deve ler uma matriz de entrada para a impressão digital que consta no banco de dados (denominada de matriz base) e outra para a impressão digital a ser testada (denominada de matriz teste). Essas matrizes (m x n) ficam armazenadas num arquivo de texto e seu conteúdo é primeiramente os valores do número de linhas (m) e de colunas (n) em seguida a matriz apresenta os valores zero um ou dois que correspondem respectivamente a ausência dos tipos estudados de características aquelas que são do tipo um e as que são do tipo dois. A interpretação dessa matriz é simples: a característica representada pelo número 1 ou 2 na linha i e coluna j da matriz encontra-se na posição i j em um plano cartesiano Dessa forma está bem representada a impressão digital e a posição de suas características. O programa foi subdividido em diversas funções de forma que sua construção se tornou mais simples onde cada função é responsável por uma parte do processo geral. As funções foram feitas para reproduzir os blocos mostrados na Fig. 4. 3.1. Funções de medidas Foram desenvolvidas duas funções de medidas: uma retorna o valor do ângulo entre duas características que são os parâmetros de entrada e o eixo horizontal positivo. A outra retorna as distâncias entre duas características que são os parâmetros de entrada. Utilizando-se essas funções é possível desenvolver todas as outras. 3.2. Função que determina as características locais e globais A próxima função a ser desenvolvida é responsável por determinar o vetor da característica local. Para tal basta para cada característica da matriz estudada analisar a distância dela à todas as outras da mesma matriz; tomam-se aquelas cinco mais próximas usando a função que mede distâncias que se encontram dentro de um círculo de raio prédeterminado (esse raio é discutido com mais detalhes no tópico de testes do programa final). Tomando-se as distâncias entre a característica central e as vizinhas escolhidas além dos ângulos com a horizontal das características vizinhas se pode então organizar as características em ordem crescente de ângulos bastando em seguida se diminuir os ângulos entre elas para se formar os ângulos relativos. Faz-se assim um vetor da característica local (vetor 1). Para se formar a característica global (vetor 2) basta se proceder da mesma forma notando que não existirão restrições quanto à distância máxima até a característica central (definida pelo maior grau de comparação no primeiro estágio) nem quanto ao número de características a serem usadas (que será o número de características marcadas no primeiro estágio menos um). 3.3. Funções de comparação entre vetores A função de comparação entre vetores depende de dois fatores que são definidos de acordo com a aplicação mais precisamente os erros máximos permitido entre as distâncias e entre ângulos. Como os vetores do tipo um e do tipo dois diferem apenas pelo número de coordenadas as funções usadas para comparar tais vetores são bastante similares. Dada que a estratégia é armazenar as características em função dos ângulos relativos se duas características vizinhas são iguais então em um caso extremo um vetor é igual ao outro se aplicando uma rotação como mostra a Fig. 5 bastando rotacionar o vetor (no máximo tantas vezes quantos forem o número de características vizinhas) e se subtraindo um vetor do outro o resultado deve ser um vetor com todas as coordenadas próximas de zero. O grau de
Anais do XII ENCITA 2006 ITA Outubro 16-19 2006 similaridade obtido na comparação entre dois vetores é exatamente o máximo de números de grupos cujas três coordenas são nulas em uma dada rotação quando se considera o vetor resultante da subtração. Figura 5. Exemplo de um vetor 1 rotacionado. 4. Teste do programa Para se testar o programa foram construídos três tipos de matrizes duas 100 x 100 (uma base e uma teste) próximo do caso real mas é complicado representá-las nesse relatório duas 50 x 50 um caso simulado mas que permite visualizar de maneira fácil o comportamento do programa e uma 8 x 7 também simulado. Alguns parâmetros necessários para se executar o programa devem ser adaptados quando se muda o tamanho de uma matriz. Primeiramente se fez o teste usando uma matriz 100 x 100. O raio do círculo para as características locais é de 25 (pixels) o erro máximo na distância considerado foi 6 pixels e o erro do ângulo foi de 5. A partir dessas constantes se supôs uma matriz onde foram colocadas 27 características. Nesse caso o programa apresentou um grau de similaridade de 24 quando se moveram ligeiramente as características da matriz teste em torno de seu ponto original contra um máximo de 27 quando a matriz teste é a mesma da base o que comprova o bom funcionamento do programa nesse caso No caso das matrizes 50 x 50 representadas na Fig. 8 os parâmetros foram reajustados para um raio de 18 pixels e um erro máximo na distância de 3 pixels e o erro no ângulo continua de 5. Quando se faz a matriz teste ser igual à matriz base obtém-se um grau de similaridade de 16 que é o número de características ou seja o grau máximo. Ao se executar o programa com a matriz teste representada na Fig. 8 o grau de similaridade obtido foi de 16 satisfatoriamente próximo de 18. As matrizes 8 x 7 mostram o programa sendo invariante a uma rotação de 90 somado a uma translação na matriz teste. Tais matrizes estão representadas na Fig. 7. O resultado retornado pelo programa é 6 um a menos do máximo possível. O raio foi definido como 6 pixels o erro da distância de 1 pixel e o erro do ângulo de 2. Figura 7. Matrizes 8 x 7.
Anais do XII ENCITA 2006 ITA Outubro 16-19 2006 Figura 8. Matrizes 50 x 50. Nota-se que o programa consegue interpretar as matrizes em casos extremos como a rotação de 90 a translação e o espalhamento randômico das características que corresponde a um caso extremo e portanto pouco provável na realidade mostrando que o programa é bem confiável. 3. Agradecimentos Agradeço à minha família pelas horas ao telefone em que me davam forças para continuar essa jornada. Ao professor Elder Hemerly agradeço por ter depositado em mim sua confiança e pela oportunidade de me desenvolver tanto pessoalmente quanto profissionalmente além de me aconselhar sabiamente quanto às atitudes a serem tomadas com relação à faculdade. Ao PIBIC e ao CNPq agradeço por tornar isso tudo possível. 5. Referências [1] HRECHAK A.K. and MCHUGH J.A. Automated Fingerprint Recognition Using Structural Matching Pattern Recognition 1990 23 (8) pp. 893-904. [2] WAHAB A. CHIN S.H. and TAN E.C. Novel Approach to Automated Fingerprint Recognition IEE Proc. Vision Image Signal Process 1998 145 (3) pp 160-166 New York McGraw-Hill 1953.