L'orientation du document pris avec le téléphone portable est erronée. Traitez d'abord EXIF , puis envoyez-le à OCR.
La photo du contrat sur mon téléphone semblait verticale, mais après l'avoir téléchargée, elle s'est tournée horizontalement. La raison peut être que les pixels eux-mêmes ne pivotent pas, le spectateur ajuste simplement l'affichage en fonction des marqueurs d'orientation EXIF . Si l'entrée OCR ignore cette marque, elle lira la page dans l'autre sens.
Les photos contractuelles prises avec des téléphones portables sont verticales dans l'album, mais deviennent horizontales après leur téléchargement. Beaucoup de gens penseront que la photo est tordue ou que le fichier est erroné. Cet article est destiné aux personnes qui ont besoin d'envoyer des photos de leur téléphone portable dans le processus d'OCR ou de traduction pour vous aider à faire la distinction entre la « direction de l'affichage » et la « direction des pixels ».
Après avoir lu ceci, vous saurez ce qu'est un indicateur d'orientation EXIF , quelle fonction Pillow utilise pour le gérer et quels problèmes il ne résout pas. Les exemples utilisent des échantillons synthétiques et le code a été vérifié dans un environnement isolé, mais cela ne représente pas une garantie de tous les fichiers réels ou des performances du produit. Avant de traiter des documents importants, veuillez conserver les originaux et les examiner en fonction des limites et des éléments d'acceptation du texte.
Que dois-je faire si le document pris avec mon téléphone portable est dans le mauvais sens ? Conclusion en une phrase
Utilisez d'abord ImageOps.exif_transpose pour appliquer la marque de direction EXIF , puis envoyez l'image ajustée à l'OCR ; les problèmes d’inclinaison et de perspective doivent être traités séparément.
| votre situation | Pratiques recommandées | raison |
|---|---|---|
| Le visualiseur s'affiche normalement, mais les résultats de l'analyse sont latéraux | Utilisez d'abord ImageOps.exif_transpose pour appliquer la direction EXIF | Les pixels ne pivotent pas, seul le calque d'affichage est ajusté |
| La photo entière est légèrement inclinée | Évaluer la correction d'inclinaison individuellement | exif_transpose ne gère pas les angles de prise de vue |
| Le papier est trapézoïdal | Détecter les limites du papier et effectuer une correction de perspective | La distorsion de perspective n'est pas un problème d'orientation EXIF |
| Besoin de sauvegarder la boîte renvoyée par OCR | Enregistrez la taille d'entrée, la transformation d'orientation et la taille de sortie en même temps | Les coordonnées de l'image ajustée sont différentes de l'image originale |
La direction de l'affichage et la direction des pixels doivent être visualisées séparément.
Les pixels d'une photo mobile ne peuvent pas pivoter eux-mêmes et les balises d'orientation EXIF dans le fichier indiquent au spectateur comment l'afficher. Le spectateur ajustera l'image en conséquence, et si le moteur OCR ignore cette marque, il lira la page dans l'autre sens.
Le ImageOps.exif_transpose de Pillow ajuste les pixels en fonction des informations d'orientation et supprime les marqueurs d'orientation appliqués pour éviter les rotations ultérieures. Il traite de l'orientation EXIF , et non de l'inclinaison arbitraire de la prise de vue ou de la distorsion de la perspective. Redresser le papier pris de travers avec le téléphone portable nécessite encore un autre ensemble de traitements géométriques.
Testez les limites de rotation avec des pixels synthétisés
Le code suivant utilise une image composite pour vérifier si les marqueurs d'orientation sont appliqués correctement :
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()
Les pixels rouges dans les coins sont utilisés ici pour aider à vérifier les relations géométriques, sans appeler le moteur OCR ni simuler du texte réel. Par conséquent, le test ne peut que confirmer la conclusion selon laquelle « les marqueurs de direction sont correctement appliqués », mais ne peut pas confirmer « dans quelle mesure le taux de reconnaissance de texte a été amélioré ». Les exemples dépendent de Pillow et doivent être exécutés dans des versions verrouillées.
Détourner les anomalies de direction
En cas de problèmes de direction, observez d’abord les symptômes, puis déterminez la cause. Le tableau ci-dessous peut vous aider à décider de vos prochaines étapes :
| Observation | Raisons possibles | Suivant |
|---|---|---|
| Le spectateur est normal, et l’analyseur est aménagé | L’EXIF n’est pas appliqué | Vérifiez l’étiquette de direction et les pixels |
| Toute la page est légèrement inclinée | Angle de tir | Évaluation indépendante de la correction d’inclinaison |
| Les pages sont trapézoïdales | Distorsion de perspective | Corrige après avoir vérifié les limites du papier |
| Le texte est inversé mais sans marque | Les métadonnées manquent | En jugeant sur le contenu de la page, pas de suppositions à l’aveugle |
L’enregistrement des coordonnées doit commencer après la rotation
Si l’OCR renvoie une boîte de texte sur l’image ajustée, les coordonnées de la boîte correspondront à l’image ajustée, et non à l’image originale. Par conséquent, trois informations doivent être conservées : les dimensions d’entrée, la transformation directionnelle et les dimensions de sortie. Lors de l’affichage des hautes lumières, appliquez une transformation inverse aux coordonnées pour revenir à la position originale de l’image.
Si une seule boîte est enregistrée sans enregistrer à quelle image elle appartient, la position surlignée sera hors texte.
Avant de traduire, alignez correctement l’image
Lors du traitement des matériaux numérisés via l’OCR et la traduction de OmniDoc (entrée produit), vous pouvez d’abord vérifier la direction en la comparant à l’original. La direction, la perspective et la clarté sont trois éléments d’inspection différents qui doivent être confirmés séparément.
Après avoir organisé clairement les conditions d’entrée, utilisez les résultats bilingues pour évaluer la qualité de la traduction. Si vous attribuez les mots manquants au modèle de traduction au premier abord, vous manquez souvent le problème d’entrée réel.
Références : Pillow ImageOps.
📊 Comparaison des noyaux
| Objet de traitement | Méthodes de manipulation | Est-ce que c’est fait parexif_transpose ? |
|---|---|---|
| Marqueur directionnel EXIF | Ajustez les pixels par marque | Oui |
| Toute la page est légèrement inclinée | Correction d’angle de tir | Non, une évaluation indépendante est requise |
| Les pages sont trapézoïdales | Correction de perspective | Non, les limites papier doivent être inspectées |
🎯 Quelle méthode te convient ?
Si tu ......
- Normal, les résultats OCR sont paysagés : Appliquez d’abord l’indication EXIF, puis renvoyez l’OCR.
- Polarité générale de la photo : Considérez la correction d’inclinaison comme une étape indépendante ; ne vous attendez pas à ce que le traitement directionnel corrige cela.
- Bords de papier trapézoïdal : Vérifiez d’abord les limites du papier, puis effectuez la correction de perspective.
- Position originale de l’image à surligner : Sauvegardez la taille d’entrée et les informations de transformation, puis effectuez la transformation inverse lors de l’affichage.
❓ Foire aux questions (FAQ)
1. exif_transpose Peux-tu redresser le papier qui est de travers sur le plan ?
Non. Il n’ajuste les pixels que sur la base des marqueurs directionnels EXIF, sans gérer les angles de prise de vue ou la distorsion de perspective, qui nécessitent un traitement géométrique supplémentaire.
2. Pourquoi l’observateur affiche-t-il normalement, alors que les résultats OCR sont horizontaux ?
Le spectateur applique un marqueur de direction EXIF, tandis que les pixels eux-mêmes ne peuvent pas tourner. Si l’OCR ignore ce marqueur, il lira les pages dans la direction opposée.
3. Le code d’exemple peut-il montrer à quel point le taux de reconnaissance s’est amélioré ?
Non. L’exemple utilise des pixels synthétiques pour vérifier si les marqueurs de direction sont correctement appliqués, sans appeler le moteur OCR ni simuler du texte réel.
4. Pourquoi la boîte retournée par l’OCR ne correspond-elle pas à la position originale de l’image ?
Si l’OCR s’exécute sur le graphique ajusté, les coordonnées de boîte correspondent au graphe ajusté. Les dimensions d’entrée, les transformations et les dimensions de sortie doivent être enregistrées, et des transformations inverses sont effectuées lors de l’affichage.
📝 Résumé
Pour les questions d’orientation de la caméra, vérifiez d’abord s’il faut afficher ou orienter les signes, puis gérer respectivement l’orientation, l’inclinaison et la perspective. Avant de traiter des documents importants, veuillez conserver les originaux et compléter la revue.


