OCR hors ligne — Extraction de texte d'image hors ligne
Basée sur RapidOCR + PP-OCRv6, cette compétence permet l'extraction de texte depuis des images en local, entièrement hors ligne, et prend en charge le chinois et l'anglais. Aucune connexion Internet, inscription à une API ou GPU nécessaire.
Quand l'utiliser
- L'utilisateur fournit un fichier image (capture d'écran, photo, ticket, scan, document, CAPTCHA, etc.) et demande la lecture du texte qu'il contient.
- Besoin d'extraire du texte d'une image, comme copier les informations d'un ticket, reconnaître du code/texte dans une capture d'écran, ou extraire le texte d'un tableau.
- Alternative de « lecture d'image » lorsque le modèle actuel ne dispose pas de capacités multimodales.
- Peut être utilisé avec DeepSeek-V4 et autres grands modèles sans multimodalité : lorsque l'interface de dialogue du modèle ne peut pas « voir » une image, ce skill extrait d'abord le texte de l'image pour que le modèle puisse le comprendre, répondre et traiter.
Installation initiale (une seule fois)
L'exécution du script nécessite un environnement virtuel Python dédié. Lors de la première utilisation de ce skill, vérifiez d'abord que l'environnement est prêt :
# Si <SKILL_DIR>/.venv n'existe pas ou ne peut pas importer rapidocr, exécutez :
python <SKILL_DIR>/scripts/setup.py
# Pour les utilisateurs de CPU Intel souhaitant de meilleures performances (environ 1,8x), installez OpenVINO en plus :
python <SKILL_DIR>/scripts/setup.py --with-openvino
La commande est identique sur toutes les plateformes (Windows/macOS/Linux, pas besoin de bash). Si
pythonn'est pas trouvé, sous Linux/macOS vous pouvez utiliserpython3à la place.
setup.py est idempotent, il peut être exécuté plusieurs fois ; si déjà installé, il saute l'étape. Il :
- Vérifie que la version de Python est >= 3.9 (sinon, donne des instructions d'installation pour chaque plateforme)
- Crée
<SKILL_DIR>/.venvet installerapidocr+onnxruntime(par défaut) ou +openvino(optionnel) - Si un CPU Intel est détecté et qu'OpenVINO n'est pas installé, il suggère l'installation optionnelle pour une accélération 1,8x (ne l'installe pas automatiquement)
<SKILL_DIR>désigne le répertoire où se trouve ce skill. Les modèles sont inclus avec le paquet rapidocr (PP-OCRv6 en trois niveaux det/rec), aucun téléchargement supplémentaire nécessaire.
Processus complet de la première exécution à l'utilisation : python <SKILL_DIR>/scripts/setup.py → attendez l'installation automatique (environ 1 à 3 minutes) → utilisez la commande ci-dessous pour reconnaître une image.
Utilisation
# Image unique
python <SKILL_DIR>/scripts/ocr.py <chemin_image>
# Plusieurs images
python <SKILL_DIR>/scripts/ocr.py <image1> <image2> ...
# Paramètres courants
--model tiny|small|medium Niveau du modèle (par défaut small)
--engine onnxruntime|openvino Moteur d'inférence (par défaut onnxruntime)
--use_cls Active la classification d'orientation des lignes de texte (utile pour le texte pivoté/vertical, un peu plus lent)
--save_vis Sauvegarde les résultats visuels dans output/
Exemples :
python <SKILL_DIR>/scripts/ocr.py /path/to/screenshot.png
python <SKILL_DIR>/scripts/ocr.py --model tiny --save_vis /path/to/invoice.jpg
python <SKILL_DIR>/scripts/ocr.py --engine openvino /path/to/photo.png
Remarque :
ocr.pyutilise automatiquement les dépendances de.venv(sous Windows,.venv\Scripts\python.exe), nul besoin de se soucier du chemin de l'interpréteur.
Format de sortie
Le script affiche le résultat de la reconnaissance sur stdout, au format suivant :
===== fichier.png =====
Total de N zones de texte reconnues :
[1] Première ligne de texte reconnue (Confiance : 0.98)
[2] Deuxième ligne de texte reconnue (Confiance : 0.95)
Après la reconnaissance, le texte brut après le [numéro] est formaté et renvoyé à l'utilisateur, avec une mention sur les confiances faibles (par exemple, une reconnaissance inférieure à 0.6 peut être peu fiable).
Choix du moteur d'inférence
| Moteur | Taille | Caractéristiques |
|---|---|---|
onnxruntime (par défaut) | Petit (~52M) | Cohérent sur toutes les plateformes, installation propre, recommandé universel |
openvino | Grande (~+123M) | Plus rapide uniquement sur CPU Intel (environ 1,8x) ; sans avantage sur AMD/Apple Silicon |
Choix du niveau de modèle
| Niveau | Taille det/rec | Vitesse | Précision | Cas d'usage |
|---|---|---|---|---|
tiny | 1,8M / 4,5M | La plus rapide | Faible | Scènes simples, aperçu rapide |
small (par défaut) | 9,9M / 21M | Équilibrée | Bonne | Scènes générales |
medium | 62M / 77M | La plus lente | La plus élevée | Texte complexe, flou, dense |
Si l'image est nette et le texte régulier, privilégiez small ; passez à medium en cas de reconnaissance peu fiable.
Remarques
- Plus l'image est nette et le texte régulier, meilleure est la reconnaissance ; les italiques, polices artistiques ou arrière-plans complexes réduisent la précision.
- Pour un texte inversé ou vertical, ajoutez le paramètre
--use_cls. - Le temps de traitement par image est d'environ 0,1 à 1 s (CPU), selon la taille de l'image, le niveau du modèle et le moteur.
- Nécessite uniquement Python 3.9+ ; si Python n'est pas installé, setup.py donne des instructions d'installation pour chaque plateforme.