Articol
Îmbunătățește acuratețea OCR: corectează imaginea înainte de a recunoaște textul
OCR este la fel de bun pe cât este imaginea pe care i-o dai. O scanare strâmbă, cu contrast scăzut și zgomot produce text ininteligibil indiferent cât de bun este motorul. Iată ce schimbă cu adevărat rezultatele, în ordinea în care trebuie făcute, totul rulând local în browserul tău.
De ce OCR are dificultăți cu scanările reale
Un motor OCR precum Tesseract a fost antrenat pe text curat, orizontal, cu contrast ridicat. Acesta segmentează o pagină în rânduri, rândurile în cuvinte și cuvintele în forme de caractere, apoi potrivește fiecare formă cu modelul său antrenat. Scanările din lumea reală încalcă aceste ipoteze: pagina este înclinată câteva grade, iluminarea este neuniformă, rezoluția este scăzută, iar marginea patului scanerului sau pagina opusă adaugă zgomot întunecat. Fiecare dintre aceste probleme face ca pasul de segmentare a rândurilor și caracterelor să greșească, iar o segmentare greșită se propagă în caractere greșite. Soluția este rareori un motor diferit: este pregătirea imaginii astfel încât ipotezele motorului să fie valide. În practică, preprocesarea îmbunătățește acuratețea mai mult decât alegerea motorului OCR.

Începe cu rezoluția: vizează 300 DPI
Tesseract funcționează cel mai bine la aproximativ 300 DPI pentru textul obișnuit. Sub aproximativ 200 DPI, trăsăturile fiecărui gliph se estompează în vecinii lor și acuratețea scade brusc. Dacă controlezi scanarea, setează scanerul la 300 DPI înainte de orice altceva, deoarece aceasta este alegerea cu cel mai mare impact. Dacă ai doar o imagine cu rezoluție scăzută, mărirea acesteia nu inventează detalii care nu au fost niciodată capturate, dar o mărire moderată poate ajuta totuși motorul să separe caracterele care se ating, oferind segmentării mai mulți pixeli cu care să lucreze. Textul foarte mic beneficiază de 400 până la 600 DPI; dincolo de asta, fișierul crește fără câștig în acuratețe. Când sursa este un PDF, rasterizează mai întâi fiecare pagină la o imagine la DPI-ul țintă, apoi rulează OCR pe acea imagine.
Obține orientarea corectă
Dacă pagina este rotită cu 90, 180 sau 270 de grade, motorul citește lateral sau invers și returnează text fără sens. Tesseract are o trecere de detectare a orientării și a tipului de scriere (OSD) care poate ghici rotația, dar aceasta este nesigură pe text rar, formulare sau pagini dominate de imagini. Rotirea paginii în poziție verticală de către tine înlătură necesitatea de a ghici. Acest pas este fără pierderi și instant: rotirea cu un multiplu de 90 de grade remapează doar pixelii existenți în noi poziții, fără costuri de calitate și fără reesantionare. Fă-o înainte de corecția înclinării, deoarece aceasta presupune că textul este deja aproximativ orizontal.
Corecția înclinării: îndreptarea unghiului mic
Chiar și o înclinare de 2 până la 3 grade, cea pe care o obții din introducerea unei pagini ușor strâmbe, afectează OCR: pasul de găsire a rândurilor orizontale împarte un rând de text în două sau fuzionează două rânduri într-unul singur. Corecția înclinării măsoară unghiul dominant al rândurilor de text (de obicei cu o analiză prin profilul de proiecție sau transformata Hough) și rotește pagina înapoi la nivel. Spre deosebire de o rotire cu 90 de grade, corecția înclinării este o rotire cu un unghi mic arbitrar, deci reesantionează pixelii și adaugă o mică cantitate de estompare. Acest compromis merită aproape întotdeauna, deoarece rândurile la nivel se segmentează curat și câștigul de acuratețe depășește cu mult ușoara înmuiere. Aplică corecția înclinării după fixarea orientării și înainte de decupare.

Decupează la text și elimină zgomotul
Tot ceea ce nu este textul pe care îl dorești este zgomot pe care motorul îl poate citi greșit: marginea întunecată a patului scanerului, o parte a paginii opuse, un colț capsat, un deget sau o gaură de perforare. Decupând la blocul de text, elimini acele ținte false, ceea ce îmbunătățește atât acuratețea, cât și viteza de recunoaștere, deoarece motorul are o suprafață mai mică de analizat. Pentru un document cu mai multe coloane, decuparea (sau rularea OCR câte o coloană pe rând) previne, de asemenea, ca motorul să citească direct peste spațiul dintre coloane și să amestece două coloane într-un singur rând ininteligibil. Decupează după corecția înclinării, astfel încât conținutul să stea drept în cadru.
Contrast, tonuri de gri și cum funcționează binarizarea
OCR rulează în final pe o imagine binară: fiecare pixel este decis să fie cerneală sau hârtie. Tesseract face acest lucru intern folosind metoda Otsu, care alege un prag global unic din histograma imaginii. Aceasta funcționează bine când pagina are iluminare uniformă și contrast bun și eșuează când o umbră sau un fundal colorat face un colț mai întunecat decât anticipează pragul. Câștigurile sigure sunt conversia la tonuri de gri, astfel încât o coloratură să nu poată deruta pragul, și uniformizarea iluminării astfel încât întreaga pagină să stea de aceeași parte a pragului. Creșterea moderată a contrastului ajută textul estompat. Ceea ce se întoarce de obicei împotriva ta este binarizarea manuală dură: dacă aplici un prag la alb-negru pur cu o valoare greșită, ștergi trăsăturile estompate pe care trecerea proprie a motorului le-ar fi păstrat. Lasă motorul să binarizeze și oferă-i o imagine uniformă, în tonuri de gri. Sunasty oferă conversie la tonuri de gri pentru PDF-uri; pentru reglaj fin al contrastului un editor de birou este în continuare mai bun, dar iluminarea uniformă la momentul scanării contează mai mult decât orice cursor.
Alege limba corectă și verifică rezultatul
Tesseract încarcă un fișier separat cu date antrenate per limbă și script. Rularea unui model în engleză pe text în franceză sau greacă produce erori care pot fi evitate, mai ales pe caractere accentuate sau non-latine, deci selectează limba care corespunde documentului. În final, tratează rezultatul OCR ca pe un ciornă, nu ca pe un răspuns final: motorul nu are nicio modalitate să știe că un nume este scris corect sau că un 0 nu este un O. Verifică numerele, substantivele proprii și orice este important din punct de vedere legal sau financiar. Pentru tabele și machete cu mai multe coloane, estimează că va trebui să corectezi structura manual, deoarece OCR returnează un flux de text recunoscut, nu o machetă reconstruită.
Instrumente din acest articol
- OCR · imagine/PDF în textExtrage text din imagini sau PDF-uri scanate în întregime în browser, rulează offline, fără încărcare.
- Îndreaptă pagini scanateÎndreaptă PDF-uri sau imagini scanate înclinate în întregime în browser, fără încărcare.
- Rotește și răsucește imaginiRotește imaginile cu 90/180/270° sau răsucește-le orizontal și vertical, fără încărcare.
- Decupează imagineaDecupează imaginile cu o previzualizare interactivă, trage și redimensionează zona de decupare. Fără încărcare.
- PDF în tonuri de griConvertește un PDF color în tonuri de gri în întregime în browser, fără încărcare.
- Redimensionează imaginiRedimensionează și convertește imaginile (JPEG, PNG, WebP) fără a le încărca.
- PDF în imaginiConvertește fiecare pagină PDF în PNG sau JPG direct în browser.
Întrebări frecvente
Mărirea unei scanări neclare îmbunătățește OCR?
Nu prea mult în sine. Mărirea nu poate recupera detalii pe care scanarea nu le-a capturat niciodată, deci o imagine neclară la 100 DPI rămâne neclară. O mărire moderată poate ajuta motorul să separe caracterele care se ating oferind segmentării mai mulți pixeli, dar rescanarea la 300 DPI este mult mai eficientă decât orice mărire.
Ar trebui să convertesc imaginea la alb-negru pur mai întâi?
De obicei nu. Tesseract binarizează intern cu metoda Otsu, iar un prag manual dur cu o valoare greșită șterge trăsăturile estompate pe care motorul le-ar fi păstrat. Convertește la tonuri de gri și uniformizează iluminarea în schimb, apoi lasă motorul să aleagă propriul prag.
Textul meu este lateral. Va fi rotit automat de OCR?
Uneori. Tesseract are o trecere de detectare a orientării, dar aceasta este nesigură pe formulare, text rar sau pagini cu multe imagini. Rotirea paginii în poziție verticală de către tine cu 90, 180 sau 270 de grade este fără pierderi și elimină necesitatea de a ghici, deci este alegerea mai sigură.
Vreuna dintre acestea încarcă documentul meu?
Nu. Rotirea, corecția înclinării, decuparea, conversia la tonuri de gri și OCR în sine rulează toate în browserul tău. OCR folosește o versiune WebAssembly a lui Tesseract, iar datele de limbă antrenate sunt descărcate o singură dată și stocate în cache. Fișierul tău nu părăsește niciodată dispozitivul.