next up previous contents
Next: Backpropagation netwerk Up: Het programma Previous: Het programma   Contents

Inleiding

In het tweede blok heb ik een programma gebouwd dat grotendeels voldoet aan het programma ontwerp dat ik voorstelde aan het einde van blok 1.

Het programma dat ik gebouwd heb kan een plaatje inlezen. Nadat het plaatje is ingelezen bekijkt het of de tekst netjes recht staat, zo niet dan wordt de tekst recht gezet.

Nadat de tekst recht is gezet wordt er gekeken waar een letter staat. De letters worden gelokaliseerd en kunnen worden opgeslagen. Voordat de letters worden opgeslagen wordt er eerst gezorgd dat elke letter dezelfde afmetingen heeft. De letters kunnen worden opgeslagen in een .hwr file. Deze file bevat een regel met 1-en en 0-en die de letter weergeven, op elke regel staat een nieuwe letter.

In het tweede gedeelte van het programma kan het vorige bestand weer geopend worden. Het tweede deel heeft als doel het koppelen van een letter aan een gevonden letter. Het programma weet natuurlijk nog niet welke letter er gevonden is. Het koppelen is nodig om straks het neurale netwerk te kunnen laten leren. Het neurale netwerk moet weten welke gewenste uitvoer hoort bij een invoer. De gekoppelde gegevens kunnen worden opgeslagen en in het volgende gedeelte worden geladen voor het neurale netwerk.

Bij dit tweede gedeelte kan er gekozen worden om gebruik te maken van Thinning en Pruning. Thinning is een methode om een plaatje te bewerken. Het resultaat is dat van een dikke lijn een dunne lijn gemaakt wordt van 1 pixel breed. Bij deze methode ontstaan vaak korte 'spurs', uitsteeksels die eigenlijk niet gewenst zijn. Deze 'spurs' kunnen verminderd worden door gebruik te maken van Pruning. Veel informatie over Thinning en Pruning is op internet te vinden, zoek o.a. op "character thinning".

Het derde gedeelte is het neurale netwerk. Het netwerk heeft de pixels van een letter als invoer waarde, bij een letter van 20 bij 15 pixels is dit dus 300 invoer waarden. De invoer waarde bestaan uit een 0 of een 1. De gewenste uitvoer waarde is een letter van het alfabet. Er zijn dus 26 uitvoer waarden.
Het neurale netwerk gedeelte heeft een knop om de toegekende netwerk waarden te laden, om die waarden te trainen en een knop om die waarden daarna op te slaan. Indien er waarden zijn opgeslagen kunnen deze de volgende keer weer worden geladen, zodat er niet meer getraind hoeft te worden of om extra te kunnen trainen, waarna de waarden weer kunnen worden opgeslagen.

Het laatste gedeelte van het programma is het herkennings gedeelte. In het herkennings gedeelte moet een .hwr bestand geopend worden dat door het eerste gedeelte gegenereerd is. Dit kan dus hetzelfde bestand zijn als dat er getraind is, dan moet er na een druk op de knop precies herkend worden wat er getraind was. Voor de herkenning wordt gebruik gemaakt van het neurale netwerk. Om te kunnen herkennen moet het netwerk wel eerst getraind zijn en moeten de waarden zijn geladen. Ook kan er een ander .hwr bestand geladen worden dat niet getraind was om te kijken in hoeverre een stuk tekst herkend wordt.

Het programma ziet er als volgt uit:

\includegraphics[width=15cm]{img2.eps}

Het programma kan worden gedownload vanaf: http://www.escay.com/hwr/hwr.tar.gz


next up previous contents
Next: Backpropagation netwerk Up: Het programma Previous: Het programma   Contents
R.M.Morrien 2002-02-11