Show HN : LLM-Aided OCR – corriger les erreurs de Tesseract OCR avec un LLM
(github.com/Dicklesworthstone)- Conçu pour améliorer considérablement la qualité des sorties de reconnaissance optique de caractères (OCR)
- Utilise les techniques les plus récentes de traitement du langage naturel et les grands modèles de langage (LLM) pour transformer du texte OCR brut en documents très précis, bien formatés et faciles à lire
Fonctionnalités
- Conversion de PDF en images
- OCR avec Tesseract
- Correction avancée des erreurs à l’aide d’un LLM (local ou via API)
- Découpage intelligent du texte pour un traitement efficace
- Option de formatage Markdown
- Suppression des en-têtes et des numéros de page (optionnel)
- Évaluation de la qualité de la sortie finale
- Prise en charge des LLM locaux et des fournisseurs d’API cloud (OpenAI, Anthropic)
- Traitement asynchrone pour de meilleures performances
- Journalisation détaillée pour le suivi du processus et le débogage
- Accélération GPU pour l’inférence de LLM locaux
Prérequis
- Python 3.12+
- Moteur Tesseract OCR
- Bibliothèque PDF2Image
- PyTesseract
- API OpenAI (optionnel)
- API Anthropic (optionnel)
- Prise en charge des LLM locaux (optionnel, nécessite des modèles GGUF compatibles)
Utilisation
- Placez le fichier PDF dans le répertoire du projet
- Mettez à jour la variable
input_pdf_file_pathde la fonctionmain()avec le nom du fichier PDF - Exécutez le script :
python llm_aided_ocr.py - Le script génère plusieurs fichiers de sortie, dont le texte final post-traité
Fonctionnement
Le projet LLM-Aided OCR utilise un processus en plusieurs étapes pour transformer une sortie OCR brute en texte de haute qualité, lisible :
- Conversion du PDF : conversion du PDF d’entrée en images avec
pdf2image - OCR : application de Tesseract OCR pour extraire le texte des images
- Découpage du texte : division de la sortie OCR brute en segments faciles à traiter
- Correction des erreurs : chaque segment est traité par un LLM afin de corriger les erreurs OCR et d’améliorer la lisibilité
- Formatage Markdown (optionnel) : reformatage du texte corrigé en un Markdown propre et cohérent
- Évaluation de la qualité : comparaison de la qualité de la sortie finale avec le texte OCR d’origine via une évaluation basée sur un LLM
Résumé de GN⁺
- Le projet LLM-Aided OCR est un système qui améliore considérablement la qualité des sorties OCR en exploitant les techniques récentes de traitement du langage naturel et les grands modèles de langage
- Il convertit les PDF en images, extrait le texte avec Tesseract, puis corrige les erreurs via un LLM et le réorganise au format Markdown
- Il prend en charge à la fois les LLM locaux et ceux basés sur le cloud, et optimise les performances grâce au traitement asynchrone
- Ce projet propose diverses fonctionnalités avancées pour améliorer la précision et la lisibilité des sorties OCR, et se révèle particulièrement utile pour le traitement de documents volumineux
- Parmi les projets offrant des fonctionnalités similaires figurent ABBYY FineReader et Adobe Acrobat OCR
1 commentaires
Avis Hacker News
La sortie du nouveau modèle schnell pourrait permettre de constituer des jeux de données capables de produire des modèles de vision SOTA
Pour les articles scientifiques, le modèle nougat de Meta est le plus adapté
D’après des essais passés, cela fonctionne bien dans 90 % des cas
Convertir les pages PDF en PNG puis demander à gpt4 de transcrire l’image est très précis
Il y a 10 ans, une tentative avait été faite pour faire de l’OCR en chinois avec Tesseract
De meilleurs résultats ont été obtenus avec PaddlePaddle
Quelqu’un demande si d’autres packages OCR ont été essayés
Il est important d’ajuster le prompt pour que le modèle comprenne plus clairement
Quelqu’un travaille sur une tâche similaire consistant à parser des grilles d’évaluation et des copies d’étudiants
Question sur l’approche consistant à corriger les erreurs OCR avec un prompt du type « fix this text »