Recunoașterea scrisului tipărit e o problemă rezolvată de ani buni. Scrisul de mână e o cu totul altă poveste, iar scrisul de mână în română, cu diacritice și cu documente vechi, e printre cele mai grele lucruri pe care le poți cere unui model AI.
Aveam nevoie de un răspuns practic la o întrebare simplă: dacă vrem să citim automat documente scrise de mână, fără ca datele să plece din firmă, care model open-source rulat local face cea mai bună treabă? Nu am ghicit și nu am luat pe cuvânt niciun clasament de pe internet. Am construit un benchmark și am testat 17 modele pe documente reale în română.
De ce local, nu în cloud
Toate modelele din test sunt open-source și pot rula pe propriul tău GPU. Asta nu e un detaliu tehnic, e chiar miza. Documentele scrise de mână pe care le procesează o firmă sunt exact tipul de date pe care nu vrei să le trimiți nicăieri: cereri, declarații, fișe cu nume și CNP, corespondență.
Un serviciu de OCR din cloud rezolvă problema tehnică, dar mută datele pe serverele altcuiva. Un model rulat local rezolvă aceeași problemă și ține documentele în firmă. Ca să alegem corect modelul pentru un astfel de sistem, aveam nevoie de cifre reale despre cât de bine citesc modelele deschise scrisul de mână românesc.
Cum am testat
Am folosit două tipuri de documente, cu două tipuri de evaluare.
Documente reale, evaluate calitativ. Peste 80 de pagini scrise de mână în română: declarații și autobiografii olografe din arhive istorice (de la scrisori din secolul XIX până la dosare de cadre din anii ‘50), plus documente moderne, caiete, rețete, cărți poștale și formulare completate manual. Pentru aceste pagini nu există un „text corect” de referință, așa că le-am evaluat pe lizibilitate, corectitudinea diacriticelor și fidelitate. Ca să nu depindem de o singură părere, fiecare transcriere a fost notată de doi judecători independenți, pe o scală de la 1 la 10.
Formulare sintetice, măsurate numeric. Opt formulare de tip administrativ generate special, cu text de referință exact cunoscut. Aici am putut calcula CER (Character Error Rate, rata de eroare la nivel de caracter), cu atenție specială pe diacriticele grele (ă, â, î, ș, ț, inclusiv î și â median, ca în Țîrlea sau Hâncu) și pe secvențele numerice: CNP-uri de 13 cifre, date, sume, numere de dosar.
Am urmărit și un mod de eșec specific modelelor AI: bucla de repetiție, în care modelul se blochează și repetă la nesfârșit aceeași frază sau aceleași cifre, irosind timp și producând text inutil.
Pe text curat, modelele locale sunt deja foarte bune
Pe formularele sintetice, unde scrisul e ordonat, cele mai bune modele au ajuns la o rată de eroare sub o jumătate de procent. Câteva rezultate, sortate după acuratețe:
| Model | CER (mai mic e mai bun) | Latență mediană |
|---|---|---|
| qwen3-vl | 0,29% | 9,1 s |
| qwen3-vl-8b | 0,35% | 3,1 s |
| olmocr2 | 0,68% | 2,1 s |
| glm-ocr | 1,24% | 0,6 s |
| paddleocr-vl | 4,12% | 0,7 s |
Concluzia e încurajatoare: pentru documente lizibile, nu ai nevoie de niciun serviciu din cloud. Un model open-source rulat local citește textul cu o acuratețe de peste 99%. Interesant e că modelul de 8 miliarde de parametri se apropie foarte mult de fratele lui mai mare, la o treime din timp, ceea ce contează enorm când ai de procesat volume.
Sursa principală de eroare rămasă sunt exact diacriticele. Diferența dintre un model bun și unul slab pe română se vede aproape complet în cât de corect pune ă, â, î, ș și ț.
Pe scrisul de mână real, apar diferențele adevărate
Aici testul devine dur. Pe cele peste 80 de pagini reale, cu cerneală decolorată, cursive înclinate și hârtie de arhivă, scorurile calitative scad simțitor. Primele locuri, ca medie a celor doi judecători pe scala 1 la 10:
| # | Model | Scor mediu |
|---|---|---|
| 1 | qwen3-vl | 6,28 |
| 2 | qwen3.6-35b-a3b | 6,13 |
| 3 | qwen3.5-nothink | 6,10 |
| 4 | qwen3.6-27b | 6,05 |
| 5 | olmocr2 | 5,71 |
La coada clasamentului, modelele mici și cele specializate strict pe text tipărit s-au prăbușit, unele sub 3 din 10.
Câteva lucruri pe care le-am învățat aici contează mai mult decât clasamentul în sine:
Modul de eșec e la fel de important ca acuratețea. Pe o declarație olografă din 1950, un model bun transcrie corect primele rânduri, apoi se blochează într-o buclă și repetă la nesfârșit „înmormântată în anul, un, un, un”. Modelele mici intră în buclă mult mai des. Un sistem serios trebuie să detecteze bucla și să nu livreze textul irosit ca și cum ar fi corect.
Onestitatea bate curajul. Un model (olmocr2) urcă pe documentele cele mai degradate tocmai pentru că, atunci când un cuvânt e ilizibil, îl marchează ca atare în loc să inventeze. Pe date reale, un „nu pot citi asta” e mult mai valoros decât o ghicitură plauzibilă care trece neobservată la verificare.
Nu există un singur câștigător. Modelul care citește cel mai bine cursivul modern nu e neapărat cel mai bun pe un formular administrativ tipărit și completat de mână. Modelele de tip GLM, de exemplu, sunt mediocre pe cursivul liber, dar reconstruiesc excelent structura unui proces-verbal sau a unei matricole tipizate.
Judecătorii au fost de acord. Diferența medie între cei doi judecători a fost sub un punct pe scala de 10, iar corelația dintre clasamentele lor a fost de 0,85. Cu alte cuvinte, ordinea modelelor nu e o părere întâmplătoare, e un rezultat stabil.
Ce înseamnă asta pentru o firmă
Dacă ai de procesat documente scrise de mână, sau amestecate, cu părți tipărite și părți completate manual, concluziile practice sunt clare.
Se poate face local, fără să trimiți nimic în cloud. Modelele deschise au ajuns suficient de bune pentru română, inclusiv pe diacritice, cât să ruleze pe un GPU din firmă și să țină datele închise.
Alegerea modelului nu e „luăm cel mai mare și gata”. Depinde de tipul tău de document, de raportul dintre viteză și acuratețe de care ai nevoie și de cât de degradate sunt paginile. Pentru un flux general am folosi un model puternic ca motor principal, cu un al doilea model, mai prudent, pentru documentele foarte greu de citit.
Și, indiferent de model, are nevoie de o plasă de siguranță: detectarea buclelor, marcarea a ceea ce e ilizibil și un ecran de control unde un om verifică datele extrase înainte să meargă mai departe. AI-ul face 95% din muncă; verificarea finală rămâne a omului.
Exact asta e diferența dintre a lipi un apel către un serviciu din cloud și a construi un sistem serios. Când citim documente pentru un client, alegerea motorului se face pe date ca acestea, nu pe intuiție, iar rezultatul rulează pe infrastructura pe care o controlează el. Detalii despre cum ținem datele închise găsești pe pagina despre AI privat și securitatea datelor; despre cum arată un sistem concret de procesare de documente, pe pagina de integrări AI.
Dacă articolul ți-a pus o întrebare despre firma ta, răspunsul concret, cu prețuri publice, e aici: