Surya OCR

Évaluez Surya OCR pour extraire des documents en vérifiant les versions, les licences, les relations des tableaux et le travail de correction avant automatisation.

Identité et accès

Nom du modèle
Surya OCR
Accès
Dépôt officiel et paquet Python. Les licences du code et des poids demandent des vérifications distinctes.
Type de modèle
Transformer
Architecture
VLM documentaire Surya 2 avec modèles de détection séparés
Public visé
Développeurs et équipes documentaires capables de fixer les versions, préparer une référence et contrôler la structure avant automatisation.
Entrée
Images de pages pour l’interface OCR documentée. Conservez la version du paquet et les éventuelles étapes de conversion du PDF en images.
Sortie
Résultats OCR structurés : texte, blocs, ordre de lecture, HTML et états de contenu ignoré ou d’erreur à vérifier dans l’application destinataire.
Coût
Évaluer séparément licence des poids, démarrage du service, traitement et correction humaine. Le code accessible ne prouve pas le coût par document accepté.
À éviter
Ne pas automatiser tant que les conditions de licence, la tolérance aux erreurs ou le contrat de sortie restent incertains.

Sources et méthode

Licence et droits

Licence
Code Apache-2.0 ; poids OpenRAIL-M modifiés
Type de licence
Code source accessible
Périmètre de la licence
Apache 2.0 pour le code ; conditions OpenRAIL-M modifiées pour les poids, concernant notamment chiffre d’affaires, financement et concurrence. Lire les conditions complètes.
Open source
Non

Disponibilité

État
Disponible
Périmètre de l’état
Le dépôt officiel documente le projet Datalab, le paquet Python et le parcours Surya 2. Cette disponibilité ne lève pas les restrictions des poids et ne prouve pas les performances.

Points clés

OCR, mise en page et tableaux avec Surya 2

La documentation consultée le 10 septembre 2026 utilise un modèle documentaire pour ces tâches. Les interfaces V2 et les schémas de sortie diffèrent des anciens exemples.

La structure exige ses propres contrôles

Le schéma expose blocs, ordre de lecture, HTML et états d’erreur. Vérifiez les relations entre ces éléments plutôt que de résumer le document à un score.

Code et poids sous des conditions différentes

Le code relève d’Apache 2.0. Les poids utilisent une licence OpenRAIL-M modifiée avec des restrictions supplémentaires. Examinez les deux pour votre déploiement.

Cas d’usage et limites

Évaluer l’extraction des dossiers fournisseurs

Préparer un petit échantillon de mises en page, tableaux et cas difficiles, puis comparer texte et structure à une référence humaine avant importation automatique.

Migrer une intégration OCR existante

Fixer le paquet et garder des sorties représentatives pour détecter les changements de schéma, de service ou de parallélisme. Exécution réussie et données correctes sont deux contrôles distincts.

Avantages

  • Le parcours V2 documenté partage un gestionnaire d’inférence entre OCR, mise en page et tableaux.
  • Les champs structurés permettent de contrôler explicitement l’ordre de lecture et les états d’erreur.
  • Le gestionnaire documenté peut se connecter à un serveur existant, partagé par plusieurs opérations.

Limites

  • Les anciens exemples peuvent être incompatibles avec les interfaces et sorties V2.
  • Apache 2.0 pour le code ne remplace pas les conditions distinctes des poids.
  • Des mots correctement reconnus peuvent conserver un ordre ou des relations de tableau erronés.

Thèmes

  • Surya OCR

À propos du modèle

Sur cette page

Surya OCR est un projet de traitement documentaire qui extrait du texte et la structure des pages à partir d’images et de PDF. Il mérite une évaluation lorsque votre application a besoin de conserver l’ordre de lecture ou les zones d’un tableau, au-delà du texte brut. La version est déterminante : ce guide porte sur la documentation de Surya 2, et non sur les anciennes interfaces encore présentes dans certains tutoriels. Une installation réussie ne suffit pas. Le test d’acceptation doit vérifier que le document extrait conserve son sens.

Cette évaluation repose sur les sources, consultées le 10 septembre 2026 pour la version anglaise de référence. Nous n’avons effectué aucun benchmark OCR ni traité de documents clients. Le parcours ci-dessous propose un protocole à adapter, avec des critères de rejet explicites plutôt qu’un score de précision inventé.

Révision du code et de la documentation examinée: a2363d33.

Définir ce que l’extraction doit conserver

Partez de l’opération qui utilisera le résultat. La recherche dans une archive et l’importation d’une facture dans un logiciel comptable ne demandent pas les mêmes garanties. Un moteur de recherche peut tolérer un titre décoratif mal reconnu si le lecteur retrouve la bonne page. Un importateur de factures ne peut pas considérer un numéro de compte plausible mais erroné comme un simple problème de mise en forme.

Prenons une équipe fictive qui reçoit des PDF de fournisseurs. Certains contiennent du texte numérique propre. D’autres sont des scans, avec une annotation tamponnée, une adresse sur deux colonnes ou un tableau poursuivi sur la page suivante. Le résultat attendu n’est pas seulement une reconnaissance terminée : l’équipe veut un enregistrement vérifiable, dans lequel l’identité du fournisseur, les désignations, les quantités et les totaux restent reliés à leur emplacement d’origine.

Écrivez ces exigences avant de choisir les paramètres. Identifiez les champs à vérifier systématiquement, les relations à préserver et les cas à envoyer à un opérateur. Un paragraphe lisible ne doit pas masquer un tableau inutilisable. Cette préparation permet aussi une comparaison équitable : chaque solution doit conserver les mêmes informations, pas seulement produire un aperçu agréable.

La documentation présente Surya comme un outil pour les documents, plutôt que pour le texte photographié dans une scène réelle. Une devanture ou un panneau saisi en mouvement demande donc une évaluation distincte. La prise en charge de nombreuses langues ne prouve pas l’adéquation à toute image issue d’un appareil photo. Périmètre et limites de Surya.

Identifier la version avant de reprendre un exemple

Le nom de la famille de modèles et la version du paquet Python sont deux identifiants différents. Au moment de l’évaluation de référence, la configuration du dépôt indique la version 0.22.1 et une prise en charge de Python à partir de 3.10. Notez le paquet réellement installé, le checkpoint, le moteur d’inférence et l’environnement utilisés. Une commande copiée sans ces informations ne décrit pas une intégration reproductible. Configuration du paquet.

Les notes de migration remplacent l’ancien prédicteur de fondation par un gestionnaire d’inférence et décrivent des changements dans les champs de sortie OCR. Considérez la mise à niveau comme une modification du contrat entre applications. Avant de traiter une collection, examinez un résultat réel et vérifiez que votre parseur lit les champs effectivement renvoyés. Migration depuis Surya v1.

Le schéma de reconnaissance représente une page par des blocs et les limites de l’image. Les blocs comportent notamment un ordre de lecture, du contenu HTML et des indicateurs explicites de contenu ignoré ou d’erreur. Ne transformez pas automatiquement un bloc vide en valeur vide dans la base de données. Conservez les états nécessaires pour distinguer une zone volontairement ignorée, une reconnaissance échouée et une zone sans texte. Schéma de reconnaissance.

Pour une intégration existante, enregistrez un ancien résultat représentatif à côté d’un nouveau. Comparez leur structure avant de juger le texte : noms des champs, imbrication, ordre des pages et traitement des valeurs absentes. Un test de schéma qui réussit tout en supprimant silencieusement chaque tableau ne valide pas la migration.

Distinguer la licence du code et celle des poids

Le code du dépôt est distribué sous Apache 2.0. Les poids du modèle relèvent d’une licence OpenRAIL-M modifiée, séparée. Présenter l’ensemble comme un système simplement sous GPL, ou supposer que la licence du code autorise tous les usages des poids, cacherait précisément la décision qu’un utilisateur professionnel doit prendre. Licence du code, licence des poids.

L’annexe A prévoit des restrictions liées au chiffre d’affaires brut de l’année précédente au-delà de cinq millions de dollars américains, au financement total en fonds propres ou par dette dépassant ce montant, ainsi qu’aux produits ou services concurrençant les offres du concédant. Les clauses sur le chiffre d’affaires et le financement comportent des exceptions pour l’usage personnel ou la recherche. La restriction relative à la concurrence est distincte. N’en déduisez pas une autorisation générale pour toutes les petites entreprises. Lisez les conditions complètes pour votre organisation et votre déploiement, puis demandez les précisions nécessaires en cas de doute. Ce guide décrit les conditions, sans délivrer d’autorisation juridique.

Les documents eux-mêmes demandent une vérification séparée. L’autorisation d’exécuter un modèle ne prouve pas que vous pouvez téléverser les dossiers d’un fournisseur, conserver indéfiniment les identifiants extraits ou réutiliser ces données pour entraîner un autre système. Notez qui détient les documents, qui peut consulter les résultats et quel environnement est autorisé à les traiter. Une étiquette OCR ne règle aucune de ces obligations.

Constituer un échantillon révélateur des erreurs coûteuses

Pour le scénario des fournisseurs, choisissez un petit échantillon qui représente les difficultés réellement rencontrées. Incluez un PDF numérique propre, un scan au texte pâle, une page tournée, un document à plusieurs colonnes et un tableau dont les en-têtes se répètent. Ce sont des catégories de test proposées, pas une annonce de réussite ou d’échec de Surya pour chacune d’elles.

Faites transcrire les champs critiques et marquer l’ordre de lecture attendu avant de regarder la sortie du modèle. Sinon, le résultat généré risque de devenir son propre corrigé. Gardez la page d’origine à côté de cette référence. Lorsqu’un signe est réellement ambigu, indiquez-le au lieu de choisir une réponse commode présentée comme certaine.

Attribuez un identifiant stable à chaque page. Conservez l’empreinte du fichier d’entrée, ses dimensions, les paramètres de traitement et le chemin du résultat. Ne placez pas de documents privés dans des signalements publics ou des captures partagées. Si possible, reproduisez une erreur de parsing avec un document non sensible qui conserve la disposition utile. Précisez alors qu’il s’agit d’un exemple de diagnostic, et non d’un résultat client.

Commencez par le plus petit échantillon. Suivez le résultat de l’entrée jusqu’au parseur et à l’application destinataire, sans vous limiter à l’aperçu de Surya. L’objectif est de localiser une défaillance pendant qu’elle reste explicable. Envoyer toute une archive dans un parseur non validé augmente le nettoyage ultérieur sans mieux expliquer la première hypothèse incorrecte.

Utiliser une grille d’acceptation plutôt qu’une note unique

La grille suivante est une proposition éditoriale pour le scénario documentaire. Fixez les tolérances avec les responsables du système destinataire. Aucune ligne ne contient de résultat Surya mesuré dans cette évaluation.

ContrôlePreuve à conserverRejeter ou demander une vérification si
Champs d’identité critiquesExtrait source, transcription de référence et valeur extraiteUn caractère change le fournisseur ou la référence de paiement, même dans une phrase plausible.
Ordre de lectureZones source ordonnées et blocs de sortie ordonnésDes colonnes distinctes se mélangent ou une note se rattache à la mauvaise section.
Relations du tableauEn-tête, libellé de ligne, quantité et montant maintenus ensembleDes nombres exacts se retrouvent associés au mauvais article.
Contenu manquantNombre de pages et zones attendues comparés aux états de sortieUne page, une ligne de continuation ou une petite note disparaît sans signalement.
Application destinataireEnregistrement importé et lien vers sa sourceL’application efface l’incertitude, perd la provenance ou ne permet plus d’afficher la page vérifiée.

Séparez les erreurs critiques des différences cosmétiques. Un retour à la ligne modifié peut être sans conséquence pour la recherche et inacceptable dans un formulaire à disposition fixe. Cette distinction doit figurer dans les règles d’acceptation, plutôt que dépendre d’une décision improvisée devant le résultat. Documentez chaque classement pour permettre au prochain relecteur d’appliquer la même règle.

Comptez le travail de vérification dans le résultat global. Si la sortie évite la saisie mais oblige à rechercher constamment les pages sources, le processus peut rester plus lent pour l’équipe. Mesurez le temps nécessaire pour obtenir un enregistrement corrigé et accepté, échecs compris. L’échantillon sert alors à une décision opérationnelle, pas uniquement à une démonstration du modèle.

Mesurer séparément le démarrage et le traitement

La documentation de Surya décrit vLLM pour les GPU NVIDIA et llama.cpp pour le CPU ou Apple Silicon. L’installation doit donc prendre en compte un service d’inférence en plus du paquet Python. Consignez le moteur choisi : dire que le système fonctionne localement ne décrit pas suffisamment le matériel et les logiciels. Documentation des moteurs d’inférence.

Le fichier de configuration expose des réglages distincts pour le cache des modèles, l’adresse du service et son cycle de vie. Une commande locale peut utiliser un service distant configuré, tandis que le premier lancement peut nécessiter des téléchargements. Vérifiez les échanges réseau et le parcours réel des documents avant de qualifier l’installation de hors ligne ou d’adaptée aux dossiers confidentiels. Paramètres d’inférence.

Chronométrez séparément le démarrage à froid, le traitement avec service déjà chargé, la conversion des sorties et la correction humaine. Comparez des exécutions sur le même échantillon et indiquez les échecs avec les durées. Une exécution rapide à chaud ne décrit pas un traitement planifié qui redémarre un environnement pour chaque document.

Modifiez la résolution ou le parallélisme, un seul à la fois. Après chaque changement, revérifiez les petits caractères et le tableau le plus exigeant. Observez le processus complet pour repérer la saturation mémoire ou les sorties tronquées. Conservez les anciens réglages tant que les nouveaux ne passent pas la même grille. Une exécution plus rapide qui perd le séparateur décimal du fournisseur n’est pas une amélioration utile.

Trouver l’étape défaillante avant de relancer

Examinez ensemble la page source, le résultat brut et l’enregistrement importé. Si le texte est déjà incorrect dans le résultat brut, corriger les correspondances de la base de données ne réparera pas la reconnaissance. Si les valeurs brutes sont justes mais que les lignes se mélangent après importation, relancer le modèle ne corrigera pas le parseur.

SymptômePremière vérificationContrôle observable après modification
Rien n’est importéComparer le schéma attendu au résultat brut enregistré et aux indicateurs d’erreur.Une page connue comme non vide produit l’enregistrement attendu et conserve les états d’échec.
Le texte est lisible, mais le sens changeSuivre l’ordre des colonnes et les liens entre en-têtes et valeurs.Chaque valeur extraite peut être rattachée à la zone source prévue.
De petits caractères manquentComparer le recadrage original à l’image réellement transmise à la reconnaissance.La même zone reste lisible en entrée et apparaît correctement en sortie.
Le débit varie fortementSéparer le démarrage, la saturation du moteur et la conversion ultérieure.Des exécutions répétées expliquent la variation sans exclure les pages échouées.
Une nouvelle version dégrade les anciens documentsComparer versions fixées, configuration et contrats de sortie.L’ancien échantillon d’acceptation et le nouveau cas problématique réussissent avant déploiement.

Ne corrigez pas une source ambiguë en inventant silencieusement le texte le plus probable. Conservez un marqueur d’incertitude ou faites vérifier la page. Un résultat fluide peut sinon inspirer confiance dans une valeur à peine lisible sur l’original.

Choisir la suite à partir des éléments observés

Si le PDF d’origine contient déjà du texte et une structure exploitables, comparez d’abord l’extraction directe. Pour une petite collection de documents manuscrits difficiles ou de tableaux très irréguliers, une transcription supervisée peut être plus facile à contrôler qu’une intégration importante. Ce sont des approches alternatives, sans affirmation de supériorité d’un modèle concurrent.

Un service documentaire géré représente un autre choix opérationnel que l’hébergement de Surya. Examinez séparément ses conditions actuelles, sa conservation des données, son contrat de sortie et la charge totale de vérification. L’utilisation d’un modèle apparenté ne rend pas le service identique au dépôt et ne lui transfère pas vos résultats locaux.

Le résultat utile est une frontière documentée : quelles catégories de documents peuvent entrer dans le pipeline, quels champs exigent une vérification et quelles erreurs arrêtent l’importation automatique ? Conservez des exemples rejetés comme tests de régression, dans le respect de vos règles de conservation. Réexécutez-les lorsque le paquet, le checkpoint, le moteur ou le parseur change.

Cette analyse ne démontre ni une précision universelle dans toutes les langues, ni la conformité d’un déploiement en production, ni une garantie de traitement autonome des factures. Elle propose une méthode pour évaluer votre tâche. Le répertoire des modèles présente d’autres catégories ; appliquez la même discipline de sources et d’acceptation à la prochaine évaluation.

Questions fréquentes

Que vérifier avant d’intégrer Surya OCR ?

Notez paquet, famille de modèles, service distant ou moteur local, paramètres et schéma attendu. Testez ensuite un échantillon représentatif face à une référence préparée par une personne.

Surya OCR relève-t-il entièrement d’Apache 2.0 ?

Non. Le code consulté relève d’Apache 2.0 ; les poids utilisent une licence OpenRAIL-M modifiée. Vérifiez les conditions des fichiers réellement utilisés.

Un texte correct prouve-t-il que l’extraction est correcte ?

Non. Ordre de lecture, relations entre blocs, tableaux et erreurs peuvent encore compromettre l’usage. Contrôlez la structure consommée par votre application.

Un benchmark a-t-il été réalisé pour cette page ?

Non. Cette évaluation repose sur les sources et ne démontre ni précision, ni vitesse, ni besoin matériel, ni durée de correction pour vos documents.