Ceci est une ancienne révision du document !
PAM Face Authentification
PAM Face Authentification est un logiciel libre (sous licence GNU GPL 3) de reconnaissance faciale utilisant la librairie OpenCV. Il permet d'ouvrir sa session et de remplacer son mot de passe root par une identification faciale ce qui permet la plupart du temps de gagner du temps. Ce logiciel est similaire à KeyLemon qui est uniquement disponible sous Windows. PAM Face Authentification est disponible pour les environnements Gnome et KDE, comme je n'utilise pas KDE, je ne traiterais pas cette partie. Néanmoins, vous pouvez regarder le lien source en bas de la page pour avoir les informations adéquates.
Pré-requis
- Avoir les droits d'administration
- Avoir une webcam
- Avoir installé la librairie OpenCV (pour Karmic, téléchargez le readme sur sourceforge et suivez-le)
- Avoir installé les paquets libpam-dev, libx11-dev, Cmake et Qt 4.5 (les dépendances nécessaires ne sont pas les mêmes selon votre version d'Ubuntu, consultez cet article)
Installation
PAM Face Authentification n'est pas présent dans les dépôts, nous allons le compiler.
Pour compiler PAM Face Authentification :
- Téléchargez le fichier "pam-face-authentification-XX.tar.gz qui se trouve sur la page téléchargement et placez-le dans votre Dossier personnel
- Décompressez-le
- ouvrez un terminal et saisissez les commandes suivantes :
#On se place dans le dossier décompressé cd pam-face* #On crée un dossier build et on va dedans mkdir build && cd build #Et on installe cmake -D CMAKE_INSTALL_PREFIX=/usr .. make sudo make install
Normalement, maintenant le programme est installé.
Configuration
Pour que le logiciel reconnaisse votre visage, il faut le lui montrer .
Nous allons donc le paramétrer.
Le logiciel se trouve dans: Application → Autre → Qt Face Trainer.
Vous pouvez aussi le lancer avec la commande:
qt-facetrainer
Prise de la photo témoin
Au lancement du logiciel, un texte nous donne des conseils pour que les photos témoins soient prises correctement. Il faut:
- Être dans un endroit plutôt bien éclairé
- Ne pas avoir de lunettes ni de chapeaux lors de la prise de la photo
- Garder une distance correcte entre votre tête et la webcam
- Avoir une expression neutre (à vérifier mais je pense que c'est mieux)
L'écran suivant nous montre l'interface pour prendre la fameuse photo.
L'espace de droite est le répertoire des photos témoins. L'espace de gauche est l'espace d'"analyse". Quand le logiciel aura bien cadré votre tête (comme sur la photo ci-dessus), appuyez sur le bouton Capture. La capture se fait alors, essayez de ne pas bouger avant la fin de celle-ci car en réalité, elle prend 13 photos et si vous bougez trop, la capture met longtemps à se faire car elle doit ré-analyser votre visage.
Si vous avez eu des problèmes d'analyse ou de capture, référez-vous à la section "problèmes connus" ci-dessous.
Paramétrage avancé
En appuyant sur le bouton Advanced Settings, on peut régler quelques paramètres en plus et tester la reconnaissance faciale.
Vous pouvez ainsi régler la tolérance ce qui améliore la reconnaissance de votre visage mais aussi la marge d'erreur. Vous pouvez sauvegarder le réglage avec Save et tester la reconnaissance du visage avec Test Recognition, la réponse s'affichant en bas : Yes ou No.
Adaptation au GDM et à sudo
Pour le GDM
Il faut maintenant faire en sorte que le logiciel se lance et vous identifie pour vous ouvrir la session au GDM. Pour cela, il va falloir éditer le fichier gdm.
sudo gedit /etc/pam.d/gdm
Et après la première ligne, ajoutez si vous voulez que la video de détection s'affiche lors de l'identification:
auth sufficient pam_face_authentication.so enableX
ou pour qu'elle ne s'affiche pas:
auth sufficient pam_face_authentication.so
Enregistrez ensuite le fichier et le tour est joué, vous pouvez vous identifier avec votre webcam.
Pour sudo
On peut aussi utiliser sudo avec son visage plutôt qu'avec un mot de passe. La méthode est la même que pour le GDM. Éditez le fichier sudo.
sudo gedit /etc/pam.d/sudo
Et rajoutez pour avoir la fenêtre vidéo:
auth sufficient pam_face_authentication.so enableX
et pour ne pas l'avoir:
auth sufficient pam_face_authentication.so
Enregistrez le fichier et c'est fait.
Utilisation
Après la configuration du logiciel, vous n'aurez normalement plus besoin de le toucher.
À savoir
- Si le logiciel n'a pas réussi à identifier votre visage, au bout d'une quinzaine de secondes, il vous demandera votre mot de passe.
- Si aucune webcam n'est branchée, le mot de passe sera demandé sans délai.
- Si plusieurs utilisateurs doivent avoir accès à une même session, il faut prendre une photo témoin de ces personnes.
- S'il n'y a aucune photo témoin pour une session, le mot de passe sera demandé sans délai.
- Je déconseille vivement d'utiliser cette application sur un laptop car la perception de la forme du visage change en fonction de l'inclinaison de l'écran et la luminosité change aussi selon les lieux.
Fiabilité
La reconnaissance faciale n'est pas une réelle protection car elle a une marge d'erreur. Il faut lui préférer un bon mot de passe. Néanmoins, la reconnaissance permet d'aller plus vite et de faire comme dans les films .
Le leurre avec une photo n'a pas l'air de fonctionner et pour le moment, personne d'autre que moi a réussi à ouvrir ma session avec son visage.
Problèmes connus
Problèmes de reconnaissance
Luminosité
Un problème d'analyse ou de reconnaissance peut être dû à la luminosité du lieu. Si pour la photo témoin, le logiciel n'arrive pas à vous détecter, changer la luminosité en allumant la pièce.
Cheveux
Apparemment, certaines coupes de cheveux peuvent gêner l'identification et l'analyse.
Couleur
Erreur de segmentation
Quand je tape une commande avec sudo, il m'identifie bien et marque "Verification successful" et ensuite "Erreur de segmentation". Il n'effectue pas la commande mais j'ai quand même les droits root, je n'ai qu'à relancer la commande.
Solution: Selon le développeur du logiciel, il faudrait soit utiliser OpenCV 1.1 ou compiler OpenCV 2.0 avec ./configure –without-openmp
Avec la version 2.1.0, tout fonctionne chez moi.
Problème avec libv4l
Ce module d'authentification ne fonctionne pas pour certains webcams.
Solution: Installez libv4l puis créez le fichier /etc/ld.so.preload , ajoutez dans ce fichier le chemin vers v411compat.so généralement il se trouve dans /usr/lib/libv4l .
Désactivation
Je n'ai pas encore trouvé le moyen de le désinstaller complètement et l'auteur ne répond tout simplement pas aux demandes… Par contre, pour le désactiver, il faut juste éditer le fichier :
/etc/pam.d/gdm
Et commenter la ligne :
auth sufficient pam_face_authentication.so enableX
Désinstallation
- Désinstaller le paquet
sudo apt-get remove --purge pam-face-authentication
- Editer la liste des dépôts
enlever le dépôt antonio.chiurazzi/ppa de la liste des dépôts
- Annuler les modifications dans les fichiers
éditer /etc/pam.d/gdm, /etc/pam.d/gnome-screensaver, /etc/pam.d/sudo pour y enlever les références du type "auth sufficient pam_face_authentication.so"