Präsentation wxOCR Matthias Jauernig Michael Lahl.

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag Code-Dokumentation
Advertisements

PEER Umfrage Herbst 2008 Jugendliche befragen Jugendliche: Kunst und Kultur in Berlin – was geht mich das an?
Konzepte des Anfangsunterrichts Informatik in der 11.1
Integrations- und Funktionstests im Rahmen des V-Modelles
PC-Senioren Ludwigsburg
Lehr- und Forschungseinheit Medieninformatik Lehrveranstaltung Multimedia-Programmierung SS 05 Wolfgang Spiessl Michael Sedlmair Matthias Marm Jessica.
Designing Software for Ease of Extension and Contraction
VR Framework mit Gestenerkennung
Datenbankzugriff im WWW (Kommerzielle Systeme)
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Java: Grundlagen der Sprache
DOM (Document Object Model)
Die Türme von Hanoi Die Lösungsfindung nach dem Prinzip der Rekursion wird noch einmal textuell und grafisch erläutert
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Werkzeuge und Softwareumgebung von Christian Michele.
XDoclet ETIS SS05.
Datenbanksystementwicklung – Praktikum & Vorlesung – WS 2004/2005
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
eXtreme Programming (XP)
Universität Paderborn - Softwaretechnikpraktikum im SS Gruppe 11 1 Softwaretechnikpraktikum im SS2001 Projektleiter:Prof. Dr. Wilhelm Schäfer Gruppenleiter:Dr.
Concurrent Versions System
Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses
Matthias Jauernig Michael Lahl
Semantic Media Showcase – Universität Potsdam
EXCEL Anfang 2005 Copyright by Maximilian Prinz, Timmy Ruppert, Benjamin Peppel.
Titel des Vortrags Name des Vortragenden Seminar
Vorgehensmodelle: Schwergewichtige Modelle
Eine Bewerbung schreiben
Klicken Sie in der Meldungsleiste auf Bearbeitung aktivieren,
MS Excel, Open-/LibreOffice Calc Die Menüs I Office-Logo (Excel2007) bzw. Datei (andere): die Standard-Datei- und Druckoperationen; bei MS Excel hier auch.
NEVP Noteneingabe- und Notenverwaltungsprogramm © Erklärungen zu Funktionen und Anwendungen, erstellt am 24. August 2007.
Willkommen bei Sycarus – dem Mathematikprogramm, das neue Wege geht.
Projekt aus der und Vorlesung SS2011 C#,.NET und GUI Programmierung Gruppe G.
Arbeiten mit Links aus dem Netz Sowohl Word als auch Powerpoint bieten die Möglichkeit Links aktiv im Text verfügbar zu machen! Dies ist für Präsentationen.
Wie schreibe ich eine Diplom- bzw. Masterarbeit ?
Cs104 Programmieren II Präsentation Meilenstein 5 Sommersemester 2007 Gruppenname (Gruppe Nr. x) Name 1 (Name der/des Vortragenden unterstreichen) Name.
Künstliches Neuronales Netz nach John Hopfield
Allgemeines zu Datenbanken
Metacoon-Authoring Kursmaterial-Beispiele die mit metacoon Chameleon erstellt wurden Annett Zobel, Matthias Hupfer metacoon opensource network.
IKP Uni Bonn Medienpraxis EDV II Internet-Projekt
Automatische Texterkennung
cs108 Programmier-Projekt Präsentation Meilenstein 3
Kleiner Wegweiser für das Erstellen von (Powerpoint-)Präsentationen
Benutzerhinweise Liebe Aktive!
Fakultät für Informatik WI/WE 2005S UE WI/WE Web Engineering /3 Dr. Michael Derntl Fakultät.
Wissen praktisch ablegen
Eine Entwicklungsumgebung für Free-Pascal Peter G. Poloczek, M5543
Hier eine mögliche Antwort:
Hinweise zur Folienpräsentation:
Eclipse – PHP Tool Integration (PTI) Sven Kiera, TWT Interactive GmbH.
VirtualPatt 2000 Interaktives 3D-Schachspiel
ExKurs EinfG 1/13 Dr. Barbara Hoffmann LiteraturKompetenz Objekte einfügen: Tabellen Mit dem elektronischen Schreiben ist es Ihnen leicht gemacht,
F.A.D.E. Feigl‘s and Albrecht‘s Destructive Editor Implementierung eines sicheren Schutzes von Shareware.
Team Technical-Designer  Oliver Schmitz (TCD)  Leiter des Technical-Design Teams  Stefan Müller (TAD für Team 1 und 2)  Spezialist für Maya und was.
Bern University of Applied Sciences Engineering and Information Technology Documentation generator for XML-based description standards Ausgangslage: Die.
Datenbanken im Web 1.
Digitale Annotationen. Grundlage: John Bradley “Towards a Richer Sense of Digital Annotation: Moving Beyond a Media Orientation of the Annotation of Digital.
Webserver, Apache und XAMPP
Max. HWR DECISION TREE Max Jakisch Tobias Lentz Michael Berth Sebastian Möller Christian Güthling.
Open Source und Open Office Referenten: Anja Stadler & Fabian Gebauer.
IPERKA 6 Schritt- Methode
Pool Informatik 5 GZG FN Sj. 11/12
ResA am Arbeitsplatz Das Vorgehen ist angelehnt an „5 S“ und bietet Ihnen die Möglichkeit das Konzept der 5 Disziplinen ressourcenschonenden Arbeitens.
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
, Jens Rettig1 Einsatz von Versionsverwaltungstools im ORACLE – Umfeld Dipl.-Inform. Jens Rettig
Grundlagenunterricht Informatik „Präsentation“ Start mit PowerPoint Hinweis: Führen Sie die Aufträge auf den Folien dieser Präsentation gleich aus. So.
 Präsentation transkript:

Präsentation wxOCR Matthias Jauernig Michael Lahl

0. Überblick 1. Werbe-Präsentation 2. Software-Demonstration 3. Zusammenfassung Punkt 1 wird zugunsten der Demonstration und des Fazits etwas abgekürzt (wir wollen unser Projektergebnis ja auch nicht verkaufen) Punkt 1 wird zugunsten der Demonstration und des Fazits etwas abgekürzt (wir wollen unser Projektergebnis ja auch nicht verkaufen)

1. Werbe-Präsentation

1. Präsentation Zielbestimmung: Texterkennung mithilfe von Bildverarbeitungsalgorithmen und eines Künstlichen Neuronalen Netzes Texterkennung mithilfe von Bildverarbeitungsalgorithmen und eines Künstlichen Neuronalen Netzes Erkennung von gedrucktem Text Erkennung von gedrucktem Text Beschränkung auf Arial, Schriftfarbe schwarz Beschränkung auf Arial, Schriftfarbe schwarz Plattformunabhängige GUI mit wxWidgets und Open-Source-Verfügbarkeit unter der GPL Plattformunabhängige GUI mit wxWidgets und Open-Source-Verfügbarkeit unter der GPL

1. Präsentation Wunsch und Abgrenzung: Wunsch: Kerning soll behandelt werden Wunsch: Kerning soll behandelt werden Abgrenzung: keine Ligaturen, keine Handschrift, keine von Arial abweichende Schriftart Abgrenzung: keine Ligaturen, keine Handschrift, keine von Arial abweichende Schriftart Kleines OCR-Projekt im begrenzten Zeitrahmen, darf keineswegs als Konkurrenz zu professionellen / ausgereiften OCR- Produkten gesehen werden Kleines OCR-Projekt im begrenzten Zeitrahmen, darf keineswegs als Konkurrenz zu professionellen / ausgereiften OCR- Produkten gesehen werden

1. Präsentation Konzept der Zeichenerkennung: Konzept der Zeichenerkennung: … … ABCDEFGHABCDEFGH Neuronales Netz … 0,94 0,08 0,04 0,05 Erkennungsgrad der einzelnen Buchstaben Bildverarbeitung / Musterextrahierung Muster als float Vektor mit verschiedenen Grauwerten

1. Präsentation Aufsplittung in Teilprogramme: Aufsplittung in Teilprogramme: 1. wxOCR netTrainer Zweck: Anlernen des Neuronalen Netzes auf mehrere Zeichensätze, dabei interaktive Überprüfung des Lernfortschritts (siehe Software-Demonstration). Speicherung des angelernten Netzes in einer Datei, um vom Hauptprogramm geladen werden zu können.

1. Präsentation 2. wxOCR (main) Zweck: Endbenutzer-Programm, in welchem Bilder geladen werden können, damit der darin enthaltene Text zeichenweise extrahiert und vom Neuronalen Netz erkannt wird. Erkannter Text kann kopiert oder abgespeichert werden.

2. Software-Demonstration

3. Zusammenfassung

Einhaltung der Anforderungen/Ziele: Komponenten aus dem Entwurf wurden genau so umgesetzt, teilweise erweitert Komponenten aus dem Entwurf wurden genau so umgesetzt, teilweise erweitert Muss-Kriterien: Muss-Kriterien: Komplett umgesetztKomplett umgesetzt Teilprogramme umgesetztTeilprogramme umgesetzt Erkennung von Arial ist relativ zuverlässig, auch bei Vorhandensein von Fehlerpixeln und bei gut eingescannten DokumentenErkennung von Arial ist relativ zuverlässig, auch bei Vorhandensein von Fehlerpixeln und bei gut eingescannten Dokumenten Plattformunabhängigkeit gewahrt, als Open Source unter GPL auf sourceforge.net verfügbar gemachtPlattformunabhängigkeit gewahrt, als Open Source unter GPL auf sourceforge.net verfügbar gemacht

3. Zusammenfassung Wunsch-Kriterien: Wunsch-Kriterien: Teilweise umgesetztTeilweise umgesetzt Kerning wird behandeltKerning wird behandelt unterschiedliche Textgrößen möglich, allerdings kann keine von Arial abweichende Schriftart erkannt werdenunterschiedliche Textgrößen möglich, allerdings kann keine von Arial abweichende Schriftart erkannt werden keine Behandlung "schiefer" Zeilenkeine Behandlung "schiefer" Zeilen Grafiken noch nicht als solche erkennbar/können nicht ausgeschlossen werden nur Erkennung von reinem Text, also auch z.B. ohne UnterstreichungenGrafiken noch nicht als solche erkennbar/können nicht ausgeschlossen werden nur Erkennung von reinem Text, also auch z.B. ohne Unterstreichungen Abgrenzungskriterien: Abgrenzungskriterien: Keine Umsetzung (wie gewollt)Keine Umsetzung (wie gewollt) So z.B. keine Erkennung von LigaturenSo z.B. keine Erkennung von Ligaturen

3. Zusammenfassung Einschätzung der Teamarbeit: Gutes Funktionieren der Paketaufteilung, auch unterstützt durch die Schichtenarchitektur Gutes Funktionieren der Paketaufteilung, auch unterstützt durch die Schichtenarchitektur Absprachen liefen hier im Kleinen noch recht reibungslos Absprachen liefen hier im Kleinen noch recht reibungslos Teilweise musste man vor Weiterarbeit auf die Programmierung des anderen warten (Funktionalität/Algorithmik GUI) Teilweise musste man vor Weiterarbeit auf die Programmierung des anderen warten (Funktionalität/Algorithmik GUI) Kleinere Änderungen im Aufgabenbereich des anderen hat man manchmal selber durchgeführt, anstatt sich erst abzusprechen (in Ausnahmefällen) Kleinere Änderungen im Aufgabenbereich des anderen hat man manchmal selber durchgeführt, anstatt sich erst abzusprechen (in Ausnahmefällen) Nach Entwurfsänderungen Absprachen nötig Nach Entwurfsänderungen Absprachen nötig

3. Zusammenfassung Arbeitszeiten/Meilensteine: Arbeitszeiten: Arbeitszeiten: keine festen Arbeitszeiten / kein einzuhaltender Zeitplan erstellt, Programmierung mit persönlicher Absprache ist in größeren Projekten sicher nicht mehr möglichkeine festen Arbeitszeiten / kein einzuhaltender Zeitplan erstellt, Programmierung mit persönlicher Absprache ist in größeren Projekten sicher nicht mehr möglich keine größeren Verzögerungen, viel Zeit ging beim Bugfixing und dem Hinzufügen von Features verloren (vor allem in der Bildverarbeitung)keine größeren Verzögerungen, viel Zeit ging beim Bugfixing und dem Hinzufügen von Features verloren (vor allem in der Bildverarbeitung) Meilensteine: Meilensteine: keine Meilensteine vorgegeben, persönliche Meilensteine konnten gut (teilweise später) erreicht werden - so eine lauffähige GUI mit allen Funktionen oder die Grundversionen des Neuronalen Netzes und der Bildverarbeitungkeine Meilensteine vorgegeben, persönliche Meilensteine konnten gut (teilweise später) erreicht werden - so eine lauffähige GUI mit allen Funktionen oder die Grundversionen des Neuronalen Netzes und der Bildverarbeitung

3. Zusammenfassung Probleme: softwaretechnisch: softwaretechnisch: Mit Implementierung direkt nach dem Pflichtenheft begonnen (Zeitnot) war ein Problem, da wir im Entwurf die komplette Klassenstruktur neu erarbeitet habenMit Implementierung direkt nach dem Pflichtenheft begonnen (Zeitnot) war ein Problem, da wir im Entwurf die komplette Klassenstruktur neu erarbeitet haben programmiertechnisch: programmiertechnisch: In eigener C++ Matrixklasse zunächst keine Exception bei Arraygrenzenüberschreitung der späte Einzug dieses Features hat uns viel Zeit und Nerven gekostetIn eigener C++ Matrixklasse zunächst keine Exception bei Arraygrenzenüberschreitung der späte Einzug dieses Features hat uns viel Zeit und Nerven gekostet Wer kennt es nicht: Jonglieren mit * und &Wer kennt es nicht: Jonglieren mit * und & Problematisch bei Entwicklung: zu keinem Zeitpunkt war uns direkt klar, ob oder wie gut das Programm funktionieren wird. Problematisch bei Entwicklung: zu keinem Zeitpunkt war uns direkt klar, ob oder wie gut das Programm funktionieren wird. Die Algorithmenentwicklung war ebenfalls knifflig. Die Algorithmenentwicklung war ebenfalls knifflig.

3. Zusammenfassung Gelerntes: Ahnung: Abspracheprobleme in größeren Projekten werden sicher schnell vielzählig Ahnung: Abspracheprobleme in größeren Projekten werden sicher schnell vielzählig Neues Wissen über: Neues Wissen über: Algorithmen (Bildverarbeitung, Neuronale Netze, OCR allgemein)Algorithmen (Bildverarbeitung, Neuronale Netze, OCR allgemein) plattformunabhängige GUI-Programmierung mit wxWidgetsplattformunabhängige GUI-Programmierung mit wxWidgets Multithreading (in wxWidgets)Multithreading (in wxWidgets) C++ Programmierung: Polymorphie & generische Datentypen, Exception-Behandlung, STL-Nutzung (map, pair, Iteratoren, …)C++ Programmierung: Polymorphie & generische Datentypen, Exception-Behandlung, STL-Nutzung (map, pair, Iteratoren, …) objektorientierte Programmierungobjektorientierte Programmierung Umgang mit KonfigurationsdateienUmgang mit Konfigurationsdateien Schreiben von Quelltext- und BenutzerdokumentationSchreiben von Quelltext- und Benutzerdokumentation Umgang mit Tools wie CVS, bugzilla, doxygen sowie der Sourceforge-Plattform Umgang mit Tools wie CVS, bugzilla, doxygen sowie der Sourceforge-Plattform

3. Zusammenfassung Statistik: ca. 300h Arbeit am Projekt ca. 300h Arbeit am Projekt Über 6300 Zeilen Code (mit Kommentaren) – viel davon algorithmisch Über 6300 Zeilen Code (mit Kommentaren) – viel davon algorithmisch 22 C++ Klassen 22 C++ Klassen Geplant waren anfangs ~8 Klassen, 200h Gesamtzeit und 2000 Zeilen Code – das war wohl ein wenig optimistisch Geplant waren anfangs ~8 Klassen, 200h Gesamtzeit und 2000 Zeilen Code – das war wohl ein wenig optimistisch

3. Zusammenfassung Adressen: Projektseite: Projektseite: CVS: CVS: cvs.sf.net | /cvsroot/wxocr | anonymous | kein Passwort | pserver | Module wxOCR_netTrainer bzw. wxOCR_main Weitere Infos: Weitere Infos: wxWidgets: wxWidgets:

Much fun & happy coding