Coordinatenstelsel/Patroonherkenning

Matrixrekenen, vectorruimten, groep-en ringstructuren, (lineaire) tranformaties.
Plaats reactie
Jorgen
Nieuw lid
Nieuw lid
Berichten: 2
Lid geworden op: 17 apr 2012, 11:31

Coordinatenstelsel/Patroonherkenning

Bericht door Jorgen » 17 apr 2012, 12:08

Ik zit vast op mijn werk met een patroonprobleem. Ik probeer een lijst met coordinaten/vectoren te maken obv 250 redelijk identieke voorbeelddocumenten (namen en data zijn anders maar staan wel op dezelfde positie), ik heb alle coordinaten van alle woorden per document (documenten zijn allen net zo groot origineel maar kunnen verkleind of vergroot verstuurd zijn, op A4 staan of netjes uitgesneden), daarvan kan ik dus vectoren maken waarvan de hoeken veelal overeenkomen maar de lengtes niet omdat de documenten verkleind kunnen zijn. Voor elk document kunnen er iets meer of iets minder woorden voorkomen dus er zijn niet voor elk document evenveel coordinaten.Hoe kan ik nu de meest voorkomende coordinaten extraheren uit zo'n set. De vectoren kan ik (denk ik) pas relatief maken als ik de uiteindelijke coordinaten weet. In mijn hoofd is het simpel, leg 250 rasters over elkaar en kijk waar de zwartste stippen zitten alleen in de praktijk valt het iets tegen..

arie
Moderator
Moderator
Berichten: 3051
Lid geworden op: 09 mei 2008, 09:19

Re: Coordinatenstelsel/Patroonherkenning

Bericht door arie » 17 apr 2012, 14:03

Als je een plaatje (bv bitmap) hebt van elk document kan je zoeken waar de marges liggen en op grond daarvan de werkelijke linkerbovenhoek en linkeronderhoek van het tekstgedeelte bepalen.

Voorbeeld: neem onderstaand document met bovenmarge 100 pixels, linker marge 70 pixels en ondermarge 10 pixels, waarvan de tekst in de rechthoek omgeven door de stippellijnen staat:

Afbeelding

- als je de pixelregels van boven naar beneden scant, dan zullen de eerste 100 lijnen geen (of zeer weinig) zwarte pixels bevatten. Vanaf regel 101, waar de tekst begint, in ieder geval veel meer.
- evenzo de ondermarge: scan de regels vanaf de onderkant naar boven (hier 10 witte pixelregels, vanaf regel 11 veel zwarte pixels)
- evenzo de linker marge: scan nu de kolommen van links naar rechts (na 70 witte kolommen pas de eerste kolom met zwarte pixels.

Nu heb je de coordinaten van de linkerbovenhoek en linkeronderhoek van het tekstvak
Hiermee heb je
- zowel de locatie van je tekst (verschuiving = translatie)
- als ook de vermenigvuldigingsfactor (schalingsfactor): de hoogte in pixels van het gescande document gedeeld door de hoogte van het tekstvak van het originele document.

Hiermee zou de de exacte waarden van al je woordvectoren moeten kunnen bepalen.

Bedoel je dit?

Jorgen
Nieuw lid
Nieuw lid
Berichten: 2
Lid geworden op: 17 apr 2012, 11:31

Re: Coordinatenstelsel/Patroonherkenning

Bericht door Jorgen » 17 apr 2012, 15:01

Zoiets bedoel ik ongeveer, het probleem is alleen dat de ocr engine niet alle woorden altijd netjes leest. Je kunt er dus niet van op aan dat het eerste woord dat je in de linkerbovenhoek tegenkomt ook daadwerkelijk de linkerbovehoek is. Ik wil het ook niet op woordniveau laten afhangen maar echt op coordinaat niveau zodat de gemeenschappelijk woorden die voorkomen alleen ter controle nog nodig zijn.

arie
Moderator
Moderator
Berichten: 3051
Lid geworden op: 09 mei 2008, 09:19

Re: Coordinatenstelsel/Patroonherkenning

Bericht door arie » 17 apr 2012, 16:42

Waar ga je nu van uit? :
[1] de scanresultaten, dwz een bitmap
of
[2] de ocr-resultaten, dwz een rij letters
??

In beide situaties wil je in ieder geval je voorinformatie (= de standaard teksten op het formulier) benutten.
In geval [1] gaat het dan om beeldvergelijking/beeldherkenning,
in geval [2] om tekstvergelijking, waarbij je ook gebruik kunt maken van dynamisch programmeren (zie bv http://www.avatar.se/molbioinfo2001/dyn ... namic.html, daar met een voorbeeld uit de biologie, maar je kan dit soort algoritmen toepassen voor elke tekststring, dus ook die van het ingevulde formulier vs het blancoformulier).

Plaats reactie