
Miksi kirjansivuvalokuvat epäonnistuvat OCR:ssä (ja miten muutama asteen kallistus tuhoaa tarkkuuden)
Julkaistu 24.7.2026
Jos olet joskus yrittänyt muuttaa kirjansivun valokuvan tekstiksi verkossa ja saanut vastaukseksi seinän sekasotkuista roskaa, olet luultavasti syyttänyt väärää asiaa. On houkuttelevaa olettaa, että vanha, kellastunut paperi tai huono valaistus on syyllinen — mutta testeissä kumpikaan ei vaikuttanut tulokseen juuri lainkaan. Todellinen syy on lähes aina jotain, mitä et näe pelkästä valokuvasta katsomalla: pieni kameran kallistus.
Testi: sama sivu, neljä olosuhdetta
Selvittääksemme mikä oikeasti rikkoo OCR:n (optisen merkintunnistuksen) todellisissa kirjansivuvalokuvissa, ajoimme saman tekstilohkon Tesseractin — avoimen lähdekoodin OCR-moottorin — läpi neljässä olosuhteessa: puhdas tasainen skannaus, kellastunut/haalistunut sivu, noin 12 asteen kulmaan kallistettu valokuva, ja kallistettu valokuva, johon on lisätty heijastuskiilto.
| Olosuhde | Sanatarkkuus |
|---|---|
| Puhdas, tasainen skannaus | 100 % |
| Kellastunut, haalistunut sivu (ei kallistusta) | 100 % |
| Kallistettu ~12° (ei värjäytymää) | 67,7 % |
| Kallistettu ~8° + kiilto | 71,0 % |
Kellastunut sivu sai täsmälleen saman pisteytyksen kuin pristiinin puhdas — täydet pisteet. Heti kun kallistus tuli mukaan kuvaan, tarkkuus romahti kolmanneksella, tuottaen juuri sellaista tulosta, jota kaikki “skannaa oppikirja sanoiksi” -työkaluja kokeilleet ovat nähneet: “brow,” sanan “brown” sijaan, “Chapte,.” sanan “Chapter.” sijaan, “hidde,,” sanan “hidden” sijaan.
Miksi pieni kallistus aiheuttaa näin paljon vahinkoa
OCR-moottorit lukevat tekstiä skannaamalla kuvan rivejä etsien johdonmukaisia vaakasuuntaisia mustevöitä — se on mekanismi, jolla ne erottavat yhden tekstirivin toisesta. Täysin tasaisessa skannauksessa jokainen tekstirivi asettuu siistiin vaakasuuntaiseen vyöhön, ja moottori erottaa siististi rivin 1 rivistä 2 ja rivistä 3.
Kallista sivua vaikkapa vain 10 astetta, ja tuo siisti vaakavyö muuttuu diagonaaliseksi tahraksi, joka ulottuu kymmenien pikselirivien yli. Moottorin rivinsegmentointilogiikka alkaa yhdistää merkkejä, joiden pitäisi kuulua kahdelle eri riville, tai jakaa yhden merkin kahdeksi eri riviksi luulemansa osaksi. Lopputulos ei ole “hieman epätarkempi” — se on kategorisesti erilainen tulos, koska moottorin lukema perusyksikkö (rivi) ei enää vastaa sitä, mitä kuvassa oikeasti on.
Tämä myös selittää, miksi valokuva, joka näyttää sinusta täysin luettavalta, voi silti tuottaa lukukelvottoman OCR-tuloksen. Näköjärjestelmäsi kompensoi 10 asteen kallistuksen ilman tietoista ponnistelua — et edes rekisteröi sitä kallistuneeksi. Naiivissa OCR-putkessa ei ole tällaista kompensaatiota sisäänrakennettuna, ja se lukee juuri ne pikselit, jotka sille annetaan.
Korjaus: suorista ennen tunnistusta, älä sen jälkeen
Käytännön johtopäätös ei ole “pidä puhelinta varovaisemmin” — vähäinen kallistus avoimen kirjan valokuvaamisessa on lähes väistämätöntä, koska et paina sivua tasaisesti skanneria vasten. Korjaus on automaattinen: havaitse kallistuskulma ja korjaa se ennen tekstintunnistuksen ajamista, ei sen jälkeen.
Yksi luotettava tapa havaita kulma ilman raskasta koneoppimismallia on projektioprofiili-menetelmä: kierrä kuvaa läpi joukon kandidaattikulmia, ja jokaiselle mittaa, kuinka “piikikäs” rivikohtainen mustejakauma on. Oikealla kulmalla tekstirivit asettuvat teräviksi vöiksi (korkea varianssi rivien välillä); millä tahansa muulla kulmalla muste tahriintuu rivien yli (matala varianssi). Kulma, joka tuottaa korkeimman varianssin, on suoristuskulma.
Tämän korjauksen ajaminen ensin ja tekstintunnistuksen vasta sen jälkeen palautti jokaisen kallistetun testitapauksemme takaisin 100 %:n sanatarkkuuteen — sama sivu, sama OCR-moottori, ainoa ero oli sen suoristaminen ensin.
Mitä tämä tarkoittaa, jos digitoit kirjaa
- Älä murehdi paperin kunnosta. Kellastuminen, lievä haalistuminen ja vanhenevan paperin pieni kontrastin heikkeneminen eivät juuri liikuta tarkkuutta yksinään. Vanha pokkari digitoituu suunnilleen yhtä hyvin kuin uusi.
- Murehdi kulmasta. Jopa kallistus, jota et huomaisi silmämääräisesti, voi olla koko ero käyttökelpoisen tekstin ja roskan välillä.
- Salaman kiilto haittaa vähemmän kuin kallistus, mutta silti haittaa. Kirkas hotspot kiiltävällä paperilla voi pyyhkiä pois minkä tahansa sen alla olevan tekstin — kulmakorjaus ei korjaa kohtaa, jossa ei alun perinkään ole luettavaa mustetta.
- Työkalu, joka korjaa kallistuksen automaattisesti, ratkaisee varsinaisen ongelman. Kirjansivu tekstiksi -työkalumme ajaa juuri tämän havainnointi- ja korjausvaiheen selaimessasi ennen tunnistusta — ei latausta, ei palvelinta, ja se on rakennettu nimenomaan kallistusongelman ympärille sen sijaan että oletettaisiin syöttäväsi sille tasainen skannaus.
Jos olet aiemmin kokeillut OCR:ää kirjavalokuvalla ja luovuttanut, koska tulos oli lukukelvoton, sivu tuskin oli ongelma — muutaman asteen kameran kulma lähes varmasti oli.