Images, métadonnées et encapsulage XMP ou IPTC

Bonjour,

J’utilise, depuis quelques temps, Exiftool pour encapsuler de l’information, sous la forme de métadonnées IPTC/IIM ou XMP, dans des images fixes. Pour pouvoir traiter un très grand nombre d’images, j’ai améliorer un petit programme en PERL qui permet, depuis un fichier de type texte structuré (un tableau de données donc), d’écrire des informations sous la forme de métadonnées embarquées dans l’image. Dans la mise en place de corpus en SHS, l’utilisation des programmes en PERL n’est plus « à la mode » à l’heure du tout web : c’est dommage car ce langage est très pratique pour traiter de gros volume de données.

Le programme en question est simple : pour chacune des images, il encapsule les informations structurées correspondantes. ces informations sont présentes sous forme de lignes dans le tableau. Les champs, qui structure les informations, sont déterminés par les colonnes du fichier. C’est pour cela que j’utilise le format CSV (Comma-separated values) pour mon petit tableau. Les informations sont donc disposées de la façon suivante :

Cals

La 1ère ligne contient principalement le nom des champs IPTC (title, date, etc.) ou XMP. Je renvois le lecteur au site de Ph. Harvey qui liste l’ensemble des type de champs qu’il possible de gérer avec Exiftool.

A partir de ce tableau et avec le programme PERL, il est donc possible d’écrire les informations, selon leurs champs, dans chacune des images listée dans la première colonne.

Pour faire fonctionner ce petit programme PERL, que j’ai nommé cn2sv-CSVtoXMP.pl, il faut un environnement PERL installé sur son ordinateur. Sous Linux ou Unix, PERL est en standard. Sous Windows, je conseille d’installer le logiciel Active Perl. Il suffit de l’installer à la racine de C:\. (dans C:\Perl par exemple). Il est important d’installer Active Perl avec toutes ses options.

Il faut ensuite créer, par exemple, un répertoire « C:\Perl\eg\CSVtoXMP » et y mettre le contenu de cette archive zip que j’ai préparé pour plus de facilité et qui contient :

  • un répertoire « lib » contenant les librairies perl
  • un répertoire « img » contenant les images à traiter
  • le script exiftool-CSVtoXMP.pl qui va faire le travail
  • le programme exiftool.pl (version PERL d’exiftool) de Ph. Harvey
  • le fichier data.csv contenant les méta-données à en-capsuler dans les images

Redémarrez ensuite votre ordinateur.

Une fois le fichier data.csv conforme avec vos besoins. Il suffit de lancer l’outil en utilisant une ligne de commande sous DOS (ou Linux). Sous windows, « démarrez »> »Executer »> »cmd » ; puis « cd Perl\eg\CSVtoXMP ». Ensuite vient le temps du lancement du programme à proprement parlé : exiftool-CSVtoXMP.pl data.csv img ou « exiftool-CSVtoXMP.pl » = le nom de l’outil ; « data.csv » = le nom du fichier csv ; « img » = le nom du répertoire contenant les images.

Bon encapsulage de métadonnées ! Pour les plus mordus, je met ci-dessous le code PERL de Ph Harvey que j’ai utilisé et simplifié.

#!/usr/bin/perl -w
use strict;
BEGIN {
# add script directory to include path
my $exeDir = ($0 =~ /(.*)[\\\/]/) ? $1 : '.';
unshift @INC, "$exeDir/lib";
}
use Image::ExifTool;

my $txt = shift or die
"Lancement du script : exiftool-CSVtoXMP.pl 
NOMDUFICHIERCSV [NOMDUREPERTOIREDESIMAGES]\n";

open FILE, $txt or die "Erreur d'ouverture de $txt\n";
my $dir = shift || '';
$dir .= '/' if $dir;

my $exifTool = new Image::ExifTool;
my @tags;
while (<FILE>) {
chomp;
# split up values found in this line (assume tab delimiter)
my @values = split /\t/, $_;
next unless @values;
unless (@tags) {
$values[0] eq 'filename' or die "'filename' introuvable\n";
shift @values;
@values or die "Pas d'attribut\n";
@tags = @values;
print "Enregistrement des attributs : @tags\n";
next;
}
my $file = $dir . shift(@values);
unless (-e $file) {
warn "$file non présent\n";
next;
}
@values >= @tags or die "Pas de valeur pour l'attribut : $file\n";
my $tag;
$exifTool->SetNewValue();   # clear old values
# set new values for all tags
foreach $tag (@tags) {
my $val = shift @values;
$exifTool->SetNewValue($tag, $val);
}
# update the file
my $result = $exifTool->WriteInfo($file);
if ($result == 1) {
print "$file mise à jour\n";
} elsif ($result == 2) {
print "$file non mise à jour\n";
} else {
print "$file - erreur d'écriture!\n";
last;
}
}
# end

Bon dimanche.

Stéphane.

Erudition en réseau

L’École de l’érudition regroupe quatre institutions françaises (1) spécialisées dans l’étude, la recherche et la formation aux disciplines scientifiques de l’histoire et de l’érudition. Les stages, enseignements semestriels, séminaires de recherche, conférences et journées d’études fédérés dans ce réseau ont pour objectif d’aider les étudiants à mieux connaître les sources pour l’histoire de l’Occident et du monde méditérranéen, entre la fin de l’Antiquité et la naissance du monde moderne (ve-xviie siècle).

(1) : École Nationale des Chartes ; CESCM ; École Pratique des Hautes Études ; Institut de Recherche et d’Histoire des Textes

e-rudition : acte 1

Le chemin, c'est l'endroit où l'on passeNous réfléchissons avec des collègues sur la notion d’érudition à l’heure des masses de données numériques.

La gestion d’une masse importante de données numériques est une chose nouvelle dans certaines branches des sciences humaines et sociales (SHS). Familière en physique, en sciences de l’univers et même depuis quelques années en archéologie, cette notion de masse impose parfois un changement dans la façon de mener les projets de recherche. Si le travail solitaire en archive et en bibliothèque existe toujours, il est également possible de bâtir des projets de recherche ayant pour corpus plusieurs milliers de documents nativement numériques. Ces projets sont le plus souvent collectifs car la numérisation et/ou la gestion de documents numériques – dont le support de conservation peut-être multiple (une photo et un enregistrement sonore peut être sur un même support : un disque dur, une carte mémoire, un CDROM, etc ; je revois le lecteur à la leçon inaugurale en vidéo de Gérard Berry, titulaire au Collège de France de la chaire d’innovation technologique – Liliane Bettancourt) – entraine la mise en place d’une chaine de traitement de ces données regroupant plusieurs savoirs-faire. Si l’un fait défaut, la chaine peut être compromise. Ce n’était pas le cas lors du travail solitaire du chercheur en bibliothèque, sauf si cette dernière disparait ou brule. La masse des données entraine donc une gestion « en équipe » des projets.

La préservation des grandes masses de données numériquement natives, que nous appellerons ici numnatives, soulève une autre question : la fragilité de ces dernières – si facilement effaçables – oblige les personnes y travaillant dessus à utiliser des moyens de stockage et de traitement nouveaux, du moins pour certains domaines. Ainsi apparaît, dans les SHS, la notion de grille de stockage et de calcul pour traiter les masses de données : calculer une surface de polygones à partir d’un nuage de points issus d’un scanner 3D (traitement de façades), traitements 2D/3D dans les systèmes d’information géographique, systèmes de zooms dynamiques sur les images 2D sous PHP/GD, etc. Avec les masses de données, ce qui change, ce sont aussi les besoins de traitement. Ceci entraine un travail obligatoirement collectif, car un chercheur ne peut développer ce type de structure de travail que dans un espace collectif de travail et dans un esprit de partage des données sources non-traitées : on ne monte pas un centre de calcul – donc une chaine de compétences – pour une seule personne. Les masses de données brutes, non traitées, perdront ainsi peu à peu ce curieux statut de « propriété personnelle » de M. ou Mme X. Les données numnatives collectées par une équipe seront petit à petit versées dans de grands réservoirs de données, le plus souvent inter-institutionnels et seront utilisables par plusieurs chercheurs en même temps et travaillant dans plusieurs équipes respectives.

Dans ce contexte, l’érudition sur un domaine, intègre des notions nouvelles : la virtualisation des données, donc la déconcentration des sources du savoir et la notion de flux, donc le pas de temporalité. Il ne s’agit plus de savoir où sont les sources, mais comment les traiter et comment en traiter autant.

Ceci est le point de départ, selon moi, de ce que nous pourrions appeler l’e-rudition.

Photo : Stéphane Pouyllau, Un chemin dans les monts du Caroux, « le chemin, c’est l’endroit où l’on passe ».

E-Recherche : outils en ligne pour les chercheurs

Développée pour les chercheurs, ReseachGATE est une plateforme web 2.0 offrant des services pour les chercheurs permettant principalement d’échanger, rechercher et diffuser de l’information scientifique et technique. La phrase clé est : ResearchGATE is for scientists built by scientists driven by the concept of Science 2.0. Cette plateforme est un peu un facebook pour scientifiques. Il est possible d’y déposer sa liste de publication (chargement au format EndNote uniquement et c’est un peu dommage), d’y créer des groupes de recherche et des colloques « virtuels ». La gestion du profil est calqué sur facebook, on peut se demander pourquoi, par exemple, ils demandent « Relationship Status » (marié, célibataire,…). Ce type de plateforme trouvera-t-elle un modèle économique de fonctionnement à long terme ? Serait-il judicieux que les institutions de recherche (CNRS, Universités, …) s’en dote ? Comment se fera l’appropriation de ce type de plateforme ? Ces questions, qui n’ont pas encore de réponse claire, seront au cœur des métiers d’accompagnement de la recherche dans les années qui viennent.

Bonne journée,

Stéphane.