L'OCR a été zoomée et recadrée, comment mapper le cadre de reconnaissance sur le texte original

Le cadre renvoyé par OCR est précis sur l'image locale, mais le cadre global est erroné lorsqu'il est redessiné vers le PDF. Ne doutez pas d'abord du moteur de reconnaissance, vérifiez la séquence de prétraitement : est-il d'abord recadré, puis zoomé, puis rempli d'une bordure blanche ? Chaque étape modifie les coordonnées et le mappage inverse doit être annulé dans l'ordre inverse.

Le cadre de reconnaissance renvoyé par l'OCR peut être précis sur l'image locale, mais l'image globale peut être erronée lorsqu'elle est restituée dans le PDF. Ce type de problème est très courant. Lors du dépannage, vous n’avez pas besoin de douter d’abord du moteur de reconnaissance. Vous devriez également vérifier le lien de prétraitement. Cet article est destiné aux développeurs et aux réviseurs qui doivent mapper les résultats de la reconnaissance au document source.

De nombreuses images sont recadrées et mises à l’échelle avant d’être reconnues, puis une bordure blanche est ajoutée. Chaque étape modifie les coordonnées, donc l’inverse doit être défaite dans l’ordre inverse. Après avoir lu cet article, vous pouvez utiliser une méthode claire de transformation des coordonnées pour localiser la cause du désalignement, et vérifier les résultats par des tests aller-retour et des points d’ancrage manuels.

L'exemple de code a été vérifié dans un environnement isolé, mais cela ne constitue pas une garantie de tous les fichiers réels ou des performances du produit. Veuillez conserver les originaux avant de manipuler des documents importants.

Que dois-je faire si la zone OCR ne peut pas correspondre au document source ? Conclusion en une phrase

Vérifiez d'abord la séquence de prétraitement, enregistrez la transformation des coordonnées de chaque étape, puis effectuez le mappage inverse dans l'ordre inverse.

votre situationPratiques recommandéesraison
Le cadre de reconnaissance est précis sur la carte locale et décalé une fois revenu au PDF.Vérifiez s'il faut d'abord recadrer, puis redimensionner, puis remplir les bordsChaque étape changera les coordonnées
Les rapports de mise à l'échelle horizontale et verticale de l'image sont différentsEnregistrez les proportions horizontales et verticales séparémentL'étirer à volonté changera la forme du texte
L'image est pivotée ou la perspective est corrigéeCartographiez quatre points d'angle et conservez le quad, ou enregistrez la transformation homographiqueLe rectangle à deux points ne peut pas exprimer le résultat
L'emplacement source doit être affiché sur l'interfaceAcceptez l'enregistrement de transformation de coordonnées avec le contenuMettre en surbrillance une mauvaise ligne rendra la traduction correcte peu fiable.

Utilisez une transformation explicite au lieu de deviner le décalage

En supposant qu'il y a un point sur le graphique, soustrayez d'abord l'origine du découpage, puis multipliez par le rapport de mise à l'échelle, puis ajoutez l'arête supplémentaire. Le processus inverse consiste d'abord à soustraire l'arête supplémentaire, puis à la diviser par la proportion, et enfin à la rajouter à l'origine de la coupe.

  • Avant : soustrayez l'origine du recadrage → multipliez par le rapport de mise à l'échelle → ajoutez des bords supplémentaires
  • Inverser : Soustraire le bord supplémentaire → Supprimer la mise à l'échelle → Rajouter l'origine du recadrage

Si les rapports horizontal et vertical sont différents, ils doivent être enregistrés séparément. Cela nous rappelle également qu'étirer l'image à volonté modifiera la forme du texte.

Laisser le test aller-retour couvrir les coordonnées non entières

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)

Cet exemple vérifie uniquement les calculs géométriques et n'effectue pas d'OCR. Le rééchantillonnage d'images implique des conventions de centre de pixel et d'arrondi, et le véritable mappage de bordure nécessite des coordonnées continues unifiées ou une sémantique de limite de pixel.

N'arrondissez pas prématurément les coordonnées en virgule flottante et gérez-les selon des règles claires lors du dessin.

La case n'a pas toujours que deux points

Différentes transformations nécessitent de sauvegarder des informations différentes, et les précautions lors du mappage sont également différentes :

TransformationIl faut sauverAttention sur la cartographie
CoupeDécalage d’origineQuelle version de l’image originale est restaurée ?
ZoomProportions horizontales et verticalesEmpêche la division entière de perdre en précision
RotationCentre de rotation et matriceAprès avoir cartographié les quatre coins, conservez le quadrilatère
Correction de perspectiveTransformation monotoneDeux rectangles ne suffisent pas à exprimer le résultat

Vérification et affichage des liens à l’aide d’ancrages manuels

Marquez les points d’angle connus sur plusieurs échantillons désensibilisés et vérifiez si l’image originale correspond après prétraitement. Si vous réussissez le test unitaire mathématique, seules certaines erreurs de calcul peuvent être éliminées ; La rotation de la page, le zoom d’affichage et les systèmes de coordonnées PDF peuvent encore introduire de nouveaux biais.

Le surlignage bilingue nécessite un lieu de confiance

Lors de l’établissement d’un outil de relecture autour de la traduction de OmniDoc (entrée produit), si l’emplacement source doit être affiché, le lien de coordonnées doit être accepté avec le lien de contenu. Surligner la mauvaise ligne fait paraître la bonne traduction peu fiable. Tenir des registres de transformation est plus facile à tenir que la compensation temporaire au départ.

Pour plus de détails sur les interfaces de mappage de pixels, voir Taille de l’image coussin et interface de transformation.

📊 Comparaison des noyaux

Comparaison des méthodes de vérification :

Méthodes de vérificationQue peut-on découvrir ?Limitations
Test unitaire mathématiqueCertains calculs étaient incorrectsImpossible de remplacer la rotation des pages, le zoom d’affichage et les systèmes de coordonnées PDF
Vérification manuelle du point d’ancrageAprès prétraitement, vérifiez si l’image originale est restauréeDes échantillons désensibilisés et une annotation manuelle sont nécessaires

Comparaison des méthodes de traitement des coordonnées :

Méthodes de manipulationAvantagesExplication
Conserver les records de transformationPlus facile à entretenirLes liaisons de coordonnées sont traçables
Rémunération temporaire en début de partieLes changements semblent simplesLes coûts d’entretien sont plus élevés

🎯 Quelle méthode te convient ?

Si tu ......

  • Reconnaître la case pour l’alignement local ou le décalage pleine page : vérifiez d’abord l’ordre de recadrage, d’échelle et de découpe, puis inversez la carte dans l’ordre inverse.
  • Gestion des coordonnées non entières : d’abord vérifier la formule par des tests aller-retour, temporairement ne pas arrondir vers le haut, puis unifier les règles lors du dessin.
  • Effectuer le surlignage bilingue ou la localisation de la source : inspecter à la fois le lien coordonné et le lien de contenu ensemble, et conserver les enregistrements de transformation.
  • Implique une correction de rotation ou de perspective : ne pas simplement sauvegarder le rectangle à deux points ; passez à la correspondance des quatre coins ou à la transformation syllabique.

❓ Foire aux questions (FAQ)

1. Faut-il d’abord remplacer le moteur de reconnaissance ?

Pas besoin de douter du moteur d’abord. Vous devriez d’abord vérifier l’ordre de prétraitement, car la coupe, l’échelle et le blanchiment changent tous les coordonnées.

2. Réussir le test unitaire de mathématiques garantit-il que la correspondance est correcte ?

Non. Cela ne peut que supprimer certaines erreurs de calcul ; la rotation des pages, l’échelle d’affichage et les systèmes de coordonnées PDF peuvent encore introduire de nouveaux biais.

3. Pourquoi n’est-il pas recommandé d’arrondir les coordonnées trop tôt ?

Le rééchantillonnage d’image implique des centres de pixels et des conventions d’arrondi. Les coordonnées en virgule flottante doivent d’abord être conservées, puis traitées selon des règles claires lors du dessin.

4. Que se passe-t-il lorsqu’une image est étirée ?

Si le format d’image diffère, ils doivent être stockés séparément. Un étirement arbitraire modifie la forme du texte et affecte la correspondance entre la boîte de reconnaissance et le contenu du document.

📝 Résumé

Le désalignement de la boîte OCR provient généralement du lien de prétraitement plutôt que du résultat de reconnaissance lui-même. Chaque étape de transformation doit être clairement enregistrée, et les tests aller-retour ainsi que les points d’ancrage manuels peuvent être utilisés pour une acceptation conjointe afin de garantir la fiabilité des positions mises en évidence.

Faites l’expérience dès maintenant : téléchargez votre document pour commencer à traduire, tout en conservant la mise en forme originale

Mis à jour le 2026-11-15