Cum funcționează: FineReader. Sisteme de recunoaștere a textului și programe de traducere

18.09.2020 Sfat

Tehnologii de recunoaștere optică (conceptul și domeniile de aplicare ale OCR, algoritmi de recunoaștere optică, caracteristici și programe OCR, conceptul de recunoaștere inteligentă a caracterelor, sisteme de recunoaștere a textului scris de mână)

OCR (recunoaștere optică a caracterelor)- tehnologie pentru conversia unei imagini grafice a textului în text computerizat folosind un algoritm de recunoaștere a modelelor grafice.

OCR este utilizat:

1) la scanarea și fotografiarea textelor.

2) pentru introducerea unor cantități mari de informații text într-un computer (100 sau mai multe pagini pe zi).

3) pentru introducerea de mână a informațiilor text într-un computer.

4) pentru a converti un format în altul.

Trei tehnologii principale de recunoaștere a caracterelor sunt populare:

Șablon (în imaginea de intrare sunt selectate imagini raster ale personajelor individuale, în comparație cu toate șabloanele disponibile în baza de date, este selectat un șablon cu cele mai puține puncte diferite de imaginea de intrare. Sistemele de șabloane sunt mai ușor de implementat, rezistente la defecte de imagine, au o viteză mare de procesare a datelor de intrare, dar recunosc în mod fiabil doar acele fonturi ale căror modele le cunosc),

Structural (obiectul este descris ca un grafic, ale cărui noduri sunt elementele obiectului de intrare, iar arcele sunt relațiile spațiale dintre ele. Sistemele structurale sunt foarte sensibile la defectele de imagine grafică care încalcă elementele constitutive. Pentru aceste sisteme , spre deosebire de șablon și caracteristici, încă nu au fost create proceduri de instruire automatizate eficiente),

Transformare fântână (combină avantajele sistemelor șablon și structurale. Orice obiect perceput este considerat ca un întreg, format din părți interconectate prin anumite relații).

Caracteristici OCR:

    numărul de erori la introducerea textului. O valoare acceptabilă este de 10 erori pe pagină.

    solicitări asupra calității textului sursă.

    capacitatea de a corecta greșelile de ortografie pentru a îmbunătăți calitatea introducerii.

    suport pentru diverse limbi.

    capacitatea de a învăța și de a se adapta la caracteristicile fonturilor tipărite și ale textelor scrise de mână.

    viteza de recunoaștere. Este de dorit ca acesta să fie comparabil cu timpul necesar pentru ca documentul să fie introdus de către scaner.

programe ocr:

Cele mai cunoscute pachete sunt FineReader, CuneiForm, OmniPage, TextBridge.

ABBYY FineReader- OCR pentru introducerea automată de texte, tabele, formulare, chestionare etc.

ADRT (tehnologie adaptativă de recunoaștere a documentelor), tehnologie adaptivă de recunoaștere a documentelor la nivel IDR (Intelligent Document Recognition).

Cititor de cărți de vizită ABBYY - aplicatie mobila pentru recunoașterea cărților de vizită, care recunoaște automat informațiile dintr-o fotografie a unei cărți de vizită, creează un nou contact, scrie detalii de contact și informații suplimentare în câmpurile obligatorii din agendă.

    ICR (Recunoaștere inteligentă a caracterelor) - sisteme de prelucrare a formularelor care asigură introducerea datelor din documente pe baza modelelor geometrice

Orice persoană modernă care lucrează constant cu documente din când în când își pune o întrebare arzătoare: de ce să rescrieți textul dacă cineva a făcut-o deja înainte? Pentru mulți utilizatori, o astfel de sarcină repetată în mod regulat provoacă iritare cu o nuanță de resentimente pentru că trebuie să dubleze inutil munca altcuiva. Desigur, dezvoltatorii de software nu puteau rămâne indiferenți la așa ceva situație tipică, a cărui lichidare promitea și profituri substanțiale. Acesta este modul în care sistemele cunoscute în Rusia ca sisteme optice de recunoaștere a textului, iar în țările vorbitoare de engleză - ca OCR.

Astăzi, sfera de aplicare a software-ului OCR s-a extins semnificativ: la început a fost folosit mai ales în sectorul financiar și bancar, rezolvând sarcini specifice de automatizare pentru introducerea datelor personale și de sondaj, dar astăzi programele OCR sunt folosite peste tot pentru a lucra cu orice documente. Este dificil de supraestimat importanța sistemelor OCR, care au devenit software atât de necesare atât pentru computerele de birou, cât și pentru acasă.

Să le parcurgem pe scurt pe toate principalele sisteme OCR de pe piațăși evidențiază trăsăturile principale și caracteristice ale acestora.

Înainte de a începe să luăm în considerare sistemele OCR, să oferim mai întâi cel puțin o clasificare minimă a acestora pentru comoditatea unei analize ulterioare. Pe acest moment aloca sisteme OCR (Recunoaștere optică a caracterelor OCR) de asemenea sisteme ICR(Recunoaștere inteligentă a caracterelor, ICR). Pentru a simplifica oarecum esența diferențelor dintre ele, putem considera că sistemele ICR reprezintă următoarea generație în dezvoltarea sistemelor OCR. ICR utilizează capabilitățile inteligenței artificiale mult mai activ și mai serios, în special, sistemele ICR sunt adesea folosite pentru a recunoașteți textele scrise de mână, fonturile decorative instabile și, de asemenea, ca exemplu cel mai izbitor, depășirea acelorași sisteme de protecție împotriva roboților de spam - captcha ( captcha). Al treilea, încă doar nivelul teoretic al calității recunoașterii textului, este IWR(Recunoaștere inteligentă a cuvintelor, IWR), în care nu sunt citite și recunoscute caractere/puncte individuale, ci fraze întregi coerente sunt citite și recunoscute.

Există mai multe sisteme care se clasifică drept ICR. Aceasta este, în primul rând, , FineReader, OmniPage Professional, Readiris Corporate, Type Reader Desktop. Să le comparăm pe toate și să ne uităm la posibile alternative.

Produse autohtone celebre

Produse străine

Alte trei produse cunoscute, care au primit o distribuție redusă în CSI din cauza absenței totale a reprezentanților și a puținului marketing în aceste vaste teritorii chirilice, dar sunt cunoscute în Occident și merită măcar o scurtă mențiune, fie și doar pentru că de asemenea, se poziţionează ca produse de clasă ICR. În nișa recunoașterii non-chirilice, ei pot concura cu ușurință chiar și cu liderul de piață - FineReader.

Primul dintre ele este un pachet de la firma I.R.I.S. Grupul este un produs OCR foarte serios. Este suficient să spunem că din septembrie 2006, tehnologia de la compania I.R.I.S. a fost licențiat și utilizat în produsele de sisteme Adobe. Conform testelor interne realizate de Adobe însuși, această tehnologie s-a dovedit a fi cea mai de succes dintre toate cele considerate de pe piață.

Trebuie remarcat faptul că acest lucru are succes soluție terță parteși-a „îngropat” propria dezvoltare Adobe - un motor OCR nativ - care a fost furnizat de mulți ani ca parte a soluției, iar acum noul Adobe OCR este disponibil ca unul separat în alte produse Acrobat populare. Ultima versiune Readiris v12 acceptă toate versiunile de Windows și MacOS X și, în total, acceptă mai mult de 120 de limbi.

Următoarea dezvoltare majoră de la o companie americană este . Acest motor a fost dezvoltat în strânsă colaborare cu Universitatea din Nevada, Las Vegas. Acest motor se răspândește în întreaga lume sub mai multe forme simultan, de la integrarea sa în marile sisteme occidentale de gestionare a documentelor (Document Imaging Management, DIM) și terminând cu participarea la multe programe americane de procesare automată a formularelor (Servicii de procesare a formularelor, FPS).

De exemplu, în 2008 ziarul Los Angeles Times După propria testare a celui mai important OCR din lume, a ales TypeReader pentru uz intern. Aș dori să notez că acest produs disponibil atât într-o versiune desktop tradițională (Windows, MacOS, Linux), ca serviciu web corporativ, cât și sub forma unei aplicații de închiriere cloud capabilă să proceseze orice volum de text recunoscut într-un timp foarte scurt.

Soluții OCR gratuite

Google dezvoltă, de asemenea, un motor propriu interesant. este un motor OCR comercial închis inițial, care a fost creat de Hewlett-Packard, lucrând la el între 1985 și 1995. Dar după ce proiectul a fost închis și dezvoltarea sa oprită, HP și-a lansat codul ca sursă deschisă în 2005. Dezvoltarea a fost preluată imediat de Google, acordând licență pentru produsul său sub licența gratuită Apache. În acest moment, Tesseract este considerat unul dintre cele mai precise și de înaltă calitate motoare gratuite de acolo.

Este necesar să înțelegem clar că Tesseract este un OCR clasic pentru procesarea textului „brut”, adică. nu are un shell grafic pentru control convenabil proces, nici multe altele funcții suplimentare. Acesta este un utilitar obișnuit de consolă (există versiuni pentru Windows, MacOS, Linux), a cărui intrare este o imagine în format TIFF, iar rezultatul Tesseract este „text pur”. Cu toate acestea, aici nu se efectuează nicio analiză a aspectului textului sau a stilurilor de design; acesta este un proces de recunoaștere în forma sa cea mai simplă.

Pentru o mai mare comoditate de lucru, ca interfață grafică, puteți utiliza multe utilitare cu acest motor, de exemplu binecunoscutul sau . Dar aș dori totuși să remarc că calitatea C uneiForm/OpenOCR gratuit este ușor superioară celei a Tesseract, deși în multe privințe acestea sunt produse complet similare.

Pe lângă Tesseract-ul gratuit, merită menționat și. SimpleOCR este o soluție foarte demnă pentru OCR și, deși nu a fost dezvoltată din 2008, este cel puțin cu nimic inferior Tesseract. Produsul este gratuit pentru orice utilizare non-comercială și este disponibil pentru toate versiunile de Windows. Unul dintre dezavantajele puternice este că acceptă doar două limbi: engleză și franceză.

Pe lângă soluțiile tradiționale gratuite pentru desktop, există multe alternative servicii on-line, oferind o calitate gratuită a recunoașterii OCR este semnificativ mai scăzută decât omologii lor comerciali. Pentru a rezolva cu succes problemele de afaceri (și alte sarcini serioase de zi cu zi), este mai bine să vă concentrați asupra sistemelor comerciale de clasă ICR, care au fost discutate în prima jumătate a acestui articol.

Aș dori să compar metodele și spectacol, de ce am ales unul anume, dar practic este greu. În diferite imagini, anumite metode au avantajele și dezavantajele lor, „în medie” cea mai bună soluție nici, prin urmare, în Imago OCR am proiectat un teanc de filtre, fiecare dintre ele putând fi folosit în anumite cazuri, iar alegerea rezultatului va depinde de metrica calității.

Avantajele metodei includ:

  • Viteză destul de mare;
  • Calitatea parametrizabilă a rezultatului;
  • Fără neclaritate în timpul lucrului și, ca urmare, „sensibilitate” la detalii;
  • Și principala caracteristică interesantă este normalizarea nivelurilor locale de lumină.
Ultima proprietate este ilustrată perfect de imaginea din articol și este importantă pentru recunoaștere datorită posibilei neuniformități a iluminării obiectelor la fotografiere (o bucată de hârtie întoarsă spre sursa de lumină, astfel încât lumina să cadă neuniform):

Descrierea superficială a algoritmului:

  • Filtrare locală a imaginii de prag (prag laplacian) cu pragul T;
  • Transformarea cosinus discretă a imaginii rezultate;
  • Filtrarea caracteristicilor de înaltă frecvență și rezolvarea unei ecuații speciale pentru frecvențe joase și medii (Ecuația Retinex);
  • Transformată cosinus discretă inversă.
Algoritmul în sine este destul de sensibil la parametrul T, dar am folosit o adaptare a acestuia:
  • Calculăm Retinex(T) pentru T=1,2,4,8
  • Efectuarea de filtrare mediană pixel cu pixel între rezultatele Retinex
Cum poate ajuta OpenCV: există o funcție gata făcută pentru calcularea transformării cosinusului discret:
void dct(const Mat& src, Mat& dst, int flags=0); // flags = DCT_INVERSE pentru DCT invers
Și nu funcționează mai rău ca viteză decât cea similară de la libfftw, deși nu pot pretinde acest lucru în cazul general (testat pe Core i5, Core Duo).

Pentru imaginea originală, metoda de mai sus oferă un rezultat destul de frumos:

Acum înțelegem aproximativ ce ar trebui să facă prefiltrarea și avem deja un parametru care se poate modifica în mecanismul de feedback: indicele filtrului utilizat.

Aici și mai departe: de fapt, desigur, există mulți alți parametri (de exemplu, acei „magici” T = 1,2,4,8), dar pentru a nu ne deranja, nu vom vorbi despre ei acum. Sunt multe, vor apărea mențiuni despre ele în secțiunea de machine learning, dar voi omite specificul pentru a nu supraîncărca prezentarea cu numărul de parametri.

Nivel raster: binarizare

Următorul pas este obținerea unei imagini alb-negru, unde negrul va corespunde prezenței „vopselei” și albul absenței acesteia. Acest lucru se face deoarece un număr de algoritmi, de exemplu obținerea conturului unui obiect, nu funcționează cu semitonuri. Una dintre cele mai moduri simple binarizarea este filtrarea pragului (alegem t ca valoare de prag, toți pixelii cu o intensitate mai mare decât t sunt fundalul, mai puțin - „vopseaua”), dar datorită adaptabilității sale scăzute, pragul otsu sau pragul adaptiv gaussian este mai des folosit .

În ciuda adaptabilității metodelor mai avansate, acestea conțin în continuare valori de prag care determină „cantitatea” de informații de ieșire. În cazul pragurilor mai stricte, unele elemente pot fi pierdute; în cazul pragurilor „soft”, poate apărea „zgomot”.

Prag puternic Limitare slabă

Puteți încerca să ghiciți cu precizie pragurile pentru fiecare imagine, dar am luat o cale diferită - am folosit corelația dintre imaginile rezultate cu diferite praguri de binarizare adaptivă:
  • Considerăm binarizarea puternică și slabă (cu praguri date t1 și t2);
  • Împărțim imaginile într-un set de regiuni conectate pixel cu pixel ();
  • Îndepărtăm toate segmentele „slabe” care au o corelație cu cele puternice corespunzătoare care este mai mică decât cea specificată (cratio);
  • Îndepărtăm toate segmentele „slabe” de densitate scăzută (proporțiile pixelilor alb/negru sunt mai mici decât raportul bwraport specificat);
  • Segmentele „slabe” rămase sunt rezultatul binarizării.
Ca urmare În cele mai multe cazuri obținem o imagine lipsită de zgomot și fără pierderi de detalii:

Soluția descrisă poate părea ciudată, în lumina faptului că am vrut să „scăpăm” de un parametru, dar am introdus o grămadă de alții, dar ideea principală este că corectitudinea binarizării este acum asigurată dacă „real” Pragul de binarizare se încadrează în intervalul , încheiat între t1 și t2 aleși de noi (deși nu putem crește „la infinit” acest interval, există și o limitare a diferenței dintre t1 și t2).

Ideea este destul de viabilă atunci când este utilizată cu diferite metode de filtrare de prag, iar OpenCV a „ajutat” cu prezența funcțiilor de filtrare adaptive încorporate:
cv::adaptiveThreshold(imagine, strongBinarized, 255, cv::ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY, strongBinarizeKernelSize, strongBinarizTreshold); cv::threshold(imagine, otsuBinarized, otsuThresholdValue, 255, cv::THRESH_OTSU);
Dacă imaginea rezultată nu conține deloc segmente, atunci probabil că există o eroare de filtrare și merită să luați în considerare un prefiltru diferit (" Părere"; „ale” săgeți albastre din imaginea structurii motorului).

Nivel primitiv: vectorizare

Următorul pas în procesul de recunoaștere este de a converti seturi de pixeli (segmente) în primitive. Primitivele pot fi cifre - un cerc, un set de segmente, un dreptunghi (setul specific de primitive depinde de problema rezolvată) sau simboluri.

Deși nu știm cărei clasă să îi atribuim fiecărui obiect, încercăm să-l vectorizăm căi diferite. Același set de pixeli poate fi vectorizat cu succes atât ca set de segmente, cât și ca caracter, de exemplu „N”, „I”. Sau un cerc și un simbol - „O”. În această etapă, nu trebuie să știm în mod fiabil ce clasă are obiectul, dar trebuie să avem o anumită metrică a asemănării obiectului cu vectorizarea lui într-o anumită clasă. Acest lucru este de obicei rezolvat printr-un set de funcții de recunoaștere.

De exemplu, pentru un set de pixeli, vom obține un set din următoarele obiecte (nu vă gândiți la anumite numere metrice, acestea sunt date pentru a reprezenta ceea ce dorim din procesul de recunoaștere, dar în sine nu au încă sens ):

  • vectorizarea sub formă caracterul „H” cu o valoare metrică (distanță) de 0,1 (poate că acesta este H);
  • vectorizarea sub formă caracterul „R” cu o valoare metrică de 4,93 (putin probabil, dar posibil acesta este R);
  • vectorizare sub forma a trei segmente"|", "-", "|" cu o valoare metrică de 0,12 (este foarte posibil ca acestea sa fie trei segmente);
  • vectorizarea ca dreptunghi cu dimensiunile laterale x, y cu o valoare metrică de 45,4 (nu arata deloc ca un dreptunghi);
  • vectorizarea ca cerc cu valoare metrică +inf (garantat a nu fi un cerc);
Pentru a obține o listă de vectorizări, este necesar să se implementeze primitive de recunoaștere pentru fiecare clasă specifică.
Recunoașterea setului de segmente
De obicei, o zonă raster este vectorizată într-un set de segmente, după cum urmează:

Nu există un filtru de subțiere gata făcut în OpenCV, dar nu este deloc dificil de implementat. Împărțiți și în segmente (decorner), dar acest lucru este complet banal: aruncăm din zonă toate punctele care au mai mult de doi vecini. Dar aproximarea punctelor ca un set de segmente este prezentă în OpenCV și am folosit-o:
cv::approxPolyDP(curbă, approxCurve, approxEps, închis); // aproximarea curbei -> approxCurve
Un parametru important este toleranța de aproximare ( aproximativEps), la creștere, obținem ca rezultat un număr mai mare de segmente, iar la scădere, obținem o aproximare mai grosieră și, în consecință, o valoare metrică mai mare. Cum Dreapta să-l alegi?

În primul rând, depinde destul de mult de grosimea medie a liniei (în mod intuitiv - cu cât este mai mare grosimea liniei, cu atât mai puține detalii; un desen desenat cu un creion ascuțit poate fi mult mai detaliat decât unul desenat cu un marker), care este ceea ce am folosit în implementarea noastră:
approxEps = averageLineThickness * magicLineVectorizationFactor;
În al doilea rând, ținând cont de abordarea descrisă mai sus a clasificării obiectelor, este posibil să se încerce să vectorizeze segmente cu aproxEps diferite (cu un anumit pas) și deja în etapa de analiză a structurii logice să se selecteze „cel mai potrivit”.

Recunoașterea cercului
Destul de simplu:
  • Căutăm centrul cercului (media coordonatelor punctelor) - (x,y);
  • Căutăm raza (distanța medie a punctelor de la centru) - r;
  • Se calculează eroarea: distanța medie prin puncte până la un cerc cu centrul (x,y) și raza r și grosimea medieLineThickness;
  • Calculăm penalizarea suplimentară pentru întreruperi de cerc: magicCirclePenalty * (% din pauze).
După selecție magicCirclePenalty Nu au existat absolut nicio problemă cu acest cod, precum și cu recunoașterea dreptunghiului similară.
Recunoașterea caracterelor
Partea mult mai interesantă este că... Aceasta este o problemă de provocare - nu există un singur algoritm care să pretindă că are cea mai „optimă” performanță de recunoaștere. Există absolut metode simple, pe baza , există altele mai complexe, de exemplu folosind , dar niciuna nu garantează o calitate „bună” a recunoașterii.

Prin urmare, mi s-a părut destul de firesc să decidem să folosim mai multe subsisteme pentru recunoașterea caracterelor și selectarea unui rezultat agregat: dacă p1 = valoarea metrică care de algoritmul 1 zona A este recunoscută ca caracter s, și p2 = valoarea metrică care de algoritmul 2 zona A este recunoscută ca caracter s, apoi valoarea finală p = f(p1,p2). Am selectat doi algoritmi care au valori comparabile convenabil, de mare vitezăși stabilitate suficientă:

  • recunoașterea bazată pe descriptori Fourier;
  • măști de abatere pătrată a punctelor.
Recunoașterea caracterelor bazată pe descriptori Fourier
Preparare:
  • Obținerea conturului exterior al unui obiect;
  • Conversia coordonatelor punctelor de contur (x;y) în numere complexe x+iy;
  • Transformată Fourier discretă a unei mulțimi de aceste numere;
  • Respingerea părții de înaltă frecvență a spectrului.
Când se efectuează transformarea Fourier inversă, obținem un set de puncte care descrie figura originală cu un grad dat de aproximare (N este numărul de coeficienți rămase):

Operația de „recunoaștere” constă în calcularea descriptorilor Fourier pentru regiunea recunoscută și compararea acestora cu seturi predefinite responsabile pentru caracterele suportate. Pentru a obține o valoare metrică din două seturi de descriptori, este necesar să se efectueze o operație numită convoluție: d = sum((d1[i]-d2[i])*w[i], i=1,N), unde d1 și d2 sunt seturi de descriptori Fourier, iar w este vectorul de ponderi pentru fiecare coeficient (l-am obținut prin învățarea automată). Valoarea convoluției este invariabilă în raport cu scara simbolurilor comparate. În plus, funcția este rezistentă la zgomotul de înaltă frecvență (pixeli aleatori care nu schimbă „geometria” figurii).

OpenCV este destul de util în implementarea acestei metode; Există o funcție gata făcută pentru obținerea contururilor externe ale obiectelor:
cv::findContours(imagine, storage, CV_RETR_EXTERNAL);
Și există o funcție pentru calcularea transformatei Fourier discrete:
cv::dft(src, dst);
Tot ce rămâne este să implementezi convoluția și conversiile de tip intermediar, salvând un set de descriptori.

Metoda este bună pentru caracterele scrise de mână (poate pentru că altele dau rezultate de calitate inferioară împotriva ei), dar nu este potrivită pentru caracterele cu rezoluție scăzută din cauza faptului că zgomotul de înaltă frecvență, adică pixelii „extra” devin mari în relație. la întreaga imagine și începe să influențeze acei coeficienți pe care nu îi aruncăm. Puteți încerca să reduceți numărul de coeficienți comparați, dar apoi devine mai dificil să alegeți dintre simboluri mici similare. Și astfel a fost introdusă o altă metodă de recunoaștere.

Recunoașterea caracterelor pe baza măștilor de deviație pătrată
Aceasta este o soluție destul de intuitivă, care, după cum se dovedește, funcționează excelent pentru caracterele tipărite de orice rezoluție; dacă avem două imagini alb-negru de aceeași rezoluție, atunci putem învăța să le comparăm pixel cu pixel.

Pentru fiecare punct de imagine 1 se calculează penalizarea: distanta minima la punctul 2 al imaginii de aceeași culoare. În consecință, metrica este pur și simplu suma amenzilor cu un coeficient de normalizare. Această metodă va fi mult mai stabilă pe imagini cu rezoluție scăzută cu zgomot - pentru o imagine cu lungimea laterală n, pixelii individuali de până la k procente din număr nu vor „strica” metrica cu mai mult de k * n în cel mai rău caz, iar în cazuri practice - cu nu mai mult de k , deoarece în cele mai multe cazuri sunt adiacente pixelilor „corecți” ai imaginii.

Dezavantajul metodei, în prezentarea așa cum am descris-o, va fi viteza mica muncă. Pentru fiecare pixel (O(n 2)), se calculează distanța minimă până la un pixel de aceeași culoare a unei alte imagini (O(n 2)), ceea ce dă O(n 4).

Dar acest lucru poate fi tratat destul de ușor cu precalcul: să construim două măști penalty_white(x,y) și penalty_black(x,y) care vor stoca valorile precalculate ale penalităților pentru faptul că pixelul (x, y) se dovedește a fi alb sau, respectiv, negru. Apoi procesul de „recunoaștere” (adică calculul metricului) se încadrează în O(n 2):
pentru (int y = 0; y< img.cols; y++) { for (int x = 0; x < img.rows; x++) { penalty += (image(y,x) == BLACK) ? penalty_black(y,x) : penalty_white(y,x); } }
Tot ce rămâne este să stocați măști (penalty_white, penalty_black) pentru fiecare ortografie a fiecărui caracter și să le sortați în timpul procesului de recunoaștere. OpenCV practic nu ne va ajuta în implementarea acestui algoritm, dar este banal. Dar, așa cum am spus deja, imaginile comparate trebuie să fie de aceeași rezoluție, așa că pentru a le converti una în alta este posibil să aveți nevoie de o funcție:
cv::resize(temp, temp, cv::Size(size_x, size_y), 0,0, 0,0);
Dacă revenim la procesul general de recunoaștere a caracterelor, atunci, ca urmare a rulării ambelor metode, obținem un tabel de valori metrice:

Valoarea de recunoaștere nu este un element, ci întregul tabel, din care știm că cu cea mai mare probabilitate este caracterul „C”, dar poate este „0”, sau „6” (sau „O”, sau „ c”, care nu încapea pe ecran). Și dacă este o paranteză, atunci este mai probabil să fie una de deschidere decât una de închidere. Dar până acum nici măcar nu știm dacă acesta este un simbol deloc...

Nivelul primitiv: separarea

Dacă am trăi într-o lume ideală de computere super-puternice (cuantice?), atunci cel mai probabil acest pas nu ar fi necesar: avem o colecție de câteva obiecte, pentru fiecare dintre ele există un tabel de „probabilități” care determină exact ce este. Parcurgem toate elementele din tabel pentru fiecare obiect, construim o structură logică și le selectăm pe cele mai probabile (pe baza sumei metricilor obiectelor individuale) dintre cele valide. Nu e mare lucru, cu excepția, poate, a complexității exponențiale a algoritmului.

Dar, în practică, de obicei trebuie să determinați tipul de obiect implicit. Adică, alegeți o interpretare gata făcută a obiectelor din imagine și apoi poate schimbați-o ușor. De ce nu am putut selecta tipul de obiecte în pasul anterior (vectorizare)? Nu aveam suficiente informații statistice despre toate obiectele și dacă interpretăm un anumit set de pixeli izolat de întreaga imagine, determinarea în mod fiabil a semnificației acestuia devine problematică.

Aceasta este una dintre cele mai importante probleme în recunoașterea informațiilor structurale. Pentru o persoană, totul este mult mai bine cu asta decât pentru o mașină, deoarece pur și simplu nu știe să vadă pixelii individual. Și una dintre etapele inițiale ale dezamăgirii în construcție sisteme OCR este o încercare de a algoritmiza o abordare aparent umană „pas cu pas” și obținând astfel rezultate nesatisfăcătoare. Se pare că cam acum ar trebui să îmbunătățim puțin algoritmii de recunoaștere primitivă, astfel încât să „nu greșească”, și vom obține rezultate mai bune, dar există întotdeauna mai multe imagini care „rup” orice logică.

Și așa, întrebăm persoana despre ce este -
Desigur, este doar o linie curbată. Dar dacă trebuie să-l clasificați fie ca simboluri, fie ca un set de segmente de linie dreaptă, atunci ce este? Atunci este cel mai probabil fie litera „l” fie două linii drepte la un unghi (unghiul este pur și simplu desenat rotunjit). Dar cum să alegi interpretarea corectă? Mașina ar fi putut rezolva problema aproximativă la pasul anterior și ar fi putut rezolva corect cu probabilitate 1/2. Dar 1/2 este un eșec complet pentru sistemul de recunoaștere a informațiilor structurale, pur și simplu vom strica structura, nu va trece validarea, va trebui să corectăm „erori”, care într-o probabilitate fericită ar putea să nu coincidă cu adevăratul problemă. Putem obține orice.

Dar dacă ne uităm la obiectele învecinate, multe pot deveni clare:

Și chiar dacă nu ați întâlnit niciodată formule structurale în chimie, din anumite motive devine evident din această imagine că aceasta este o conexiune (o linie, o linie dreaptă sau două linii drepte cu un colț rotunjit). Vedem o imagine cu trei simboluri, vedem cât de îngrijite sunt, le estimăm dimensiunea aproximativă și înțelegem că „lucru rotunjit” nu este un simbol.

Există o altă opțiune:

Am văzut o linie care este absolut dreaptă, am văzut un simbol „ideal” stând lângă ea, obiectul nostru este similar ca mărime, deși desenat mai puțin bine. Este mai greu de spus cu siguranță aici, dar dacă știm că conexiunile ar trebui să conecteze obiectele și nu există nimic în direcția capetele obiectului nostru, atunci este puțin probabil să fie o conexiune. Și dacă ne amintim că „Cl” (clorul) este o combinație foarte probabilă de simboluri la noi domeniul subiectului, atunci da, este tot simbolul „l”.

Aici am conturat practic conturul algoritmului de separare într-un stil liber. Și acum mai formal.

Partea de prag:

  • Dacă în tabelul de metrici pentru un obiect o singură valoare este „bună” (aproape de zero), iar toate celelalte diferă cu cel puțin o constantă C, atunci o marchem cu clasa corespunzătoare.
Acest lucru este grozav, dar nu se întâmplă întotdeauna.

Pentru obiectele rămase recurgem la analiză statistică:

  • Definiţia average size potenţial simboluri și abateri de la acesta;
  • Determinarea lungimii medii potenţial linii, abatere de la acesta;
  • Determinarea curburii medii potenţial linii;
  • Determinarea grosimii medii a liniilor și simbolurilor;
  • Și alte criterii statistice, de exemplu hu momente (pe care OpenCV le poate număra de altfel).
Încă nu știm pentru fiecare obiect ce clasă are, doar ne uităm la tabelul de metrici și selectăm obiectul care este cel mai apropiat ca valoare de el - la asta mă refer prin conceptul " potenţial".

Apoi construim un arbore de clasificare, ale cărui noduri pot conține următoarele condiții: (dacă înălțimea unui obiect se află în intervalul de la înălțimea_medie_a_caracterului-1 la înălțimea_medie_a_caracterului+2 și are o curbură care depășește 3*curbatura_medie_a unei linii și lungimea sa este mai mică de 0,5*lungimea medie a liniilor), apoi a marcat ca simbol. Metoda de construire a arborilor de clasificare este bine descrisă și îmi voi permite să nu o repet.

După trecerea părții statistice, unele obiecte vor fi notate cu clase ipotetice. În majoritatea cazurilor practice - aproape toate obiectele. Dacă nu am reușit să etichetăm cel puțin jumătate dintre obiecte, atunci cel mai probabil ceva nu a mers prost cu noi (și acest lucru se întâmplă adesea pentru imaginile scrise de mână). Dar să nu „disperăm” și pur și simplu să selectăm jumătate dintre obiectele cu cele mai mici valori metrice și să le etichetăm fără a ține cont de informațiile statistice (pentru această mâzgălărie ciudată din exemplu - priviți doar tabelul cu distanțe și dacă este mai aproape lui „l”, apoi îi vom atribui simbolul „l”. Am descris deja ce probleme pot apărea în acest caz, dar aceasta este o soluție forțată).

Pentru obiectele rămase, aplicăm analiza locală:

  • Să găsim toți vecinii pentru obiectul selectat;
  • Dacă unii dintre vecini au deja clasa selectată, atunci o vom selecta pe cea mai probabilă din tabelul de probabilitate al configurațiilor locale;
  • În plus: dacă nu există alte obiecte în direcția capetelor unui obiect, atunci acesta este un simbol.
Pentru obiectele rămase, vom selecta clasa „implicit” - cea care este mai apropiată ca valoare metrică.

Ca urmare a întregului chin, putem împărți imaginea într-un set de obiecte care ar trebui să fie simboluri și o parte responsabilă de structură.

Nivel structural

Acum tot ce rămâne este să asamblați o structură finită dintr-un set de elemente. Aici, desigur, algoritmii înșiși încep să depindă foarte mult de domeniul subiectului.

Fără a intra în detalii chimice, în Imago OCR lucrăm cu imagini de molecule, care reprezintă în esență un grafic de conexiuni, la vârfurile cărora se află etichete (un set de simboluri), așa că sarcina de a asambla structura în sine este destul de banală. . Dar nu orice combinație de simboluri este o etichetă de atom validă și nu orice set de segmente poate fi folosit pentru a construi un grafic valid. Etichetele pot folosi indicele, indicele superioare, semnele de încărcare și secvențele de paranteze. Pentru o prezentare ulterioară, voi selecta punctele cele mai interesante și posibil potențial utile.

Procesarea graficului de structură
Primul pas important este obținerea efectivă a acestui grafic. După vectorizare, tot ce avem este un set de segmente disparate, fiecare dintre ele având un „început” și un „sfârșit”, pe care le-am marcat cu cercuri în imaginea structurii:


Statistic, determinăm raza medie a unei posibile lipiri și „colectăm” segmentele ale căror capete se află în această rază în vârfurile graficului:


Raza poate fi determinată astfel: pentru fiecare vârf, calculați distanța minimă până la vecinii săi și găsiți vârful histogramei. Dacă acest vârf oferă o rază mai mare decât dimensiunea medie a simbolului, atunci putem presupune că toate segmentele nu sunt conectate.

Apoi scoatem marginile prea scurte:


Marginile prea scurte sunt rezultatul vectorizării liniilor cu artefacte (îndoiri, zgomot de pixeli). Avem o dimensiune medie a simbolului; putem presupune că lungimile legăturilor mai mici decât dimensiunea simbolului sunt imposibile (cu un număr de excepții care sunt verificate într-un mod special - specificitatea chimică).

Punctele descrise mai sus vor fi utile și la recunoașterea tabelelor, de exemplu. Și avem, de asemenea, o căutare pentru mai multe margini, găsirea de „punți” (imagini plane ale muchiilor care nu se intersectează), găsirea imaginilor de „săgeți”. Este mult mai convenabil să faceți toate acestea atunci când lucrați cu structura graficului și nu cu rezultate intermediare de recunoaștere - nu este nevoie să obțineți vectorizarea „ideală”.

Asamblarea și prelucrarea etichetelor
Pentru simboluri, este necesar să le combinați în grupuri și aici se folosește o soluție similară cu „asamblarea” unui grafic. Fiecare etichetă colectată trebuie recunoscută și, din moment ce pot exista superscripte și subindice, sarcina devine mai interesantă.
În primul rând, se calculează „linia de bază” a mărcii:
Aceasta este o linie dreaptă (în esență doar o anumită valoare a liniei de bază_y), deasupra căreia se află caracterele majuscule ale etichetei și sub care se află indicii. Statisticile ne vor ajuta să stabilim bazaline_y:
  • determinarea mărimii medii a unui caracter majuscul (majoritatea caracterelor au ortografii diferite ale caracterelor majuscule și minuscule);
  • atunci când analizați fiecare marcaj specific, selectați valoarea medie a coordonatei y pentru toate caracterele a căror dimensiune este în medie.
De ce luăm media și nu maxima (linia ar trebui să treacă sub simbolurile etichetei)? Este mai stabil astfel; dacă facem o greșeală în interpretarea unui simbol ca capital, putem clasifica în mod greșit indicele ca capital, putem trage o linie sub el și, în consecință, „nu vom mai avea indici”. Alegerea mediei, pe de o parte, nu modifică semnificativ valoarea lui baseline_y în cazuri bune, iar pe de altă parte, costul erorii de alegere incorectă a caracterelor capitale scade.

Apoi recunoaștem personajele, unul câte unul. Pentru fiecare caracter calculăm:

  • % din înălțimea sa situată sub linia de bază;
  • raport cu înălțimea medie a caracterelor majuscule.
O soluție de prag cu privire la acești parametri ar fi destul de nefericită: dacă cel puțin 30% dintr-un simbol este sub linia de bază, atunci este un index. Dacă 29? În general, întregul proces de recunoaștere poate fi cel mai bine descris prin ideea unui test de rață. Dacă ceva arată ca un index, atunci cel mai probabil este un index. Și arată ca un index, dacă arată și mai puțin cu altceva.

Ce face ca un simbol să fie mai probabil un index? Cu cât este mai mic, cu atât este mai mic în raport cu linia de bază. Și numerele sunt, de asemenea, mai probabil să fie un indice. Una dintre ideile bune în recunoaștere a fost să folosim un set de modificare a unei liste de metrici (vă amintiți că pentru fiecare obiect stocăm toate obiectele posibile similare cu acesta?). Acum, la acest set de valori se adaugă și interpretări ca indice. Aceste valori metrice, copiate inițial din valorile normale, se modifică în timpul procesului de recunoaștere:

  • Dacă un simbol se află k% sub linia de bază, atunci metrica pentru a-l trata ca un indice scade de f(k) ori;
  • Dacă un simbol este cu n% mai mic în înălțime decât înălțimea medie, atunci metrica pentru interpretarea sa ca simbol a..z scade de g(n) ori.
În consecință, în procesul de recunoaștere, după aplicarea tuturor regulilor, pur și simplu selectăm interpretarea cu cea mai mică valoare metrică - acesta este simbolul câștigător, cel mai asemănător. Dar tot nu vom „uita” celelalte interpretări.
Validarea etichetei
Următorul pas după primirea interpretărilor gata făcute ale etichetelor în întregime este validarea acestora. Fiecare domeniu are propriul său subiect: pentru limba rusă aceasta este o verificare folosind dicționare, pentru un număr de identificatori aceasta poate fi sume de control, iar în chimie - un set de elemente permise. Pentru a implementa această parte anume, păstrăm în continuare un set complet de alternative pentru fiecare obiect.

Eticheta noastră este formată din două caractere: (c1, c2)
Mai mult, c1 este „Y” cu o valoare metrică de 0,1 și „X” cu o valoare metrică de 0,4;
c2 este „c” cu o valoare metrică de 0,3 și „e” cu o valoare metrică de 0,8
Aș putea doar să scriu că marca noastră este Y c. Dar marca Y c invalid. Pentru a obține o etichetă validă, putem enumera posibilele alternative și selectam una validă. Printre cele valide se numără cea a cărei valoare totală a metricilor este minimă.
În acest caz, din toate cele 4 opțiuni, doar una este valabilă " Xe„, dând o metrică finală de 1,2.

Se pare că am rezolvat problema, acum valoarea etichetei este valabilă. Dar dacă autorul imaginii a vrut să folosească „Yc”, contrar corectitudinii. Pentru a înțelege acest lucru, scădem noua valoare metrică (1,2) din cea veche (0,4) și interpretăm diferența rezultată (0,8). Poate fi comparat cu un anumit prag, iar corectarea poate fi interzisă dacă îl depășește. Dar cum să alegi acest prag?

Învățare automată

Cum alegeți în general numeroasele constante și restricții de prag utilizate în procesul de recunoaștere? Valorile inițiale, desigur, poți alege pe baza bunului simț, dar vor fi optime?

Soluția la astfel de probleme poate fi încredințată parțial mașinii - pentru a efectua modificări aleatorii ale parametrilor și pentru a le selecta pe cele care dau in medie cel mai bun rezultat. Modificările aleatorii pot fi sistematizate folosind modificarea

Sistemele de recunoaștere optică a caracterelor (OCR) sunt concepute pentru a introduce automat documente tipărite într-un computer.

FineReader este un sistem optic de recunoaștere a textului omnifont. Aceasta înseamnă că vă permite să recunoașteți textele tastate în aproape orice font fără instruire prealabilă. O caracteristică specială a programului FineReader este acuratețea sa ridicată de recunoaștere și sensibilitatea scăzută la defectele de imprimare, care este obținută prin utilizarea tehnologiei de „recunoaștere adaptivă holistică vizată”.

Procesul de introducere a unui document într-un computer poate fi împărțit în două etape:

1. Scanare.În prima etapă, scanerul joacă rolul „ochiului” computerului dvs.: „vizează” imaginea și o transmite computerului. În acest caz, imaginea rezultată nu este altceva decât un set de puncte negre, albe sau colorate, o imagine care nu poate fi editată în niciun editor de text.

2. Recunoaştere. Procesarea imaginii prin sistem OCR.

Să ne uităm la al doilea pas mai detaliat.

Procesarea imaginii de către sistemul FineReader include analiza imaginii grafice transmise de scaner și recunoașterea fiecărui caracter. Procesele de analiză a aspectului paginii (determinarea zonelor de recunoaștere, tabele, imagini, evidențierea liniilor și caracterelor individuale din text) și recunoașterea imaginilor sunt strâns legate: algoritmul de căutare bloc folosește informații despre textul recunoscut pentru o analiză mai precisă a paginii .

După cum sa menționat deja, recunoașterea imaginii se realizează pe baza tehnologiei „recunoașterii adaptive holistice vizate”.

Integritate- un obiect este descris ca un întreg folosind elemente semnificative și relații dintre ele.

Concentrează-te- recunoașterea este construită ca un proces de prezentare și testare intenționată a ipotezelor.

Adaptabilitate- capacitatea sistemului OCR de a auto-învăța.

În conformitate cu aceste trei principii, sistemul înaintează mai întâi o ipoteză despre obiectul de recunoaștere (un simbol, o parte a unui simbol sau mai multe simboluri lipite), apoi o confirmă sau infirmă, încercând să detecteze secvenţial toate elementele structurale și relaţiile. conectându-le. Fiecare element structural conține părți care sunt semnificative pentru percepția umană: segmente, arce, inele și puncte.

Urmând principiul adaptabilității, programul se „ajustează”, folosind experiența pozitivă dobândită de la primele simboluri recunoscute cu încredere. Căutarea direcționată și luarea în considerare a contextului fac posibilă recunoașterea imaginilor rupte și distorsionate, făcând sistemul rezistent la posibile defecte de scriere.

Ca rezultat al muncii tale, textul recunoscut va apărea în fereastra FineReader, pe care îl poți edita și salva în formatul cel mai convenabil pentru tine.

Caracteristici noi ale abbyy FineReader 7.0

Precizia recunoașterii

Precizia recunoașterii a fost îmbunătățită cu 25%. Documentele cu machete complexe sunt mai bine analizate și recunoscute, în special cele care conțin secțiuni de text pe un fundal colorat sau un fundal format din puncte mici, documente cu tabele complexe, inclusiv tabele cu separatoare albe, tabele cu celule colorate

ÎN versiune noua S-au adăugat dicționare specializate pentru engleză și germană, inclusiv termenii juridici și medicali cei mai des utilizați. Acest lucru vă permite să atingeți un nivel calitativ nou în recunoașterea documentelor legale și medicale.

Suport de formatXMLși integrarea cuMicrosoftBirou

A apărut în FineReader nou format salvare - Microsoft Word XML. Acum utilizatorii noii versiuni de Microsoft Office 2003 vor putea lucra cu documente recunoscute de FineReader, profitând de toate avantajele formatului XML!

Integrarea FineReader cu Microsoft Word 2003 vă permite să combinați capabilitățile puternice ale acestor două aplicații pentru procesarea textului recunoscut. Veți putea verifica și edita rezultatele recunoașterii folosind instrumente familiare Word, în timp ce verificați simultan textul transferat în Word cu imaginea originală- fereastra Zoom FineReader se deschide direct în fereastra Word.

Noile funcții îți vor face munca mai convenabilă. Când creați un document Word, puteți apela FineReader, recunoașteți textul și introduceți-l în locul documentului unde se află cursorul, adică puteți colecta cu ușurință informații din diferite surse de hârtie sau fișiere PDF într-un singur document. Rezultatele recunoașterii pot fi acum trimise prin e-mail ca atașament în oricare dintre formatele de salvare acceptate.

Performanta imbunatatitaFineReaderCuPDFdocumente

Calitatea recunoașterii fișierelor PDF s-a îmbunătățit semnificativ. Majoritatea documentelor conțin text în plus față de imaginea paginii. FineReader 7.0 poate extrage acest text și îl poate utiliza pentru a verifica rezultatele și pentru a îmbunătăți calitatea recunoașterii.

Acum puteți edita documente PDF recunoscute în fereastra editorului FineReader: modificările efectuate vor fi salvate în oricare dintre modurile de salvare a fișierelor PDF acceptate în program.

Formatul fișierelor PDF create de FineReader este optimizat pentru publicarea lor pe Internet - utilizatorul va putea vizualiza conținutul primelor pagini în timp ce restul documentului este descărcat.

Noi opțiuni de salvare

Nou format pentru salvarea rezultatelor recunoașterii - MicrosoftPower point- vă permite să creați rapid noi prezentări sau să le editați pe cele existente.

Când salvați în MicrosoftCuvânt Dimensiunea fișierului rezultat a fost redusă, păstrarea formatării documentelor cu diverși delimitatori a fost îmbunătățită și au apărut noi opțiuni pentru salvarea imaginilor.

Afișare îmbunătățită a elementelor de aspect complexe la salvare

V HTML, de exemplu, împachetarea textului în jurul imaginilor nedreptunghiulare. În plus, dimensiunea fișierului HTML a fost redusă, ceea ce este foarte important pentru publicarea documentelor pe Internet.

Ușurință în utilizare

Actualizat interfață de utilizator intuitivă. A devenit mai convenabil să lucrezi cu setări profesionale. Barele de instrumente de editare au fost mutate în fereastra în care sunt afișate rezultatele recunoașterii. Au apărut instrumente convenabile pentru gestionarea ferestrelor FineReader: de exemplu, puteți seta un nivel convenabil de mărire în fiecare fereastră.

Actualizat ghid practicîmbunătățirea calității recunoașterii va ajuta un utilizator începător să înceapă rapid, iar un utilizator mai experimentat va putea configura cel mai bine programul pentru a obține rezultate excelente atunci când lucrează cu orice tip de documente.

Oportunități profesionale

Acum în versiune FineReaderProfesionalEdiție acele caracteristici care anterior erau disponibile numai pentru utilizatorii versiunii au devenit disponibile CorporativEdiție:

Recunoaștere îmbunătățită coduri de bare, Recunoașterea codurilor de bare bidimensionale PDF-417 este acceptată.

Instrument de împărțire a imaginii. Cu acesta puteți împărți imaginile în zone și puteți salva fiecare zonă ca o pagină separată a pachetului. Acest lucru facilitează recunoașterea mai multor cărți de vizită scanate împreună, cărți sau imprimări ale diapozitivelor de prezentare PowerPoint.

Căutare morfologică. Orice pachet creat în FineReader poate fi folosit ca bază de date mică

cu posibilitatea de căutare morfologică full-text. Printre toate paginile recunoscute ale pachetului, puteți găsi acele pagini care conțin cuvintele specificate în toate formele lor gramaticale (pentru 34 de limbi cu suport pentru dicționar).

Suport procesorIntelfolosind tehnologiaHiper- Filetat. Utilizarea acestei tehnologii poate crește semnificativ productivitatea, ceea ce este deosebit de important dacă sarcina este de a recunoaște un număr mare de documente.

FineReader 7.0 introduce și alte funcții profesionale:

Scanare față-verso. Scanarea unui document cu o imprimare

cu text pe ambele fețe folosind un scanner care acceptă această opțiune, veți primi imagini cu conținutul fiecărei fețe sub forma a două pagini separate ale pachetului. Dacă trebuie să scanați doar o parte a unui document, puteți dezactiva această opțiune.

Deschiderea fișierelor grafice de format este acceptată JPEG 2000 și salvarea în acest format.

ReţeaposibilitățilorversiuniFineReader Corporate Edition

Toate caracteristicile instalării și utilizării FineReader Corporate Edition într-o rețea corporativă sunt descrise în detaliu în Ghidul administratorului de sistem, pe care îl puteți găsi în subfolder Administrator" sGhid folderele serverului unde a fost instalat FineReader.

Îmbunătățiri majore față de versiunea anterioară:

Suport pentru metode de bază de instalare automată de la un server la stații de lucru. FineReader Corporate Edition acceptă toate metodele principale de instalare automată într-o rețea locală: folosind Active Directory, Microsoft Systems Management Server sau folosind linia de comandă.

Lucrul cu dispozitive multifuncționale, inclusiv cele de rețea. Dispozitivele multifuncționale care combină funcțiile unui scanner, imprimantă, copiator și fax devin din ce în ce mai populare. Acum nu este necesar să instalați fiecare angajat cu propriul său scaner - unul este suficient dispozitiv puternic, cu care lucrează toți utilizatorii organizației. FineReader poate funcționa cu astfel de dispozitive, atât conectate la o stație de lucru, cât și în rețea. Setările speciale ale programului permit utilizatorului să deschidă automat imaginile scanate de oriunde din rețeaua locală sau de pe un server FTP și să le recunoască

Diverse modele de licențiere în volum. Pe lângă acordarea de licențe bazată pe numărul de utilizatori concurenți, au devenit disponibile și alte metode de licențiere. Puteți alege varianta care se potrivește cel mai bine nevoilor dvs.

LicențăAdministrator- un instrument de gestionare a licențelor în rețea. ÎN FineReaderCorporativEdiție a apărut un utilitar convenabil de gestionare a licențelor (License Manager). Ajută la urmărirea utilizării FineReader pe stațiile de lucru, la rezervarea licențelor pentru stațiile de lucru și la adăugarea de noi licențe.

Orice informație scanată este un fișier grafic (imagine). În consecință, textul scanat nu poate fi editat fără o traducere specială în format text. Această traducere se poate face folosind sisteme de recunoaștere optică a caracterelor (OCR).

Pentru a primi o copie electronică (gata pentru editare). document tipărit Programul OCR trebuie să efectueze o serie de operațiuni, printre care se numără următoarele:

1. Segmentarea- „imaginea” primită de la scaner este împărțită în segmente (textul este separat de grafică, celulele tabelului sunt împărțite în bucăți separate etc.).

2. Recunoaştere- textul este convertit din formă grafică în formă text obișnuită.

3. Verificarea ortografică și editarea - sistemul intern de verificare ortografică verifică și corectează funcționarea sistemului de recunoaștere (cuvintele și simbolurile controversate sunt evidențiate color, utilizatorul este informat despre „caracterele recunoscute incert”)

4. Conservare- înregistrarea documentului recunoscut într-un fișier formatul necesar pentru editare ulterioară în programul corespunzător.

Operațiunile de mai sus în majoritatea sistemelor OCR pot fi efectuate atât automat (folosind un program expert) cât și manual (separat).

Sistemele moderne OCR recunosc textele tastate fonturi diferite; să lucreze corect cu texte care conțin cuvinte în mai multe limbi; recunoaște tabele și imagini; vă permit să salvați rezultatul într-un fișier în format text sau tabel etc.

Exemple de sisteme OCR includ CuneiForm de la Cognitive și FineReader de la ABBYY Software.

sistem OCR FineReader eliberat în versiuni diferite(Sprint, Home Edition, Professional Edition, Corporate Edition, Office) și toate acestea, de la cele mai simple la cele mai puternice, au o interfață foarte convenabilă și, de asemenea (în funcție de modificare) au o serie de avantaje care îi deosebesc de programe similare.

De exemplu, FineReader Professional Edition (FineReader Pro) are următoarele funcționalități:

acceptă aproape două sute de limbi (chiar și limbaje antice și limbaje de programare populare);

recunoaște grafice, tabele, documente pe formulare etc.;

păstrează complet toate caracteristicile de formatare a documentului și designul lor grafic;

pentru textele care folosesc fonturi decorative sau conţin Simboluri speciale(de exemplu, matematic), este furnizat modul „Recunoaștere cu antrenament”, în urma căruia este creat un standard de caractere găsit în text pentru utilizare ulterioară în recunoaștere;

Sfârșitul lucrării -

Acest subiect aparține secțiunii:

Informații: proprietăți ale informațiilor, cantitatea de informații, unități de măsură - 13

Subiect și concepte de bază tehnologia Informatiei.. informatizare societate informaţională şi cultura informaţiei.. tehnologii informatice informatice si clasificarea acestora..

Dacă aveți nevoie de material suplimentar pe această temă, sau nu ați găsit ceea ce căutați, vă recomandăm să utilizați căutarea în baza noastră de date de lucrări:

Ce vom face cu materialul primit:

Dacă acest material ți-a fost util, îl poți salva pe pagina ta de pe rețelele sociale:

Toate subiectele din această secțiune:

Rolul informatizarii in societatea moderna
Fluxurile de informații sunt în continuă creștere, iar o barieră informațională apare inevitabil atunci când complexitatea sarcinilor de procesare a fluxurilor de informații depășește capacitățile umane. Omul fiind principalul

Informatica ca stiinta
După cum se știe, o trăsătură caracteristică a secolelor 20 și 21. este stăpânirea umanității echipamente informatice, care a intrat atât de strâns atât în ​​sfera producției, cât și în viața de zi cu zi care acum lucrează

Tipuri de informații
Informațiile pot exista sub formă de: texte, desene, desene, fotografii; lumina sau semnale sonore; unde radio; impulsuri electrice și nervoase

Transferul de informații
Informația este transmisă sub formă de mesaje de la o sursă de informații către receptorul acesteia printr-un canal de comunicare între ele. Este

Cantitatea de informații
Câte informații sunt conținute, de exemplu, în textul romanului „Război și pace”, în frescele lui Rafael sau în codul genetic uman? Știința nu oferă un răspuns la aceste întrebări și, după toate probabilitățile,

Procesarea datelor
Informațiile pot fi: create; transmite; percepe; utilizare; tine minte; Accept;

Fundamentele aritmetice ale tehnologiei informației
Un sistem numeric este un set de tehnici și reguli prin care numerele sunt scrise și citite. Există sisteme numerice poziționale și nepoziționale

Generarea numerelor întregi în sisteme de numere poziționale
În fiecare sistem numeric, cifrele sunt ordonate în funcție de semnificația lor: 1 este mai mare decât 0, 2 este mai mare decât 1 etc. Promovarea unei cifre se referă la înlocuirea acesteia cu următoarea cea mai mare.

Sisteme numerice utilizate pentru a comunica cu un computer
Pe lângă zecimală, sunt utilizate pe scară largă sistemele cu o bază care este o putere întreagă de 2 și anume: binare (se folosesc cifrele 0, 1); opt

Temeiul juridic al informatizării în Republica Belarus
În era informațională, Republica Belarus acordă o mare atenție organizării unei civilizații piata informatiilor. Acest lucru este dovedit de următoarele documente adoptate: - legi:

Suport tehnic al tehnologiilor informaționale
Suport tehnic - un set de mijloace tehnice destinate exploatării Sistem informatic. Este selectat în funcție de volumul și complexitatea problemelor rezolvate la întreprindere

Istoria dezvoltării tehnologiei informatice
Dezvoltarea rapidă a tehnologiei de calcul digital (CT) și apariția unei științe despre principiile construcției și proiectării sale au început în anii 40. secolul XX, când baza tehnică a VT a devenit electronică și

Principiile structurii și funcționării computerelor de John von Neumann
Majoritatea calculatoarelor moderne funcționează pe baza unor principii formulate în 1945 de un om de știință american de origine maghiară, John von Neumann. 1. Principiul codificării binare

Componente și periferice PC de bază
Din punct de vedere structural, un PC este format dintr-o unitate de sistem, monitor, tastatură, mouse și dispozitive externe (periferice). Unitate de sistem(corpul) este o cutie din metal și plastic

Procesor și principalele sale caracteristici
Cea mai importantă componentă a oricărui computer este procesorul acestuia (microprocesor) - un dispozitiv de procesare a informațiilor controlat de software, realizat sub forma unuia sau mai multor mari sau super-dimensionate.

Dispozitive de memorie externe pentru PC
Dispozitivele sunt folosite pentru a stoca programe și date pe un computer. memorie externa- dispozitive de stocare. În raport cu computerul, acestea pot fi externe și încorporate (interne

Dispozitive de intrare/ieșire a imaginilor 3D
Una dintre direcțiile în dezvoltarea tehnologiei informației este dezvoltarea dispozitivelor care permit lucrul cu imagini tridimensionale. Scaner 3D - un dispozitiv care analizează

Configurare PC
Funcționalitatea unui computer este determinată de configurația sa - compoziția și caracteristicile principalelor sale dispozitive: procesor, memorie cu acces aleator, hard disk, unități CD/DVD, monitor, video

Setări care afectează performanța computerului
Performanța PC-ului este cea mai importantă caracteristică a acestuia. Toți factorii și parametrii care afectează performanța PC-ului pot fi împărțiți în general în software și hardware. Influență

Tendințe în dezvoltarea tehnologiei de calcul
Potrivit experților, în primul deceniu al secolului XXI. Importanța software-ului va crește, iar problemele de compatibilitate și securitate a acestuia vor crește. Printre sisteme de operare

Principiul software al controlului computerului
Un computer este un instrument universal pentru rezolvarea diferitelor probleme de conversie a informațiilor, dar versatilitatea sa este determinată nu atât de hardware, cât de instalare.

OS
Un sistem de operare (OS) este un set de programe concepute pentru a gestiona încărcarea, lansarea și execuția altor programe de utilizator, precum și pentru a programa și gestiona computerele.

sistem de operare Windows
Microsoft Corporation a început să dezvolte familia de sisteme de operare Windows încă de la sfârșitul anilor 80 ai secolului trecut. Astăzi putem observa următoarele sisteme de operare ale acestei familii: Windows 3.0 / 3.1 / 3.

Sistem de fișiere Windows
Nucleul sistemului de operare este un modul care asigură managementul fișierelor - sistemul de fișiere. Sarcina principală Sistemul de fișiere- asigurarea interactiunii programului

obiecte Windows
Unul dintre conceptele de bază ale Windows este un obiect, proprietățile sale și acțiunile care pot fi efectuate asupra obiectului și pe care obiectul însuși le poate efectua. Principal obiecte Windows sunt:

Interfața grafică Windows și elementele acesteia
După pornire Windows Pe ecran apare un desktop electronic, pe care sunt plasate obiecte grafice - pictograme (pictograme) foldere și fișiere, comenzi rapide etc. Pictograme fișiere de document

Configurarea sistemului de operare Windows
Configurarea sistemului de operare Windows poate fi împărțită în două tipuri: 1. Configurarea interfeței și elementelor panoului de control - acestea pot fi făcute de orice utilizator. 2. Modificările sunt ascunse

Programe de service
Programe de service extinde capacitățile sistemului de operare pentru a menține sistemul și pentru a asigura confortul utilizatorului. Această categorie include sistemele întreținere, software

Viruși de computer și instrumente antivirus
Virus de calculator este un program care vizează existența și reproducerea într-un fișier datorită modificării neautorizate a acestuia, i.e. infecție, precum și efectuarea de acțiuni nedorite

Arhivare
Scopul arhivării este de a asigura o plasare mai compactă a informațiilor pe disc, precum și de a reduce timpul și, în consecință, costul transmiterii informațiilor prin canalele de comunicație în rețelele de calculatoare.

Caracteristicile generale și funcționalitatea programului de arhivare WinRAR 3.3
WinRAR este o versiune pe 32 de biți a arhivatorului RAR pentru Windows, un instrument puternic pentru crearea și gestionarea fișierelor de arhivă. Există două versiuni de RAR pentru Windows: 1. Versiunea de comandă

Software de instrumentare
La instrumental software includ: sisteme de programare - pentru dezvoltarea de noi programe, de exemplu, Pascal, BASIC. Acestea includ de obicei: editare

tampon clipboard
Deja în primul versiuni Windows a fost implementat un buffer încorporat pentru stocarea intermediară a datelor, Clipboard, care este întotdeauna activ și disponibil pentru toate aplicațiile Windows.

Tehnologia DDE
Pentru schimbul de date între aplicații se poate folosi tehnologia DDE (Dynamic Data Exchange - dynamic data exchange), a cărei esență este aceea că datele introduse prin buffer

Tehnologia OLE
Tehnologia Object Linking and Embedding are mai multe funcționalități, iar dacă aplicația acceptă OLE, atunci ea însăși realizează schimbul de date prin e-mail.

Tendințele sistemelor de operare
Principalele direcții de dezvoltare a sistemelor de operare sunt următoarele: 1. Extensibilitate - capacitatea de a introduce funcții suplimentare fără a distruge integritatea sistemului (rețineți sistemul de operare Linux).

Prelucrarea informatiei pe calculator
Există multe opțiuni (forme organizaționale) ale proceselor tehnologice de prelucrare a informațiilor. De obicei proces tehnologic prelucrarea informaţiei cu ajutorul unui calculator include

Tehnologii și sisteme de prelucrare a informațiilor tabelare (procesoare de tabel)
Procesoare de masă- Acest sisteme software pentru gestionarea foilor de calcul. Foaie de calcul (ET) - remediu universal pentru a automatiza calculele pe mari

Caracteristicile generale și funcționalitatea Microsoft Excel 2003
Se pot distinge următoarele funcţionalitate procesor de cuvinte Microsoft Excel 2003: construirea tabelelor și salvarea lor pe suport informatic, lucrul cu șabloane; Loc de munca

Tehnologii și sisteme de prelucrare a informațiilor grafice (grafică pe computer)
Grafica pe computer este unul dintre tehnologii moderne crearea şi prelucrarea diverselor imagini folosind hardware şi software calculator. Calculator

Sisteme de grafică pe computer și funcționalitatea acestora
Sistemele actuale grafica pe computer(pachete programe de aplicație, lucrând cu imagini grafice) pot fi, de asemenea, clasificate în diferite moduri, de exemplu:

Formate grafice
Format fisier grafic(format grafic) este o colecție de informații despre o imagine și o metodă de înregistrare a acesteia într-un fișier. Datele grafice, de regulă, ocupă o cantitate mare de spațiu și

Caracteristicile generale și funcționalitatea programului Corel DRAW
CorelDRAW este un pachet software orientat pe obiecte pentru lucrul cu grafica vectoriala. Termenul „orientat pe obiect” trebuie înțeles în sensul că toate operațiunile

Caracteristicile generale și funcționalitatea programului Adobe PhotoShop
PhotoShop este un program pentru designeri profesioniști și pentru toți cei implicați în procesare imagini grafice. Vă permite să procesați și să corectați imaginile introduse în computer

Tehnologii și sisteme pentru crearea de prezentări dinamice
O prezentare (un film de diapozitive pe o anumită temă, realizat în același stil și stocat într-un singur fișier) este document electronic conținut multimedia complex cu capacități

Sisteme de creare a prezentărilor și funcționalitatea acestora
Piața pachetelor pentru crearea de prezentări se dezvoltă în două direcții: 1. Instrumente pentru crearea de prezentări pentru utilizatori neprofesioniști (de exemplu, PowerPoint de la Microsoft, Corel Pres

Caracteristicile generale și funcționalitatea Microsoft PowerPoint 2003
Sistem de creație Prezentări PowerPoint- este o componentă Microsoft Officeși este destinat creării de materiale de prezentare sub formă de diapozitive și afișarea lor pe hârtie, ecran, film transparent

Conceptul și istoria dezvoltării rețelelor de calculatoare
O rețea de calculatoare (calculatoare) este o colecție de calculatoare (calculatoare) interconectate prin canale de transmisie a datelor și care oferă utilizatorilor un mijloc de schimb de informații și de numărare.

Rețele locale de calculatoare
Principala caracteristică distinctivă a rețelelor locale este un singur canal de transmisie de date de mare viteză pentru toate computerele și o probabilitate scăzută de apariție a erorilor în echipamentele de comunicație.

Tehnologii și echipamente de bază ale rețelelor locale
Pentru a organiza o rețea locală sunt necesare instrumente tehnice, software și informaționale. Mijloacele tehnice ale rețelei includ: 1. Calculatoare, caracteristici tehnice

Internet global
Internetul (Internet) este o rețea globală de calculatoare, care este o asociație mondială de rețele de calculatoare eterogene care formează un singur spațiu de informații datorită utilizării

Adresarea computerelor de pe Internet
Rutarea între rețele locale efectuate în conformitate cu adresele IP găsite în antetul datagramei. Adresa IP este atribuită de administratorul de rețea în timpul configurării computerului

Componente structurale și protocoale de nivel de aplicație ale Internetului
O pagină web este un document hipertext în format .html - cea mai mică unitate a World Wide Web. Poate conține text, ilustrații grafice, multimedia și alte obiecte și, cel mai important

Conceptul de algoritm și tipuri de procese algoritmice
Orice problemă înainte de a fi rezolvată pe computer necesită o pregătire oficială, inclusiv un set de decizii privind compoziția și conținutul datelor de intrare și de ieșire, precum și proceduri de conversie a intrărilor din

Instrumente de programare
Instrumentele de programare sunt o colecție de produse software, oferind tehnologie pentru dezvoltarea, depanarea și implementarea de noi produse software în curs de creare. Ele sunt împărțite în

Bază de date
În prezent, termenii bază de date (DB) și sistem de gestionare a bazelor de date (DBMS) sunt utilizați, de regulă, în raport cu bazele de date informatice. În sens general, acest termen poate fi aplicat

Facturi Produs
Număr factură Cod cumpărător Număr factură Cantitate produs

Modele ierarhice
Într-un model ierarhic, datele sunt organizate într-un arbore. Vârfurile unui astfel de copac sunt situate la diferite niveluri. Grupurile de înregistrări din această structură sunt situate în o anumită secvență, Cum

Modele de rețea
ÎN model de rețea datele sunt prezentate sub formă de înregistrări care sunt conectate între ele după anumite reguli și formează o rețea (Fig. 2.5). Datele din structura rețelei sunt egale. Exemplu

Principalele funcții ale bazei de date
Există un număr mare de programe care sunt concepute pentru a structura informațiile, a le plasa în tabele și a manipula datele existente - astfel de programe se numesc SU

Model de date relaționale
Una dintre cele mai naturale moduri de a prezenta datele este un tabel bidimensional. Pe de altă parte, relațiile dintre date pot fi prezentate și sub formă de tabele bidimensionale. De exemplu,

Caracteristici de acces la baza de date
Aplicația Access este un SGBD relațional care acceptă toate instrumentele și capabilitățile de procesare a datelor inerente modele relaționale. În acest caz, informațiile care trebuie stocate în

Termenii bazei de date relaționale
· Tabel - informații despre obiecte de același tip (de exemplu, despre clienți, comenzi, angajați) sunt prezentate sub formă de tabel. · Atribut - stocat într-un câmp (coloană) al tabelului. Acest

Etapele proiectării bazei de date
· Determinarea scopului bazei de date. · Determinați ce date sursă (tabele) va conține baza de date. · Determinați câmpurile care vor fi incluse în tabele și selectați câmpurile care conțin unic