L'orientamento del documento scattato con il cellulare è sbagliato. Elabora prima l'EXIF e poi invialo all'OCR.
La foto del contratto sul mio telefono sembrava verticale, ma dopo averla caricata si è girata in orizzontale. Il motivo potrebbe essere che i pixel stessi non vengono ruotati, lo spettatore regola semplicemente la visualizzazione in base agli indicatori di orientamento EXIF. Se l'input OCR ignora questo contrassegno, leggerà la pagina nella direzione opposta.
Le foto contrattuali scattate con i cellulari sono verticali nell'album, ma diventano orizzontali dopo il caricamento. Molte persone penseranno che la foto sia storta o che il file sia sbagliato. Questo articolo è scritto per le persone che hanno bisogno di inviare foto del cellulare al processo OCR o di traduzione per aiutare a distinguere tra "direzione di visualizzazione" e "direzione dei pixel".
Dopo aver letto questo, saprai cos'è un flag di orientamento EXIF, quale funzione utilizza Pillow per gestirlo e quali problemi non risolve. Gli esempi utilizzano campioni sintetici e il codice è stato controllato in un ambiente isolato, ma ciò non rappresenta una garanzia di tutti i file reali o delle prestazioni del prodotto. Prima di elaborare documenti importanti, conservare gli originali e rivederli rispettando i limiti e gli elementi di accettazione nel testo.
Cosa devo fare se il documento scattato con il cellulare è nella direzione sbagliata? Conclusione di una frase
Utilizzare innanzitutto ImageOps.exif_transpose per applicare il contrassegno di direzione EXIF, quindi inviare l'immagine regolata all'OCR; Le questioni di inclinazione e prospettiva devono essere trattate separatamente.
| la tua situazione | Pratiche consigliate | motivo |
|---|---|---|
| Il visualizzatore viene visualizzato normalmente, ma i risultati dell'analisi sono laterali | Per prima cosa usa ImageOps.exif_transpose per applicare la direzione EXIF | I pixel non vengono ruotati, viene regolato solo il livello di visualizzazione |
| Tutta la foto è leggermente inclinata | Valutare individualmente la correzione dell'inclinazione | exif_transpose non gestisce gli angoli di ripresa |
| La carta è trapezoidale | Rileva i confini della carta ed esegui la correzione prospettica | La distorsione prospettica non è un problema di orientamento EXIF |
| È necessario salvare la casella restituita dall'OCR | Registra contemporaneamente la dimensione dell'input, la trasformazione dell'orientamento e la dimensione dell'output | Le coordinate dell'immagine regolata sono diverse dall'immagine originale |
La direzione del display e la direzione dei pixel devono essere visualizzate separatamente.
I pixel di una foto mobile potrebbero non essere ruotati da soli e i tag di orientamento EXIF nel file indicano allo spettatore come visualizzarla. Il visualizzatore regolerà l'immagine di conseguenza e, se il motore OCR ignora questo segno, leggerà la pagina nella direzione opposta.
ImageOps.exif_transpose di Pillow regola i pixel in base alle informazioni di orientamento e rimuove i marcatori di orientamento applicati per evitare rotazioni successive. Si occupa dell'orientamento EXIF, non dell'inclinazione arbitraria dello scatto o della distorsione prospettica. Raddrizzare la carta presa di storto con il cellulare richiede ancora un'altra serie di elaborazioni geometriche.
Prova i limiti di rotazione con pixel sintetizzati
Il codice seguente utilizza un'immagine composita per verificare se gli indicatori di orientamento sono applicati correttamente:
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()
I pixel rossi negli angoli vengono qui utilizzati per verificare le relazioni geometriche, senza chiamare il motore OCR o simulare testo reale. Pertanto, il test può solo supportare la conclusione che "gli indicatori di direzione sono applicati correttamente", ma non può supportare "quanto è stata migliorata la velocità di riconoscimento del testo". Gli esempi dipendono da Pillow e dovrebbero essere eseguiti in versioni bloccate.
Devia le anomalie di direzione
When you encounter a direction problem, first look at the phenomenon, and then judge the cause. The following table can help you decide what to do next:
| Observe | Possible reasons | Next step |
|---|---|---|
| Viewer normal, parser tapped | EXIF not applied | Check orientation labels and pixels |
| The whole page tilts slightly | Shooting angle | Independent evaluation of tilt correction |
| The page is trapezoidal | Perspective deformation | Correction after detecting paper boundary |
| The text is upside down but unmarked | Missing metadata | Judge according to the content of the page, do not guess blindly |
# coordinate recording starts after rotation
If OCR returns a text box on the adjusted image, the coordinates of the box correspond to the adjusted image, not the original one. Therefore, three pieces of information need to be retained: input size, direction transformation and output size. When the display is highlighted, the inverse transformation is applied to the coordinates to return to the original position.
Save only one set of boxes without recording which picture it belongs to, and the highlighted position deviates from the text.
# correct the image before translation
When dealing with the scanning material through the OCR and translation entrance of OmniDoc (Product Import), you can first confirm the direction against the original. Orientation, perspective and clarity are three different check items, which need to be confirmed separately.
After the input conditions are sorted out, the bilingual results are used to judge the translation quality. If a missing word is attributed to the translation model, the real input problem will often be left out.
Riferimenti: Pillow ImageOps.
# Core comparison
| Working with object | Treatment mode | Whether it is completed byexif_transpose |
|---|---|---|
| EXIF direction mark | Adjust pixels by marker | Yes |
| The whole page tilts slightly | Shooting angle correction | No, independent evaluation is required. |
| The page is trapezoidal | Perspective correction | No, paper boundaries need to be detected |
# which method is suitable for you?
if you.
- the viewer is normal, and the OCR result is horizontal : apply the EXIF direction first, and then re-enter the OCR. - overall skew of the photo : take tilt correction as an independent step and do not expect direction processing to solve the problem. - the edge of the paper is trapezoidal : check the edge of the paper first, and then make perspective correction. - need to highlight the location of the original image : save the input size and transformation information, and then reverse transform when displaying.
# frequently asked questions (FAQ)
1. Can exif_transpose correct the crooked paper?
No, I can't. It only adjusts pixels according to EXIF orientation markers and does not deal with shooting angles or perspective deformations, which require additional geometric processing.
2. Why does the viewer display normally, but the OCR result is horizontal?
The viewer applies EXIF direction markers, and the pixels themselves may not be rotated. If OCR ignores the tag, it reads to the page in the other direction.
3. Can the sample code show how much the recognition rate has been improved?
No, I can't. The example uses composite pixels to check if the orientation markers are applied correctly, without invoking the OCR engine or simulating real text.
4. Why does the box returned by OCR not match the location of the original image?
If OCR is running on the adjusted diagram, the coordinates of the box correspond to the adjusted diagram. It is necessary to record the input size, transformation and output size, and then do the inverse transformation during the display.
# Summary
The direction of mobile phone photos, first look at the display direction or pixel direction, and then deal with the direction, tilt and perspective respectively. Please keep the original and complete the review before dealing with important documents.
Experience now: upload the document and start translation, keeping the original typesetting


