close
  • Li chevron_right

    DIGIKAM gestion évoluée de photos

    news.movim.eu / LinuxFRJournaux · Friday, 8 October - 10:51 · 8 minutes

Sommaire

'lut 'nal,

L’autre jour j’étais avec un pote, Apple addicted, qui me disait qu’il gérait ses photos avec Photos iCloud et qu’avec cet outil il bénéficiait de la reconnaissance faciale et d’une manière générale de certaines fonctions avancées qui lui permettent facilement d'indexer, de classer et de retrouver ses photos. Alors bien sûr j’ai été piqué au vif, comment était-il possible que sous Linux il ne soit possible de faire la même chose !

Touché dans mon orgueil, ni une, ni deux, je me suis mis à chercher un équivalent sous linux. Après une recherche rapide, j'ai identifié que digikam offre ce genre de fonctionnalités.
Jusqu’à présent je me contentais de gérer ma photos sous forme d’arborescence par année avec un système de nommage du style année-mois-jour-libellé facilitant le tri. Je trouvais les outils comme digikam usine à gaz et je me satisfaisais amplement d’un outil basique comme geeqie , la capacité de recherche étant très limitée.

L'installation et la configuration

J’ai installé digikam en utilisant le package standard de ma Mageia 8, mais malheureusement quand on lance la détection de visages, ça plante avec une sombre erreur de symbole indéfinie. Je ne m’attarde pas, je supprime illico le package et je pars dans la compilation de la dernière version 7.3.0 que je retrouve sur le site de digikam . Je vous passe le détail de la compilation et de la configuration, pour cette dernière on retiendra qu'il faut indiquer le ou les répertoires où se trouvent les photos, et un répertoire où on placera la base de données de digikam , pour le reste j’ai activé l'option d'accélération matérielle avec OpenCL et laissé tous les autres paramètres par défaut.

Les fonctionnalités

La reconnaissance faciale

Une fois que la collection de photos est alimentée, on peut passer à la détection des visages, pour cela il existe un onglet vertical nommé Personnes . On sélectionne Détecter les visages et on clique sur le bouton Analyser une collection pour chercher des visages. J’ai une collection de près de 9000 photos, en gros deux décennies de photos numériques, donc autant dire que ça prend un certain temps, ça a tourné à peu près toute la nuit et un peu plus encore. Vous vous retrouvez ensuite avec une collection de visages dans la catégorie Inconnus , la détection marche remarquablement bien avec quelques rares faux positifs comme des statues (ci-dessous) ou des visages issus de tableaux.

Titre de l

Comment ça marche ? Digikam utiliser un modèle d'apprentissage de deep learning basé sur des fonctionnalités de réseau de neurones de la bibliothèque OpenCV avec un modèle préalimenté de données qui permet de détecter des visages nommé Yolo (You only look once). De fait la phase d'apprentissage est réduite au minimum et l'algorithme peut détecter un visage dans différentes orientations, positions, expositions et aspects (soleil, ombre, de profil, de face, yeux rouges, flou) même s'il est partiellement masqué avec des objets comme des lunettes de soleil. Il est même capable de détecter la bobine de nos amis les bêtes.

Commence alors une manip assez longue, il faut identifier les personnes et les nommer (tag), on va créer ainsi toutes nos personnes connues qui apparaitront dans l’espace à gauche sous Inconnus . Pour chaque personne, en théorie une seule photo suffit, mais il est préférable pour un meilleur résultat de taguer plusieurs occurrences différentes de la même personne dans des configurations différentes. C'est d'autant plus vrai si la personne a changé, c'est notamment le cas de mes enfants qui sont passés du stade bébé à adulte. On retiendra que plus il y a d’occurrences meilleurs sont les résultats, car ce faisant on entraîne le réseau de neurones.

Titre de l

De fil en aiguille, on arrive avec une liste de personnes, avec un certain nombre d’occurrences du visage pour chaque personne sélectionnées manuellement.

Titre de l

C’est là que ça va devenir intéressant, à partir de cette base de visage connu et identifié, digikam va la compléter automatiquement. Pour cela il suffit de sélectionner Reconnaitre les visages puis Analyser une collection pour chercher des visages. Le réseau de neurones va scruter alors tous les visages inconnus et les comparer avec ceux connus. C’est beaucoup plus rapide que pour la détection des visages, ça prend à peine quelques minutes pour ma collection de quelques milliers de photos. Dans le cas ci-dessous les nombres des nouvelles occurrences des visages détectés apparaissent en gras. Ça marche plutôt bien avec très peu de déchets, c’est vraiment bluffant !

Titre de l

Pour chaque personne les visages restent néanmoins à confirmer, ils sont entourés de vert. Si c'est la bonne personne, on valide, sinon on peut indiquer le bon nom (éventuellement en créant une personne) ou les ignorer purement et simplement. On retrouvera les personnes ignorées dans la catégorie Ignoré et ne seront plus utilisées par l'algorithme pour les recherches futures. Le système est itératif, on peut relancer autant de fois que désiré la reconnaissance de visage, on pourrait penser que le réseau de neurones apprend et devient de plus en plus performant mais j'ai pu constater que ce n'était pas forcément le cas, en revanche quand on relance une détection de visages sur la même collection, il va trouver des nouveaux visages qu'il n'avait pas trouver au premier passage.

La recherche de photos similaires

Autre fonctionnalité que j'ai découverte, la recherche de similarité, elle consiste comme son nom l'indique à rechercher des images similaires. Ça marche comment ? En fait, digikam va balayer toute la collection et prendre une empreinte numérique de chaque photos, il va comparer ensuite ces empreintes pour évaluer les similarités.
Dans la pratique on va cliquer sur l'onglet vertical Similarité , il faudra d'abord lancer une recherche d'empreinte en cliquant sur le bouton Mettre à jour les empreintes de l'onglet horizontal Doublons . Pour ma collection de presque 9000 photos, ça a pris quelques heures. On se balade ensuite dans la collection et avec le menu contextuel on lance la recherche de similarités. On peut jouer sur l'échelle de similarité, en mettant une fourchette entre 90% et 100% les empreintes devront être très proches, donc autant dire que les photos seront quasi identiques. Avec une fourchette plus grande ça donnera davantage de photos, pas totalement identiques mais assez proches. Si la fourchette est trop grande, ça donnera des résultats plutôt surprenants avec des photos qui n'ont strictement rien à voir à première vue.

Titre de l

Cerise sur le gâteau grâce à cette prise d'empreinte, il sera possible également d'identifier les photos doublons, qui sont donc identiques.

La géolocalisation

Pour ceux qui disposent d'un APN doté d'un GPS intégré (et pour les autres aussi), l'onglet vertical Carte permet de visualiser les photos en fonction de l'endroit où elles ont été prises sur la planète. Vous avez également la possibilité pour les photos non géoréférencées d'indiquer après coup leur localisation.

Titre de l

Autres fonctionnalités

Digikam ne se limite pas aux fonctionnalités citées plus haut, il en possède d'autres plus classiques, comme l'édition avancée d'images, la table lumineuse pour comparer des photos côte à côte, le traitement de photos en mode batch, le gestionnaire d'étiquettes ou des fonctions d'import/export vers des services web que j'ai choisies de ne pas détailler dans ce journal.

En synthèse

Digikam finalement l'essayer c'est l'adopter, je n'avais jamais réellement compris l'intérêt d'un tel outil jusqu'à présent, j'ai totalement redécouvert ma collection de photos sous un autre jour.
Pour terminer une dernière précision, certes digikam a été développé initialement pour l'univers KDE, mais il marche très bien sur n'importe quel environnement !

Des liens utiles pour aller plus loin

je suis désolé pour les sites en anglais, mais je n'ai pas trouvé de site en français pertinent sur le sujet, mais je vous laisse volontiers compléter cette liste dans les commentaires.

Commentaires : voir le flux Atom ouvrir dans le navigateur