sistema de identificação pessoal por impressão digital ... · sempre esteve pronto para nos...
TRANSCRIPT
UNIVERSIDADE POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CURSO DE ENGENHARIA DA COMPUTAÇÃO
GABRIEL PODOLAN E GUSTAVO COSTA MARIN
Sistema de identificação pessoal por impressão digital e reconhecimento de voz
Trabalho de Conclusão de Curso.
Prof. M. Sc. Maurício Perretto
Orientador
Curitiba, dezembro de 2009.
UNIVERSIDADE POSITIVO
Reitor: Prof. Oriovisto Guimarães
Vice-Reitor: Prof. José Pio Martins
Pró-Reitor de Graduação: Prof. Renato Casagrande
Diretor do Núcleo de Ciências Exatas e Tecnológicas: Prof. Marcos José Tozzi
Coordenador do Curso de Engenharia da Computação: Prof. Edson Pedro Ferlin
AGRADECIMENTOS
Agradeço à minha esposa e filhos pela paciência, suporte e tolerância com as minhas ausências, aos meus pais por continuar incentivando a minha longa jornada acadêmica, aos meus amigos pelas risadas e apoio durante esse período e ao meu parceiro neste projeto por agüentar meu (mau) humor durante as várias horas em que trabalhamos juntos.
Gabriel Podolan
Agradeço aos meus pais, Natal e Vanda, por seus ensinamentos e educação proporcionados, aos meus irmãos, Guilherme e Gabriela, pelo companheirismo de todos estes anos e a minha namorada, Sandra, por sempre estar ao meu lado me incentivando e compreendendo minhas ausências neste período acadêmico. Obrigado a todos por sempre estarem me apoiando.
Agradeço a todos os amigos que estiveram sempre presentes em todos os momentos desta jornada e ao meu companheiro de projeto que muitas vezes teve que deixar sua família para podermos concluir nosso objetivo.
Gustavo Costa Marin
Agradecimentos gerais:
Somos gratos aos doutores Akinobu Lee e Fred dePiero por disponibilizarem seus conhecimentos publicamente, o que permitiu que tivéssemos uma base para trabalhar em um campo até então praticamente desconhecido para nós.
Ao professor M. Sc. Maurício Perretto, nosso orientador e amigo, que sempre esteve pronto para nos auxiliar e orientar em nosso objetivo.
Ao Eng. Roberto Junqueira por sua ajuda e esclarecimentos relacionados à área de identificação por impressões digitais.
Agradecemos também aos senhores John Styth Pemberton e Phillip Morris por criarem seus produtos que nos ajudaram a suportar as longas horas sem sono.
SUMÁRIO
1 INTRODUÇÃO .................................................................................. 11
2 FUNDAMENTAÇÃO TEÓRICA ........................................................ 13
2.1 Impressão digital ................................................................................................................... 13 2.1.1 Sistema de classificação de Henry ................................................................................. 14
2.2 Reconhecimento de voz ......................................................................................................... 14 2.2.1 Modelo oculto de Markov .............................................................................................. 15 2.2.2 Coeficientes cepstrais de frequências Mel ..................................................................... 16 2.2.3 Transformada rápida de Fourier ..................................................................................... 16 2.2.4 Transformada discreta de cosseno ................................................................................. 16
3 ESPECIFICAÇÃO DO PROJETO .................................................... 17
3.1 Definição do sistema .............................................................................................................. 17
3.2 Hardware ................................................................................................................................ 17 3.2.1 Sensor óptico ................................................................................................................. 18 3.2.2 Módulo biométrico ........................................................................................................ 18 3.2.3 Microcontrolador ........................................................................................................... 18 3.2.4 Microcomputador........................................................................................................... 18 3.2.5 Microfone ...................................................................................................................... 19 3.2.6 Display ........................................................................................................................... 19 3.2.7 Atuador .......................................................................................................................... 19
3.3 Firmware ................................................................................................................................ 19
3.4 Software .................................................................................................................................. 20 3.4.1 Interfaceamento entre sistemas ...................................................................................... 20
3.5 Requisitos mínimos do sistema ............................................................................................. 21
3.6 Benefícios esperados .............................................................................................................. 22
3.7 Impactos esperados ............................................................................................................... 22
3.8 Análise funcional ................................................................................................................... 22 3.8.1 Funções de comunicação ............................................................................................... 22 3.8.2 Funções de processamento de informação ..................................................................... 22 3.8.3 Funções de interface homem/máquina ........................................................................... 23 3.8.4 Funções de aquisição de dados ...................................................................................... 23 3.8.5 Funções de atuação ........................................................................................................ 24
3.9 Análise de requisitos .............................................................................................................. 24
3.10 Análise de arquitetura ........................................................................................................... 24
3.11 Análise de alternativas .......................................................................................................... 25
4 IMPLEMENTAÇÃO .......................................................................... 26
4.1 Projeto de Hardware .............................................................................................................. 26 4.1.1 Placa de interface ........................................................................................................... 26 4.1.2 Módulo Biométrico ........................................................................................................ 29 4.1.3 Sensor Óptico ................................................................................................................. 31 4.1.4 Comunicação ................................................................................................................. 31
4.2 Firmware ................................................................................................................................ 31
4.3 Projeto de Software ................................................................................................................ 34 4.3.1 Levantamento de requisitos ........................................................................................... 34 4.3.2 Diagramas de casos de uso ............................................................................................ 34 4.3.3 Diagramas de sequência ................................................................................................. 37 4.3.4 Banco de dados .............................................................................................................. 37
5 VALIDAÇÃO E RESULTADOS ........................................................ 39
5.1 Testes realizados .................................................................................................................... 39
5.2 Resultados obtidos ................................................................................................................. 39
6 CONCLUSÃO ................................................................................... 41
REFERÊNCIA ............................................................................................. 43
ANEXO 1 – ARTIGO ................................................................................... 44
ANEXO 2 – MANUAL ................................................................................. 45
LISTA DE ABREVIATURAS E SIGLAS
PC Personal Computer
RAM Randon Access Memory
USB Universal Serial Bus
LCD Liquid Crystal Display
DNA Desoxirribo Nucleic Acid
RISC Reduced Instruction Set Computer
MVC Model-View-Controler
LISTA DE FIGURAS
Figura 1 – Visão geral do projeto. ............................................................................................................. 12 Figura 2 – Impressão do tipo arco ............................................................................................................. 14 Figura 3 – Impressão do tipo laço ............................................................................................................. 14 Figura 4 – Impressão do tipo espiral ......................................................................................................... 14 Figura 5 - Diagrama de blocos do sistema de alto nível. ........................................................................... 18 Figura 6 - Digrama de blocos do firmware................................................................................................ 20 Figura 7 - Diagrama de blocos do software .............................................................................................. 20 Figura 8 - Diagrama de blocos com protocolos de comunicação .............................................................. 21 Figura 7 - Tela inicial do sistema .............................................................................................................. 23 Figura 8 – Opções de relatórios................................................................................................................. 23 Figura 9 – Arquitetura do sistema ............................................................................................................. 26 Figura 10 – Placa de interface ................................................................................................................... 27 Figura 11 – Descrição dos pinos do microcontrolador Atmega128. ......................................................... 28 Figura 12 – Diagrama de blocos do microcontrolador ATmega128. ........................................................ 29 Figura 13 – Diagrama de blocos do módulo FIM2040HV. ....................................................................... 30 Figura 14 – Fluxograma da interrupção de registro de usuário. .............................................................. 32 Figura 15 – Fluxograma da interrupção de identificação de usuário. ...................................................... 33 Figura 16 – Caso de uso “Cadastrar Usuário” ......................................................................................... 35 Figura 17 – Caso de uso “Identificar Usuário”. ....................................................................................... 35 Figura 18 – Caso de uso “Gerar relatório” .............................................................................................. 36 Figura 19 – Diagrama de seqüência “Cadastrar Usuário” ...................................................................... 37 Figura 20 – Diagrama de seqüência “Identificar Usuário” ...................................................................... 37 Figura 21 – Modelo do banco de dados ..................................................................................................... 38
LISTA DE TABELAS
Tabela 1 – Especificação de hardware do módulo FIM2040HV ............................................................... 29 Tabela 2 – Descrição dos pinos do módulo FIM2040HV .......................................................................... 30 Tabela 3 – Protocolos de comunicação entre os módulos. ........................................................................ 31 Tabela 4 – Correspondência de casos de uso com os diagramas de sequência. ........................................ 36 Tabela 5 – Testes de validação da voz ....................................................................................................... 40 Tabela 6 – Testes de validação da impressão digital ................................................................................. 40
RESUMO
O objeto deste trabalho consiste no desenvolvimento de um sistema de controle de acesso e ponto eletrônico utilizando as tecnologias de impressões digitais e reconhecimento de voz. O objetivo final é desenvolver o hardware necessário para realizar a interface entre um módulo biométrico comercial e o software para tratar os dados gerados por este componente de hardware. Também estão contemplados o processamento de amostras de voz capturadas por este mesmo software através de um microfone conectado diretamente ao computador e a geração de relatórios de eventos de acesso e registro de ponto.
Palavras-Chave: impressão digital, reconhecimento de voz, identificação pessoal.
Personal Identification System by fingerprint and voice recognition
ABSTRACT
The goal of this project is the development of an access control and work registration system based on fingerprint and voice recognition technologies. The target is to develop the necessary hardware to act as the interface between a low cost commercial biometric module and the software to process the data generated by this hardware. It is also planned to process voice samples captured by this same software through a microphone connected directly to the computer and the generation of access and work registration event reports.
Keywords: fingerprint, voice recognition, personal identification.
11
1 INTRODUÇÃO
Atualmente os controles de acesso e ponto eletrônico baseiam-se, em sua maioria, na utilização de cartões magnéticos ou smartcard. Estes sistemas apresentam algumas falhas de segurança, pois limitam-se a garantir que o usuário possua um objeto válido (cartão) e em alguns casos saiba uma senha. Isto permite com que estes sistemas sejam mais susceptíveis a fraude, uma vez que a cópia destes tipos de cartão é feita com relativa facilidade.
Sistemas que utilizam parâmetros biométricos como impressões digitais, espectro de frequência de voz, reconhecimento facial ou de íris estão menos sujeitos a serem burlados, pois dependem de características pessoais do usuário, algumas das quais são virtualmente impossíveis de serem reproduzidas. Estes sistemas, porém, costumam apresentar custos elevados devido à tecnologia envolvida em sua produção. Algumas destas tecnologias, como reconhecimento de impressões digitais, já apresentam uma redução de custos e uma consequente popularização na sua utilização.
O objetivo deste projeto é o desenvolvimento de um sistema de controle de acesso e ponto eletrônico por reconhecimento de impressões digitais e validação de voz utilizando uma plataforma de baixo custo. A figura 1 apresenta a visão geral do sistema onde podemos identificar todos os seus periféricos, suas funcionalidades básicas no sistema e o padrão de comunicação entre os dispositivos. A razão para se utilizar dois parâmetros biométricos é aumentar o nível de confiabilidade do sistema sem elevar seu custo de forma considerável.
Este sistema controlará um atuador e um display LCD que serão acionados no momento de uma identificação. Esta ocorrerá por meio da leitura e comparação da impressão digital do usuário e também da validação de uma impressão de voz. O controle de ponto é realizado da mesma forma, porém a funcionalidade será selecionada através de um botão. O sistema disponibilizará uma interface para cadastro de novos usuários e também um conjunto de relatórios para análise de acesso e ponto.
12
Figura 1 – Visão geral do projeto.
Sensor Óptico
Módulo Biométrico
Microcontrolador ATmega
Display Atuador
Microfone
Microcomputador
Comunicação paralela TTL
Comunicação serial RS232
Armazena e processa informações
Verifica autorizações
de acesso
Comunicação serial RS232
Envia informações do
usuário
Envia senha verbal
Envia informações ao usuário
Libera ou restringe o acesso
13
2 FUNDAMENTAÇÃO TEÓRICA
Neste capítulo apresentar-se-á uma visão teórica dos conceitos envolvidos no desenvolvimento do projeto. Os conceitos abrangidos são: impressões digitais, padrões de voz e alguns conceitos envolvidos no processamento de ondas sonoras, como transformada rápida de Fourier, transformada discreta de cosseno, coeficientes cepstrais de frequências Mel e modelo oculto de Markov.
Existem vários parâmetros biométricos que permitem a identificação de um indivíduo. Estes podem ser divididos em duas classes: os parâmetros fisiológicos e os comportamentais. Os primeiros referem-se a características de formato do corpo, como impressão digital, reconhecimento de face, DNA, geometria da mão e da palma e padrão de íris. Já os últimos estão relacionados a características do comportamento da pessoa, como a voz, ritmo de digitação e caligrafia. Devido à grande gama de opções disponíveis o escopo deste trabalho limitar-se-á à utilização de dois parâmetros para a identificação de um indivíduo: impressão digital e voz.
A seleção destes parâmetros deveu-se à constante popularização das tecnologias envolvidas na validação destas características e do baixo custo associado a estas. Também levou-se em consideração a utilização de um parâmetro de cada grupo e a complexidade da implementação de um sistema de identificação baseado nestes dados.
2.1 Impressão digital
Uma impressão digital é a impressão de cristas de todas as partes do dedo. Uma crista é uma porção levantada da epiderme nas palmas, plantas ou dedos das mãos ou pés. Estas cristas auxiliam no atrito ao pegar objetos e também servem para amplificar vibrações produzidas ao esfregar as pontas dos dedos em uma superfície desigual, auxiliando nas percepções tácteis.
O estudo das impressões digitais iniciou-se no século XVII com a publicação dos estudos de Nehemiah Grew, Govard e Marcello Malpighi sobre a estrutura das cristas encontradas nos dedos. No fim do século XVIII o anatomista alemão Johann Christoph Andreas Mayer reconheceu a unicidade das impressões digitais de um indivíduo. Os estudos seguiram evoluindo até permitir os primeiros usos desta característica biométrica como forma de identificação pessoal em meados do século XIX. O método se popularizou nos anos seguintes tornando-se uma prática comum no início do século XX, sendo que o primeiro bureau de impressões digitais foi fundado na Argentina, sendo seguido por exemplos semelhantes em Calcutá e em Londres.
14
Durante o século XX a identificação de indivíduos por impressões digitais ganhou credibilidade sendo largamente utilizada em criminalística e no fim dos anos 90 a técnica começou a ser usada em aplicações comerciais como controle de acesso e autenticação de usuários em computadores.
2.1.1 Sistema de classificação de Henry
Desenvolvido por Richard Henry e publicado em 1900 o sistema de classificação de Henry divide as impressões digitais em três grupos básicos: arcos, laços e espirais conforme ilustrado nas figuras 2, 3 e 4. Por meio destes padrões básicos e da extração de pontos característicos, chamados minúcias, é possível realizar a identificação de um indivíduo através de suas impressões digitais.
Figura 2 – Impressão do tipo arco Figura 3 – Impressão do tipo laço
Figura 4 – Impressão do tipo espiral
2.2 Reconhecimento de voz
A história do reconhecimento de voz está intimamente ligada ao desenvolvimento dos microcomputadores. Nos anos 70 os primeiros estudos
15
de técnica de reconhecimento foram realizados, porém apenas no fim dos anos 80 foram realizados os primeiros experimentos com sucesso na área. Com os avanços no poder de processamento e na popularização dos microcomputadores obtidos na última década do século passado e nos últimos anos, os modelos de reconhecimento de voz vêm tornando-se cada vez mais eficientes e sua aplicação comercial tem se tornado mais factível.
A voz humana é produzida basicamente pela passagem do ar pelas pregas vocais. Outras estruturas encontram-se envolvidas no processo, como os pulmões, a musculatura da laringe e os articuladores, como língua, palato, bochechas e lábios. O processo inicia-se com o bombeamento de ar pelos pulmões, que ajusta o fluxo e pressão do ar de forma adequada a gerar uma vibração nas pregas vocais. Estas funcionam como válvulas vibratórias que interferem no fluxo de ar dos pulmões funcionando como a fonte de som. A musculatura da laringe ajusta o comprimento e a tensão das pregas, produzindo assim alturas, ou tons, distintos. Os articuladores atuam como filtros e geram diferentes articulações nos sons produzidos, podendo também influenciar até certo ponto no fluxo de ar da laringe tornando a fonte de som mais forte ou mais fraca.
As pregas vocais e os articuladores são capazes de produzir combinações sonoras altamente complexas, o que torna o espectro de freqüência da voz de um indivíduo único, uma vez que além de sua fisiologia também estão envolvidos padrões comportamentais da pessoa (STEVENS, 2000).
A unicidade do timbre produzido nos permite atribuir o espectro produzido por um sistema vocal a uma pessoa com uma margem de segurança relativamente alta, o que torna este parâmetro biométrico um candidato interessante a ser utilizado como ferramenta de validação após uma identificação inicial.
O armazenamento e comparação de impressões de voz podem ser realizados utilizando várias técnicas, como estimativa de frequências, comparação de padrões, representações em matrizes etc. A comparação de padrões apresenta algumas vantagens computacionais sobre as outras técnicas citadas, pois é de fácil implementação. A técnica consiste em extrair certas características da voz analisada. Ao ocorrer à validação de um usuário este padrão será utilizado como base de comparação para a impressão de voz capturada no ato da autenticação.
2.2.1 Modelo oculto de Markov
O modelo oculto de Markov é um modelo estatístico onde o processo sendo modelado é encarado como um processo de Markov, que é um modelo para uma evolução aleatória de um sistema sem memória em que a probabilidade de um estado futura depende apenas do estado atual.
Neste modelo os estados não são diretamente visíveis ao observador e portanto as transições não possuem probabilidades determinadas, mas distribuições de probabilidades e o estado é dependente da saída, portanto a sequência de valores produzidos dá uma idéia da sequência de estados.
16
Modelos ocultos de Markov tem aplicações especialmente no reconhecimento de padrões temporais, como a voz, que apresenta um comportamento de variação aleatória e onde as transições de estados não podem ser determinadas com segurança.
2.2.2 Coeficientes cepstrais de frequências Mel
A escala de frequências Mel é uma escala perceptiva de tons. Nela os intervalos estão igualmente espaçados, diferenciando-se portanto da escala Hertz. Acima dos 500Hz, por exemplo, quatro oitavas na escala Hertz compõem aproximadamente duas oitavas da escala Mel, devido ao fato de que acima dessa frequência os intervalos tornam-se maiores na primeira escala.
O cesptro de frequências Mel é uma representação das potências de curto prazo de um som baseado em uma transformada linear de cosseno de um espectro de potências logarítmico sobre uma escala não linear de frequência.
Os coeficientes cepstrais de frequências Mel são os coeficientes que compões o cepstro. Eles são derivados de um tipo de representação cepstral de uma amostra de som, ou seja, um espectro de um espectro. A diferença básica entre um cepstro e um cepstro de frequências Mel é que as bandas de frequência são igualmente espaçadas na escala Mel neste último, o que o torna mais próximo da audição humana através de uma deformação nas frequências, o que permite uma melhor representação do som.
2.2.3 Transformada rápida de Fourier
A transformada rápida de Fourier é um algoritmo para um cálculo mais eficiente de uma transformada discreta de Fourrier e sua inversa que produz o mesmo resultado. Seu objetivo é transformar uma sequência de valores em componentes de diferentes frequências.
O cálculo de uma transformada discreta de Fourier de N pontos tem um custo computacional muito elevado, da ordem de O(N²). Já a transformada rápida é uma candidata muito mais interessante para uma implementação computacional, uma vez que seu custo se reduz a O(N log N), ou seja, uma redução de tempo de cálculo de várias ordens de magnitude, aproximadamente N/N log N na prática.
2.2.4 Transformada discreta de cosseno
A transformada discreta de cosseno expressa uma sequência de dados finita em termos de uma soma de cossenos em diferentes frequências. Assim como a transformada de Fourier, passa uma sequência de valores do domínio do tempo para o da frequência, porém trabalha com valores discretos. É relacionada com a transformada discreta de Fourier mas trabalha apenas com números reais.
17
3 ESPECIFICAÇÃO DO PROJETO
O projeto consiste de um sistema de controle de acesso e ponto por impressão digital e reconhecimento de voz. O sistema identifica usuários previamente cadastrados e aciona um display e um atuador em caso de identificação positiva. Também são disponibilizados relatórios para análise gerencial.
O desenvolvimento é feito utilizando a tecnologia de identificação por parâmetros biométricos através de sensores conectados a um microcontrolador ou microcomputador.
3.1 Definição do sistema
O sistema é composto por blocos de hardware, firmware e software, conforme a figura 5, que trabalham de forma integrada possibilitando o cadastro e identificação de um usuário. Os relatórios são gerados exclusivamente pelo bloco de software. A comunicação entre os blocos é realizada através de cabos conforme a necessidade dos protocolos envolvidos.
Nesta seção descrevem-se os blocos de hardware, firmware e software que compõem o sistema. Cada um destes blocos será detalhado conforme seus componentes, plataformas de desenvolvimento e funcionalidade.
3.2 Hardware
O hardware do sistema é composto por um sensor óptico que capta as impressões digitais que são enviadas a um módulo biométrico que realiza a análise desta em conjunto com o microcontrolador e envia informações ao microcomputador. Um display e um atuador estão conectados ao microcontrolador. Também compõe o hardware um microfone para a captura de voz.
18
Figura 5 - Diagrama de blocos do sistema de alto nível.
3.2.1 Sensor óptico
O sensor é utilizado para a captura da impressão digital. Trata-se de um sensor com velocidade de identificação de 0,3 segundo em modo normal e 1,1 segundos em modo seguro e consumo de corrente médio de 300mA.
3.2.2 Módulo biométrico
O módulo biométrico funciona como a interface entre o sensor óptico e o microcontrolador e também realiza o pré-processamento das informações capturadas antes de seu envio aos módulos seguintes. É neste ponto do sistema que as informações brutas obtidas da leitura da impressão digital são transformadas em dados numéricos.
3.2.3 Microcontrolador
O microcontrolador selecionado é o ATMEGA128, pois possui 128KBytes de memória, suficiente para suportar o firmware e os dados que são necessários para o processamento de impressões digitais, além de permitir uma velocidade de clock de até 16MHz, baud rate de 115200 bits por segundo e apresentar um consumo de corrente que varia entre 200 e 400mA.
3.2.4 Microcomputador
Sensor
Óptico
Módulo
Biométri
co
Microcontrolador
ATMEGA128
Firmware
Display Atuador
Microcomputador
Software
Banco de dados
19
O software do sistema é hospedado em um microcomputador PC com arquitetura x86. Os requisitos mínimos para este computador encontram-se descritos na seção de restrições do projeto.
3.2.5 Microfone
Utilizamos um microfone genérico para microcomputador para a captura de voz.
3.2.6 Display
A apresentação de informações ao usuário é feita através de um display LCD de matriz passiva. Neste display são apresentadas quaisquer mensagens que sejam necessárias durante o processo de identificação de um indivíduo.
3.2.7 Atuador
Foi selecionado como atuador um relé para demonstrar o funcionamento no caso de necessidade de acionamento de uma catraca ou algum dispositivo similar.
3.3 Firmware
O firmware do sistema é o conjunto de funcionalidades que são executadas pelo microcontrolador. Desenvolvido utilizando a linguagem C no ambiente AVR Studio 4 e WinAVR, todo o código é embarcado no microcontrolador. Os blocos básicos do firmware estão ilustrados na figura 6. Suas principais funcionalidades são gerenciar a comunicação entre kit, software e dispositivos de saída, controlar e validar os pacotes de dados trafegados e implementar o protocolo de comunicação com o software.
Com
un
icaçã
o c
om
o m
od
ulo
bio
mét
rico
Comunicação com os dispositivos de saída
Com
un
icaçã
o c
om
o m
icro
com
pu
tad
or
Processamento dos dados enviados pelo modulo
biométrico
20
Figura 6 - Digrama de blocos do firmware
3.4 Software
A plataforma selecionada para o desenvolvimento do software é a linguagem C++ e banco de dados SQL, nos ambientes Visual Studio e Microsoft SQL Server, ambos na versão 2008. Todos os executáveis, bibliotecas e banco de dados são hospedados no microcomputador. O software é responsável pelo cadastro de informações do usuário, pela comparação dos dados capturados pelo hardware com as informações armazenadas em banco de dados, pela persistência de eventos de acesso e registro de ponto, bem como sua formatação em relatórios e também pela captura, análise e comparação de impressões vocais. Os principais componentes do software são mostrados na figura 7.
Figura 7 - Diagrama de blocos do software
3.4.1 Interfaceamento entre sistemas
O sistema possui interfaces entre o sensor óptico, módulo biométrico, microcontrolador e microcomputador conforme a figura 8.
Os protocolos de comunicação são:
- Sensor óptico e módulo biométrico: protocolo proprietário dos componentes por porta paralela TTL;
- Módulo biométrico e o microcontrolador: protocolo programado no firmware por porta serial RS-232;
Comunicação com o microcontrolador
Interface com o usuário
Cap
tura
e p
roce
ssam
ento
de
voz
Processamento de
impressão digital
Banco de
dados
21
- Microcontrolador e microcomputador: protocolo programado no firmware e no software por porta serial RS-232.
Figura 8 - Diagrama de blocos com protocolos de comunicação
3.5 Requisitos mínimos do sistema
O sistema requer um microcomputador PC com as seguintes características:
- Processador 400MHz ou superior;
- Memória RAM de 512MB ou superior;
- Sistema operacional Windows XP SP3 ou posterior;
- Placa de som.
Sensor
Óptico
Módulo
Biométric
o
Processador
ATMEGA
128
Atuador
Display
Microcomputador
Paralela TTL Serial RS-232
Serial
RS-232
22
3.6 Benefícios esperados
O projeto visa gerar benefícios operacionais aos usuários do sistema, reforçando a segurança nos ambientes aos quais controla o acesso e aumentando a confiabilidade dos sistemas de ponto evitando fraudes e, portanto, economizando recursos financeiros. Os benefícios indiretos são a redução de custo com equipamentos para identificação, tais como cartões magnéticos ou smartcards e redução de pessoal nos setores de controle de acessos.
3.7 Impactos esperados
Espera-se obter um impacto comportamental na forma de um aumento da pontualidade.
3.8 Análise funcional
3.8.1 Funções de comunicação
O sistema realiza trocas de informação entre seus componentes conforme especificado abaixo:
Sensor óptico-Módulo biométrico
Estes dois módulos se comunicam por porta paralela TTL conforme protocolo desenvolvido pelo fabricante, de forma que sua especificação não está no escopo deste projeto.
Módulo biométrico-Microcontrolador
A comunicação é realizada via porta serial RS-232 utilizando um protocolo previamente definido em firmware baseado no funcionamento do módulo.
Microcontrolador-Microcomputador
A troca de informações ocorre por porta serial RS-232 utilizando um protocolo definido em um módulo do software que é compatível com a arquitetura do microcontrolador selecionado.
3.8.2 Funções de processamento de informação
O processamento de informações ocorre em três módulos do sistema: módulo biométrico, microcontrolador e microcomputador.
Módulo biométrico
Analisa as informações enviadas pelo sensor óptico e envia um resultado deste processamento ao microcontrolador. Este módulo é responsável por interpretar e parametrizar a impressão lida pelo sensor.
Microcontrolador
23
Realiza o empacotamento da informação enviada pelo módulo dentro do protocolo definido para a troca de informações com o microcomputador a quem repassa o resultado obtido.
Microcomputador
Executa a comparação entre os dados obtidos na leitura e as informações previamente armazenadas no banco de dados. É responsável também pela compilação dos registros de acesso e pontos em forma de relatórios para análise gerencial.
3.8.3 Funções de interface homem/máquina
O sistema possui um módulo único de software que realiza toda a interface homem/máquina. A figura 7 mostra a tela principal do sistema.
Figura 7 - Tela inicial do sistema
A geração de relatórios é feita por meio de uma opção de menu conforme mostrado na figura 8.
Figura 8 – Opções de relatórios
3.8.4 Funções de aquisição de dados
24
A aquisição dos dados ocorre em dois pontos do sistema: o sensor óptico e o microfone. O sensor óptico é responsável por capturar a impressão digital do usuário sendo cadastrado ou identificado. O microfone realiza a captação do padrão de voz do usuário em questão.
3.8.5 Funções de atuação
Em caso de identificação positiva o sistema aciona um display onde são exibidas mensagens ao usuário e um atuador, que pode liberar uma catraca ou uma fechadura. Ambos os dispositivos são acionados via microcontrolador.
3.9 Análise de requisitos
Funcionalidade
O sistema apresenta as funcionalidades de identificação por impressão digital e voz para controle de acesso e ponto. A função principal do sistema é a de controle de acesso sendo que o controle de ponto pode ser acionado por um botão no hardware externo ao microcomputador.
Confiabilidade
Por depender de um sistema de banco de dados online o sistema não é tolerante a falhas, pois caso o microcomputador onde o software está sendo executado apresente problemas, o sistema todo se torna inoperante.
Usabilidade
O sistema tem um caráter intuitivo para usuários, não requerendo treinamento especial para sua utilização. Uma leitura do manual de usuário é suficiente para sua operação.
Eficiência
Por se tratar de um sistema online e não crítico o tempo de resposta é relativamente elevado em termos computacionais, ficando em torno de 5 segundos por usuário. Por depender de consultas em bancos de dados e de cálculos complexos sobre o padrão de voz, o tempo requerido para uma identificação completa poderá ser um pouco maior do que o esperado em sistemas tradicionais, que são de aproximadamente 1 segundo.
Portabilidade
O sistema não é portável para outras plataformas inicialmente, pois seu desenvolvimento foi definido utilizando um ambiente específico para a plataforma Windows. Para portá-lo para outras plataformas seria necessária uma nova codificação utilizando uma linguagem compatível com o ambiente.
3.10 Análise de arquitetura
25
A figura 9 apresenta uma visão geral da arquitetura do sistema, com seus principais blocos e funções em alto nível além dos protocolos de comunicação entre os módulos.
3.11 Análise de alternativas
O sistema pode apresentar alguns problemas devido a sua dependência de um microcomputador para realizar as identificações. Uma vez que o banco de dados deve estar disponível sempre que uma identificação seja necessária, o sistema torna-se pouco tolerante a falhas.
Uma alternativa para a resolução deste problema seria a eliminação do reconhecimento de voz e fazer com que a identificação seja realizada exclusivamente pela impressão digital. Desta forma é possível embarcar a base de comparação no hardware externo do sistema, de forma que o microcomputador sirva apenas como uma ferramenta de geração de relatórios, o que tornaria o sistema mais tolerante a falhas.
Se
rial R
S23
2
Microcomputador
Software
Ca
ptu
ra e
pro
cess
am
ento
de
voz
Interface com o usuário
Comunicação com o microcontrolador
Processamento
de impressão
digital
Ba
nco
de
Da
do
s
Display Atuador
Microfone
Sensor
Óptico
Módulo
BiométricoParalell TTL Serial TTL
Microcontrolador
Firmware
Com
un
icaçã
o c
om
o
mód
ulo
bio
mét
rico
Com
un
icaçã
o c
om
o
mic
roco
mp
uta
do
rComunicação com
dispositivos de saída
Processamento dos
dados enviados pelo
módulo biométrico
26
Figura 9 – Arquitetura do sistema
4 IMPLEMENTAÇÃO
4.1 Projeto de Hardware
O sistema foi composto pelos seguintes blocos de hardware: placa de interface com microcontrolador ATmega, módulo biométrico e sensor óptico que trabalharão em conjunto com os outros componentes apresentados na figura 1. A comunicação entre os blocos de hardware será realizada por meio de cabos conforme a necessidade dos protocolos envolvidos.
4.1.1 Placa de interface
Para integração das partes do projeto, foi desenvolvida uma placa de interface com o objetivo de atender as necessidades de comunicação entre o Kit biométrico e o software, exibir informações aos usuários, controlar um atuador e botões de interface com o usuário. A figura 10 nos mostra a placa de interface e seus componentes.
27
Figura 10 – Placa de interface
A placa de interface é composta por: circuito regulador de tensão que alimenta a placa com 5 e 12V, relé de 12V para acionamento de um atuador, 2 interfaces seriais que utilizam um circuito integrado MAX232 para a conversão dos sinais seriais TTL em RS232 e vice-versa, 1 conector para programação do microcontrolador, 1 microcontrolador ATmega128, botões para seleção de funções e display para exibição de informações aos usuários.
Microcontrolador ATmega128
O microcontrolador escolhido foi o ATmega64 da ATMEL. Devido a não disponibilidade do microcontrolador no fornecedor na época da implementação do projeto este foi substituído pelo ATmega128 que apresenta as mesmas características porém com maior capacidade de memória flash. O ATmega128 é um microcontrolador AVR de arquitetura RISC de 8 bits com 128Kbytes de memória flash programável e consumo de energia de 200 a 400mA. Este foi escolhido por possuir duas portas de comunicação seriais, por ser um microcontrolador comum no mercado e por possuir várias ferramentas de desenvolvimento gratuitas.
28
Figura 11 – Descrição dos pinos do microcontrolador Atmega128.
A figura 11 mostra a descrição dos pinos do microcontrolador ATmega128. As portas 2, 3, 27 e 28 foram utilizadas para a comunicação serial, as portas 10, 11 e 48 a 51 para controlar o display, a porta 31 para o relé e as portas 25 e 26 para controle das interrupções dos botões de seleção.
Na figura 12 podemos observar o diagrama em blocos do microcontrolador ATmega128 e o funcionamento de sua arquitetura.
29
Figura 12 – Diagrama de blocos do microcontrolador ATmega128.
4.1.2 Módulo Biométrico
O módulo biométrico utilizado para interface entre o sensor óptico e o microcontrolador foi o FIM2040HV da Nitgen Biometric Solutions. O módulo é um dispositivo de identificação de impressões digitais com alto desempenho de identificação e duas interfaces seriais para fácil integração com várias aplicações.
O módulo trabalha com velocidade de captura de 0,3 segundos no modo normal e 1,1 segundos no modo seguro.
A especificação de hardware do módulo biométrico pode ser visualizada na tabela 1.
Tabela 1 – Especificação de hardware do módulo FIM2040HV
Especificação da placa
CPU S2C2410 (ARM9)
DRAM 8Mbyte SDRAM
Flash ROM Memória flash de programa: 1Mbytes
Dimensões 43 x 93 mm²
30
Sensor NITGEN OPP04
Tensão de alimentação 5 ± 0,5 V
Consumo de corrente Max. 300 mA
Temperatura de operação -20 ~ 60 ºC
Umidade 5 ~ 95 % UR
Canal de comunicação 2 portas RS-232
Velocidade 9600 ~ 115200 bps
O diagrama de blocos do módulo biométrico pode ser visualizado na figura 13.
Figura 13 – Diagrama de blocos do módulo FIM2040HV.
A pinagem do módulo biométrico pode ser visualizada na tabela 2.
Tabela 2 – Descrição dos pinos do módulo FIM2040HV
Pino Nome do pino Descrição
1 VCC Alimentação 5V
2 RXD0 Porta RS-232 de envio de sinal
3 TXD0 Porta RS-232 de
31
recebimento de sinal
6 GND Terra
12 /RESET Sinal de reinicio
4.1.3 Sensor Óptico
O sensor óptico utilizado para a captura da impressão digital foi o OPP04N da Nitgen Biometric Solutions. O sensor é parte integrante do módulo biométrico FIM2040HV e trata-se de um sensor com desempenho de alta velocidade de leitura de amostras, menor que 2 segundos.
4.1.4 Comunicação
A comunicação entre os módulos do sistema foi estabelecida conforme a tabela 3.
Tabela 3 – Protocolos de comunicação entre os módulos.
Nome do módulo 1 Nome do módulo 2 Protocolo de comunicação
Sensor óptico Módulo biométrico Paralela TTL implementado pelo
fabricante das partes.
Módulo biométrico Microcontrolador Serial RS-232 implementado no
módulo pelo fabricante e no microcontrolador
por este projeto.
Microcontrolador Microcomputador Serial RS-232 implementado por este
projeto.
4.2 Firmware
O firmware do sistema foi embarcado na memória do microcontrolador ATmega e trabalha com um sistema de interrupções. A sua implementação foi feita em linguagem C, utilizando o ambiente de desenvolvimento AVR Studio 4 da Atmel e o WinAVR.
Existem duas interrupções que são monitoradas. A primeira é a de registro de usuário, que executa a captura das amostras da impressão digital da pessoa sendo cadastrada. O fluxo seguido por esta interrupção encontra-se na figura 14.
32
Recebe comando de
captura de
impressão digital
Início
Aciona captura no
módulo
Capturado com
sucesso?
Formatar no
protocolo de
comunicação
Sim
Enviar para o PC
Fim
Não
Figura 14 – Fluxograma da interrupção de registro de usuário.
O segundo tipo de interrupção é o de identificação de usuário e seguirá o fluxo demonstrado na figura 15.
33
Aciona botão de
identificação ou
ponto
Aciona leitura no
módulo
Capturado com
sucesso?
Formatar no
protocolo de
comunicação
Sim
Enviar para o PC
Aguardar retorno
Recebeu retorno?
Não
Aguardar retorno
Sim
Identificação
positiva?
Acionar
dispositivosSim
Início
Fim
Não
Figura 15 – Fluxograma da interrupção de identificação de usuário.
34
4.3 Projeto de Software
O software do sistema foi construído utilizando a linguagem de programação C++, no ambiente Microsoft Visual Studio 2008. O banco de dados utilizado foi o Microsoft SQL Server 2008 Express. A linguagem C++ foi selecionada por apresentar recursos que facilitam a captura e o processamento das amostras de voz e por suportar a biblioteca proprietária utilizada para a gravação de amostras. A seleção do banco de dados deveu-se à facilidade de integração com a linguagem de programação selecionada.
4.3.1 Levantamento de requisitos
Os requisitos do software estão divididos em requisitos funcionais e não-funcionais. Seu detalhamento foi feito através dos diagramas de caso de uso e de sequência.
Requisitos funcionais são identificados mais adiante através da numeração sequencial gerada na lista abaixo, seguindo o padrão RFxx. Os requisitos não-funcionais são identificados por padrão RNFxx.
4.3.1.1 Requisitos funcionais
Os requisitos funcionais do sistema são:
RF01 – Cadastrar novos usuários do sistema
RF02 – Identificar impressões digitais cadastradas no banco de dados
RF03 – Identificar padrões de voz armazenados no banco de dados
RF04 – Emitir comandos para o microcontrolador para o acionamento de dispositivos
RF05 – Gerar relatórios
4.3.1.2 Requisitos não-funcionais
Os requisitos não-funcionais do sistema seguem abaixo:
RNF01 – Realizar as leituras de impressão digital de forma rápida
RNF02 – Realizar a comparação do padrão de voz armazenado no banco de dados com a amostra fornecida com boa confiabilidade de forma a identificar o usuário preferencialmente em uma única tentativa
4.3.2 Diagramas de casos de uso
Os diagramas de caso de uso apresentados nas figuras 21 a 23 estão associados a um ou mais requisitos do sistema e também aos diagramas de sequência de cada processo. Essa associação é feita através da tabela 4.
36
Figura 18 – Caso de uso “Gerar relatório”
Tabela 4 – Correspondência de casos de uso com os diagramas de sequência.
Nome do caso de uso Requisitos
atendidos
Diagrama de seqüência
associado
Cadastrar usuário RF01 Cadastrar usuário
Identificar usuário RF03, RF04, RF05,
RNF01, RNF02
Identificar usuário
Gerar relatório RF06 Não possui diagrama de
seqüência
37
4.3.3 Diagramas de sequência
As figuras 19 e 20 apresentam os diagramas de sequência dos processos representados nos diagramas de caso de uso. Esses diagramas representam a o fluxo de mensagens entre as diferentes classes do software durante a execução dos processos.
Figura 19 – Diagrama de seqüência “Cadastrar Usuário”
Figura 20 – Diagrama de seqüência “Identificar Usuário”
4.3.4 Banco de dados
O banco de dados possui uma estrutura reduzida de forma a otimizar seu desempenho e foi construído de acordo com o modelo representado na figura 21.
38
Usuarios
PK Index
Sample1
Sample2
SenhaSonora
Nome
Matrícula
Status
FFT
Events
PK EntryID
FK1 Index
FK3 OpType
TStamp
FK2 EquipID
Equipamento
PK EquipID
NomeEquipamento
OpTypes
PK OpType
Description
Figura 21 – Modelo do banco de dados
Os dados armazenados pelo sistema consistem em informações dos usuários cadastrados, tipos de eventos, ocorrência de eventos e equipamentos. Todas as informações encontram-se associadas pela tabela de eventos que armazena também uma data e hora da ocorrência do evento.
39
5 VALIDAÇÃO E RESULTADOS
Durante a etapa de testes do protótipo desenvolvido foram realizados dois conjuntos distintos de provas. Cada um dos conjuntos foi focado em um dos parâmetros biométricos utilizados no projeto.
5.1 Testes realizados
Para a validação da identificação por impressões digitais foi utilizado o seguinte procedimento:
Realizar uma tentativa de identificação antes de cadastrar o usuário, tentando forçar um falso positivo
Cadastrar a impressão digital de um dedo do usuário
Realizar 5 (cinco) tentativas de identificação consecutivas do dedo cadastrado
Realizar 3 (três) tentativas de identificação consecutivas de dedos não cadastrados do usuário
O procedimento adotado para validar o algoritmo de processamento e comparação de amostras de voz está descrito abaixo.
Capturar e processar uma amostra de voz, armazenando o resultado em memória
Capturar uma segunda amostra de voz e processá-la
Realizar a comparação entre os conjuntos de dados obtidos após o processamento.
5.2 Resultados obtidos
Testes preliminares do algoritmo original demonstraram a impossibilidade de sua utilização por não produzir amostras coerentes para comparação. Após introduzir passos adicionais para tratar a variação de frequências no tempo foi realizada uma nova bateria de testes, envolvendo cinco indivíduos em cinco tentativas de identificação. Os resultados destes testes encontram-se na tabela 5. Mesmo após as modificações no algoritmo, os padrões extraídos das ondas sonoras não produziram identificações positivas. Testes utilizando a mesma onda sonora em dois processamentos distintos resultaram em comparações
40
satisfatórias. Verificou-se que o processo adotado é extremamente sensível a ruídos de fundo e apesar de tratar variações no tempo, momentos de silêncio no início e no fim da amostra geram uma variação no padrão extraído que inviabiliza a comparação.
Tabela 5 – Testes de validação da voz
Indivíduos Tentativas de Identificação
Falso Positivo
Falso Negativo 1 5 0 5
2 5 0 5
3 5 0 5
4 5 0 5
5 5 0 5
A tabela 6 mostra os resultados obtidos para os testes realizados com a identificação por impressões digitais. Esta bateria de testes envolveu 22 (vinte e dois) indivíduos totalizando 198 (cento e noventa e oito) tentativas de identificação. O conjunto de resultados obtidos, não conteve nenhum falso positivo e obteve-se um total de 4 falsos negativos, o que representa 3,64% das 110 (cento e dez) identificações que deveriam ser positivas. Esta taxa de erro nas identificações ocorreu devido ao mau posicionamento do dedo no sensor ou à ausência de minúcias em quantidade suficiente na impressão digital do indivíduo sendo identificado e é satisfatória. A ausência de falsos positivos demonstra o alto grau de segurança deste método de identificação.
Tabela 6 – Testes de validação da impressão digital
Indivíduos Tentativas de Identificação
Falso Positivo Falso Negativo 1 9 0 0 2 9 0 0 3 9 0 0 4 9 0 0 5 9 0 1 6 9 0 0 7 9 0 0 8 9 0 0 9 9 0 0 10 9 0 0 11 9 0 0 12 9 0 0 13 9 0 0 14 9 0 3 15 9 0 0 16 9 0 0 17 9 0 0 18 9 0 0 19 9 0 0 20 9 0 0 21 9 0 0 22 9 0 0
41
6 CONCLUSÃO
Este trabalho apresentou o desenvolvimento de um sistema de identificação pessoal por impressão digital e vocal. O sistema foi capaz de identificar e validar indivíduos através de sua impressão digital, porém não foi possível realizar o mesmo processo utilizando um padrão de voz. Este projeto foi desenvolvido utilizando tecnologia de sistemas cliente-servidor e algoritmos de extração de padrões e comparação. A figura 22 nos mostra uma montagem completa do sistema.
Figura 22 – Montagem completa do sistema
Os resultados apresentados caem dentro das faixas esperadas, mostrando uma confiabilidade alta no sistema de identificação por digital. Não foi possível obter dados concretos a respeito da identificação por voz, pois o algoritmo usado na extração dos padrões das amostras capturadas não se mostrou eficiente, gerando conjuntos de dados com grandes diferenças a cada captura, o que tornou a utilização deste parâmetro biométrico inviável. Essas diferenças observadas devem-se à sensibilidade do algoritmo adotado a ruídos de fundo. Os problemas identificados podem ser resolvidos com a implementação de filtros digitais para restringir a faixa de frequências processadas e também remover períodos de silêncio no início e fim da amostra de voz.
42
Algumas melhorias que podem ser incorporadas futuramente ao produto gerado são a utilização de comunicação sem fio entre hardware e software, a incorporação de outros parâmetros biométricos, como reconhecimento de íris ou face e a implementação da gravação de som através da API do Windows, o que tornaria o software mais ágil.
43
REFERÊNCIA
STEVENS, K. N. Acoustics Phonetics. MIT Press, 2000.
MOSKAL M. et al. – Grok variants and matching
(http://nemerle.org/Grok_Variants_and_matching), última visita em Junho de 2009.
BRIGHAM, E. O. The Fast Fourier Transform. New York, Prentice Hall, 2002.
GREW N. The description and use of the pores in the skin of the hands and feet. Philosophical Transactions of the Royal Society of London, vol. 14, p. 566-567, 1684.
ASHBAUGH, D. R. Ridgeology. Journal of Forensics Identification, vol. 41, 1991.
NEHEMIAH GREW, "The description and use of the pores in the skin of the hands and feet," Philosophical Transactions of the Royal Society of London, vol. 14, pages 566-567 (1684).
GOVARD BIDLOO, Anatomia Humani Corporis [Anatomy of the Human Body](Amsterdam, Netherlands: 1685).
MARCELLO MALPIGHI, De Externo Tactus Organo Anatomica Observatio [Anatomical Observations of the External Organs of Touch](Naples, Italy: Aegidius Longus, 1685).
JOHANN CHRISTOPH ANDREAS MAYER, Anatomische Kupfertafeln nebst dazu gehorigen Erklarungen [Anatomical Illustrations (etchings) with Accompanying Explanations] (Berlin, Prussia: Georg Jacob Decker, 1783-1788). See especially the 1788 volume.
Reconhecimento de voz -> DR. AKINOBU LEE - http://en.sourceforge.jp/projects/julius/ (última visita em 03/11/2009).
Ler arquivo wave -> DR. FRED DEPIERO - http://people.msoe.edu/taylor/examples/wav.htm (última visita em 03/11/2009).