Version [86834]
Dies ist eine alte Version von Dokumentenverarbeitung erstellt von JonasRotermund am 2018-01-16 14:55:10.
Dokumentenverarbeitung
Diese Seite beschreibt unterstützend zu den Terminen die Inhalte des Tutoriums "Computational Intelligence - Document Analysis". Ziel des Tutoriums ist es, gelernte Methoden zu festigen und für ein reales Anwendungsbeispiel, der Dokumentenanalyse, einzusetzen. Dabei werden ebenfalls fachübergreifende Kenntnisse z.B. über Visualisierung in Unity und Java3D vermittelt.
Um den Inhalten folgen zu können, werden Grundkenntnisse in Java oder C# vorausgesetzt.
Das Anwendungsbeispiel
In diesem Tutorium werden die mathematischen Formeln der in den Vorlesungen gelehrten Inhalte in Quellcode umgewandelt und visualisiert. So entwickelt man einen anderen Zugang zu den Lehrinhalten und kann den Einfluss einzelner Variablen sofort erkennen und verstehen.
Es wird ein Programm entwickelt, dass Schriftdokumente wie Rechnungen analysiert und entscheidet, ob diese bitonal (zweifarbig), in Graustufen oder farbig gespeichert/gedruckt werden sollen.
Dabei wird es im ersten Schritt in einem Dreidimensionalen RGB-Raum visualisiert. Diesen Farbwürfel voller Pixel kann man durch Mausbewegungen von allen Seiten betrachten. Damit erhält man ein Gefühl für Farbräume und dies dient der besseren Vorstellung und Visualisierung der Cluster, die im nächsten Schritt berechnet werden.
Darstellung eines Bildes im RGB-Farbraum:
Im zweiten Schritt findet die eigentliche Clusteranalyse statt. Dabei wird das erweiterte Clusterverfahren "Fuzzy K-Means" angewendet. Da es eine Erweiterung ist, wird gleichzeitig ein Verständnis der einfacheren Clusterverfahren vermittelt. Die Datenpunkte werden als Ergebnis in eine bestimmte Menge an Clustern (Gruppierungen) unterteilt. So erhält man Auskunft darüber, wieviele Farben das Bild wirklich definieren. Dies wird im dritten Schritt benötigt.
Der dritte und letzte Schritt ist es nun, die Informationen der Cluster zu nutzen um die oben genannten Entscheidungen zu treffen. Dabei werden variable Schwellwerte definiert, z.B., dass Dokumente ab einem 15%igen Farbanteil farbig gedruckt werden sollen.
Vorbereitung
Was ist ein Farbraum?
Ein Farbraum ist eine dreidimensionale Repräsentation der Farben. Je nach Farbmodell bietet sich eine andere Form zur Darstellung an. HSV (Hue Saturation Value) lässt sich beispielsweise sehr gut mit einem Zylinder oder Kegel repräsentieren während RGB (Red Green Blue) durch einen Würfel dargestellt wird.
Im Tutorium wird mit dem RGB-Farbmodell gearbeitet. Er ist sehr einfach zu verstehen und zu verwenden. Die Farben werden aus den drei Hauptkomponenten erzeugt:
- R: Rot
- G: Grün
- B: Blau
Eine Erweiterung ist der ARGB-Farbraum, bei dem noch ein A: Alpha-Wert hinzukommt.
Die Werte der jeweiligen Farben liegen zwischen 0 und 255, wobei 0 keine Intensität und 255 volle Intensität der Farbe angibt. Die einfachsten RGB-Farben an denen man sich orientieren kann sind deshalb:
- (255, 255, 255): weiß
- (0, 0, 0): schwarz
- (255, 0, 0): rot
- (0, 255, 0): grün
- (0, 0, 255): blau
Eine Visualisierung im Tutoriumsprogramm: (32*32*32 Werte)
Entwicklungsumgebungen
Um den Code des Projekts bearbeiten zu können, benötigt man natürlich eine Entwicklungsumgebung. Der Code für die Clusteranalyse und einfache Darstellung wurde für C# und Java entwickelt. Die erweiterte Visualisierung und Verarbeitung wurde mit Unity und C# erstellt.
Die Entwicklungsumgebung für die beiden Programmiersprachen kann man sich nach eigenen Präferenzen auswählen. Empfehlenswert sind dabei NetBeans für Java und Visual Studio für C#. Visual Studio erhält man als Informatik-Student über das Microsoft Imagine Programm kostenlos.
Für die Entwicklung mit Unity ist ein kostenloses Unity-Konto und die Installation des Unity-Editors notwendig.
Schritt 1: Laden der Datei und Visualisierung in Unity/Java3D
Platzhalter
Schritt 2: Clusteranalyse "Fuzzy K-Means"
Platzhalter
Schritt 3: Berechnung des Ergebnisses
Platzhalter
Weiterführende Aufgaben und Modifikationen
Platzhalter