Pokud je dokument odebrán telefonem špatným směrem, nejprve zpracujte EXIF před odesláním OCR
Fotografie smlouvy na mém telefonu vypadala svisle, ale po nahrání se otočila vodorovně. Důvodem může být to, že samotné pixely nejsou otočeny, divák si jednoduše upraví zobrazení na základě EXIF orientačních značek. Pokud OCR vstup ignoruje tuto značku, přečte stránku v opačném směru.
Smluvní fotografie pořízené telefonem jsou v albu vertikální, ale po nahrání se stanou horizontálními. Mnoho lidí si myslí, že fotka je nakřivo nebo že soubor je špatný. Tento článek je určen těm, kteří potřebují posílat fotografie z telefonu do OCR nebo překladových workflow, aby vám pomohl rozlišit mezi "směrem zobrazení" a "orientací pixelů".
Po přečtení tohoto budete vědět, co je příznak orientace EXIF, jakou funkci Pillow používá k jeho zpracování a jaké problémy neřeší. Příklady používají syntetické vzorky a kód byl zkontrolován v izolovaném prostředí, ale to nepředstavuje záruku všech skutečných souborů nebo výkonu produktu. Před zpracováním důležitých dokumentů si prosím uschovejte originály a zkontrolujte je podle hranic a přejímacích položek v textu.
Co dělat, když je směr dokumentu natočeného vaším telefonem špatný? Stručně řečeno, závěr
Nejprve použijte ImageOps.exif_transpose k použití směrové značky EXIF a poté odešlete upravený obrázek do OCR; problémy náklonu a perspektivy je třeba řešit samostatně.
| Tvoje situace | Doporučený recept | Důvod |
|---|---|---|
| Prohlížeč zobrazuje normálně, ale výsledky parsování jsou zobrazeny na šířku | Nejprve použijte ImageOps.exif_transpose k aplikaci směru EXIF | Pixely se neotočily; pouze vrstva displeje byla upravena |
| Celá fotografie je mírně nakloněná | Samostatné hodnocení korekce náklonu | exif_transpose neřeší úhly střelby |
| Papír je lichoběžníkový | Zjistěte okraje papíru a proveďte korekci perspektivy | Perspektivní zkreslení není problém u směru EXIF |
| Musíte uložit krabici vrácenou OCR | Záznam vstupní velikosti, transformace orientace a výstupní velikosti současně | Upravené souřadnice snímku se liší od původního snímku |
Směr zobrazení a směr pixelů by měly být zobrazeny odděleně.
Pixely na fotografiích z telefonu se nemusí otáčet samy a EXIF směrové značky v souboru divákům říkají, jak je zobrazit na obrazovce. Prohlížeč podle toho upraví obraz a pokud OCR engine tuto značku ignoruje, přečte stránku v opačném směru.
ImageOps.exif_transpose od Pillow upravuje pixely na základě orientačních informací a odstraňuje aplikované směrové značky, aby zabránil dalším rotacím. Řeší směr EXIF, ne libovolný náklon nebo perspektívní zkreslení. Narovnání papíru z křivých telefonních snímků stále vyžaduje další sadu geometrických úprav.
Testujte hranice rotace pomocí syntetizovaných pixelů
Následující kód používá složený obrázek ke kontrole, zda jsou značky orientace použity správně:
from PIL import Image, ImageOps
source = Image.new("RGB", (40, 20), "white")
source.putpixel((0, 0), (255, 0, 0))
source.getexif()[274] = 6
fixed = ImageOps.exif_transpose(source)
assert fixed.size == (20, 40)
assert fixed.getpixel((19, 0)) == (255, 0, 0)
assert fixed.getexif().get(274) is None
assert source.size == (40, 20)
again = ImageOps.exif_transpose(fixed)
assert again.size == fixed.size
assert again.tobytes() == fixed.tobytes()
Červené pixely v rozích se zde používají ke kontrole geometrických vztahů, aniž by bylo nutné volat modul OCR nebo simulovat skutečný text. Test proto může podpořit pouze závěr, že „směrové značky jsou správně aplikovány", ale nemůže podpořit „jak moc se zlepšila rychlost rozpoznávání textu". Příklady závisí na Pillow a měly by být spuštěny v uzamčených verzích.
Odklonit směrové anomálie
Když narazíte na problém se směrováním, nejprve se podívejte na jev a poté určete příčinu. Níže uvedená tabulka vám může pomoci při rozhodování o dalším postupu:
| Pozorování | Možné důvody | Další |
|---|---|---|
| Prohlížeč je normální a parser je krajinářský | EXIF se neaplikuje | Zkontrolujte směrový štítek a pixely |
| Celá stránka je mírně nakloněná | Úhel střelby | Nezávislé hodnocení korekce náklonu |
| Stránky jsou lichoběžníkové | Perspektivní zkreslení | Opravuje po kontrole hranic papíru |
| Text je obrácený, ale neoznačený | Metadata chybí | Podle obsahu stránky nemám slepé odhady |
Záznam souřadnic by měl začít po rotaci
Pokud OCR vrátí textové pole na upraveném obrázku, souřadnice tohoto pole budou odpovídat upravenému obrázku, nikoli původnímu obrázku. Proto je třeba zachovat tři informace: vstupní dimenze, směrovou transformaci a výstupní dimenze. Při zobrazování zvýraznění aplikujte inverzní transformaci souřadnic, abyste se vrátili na původní pozici obrázku.
Pokud je uložen pouze jeden box bez zaznamenání, ke kterému obrázku patří, zvýraznění bude mimo text.
Před překladem správně zarovnejte obraz
Při zpracování naskenovaných materiálů přes OCR a překlad OmniDoc (produktový záznam) můžete nejprve zkontrolovat směr porovnáním s originálem. Směr, perspektiva a jasnost jsou tři různé inspekční položky, které je třeba ověřit zvlášť.
Po jasném uspořádání vstupních podmínek použijte bilingvní výsledky k posouzení kvality překladu. Pokud na první pohled přisuzujete chybějící slova překladovému modelu, často přehlédnete skutečný problém s vstupem.
Zdroje: Pillow ImageOps.
📊 Srovnání jádra
| Objekt zpracování | Metody manipulace | Dělá toexif_transpose? |
|---|---|---|
| EXIF směrový marker | Upravte pixely podle značek | Ano |
| Celá stránka je mírně nakloněná | Korekce úhlu střelby | Ne, je potřeba nezávislé hodnocení |
| Stránky jsou lichoběžníkové | Korekce perspektivy | Ne, papírové hranice musí být zkontrolovány |
🎯 Která metoda ti vyhovuje?
Pokud ......
- Prohlížeč normální, výsledky OCR jsou nastaveny na šířku: Nejprve aplikujte směr EXIF, poté znovu ošlete OCR.
- Celková foto nepřesnost: Považujte korekci náklonu za samostatný krok; neočekávejte, že směrové zpracování ji opraví.
- Okraje lichoběžníkového papíru: Nejprve zkontrolujte hranice papíru, poté provedete perspektivní korekci.
- Původní pozice obrázku musí být zvýrazněna: Uložit velikost vstupu a transformační informace, poté provést inverzní transformaci během zobrazení.
❓ Často kladené otázky (FAQ)
1. exif_transpose Můžeš narovnat papír, který je na záběru nakřivo?
Ne. Pixely upravuje pouze na základě směrových značek EXIF, bez nutnosti zacházet s úhly snímání nebo perspektivním zkreslením, které vyžaduje další geometrické zpracování.
2. Proč se prohlížeč zobrazuje normálně, ale výsledky OCR jsou horizontální?
Prohlížeč aplikuje směrový marker EXIF, zatímco samotné pixely se nemusí otáčet. Pokud OCR tuto značku ignoruje, bude číst stránky opačným směrem.
3. Může ukázkový kód ukázat, o kolik se zlepšila míra rozpoznávání?
Ne. Příklad používá syntetické pixely k ověření, zda jsou směrové značky správně aplikovány, bez volání OCR enginu nebo simulace skutečného textu.
4. Proč krabice vrácená OCR neodpovídá původní pozici obrázku?
Pokud OCR běží na upraveném grafu, souřadnice krabic odpovídají upravenému grafu. Vstupní dimenze, transformace a výstupní dimenze je třeba zaznamenat a inverzní transformace se provádějí během zobrazení.
📝 Shrnutí
U problémů s orientací kamery nejprve zkontrolujte, zda zobrazit nebo zvolit orientaci pixelů, pak zkontrolujte orientaci, naklonění a perspektivu. Před manipulací s důležitými dokumenty si prosím ponechte originály a dokončete kontrolu.
Zkušenost nyní: Nahrajte svůj dokument a začněte s překladem, přičemž zachováte původní formátování


