Liggaren inläsning
Från wpu.nu
Hur går det med liggaren?
Framåt. Sakta.
Varför?
Dels handlar det om källmaterialet, dels om noggrannheten som krävs, dels om dokumentets storlek.
Tabeller är generellt svåra att översätta till text av lite olika anledningar. En sak är att textens position är viktig. Om tex en uppslagssiffra hamnar på fel rad blir informationen i stort sett oanvändbar. Tabellinjerna förvirrar också OCR-algoritmen. Därför behöver man "klippa ut" endast texten i varje cell och sedan visa den för OCR-algoritmen separat. För att göra det för ca 300 000 celler behöver man en automatisk lösning. Det måste också klippas ganska noga eftersom texten är mycket nära tabellinjerna i liggaren. Om man klipper för mycket så försvinner bokstäver, klipper man för lite kommer ramen tolkas som bokstäver.
Ett annat problem är maskningen. Den ställer till med problem på flera ställen. När tabellinjerna ska detekteras kan den förvilla. Om enstaka ord är maskade så ställer det till det för OCR-algoritmen eftersom den tappar linjen den ska läsa på. Jag använder dilation+erosion för att skapa en mask för att ta bort maskningen. Sedan detekteras konturer på maskningen för att avgöra dess position och storlek. När det är gjort ersätts den med 'XXXXX' som funkar bättre för OCR.
Trots detta är exaktheten inte tillfredsställande. För att öka den lite har jag tränat OCR-algoritmen (Tesseract 4) på liggaren för att den ska känna igen texten bättre, vilket den gör. Trots detta kommer texten ut med en del fel. Tex att vissa bokstäver ofta blir fel. A blir 4, I blir 1, rn blir m, osv.
Detta gör också att vi har ett par hundra tusen celler