Der folgende Artikel ist ein Gastbeitrag von Prof. Jochem Berlemann und Prof. Marietta Ehret (Lemgo). Beide sind Autoren des Blogs mathezartbitter, den ich hiermit ausdrücklich empfehlen möchte. Die Bilder lassen sich durch Anklicken vergrößern. TK

Löcher in Daten II

Bilder geben uns immer wieder Rätsel auf. Insbesondere Fotos bilden die Wirklichkeit ab, enthalten Informationen und haben eine Ästhetik. Ist es möglich, die Informationen eines Bildes algorithmisch auszuwerten und neben der Information jedes einzelnen Pixels und den Metadaten weitere Merkmale zu entdecken, möglicherweise eine Landschaft zu klassifizieren oder zu bestimmen?

Im Beitrag Löcher in Daten hat Thilo Kuessner auf einen Artikel von Gunnar Carlsson et al. hingewiesen. Diese Mathematiker haben digitale monochrome Landschaftsfotos („Kodakbilder“ aus der von Hateren/von Schaaf-Datenbank) ausgewertet. Aus lokalen Eigenschaften (3 x 3 px-Ausschnitte) der Bilder haben sie ein Modell eines Vektorraumes erzeugt, indem die 3 x 3 px-Ausschnitte eine 2D-Untermannigfaltigkeit mit der Struktur der Kleinschen Flasche bilden. Wir möchten in diesem Beitrag diesen faszinierenden Artikel unter vorwiegend fotografischen Aspekten untersuchen.


1. Offene Fragen

So haben wir uns gefragt, ob diese Kleinsche Flasche alle Informationen der Bilder der o.g. Datenbank holländischer Landschaften enthält. Wir sind der Meinung, dass in solchen Untersuchungen eher die verwendete Aufnahmetechnik – wie Pixelgröße, Objektiv, Dynamikbereich des Sensors – sowie die Lichtsituation die Ergebnisse wesentlich prägen.


2. Die Vorgehensweise

Um das zu illustrieren – und um reproduzierbare Ergebnisse zu bekommen – haben wir computergenerierte Bilder erzeugt. Aus denen werden 3 x 3 px-Ausschnitte an ganz spezifischen Stellen gewählt. Das sind gerade solche Stellen, die einen starken Kontrastverlauf zeigen und in denen eine lokal variable und auswertbare Information enthalten ist.


3. Referenzbilder

Die von Hateren-Kamera ist eine Kodak 240, siehe Kodak 400 und van-hateren-dataset. Diese wurde von uns mit einem 9,2 x 13,8 mm-Sensor mit einem 30 mm-Objektiv imitiert. Die Motive der Bilder aus der Datenbank entsprechen eher biologischen als technischen oder mathematischen Aspekten. Abb. 1 zeigt das Bild einer Baumgruppe, das mit den technischen Daten der Kodak 240 gerendert wurde.

IMG_0499

Abb. 1: Bild mit Daten der Kodak 240 gerendert

Dazu ein Bild, wie es von einer digitalen Vollformatkamera mit 50mm-Objektiv käme und vom Motiv vielleicht zum holländischen Setting passt (Abb. 2).

IMG_0500

Abb. 2: Vollformatbild, mit 2000 x 1200px gerendert.

Die Bilder sind natürlich nicht deckungsgleich, da wir verschiedene Objektive und Sensorgrößen haben. An den Stellen des roten Kreuzes wurden nun Ausschnitte gebildet, die hier vergrößert gezeigt werden:

Zuerst der Rand eines Baumes aus Bild 1 (Referenz):

IMG_0479

Abb. 3: Ausschnitt aus Bild 1 (Referenz) an der gekennzeichneten Stelle

Der vergleichbare Ausschnitt (siehe rotes Kreuz) im Vollformatbild:

IMG_0480

Abb. 4: Ausschnitt aus Bild 2 (Vollformat) an der gekennzeichneten Stelle

Da fällt schon mal auf, dass die höhere Auflösung des Bildes und des Sensors viel mehr Informationen liefern. Das erste Bild würde man als kontrastreicher einschätzen, was dann eventuell eine Klassifikation erleichtert. Das 2. Bild enthält dagegen mehr Helligkeitsdetails über den Übergang dunkel/hell.


4. Der verwendete Algorithmus

Der in On the Local Behavior of Spaces of Natural Images von Carlsson et al. beschriebene Algorithmus, wählt einen „typischen” Ausschnitt von 3 x 3 px. Die (logarithmische) Helligkeit jedes Pixels wird als 9D-Vektor aufgefasst. Von jeder Koordinate wird der Mittelwert aller Koordinaten des Vektors abgezogen, und anschließend der Vektor wird mit einem geeigneten Faktor multipliziert. Das machen wir hier so:

Sei x der Vektor der Helligkeiten eines 3 x 3px-Ausschnittes:

x = (x_{1,1}, x_{1,2},  \dots x_{3,3})

was man einerseits auch als Matrix schreiben kann, und diese Nummerierung verwenden wir:

IMG_0493

und andererseits können wir den Vektor x mit seinen Komponenten auch in eine Zeile schreiben und durchzählen von 1 bis 9:

1 / 2 / 3 / Auf einer Seite lesen

Kommentare (2)

  1. #1 rolak
    18. Januar 2017

    Sehr schöner Text – kommt ja auch meiner Neigung zu Basteln und Photographie entgegen. Leider ist just der Kameralink unter die Gänsefüße gekommen: DCS 400.

  2. #2 Thilo
    18. Januar 2017

    Danke, ist jetzt korrigiert.