[python-brasil] Relógio de Ponto com leitor biométrico

1,508 views
Skip to first unread message

Junior Polegato - Linux

unread,
May 30, 2009, 9:22:40 PM5/30/09
to Python Brasil
Olá,

Estou pensando em fazer um relógio de ponto com leitor biométrico
(digital dos dedos) em Python sobre Linux, mas alguém sabe se já existe
alguma alternativa e/ou projeto iniciado?

Caso não tenha nada nesse sentido, existe alguma biblioteca em
Python que interaja com leitores biométricos e compare uma leitura com
várias outras (os 10 dedos de dezenas de funcionários) e me retorne um
código que identifique a quem pertence essa digital lida?

Hoje uso meu dedo indicador direito no notebook e funciona muito
bem para abrir a seção do Gnome e senha de root, mas somente uso, e é
ruim, daqueles de passar o dedo, não programei uma linha sequer ainda, e
pretendo expandir isso para os leitores externos USB, alguma dica?


[]'s
Junior Polegato

------------------------------------

,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia: |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar |
| E se você é usuário do BOL lembre-se de cadastrar o |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/

<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html


Junior Polegato - Linux

unread,
May 31, 2009, 5:43:17 AM5/31/09
to python...@yahoogrupos.com.br
Luciano Ramalho escreveu:
> 2009/5/30 Junior Polegato - Linux <li...@juniorpolegato.com.br>:

>
>> Estou pensando em fazer um relógio de ponto com leitor biométrico
>> (digital dos dedos) em Python sobre Linux, mas alguém sabe se já existe
>> alguma alternativa e/ou projeto iniciado?
>> Caso não tenha nada nesse sentido, existe alguma biblioteca em
>> Python que interaja com leitores biométricos e compare uma leitura com
>> várias outras (os 10 dedos de dezenas de funcionários) e me retorne um
>> código que identifique a quem pertence essa digital lida?
>> Hoje uso meu dedo indicador direito no notebook e funciona muito
>> bem para abrir a seção do Gnome e senha de root, mas somente uso, e é
>> ruim, daqueles de passar o dedo, não programei uma linha sequer ainda, e
>> pretendo expandir isso para os leitores externos USB, alguma dica?
>>
> Eu acho espantoso que no século XXI ainda se use relógio de ponto em
> algum lugar.
> Nada pessoal com você, viu Junior?
> Eu sei que existem muitos lugares que ainda usam relógio de ponto. Eu
> já trabalhei em uma órima empresa que exigia que todos "batessem o
> ponto", mas já faz uns 20 anos. Era uma empresa de serviços, muito
> competente, todos os gerentes sabiam perfeitamente que a hora de
> entrada e saída não tinha qualquer relação com a produtividade da
> pessoa. Mas o depto de RH tinha lá suas regras então, todo dia era
> ka-ching na entrada e na saída (sim era um cartão de ponto de
> cartolina, e o relógio de ponto carimbava a hora cada dia em uma linha
> diferente, uma maravilha eletro-mecânica; tinha uns coitados que
> depois transcreviam estes horários carimbados para um "sistema" que
> rodava no mainframe).
> Perdão pelo off-topic, pessoal. Não resisti ao impulso de deixar
> registrado o meu espanto.
>

Olá Luciano,

É exigido por lei ter que registrar o ponto, seja em livro ou em
relógio de ponto, sendo que se tiver mais de 20 funcionário, se não me
engano, é obrigado a ter registro de ponto eletrônico, onde na verdade
consiste em uma planilha mensal por funcionário contendo os horário de
entrada, almoço e saída, onde este a assina uma vez por mês e o registro
é feito de forma eletrônica, sendo que o leiaute desta planilha deva
respeitar a lei de nº que não lembro.

Há lugares onde apenas geram uma planilha com os horário e o
pessoal assina, mas em centros de distribuição, por exemplo, onde se
trata de força bruta e troca de turno, ligado diretamente o tempo de
separação, organização e embalagem ao número de funcionários presentes
no momento, é muito importante manter o horário à risca. No setor de
saúde também.

Quanto à gerência e diretoria, este tem uma liberdade maior de
horário, onde cada empresa trata de uma forma.

Creio que esteja falando apenas em programação e desenvolvimento
na sua explanação acima, que concordo, mas mesmo assim, precisa de
registro de ponto de acordo com as leis vigentes. Como registra o ponto
hoje? Se não registra, o departamento pessoa não te cobra? Como fazem?

Luciano Ramalho

unread,
May 30, 2009, 11:00:47 PM5/30/09
to python...@yahoogrupos.com.br
2009/5/30 Junior Polegato - Linux <li...@juniorpolegato.com.br>:
> Olá,
>
>       Estou pensando em fazer um relógio de ponto com leitor biométrico
> (digital dos dedos) em Python sobre Linux, mas alguém sabe se já existe
> alguma alternativa e/ou projeto iniciado?
>
>       Caso não tenha nada nesse sentido, existe alguma biblioteca em
> Python que interaja com leitores biométricos e compare uma leitura com
> várias outras (os 10 dedos de dezenas de funcionários) e me retorne um
> código que identifique a quem pertence essa digital lida?
>
>       Hoje uso meu dedo indicador direito no notebook e funciona muito
> bem para abrir a seção do Gnome e senha de root, mas somente uso, e é
> ruim, daqueles de passar o dedo, não programei uma linha sequer ainda, e
> pretendo expandir isso para os leitores externos USB, alguma dica?

Eu acho espantoso que no século XXI ainda se use relógio de ponto em
algum lugar.

Nada pessoal com você, viu Junior?

Eu sei que existem muitos lugares que ainda usam relógio de ponto. Eu
já trabalhei em uma órima empresa que exigia que todos "batessem o
ponto", mas já faz uns 20 anos. Era uma empresa de serviços, muito
competente, todos os gerentes sabiam perfeitamente que a hora de
entrada e saída não tinha qualquer relação com a produtividade da
pessoa. Mas o depto de RH tinha lá suas regras então, todo dia era
ka-ching na entrada e na saída (sim era um cartão de ponto de
cartolina, e o relógio de ponto carimbava a hora cada dia em uma linha
diferente, uma maravilha eletro-mecânica; tinha uns coitados que
depois transcreviam estes horários carimbados para um "sistema" que
rodava no mainframe).

Perdão pelo off-topic, pessoal. Não resisti ao impulso de deixar
registrado o meu espanto.

[ ]s
Luciano

David Kwast

unread,
May 31, 2009, 9:07:52 AM5/31/09
to python...@yahoogrupos.com.br
2009/5/31 Junior Polegato - Linux <li...@juniorpolegato.com.br>

> Quanto à gerência e diretoria, este tem uma liberdade maior de
> horário, onde cada empresa trata de uma forma.
>
> Creio que esteja falando apenas em programação e desenvolvimento
> na sua explanação acima, que concordo, mas mesmo assim, precisa de
> registro de ponto de acordo com as leis vigentes. Como registra o ponto
> hoje? Se não registra, o departamento pessoa não te cobra? Como fazem?

Primeiro, vou dar a minha opinião sobre este assunto polêmico. Acredito que
em escritórios isto praticamente não exista mais. Mas em indústria eu
acredito que deva ser obrigatório por causa dos problemas de hora-extra,
faltas e identificação de responsabilidades. Imaginem uma fábrica com mais
de 1000 funcionários...

Recomendo a leitura dos artigos sobre "impressão digital" do Viva-o-linux
[1]. Me parece que a mairia dos leitores funciona como um scaner dentro do
sistema, então é só usar módulos do Python que conversam com scaners. Diz a
lenda que o PIL suporta [2]

[1]
http://www.google.com.br/custom?domains=www.vivaolinux.com.br&sitesearch=www.vivaolinux.com.br&client=pub-3535276187000580&forid=1&ie=ISO-8859-1&oe=ISO-8859-1&cof=GALT%3A%230066CC%3BGL%3A1%3BDIV%3A%23999999%3BVLC%3A336633%3BAH%3Acenter%3BBGC%3AFFFFFF%3BLBGC%3AFFFFFF%3BALC%3A0066CC%3BLC%3A0066CC%3BT%3A000000%3BGFNT%3A666666%3BGIMP%3A666666%3BLH%3A45%3BLW%3A98%3BL%3Ahttp%3A%2F%2Fwww.vivaolinux.com.br%2Fimagens%2Fbanners%2Flogo_vol_google.jpg%3BS%3Ahttp%3A%2F%2Fwww.vivaolinux.com.br%3BLP%3A1%3BFORID%3A1%3B&hl=pt&q=impress%E3o+digital+%28inurl%3A%2Fartigo%2F+OR+inurl%3AverArtigo.php%29+&tipoBusca=artigos&sa.x=0&sa.y=0

[2] http://svn.effbot.org/public/tags/pil-1.1.6/Sane/


[As partes desta mensagem que não continham texto foram removidas]

Junior Polegato - Linux

unread,
Jun 1, 2009, 8:13:05 AM6/1/09
to python...@yahoogrupos.com.br
Luciano Ramalho escreveu:
> 2009/5/31 Junior Polegato - Linux <li...@juniorpolegato.com.br>:

>
>> É exigido por lei ter que registrar o ponto, seja em livro ou em
>> relógio de ponto, sendo que se tiver mais de 20 funcionário, se não me
>> engano, é obrigado a ter registro de ponto eletrônico, onde na verdade
>> consiste em uma planilha mensal por funcionário contendo os horário de
>> entrada, almoço e saída, onde este a assina uma vez por mês e o registro
>> é feito de forma eletrônica, sendo que o leiaute desta planilha deva
>> respeitar a lei de nº que não lembro.
>> Há lugares onde apenas geram uma planilha com os horário e o
>> pessoal assina, mas em centros de distribuição, por exemplo, onde se
>> trata de força bruta e troca de turno, ligado diretamente o tempo de
>> separação, organização e embalagem ao número de funcionários presentes
>> no momento, é muito importante manter o horário à risca. No setor de
>> saúde também.
>> Quanto à gerência e diretoria, este tem uma liberdade maior de
>> horário, onde cada empresa trata de uma forma.
>> Creio que esteja falando apenas em programação e desenvolvimento
>> na sua explanação acima, que concordo, mas mesmo assim, precisa de
>> registro de ponto de acordo com as leis vigentes. Como registra o ponto
>> hoje? Se não registra, o departamento pessoa não te cobra? Como fazem?
>>
> Caro Junior,
> Vamos combinar que esta exigência legal é contornada em muitas
> empresas através de diversos mecanismos, que envolvem um grau maior ou
> menor de participação dos funcionários na ficção. Eu já trabalhei em
> uma grande empresa onde ninguém batia ponto e o RH de alguma maneira
> gerava os relatórios necessários para a satisfação do eventual fiscal.
> Também já vi uma ou duas empresas onde às 18h um funcionário passa
> pegando os crachás de todo mundo para registrar a saída, e depois ele
> devolve, e todo mundo continua trabalhando.
> Não estou avaliando o mérito, existem vantagens e desvantagens para
> empregados e empregadores quando o horário de trabalho não é
> rigidamente controlado. Eu só acho que quando se presta muita atenção
> neste controle, pode-se perder de vista outros, muito mais importantes
> para aferir a qualidade e a produtividade.
> Vamos falar de uma empresa onde o tempo é absolutamente crítico: uma
> companhia aérea. Cada vôo tem um horário certo para sair, com precisão
> de minuto. É preciso relógio de ponto? Não, porque o horário do vôo é
> controlado. Se um comissário chegar atrasado isso será notado não pelo
> registro no ponto, mas no log do vôo, que registra não apenas isso mas
> muitos outras informações relevantes. Pensemos numa linha de produção:
> se a linha tem que começar a operar às 8h00, então todo mundo tem que
> estar a postos neste horário. Em uma linha de produção moderna o
> eventual atraso de uma pessoa será registrado assim como são
> registrados milhares de outras ocorrências que podem afetar a
> produtividade ou a qualidade. Não interessa muito saber que horas o
> sujeito passou pelo portão. Por sinal, o fato de que o sujeito bateu o
> ponto às 7h55 não significa que ele está pronto para trabalhar às
> 8h00, né?
> Então eu não queria estender muito essa polêmica off-topic, mas apenas
> queria deixar registrado que, na minha opinião, os eventos que o
> relógio de ponto registra não tem muita relação com produtividade ou a
> qualidade, e como empresário eu investiria em muitos outros controles
> de qualidade antes de investir em um aperfeiçamento biométrico do
> registro de ponto. Mas isso sou só eu..

Caro Luciano,

Concordo contigo, também não sou adepto à horário rígido e nem
sigo isso, mas se os donos de algumas empresas querem isso, pagam pela
solução/implantação, mesmo que os aconselhemos do contrário, de pensar
antes na produtividade, e não são poucos, quero oferecer a solução. Não
tenho empresa e nem horário extremamente rígido, então esse lance de
ponto por biometria não é para mim. E depois o Depto. Pessoal sempre se
vira com a contabilidade e tal, sei também que quando "colocam a empresa
no pau", o registro de ponto nada vale se o funcionário tiver
testemunhas que comprovem o horário real de trabalho.

Voltando à discussão, procuro por projeto livre de registro de
ponto com leitor biométrico.

Luciano Ramalho

unread,
Jun 1, 2009, 7:54:55 AM6/1/09
to python...@yahoogrupos.com.br
2009/5/31 Junior Polegato - Linux <li...@juniorpolegato.com.br>:

>       É exigido por lei ter que registrar o ponto, seja em livro ou em
> relógio de ponto, sendo que se tiver mais de 20 funcionário, se não me
> engano, é obrigado a ter registro de ponto eletrônico, onde na verdade
> consiste em uma planilha mensal por funcionário contendo os horário de
> entrada, almoço e saída, onde este a assina uma vez por mês e o registro
> é feito de forma eletrônica, sendo que o leiaute desta planilha deva
> respeitar a lei de nº que não lembro.
>
>       Há lugares onde apenas geram uma planilha com os horário e o
> pessoal assina, mas em centros de distribuição, por exemplo, onde se
> trata de força bruta e troca de turno, ligado diretamente o tempo de
> separação, organização e embalagem ao número de funcionários presentes
> no momento, é muito importante manter o horário à risca. No setor de
> saúde também.
>
>       Quanto à gerência e diretoria, este tem uma liberdade maior de
> horário, onde cada empresa trata de uma forma.
>
>       Creio que esteja falando apenas em programação e desenvolvimento
> na sua explanação acima, que concordo, mas mesmo assim, precisa de
> registro de ponto de acordo com as leis vigentes. Como registra o ponto
> hoje? Se não registra, o departamento pessoa não te cobra? Como fazem?

Caro Junior,

registro de ponto. Mas isso sou só eu...

[ ]s
Luciano

Felipe Zorzo

unread,
Jun 1, 2009, 8:37:11 AM6/1/09
to python...@yahoogrupos.com.br
2009/6/1 Junior Polegato - Linux <li...@juniorpolegato.com.br>

>
> Voltando à discussão, procuro por projeto livre de registro de
> ponto com leitor biométrico.
>
> []'s

> Junior Polegato.
>
>
>

E novamente vou sugerir: já deu uma olhada no SUAP [1] (ele possui um módulo
de ponto eletrônico [2])?

[1] http://colab.cefetrn.br/wiki/SUAP
[2] http://colab.cefetrn.br/wiki/SuapPonto

--
Felipe Bernardo Zorzo


[As partes desta mensagem que não continham texto foram removidas]

------------------------------------

Junior Polegato - Linux

unread,
Jun 1, 2009, 2:19:32 PM6/1/09
to python...@yahoogrupos.com.br
Felipe Zorzo escreveu:

> 2009/6/1 Junior Polegato - Linux <li...@juniorpolegato.com.br>
>
>> Voltando à discussão, procuro por projeto livre de registro de
>> ponto com leitor biométrico
> E novamente vou sugerir: já deu uma olhada no SUAP [1] (ele possui um módulo
> de ponto eletrônico [2])?
> [1] http://colab.cefetrn.br/wiki/SUAP
> [2] http://colab.cefetrn.br/wiki/SuapPonto
>

Olá,

Legal esse SUAP, mas não consegui baixa para testar... Está dando
esse erro com svn:

$ svn checkout http://colabsvn.cefetrn.br/suap/trunk/suap/
svn: OPTIONS de 'http://colabsvn.cefetrn.br/suap/trunk/suap': não foi
possível conectar-se ao servidor (http://colabsvn.cefetrn.br)

Vou tentar baixar com wget depois... Mas pelo pouco que vi, ele
não faz o registro de ponto, apenas importa os dados de um relógio de
ponto, mas não posso afirma isso com certeza. Conhece algum contato do
projeto?

[]'s
Junior Polegato

Alex Furtunato

unread,
Jun 1, 2009, 3:00:07 PM6/1/09
to python...@yahoogrupos.com.br
Caro Júnior,

O SUAP é um projeto desenvolvido aqui no CEFET-RN (Agora denominado
IFRN). Começamos desenvolvendo um registro de ponto em python, usando o
PyGTK. Esse primeiro relógio de ponto era denominado PyPonto. Contudo, ele
não utiliza leitor de biometria. O ponto era batido apenas com a matrícula
do servidor. Pela necessidade do uso de biometria e a falta de drivers em
Python para trabalhar com os leitores, refizemos o relógio em Java. Hoje o
relógio de ponto feito em Java utiliza Biometria, porém, todo o Sistema que
tem Ponto Eletrônico, Almoxarifado, Patrimônio, Controle de Frota,
Tramitacão de Protocolo, e outras funcionalidades ainda em implantação é
feito em Django e implementamos a comunicação com o relógio através de um
webservice. Gostaríamos de ter continuado com o relógio em Python, mas
tivemos que usar o Java para darmos prosseguimento ao projeto. Obviamente, o
projeto SUAP foi todo pensado para a realidade do CEFET/RN, que é uma
Instituição Pública Federal, contudo, pode servir para muitas outras
situaçoes e oseu código está disponível em [1]. Estamos tentando colocar
pelo menos uma versão demo no site.

Caso queira dar uma olhada no PyPonto, o seu código ainda está disponível
em: http://colabsvn.cefetrn.br/pyponto/

Nesse momento estamos com dificuldade de continuar desenvolvendo o
relógio em Python pela limitação da comunicação com os leitores. Mas, ainda
temos esperança de voltar a desenvolver essa aplicação.

Qualquer dúvida pode entrar em contato,

Grato,

[1] SUAP: http://colab.cefetrn.br/
[2] SVN: http://colabsvn.cefetrn.br/

Alex Furtunato
DIGTI / IFRN


2009/6/1 Junior Polegato - Linux <li...@juniorpolegato.com.br>

>
>
> Felipe Zorzo escreveu:
>
> > 2009/6/1 Junior Polegato - Linux <li...@juniorpolegato.com.br<linux%40juniorpolegato.com.br>


> >
> >
> >> Voltando à discussão, procuro por projeto livre de registro de
> >> ponto com leitor biométrico
> > E novamente vou sugerir: já deu uma olhada no SUAP [1] (ele possui um
> módulo
> > de ponto eletrônico [2])?
> > [1] http://colab.cefetrn.br/wiki/SUAP
> > [2] http://colab.cefetrn.br/wiki/SuapPonto
> >
>
> Olá,
>
> Legal esse SUAP, mas não consegui baixa para testar... Está dando
> esse erro com svn:
>
> $ svn checkout http://colabsvn.cefetrn.br/suap/trunk/suap/
> svn: OPTIONS de 'http://colabsvn.cefetrn.br/suap/trunk/suap': não foi
> possível conectar-se ao servidor (http://colabsvn.cefetrn.br)
>
> Vou tentar baixar com wget depois... Mas pelo pouco que vi, ele
> não faz o registro de ponto, apenas importa os dados de um relógio de
> ponto, mas não posso afirma isso com certeza. Conhece algum contato do
> projeto?
>
> []'s
> Junior Polegato
>
>
>

[As partes desta mensagem que não continham texto foram removidas]

------------------------------------

Felipe Zorzo

unread,
May 30, 2009, 9:31:51 PM5/30/09
to python...@yahoogrupos.com.br
2009/5/30 Junior Polegato - Linux <li...@juniorpolegato.com.br>

>
> Olá,
>
> Estou pensando em fazer um relógio de ponto com leitor biométrico
> (digital dos dedos) em Python sobre Linux, mas alguém sabe se já existe
> alguma alternativa e/ou projeto iniciado?
>
> Caso não tenha nada nesse sentido, existe alguma biblioteca em
> Python que interaja com leitores biométricos e compare uma leitura com
> várias outras (os 10 dedos de dezenas de funcionários) e me retorne um
> código que identifique a quem pertence essa digital lida?
>
> Hoje uso meu dedo indicador direito no notebook e funciona muito
> bem para abrir a seção do Gnome e senha de root, mas somente uso, e é
> ruim, daqueles de passar o dedo, não programei uma linha sequer ainda, e
> pretendo expandir isso para os leitores externos USB, alguma dica?
>
> []'s
> Junior Polegato

> .
> __,_._,__
>

Bom, eu conheço o SUAP (Sistema Unificado de Administração Pública) [1], que
possui um módulo de ponto eletrônico [2].

--
[]'s
Felipe Bernardo Zorzo


[As partes desta mensagem que não continham texto foram removidas]

------------------------------------

Christian Samuel Perone

unread,
Jun 4, 2009, 4:03:52 PM6/4/09
to python...@yahoogrupos.com.br
Olá Junior, acredito que maioria das empresas que fabricam leitores
biométricos não seguem um padrão, mas uma opção é certa,
você praticamente sempre poderá recuperar como imagem a leitura
que o dispositivo fizer.
Você terá que programar (dependendo da interface do dispositivo)
um driver da vida para recuperar esta imagem e compará-la com outras
imagens, atualmente existem algoritmos para comparação destas
imagens, porém acredito que não haja algum algoritmo de hash que
te facilite a vida para encontrar de quem é a digital em um banco, ou
seja, você terá um bom custo computacional, e é aí onde eu
te aconselho a não usar Python e sim programar este algoritmo em
outra linguagem como C/C++ e depois criar um wrapper para Python; para
poucas comparações você não terá problemas, mas imagine
comparar 1 imagem com outras duzentas ? Você vai criar uma fila de
1km de funcionários indignados hehe =)
Enfim, isto que falei é para esta sua idéia, entretanto, existem
leitores que cadastram a digital em uma memória interna e tem
implementado em hardware um algoritmo para fazer estas comparações, o
que fica muito veloz, porém já vi muitos leitores que ficam bem
lentos após cadastrar uma quantidade significativa de digitais, e
aumenta o erro também obviamente.

--- Em python...@yahoogrupos.com.br, Junior Polegato - Linux
<linux@...> escreveu

Adriano Ogata

unread,
Jun 5, 2009, 11:18:53 AM6/5/09
to python...@yahoogrupos.com.br
2009/6/4 Christian Samuel Perone <christian.p...@gmail.com>:

> Olá Junior, acredito que maioria das empresas que fabricam leitores
> biométricos não seguem um padrão, mas uma opção é certa,
> você praticamente sempre poderá recuperar como imagem a leitura
> que o dispositivo fizer.
> Você terá que programar (dependendo da interface do dispositivo)
> um driver da vida para recuperar esta imagem e compará-la com outras
> imagens, atualmente existem algoritmos para comparação destas

Será mesmo que a única forma de se fazer é como em hollywood? A forma
que eu esperaria ver esse processo é extrair um conjunto de
características de uma foto, extrair uma hash dessas características e
comparar essa hash contra um banco de hashes.


Og!

David Kwast

unread,
Jun 5, 2009, 12:14:40 PM6/5/09
to python...@yahoogrupos.com.br
2009/6/5 Adriano Ogata <ako...@gmail.com>

> Será mesmo que a única forma de se fazer é como em hollywood? A forma
> que eu esperaria ver esse processo é extrair um conjunto de
> características de uma foto, extrair uma hash dessas características e
> comparar essa hash contra um banco de hashes.

Até onde eu vi, o programa gera essa Hash. Junior, confirma isso?

Uma medida interessante, casos seja possível, seria armazenar a imagem usada
no cadastro. Se trocar de algoritmo de hash de impressão digital, basta
gerar novas hashes a partir das imagens do cadastro.

Pelo que eu entendi, quem faz o Hash, é a biblioteca Fprint, certo Junior?
Nesse caso não precisamos ir tão longe, só caso fique muito lerdo (acho
difícil pela abordagem que está sendo usada, hash no banco de dados, com
busca otimizada) ou dê muito conflito (2 pessoas diferentem gerarem a mesma
Hash).

Junior, poderia nos informar mais detalhes de como seu projeto verifica uma
digital armazenada?


[As partes desta mensagem que não continham texto foram removidas]

------------------------------------

Junior Polegato - Linux

unread,
Jun 5, 2009, 3:59:35 PM6/5/09
to python...@yahoogrupos.com.br
David Kwast escreveu:

> 2009/6/5 Adriano Ogata <ako...@gmail.com>
>
>> Será mesmo que a única forma de se fazer é como em hollywood? A forma
>> que eu esperaria ver esse processo é extrair um conjunto de
>> características de uma foto, extrair uma hash dessas características e
>> comparar essa hash contra um banco de hashes.
>>
> Até onde eu vi, o programa gera essa Hash. Junior, confirma isso?
> Uma medida interessante, casos seja possível, seria armazenar a imagem usada
> no cadastro. Se trocar de algoritmo de hash de impressão digital, basta
> gerar novas hashes a partir das imagens do cadastro.
> Pelo que eu entendi, quem faz o Hash, é a biblioteca Fprint, certo Junior?
> Nesse caso não precisamos ir tão longe, só caso fique muito lerdo (acho
> difícil pela abordagem que está sendo usada, hash no banco de dados, com
> busca otimizada) ou dê muito conflito (2 pessoas diferentem gerarem a mesma
> Hash).
> Junior, poderia nos informar mais detalhes de como seu projeto verifica uma
> digital armazenada?
>

Olá,

Como eu tinha passado alguns e-mails atrás, partir do ponto zero
sabendo que o leitor de digitais do notebook funcionava no Linux e eu
entrava na minha área do Gnome sem precisar digitar a senha, apenas
passando o dedo. Fui atrás saber o que rolava por trás e descobri que
era uma bilioteca chamada "fprint" [1,2], e testei o demo, achando muito
interessante nesse que era possível identificar qual o dedo. Pois bem,
esta biblioteca e o demo são em C, tentei fazer algo em C consegui usar
a biblioteca tal como no demo, mas em modo texto apenas para testar.
Mais caçadas encontrei um bind para Python [3,4,5], que no mesmo momento
surge em um distribuidor a necessidade de ponto por biometria, onde
então resolvi colocar em prática essas ferramentas, num primeiro teste
[6] já consegui identificar as pessoas e num segundo já fiz isso usando
um banco de dados [7], tudo para ver se funciona e se é complicado, mas
funcionou em algumas horas e sem quase nenhuma complicação, diante da
falta de tempo para me dedicar a isso.

Bom, não pesquisei a fundo para saber se a informação que a
fprint me retorna é uma hash ou outra coisa, mas são dados que
possibilitam o reconhecimento da digital, sendo que existe uma função
nessa biblioteca onde uma lista com as já lidas e a função já pede uma
leitura para comparação com a lista, aí esta função me retorna qual a
posição na lista que foi reconhecida/casou com a leitura feita, portanto
a função é em C e já deve ser bem malhada e com bom desempenho, mas
gerei uma lista com 10.000 digitais repetidas a cada 16 que eu já tinha,
adicionando o código abaixo no código em [7] logo após carregar as
digitais do banco de dados:

multiplicador = 10000/len(digitais)
print "Multiplicador:", multiplicador, "*", len(digitais), "=",
multiplicador*len(digitais)
digitais = digitais * multiplicador
nomes = nomes * multiplicador
print "Total de digitais:", len(digitais)

Nesse teste, com processador de 2 GHz, que vai a 100% durante as
comparações, levou uns 5 segundos para acusar uma digital não
reconhecida, e quase instantâneo quando casou com uma das 16 primeiras
digitais da lista, fora uns 2 segundos da leitura, vejam:

2009-06-05 16:52:20.014630 => pedindo leitura
2009-06-05 16:52:22.702139 => leitura e comparação terminada
Ponto da pessoa "Junior (1)" registrado em "2009-06-05 16:52:22.702323"

2009-06-05 16:52:22.708756 => pedindo leitura
2009-06-05 16:52:30.930538 => leitura e comparação terminada
Impressão digital não identificada!


Portanto, penso eu, o algoritmo da função é muito bom para isso,
não vai deixar o pessoal nervoso, principalmente se aplicado à um local
com menos de 100 funcionários vezes umas 3 digitais cada no banco de dados.

[]'s
Junior Polegato


[1]
http://www.vivaolinux.com.br/artigo/fprint-Biometria-livre-completa-e-total/
[2] http://reactivated.net/fprint/wiki/Main_Page
[3] http://www.mail-archive.com/fpr...@reactivated.net/msg00629.html
[4] http://osdir.com/ml/linux.fprint/2008-07/msg00001.html
[5] http://repo.or.cz/w/pyfprint.git
[6] http://pastebin.com/f51a34b7
[7] http://pastebin.com/f6271d7bc

Reply all
Reply to author
Forward
0 new messages