PaddleOCR

PaddleOCR

Trois familles de modèles OCR pour images et PDF

PaddleOCR est une bibliothèque Python, avec sa CLI paddleocr, qui lit images et PDF et en rend le texte, la mise en page ou un document Markdown. Elle regroupe trois familles de modèles :

  • PP-OCR lit le texte ligne par ligne, avec ses coordonnées. PP-OCRv6 est le modèle par défaut depuis la version 3.7.
  • PP-StructureV3 découpe la page (tableaux, formules, tampons, images) et la rend en Markdown ou en JSON, avec les coordonnées de chaque cellule de tableau.
  • PaddleOCR-VL associe un modèle d'analyse de mise en page à un modèle vision-langage de 0,9 milliard de paramètres, pour les formules, les graphiques, les tampons et les documents anciens.

Le comparatif des outils OCR open source confronte PaddleOCR aux autres moteurs OCR, aux modèles de vision et aux convertisseurs vers Markdown.

Poids sous la même licence Apache 2.0 que le code

  • PP-OCRv6 en trois tailles : 1,5 M, 7,7 M et 34,5 M de paramètres, pour l'embarqué, le mobile et le serveur. Un seul modèle lit 50 langues, dont 46 à alphabet latin ; des modèles PP-OCRv5 dédiés portent le total au-delà de 100.
  • Des poids sous Apache 2.0, comme le code : les fiches Hugging Face de PaddleOCR-VL-1.6 et de PP-OCRv6 portent la licence du dépôt. Ceux de Chandra, sous OpenRAIL-M modifiée, ne sont gratuits que pour la recherche, l'usage personnel et les startups sous 2 M$ de financement ou de revenus.
  • Trois moteurs d'inférence : le paramètre engine, arrivé avec la 3.5, choisit entre PaddlePaddle, Hugging Face Transformers et ONNX Runtime.
  • OCR dans le navigateur : PaddleOCR.js, publié sur npm sous @paddleocr/paddleocr-js, exécute PP-OCRv5 côté client avec ONNX Runtime Web. C'est le terrain de Tesseract.js, qui embarque un portage WebAssembly du moteur Tesseract et ne lit pas les PDF.
  • Markdown, JSON et DOCX en sortie : l'extra doc2md convertit en plus les fichiers Word, Excel et PowerPoint en Markdown.

PaddlePaddle par défaut, serveur d'inférence pour le modèle VL

PaddlePaddle reste le moteur par défaut. pip install paddleocr n'installe aucun moteur d'inférence. Il faut ajouter PaddlePaddle, Transformers (5.10 ou plus) ou ONNX Runtime, un seul par environnement selon la doc, car leurs dépendances peuvent entrer en conflit. Sans engine explicite, PaddleOCR passe le plus souvent par PaddlePaddle, et l'entraînement comme l'export de modèles l'exigent. La documentation tire PaddlePaddle de paddlepaddle.org.cn et les images Docker d'un registre Baidu AI Cloud.

PaddleOCR-VL réclame un serveur d'inférence en production. La documentation réserve l'inférence locale à la validation et confie, en production, le modèle de vision à un service dédié : vLLM, SGLang, FastDeploy, MLX-VLM ou llama.cpp. Sur GPU NVIDIA, vLLM exige une compute capability de 8.0 et CUDA 12.6, soit une RTX 30, 40 ou 50, une A10 ou une A100 ; la doc le déconseille sur T4 et V100, sujettes aux timeouts et à la saturation mémoire. vLLM, SGLang et FastDeploy ne tournent pas nativement sous Windows, et sur CPU x64 seul llama.cpp est pris en charge comme service. L'image Docker de PaddleOCR-VL pèse environ 8 Go, celle du serveur vLLM 13 Go. Falcon-Perception se passe de PaddlePaddle : il tourne sur PyTorch (CUDA) ou MLX, avec un modèle OCR de 270 millions de paramètres.

Le modèle de vision seul ne reproduit pas le pipeline. Appeler directement PaddleOCR-VL-0.9B, dans Transformers ou derrière vLLM, saute l'analyse de mise en page. Si les scores publiés ne se retrouvent pas ou que les hallucinations s'accumulent, la documentation demande d'abord de vérifier que le pipeline complet tourne.

Les scores de PP-OCRv6 sortent d'un jeu interne. Le README affirme que PP-OCRv6 medium dépasse Qwen3-VL-235B et GPT-5.5, mais la documentation mesure les scores de PP-OCRv6 sur un jeu d'évaluation interne.

Six versions entre janvier et juin 2026, aucune depuis. La 3.3.3 est sortie le 20 janvier, la 3.7.0 le 11 juin. Le dépôt a reçu 127 commits entre le 1er janvier et cette dernière, puis 11 jusqu'au 16 septembre, dont un seul ajoute une fonction : HPD-Parsing, le 22 juillet.