BioEngine SDK: Identificação Biométrica 1:N

BioEngine SDK, um case de sucesso!

Atualmente, podemos observar a expansão na utilização de aparelhos que realizam a leitura de características anatômicas de pessoas com o objetivo de identificá-las. Focando essa tecnologia, farei uma explanação do funcionamento de um leitor em específico: Leitor de Impressões Digitais. Apresentarei os tipos de identificação, prós e contras na utilização desse método e finalmente um produto que desenvolvi para resolver questões de limitações da SDK Free disponibilizada com os equipamentos de leitura digital.

Funcionamento

Para entendermos o funcionamento do equipamento, primeiramente devemos ter conhecimento do que é impressão digital. Nossos dedos, apresentam traços de elevação de pele denominados papilas, que formam desenhos únicos em cada pessoa. A análise minuciosa (pontos de minúcia) desses desenhos, se realizada em condições ideais, permitem a identificação de um indivíduo com percentual de 99,82% de exatidão.

Exemplos de minúcias de uma impressão digital

Os equipamentos de leitura digital, realizam um scaneamento em alta definição desses traços. Isso  possibilita a utilização de algoritmos para analisar a imagem coletada e identificar os “pontos de minúcia” da impressão digital. Quanto maior a quantidade de pontos, maior a segurança na identificação. Porém, existem algumas variáveis que reduzem a eficácia no processo de coleta da imagem digital. Problemas como: má circulação (idosos), papilas danificadas (trabalhadores que se expõem ao uso de produtos químicos, etc), crianças com idade inferior a 10 anos, entre outros, são responsáveis pela redução do percentual de êxito na identificação de indivíduos. Analisemos, abaixo, os tipos de identificação e, logo após, tratarei dos principais problemas existentes na identificação biométrica digital.

Identificação 1:1

Também chamada de verificação, a identificação 1:1 funciona realizando a comparação entre uma digital coletada e um template armazenado no banco de dados. A localização do registro da pessoa é feita através da comparação de outro campo, como o Nome. Após localizada, a pessoa tem sua identidade confirmada através de sua impressão digital. Vejamos o exemplo:

Modelo Verificação 1:1

Identificação 1:N

Também chamada de identificação, é o processo no qual o software identifica o registro da pessoa tendo como dado para comparação somente a imagem da impressão digital coletada no equipamento. Esse é considerado o método mais complexo de identificação, pois, o software deverá identificar pontos de minúcia de uma imagem em um banco de dados contendo todos os templates armazenados no sistema. Isso faz com que sejam consumidos maiores recursos do sistema. Vejamos um exemplo:

Modelo Identificação 1:N

Agora que temos o conhecimento básico do processo de identificação digital, vamos tratar dos erros mais comuns encontrados neste tipo de processo. Meu objetivo no post, não é me aprofundar no assunto, por isso  irei apresentar de forma superficial os conceitos que acercam os erros conhecidos como falso aceite e falsa rejeição.

Como estudamos acima, o que possibilita a identificação de indivíduos pela impressão digital são as minúcias, que são nada mais que as características do desenho formado pelas papilas. Como temos inúmeros pontos de minúcias em cada imagem digital, configuramos nosso software para trabalhar em um nível de segurança, ou seja, serão comparadas mais ou menos quantidades de pontos de acordo com o nível de segurança sendo utilizado. Quando trabalhamos com um nível de segurança baixo, estamos identificando um número reduzido de minúcias para comparação de templates, o que pode acarretar no chamado falso aceite. Esse erro ocorre quando há coincidência dos pontos de minúcias analisados entre duas impressões digitais, como o nível de segurança é baixo (poucos pontos analisados), uma pessoa pode ser identificada como outra. Por outro lado, quando aumentamos o nível de segurança do sistema, reduzimos o nível de falso aceite, porém aumentamos a ocorrência de um novo tipo de problema: a falsa rejeição. A falsa rejeição ocorre quando o sistema recusa a digital de uma pessoa mesmo estando esta devidamente cadastrada no sistema. Isso ocorre porque, como aumentamos o nível de segurança do sistema e, por consequência o número de minúcias comparadas, havendo qualquer dano no template de imagem coletado haverá falha no algoritmo que fará com que a digital informada seja recusada, implicando em uma nova tentativa.

Ambiente de nível crítico

Acima apresentei os erros mais comuns que envolvem o processo de identificação biométrica. Agora vou expor o limite da maioria das SDK’s disponibilizadas no mercado para este fim. Para utilização de identificação no modo 1:1 (verificação), não encontramos problemas e todas atendem com certa tranquilidade. Quando tratamos de identificação 1:N, nos deparamos com um limite significativo onde, ao trabalharmos com uma quantidade acima de 10.000 (dez mil) registros, há falhas na identificação, lentidão no cadastramento, travamento, entre outros inúmeros problemas. O problema se torna maior quando buscamos uma nova solução para nossa aplicação já em efetiva produção: Não há como migrar para outra SDK sem o recadastramento biométrico de todos os usuários do sistema!

Após a vivência de um cenário real, como o apresentado acima, iniciei o desenvolvimento da BioEngine SDK. Criei uma nova solução, baseada na SDK Free da NitGen, onde não há limites para identificação através de impressão digital no modo 1:N. A BioEngine é a solução definitiva para sistemas que operam em nível crítico, como terminais de auto-atendimento, identificação de pessoas em massa, entre outros em que a quantidade de templates supera os 10.000 (dez mil) cadastros.

Concluindo

Os erros apresentados acima não colocam em cheque a confiabilidade do sistema de identificação através da impressão digital, somente nos mostram a realidade do ambiente e visam alertá-los que a implementação de um ambiente como este, exige conhecimentos técnicos aguçados para que as devidas configurações sejam realizadas e um ambiente seguro e eficiente seja criado.

Fonte: Blog Carlos Eduardo Bier

Carlos Eduardo Bier

Mais artigos deste autor »

Olá, meu nome é Carlos Eduardo Bier, sou programador, analista e consultor. Atualmente, mantenho um projeto chamado GoToAnt e atuo como Gerente de Tecnologia na empresa EBTS - Empresa Brasileira de Treinamento e Simulação.

Sou especialista no desenvolvimento de aplicações Desktop e Web, sendo certificado na ferramenta Delphi.Net. Porém, devido a instabilidades comerciais da ferramenta, estou atuando fortemente no desenvolvimento de aplicações utilizando Visual Studio e a linguagem C#, voltandos a web 2.0 com Silverlight. Quanto a metodologias de desenvolvimento, procuro estar constantemente evoluindo e mesclando métodos e estratégias para atingir resultados altamente satisfatórios a meus clientes.

Curta o projeto ! :)
http://gotoant.blogspot.com.br/


3 Comentários

Fred Chevitarese
1

Opa!
Muito bom seu post!
Eu trabalho com biometria. No nosso caso, utilizamos a sdk da DigitalPersona e não temos muitos problemas com relação à identificação.
Utilizamos sempre o reconhecimento 1:1 pois como você mesmo disse, 1:N pode demorar muito e quando se fala em sistemas web, segundos são preciosos 😛
Por fim, quanto à sua sdk, ela é free? Como funciona? É bem documentada?
Haveria alguma maneira de importar os registros já cadastrados (acho que a resposta é não, mas não custa perguntar né 😛 )
Abraços!!!

André | C0D1X
2

Olá Carlos!
Interessante sua investida neste assunto. Em 2004 tive a oportunidade de desenvolver uma solução em conjunto da biometria para uma casa noturna. O que nos limitava naquele tempo realmente era a alta rotatividade e a falta de convívio das pessoas com os aparelhos biométricos (o que tornava o cadastramento demorado).
Se possível, nos informe mais sobre sua SDK, se ela trabalha em thread aproveitando a tecnologia atual de processadores, enfim, se tiver mais informações sobre o desempenho dela seria interessante.
Boa sorte com a biometria e parabéns pelo trabalho!

Victor Hugo Vidigal Corrêa
3

Ola Carlos. Estou fazendo iniciação cientifica sobre o assunto. Ainda estou fazendo a revisão bibliográfica, mas meu orientador me pediu para já ir aprendendo a utilizar algum sdk disponível para esse fim. Estou tendo problemas em saber qual sdk utilizar, como utilizar, como instalar (já tentei varias alternativas e não obtive sucesso). Se puder me ajudar ficarei grato. Meu email é [email protected]

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!