static.andreasherten.de

Campsite Pictures

06 September 2014, 14:30

The following post is written in German as it solely addresses a German-speaking audience

2014 ging unser Pfadfinder-Sommerlager in die Nähe von Lübeck. Und zum ersten Mal hatten wir fünf aktive Fotografen dabei. Super!

Nachdem die Fotos sortiert waren und in erster Instanz getagged waren (‘von Andreas’ zum identifizieren des Fotografens, sowie von Picasa automatisch erkannte Gesichter gespeichert im entsprechenden EXIF-Tag) habe ich ein bisschen mit Python rum gespielt um ein paar Graphen zu erstellen.

Die folgen sogleich, eine kurze Erklärung der Hintergründe kommt weiter unten.

Graphen

Zeitliche Verteilung der Bilder über das Lager hinweg

Die Gesamtzahl der Fotos im Sommerlager 2014, sortiert nach Tagen.

Da wir mehrere Fotografen vor Ort hatten, kann das natürlich noch nach Fotograf sortiert werden.

Zeitliche Verteilung an einem Tag

Um welche Uhrzeit werden die meisten Fotos geschossen? Zwischen 15 und 16 Uhr sowie zwischen 20 und 21 Uhr.

Auch das geht natürlich geordnet nach allen Fotografen. Meine Fotos sind die, die hauptäschlich in der Mittagszeit entstehen. Susanne macht das entweder abends oder morgens. Peter ist der einzige, der nach Zwölf noch knipst.

Getaggte Personen

Ich habe ein paar Gesichter der Fotos getaggt. Bei weitem nicht alle, sondern nur die, die Picasa.app gruppiert und mit Namen vorgeschlagen hat. Unter derartig getaggten Bildern ist die Häufigkeitsverteilung wiefolgt:

Schauen wir uns mal die sieben häufigsten erkannten Gesichter an. Wann wurden die denn fotografiert? Jonas scheint lange aufzubleiben.

Andere Sommerlager

Wie verhält sich denn die Foto-Verteilung über den Tag hinweg im Vergleich zu den anderen Lagern? Ich habe mir die letzten drei Sommerlager angeschaut.

Normalisiert auf die Anzahl der Fotos im jeweiligen Sommerlager sieht das dann wiefolgt aus. Man erkennt, dass es immer mal ein/zwei Tage gibt, bei denen viel mehr fotografiert wird als an den anderen Sommerlagertagen.

Technischer Hintergrund

Ich habe jedes Bild mit dem EXIF-Keyword »von Fotograf« um, unabhängig vom Kameramodell, den Fotografen eindeutig identifizieren zu können.
Picasa verfügt über eine Gesichtserkennung, die, mit entsprechender Option in den Einstellungen aktiviert, die Gesichtsnamen in allgemein EXIF-Tag namens »RegionName« ablegt. Im wesentlichen definiert es erst eine Region (mit dem Namne des Gesichts) und beschreibt in weiteren, assoziierten Tags die Koordinaten der Region. Kann man sicherlich auch noch auswerten. Hab ich aber nicht. Ich habe auch nicht alle gefundenen Gesichter betaggt, sondern nur die, bei denen Picasa mir schon einen Namnesvorschlag angeboten hatte.

Aller im Folgenden erläuterter Code ist in einem Gist-Repo zusammengefasst.

Zum Extrahieren der EXIF-Informationen aus den Bildern habe ich pyexif genommen, das im wesentlichen ein Python-Wrapper für das Kommandozeilen-Werkzeug exiftool ist. Alle anderen, etwas nativeren Python-EXIF-Zugänge hatten bei meinem Test immer irgendwelche Probleme.
Um mich nicht mit Restruktierung von geschriebenen und gelesenen Daten auseinanderzusetzen, habe ich als Speicherungsformat JSON benutzt.
Das entsprechende Skript ist picStats.py.

Zum resortieren der Information und anzeigen als Graphen habe ich die bekannte Kombination aus Pyplot, Numpy und Prettyplotlib (für schönere Graphen) genommen. Der Aufwand hier war aus den Datumsinformationen konsistente, anzeigbare Werte zu extrahieren, zum Beispiel für die Stunden am Tag. Und herauszufinden, wie die Pyplot-API denn eigentlich so genau funktioniert. Das vergisst man nämlich nach zwei Monaten Nichtbenutzens (ein Naturgesetz).
Zur Übersicht habe ich alles in einem File zusammengefasst: createPictureGraphs.py.

Mich interessierte auch, wie dieses Sommerlager im Vergleich zu anderen Sommerlagern abschnitt, bei denen wir weniger Fotografierende hatten. compareYears.py stellt das dar.

Python macht Spaß.