CodeKitHub
Zašto fotografije stranica knjiga ne prolaze OCR (i kako par stupnjeva nagiba uništi točnost)

Zašto fotografije stranica knjiga ne prolaze OCR (i kako par stupnjeva nagiba uništi točnost)

Objavljeno 24. srp 2026.

Ako ste ikad pokušali pretvoriti fotografiju stranice knjige u tekst online i dobili natrag zid iskrivljenih besmislica, vjerojatno ste okrivili pogrešnu stvar. Lako je pretpostaviti da je star, požutio papir ili loša rasvjeta krivac — ali u testiranju ni jedno ni drugo nije značajno pomaknulo iglu. Pravi uzrok je gotovo uvijek nešto što ne možete vidjeti samim gledanjem fotografije: mali nagib fotoaparata.

Test: ista stranica, četiri uvjeta

Da bismo saznali što zapravo kvari OCR (optičko prepoznavanje znakova) na fotografijama stranica knjiga iz stvarnog svijeta, proveli smo isti blok teksta kroz Tesseract — open-source OCR engine — pod četiri uvjeta: čist ravan skener, požutjela/izblijedjela stranica, fotografija nagnuta oko 12 stupnjeva i nagnuta fotografija s dodanim odsjajem svjetla.

Uvjet Točnost riječi
Čist, ravan skener 100%
Požutjela, izblijedjela stranica (bez nagiba) 100%
Nagib ~12° (bez promjene boje) 67,7%
Nagib ~8° + odsjaj 71,0%

Požutjela stranica postigla je identičan rezultat kao netaknuta — puni bodovi. Čim je uveden nagib, točnost je pala za trećinu, proizvodeći upravo onakav izlaz kakav je vidio svatko tko je isprobao alate za “skeniraj udžbenik u tekst”: "brow," umjesto “brown”, "Chapte,." umjesto “Chapter.”, "hidde,," umjesto “hidden”.

Zašto sitan nagib uzrokuje toliku štetu

OCR motori čitaju tekst skenirajući redove slike tražeći dosljedne vodoravne pojaseve tinte — to je mehanizam kojim razlikuju jedan redak teksta od sljedećeg. Na savršeno ravnom skeniranju, svaki redak teksta sjedi u urednom vodoravnom pojasu, a motor čisto razdvaja redak 1 od retka 2 pa od retka 3.

Nagnite stranicu za samo 10 stupnjeva i taj čisti vodoravni pojas postaje dijagonalna mrlja koja se proteže preko desetaka redaka piksela. Logika segmentacije redaka motora počinje spajati znakove iz onoga što bi trebala biti dva odvojena retka, ili razdvajati jedan znak preko onoga što misli da su dva različita retka. Rezultat nije “malo manje točan” — kvalitativno je drugačiji izlaz, jer temeljna jedinica koju motor čita (redak) više ne odgovara onome što je zapravo na slici.

Zato i fotografija koja vama izgleda potpuno čitljivo i dalje može proizvesti nečitljiv OCR izlaz. Vaš vizualni sustav kompenzira nagib od 10 stupnjeva bez ikakvog svjesnog napora — čak ga ni ne registrirate kao nagnutog. Naivni OCR sustav nema ugrađenu takvu kompenzaciju i čita točno one piksele koji su mu dani.

Rješenje: ispravite prije prepoznavanja, ne poslije

Praktičan zaključak nije “držite telefon pažljivije” — malo nagiba pri fotografiranju otvorene knjige gotovo je neizbježno, jer ne pritišćete stranicu ravno na skener. Rješenje je automatsko: otkriti kut nagiba i ispraviti ga prije pokretanja prepoznavanja teksta, ne poslije.

Jedan pouzdan način otkrivanja kuta bez ikakvog teškog modela strojnog učenja jest metoda projekcijskog profila: zarotirajte sliku kroz raspon kandidatskih kutova i za svaki izmjerite koliko je “šiljasta” distribucija tinte po redovima. Na ispravnom kutu, retci teksta poravnaju se u oštre pojaseve (visoka varijanca između redova); na bilo kojem drugom kutu, tinta se razmazuje preko redova (niska varijanca). Kut koji daje najveću varijancu je kut ispravljanja (deskew).

Pokretanje ove ispravke prije, a zatim prepoznavanje teksta, vratilo je svaki od naših nagnutih testnih slučajeva na 100% točnosti riječi — ista stranica, isti OCR motor, jedina razlika je bila prethodno ispravljanje.

Što ovo znači ako digitalizirate knjigu

  • Ne brinite se za stanje papira. Požutjelost, blago izblijedjelost i mali gubitak kontrasta zbog starenja papira jedva pomiču točnost samostalno. Stara meka knjiga digitalizira se otprilike jednako dobro kao nova.
  • Brinite se za kut. Čak i nagib koji ne biste primijetili okom može biti cijela razlika između upotrebljivog teksta i besmislice.
  • Odsjaj bljeskalice manje je bitan od nagiba, ali i dalje šteti. Svijetla mrlja na sjajnom papiru može izbrisati bilo koji tekst ispod nje — ispravak kuta neće popraviti mjesto na kojem uopće nema čitljive tinte za čitanje.
  • Alat koji automatski ispravlja nagib rješava pravi problem. Naš alat za pretvorbu stranice knjige u tekst pokreće upravo ovaj korak otkrivanja i ispravljanja u vašem pregledniku prije prepoznavanja — bez prijenosa na poslužitelj, i izgrađen je posebno oko problema nagiba, a ne uz pretpostavku da mu dajete ravan skener.

Ako ste prije isprobali OCR na fotografiji knjige i odustali jer je rezultat bio nečitljiv, stranica vjerojatno nije bila problem — nekoliko stupnjeva kuta fotoaparata gotovo sigurno jest bio.

← Natrag na blog