Aller au contenu principal
Objectifs
  1. Comprendre l'importance des données EXIF sur une image ;
  2. Visualiser les données EXIF ;
  3. Se repérer sur une carte grâce aux données EXIF.

Les métadonnées EXIF

Introduction aux métadonnées

Les photographies prises par nos APN regroupent un ensemble d'informations qui ne sont pas visibles par l'utilisateur, à moins que celui-ci ne veuille les chercher.
Appelées métadonnées EXIF (pour EXchangeable Image file Format), ces informations concernent en grande majorité les méthodes et paramètres utilisés lors de la prise de la photo.

On pourra y retrouver entre autres :

  • Le constructeur de l'appareil;
  • Le modèle de l'appareil;
  • La résolution de la photo;
  • Des informations temporelles et géographiques;
  • L'exposition;
  • L'ouverture focale;
  • La balance des couleurs;
  • La compression des couleurs;
  • Des droits d'auteur;
  • ...

Tant d'informations qui peuvent se révéler utiles lorsque l'on souhaite effectuer des retouches photographiques.

Danger des informations

Malgré qu'elles ne soient supposées être accessibles qu'en lecture seule, les informations peuvent être modifiées avec des logiciels spécifiques. Il faut donc être prudent avec la lecture de données EXIF des images sur Internet.

Activité - Lecture de métadonnées EXIF

La lecture des données EXIF se fera à l'aide d'un programme python.

Au préalable

Sur EduPython, faire :

  1. Créer un nouveau fichier en cliquant sur l'icône 📄, ou en appuyant sur CTRL+N
  2. Enregistrer le fichier sous le nom Activite_1_EXIF en cliquant sur l'icône 💾, ou en appuyant sur CTRL+S
Fonctionnalités Image et TAGS de PIL

Pour visualiser l'ensemble des données EXIF d'une image, il va falloir utiliser la bibliothèque PIL avec 2 de ses fonctionnalités : Image (vu dans le TP1 et TP2), et TAGS pour visualiser les tags, c'est-à-dire le nom des informations.
On utilisera les 2 lignes suivantes :

from PIL import Image
from PIL.ExifTags import TAGS

Exercice 1 - Programme de lecture

  1. Enregister l'image suivante : photo.jpg en lui donnant le nom photo.
    On enregistre avec clic droitEnregistrer le lien sous.
  2. Dans python, ouvrir la photo, et l'enregistrer dans la variable img. Regarder ici pour retrouver la fonction.
  3. La bibliothèque PIL permet d'extraire les données EXIF. Écrire les lignes suivantes :
    donnees = img._getexif()
    print(donnees)
  4. Qu'affiche la console ?
Description

donnees est un dictionnaire dont la clé est une clé EXIF (qui correspond à une donnée spécifique), et la valeur associée à la valeur pour la clé donnée de la photo.

  1. Pour savoir ce que représentent les clés, nous allons utiliser la fonctionnalite TAGS. Recopier le code suivant :
    for cle, valeur in TAGS.items() :
    print("clé :",cle,", information :", valeur)
  2. Qu'affiche la console ?
Dictionnaires

On peut accéder à des valeurs spécifiques de nos métadonnées en faisant : donnees[cle], en remplaçant "cle" par une clé spécifique.

  1. Chercher les clés dont la valeur est Make (Fabriquant) et Model (Modèle), et afficher le fabriquant et le modèle de l'appareil qui a pris la photo.

Les photos ne contiennent pas obligatoirement toutes les métadonnées remplies. On cherche maintenant à afficher l'ensemble des clés et des valeurs des métadonnées d'une image.

  1. En vous aidant du code donné plus haut, recopier et compléter le code suivant :
    for ..., ... in donnees.items():
    print("numéro :", ... , ", information :", TAGS.get(...),", valeur :", ...)
info

TAGS.get permet d'afficher l'information associée à une clé.

Exercice 2 - Informations géographiques

Certaines images contiennent des métadonnées géographiques, c'est-à-dire que l'on est capable d'identifier l'endroit où la photo a été prise.

  1. En se servant de la question 5 de l'exercice 1, trouver le code contenant des informations GPS.
  2. En vous aidant de la question 7 de l'exercice 1, afficher les données géographiques de l'image.
Lecture des données obtenues
  • Clé 1 : lettre représentant l'hémisphère (Nord, Sud)
  • Clé 2 : représente les coordonnées de la latitude
  • Clé 3 : lettre représentant le côté par rapport au méridien Greenwich (West, East)
  • Clé 4 : représente les coordonnées de la longitude
Interprétation des clés 2 et 4

La longitude et latitude sont toujours représentées par : un degré, des minutes et des secondes.
Dans les données EXIF, elles sont sous la forme : ( (degré,1), (minute,1), (seconde, une puissance de 10) ).

Exemple : ( (47,1), (32,1), (2514353,100000) ) qui nous donnerait : 47°32'25,14353''.

On se place ici dans le DMS (Degré-Minute-Seconde) pour représenter un angle en base 60 (système sexagésimal).

Conversion en Degré Décimal

Pour représenter un point sur une carte, il faut passer du DMS au Degré Décimal (DD) pour la latitude et la longitude.
La conversion se présente de cette façon :

  • On garde la valeur du degré
  • On divise les minutes par 60
  • On divise les secondes par 3600
  • On additionne le tout

Si on est dans l'hémisphère Sud, ou si on est à gauche du méridien Greenwich, on met un "-" devant la valeur obtenue.

  1. À partir de ces informations, traduire en DD la latitude et longitude de l'image.
  2. En allant sur OpenStreetMap (utilitaire de carte), renseigner dans la barre de recherche, sous la forme longitude, latitude, les informations trouvées. Vérifier avec le nom de la ville et la photo si on est au bon endroit !
Importance des métadonnées

John McAfee, créateur de l'antivirus éponyme, a été impliqué dans une affaire de meurtre aux États-Unis, et a fui le pays. Il a par conséquent été recherché.
Au Guatemala, un journaliste de Vice l'a photographié et a publié la photo sur le web. La photo contenait des métadonnées dont des données GPS, indiquant ainsi sa position, et permettant son arrestation.
Source : le Monde