entwurf wxocr
Download
Skip this Video
Download Presentation
Entwurf „wxOCR“

Loading in 2 Seconds...

play fullscreen
1 / 41

Entwurf „wxOCR“ - PowerPoint PPT Presentation


  • 162 Views
  • Uploaded on

Verteidigung. Entwurf „wxOCR“. Matthias Jauernig Michael Lahl. 0. Gliederung. Einflussfaktoren Grundsatzentscheidungen Softwarearchitektur 3.1 Schichtenarchitektur 3.2 Änderungen zum Pflichtenheft 3.3 Klassendiagramm 3.4 Beschreibung der Systemkomponenten 3.5 Sequenzdiagramme

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Entwurf „wxOCR“' - dennis


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
entwurf wxocr

Verteidigung

Entwurf „wxOCR“

Matthias Jauernig

Michael Lahl

slide2

0. Gliederung

  • Einflussfaktoren
  • Grundsatzentscheidungen
  • Softwarearchitektur
    • 3.1 Schichtenarchitektur
    • 3.2 Änderungen zum Pflichtenheft
    • 3.3 Klassendiagramm
    • 3.4 Beschreibung der Systemkomponenten
    • 3.5 Sequenzdiagramme
  • Arbeitsaufteilung
slide3

1. Einflussfaktoren

  • 1.1 Einsatzbedingungen
    • Sequentieller Programmablauf
    • Entwurf als single user Applikation
  • 1.2 Umgebungs-/Randbedingungen
    • OS: Windows / Linux  plattformübergreifende GUI mit wxWidgets
    • Keine Integration in bestehende Produkte  stand-alone-Applikation
slide4

1. Einflussfaktoren

  • 1.3 Bedingungen aus Qualitätsanforderungen
    • Anpassbarkeit/Austauschbarkeit, vor allem der Bildverarbeitungskomponente
    • Aufteilung in Teilprogramme wxOCR (main) und wxOCR net Trainer, um das Neuronale Netz schon vorher anlernen zu können
slide5

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 wxWidgets  Erfüllung der Bedingung nach Plattformunabhängigkeit
    • Wahl von wxWidgets durch Wahl von C++ und Open-Source-Verfügbarkeit unter der GPL
slide6

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
slide7

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.1 Schichtenarchitektur

slide8

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
slide9

3. Softwarearchitektur

3.2 Änderungen zum Pflichtenheft

slide10

3. Softwarearchitektur

3.3 Klassendiagramm

slide11

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)
slide12

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide13

3. Softwarearchitektur

3.4 Beschreibung der Systemkomponenten

3.4.1 Schicht 1: Eigentliche Anwendung

  • Von wxWidgets-Komponente wxApp abgeleitet
  • Anwendungserzeugung
  • Erstellung eines Frames
slide14

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide15

3. Softwarearchitektur

3.4 Beschreibung der Systemkomponenten

3.4.1 Schicht 1: Eigentliche Anwendung

  • Schnittstelle zwischen wxOCR (main), dem netTrainer, der Bildverarbeitung und dem Neuronalen Netz
  • Implementiert von den Teilapplikationen gemeinsam genutzte Funktionalitäten
slide16

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide17

3. Softwarearchitektur

3.4 Beschreibung der Systemkomponenten

3.4.1 Schicht 1: Eigentliche Anwendung

  • Von wxOCRRecog abgeleitet, fügt dieser Funktionalitäten hinzu, die vom Hauptprogramm zur Texterkennung aus einem Bild genutzt werden.
slide18

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide19

3. Softwarearchitektur

3.4 Beschreibung der Systemkomponenten

3.4.1 Schicht 1: Eigentliche Anwendung

  • Von wxOCRRecog abgeleitet
  • Hinzugefügte Funktionalität, z.B. Zeichensatz einlesen oder Neuronales Netz antrainieren und speichern
  • Zu lernende Zeichensätze werden in verketteter Liste (patternList) gespeichert
slide20

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide21

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 wxOCRRecog-Klassen mit einem konkreten Bildverarbeitungsobjekt
slide22

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide23

3. Softwarearchitektur

3.4 Beschreibung der Systemkomponenten

3.4.1 Schicht 1: Eigentliche Anwendung

  • Implementiert die abstrakten Methoden von wxOCRImageProc
  • Kann leicht durch eigene Implementierungen ersetzt werden
  • Stellt die Extrahierung von Mustern aus einem zuvor geladenen Bild zur Verfügung
slide24

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide25

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
slide26

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide27

3. Softwarearchitektur

3.4 Beschreibung der Systemkomponenten

3.4.1 Schicht 1: Eigentliche Anwendung

  • Polymorphe Klasse für eine 2D-Matrix
  • Durch Operator-Überladung Zugriff mittels [i][j] möglich
  • Nutzung der Datentypen slice<T> und valarray<T> aus der C++ Standardbibliothek
slide28

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide29

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
slide30

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide31

3. Softwarearchitektur

3.4 Beschreibung der Systemkomponenten

3.4.1 Schicht 2: Benutzungsoberfläche

  • Von wxWidgets-Komponente wxFrame abgeleitet
  • Stellt Fenster des Hauptprogramms zur Verfügung
  • Bild kann geladen und der daraus erkannte Text gespeichert werden
slide32

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide33

3. Softwarearchitektur

3.4 Beschreibung der Systemkomponenten

3.4.1 Schicht 2: Benutzungsoberfläche

  • Fenster des netTrainers
  • Funktionen zum Handling von Zeichensätzen und Trainieren sowie Speichern des Neuronalen Netzes
slide34

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide35

3. Softwarearchitektur

3.4 Beschreibung der Systemkomponenten

3.4.1 Schicht 2: Benutzungsoberfläche

  • Von wxWidgets-Komponente wxDialog abgeleitet
  • Zweck ist das Anzeigen eines Informationsdialogs zum Projekt
slide36

3. Softwarearchitektur

2.b

2.a

1.a

1.b

1.c

1.d

3.4 Beschreibung der Systemkomponenten

slide37

3. Softwarearchitektur

3.4 Beschreibung der Systemkomponenten

3.4.1 Schicht 2: Benutzungsoberfläche

  • Abgeleitet von wxWidgets-Komponente wxTextCtrl
  • Erzeugt Texteingabe-Element, welches lediglich ganzzahlige Eingaben im Intervall [0…10000[ akzeptiert
  • Z.B. zur Eingabe der Lernepochen des Neuronalen Netzes
slide38

3. Softwarearchitektur

3.5 Sequenzdiagramme

3.5.1 Verdeutlichung der Bildverarbeitungs-Anpassbarkeit

slide39

3. Softwarearchitektur

3.5 Sequenzdiagramme

3.5.2 Verdeutlichung der Erkennung eines Zeichens aus einem Bild

slide41

Noch Fragen?

?

?

?

?

?

?

?

?

?

?

?

ad