Verteidigung Entwurf wx OCR Matthias Jauernig Michael Lahl
- Slides: 41
Verteidigung Entwurf „wx. OCR“ Matthias Jauernig Michael Lahl
0. Gliederung 1. Einflussfaktoren 2. Grundsatzentscheidungen 3. Softwarearchitektur 1. 3. 1 Schichtenarchitektur 2. 3. 2 Änderungen zum Pflichtenheft 3. 3. 3 Klassendiagramm 4. 3. 4 Beschreibung der Systemkomponenten 5. 3. 5 Sequenzdiagramme 4. Arbeitsaufteilung
1. Einflussfaktoren 1. 1 Einsatzbedingungen • Sequentieller Programmablauf • Entwurf als single user Applikation 1. 2 Umgebungs-/Randbedingungen • OS: Windows / Linux plattformübergreifende GUI mit wx. Widgets • Keine Integration in bestehende Produkte stand-alone-Applikation
1. Einflussfaktoren 1. 3 Bedingungen aus Qualitätsanforderungen • Anpassbarkeit/Austauschbarkeit, vor allem der Bildverarbeitungskomponente • Aufteilung in Teilprogramme wx. OCR (main) und wx. OCR net Trainer, um das Neuronale Netz schon vorher anlernen zu können
2. Grundsatzentscheidungen 2. 1 Datenhaltung • Speicherung in „flachen“ Dateien • Keine DB-Anbindung 2. 2 Verteilung im Netz • Keine Verteilung, lokale Applikation • Keine Netzwerkfunktionalität 2. 3 Benutzungsoberfläche • UI-Toolkit wx. Widgets Erfüllung der Bedingung nach Plattformunabhängigkeit • Wahl von wx. Widgets durch Wahl von C++ und Open-Source-Verfügbarkeit unter der GPL
3. Softwarearchitektur 3. 1 Schichtenarchitektur - Einsatz einer 2 -Schichtenarchitektur: • Schicht 1: eigentliche Anwendung • Schicht 2: Benutzungsoberfläche - Begründung dieser Aufteilung: • Erlaubt übersichtliche Strukturierung • Unterstützt Anpassbarkeit / Modularisierung • Unterstützt unabhängige Entwicklung von Benutzungsoberfläche und Anwendung • Keine 3 Schichten, da die wenigen Methoden zur Dateibehandlung eng an die Funktionalität gebunden sind
3. Softwarearchitektur 3. 1 Schichtenarchitektur 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 2 Änderungen zum Pflichtenheft Klassendiagramm aus Pflichtenheft grundlegend neu gestaltet / modularisiert: - Klassen mit mehreren Funktionalitäten gesplittet - Erfüllung der Forderung nach Anpassbarkeit, Änderbarkeit und Modularisierung - Erhöhung der Übersichtlichkeit - Paralleles Lernen mehrerer Zeichensätze möglich durch Nutzung einer Klasse für verkettete Listen
3. Softwarearchitektur 3. 2 Änderungen zum Pflichtenheft
3. Softwarearchitektur 3. 3 Klassendiagramm
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten Allgemein: - Wert auf Nutzung oo Funktionalitäten: z. B. eigene polymorphe Klasse valmatrix<T>, welche auf den C++ Datentypen slice<T> und valarray<T> beruht - Beim Neuronalen Netz Einsatz von float** anstelle von valmatrix<T> aus Performance-Gründen - Nutzung von Exceptions, um Fehler abzufangen (vorrangig im Umgang mit Dateien)
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 1: Eigentliche Anwendung • Von wx. Widgets-Komponente wx. App abgeleitet • Anwendungserzeugung • Erstellung eines Frames
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 1: Eigentliche Anwendung • Schnittstelle zwischen wx. OCR (main), dem net. Trainer, der Bildverarbeitung und dem Neuronalen Netz • Implementiert von den Teilapplikationen gemeinsam genutzte Funktionalitäten
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 1: Eigentliche Anwendung • Von wx. OCRRecog abgeleitet, fügt dieser Funktionalitäten hinzu, die vom Hauptprogramm zur Texterkennung aus einem Bild genutzt werden.
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 1: Eigentliche Anwendung • Von wx. OCRRecog abgeleitet • Hinzugefügte Funktionalität, z. B. Zeichensatz einlesen oder Neuronales Netz antrainieren und speichern • Zu lernende Zeichensätze werden in verketteter Liste (pattern. List) gespeichert
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 1: Eigentliche Anwendung • Abstrakte Klasse • Vorlage für konkrete Implementierungen der Bildverarbeitung • Enthält Basisfunktionen, die genutzt werden können • Leichte Anpassbarkeit durch Parametrisierung der wx. OCRRecog-Klassen mit einem konkreten Bildverarbeitungsobjekt
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 1: Eigentliche Anwendung • Implementiert die abstrakten Methoden von wx. OCRImage. Proc • Kann leicht durch eigene Implementierungen ersetzt werden • Stellt die Extrahierung von Mustern aus einem zuvor geladenen Bild zur Verfügung
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 1: Eigentliche Anwendung • Stellt Funktionalität des Neuronalen Netzes zur Verfügung • 3 -Layer-Netz, feed forward, überwachtes Anlernen mittels Backpropagation möglich • Wird hauptsächlich durch die Dimensionierungen und die Gewichtsmatrizen definiert • Methoden zum Trainieren, Durchlaufen, Laden und Speichern des Netzes
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 1: Eigentliche Anwendung • Polymorphe Klasse für eine 2 D-Matrix • Durch Operator-Überladung Zugriff mittels [i][j] möglich • Nutzung der Datentypen slice<T> und valarray<T> aus der C++ Standardbibliothek
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 1: Eigentliche Anwendung • Verkettete Liste zum Speichern der eingelesenen Zeichensätze • Methoden zum Einfügen, Löschen und Umsetzen des aktuellen Zeichensatzes • Zugriff auf aktuelle Zeichensatz-Matrix mit [i] möglich
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 2: Benutzungsoberfläche • Von wx. Widgets-Komponente wx. Frame abgeleitet • Stellt Fenster des Hauptprogramms zur Verfügung • Bild kann geladen und der daraus erkannte Text gespeichert werden
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 2: Benutzungsoberfläche • Fenster des net. Trainers • Funktionen zum Handling von Zeichensätzen und Trainieren sowie Speichern des Neuronalen Netzes
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 2: Benutzungsoberfläche • Von wx. Widgets-Komponente wx. Dialog abgeleitet • Zweck ist das Anzeigen eines Informationsdialogs zum Projekt
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 2. b 2. a 1. b 1. c 1. d
3. Softwarearchitektur 3. 4 Beschreibung der Systemkomponenten 3. 4. 1 Schicht 2: Benutzungsoberfläche • Abgeleitet von wx. Widgets-Komponente wx. Text. Ctrl • Erzeugt Texteingabe-Element, welches lediglich ganzzahlige Eingaben im Intervall [0… 10000[ akzeptiert • Z. B. zur Eingabe der Lernepochen des Neuronalen Netzes
3. Softwarearchitektur 3. 5 Sequenzdiagramme 3. 5. 1 Verdeutlichung der Bildverarbeitungs-Anpassbarkeit
3. Softwarearchitektur 3. 5 Sequenzdiagramme 3. 5. 2 Verdeutlichung der Erkennung eines Zeichens aus einem Bild
4. Arbeitsaufteilung Matthias Jauernig • Programmierung Schicht 1: eigentliche Anwendung Michael Lahl • • • Dokumentation • • Organisation Quelltextkommentierung Changelog Administrator der sourceforge. net. Projektseite • • • Schicht 2: Benutzungsoberfläche Unterstützend bei Schicht 1 Dokumentationen für Endbenutzer und Entwickler CVS-Verwalter Gestalter für die Webseite
Noch Fragen? ? ? ? ? ? ?
- Swing gui designer
- Feuerwehr taktik angriff verteidigung
- Diplomarbeit verteidigung
- Mathias virchow
- Matthias mertens
- Große perdekamp
- Matthias rauterberg
- Matthias gysler
- Matthias fischbach
- Matthias scheliden
- Matthias bonikowski
- Matthias stallmann
- Geochemistry
- Cas matlab
- Matthias rauterberg
- Matthias schleiden facts
- Matthias kuder berlin
- Matthias rauterberg
- Matthias ducci
- Matthias schleiden 1838
- How apostles died
- Matthias jakob schleiden
- Facts about schleiden
- Personal development plan for university students
- Uob bizsmart
- Matthias benzer
- Matthias perdekamp
- Matthias kabel
- Matthias henning
- Anton van leeuwenhoek accomplishments
- Kawski asu
- Matthias kerl
- Meta fotos
- Tanja cuk
- Matthias sablatnig
- Matthias müller-fischer
- Matthias prikoszovits
- Coriyon alexander
- Matthias schleiden cell theory timeline
- Matthias beller
- Goood mobilfunk
- Matthias horbach