AR Anwendung: Wie sieht die Welt für Farbenblinde aus?

Diese Frage habe ich mir immer wieder gestellt. Die Berücksichtigung von unterschiedlichen Farbfehlsichtigkeiten spielt für Designer eine große Rolle. Bei gängigen Farbkombinationen wie z.B. Rot- mit Grüntönen weiß man, dass es diese zu vermeiden gilt und im Internet gibt es eine Vielzahl an Definitionen und Erklärungen, wie sich eine Farbfehlsichtigkeit auswirkt. Doch weder die oberflächliche Theorie noch die anschaulichen Beispielbilder konnten meine Frage wirklich beantworten. Ich wollte das Gefühl und die Erfahrung der Farbfehlsichtigkeiten in der realen Welt erleben, um sie besser verstehen zu können. Im Alltag und bei Objekten und Situationen, die mir bekannt sind.

Nachdem wir in letzter Zeit bereits öfter über Augmented Reality berichtet hatten und bereits unsere ersten Filter zum Eurovision Song Contest und Life Ball präsentiert haben, war es ein logischer Schritt, diese Technik zu verwenden, um diese Erfahrung zu realisieren.

Somit war die Idee für einen Kamerafilter, welcher Farbfehlsichtigkeiten anhand eines Kamera-Live-Bildes simuliert, geboren. Damit wollen wir einerseits jedem Menschen die Erfahrung einer Farbfehlsichtigkeit zuteil werden lassen und andererseits zeigen, dass FaceFilter nicht nur für Spiel und Spaß eingesetzt werden müssen. Vielmehr ist es auch ein perfektes Werkzeug, um Bewusstsein für bestimmte Themen zu schaffen.

Wer seine eigene Umgebung in unterschiedlichen Farbfehlsichtigkeiten entdecken möchte, der kann unseren Filter für Instagram und Facebook ausprobieren. Mit den beiden Links werdet ihr automatisch in die Instagram- bzw. Facebook-Kamera weiter geleitet. Wer uns auf Instagram folgt, entdeckt den Filter auch unter den Effekten in der Instagram-Kamera. Wir sind gespannt, wie eure Welt der Farbenblindheit aussieht. Zeigt es uns mit unserem Filter und verlinkt uns in euren Fotos.

In diesem Blogpost möchte ich über meine Erfahrungen und die Herausforderungen bei der Umsetzung des Filters berichten. Unsere bisher umgesetzten Filter basierten, mehr oder weniger, auf statischem Bildmaterial. Neben den Tracking Funktionen, also dem Erkennen von Position und Ausrichtung des Gesichtes, wurden Bilder, welche zuvor aufbereitet wurden, über das Gesicht gelegt. Dieses mal musste jedoch das aktuelle Bild der Kamera live analysiert und bearbeitet werden. Ich musste mich also mit dem Thema “Shader” beschäftigen, das ich bisher erfolgreich ignorieren konnte.

Was ist ein Shader?

Einfach gesagt berechnen Shader in der Computergrafik das Erscheinungsbild von Objekten. Hierfür ist eine komplexe Abfolge von Berechnungen (Position des Elements, Reflexion, Beleuchtung, Farbe, etc) notwendig. Diese Berechnungen müssen für jeden Pixel, der dargestellt wird, durchgeführt werden. Somit kann er individuell, je nach Position im Raum, unterschiedliche Ergebnisse liefern. Zum Glück programmieren wir keine gesamten 3D-Welten, wie das in Computerspielen oder VR der Fall wäre. Einige Auswirkungen wie Beleuchtung oder Reflexion werden in unserem Fall also ohnehin bereits durch das Kamerabild geliefert. Um das tatsächliche Bild so real wie möglich mit Farbfehlsichtigkeiten wiedergeben zu können, wird also lediglich die Farbe des einzelnen Pixels verändert. Doch wie muss die Farbe jedes Pixels geändert werden, um eine Farbfehlsichtigkeit zu simulieren?

Tschüss sRGB – Hallo Wellenlängen

Um diese Frage zu beantworten, hatte ich lange recherchiert. Um zu verstehen, wie sich Farbfehlsichtigkeiten auswirken, muss man wissen, warum es überhaupt dazu kommt. An dieser Stelle möchte ich nur ganz kurz unseren Biologieunterricht aus der Schule auffrischen.

Wie wir wissen, entstehen Bilder, die wir sehen, mithilfe unserer Augen. Das Licht, welches aus der Umgebung reflektiert wird, trifft auf unsere Netzhaut. Dort “übersetzen” Rezeptoren, sogenannte Zapfen und Stäbchen, das Licht in Signale, welche an das Gehirn weitergeleitet und dort zu einem Bild zusammengefügt werden. Während die Stäbchen für die Erkennung von Hell und Dunkel verantwortlich sind, ermöglichen uns die Zapfen die Erkennung von Farben. Genau das ist der Punkt, der für die Farbfehlsichtigkeiten relevant ist. Das Auge enthält drei Arten von Zapfen für die unterschiedlichen Wellenlängen des Lichts – S-Zapfen für kurze (short) Wellenlängen (Blautöne), M-Zapfen für mittlere (medium) Wellenlängen (Grüntöne) und L-Zapfen für lange (long) Wellenlängen (Rottöne). Sind nun bestimmte Zapfen-Arten defekt oder nicht vorhanden, können die entsprechenden Farben nicht oder nur eingeschränkt verarbeitet werden. Bei Tritanopie (Blaublindheit) betrifft dies die S-Zapfen, bei Deuteranopie (Grünblindheit) die M-Zapfen und bei Protanopie (Rotblindheit) die L-Zapfen. Bei der gängigen Formulierung “Rot-Grün-Schwäche” werden also Deuteranopie und Protanopie zusammengefasst, da diese Farben schwer bis gar nicht erkannt oder unterschieden werden können.

Wir wissen jetzt also, dass das Auge mit einem LMS-Farbraum arbeitet, welches ich verwenden konnte. Ebenfalls bekannt ist, dass Displays, also unsere Handys und Handykameras, mit einem sRGB-System arbeiten. Da das Ausgangsbild also im sRGB-Farbraum ausgeliefert wird, sich die Farbfehlsichtigkeit aber im LMS-Farbraum auswirkt, musste ich eine Möglichkeit finden, das Ausgangs-sRGB-Bild in ein LMS-Bild umzurechnen.

Alles Mathematik

Und wieder musste ich mich einem gehassten Thema widmen, dem ich so lange entgehen konnte – den Vektoren und Matrizen. Die Frage, wozu ich all das während des Studiums überhaupt lernen musste, hatte ich längst begraben. Doch endlich hatte ich einen Anwendungsfall gefunden. Da das Farbempfinden aufgrund der physischen Funktionsweise von Stäbchen und Zapfen sehr subjektiv ist, bedarf es einer Normierung und Darstellung aller sichtbaren Farben. Dafür gibt es, je nach Einsatzgebiet, unterschiedliche Ansätze.

Neben den bereits erwähnten sRGB- und LMS-Farbräumen existieren viele weitere für unterschiedliche Anwendungen. Druckereien verwenden etwa den CMYK Farbraum, in dem alle Farben als eine Kombination aus Cyan, Magenta, Gelb und Schwarz definiert sind. Der HSV-Farbraum unterteilt die Farben in Farbwert (hue), Sättigung (saturation) und Helligkeit (value).

Ein erster Normierungsversuch bzw. Standard geht auf das Jahr 1931 zurück. Ausgehend von der Funktionsweise der Zapfen wurde das XYZ-Farbmodell entwickelt, welches später die Ausgangsbasis für viele andere Farbräume, darunter auch der sRGB-Farbraum, wurde. Ein gemeinsamer Nenner zwischen LMS und sRGB war somit gefunden – der XYZ-Farbraum.

Zurück zu unserem Shader. Wie gesagt, wird hierbei jeder Pixel in seinem Rot- Grün und Blau-Wert dargestellt – man spricht dann auch von einem Vektor. Durch die Multiplikation dieses sRGB-Vektors mit einer Transformationsmatrix kann die Farbe als Vektor im XYZ-Farbraum abgebildet werden.

Danach kann der XYZ-Vektor wiederum mit einer “Hunt-Pointer-Estevez Transformationsmatrix” multipliziert werden um ihn im LMS-System darzustellen.

Endlich haben wir einen Pixel aus dem Kamerabild so umgerechnet, wie er auch im Auge verarbeitet wird. Anstatt von je einem Wert für Rot, Grün, und Blau besitzt der Vektor nun Werte, wie stark die L-, M- und S-Zapfen bei der aktuellen Farbe angeregt werden. Wie zuvor bereits angesprochen, basieren Farbfehlsichtigkeiten auf einer eingeschränkten Funktion der Zapfen. Um die aktuelle LMS-Farbe nun mit einer Farbfehlsichtkeit zu simulieren, muss eine entsprechende Simulationsmatrix mit dem Vektor multipliziert werden. Um einen starken Effekt zu erreichen, wird eine komplette Farbenblindheit simuliert.

Nachdem wir den Farbwert nun mit einer Farbenblindheit simuliert haben, müssen wir die Transformationen umkehren um ihn wieder am Display ausgeben zu können. Mithilfe der entsprechenden inversen Transformationsmatrizen wird der angepasste Wert zunächst von LMS zurück in XYZ und danach weiter in sRGB zurückgewandelt. Somit ist unser ursprünglicher sRGB-Wert aus der Kamera in einem sRGB-Wert mit simulierter Farbenblindheit für die Ausgabe bereit.

All diese Berechnungen laufen für jeden einzelnen Pixel, der von der Kamera aufgenommen wird, ab. Glücklicherweise sind Shaderberechnungen recht performant und wir kommen zu einer flüssigen Übertragung. All diese Transformationsmatrizen habe ich mir natürlich nicht selbst ausgedacht oder berechnet. Als Ausgangsbasis für dieses Projekt bin ich auf einen sehr hilfreichen Artikel gestoßen. Wer noch tiefer in die Materie eintauchen möchte und wissen will, wie sich die Transformationsmatrizen genau herleiten, dem empfehle ich unter diesem Link die Color Blindness Simulation Research.

Neben den für mich recht komplexen, mathematischen Formeln und Berechnungen konnte ich durch dieses Projekt viel über Farbräume und die Funktion von Shadern lernen. Gerade letztgenannter Punkt wird auch bei anderen, komplexeren AR-Anwendungen immer relevanter und mich daher weiterhin beschäftigen. Wer tiefer in dieses Thema eintauchen möchte, dem kann ich the book of shaders weiterempfehlen. Während meiner Recherchen wurde mir dieses Buch immer wieder empfohlen. Es gibt einen guten und verständlichen Überblick über die Funktionsweise und Programmierung von Shadern. Vor allem auch für diejenigen, die am VR Bereich Interesse haben, sind Shader ein unverzichtbarer Bestandteil, um realistische Ergebnisse zu erzielen.

Der Instagram Automation-Test – Vier Wochen im Selbstversuch

Groß war der Aufschrei als vor einigen Monaten über Nacht scheinbar zahlreiche Profile von der Plattform Instagram gelöscht wurden. Solche Löschwellen sind nichts Neues, allerdings trifft es dabei meist Fake- oder Ghost-User, die schon lange inaktiv sind. Einerseits will man so dem sogenannten Influencer Fraud (also den Betrug durch werbetreibende Instagram User) vorbeugen, andererseits länger ungenutzte Profilnamen wieder freigeben. Diesmal waren aber auch Profile von echten Usern betroffen, wie es zunächst den Anschein hatte. Am nächsten Tag waren alle (echten) Userprofile aber wieder sichtbar. Instagram selbst begründete den Bug mit einem Anzeigefehler.

Als Social Media Agentur haben wir uns im Zuge diverser Influencer Recherchen schon oft mit den Themen Influencer Fraud und Automation auseinander gesetzt. Zu ersterem wird es in nächster Zeit noch einen gesonderten Blogartikel geben, in dem wir euch verraten, wie ihr erkennen könnt, ob bei einem Account ein bisschen nachgeholfen wurde. Heute soll es aber um Bots gehen.

Experiment: 4 Wochen mit Instagram-Bots

Eine notwendige Eigenschaft eines jeden Werbers ist ja die Neugier. Daher hat mich trotz aller Skepsis und regelrechter Ablehnung auch das Thema Instagram-Bots nicht losgelassen. Wieso greifen so viele Influencer auf diese Methode zurück? Da muss doch was dahinter sein. Also habe ich es ausprobiert. Ich habe sie alle ausprobiert, die Bots. Außer Jarvee, den gibt es nämlich nur für Windows. Je eine Woche habe ich verschiedene Bots konfiguriert und getestet. Die Ergebnisse waren bei jedem ähnlich, daher gehe ich nicht näher auf die Unterschiede ein. Der Trick ist scheinbar einfach, eine gesunde Portion an Engagement zu generieren. Einige Mythen ranken sich ja um Instagram Bots, mit diesen möchte ich hier kurz aufräumen:

AUTOMATION KANN ZURÜCKVERFOLGT WERDEN

Das mag früher so gewesen sein, heute trifft diese Aussage nicht mehr zu. Es hängt natürlich immer vom User ab – blind drauf los zu schalten bringt bei keiner Marketingmaßnahme etwas. Das Tool muss gut konfiguriert werden. Die Kunst liegt auch hier darin, den Bot so menschlich wie möglich aussehen zu lassen. Dann sieht man auch in Socialblade und Co. keine steilen Anstiege, die missinterpretiert werden können, sondern fast schon lineares Wachstum. Zurückverfolgen lässt sich nur schnelles Wachstum (z.B. Followerkauf), jedoch muss man auch hier differenzieren und Relationen beachten. Ein paar Hundert Follower mehr über Nacht hinterlassen bei einem kleinen Account zwar Spuren, können aber unter Umständen auch durch einen viralen Post oder ein Shoutout verursacht sein.

BOTS ZIEHEN BOTS AN

Das stimmt so nicht ganz. Eigentlich zieht jeder Bots an. Vor allem durch das Verwenden von generischen und großen Hashtags. Dadurch häufen sich Spamkommentare unter den Postings. Dies liegt aber nicht direkt an den Bots, sondern wie oben bereits erwähnt an deren Konfigurierung oder einem Mangel an Recherchearbeit.

INSTAGRAM ERKENNT BOTS UND KÖNNTE DEN USER SPERREN

Als ich begonnen habe, diesen Blogpost zu schreiben, habe ich diese These noch mit “Jein” kommentiert. Inzwischen hat sich aber in der App einiges getan und wie bereits vor einem Jahr erwähnt, wird den Bots seitens Instagram der Kampf angesagt. Mittlerweile sind einige Bots auf der Blacklist von Instagram. Das bedeutet, verwendet ihr einen dieser Bots, erkennt Instagram das (weil ihr ja eure Anmeldedaten mit dem Bot teilt) und kann euch sperren. Das ist auch mir passiert, als ich eine Like-Automatisierung verwendet habe. Seit einiger Zeit sind solche reinen Like-Bots gar nicht mehr verfügbar, da sie nicht mehr auf die Instagram API zugreifen können.

Instagram sperrt auch (echte) User, die zu viel interagieren. Ja, auch das gibt es. Wenn also zu viele Likes oder Follows – ob automatisiert oder nicht – an einem Tag vergeben werden, kann es sein, dass die Plattform den jeweiligen User als Spamer einstuft. Dies gilt übrigens auch für zu viele Posts auf der eigenen Seite an einem Tag. Deshalb sollte man es auf keinen Fall übertreiben, bei welchen Aktivitäten auch immer.

Sollte ein Account einmal gesperrt sein, hilft folgendes:

  1. Geduld bewahren. Nach ein paar Tagen wird er üblicherweise wieder freigeschaltet.
  2. Noch mehr Geduld aufbringen. 2-3 Tage nach dem Freischalten sollte erstmal nichts gepostet und nicht interagiert werden.
  3. Langsam wieder anfangen. Nach dieser Phase kann langsam wieder geliked und kommentiert werden. Nicht mehr als einen Post pro Tag absenden!
  4. Nach ca. 2 Wochen sollte die Plattform wieder Vertrauen in euren Account gefasst haben. Übertreibt es trotzdem nicht gleich wieder, sondern steigert eure Aktivitäten langsam weiter bis zum gewohnten Level.

Fazit: Der Weg ist nicht immer das Ziel. Das Ziel ist das Ziel.

Auch wenn ich in der Vergangenheit gegenüber Bots eher skeptisch eingestellt war, habe ich meine Meinung mittlerweile geändert. Manchmal kommt es nicht darauf an, einen schönen, gleichmäßigen Lösungsweg vor sich zu haben, sondern einen, der einen dorthin führt, wo man ankommen möchte. Bots können dabei eine große Hilfe sein und einem die ein oder andere Abkürzung aufzeigen. Allerdings solltet ihr immer darauf achten, euren Bot so “menschlich” wie möglich aussehen zu lassen, sonst kann es schon einmal vorkommen, dass euer Profil gesperrt wird.