Semantische Bildsuche

zum Projekt

Das Projekt

Ein Bild sagt mehr als tausend Worte.

Die manuelle Verschlagwortung von Bildern ist eine lästige Angelegenheit. Mindestens genau so frustrierend ist es, bei der Verwendung einer Suchmaschine nicht die richtigen Worte zu finden, um eine bestimmte Art von Bild zu finden. Beispielsweise können Bäume aufgrund ihrer Optik und Umgebung recht unterschiedlich wirken:

inline_wald

Solche Unterschiede lassen sich oft nur schwer in Worte ausdrücken. Daher beschäftigte ich mich in meiner Masterarbeit damit, wie uns neuronale Netze dabei helfen können, solche semantisch ähnlichen Bilder anhand eines Beispielbilds zu finden. Meine Arbeit trägt den Namen Modellierung von semantischer Ähnlichkeit von Fotografien mittels neuronaler Netze. Ziel war es, Fotografinnen und Fotografen Fotos sammeln und anschließend die Ähnlichkeit von Bildpaaren bewerten zu lassen. Kern der Arbeit war es, auf Basis der Bewertungen und Fotos dem Computer beizubringen, welche Bilder ähnlich sind und welche nicht. Diese Modelle sollten im Empfehlungssystem des Photomaster Projekts Anwendung finden. Dazu dient das ML-Modell als "Vektorisierungstool" für Fotos. Das heißt, es transformiert ein beliebiges Bild in einen Vektorraum, in dem ähnliche Fotos nah beieinanderliegen. Über eine Nachbarschaftssuche können die ähnlichsten Fotos gefunden werden. Im Unterschied zu anderen Datensätzen liegt der Fokus auf feingranularen semantischen Unterschieden, die beim Betrachten eines Fotos entstehen. Ich experimentierte mit verschiedenen Topologien, Verlustfunktionen und Augmentierungstechniken. Die besten Ergebnisse erziele ich mit Triplet-Netzwerken. Ein limitierender Faktor in dieser Arbeit war der Umfang des Datensatzes. Die Auswertung zeigte, dass mit noch mehr Bilddaten die Qualität der Ergebnisse weiter verbessert werden könnten.

Da ich aufgrund Corona alle Studien "remote" durchführen musste, implementierte ich mit Django und Vue.js eine simple Plattform, auf der Testpersonen meinen Referenzbildern eigene Fotos zuweisen konnten:

inline_Screenshot_20220707_144552

Verwendete Tools

Python, Tensorflow, Annoy, Django, Postgres, Vue.js, Bootstrap, Docker, AWS