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
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?
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
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]
[2] http://svn.effbot.org/public/tags/pil-1.1.6/Sane/
[As partes desta mensagem que não continham texto foram removidas]
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.
Caro Junior,
registro de ponto. Mas isso sou só eu...
[ ]s
Luciano
>
> 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]
------------------------------------
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
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]
------------------------------------
>
> 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]
------------------------------------
--- Em python...@yahoogrupos.com.br, Junior Polegato - Linux
<linux@...> escreveu
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!
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]
------------------------------------
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