2011-01-05 16 views
1

hi ich studiere maschinelles Lernen, und ich möchte eine einfache Handschrifterkennungssoftware mit Python und opencv schreiben.Wenige Fragen über die Handschrifterkennung

der Einfachheit halber werde ich jetzt nur Großwörter gleicher Größe erkennen. Ich denke, ein guter Weg, um Buchstaben zu erkennen, ist die Verwendung von Erwartungsmaximierungsalgorithmen zum Lernen von Parametern eines Gauß'schen Mischungsmodells, die Verwendung eines Trainingssatzes und den Vergleich der neuen Buchstaben Gauß-Mischung mit den trainierten. aber ich verstehe nicht, wie man wie viel Gauß in der Mischung wählt.

Das zweite Problem ist, wie man versteht, wie viele Wörter in einer Seite sind und wie viele Buchstaben es in einem Wort gibt. Ich denke nicht, dass em-Algorithmus oder ähnliches (k-bedeutet zum Beispiel) könnte die Lösung sein, aber es gibt einige Segmentierung Probleme sicher

ein paar Tipps?

Antwort

1

Zuerst müssen Sie die Buchstaben ausrichten. Wenn Sie davon ausgehen, dass es aufrecht ist, dann ist es in Ordnung. Danach können Sie kmeans Segmentierung mit 2 Clustern verwenden, um die Schriften vom Hintergrund zu clustern (vorausgesetzt, der Hintergrund ist klar). Sobald Sie damit fertig sind, erhalten Sie im Grunde ein binäres Bild von 1 als Vordergrund und Null als Hintergrund. Danach können Sie eine Analyse der verbundenen Komponenten durchführen, um jeden Buchstaben zu segmentieren.

Ich denke, anstelle eines GMM könnten Sie ein neuronales Netzwerk verwenden, um die Buchstaben zu klassifizieren. Sie können das Buchstabenbild normalisieren und Pixel an ein neuronales Netzwerk mit 26 Ausgaben für 26 Alphabete senden.

Dies ist eine Möglichkeit, das Problem anzugehen. Wenn Sie weitere Informationen oder Materialien zum Implementieren oder Referenzieren von Dokumenten wünschen, können Sie danach fragen.

Danke, Krishna

+0

Vielen Dank für gute Antworten. Ja, kannst du mir ein paar Implementierungsmaterialien geben? – nkint