210 likes | 318 Views
Verteidigung. Pflichtenheft wxOCR. Matthias Jauernig Michael Lahl. Bild. Text. Im heutigen Seminar verteidigen wir unser Pflichtenheft – hoffentlich erfolgreich…. 1. Zielbestimmung. Überblick. Texterkennung mithilfe eines Künstlichen Neuronalen Netzes Erkennung von „gedrucktem“ Text
E N D
Verteidigung Pflichtenheft wxOCR Matthias Jauernig Michael Lahl
Bild Text Im heutigen Seminar verteidigen wir unser Pflichtenheft – hoffentlich erfolgreich… 1. Zielbestimmung Überblick • Texterkennung mithilfe eines Künstlichen Neuronalen Netzes • Erkennung von „gedrucktem“ Text • text-enthaltendes Bild wird verarbeitet und vom Programm in Text umgewandelt • Beispiel:
1. Zielbestimmung Neuronales Netz • Normales Feed-Forward-Netz, welches mit Backpropagation auf die aufzunehmenden Zeichensätze angelernt wird. • Bekommt als Input ein Zeichen in Form eines float-Vektors, liefert als Output einen Erkennungsvektor für die jeweiligen Buchstaben.
1. Zielbestimmung Neuronales Netz • Veranschaulichung: ABCDEFGH 0,94 0,08 … … 0,04 0,05 … Neuronales Netz Muster als float-Vektor mit skalierten Graustufen-Werten Erkennungsgrad der einzelnen Buchstaben
1. Zielbestimmung Aufteilung in Teilprogramme • 2 Teilprogramme: • wxOCRnetTrainer: Entwickler-Tool zum Anlernen des Neuronalen Netzes • wxOCR (main): Benutzerprogramm zur Durchführung der Texterkennung • Effektivität der Erkennung zu großem Teil auch von Anlernbarkeit von Zeichensätzen abhängig a Fokus auf Entwicklung des netTrainers • Hauptprogramm (wxOCR main) muss hauptsächlich über gute Algorithmen zur Bildverarbeitung verfügen
1. Zielbestimmung Aufteilung in Teilprogramme • Veranschaulichung: a Siehe auch Produktdaten: Folie 14 Zeichensatz Neuronales Netz Bild Textdatei load load load save save wxOCR net Trainer wxOCR (main)
1. Zielbestimmung Probleme bei der Erkennung • Kerning: „Unterschneiden“ Pixel des nächsten Buchstaben reichen in den vorigen hinein, daher ist z.B. Abtrennen von Buchstaben durch Finden einer leeren Spalte nicht möglich • Ligaturen: 2 oder mehr Buchstaben verschmelzen miteinander, sodass sie nicht mehr durch einen Abstand voneinander getrennt werden
1. Zielbestimmung Musskriterien • Implementation der beiden Teilprogramme • Erkennung gedruckten Textes aus einem vom Benutzer gewählten Bild • Erkannter Text kann nachträglich bearbeitet und gespeichert werden • Zuverlässige Erkennung von Arial 14pt… • Plattformunabhängige Implementierung als Open Source
1. Zielbestimmung Wunschkriterien • Erkennung unterschiedlicher Schriften und Schriftgrößen • Bedingte Behandlung von Kerning • Erkennung von Text aus „schiefen“ Textzeilen • Behandlung von Nicht-Textelementen (Bilder, Grafikelemente, …)
1. Zielbestimmung Abgrenzungskriterien • Keine Erkennung von Handschrift sowie stark von Arial abweichenden Schriften • Keine Schrift mit Ligaturen • Keine Schaffung eines sehr ausgereiften Systems zur Schrifterkennung
2. Produkteinsatz • Für Endbenutzer von z.B. Scannersoftware zur Erkennung von Text aus einem gescannten Bild • Für Software-Entwickler oder Informatik-Studenten, die Teile des Quelltextes verwenden bzw. daraus lernen wollen
3. Produktübersicht Use-Case-Diagramm • Nur 2 Use Cases, der Großteil der Arbeit findet „unter der Haube“ statt
4. Produktfunktionen Geschäftsprozesse • Netz trainieren: Entwickler-Geschäftsprozess, bei dem das Neuronale Netz auf Zeichensätze antrainiert wird • Text erkennen: Benutzer-Geschäftsprozess, bei dem Text aus einem Bild erkannt wird unter Verwendung des antrainierten Neuronalen Netzes
5. Produktdaten Dauerhaft zu speichern • Neuronales Netz a 1 Datei • Zeichensätze a mehrere Dateien a Siehe auch: Folie 6
5. Produktdaten Zur Laufzeit anfallend • Hauptbestandteile: • Bilddaten und Matrizen erkannter Muster • Daten des Neuronalen Netzes
6. Produktleistungen • Anwender vom zeitintensiven Prozess des Netz-Anlernens befreien durch Aufteilung in die 2 Teilprogramme • Texterkennung sollte bei A4-Seite nicht länger als 10s dauern (im Vorfeld nur bedingt abschätzbar)
7. Qualitätsanforderungen • Haupt-Augenmerk zum einen auf der Benutzbarkeit, so dass es auch von einem Laien benutzt werden kann • Zum anderen Schwerpunkt auf Änderbarkeit und Übertragbarkeit, vor allem in Hinblick auf Plattformunabhängigkeit und Open Source
8. Benutzungsoberfläche • Benutzungsoberfläche mit Mausbedienung wxOCR net Trainer Prototyp unter Linux mit KDE 3.3 wxOCR (main) Prototyp unter Windows
9. Nichtfunktionale Anforderungen Grafikbibliothek • C++ Open-Source-Bibliothek zur Erstellung plattfomunabhängiger GUIs • Genauer: „Wrapper“, der Funktionsaufrufe je nach OS in verschiedene System Calls umwandelt • Mächtiges Werkzeug zur plattformunabhängigen Programmierung • Webseite: http://wxwidgets.org
Noch Fragen? ? ? ? ? ? ? ? ? ? ? ?