Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

DLFP - Dépêches  -  WhosWho : le trombinoscope facile

 -  Décembre 2021 - 

WhosWho est un logiciel permettant de réaliser facilement des trombinoscopes, comme utilisés dans les collèges, lycées ou universités. Fonctionnant sur Linux, il est codé en Python, utilise GTK3, s’appuie sur ImageMagick pour la mise en page et sur OpenCV pour le recadrage automatique des photos.

Logo WhosWho

Sommaire

Le besoin

J’ai travaillé quelques années dans un lycée agricole. La réalisation des trombinoscopes se faisait à mon arrivée par un logiciel propriétaire, dont le rôle de base est de simplifier la gestion d’un domaine Active Directory : on lui donnait la liste des élèves au format CSV, et pour chacun on pouvait fournir une photo. Ça marchait plutôt bien mais :

  • il fallait une photo du visage de chaque élève, correctement cadrée. Ça a l’air tout simple mais ce n’est pas forcément évident : les photos d’identité fournies à l’inscription sont souvent trop anciennes, donc il faut reprendre en photo tous les élèves, dont la moitié préfère se cacher sous une table plutôt que d’être pris en photo ;
  • il fallait sélectionner manuellement (oui, avec la souris) la photo pour chaque élève ;
  • c’est un logiciel non libre :-(

Et puis un jour ce logiciel fut abandonné, il fallait trouver une alternative. Le besoin me semblait simple (comme souvent me direz-vous), mais les logiciels libres y répondant n’étaient pas nombreux… En fait, je n’en ai trouvé qu’un : block_faces, un module pour l’environnement d’apprentissage Moodle. C’est probablement une bonne solution, mais je rêvais d’une solution dans l’esprit « KISS » donc je n’ai même pas pris le temps de l’essayer.

La technique

ImageMagick

J’ai eu la bonne idée d’aller voir du côté d’ImageMagick, que je connaissais de réputation comme « le couteau suisse » du traitement d’image, et j’y ai trouvé exactement ce dont j’avais besoin : la commande montage.

montage permet de mettre en page des images avec des labels, en précisant assez finement la géométrie de l’ensemble. Exemple tiré du lien précédent :

montage -label %f -frame 5 -background '#336699' -geometry +4+4 rose.jpg red-ball.png frame.jpg

Ce qui donne, à partir des images rose.jpg et red-ball.png le résultat suivant (ici le label est %f, soit le nom de l’image) : exemple_ImageMagick

En parcourant la documentation d’ImageMagick, je découvrais dans la foulée un autre utilitaire fort utile, convert, qui non seulement permet de changer le format d’une image (pour passer de JPG à PDF par exemple) mais aussi de la redimensionner (ou même d’appliquer d’autres effets si l’envie vous en prend).

Malgré mon peu de compétences en programmation, l’idée de faire un petit logiciel répondant à mon besoin devenait envisageable. Je décidais de me lancer avec Python.

OpenCV

À mon propre étonnement, j’arrivais assez vite à quelque chose de fonctionnel. Grisé par le succès, je rêvais maintenant que mes photos se recadrent toute seules : je n’arrivais toujours pas à prendre les photos correctement cadrées sur le visage, et faire ça à la main après coup est vraiment fastidieux.

En cherchant de quoi faire de la détection de visage, je trouvais OpenCV. L’utilisation me paraissait très complexe, mais je tombais heureusement sur la bibliothèque Python Willow qui simplifie à l’extrême le traitement d’image de base (rotation, découpe…) et la détection de visage.

Le résultat

Après l’ajout d’une interface graphique en GTK3 (fastoche ; hum…), WhosWho était né !

capture d’écran

Il suffit de lui fournir un répertoire contenant les photos des élèves et, idéalement, un fichier CSV contenant leur nom et prénom (l’ordre des élèves dans le fichier CSV devant correspondre à l’ordre des photos lorsqu’on les trie par nom de fichier).

WhosWho a été conçu pour s’adapter aux cas d’usage qui me semblaient habituels :

  • on peut changer l’intitulé du trombinoscope ;
  • on peut préciser qu’un élève n’a pas de photo, et une image « par défaut » sera utilisée (on peut d’ailleurs la changer si on le souhaite) ;
  • il est possible de corriger ou d’aider à la reconnaissance des visages, qui n’est pas parfaite (et même très étonnante parfois) ;
  • différents formats sont possibles, en 150 et 300ppp :
    • A4, portrait, 4x5
    • A4, portrait, 5x6
    • A4, landscape, 6x4
    • A4, landscape, 7x4
    • A3, portrait, 6x8
    • A3, landscape, 9x6
  • on peut choisir de trier les élèves par nom ou par prénom ;
  • si l’utilisation d’un fichier CSV est trop complexe pour l’utilisateur, il est possible de s’en passer complètement.

Les perspectives

Je pense être le seul à me servir de ce logiciel, une fois par an, pour quelques trombinoscopes d’une université. Je suppose que le code est très mal structuré, mais je n’ai pas les compétences et encore moins le temps pour améliorer ça. Ça n’empêche que je suis sûr que ce logiciel pourrait profiter à d’autres presque en l’état, si deux défauts étaient corrigés :

  • bien qu’internationalisé, aucune traduction n’est publiée (le français est fait mais pas commité) : je voulais utiliser Weblate pour faciliter le travail des traducteurs, mais n’ai pas eu le temps de le faire ;
  • la méthode d’installation actuelle via pip est trop compliquée pour beaucoup de monde. J’avais fait la promotion de WhosWho sur la liste de diffusion debian-edu dans l’espoir de voir apparaître un paquet Debian, mais sans succès. J’ai tenté de créer un paquet Flatpak pour le distribuer via Flathub, mais je suis resté coincé sur une erreur de nom d’application et d’icône manquante…

Si vous avez des compétences sur l’un de ces sujets et l’envie d’aider, n’hésitez pas à me contacter !

Commentaires : voir le flux Atom ouvrir dans le navigateur

par YvanM, Ysabeau, Benoît Sibaud

DLFP - Dépêches

LinuxFr.org

Entretien avec GValiente à propos de Butano

 -  14 avril - 

GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano.Cet entretien revient sur son parcours et les raisons (...)


Nouveautés d'avril 2024 de la communauté Scenari

 -  11 avril - 

Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous (...)


Annuaire de projets libres (mais pas de logiciels)

 -  9 avril - 

Les communs sont une source énorme de partage !S’il est plutôt facile dans le monde francophone de trouver des ressources logicielles (Merci (...)


Les enchères en temps réel, un danger pour la vie privée mais aussi pour la sécurité européenne

 -  7 avril - 

Les enchères en temps réel, ou Real-Time Bidding (RTB), sont une technologie publicitaire omniprésente sur les sites web et applications mobiles (...)


XZ et liblzma: Faille de sécurité volontairement introduite depuis au moins deux mois

 -  31 mars - 

Andres Freund, un développeur Postgres, s’est rendu compte dans les derniers jours que xz et liblzma ont été corrompus par l’un des mainteneurs du (...)