Nemokama JavaScript biblioteka, skirta išskirti tekstą iš nuskenuotų vaizdų ir formų
Atviro kodo optinio simbolių atpažinimo (OCR) JavaScript biblioteka, skirta išskirti tekstą iš juodai baltų nuskenuotų vaizdų ir dokumentų, su vaizdų išankstiniu apdorojimu ir šablonų palaikymu žiniatinklio arba Node.js programose.
Šiuolaikiniame skaitmeniniame pasaulyje optinio simbolių atpažinimo (OCR) technologija atlieka svarbų vaidmenį transformuojant nuskenuotus vaizdus, ranka rašytas pastabas ar spausdintus dokumentus į redaguojamus ir ieškomus duomenis. JavaScript kūrėjams, ieškantiems lengvo ir atviro kodo sprendimo, Guten OCR siūlo patrauklų pasirinkimą. Ši JavaScript pagrindu veikianti OCR variklis sukurtas paprastumo principu, todėl puikiai tinka OCR funkcijų integravimui tiesiai į naršyklės arba Node.js programas. Bibliotekoje yra keletas svarbių funkcijų, tokių kaip simbolių atpažinimas naudojant šablonus, vaizdo slenkstinis apdorojimas ir binarizavimas, simbolių segmentavimas, šablonų atitikimas ir teksto surinkimas, modulinių kodo bazės palaikymas ir t.t. Ji koncentruojasi į spausdinto teksto atpažinimą iš juodai baltų nuskenuotų dokumentų ir yra geriausiai pritaikytas gerai suformatuotam tekstui, pavyzdžiui, knygoms ar formoms.
Guten OCR yra atviro kodo JavaScript OCR variklis, sukurtas Gutenye. Skirtingai nuo sunkių OCR įrankių, kuriems reikia išorinių priklausomybių ar išsamios konfigūracijos, Guten OCR parašytas visiškai JavaScript kalba, todėl gali veikti žiniatinklio naršyklėje arba serveryje su Node.js. Biblioteka naudoja pagrindines vaizdo apdorojimo technikas, kad segmentuotų simbolius ir identifikuotų juos naudojant simbolių šablonų atpažinimo sistemą. Nors ji dar nesugeba konkuruoti su komerciniais OCR varikliais, tokiais kaip Tesseract, daugiažodžiu ar ranka rašytu tekstu, jos paprastumas ir lankstumas daro ją puikiu pasirinkimu edukaciniams projektams, proof‑of‑concept demonstracijoms arba įterptoms OCR funkcijoms pritaikytose žiniatinklio programose. Skirtingai nuo Tesseract ar kitų didesnių variklių, Guten OCR yra tyčiai supaprastintas ir orientuotas į pagrindines funkcijas – todėl tai puikus pradinio lygio įrankis tiems, kurie nori suprasti, kaip OCR veikia „užkulisiuose“.
Pradžia dirbant su Guten OCR
Rekomenduojamas būdas įdiegti Guten OCR yra naudojant Brew. Prašome naudoti šią komandą sklandžiam įdiegimui
Įdiegti Guten OCR per Brew
brew install git-lfs Įdiegti Guten OCR per GitHub
git clone git@github.com:gutenye/ocr.git Taip pat galite įdiegti rankiniu būdu; atsisiųskite naujausius leidimo failus tiesiai iš GitHub saugyklos.
Vaizdo išankstinis apdorojimas prieš OCR operacijas
Atviro kodo Guten OCR biblioteka parašyta visiškai JavaScript kalba, todėl ji veikia tiek naršyklėje, tiek Node.js aplinkoje. Joje yra įtaisytos vaizdo išankstinio apdorojimo funkcijos, skirtos pagerinti atpažinimo tikslumą. Ji palaiko vaizdo binarizavimą (konvertavimą į juodai baltą), triukšmo mažinimą, iškraipymo koregavimą ir dar daugiau. Žemiau pateiktas pavyzdys rodo, kaip kūrėjai gali taikyti kelis vaizdo išankstinio apdorojimo žingsnius prieš atliekant OCR operaciją su vaizdais.
Kaip taikyti vaizdo išankstinį apdorojimą prieš OCR operaciją naudojant JavaScript biblioteką?
const { preprocess } = require('guten-ocr');
// Apply multiple preprocessing steps
const processedImage = preprocess(imageData, [
'grayscale', // Convert to grayscale
'binarize', // Convert to black and white
'deskew', // Correct skew
'denoise' // Reduce noise
]);
// Then perform OCR on the processed image
ocr.recognize(processedImage).then(/* ... */);
Simbolių atpažinimas naudojant šablonus
JavaScript biblioteka Guten OCR suteikia pilną palaikymą OCR operacijoms naudojant šablonus JavaScript programose. Guten OCR širdyje yra šablonų atitikimo sistema. Vietoj mašininio mokymo modelio, ji naudoja iš anksto apibrėžtus simbolių šablonus. Tai daro sistemą greitesnę ir lengviau suprantamą, tačiau jautresnę šriftų ir išdėstymo nuoseklumui. Norint atlikti šią užduotį, biblioteka atvaizduoja kiekvieną simbolį (A–Z, a–z, 0–9 ir t.t.) drobėje, o po to binarinė matrica kiekvienam simboliui tampa šablonu. Analizuojant vaizdą, biblioteka lygina vaizdo segmentus su šiais šablonais, kad rastų geriausią atitikmenį. Tai atliekama naudojant vertikalių ir horizontalių linijų skenavimą, siekiant rasti ribinius laukus.
Simbolių segmentavimas naudojant OCR biblioteką
Atviro kodo JavaScript biblioteka Guten OCR leidžia programų kūrėjams lengvai atlikti simbolių segmentavimą. Kai vaizdas yra binarizuotas, sekantis žingsnis – segmentuoti atskirus simbolius. Guten OCR skenuoja eiles ir stulpelius, kad aptiktų sritis su tankiais juodais pikseliais, atskirdama jas į potencialius simbolius. Žemiau pateiktas pavyzdys rodo, kaip programų kūrėjai gali atlikti simbolių segmentavimą naudojant JavaScript OCR biblioteką.
Kaip atlikti simbolių segmentavimą naudojant JavaScript biblioteką?
const segment = require('guten-ocr/segment');
const boxes = segment(binarized); // returns array of [x, y, width, height]