
Proč fotky stránek knih selhávají při OCR (a jak pár stupňů náklonu zničí přesnost)
Publikováno 24. 7. 2026
Pokud jste někdy zkusili převést fotku stránky knihy na text online a dostali zpátky zeď rozsypaných nesmyslů, nejspíš jste vinili špatnou věc. Je lákavé předpokládat, že za to může starý zažloutlý papír nebo špatné osvětlení — jenže v testech ani jedno z toho výsledkem skoro nepohnulo. Skutečnou příčinou je téměř vždy něco, co pouhým pohledem na fotku nevidíte: malý náklon fotoaparátu.
Test: stejná stránka, čtyři podmínky
Abychom zjistili, co OCR (optické rozpoznávání znaků) na reálných fotkách knih doopravdy rozbíjí, prohnali jsme stejný blok textu Tesseractem — open-source OCR enginem — za čtyř podmínek: čistý rovný sken, zažloutlá/vybledlá stránka, fotka nakloněná asi o 12 stupňů a nakloněná fotka s přidaným odleskem.
| Podmínka | Přesnost slov |
|---|---|
| Čistý, rovný sken | 100% |
| Zažloutlá, vybledlá stránka (bez náklonu) | 100% |
| Náklon ~12° (bez zabarvení) | 67.7% |
| Náklon ~8° + odlesk | 71.0% |
Zažloutlá stránka dopadla stejně jako ta nedotčená — plný počet. V okamžiku, kdy přibyl náklon, se přesnost propadla o třetinu a vznikl přesně ten druh výstupu, který zná každý, kdo zkoušel nástroje na „převod učebnice do wordu“: "brow," místo „brown“, "Chapte,." místo „Chapter.“, "hidde,," místo „hidden”.
Proč nepatrný náklon napáchá takovou škodu
OCR enginy čtou text tak, že skenují řádky obrazu a hledají souvislé vodorovné pásy inkoustu — tím mechanismem odlišují jeden řádek textu od druhého. Na dokonale rovném skenu sedí každý řádek textu v úhledném vodorovném pásu a engine čistě oddělí řádek 1 od řádku 2 a od řádku 3.
Nakloňte stránku byť o 10 stupňů a z čistého vodorovného pásu se stane diagonální šmouha přes desítky pixelových řádků. Logika segmentace řádků začne slučovat znaky z toho, co měly být dva samostatné řádky, nebo rozdělovat jediný znak mezi to, co považuje za dva různé řádky. Výsledek není „o trochu méně přesný“ — je to kategoricky jiný výstup, protože základní jednotka, kterou engine čte (řádek), už neodpovídá tomu, co je v obrázku doopravdy.
Proto také může fotka, která vám připadá naprosto čitelná, dávat nečitelný OCR výstup. Váš zrakový systém desetistupňový náklon kompenzuje bez jakéhokoli vědomého úsilí — ani ho jako náklon nezaregistrujete. Naivní OCR pipeline žádnou takovou kompenzaci zabudovanou nemá a čte přesně ty pixely, které dostane.
Oprava: narovnat před rozpoznáváním, ne po něm
Praktický závěr nezní „drž telefon opatrněji“ — trocha náklonu při fotografování otevřené knihy je téměř nevyhnutelná, protože stránku netisknete naplocho na skener. Oprava je automatická: detekovat úhel náklonu a opravit ho před spuštěním rozpoznávání textu, ne po něm.
Jedním spolehlivým způsobem detekce úhlu bez jakéhokoli těžkého modelu strojového učení je metoda projekčního profilu: otáčejte obraz přes rozsah kandidátních úhlů a u každého změřte, jak „špičaté“ je rozložení inkoustu řádek po řádku. Při správném úhlu se řádky textu srovnají do ostrých pásů (vysoký rozptyl mezi řádky); při jakémkoli jiném úhlu se inkoust rozmaže napříč řádky (nízký rozptyl). Úhel s nejvyšším rozptylem je úhel narovnání.
Spuštění této korekce nejdřív a rozpoznávání textu až potom vrátilo každý z našich nakloněných testovacích případů zpět na 100% přesnost slov — stejná stránka, stejný OCR engine, jediným rozdílem bylo narovnání předem.
Co to znamená, pokud digitalizujete knihu
- Netrapte se stavem papíru. Zažloutnutí, mírné vyblednutí a lehká ztráta kontrastu stárnoucího papíru samy o sobě přesností skoro nepohnou. Starý paperback se digitalizuje zhruba stejně dobře jako nový.
- Trapte se úhlem. I náklon, kterého si okem nevšimnete, může být celým rozdílem mezi použitelným textem a nesmysly.
- Odlesk od blesku vadí méně než náklon, ale pořád škodí. Jasný svit na lesklém papíře může vygumovat text, který je pod ním — korekce úhlu nespraví místo, kde není žádný čitelný inkoust ke čtení.
- Nástroj, který náklon opravuje automaticky, řeší skutečný problém. Náš nástroj book page to text provádí přesně tento krok detekce a korekce ve vašem prohlížeči ještě před rozpoznáváním — žádné nahrávání, žádný server, a je postavený přímo kolem problému náklonu, místo aby předpokládal, že mu dáváte rovný sken.
Pokud jste OCR na fotce knihy už zkoušeli a vzdali to, protože byl výsledek nečitelný, problém nejspíš nebyl ve stránce — téměř jistě to bylo pár stupňů úhlu fotoaparátu.