Autenticação facial no ubuntu +/- fácil....




    Senhores como alguns volta e meia perguntam como fazer reconhecimento facial, alguns outros também devem ter notado que o pacote pam facial para ubuntu voltou desde a versão 14.04, porém as versões mais recentes estão bichadas para variar. Eu jamais entenderei a troco de que deixam os pacotes nestas condições nos repos, por isso vai abaixo o link para um pacote corrigido, para fazer download desse pacote, patcheado por um usuário do grupo.


- Mas para que serve o reconhecimento facial?


- Dentre muitas coisas como dispositivo se segurança de acesso a recursos de ou o próprio sistema.


    O reconhecimento facial apresentado agora como novidade naquele outro sistema, está disponível para linux já há quase 10 anos, mas infelizmente pouco explorado e como muita gente ganhava dinheiro com isso as facilidades na configuração para o usuário final eram postas de lado.



    Já faz algum tempo que queria escrever este tutorial mas pela falta de tempo estou postergando desde a versão 14.04 do ubuntu, porém para começar 2017 sem dever nada a (quase) ninguém, vejamos abaixo como fazer funcionar nas distribuições a seguir.



Clique neste link:


https://storage.googleapis.com/google-code-attachments/pam-face-authentication/issue-75/comment-17/pam-authentication-face-auth_20120330-1_amd64.deb


para ubuntu 12.04 digite:


sudo dpkg -i pam-authentication-face-auth_20120330-1_amd64.deb


para ubuntu 14.04:


sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.2.4.8 /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.2.3

sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.8 /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.3

sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4.8 /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.3

sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.8 /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.3

sudo dpkg -i pam-authentication-face-auth_20120330-1_amd64.deb


para ubuntu 16.04 digitar essas linhas além da linha destinada ao ubuntu 12.04:


sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.2.4.9 /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.2.3

sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.9 /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.3

sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4.9 /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.3

sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.9 /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.3

sudo dpkg -i pam-authentication-face-auth_20120330-1_amd64.deb


    Sempre crie os links simbólicos antes ou o pacote não vai instalar. O pacote opencv até a última vez que eu instalei na minha máquina de trabalho, era totalmente retro-compatível com os empacotamentos anteriores em nível de chamadas e instruções apenas trocando o nome das bibliotecas (no caso criando links) é possível fazer com que o pam-face-auth encontre as instruções que precisa nos pacotes mais atuais.


    Eu prefiro ainda ao invés de usar a recomendação dos outros tutoriais para ubuntu que mandam incluir o módulo completo na base PAM do ubuntu (e assim trancar o usuário em caso de leis de murphy e também para exigir uma medida mais invasiva quando se quiser desabilitar), incluir o plugin apenas nos módulos que eu desejo usar por vez ou combinados, exemplos:


modifique seu arquivo lightdm assim:

sudo pico /etc/pam.d/lightdm


#%PAM-1.0

auth sufficient pam_face_authentication.so enableX (inclua esta linha)

auth requisite pam_nologin.so


modifique seu arquivo sudo assim:

sudo pico /etc/pam.d/sudo


#%PAM-1.0

auth sufficient pam_face_authentication.so enableX (inclua esta linha)

auth required pam_env.so readenv=1 user_readenv=0



    Com esses padrões de configuração o comando ainda é devolvido para o usuário caso sua face não seja reconhecida, tal qual o sistema de impressão digital de caixas eletrônicos. Após tentar 3 vezes sem sucesso, o usuário pode digitar a senha antiga para ter acesso ao sistema novamente.


Sejam felizes! :)



Vinicius Beltrão