Correction du gauchissement de page (Page Dewarping)
- Aborde l’aplatissement d’images de pages enroulées comme un problème d’optimisation
Contexte
- Les méthodes existantes de correction du gauchissement, comme la bibliothèque Leptonica ou la méthode Coordinate Transform Model (CTM), utilisent une approche de décomposition hiérarchique du problème
- Séparer le texte ligne par ligne
- Trouver un warping ou une transformation de coordonnées pour rendre les lignes parallèles et horizontales
- En s’inspirant de l’approche basée sur un modèle cylindrique 3D de CTM, l’auteur a créé son propre modèle paramétrique utilisant des paramètres qui déterminent la forme de la page
- vecteurs de rotation/déplacement 3D, pente de la courbure de la page, décalage des lignes horizontales, etc.
- Formulation sous forme de problème d’optimisation
- Trouver des points clés le long des zones de texte horizontales dans la photo d’origine
- À partir d’une estimation initiale, optimiser les paramètres du modèle pour minimiser l’erreur de reprojection des points clés
Procédure
- Extraction des bordures de la page
- Détection des contours du texte
- Utilisation de la binarisation, des opérations morphologiques et de l’analyse des composantes connexes
- Spécialement conçu pour détecter aussi les tableaux de texte vertical
- Regroupement des contours du texte en zones horizontales
- Échantillonnage de points clés dans les zones horizontales
- Estimation initiale des paramètres du modèle
- Minimisation de l’erreur de reprojection par optimisation
- Utilisation du solveur Powell de
scipy.optimize.minimize
- Cela représente l’essentiel du temps d’exécution
- Transformation des coordonnées avec le modèle optimal, puis remappage et binarisation de l’image
Résultats
- Fonctionne bien sur divers exemples d’images
- Le grand nombre de paramètres du modèle rallonge le temps d’optimisation
- La déformation horizontale n’a pas été prise en compte
Conclusion
- Un workflow typique consistant à accumuler des connaissances de base puis à formaliser le problème comme un problème d’optimisation
- Une approche similaire à Deformable Part Model et Active Appearance Model
- Des enseignements utiles aussi sur l’usage d’outils comme Emacs et Pylint
- Aucun développement supplémentaire n’est prévu, mais c’est un projet qui peut servir de référence pour enseigner la vision par ordinateur
Avis de GN⁺
- Pour une vraie utilisation pratique, il semble nécessaire de corriger aussi la déformation horizontale. Cela demanderait probablement un modèle plus sophistiqué, comme CTM.
- L’amélioration de la vitesse d’optimisation paraît importante. Réduire le nombre de paramètres ou utiliser des techniques d’optimisation plus rapides pourrait aider.
- Une comparaison avec des méthodes basées sur le deep learning serait intéressante. Le deep learning pourrait peut-être gérer à la fois l’extraction de caractéristiques et la modélisation.
- Pour une utilisation dans la numérisation de documents en environnement industriel, il faudrait sans doute renforcer la robustesse face à des documents aux mises en page variées.
- Le fait que ce soit publié en open source est une bonne chose, mais pour un usage réel, il vaudrait sans doute mieux le distribuer sous forme de programme autonome plutôt que comme script Python.
1 commentaires
Avis Hacker News
Résumé :
de-curlingde pages scannées qu’on ne pouvait pas ouvrir complètement était un défide-wrinklingde reçusde-warpingsans contact via tomographie à rayons X est possible