Screenshot nach Bearbeitung mit ImageMagick

Otto E-Commerce + SlimerJS + OCR = Fun

Wäre es nicht toll E-Commerce Daten eines großen Online-Shops in Echtzeit ansehen zu können? Finde ich auch und genau das hat Otto hier getan.

Natürlich ist es schon spannend genug sich diese Daten einfach nur anzusehen. Mir reicht das jedoch nicht wirklich. Ich würde die Daten, die dort angezeigt werden, gerne irgendwie speichern.
Dabei gibt es jedoch ein Problem: Die Daten werden nur als Livestream d.h. als Video angezeigt.

Also, wie schaffen wir es nun den Videoinhalt und besonders die dort angezeigten Suchanfragen in einfachen Text zu transformieren?

Meine Lösung ist eigentlich relativ simpel. Und so sieht sie aus:

Screenshots mit SlimerJS

Zunächst einmal nutze ich SlimerJS, um Screenshots des Livestreams zu machen:

Einer der Screenshots, der dabei entsteht, sieht wie folgt aus:

Screenshot: Otto E-Commerce Live Dashboard
Screenshot: Otto E-Commerce Live Dashboard

So, der erste Schritt ist damit erledigt. Alle drei Sekunden machen wir nun ein Screenshot des Livestreams und speichern diesen auf unserer Festplatte ab.

Tesseract & ImageMagick

Alles klar, wir haben nun mehrere Screenshots der benötigten Daten auf dem Rechner. Nun nutzen wir einfach eine Software zur Texterkennung, um den Text aus den Bildern zu extrahieren. Ich entscheide mich hierbei für Tesseract.

Um ein möglichst gutes Ergebnis zu erzielen, sollten wir die Screenshots jedoch vorher noch ein bisschen manipulieren.

Bildbearbeitung mit ImageMagick

Wir wählen nun den benötigten Bildausschnitt aus, da erstmal nur die Suchanfragen interessant sind und skalieren im nächsten Schritt das Bild, damit die Texterkennung später besser funktioniert.

Das Resultat sieht dann so aus:

Screenshot nach Bearbeitung mit ImageMagick
Screenshot nach Bearbeitung mit ImageMagick

Texterkennung mit Tesseract

Tesseract extrahiert nun den Text aus der angegebenen Datei und speichert ihn in eine Textdatei ab.

Das Ergebnis sieht wie folgt aus:

Fazit

Wir sehen, dass ein Großteil des Textes von Tesseract erkannt worden ist. Im Livestream selbst werden leider nicht alle Suchanfragen vollständig angezeigt. Dies verschlechtert das Ergebnis zusätzlich.

Nun könnten wir noch ein Skript schreiben, das diese Aufgabe für alle Screenshots übernimmt und hätten einen Großteil der gewünschten Daten relativ einfach in der benötigten Form erhalten.

Update 11.12.2014

Es würde angekündigt, dass das Live Tracking der Otto Group am 8.12. von 8 bis 18 Uhr läuft. Ich habe aber erst gegen 14:30 Uhr davon mitbekommen. Daher habe ich nur einen kleinen Ausschnitt der Daten. Was jedoch ganz nett war ist, dass wohl vergessen wurde die Live-Übertragung abzustellen und so konnte ich noch bis ca. 21 Uhr Daten sammeln.

Mit den folgenden Shell-Skripten habe ich die Screenshots bearbeitet und den Text extrahiert:

Hier mal ein kleiner Überblick über die verwendete Festplattenkapazität:

Datenmenge Otto Livetracking
Datenmenge Otto Livetracking

Die hierbei entstandene Textdatei mit den ungefilterten Suchbegriffen habe ich dann an Paul gegeben und er hat die mal ein bisschen ausgewertet.

Veröffentlicht von

Michael

Webentwickler & SEO

Ein Gedanke zu „Otto E-Commerce + SlimerJS + OCR = Fun“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *