Interesse an einem OCR-Projekt auf LGPL-Basis?
Interesse an einem OCR-Projekt auf LGPL-Basis?
Hallo,
Ich habe einen Source geschrieben (PB3.94) der bereits folgendes macht:
- erkennen der Textbereiche
- erkennen der Textzeilen
- erkennen der Zeichen darin
- ausgabe der einzelnen Zeichen als Bitmaps
Lerncode habe ich nur einen Pattern-Basierenden Testcode der nicht gut funktioniert.
Hier ein Bild der bisherigen Arbeit:
Ich denke darüber nach, ob ich daraus ein LGPL-Projekt machen soll?
Ziele des Projektes wären:
- eine DLL für das volle OCR (liefert ASCII-Text)
- eine OCR-Anwendung (?)
- eine Training-Anwendung für verschiedene Zeichensätze
Zielgruppe:
- Entwickler die eine OCR benötigen (desshalb die DLL)
- Eine open-source OCR-Anwendung
- Werbung für PureBasic (der PB-Code ist ja dann Open-Source)
Im Moment wären zu tun:
- Zeichenerkennung per Neuronaler Netze (oder was besseres?)
- Training-Anwendung
In einem weiteren Schritt könnte dann eine volle OCR-Anwendung daraus entstehen.
Dabei benötige ich aber Mitstreiter die sich das technisch zutrauen. Interesse?
PS. Die LGPL desshalb, weil ich die DLL dann selbst in kommerzielle Projekte integrieren möchte. Ist das ein fairer Ansatz?
Volker
Ich habe einen Source geschrieben (PB3.94) der bereits folgendes macht:
- erkennen der Textbereiche
- erkennen der Textzeilen
- erkennen der Zeichen darin
- ausgabe der einzelnen Zeichen als Bitmaps
Lerncode habe ich nur einen Pattern-Basierenden Testcode der nicht gut funktioniert.
Hier ein Bild der bisherigen Arbeit:
Ich denke darüber nach, ob ich daraus ein LGPL-Projekt machen soll?
Ziele des Projektes wären:
- eine DLL für das volle OCR (liefert ASCII-Text)
- eine OCR-Anwendung (?)
- eine Training-Anwendung für verschiedene Zeichensätze
Zielgruppe:
- Entwickler die eine OCR benötigen (desshalb die DLL)
- Eine open-source OCR-Anwendung
- Werbung für PureBasic (der PB-Code ist ja dann Open-Source)
Im Moment wären zu tun:
- Zeichenerkennung per Neuronaler Netze (oder was besseres?)
- Training-Anwendung
In einem weiteren Schritt könnte dann eine volle OCR-Anwendung daraus entstehen.
Dabei benötige ich aber Mitstreiter die sich das technisch zutrauen. Interesse?
PS. Die LGPL desshalb, weil ich die DLL dann selbst in kommerzielle Projekte integrieren möchte. Ist das ein fairer Ansatz?
Volker
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
so kannst du das nicht sagen.
von meiner seite z.b. würde durchaus grundsätzliches interesse bestehen, so ein projekt mitzuverfolgen, und irgendwann darauf zurückgreifen zu können.
aber energien für mitarbeit kann ich nicht erübrigen, ich hab praktisch mein limit erreicht, bei manchen sachen komm ich schon nich mehr nach, wenn ich noch mehr zusage, platzt mir der kopp oder ich spring ausm fenster....
also, grundsätzlich sehr interessant, aber (sorry) findet nicht ausreichend priorität bei mir im moment...
von meiner seite z.b. würde durchaus grundsätzliches interesse bestehen, so ein projekt mitzuverfolgen, und irgendwann darauf zurückgreifen zu können.
aber energien für mitarbeit kann ich nicht erübrigen, ich hab praktisch mein limit erreicht, bei manchen sachen komm ich schon nich mehr nach, wenn ich noch mehr zusage, platzt mir der kopp oder ich spring ausm fenster....
also, grundsätzlich sehr interessant, aber (sorry) findet nicht ausreichend priorität bei mir im moment...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Hallo,
Evtl. erbarmt sich ja doch mal jemand...
Volker
Das ist ja aber keine schlechte Idee. Dennoch ist das Vergleichen alleine nicht genug. Ein O (Oh) ist nunmal nicht das gleiche wie eine 0 (Null). Für die OCR und auch ein neuronales Netz schon. Desshalb steckt da noch viel mehr dahinter. Was auch ein Problem ist, ist die Tatsache der Doppelzeichen. Je nach Zeichensatz rutschen manche Buchstabenkombinationen so sehr zusammen, dass ich diese nicht mehr sinnvoll trennen kann. Es sind so Dinge wie ft, rt und ein paar andere. Da reicht ein Font-Vergleich nicht. Es muss für viele gängige Fonts ein Vergleichskatalog erstellt werden. Das wäre dann das Trainingsprogramm. Dem bringt man das ft dann eben als eigenes Zeichen mit der 'Übersetzung' als ft bei.Du könntest den verwendeten Zeichensatz ja mit den installierten Fonts per 2D-Drawing vergleichen....
Nur so 'ne Idee..
Evtl. erbarmt sich ja doch mal jemand...
Volker
Hallo,
Zeit ist bei mir auch ein Problem....
Ich hätte da ein paar Fragen. Welchen Plan hast du mit den NN
Welche NN wolltest du dafür verwenden? Hast du ein paar
Sachen, die man lesen sollte dazu, um abzuschätzen, wieviel
Zeit man braucht? Bis jetzt habe ich nur einfachste Sachen
selber programmiert. Ansonsten immer schon fertige
Programme zum trainieren genutzt.
mar
Zeit ist bei mir auch ein Problem....
Ich hätte da ein paar Fragen. Welchen Plan hast du mit den NN
Welche NN wolltest du dafür verwenden? Hast du ein paar
Sachen, die man lesen sollte dazu, um abzuschätzen, wieviel
Zeit man braucht? Bis jetzt habe ich nur einfachste Sachen
selber programmiert. Ansonsten immer schon fertige
Programme zum trainieren genutzt.
mar
Hi mar,
Am besten sollte diese Komponente folgende Funktionen haben:
Lerne ein Zeichen
(Übergabe einer 16x16 Bitmap mit dem zu lernenden Zeichen und der korrekten Zuordnung)
Erkenne ein Zeichen
(Übergabe einer 16x16 Bitmap und Rückgabe des Zeichens und einer
Verlässlichkeitsschätzung wie zB 'Sicher zu 60%')
Ich denke, die gelernten Werte sollten in eine ASCII-Datei gespeichert sein. Diese kann dann später für verschiedene Zeichensätze verwendet werden und auch unter den Usern ausgetauscht werden.
Als weitere Komponente sollte es eine Funktion geben, die zB Anhand des aktuellen Kontextes unterscheidet, ob eine erkannte 0 (Null) nicht besser als O (Oh) interpretiert werden soll oder umgekehrt. Oder ein erkanntes kleines L (l) nicht besser als 1 oder I (Ih)... Sozusagen ein Lektor für die erkannten Zeichen.
Das zumindest ist der Plan...
Ich bräuchte aber jemanden, der sich mit NN auskennt und in der Lage ist die Erkennungs- und Lernfunktionen umzusetzen.
Ein guter Startpunkt dafür kann die Wikipedia sein:
http://de.wikipedia.org/wiki/Backpropagation
Ich glaube, dass auch schon mal jemand hier im Board etwas mit NN gemacht hat. Ich geh mal suchen...
Volker
Ich dachte an ein Backpropagation-Netzwerk, angewandt auf eine 16x16 Matrix, zur Mustererkennung. Darin sollten ca. 100 Zeichen (A-Z, a-z, gängige Umlaute, Ziffern, Satzzeichen) enthalten bzw. gelernt sein.Welche NN wolltest du dafür verwenden?
Am besten sollte diese Komponente folgende Funktionen haben:
Lerne ein Zeichen
(Übergabe einer 16x16 Bitmap mit dem zu lernenden Zeichen und der korrekten Zuordnung)
Erkenne ein Zeichen
(Übergabe einer 16x16 Bitmap und Rückgabe des Zeichens und einer
Verlässlichkeitsschätzung wie zB 'Sicher zu 60%')
Ich denke, die gelernten Werte sollten in eine ASCII-Datei gespeichert sein. Diese kann dann später für verschiedene Zeichensätze verwendet werden und auch unter den Usern ausgetauscht werden.
Als weitere Komponente sollte es eine Funktion geben, die zB Anhand des aktuellen Kontextes unterscheidet, ob eine erkannte 0 (Null) nicht besser als O (Oh) interpretiert werden soll oder umgekehrt. Oder ein erkanntes kleines L (l) nicht besser als 1 oder I (Ih)... Sozusagen ein Lektor für die erkannten Zeichen.
Das zumindest ist der Plan...
Ich bräuchte aber jemanden, der sich mit NN auskennt und in der Lage ist die Erkennungs- und Lernfunktionen umzusetzen.
Ein guter Startpunkt dafür kann die Wikipedia sein:
http://de.wikipedia.org/wiki/Backpropagation
Ich glaube, dass auch schon mal jemand hier im Board etwas mit NN gemacht hat. Ich geh mal suchen...
Volker