Notes de l'atelier

Tes noms de dossiers étaient les données d'entraînement

L'archive sur laquelle cette application a été construite compte 314 391 fichiers : environ 223 000 photos et 91 000 vidéos, sur un disque externe de 6 To, dont 1,7 To de photos et de vidéos, de 1998 à 2026. C'est tout l'album visuel d'une famille, et comme beaucoup de familles, elle a traversé deux ères très différentes pour le tenir à jour.

De 2004 à 2016, chaque événement avait son propre dossier, nommé à la main, le lendemain de l'événement : 2012-04 — le voyage de printemps, ce genre de chose. Environ 600 de ces dossiers. Puis, vers 2016, les dossiers ont cessé. Ce qui les a remplacés, c'est le défaut moderne : d'immenses déversements plats de sauvegarde de téléphone, des milliers de fichiers nommés IMG_4471.HEIC, regroupés par rien d'autre que la plage de dates où une sauvegarde s'est produite. (Si tes années récentes sont encore piégées sur le téléphone lui-même, le guide de transfert iPhone explique comment les faire arriver sur le disque.)

Le plan évident pour un outil comme celui-ci, c'est de détecter automatiquement les événements et de générer automatiquement des noms pour toute l'archive, ère nommée et ère déversée confondues. Ce que je n'avais pas anticipé, c'est que l'ère nommée n'était pas seulement plus agréable à regarder. C'était un jeu de données étiqueté, profond de douze ans, disponible gratuitement.

Une vérité de référence, pas une supposition

Six cents frontières d'événements tracées à la main, c'est le genre de chose pour laquelle on paierait normalement. Cette famille avait déjà décidé, événement par événement, où un moment se termine et où le suivant commence. Alors plutôt que de choisir une approche de regroupement d'événements toute faite en espérant que ça sonne juste, j'ai traité les dossiers nommés comme la vérité de référence sur la façon dont cette famille précise découpe le temps en événements, et j'ai calibré directement en fonction d'eux.

L'approche de regroupement elle-même est délibérément simple : une passe basée sur les écarts de temps, qui regroupe les photos dans le même événement chaque fois que l'écart entre deux horodatages consécutifs reste sous un seuil. Le seul vrai réglage, c'est où placer cet écart. Je l'ai mesuré avec l'accord de co-appartenance par paires. Pour chaque paire de photos de l'ère nommée, je vérifie si le découpage humain en dossiers est d'accord avec le découpage de l'algorithme (les deux ensemble, ou les deux séparés), et je calcule la fraction qui est d'accord. Je fais varier le seuil, je trace la courbe, je prends le pic.

314 391
fichiers dans l'archive fondatrice
~600
dossiers d'événements nommés à la main, 2004 à 2016
F1 0,93
avec un seuil d'écart de 24 heures

Le pic est tombé à un écart de 24 heures, avec un F1 de 0,93 par rapport aux dossiers nommés. Ce n'est pas un repère tiré d'un article scientifique. C'est un chiffre calibré sur douze ans de jugements propres à une famille sur où ses événements commencent et finissent. Le « bon » seuil de regroupement n'est pas universel ; c'est une propriété de la façon dont une famille précise vit. Cette famille, apparemment, ne découpe pas un voyage de deux jours en deux événements simplement parce qu'elle a dormi quelque part entre les deux. Un écart de 24 heures capture ça. Les dossiers nommés d'une autre famille pourraient culminer complètement ailleurs, et l'application est conçue pour re-mesurer par archive plutôt que de supposer qu'une valeur par défaut suffit.

Une fois que les événements se regroupent comme la famille les regroupe déjà elle-même, le nommage devient le problème suivant, et la même astuce s'applique à nouveau : les 600 dossiers nommés sont aussi un guide de style. 2012-04 — le voyage de printemps montre la convention de la famille : préfixe de date, tiret cadratin, minuscules, court et précis plutôt que générique (« le voyage de printemps », pas « Sortie en famille »). Le nommage automatique de la décennie non nommée apprend cette voix au lieu d'en imposer une générique.

Les écueils qui auraient discrètement tout corrompu

Trois choses sont apparues en construisant ça et valent la peine d'être notées. Aucune n'est visible avant qu'on aille la chercher, et chacune aurait silencieusement dégradé la chronologie si j'avais fait confiance à la source de vérité évidente.

Les horloges d'appareil photo mentent, les noms de dossiers non. Dans l'ère nommée, les horloges d'appareil photo étaient parfois décalées d'un an, fausses de la façon dont une horloge d'appareil photo se dérègle quand personne ne la remet à l'heure après un changement de pile. La correction a consisté à arrêter de faire confiance à l'EXIF comme vérité par défaut pour la datation, et à laisser plutôt le préfixe de date tapé à la main dans le nom du dossier l'emporter chaque fois que les deux sont en désaccord. La personne qui a tapé 2012-04 dans un nom de dossier la semaine où c'est arrivé est un meilleur témoin que l'horloge interne d'un appareil photo qui n'a pas été vérifiée depuis des années.

Les médias numérisés portent la mauvaise date, deux fois. Les vieilles cassettes de caméscope, numérisées plus tard, sont pires : l'horodatage du fichier reflète le moment de la numérisation, pas celui où les images ont été tournées. Pour cette catégorie de fichiers, l'EXIF est faux de façon structurelle. La correction a la même forme que celle de l'horloge d'appareil photo, un niveau plus haut : pour les médias scannés et numérisés, le dossier année sous lequel la famille l'a classé prime sur l'horodatage propre du fichier, parce que le dossier décrit le souvenir et l'horodatage décrit la séance de numérisation.

Les voyages ont besoin d'une définition de « la maison » qui ne se laisse pas berner par l'enthousiasme. Pour détecter un voyage, c'est-à-dire un départ hors de la vie normale, l'application doit savoir où était « la vie normale », et ça change sur 28 ans à mesure qu'une famille déménage. Compter les photos par lieu échoue : des vacances de cinq jours génèrent bien plus de photos que cinq journées ordinaires à la maison, si bien qu'un lieu visité une seule fois pendant une semaine peut l'emporter sur la maison où la famille a réellement vécu pendant six mois. La correction est un modèle de « maison » qui vote par semestre en utilisant des jours distincts passés à un endroit, pas des comptes de photos. Un lieu ne compte comme « maison » qu'en étant habité sur de nombreux jours différents, pas photographié beaucoup pendant quelques-uns d'entre eux. Compter des jours plutôt que des photos, c'est ce qui permet à un voyage d'être reconnu comme un départ de la maison plutôt que de réécrire silencieusement où était la maison.

Le seuil ne se généralise pas. La méthode, si : quand une partie d'une archive a été étiquetée à la main par les personnes qui l'ont vécue, c'est une vérité de référence, et ça vaut la peine de mesurer par rapport à elle plutôt que de supposer qu'une valeur par défaut est assez proche.

Laisse tes propres noms de dossiers faire le travail
L'application lit tes dossiers nommés à la main comme la vérité sur tes événements et apprend ton style de nommage pour le reste. Gratuit pour essayer (100 photos de chaque année), $59 une fois pour tout débloquer.
Télécharger gratuitement pour Mac
← Retour à tous les articles