ich war hier: Dokumentenverarbeitung

Version [87778]

Dies ist eine alte Version von Dokumentenverarbeitung erstellt von ClaudiaMichel am 2018-04-26 11:32:57.

 

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 entwickeln die Studierenden einen anderen Zugang zu den Lehrinhalten. Der Einfluss einzelner Variablen kann dadurch besser erkannt und verstanden werden.
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:
Ausgangsbild3D Ansicht in UnityGewichtete Darstellung: Häufigkeit durch Größe repräsentiert.

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.

Analyseergebnis

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)
Visualisierung RGB Würfel

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"

Theoretische Beschreibung

Platzhalter

Praktische Implementierung

Platzhalter

Visualisierung

Die Visualisierung der Clusteranalyse wurde so implementiert, dass man Schritt für Schritt durch die Optimierungsschritte iterieren kann. So erkennt man sehr gut, wie die Zugehörigkeitsmatrix zu Beginn komplett zufällige Werte enthält und sich nachfolgend die Clusterzentren bilden und bewegen.
Nachfolgend sind Screenshots des Programms von sieben Iterationsschritten. Dabei ist der RGB-Wert der einzelnen Datenpunkten abhängig von der Clusterzugehörigkeit. Cluster 1 definiert den Rotwert, Cluster 2 den Grünwert und Cluster 3 den Blauwert.

 (image: https://ife.erdaxo.de/uploads/Dokumentenverarbeitung/it1klein.png)  (image: https://ife.erdaxo.de/uploads/Dokumentenverarbeitung/it2klein.png)  (image: https://ife.erdaxo.de/uploads/Dokumentenverarbeitung/it3klein.png)  (image: https://ife.erdaxo.de/uploads/Dokumentenverarbeitung/it4klein.png)  (image: https://ife.erdaxo.de/uploads/Dokumentenverarbeitung/it5klein.png)  (image: https://ife.erdaxo.de/uploads/Dokumentenverarbeitung/it6klein.png)  (image: https://ife.erdaxo.de/uploads/Dokumentenverarbeitung/it7klein.png)

Schritt 3: Berechnung des Ergebnisses


Platzhalter

Weiterführende Aufgaben und Modifikationen


Platzhalter
Diese Seite wurde noch nicht kommentiert.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki