Bilderkennung und OCR mit OpenCV (Emgu) unter .NET

Bilderkennung - Automatische Texterkennung markiert Buchstaben

Was ist OpenCV?

Open bedeutet offen. Das CV steht für Computer Vision. Da ich schon länger mit dem Gedanken gespielt hab das Ganze mal zu testen, habe ich nun endlich eine Bilbiothek für Bilderkennung gefunden. Das ganze läuft im .Net Framework von Microsoft und ich habe es unter Visual Basic ausprobiert.

Bilderkennung mit OpenCV

Hauptsächlich habe ich die optische Ziffern- und Buchstabenerkennung getestet und muss sagen, dass es ein echt cooles Werkzeug ist um Informationen aus Bildern zu gewinnen. Das ganze wurde von Google unter dem Projektnamen Tesseract gefördert. Die Software ist frei (open source). Mehr Information gibt es auf Wikipedia.

Die Erkennung der Bilder erfolgt zuverlässig bei gut lesbaren Fonts und einer Schriftgröße, welche mindestens 10px hoch ist (eigene Erfahrung).

Wo finde ich es?

Für die Implementierung von OpenCV habe ich Emgu verwendet welche die Bibliotheken für VB.NET und C# bereitstellt. Mehr Information sowie den Download findet ihr auf http://emgu.com

Wie kann ich es lernen?

Außerdem gibt es auf Youtube ein oder mehrere sehr nützliche Videos zu dem Thema Bilderkennung. Dadurch fällt die Implementation nicht schwer und kann schnell in euer Projekt übernommen werden.

Eventuell lade ich noch ein Beispielprojekt mit Sourcecode hoch, damit ihr euch die Tipparbeit erspart 😉

Datenvisualisierung, Infographics, Statistiken, Imformationsvisualisierung

Jeder sieht sich gerne Infografiken an oder interessiert sich für einfach dargestellte Statistiken oder eine schöne Datenvisualisierung. Vorraussetzung ist, das sie simpel und so einfach wie möglich gestaltet sind damit sie leicht und schnell zu verstehen sind. Daten und Informationen werden immer wichtiger für uns und täglich wächst die Menge an Information im Internet.

Große Daten zu kleinen Daten

Wie sollen alle diese Daten überhaupt beherrscht werden, bzw. wie kommt man mit diesen riesigen Datenmengen überhaupt klar? Es entstehen neue Studiengänge an den Universitäten wie zum Beispiel Datenanlyse oder DataMining. Es sollen also aus den Unmengen an erzeugten Daten neue Erkenntnisse gewonnen werden. Um Datenvisualisierung richtig zu machen werden viele Informationen auf wenige einfache Bilder und Symbole heruntergebrochen.

Welche coolen Möglichkeiten es in der Darstellung von Daten gibt, welche Prinzipien man beachten sollte beim Visualisieren und wie man die Informationen möglichst einfach zum Betrachter kommuniziert erklärt Jörn Loviscach sehr anschaulich in dem folgenden YouTube Video:

Ich bin gespannt wie die Informationsgrafiken und Datenvisualisierungen der Zukunft aussehen. Das Potenzial für einfachere Darstellungen ist meiner Meinung nach enorm und könnte ein wichtiger Zukunftstrend werden.

Zukunft der Datenvisualisierung

Viel damit hat auch mit ergonomischer Gestaltung und Mensch-Maschine Interaktionen zu tun. Nicht nur eingeschränkten Personen mit z.B. schlechten Augen, sonder jedem hilft es, wenn wichtige Informationen möglichst schnell und barrierefrei und vor allem verständlich zu bekommen sind.

Dreidimensional ins Web – WebGL mit Three.Js

WebGL und Three.js wird in Zukunft immer beliebter. Three.js ist eine offene Javascript Umgebung die auf WebGL basiert und welche es ermöglicht einfach 3D Modelle zu erstellen, laden oder sogar zu manipulieren.

Um die Bibliothek zu testen wurde von mir eine kleine Testseite erstellt, welche das aktuelle Wetter in Salzburg mit einfachen 3D Modellen wie Wolken, Sonne und Regentropfen visualisiert. Natürlich gibt es unendlich weitere Möglichkeiten was man alles mit dieser Bibliothek machen kann.

Weiters ist es relativ einfach möglich mit Blender ein Modell zu exportieren, um es dann über Three.js und ein paar Zeilen Code laden und z.B. rotieren lassen kann.

WebGL Würfel mit Hello World darauf
3D im Browser

Es ist sogar möglich Spiele oder interaktive Musikvideos zu gestalten und damit ganz neue Wege des Webs zu erschaffen. Interessant wird wie sich diese neue Dimension in den nächsten paar Jahren weiter entwickeln wird.

Zukünftig könnte man ja dann auch Augmented Reality Anwendungen dafür erstellen, wie z.B. bei einem Optiker wo eine dreidimensionale Betrachtung des Produktes am Kopf des Kunden möglich wäre.