OCR bylo zvětšeno a oříznuto, jak mapovat rozpoznávací rámeček zpět na původní text
Snímek vrácený OCR je na místním obrázku přesný, ale celkový snímek je při nakreslení zpět do PDF vypnutý. Nepochybujte nejprve o rozpoznávacím enginu, zkontrolujte sekvenci předběžného zpracování: je nejprve oříznut, poté přiblížen a poté vyplněn bílým okrajem? Každý krok změní souřadnice a inverzní mapování se musí vrátit zpět v opačném pořadí.
Rozpoznávací rámec vrácený OCR může být na místním obrázku přesný, ale celkový obrázek může být při překreslení zpět do PDF vypnutý. Tento typ problému je velmi častý. Při odstraňování problémů nemusíte nejprve pochybovat o rozpoznávacím enginu. Měli byste také zkontrolovat odkaz na předběžné zpracování. Tento článek je napsán pro vývojáře a recenzenty, kteří potřebují mapovat výsledky rozpoznávání zpět do zdrojového dokumentu.
Mnoho obrázků je před rozpoznáním oříznuto, zmenšeno a vyplněno bílými okraji. Každý krok změní souřadnice, takže inverzní mapování musí být zrušeno v opačném pořadí. Po přečtení tohoto článku můžete použít jasnou sadu nápadů na transformaci souřadnic k nalezení příčiny nesouososti a použít okružní testování a umělé kotevní body k ověření výsledků.
Ukázkový kód byl zkontrolován v izolovaném prostředí, ale to není zárukou všech skutečných souborů nebo výkonu produktu. Před manipulací s důležitými dokumenty si prosím uschovejte originály.
Co mám dělat, když pole OCR neodpovídá zdrojovému dokumentu? Závěr jednou větou
Nejprve zkontrolujte sekvenci předběžného zpracování, zaznamenejte transformaci souřadnic každého kroku a poté proveďte opačné mapování v opačném pořadí.
| vaší situaci | Doporučené postupy | důvod |
|---|---|---|
| Rozpoznávací rámec je na místní mapě přesný a po nakreslení zpět do PDF je posunut. | Zkontrolujte, zda chcete nejprve oříznout, poté změnit měřítko a poté vyplnit okraje | Každý krok změní souřadnice |
| Poměry horizontálního a vertikálního měřítka obrazu jsou různé | Uložte horizontální a vertikální proporce samostatně | Libovolným roztažením změníte tvar textu |
| Obraz je otočen nebo je opravena perspektiva | Namapujte čtyři rohové body a zachovejte čtverec nebo uložte transformaci homografie | Dvoubodový obdélník nemůže vyjádřit výsledek |
| Umístění zdroje musí být zobrazeno na rozhraní | Přijměte záznam transformace souřadnic spolu s obsahem | Zvýraznění na špatném řádku způsobí, že správný překlad bude nespolehlivý |
Místo hádání offsetu použijte explicitní transformaci
Za předpokladu bodu na grafu nejprve odečtěte počátek oříznutí, poté vynásobte poměrem měřítka a poté přidejte doplňkovou hranu. Opačným postupem je nejprve odečíst doplňkovou hranu, poté ji vydělit proporcí a nakonec ji přidat zpět k počátku řezu.
- Vpřed: Odečtěte počátek oříznutí → vynásobte poměrem měřítka → přidejte další okraje
- Obrátit: Odečtěte doplňkovou hranu → Odebrat měřítko → Přidat zpět počátek oříznutí
Pokud se horizontální a vertikální poměry liší, musí být uloženy samostatně. To nám také připomíná, že roztažením obrázku podle libosti změníte tvar textu.
Nechte zpáteční test pokrýt neceločíselné souřadnice
from math import isclose
origin = (100.0, 40.0)
scale = (2.0, 1.5)
padding = (8.0, 12.0)
def forward(point):
return tuple((point[i] - origin[i]) * scale[i] + padding[i]
for i in range(2))
def inverse(point):
if any(s <= 0 for s in scale):
raise ValueError("positive scale required")
return tuple((point[i] - padding[i]) / scale[i] + origin[i]
for i in range(2))
for point in [(100, 40), (125.5, 62.25), (200, 90)]:
restored = inverse(forward(point))
assert all(isclose(a, b) for a, b in zip(point, restored))
assert forward((100, 40)) == padding
assert inverse((58, 42)) == (125.0, 60.0)
Tento příklad pouze ověřuje geometrické výpočty a neprovádí OCR. Převzorkování obrazu zahrnuje konvence středu pixelu a zaokrouhlování a skutečné mapování hranic vyžaduje jednotné spojité souřadnice nebo sémantiku hranic pixelů.
Souřadnice s plovoucí desetinnou čárkou předčasně nezaokrouhlujte a při kreslení s nimi zacházejte podle jasných pravidel.
Krabice nemá vždy jen dva body
Různé transformace potřebují uložit různé informace a opatření při mapování se také liší:
| transformovat | potřeba šetřit | Mapování pozornosti |
|---|---|---|
| Plodina | Posun počátku | Na kterou verzi původního obrazu by se mělo obnovit? |
| Přiblížení | poměr stran | Zabránit ztrátě přesnosti při dělení celých čísel |
| střídat | Rotační centrum a matice | Po zmapování čtyř rohů zachovejte čtyřúhelník |
| Korekce perspektivy | Monotónní transformace | Dva obdélníky nestačí k vyjádření výsledku |
Ověřování a zobrazení odkazů pomocí manuálních kotevních bodů
Označte známé rohové body na několika desenzibilizovaných vzorcích a zkontrolujte, zda původní obrázek odpovídá po předzpracování. Pokud projdete matematickým jednotkovým testem, lze eliminovat pouze některé chyby výpočtu; Rotace stránky, přiblížení displeje a souřadnicové systémy PDF mohou stále přinášet nové zkreslení.
Bilingvní zvýraznění vyžaduje důvěryhodné místo
Při vytváření korektorního nástroje kolem překladu OmniDoc (produktový záznam), pokud má být zobrazena zdrojová poloha, měla by být souřadnicová linka přijata spolu s obsahovou linkou. Zvýraznění špatného řádku způsobuje, že správný překlad působí nespolehlivě. Vedení transformačních záznamů je snazší na vedení než dočasná kompenzace na začátku práce.
Pro podrobnosti o rozhraní pro mapování pixelů viz Velikost polštářového obrazu a rozhraní transformace.
📊 Srovnání jádra
Srovnání ověřovacích metod:
| Metody ověřování | Co lze objevit? | Omezení |
|---|---|---|
| Test matematické jednotky | Některé výpočty byly nesprávné | Nelze přepsat rotaci stránky, přiblížení displeje a souřadnicové systémy PDF |
| Manuální ověření kotevního bodu | Po předzpracování zkontrolujte, zda je původní obraz obnoven | Jsou vyžadovány desenzitizované vzorky a ruční anotace |
Srovnání metod zpracování souřadnic:
| Metody manipulace | Výhody | Vysvětlení |
|---|---|---|
| Uchovávání transformačních záznamů | Snadnější na údržbu | Souřadnicové vazby jsou dohledatelné |
| Dočasná kompenzace na začátku | Změny se zdají jednoduché | Náklady na údržbu jsou vyšší |
🎯 Která metoda ti vyhovuje?
Pokud ......
- Rozpoznání políčka pro lokální zarovnání nebo celostránkový posun: nejprve zkontrolujte pořadí ořezání, škálování a ořezování, poté mapu obrácejte v opačném pořadí.
- Zpracování necelých souřadnic: nejprve ověřte vzorec pomocí okružního testování, dočasně nezaokrouhlujte nahoru a poté pravidla při kreslení sjednoťte.
- Provést bilingvní zvýrazňování nebo lokalizaci zdroje: Kontrolovat souřadnicový a obsahový odkaz společně a vést záznamy o transformaci.
- Zahrnuje rotaci nebo korekci perspektivy: Neukládejte jen dvoubodový obdélník; přepněte na mapování čtyř rohů nebo ukládání slabikové transformace.
❓ Často kladené otázky (FAQ)
1. Je potřeba nejdřív vyměnit rozpoznávací motor?
Nemusíš nejdřív pochybovat o motoru. Nejprve byste měli zkontrolovat pořadí předzpracování, protože ořezání, škálování a bělení mění souřadnice.
2. Zaručuje úspěšné složení testu matematické jednotky správnost?
Ne. Může pouze vyloučit některé chyby ve výpočtech; rotace stránky, škálování zobrazení a souřadnicové systémy PDF mohou stále přinášet nové zkreslení.
3. Proč se nedoporučuje zaokrouhlovat souřadnice příliš brzy?
Resampling obrazu zahrnuje středy pixelů a zaokrouhlovací konvence. Nejprve by měly být zachovány souřadnice s plovoucí desetinnou čárkou a poté je při kreslení podle jasných pravidel zpracováváno.
4. Co se stane, když se obraz natáhne?
Pokud se poměr stran liší, měly by být uloženy odděleně. Libovolné natahování mění tvar textu a ovlivňuje souvislost mezi rozpoznávacím boxem a obsahem dokumentu.
📝 Shrnutí
Nesoulad OCR krabic obvykle vzniká z předzpracovacího spoje, nikoli z výsledku rozpoznání samotného. Každý krok transformace musí být jasně zaznamenán a pro společné přijetí lze použít jak okružní testování, tak manuální kotevní body, aby bylo zajištěno, že zvýrazněné pozice jsou důvěryhodné.
Zkušenost nyní: Nahrajte svůj dokument a začněte s překladem, přičemž zachováte původní formátování


