OCR PDF-ide jaoks

Allikasõlm: 879686

Sissejuhatus

Alates arvutite laialdasest kasutamisest 1970. aastatel, millele järgnes PDF-ide leiutamine 1993. aastal, on tekstifailide salvestamine digitaalses vormingus järk-järgult, kuid püsivalt domineerinud traditsiooniliste paberite üle. See ületamatu serv loodi ja täiustati veelgi, kasutades autostopina Interneti mugavust, mis võimaldab digitaalseid tekstifaile hõlpsalt mõne sekundiga üle maailma saata. Tänapäeval ei salvestata ja jagatakse PDF-failide kaudu mitte ainult masinkodeeritud tekste, vaid isegi käsitsi kirjutatud dokumentide pabereid skannitakse sellistesse vormingutesse edasiseks töötlemiseks ja levitamiseks.

See esilekerkiv suundumus on aga toonud valgust uuele ja praegu käimasolevale uurimisvaldkonnale – PDF-i optilisele märgituvastusele (OCR). OCR on skannitud või käsitsi kirjutatud teksti masinkodeeritud tekstiks teisendamine, nii et programmid saaksid seda edasiseks töötlemiseks ja analüüsiks kasutada. Kuigi optilise tekstituvastuse rakendusala on lai (alates liiklusmärkide piltidest kuni ametlike tekstidokumentideni), käsitletakse selles artiklis konkreetselt PDF-i optilise tekstituvastuse valdkonda, eriti skannitud ja käsitsi kirjutatud paberi PDF-faile, ning käsitletakse tehnoloogiat ja programme erinevates keeltes, mis võimaldavad ülesanne. Lisaks on esitatud viitamiseks üksikasjalik ülevaade ja võrdlus mitmete turulolevate PDF-OCR-tarkvarade kohta.


Kas otsite OCR-lahendust PDF-failidest teabe eraldamiseks? Anna nanonetidpööre suurema täpsuse, suurema paindlikkuse, järeltöötluse ja suure hulga integratsioonide jaoks!


Advances in OCR Solutions

Enne optilise tekstituvastuse koodide, üksikasjade ja eeliste arutamist selgitame esmalt OCR-i toimimise kontseptsiooni, tutvustades sellega seotud tehnoloogia edusamme.

Traditsiooniline OCR

The electronic conversion of scanned documents for further computation, before deep learning meeting the required accuracy for such tasks, are usually performed with four simple steps:

  1. Koguge teadaolevate tegelaste andmebaas.
  2. Kasutage fotosensoreid üksikute tähtede kogumiseks ja skannitud dokumentidest eraldamiseks.
  3. Võrrelge fotosensoritelt hangitud atribuutide komplekti andmebaasi füüsiliste atribuutidega.
  4. Teisendage iga atribuutide komplekt vastavalt teadaolevaks suurima sarnasusega märgiks.

Kuigi traditsiooniline lähenemine näib olevat enamiku ajast tõhus, on see haavatav oma olemuslike reeglipõhiste piirangute suhtes. OCR-i üks oluline vaheetapp on üksikute tähtede või märkide edukas eraldamine tekstikomplektist/tekstide rühmast. See ekstraheerimine nõuab teatud malle või reegleid (st eelseadistatud fondi suurused/stiilid), et see oleks väga täpne. Üha rohkemate reeglite kehtestamine täpsuse suurendamiseks tekitab OCR-i ülepaigutamise dilemma või parandab seda ainult konkreetsete kirjutiste stiilide puhul. Skannimisprotsessi ajal esinevad valgustuse ebaühtlused võivad samuti põhjustada vigu, kui OCR on täielikult reeglipõhine.

In addition, rule-based attribute comparisons also fall short when dealing with handwritings. Computer-generated fonts are mostly fixed with attributes often obvious and easy to cross-compare – handwritten fonts are the exact opposite, with unlimited variations and therefore are much more difficult to be classified. Since each time a hand-crafted character is slightly different, it is not possible to include all of them as part of the database either. This often requires OCRs to perform more sophisticated algorithms besides naive attribute-matching.

Lõpuks eksisteerib ka traditsioonilises lähenemisviisis mitme keele barjäär. Paljudes keeltes kasutatakse sarnaseid või isegi identseid sümboleid; kui salvestaksime kõik sümbolid andmebaasi, ei saaks me kahe sümboli vahel vahet teha pelgalt atribuutide sobitamise abil, mis lõppkokkuvõttes piirab traditsioonilise lähenemisviisi sageli vaid ühe keelega mudeli kohta.

Hiljutise sügava õppimise ajastu valguses, mille on õnneks esile toonud kiiresti kasvavad riistvaraarvutusvõimalused, on uuemad OCR-id kaasanud õppemudeleid nii teksti väljavõtmise protsessi kui ka nende tõlgendamise faasis.

Süvaõppepõhised OCR-mootorid

Deep learning, a major branch of the machine learning realm, has gained great popularity with the help of numerous renowned scientists pushing it to the forefront. In traditional engineering, our goal is to design a system/function that generates an output from a given input; deep learning, on the other hand, relies on the inputs and outputs to find the intermediate relationship that can be extended to new unseen data through the so-called Närvivõrgus.

Neuraalvõrgu arhitektuur

A neural network, or a multi-layer perceptron, mimics the way human brains learn. Each node, namely neurons, inside the network are like biological neurons such that they receive information to “activate”. Sets of neurons form layers, and multiple layers stack up to become a network, which uses the information to generate a prediction. The prediction can be of all forms, from a prediction of class for classification problems to the bounding boxes of items in object detection tasks – all of which have achieved state-of-the-art compared to previous literature. In the task of OCR, two types of output, along with two genres of networks, are heavily applied.

  • Konvolutsioonilised närvivõrgud (CNN) - CNN-id on tänapäeval üks domineerivamaid võrkude komplekte, mida kasutatakse eriti arvutinägemise valdkonnas. See koosneb mitmest konvolutsioonilisest tuumast, mis funktsioonide eraldamiseks libisevad läbi pildi. Koos traditsiooniliste võrgukihtidega lõpus on CNN-id väga edukad antud pildilt funktsioonide hankimisel ennustuste tegemiseks. Seda protsessi saab edasi viia piirdekastide leidmise ja märkide atribuutide tuvastamise ülesandeks OCR-protsessis edasiseks klassifitseerimiseks.
  • Pikad lühiajalised mälestused (LSTM) - LSTM-id on võrkude perekond, mida kasutatakse peamiselt jada sisendite jaoks. Intuitsioon on lihtne – mis tahes järjestikuste andmete (nt ilm, aktsiad) puhul võivad uued tulemused olla tugevalt sõltuvad eelmistest tulemustest ja seega oleks kasulik eelmiste tulemuste osana uute prognooside tegemisel sisendfunktsioonide osana pidevalt edasi anda. . OCR-i puhul võivad varem tuvastatud tähed olla suureks abiks järgmise ennustamisel, kuna tähemärkide komplekt peaks kokkupanemisel tavaliselt olema mõistlik (nt ingliskeelne täht "g" tuleb tõenäolisemalt pärast "do"). kui number "9", hoolimata nende sarnastest omadustest).

Lisaks OCR-i põhiülesannetele, mis hõlmavad süvaõpet, on edukatest närvivõrgutehnoloogiatest kasu saanud ka paljud eeltöötlusetapid reeglipõhiste lähenemisviiside kõrvaldamiseks:

  • Müra vähendamine – Kui dokumenti skannitakse valesti, võivad reeglipõhised meetodid kergesti ebaõnnestuda. Hiljutine OCR-tehnoloogiate poolt omaks võetud lähenemisviis on sisendi summutamiseks kasutada generatiivset võistlevat võrku (GAN). GAN koosneb kahest võrgust, generaatorist ja diskriminaatorist. Generaator genereerib pidevalt uusi sisendeid diskriminaatori jaoks, et teha vahet tegelike ja genereeritud sisendite vahel, võimaldades generaatoril ideaalse sisu loomisel pidevalt täiustada. Sel juhul õpetatakse GAN-i müravaba ja müraga dokumentide paarist ning generaatori eesmärk on luua müravaba dokument, mis oleks võimalikult lähedal põhitõele. Rakendusfaasis saab GAN-i, kui see on hästi koolitatud, kasutada igal sisendil halvasti skaneeritud dokumentide viimistlemiseks.
  • Dokumendi identifitseerimine – OCR-ülesandeid, eriti PDF-failide OCR-ülesandeid, kasutatakse sageli vormidest ja dokumentidest andmete nõuetekohaseks eraldamiseks. Seetõttu võib OCR-seadmes praegu töödeldava dokumendi tüübi teadmine märkimisväärselt suurendada andmete eraldamise täpsust. Hiljutised kunstid on hõlmanud siiami võrku või võrdlusvõrku, et võrrelda dokumente olemasolevate dokumendivormingutega, võimaldades OCR-mootoril dokumente eelnevalt klassifitseerida. Empiiriliselt on näidatud, et see lisaetapp parandab tekstiotsingu täpsust.

Kokkuvõttes on OCR-i edenemisele palju kasu toonud riistvara võimekuse hüppeline kasv ja sügav õppimine. PDF OCR-id on nüüdseks saavutanud paljude rakenduste jaoks hämmastava standardi täpsuse.


Kas otsite OCR-lahendust PDF-failidest teabe eraldamiseks? Anna nanonetidpööre suurema täpsuse, suurema paindlikkuse, järeltöötluse ja suure hulga integratsioonide jaoks!


Applications of PDF OCR Software

OCR-i põhieesmärk on hankida andmeid struktureerimata vormingutest, olgu need siis numbrilised või tegelikud arvud. Kui otsimine on edukas ja väga täpne, saavad programmid kasutada OCR-i tööülesannete jaoks, nagu teksti tuvastamine ja tõlgendamine, eriti numbrilise ja kontekstuaalse analüüsi jaoks.

Arvandmete analüüs

When PDFs contain numerical data, OCR helps extract them to perform statistical analysis. Specifically, OCR with the help of table or key-value pairs (KVPs) extractions can be applied to find meaningful numbers from different regions of one given text. We can then adopt statistical or even machine learning methods (i.e., KNN, K-Means, Linear/Logistic Regression) to models of various applications

Text Data Interpretation

Teisest küljest võib tekstiandmete töötlemine nõuda rohkem arvutamisetappe, mille lõppeesmärk on, et programmid mõistaksid sõnade taga olevaid "tähendusi". Sellist tekstiandmete semantilisteks tähendusteks tõlgendamise protsessi nimetatakse loomuliku keele töötlemiseks (NLP).

PDF-i OCR-i eelised

PDF OCR serves numerous purposes at an application level. The following sections describe some example use-cases from as small as a personal use to as big as that of a corporation.

Isiklikuks kasutamiseks mõeldud juhtumid

PDF OCR-id pakuvad tohutut mugavust tüütute ülesannetega, nagu ID-de skannimine ja isiklik rahastamine.

Isikutunnused tuleb sageli teisendada PDF-vormingusse, et neid erinevatesse rakendustesse saata. Need identifitseerimisdokumendid sisaldavad sellist teavet nagu sünnikuupäev ja ID-numbrid, mida tuleb sageli erinevatel eesmärkidel korduvalt sisestada, ning seetõttu oleks väga täpne PDF OCR, mis leiab ID-le vastavad väljad ja vastavad väärtused. abi triviaalsete käeliste ülesannete täitmisel. Ainus nõutav töö oleks lihtsalt üle kontrollida mis tahes vastuolude suhtes.

Personal Financing is another process that requires tons of manual labour. Although developments in excel and spreadsheets have already eased tasks like personal budgeting, OCR and extractions of data on PDF invoices could further expedite the process. This data can be automatically put into spreadsheets for analysis as mentioned in previous sections to be carried out. One can easily utilize the original key-in time into thinking of better financial plans.

Ärikasutusjuhtumid

Nii suurkorporatsioonid kui ka väiksemad organisatsioonid peavad tegelema tuhandete sarnaste vormingutega paberitööga, mis on väga töömahukas ja samas ebaproduktiivne (st kogu tööjõud kasutatakse millegi jaoks, mis nõuab vähem ajurünnakut). Automatiseeritud dokumentide klassifikatsioonid ja uuringute kogud/analüüsid on koht, kus OCR on kasulik.

OCRs enable computers to convert scanned texts into machine-encoded texts. The contents of the converted texts can then be used for classifying documents, whether it is applications for different roles or forms waiting to be approved. If trained well, OCRs can lead to minimal errors which could be frequent due to inevitable human fatigue. From a business perspective, the labour expenditure may also be vastly reduced.

Küsitluste või tagasiside osas, mida organisatsioonid nõuavad sageli oma praeguse toote või plaanide täiustamiseks, mängib OCR samuti olulist rolli. Andmeid saab kiiresti eraldada ja statistilise analüüsi jaoks põhjalikult hinnata. Kui see on hästi kujundatud, saab isegi käsitsi kirjutatud teksti automaatselt ekstraktida ja analüüsida.


Kas otsite OCR-lahendust PDF-failidest teabe eraldamiseks? Anna nanonetidpööre suurema täpsuse, suurema paindlikkuse, järeltöötluse ja suure hulga integratsioonide jaoks!


Lihtne õpetus

PDF OCRs can actually be easily programmed out personally. The following is a simple pipeline to perform OCR on PDFs.

PDF-i teisendamine kujutisteks

Seal on palju teeke ja API-sid mitmes keeles, mis toetavad eelkoolitatud OCR-e. Enamik neist töötleb siiski piltidega, mitte otse PDF-failidega. Järgmiste toimingute lihtsustamiseks saame PDF-failid enne märgituvastust eeltöödelda pildivormingutesse.

Üks kõige sagedamini kasutatavaid raamatukogusid selleks on pdf2 pilt Pythoni teek, mille saab lihtsalt installida järgmise käsuga:

pip install pdf2image

Afterwards, one can import the libary and use any of the two lines of code to get an image in PIL format as the following:

from pdf2image import convert_from_path, convert_from_bytes
from pdf2image.exceptions import ( PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
) images = convert_from_path('/home/belval/example.pdf')
images = convert_from_bytes(open('/home/belval/example.pdf','rb').read())

Koodi kohta lisateabe saamiseks vaadake ametlikku dokumentatsiooni https://pypi.org/project/pdf2image/

Image OCR

Suurte tehnoloogiaettevõtete API-sid on palju väga täpse OCR-iga. Kuna eeldatakse, et PDF-failid on tavaliselt tihedalt täis tekstiandmeid, oleks sellise optilise tekstituvastuse teostamiseks kõige sobivam viis kasutada Google Vision API-t, eriti Dokumendi_tekst_annotatsioon funktsiooni, kuna see on spetsiaalselt sellisteks eesmärkideks loodud. Täpsemalt Dokumendi_tekst_annotatsioon saadab koodi OCR-mootorisse, mille Google on kavandanud tihedate tekstide jaoks, sealhulgas erinevates keeltes olevatele käekirjadele.

Kogu Google Vision API-t on lihtne seadistada, võite viidata selle ametlikele juhistele https://cloud.google.com/vision/docs/quickstart-client-libraries üksikasjaliku seadistamise protseduuri jaoks.

Seejärel saame OCR-i otsimiseks kasutada järgmisi koode:

def detect_document(path): """Detects document features in an image.""" from google.cloud import vision import io client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = vision.Image(content=content) response = client.document_text_detection(image=image) for page in response.full_text_annotation.pages: for block in page.blocks: print('nBlock confidence: {}n'.format(block.confidence)) for paragraph in block.paragraphs: print('Paragraph confidence: {}'.format( paragraph.confidence)) for word in paragraph.words: word_text = ''.join([ symbol.text for symbol in word.symbols ]) print('Word text: {} (confidence: {})'.format( word_text, word.confidence)) for symbol in word.symbols: print('tSymbol: {} (confidence: {})'.format( symbol.text, symbol.confidence)) if response.error.message: raise Exception( '{}nFor more info on error messages, check: ' 'https://cloud.google.com/apis/design/errors'.format( response.error.message))

Alternatively, Google Vision API also supports multiple languages, such as Java and Go. More codes regarding the usage of Google API can be retrieved here: https://cloud.google.com/vision  

Amazonilt ja Microsoftilt on ka teisi OCR-teenuseid/API-sid ning saate neid alati kasutada PyTesseract raamatukogu, et treenida teie mudelit konkreetsetel eesmärkidel.


Kas otsite OCR-lahendust PDF-failidest teabe eraldamiseks? Anna nanonetidpööre suurema täpsuse, suurema paindlikkuse, järeltöötluse ja suure hulga integratsioonide jaoks!


võrdlus

Praegu on turul saadaval palju PDF OCR-e. Kuigi mõned neist on tasuta, kiired ja neid saab kohe võrgus kasutada, pakuvad teised professionaalseks kasutamiseks täpsemaid ja parema disainiga tooteid. Siin kirjeldame mõnda võimalust ning nende plusse ja miinuseid.

Veebipõhised PDF OCR-id

When using PDF OCRs for personal use on quick conversions, free and fast may be more desirable than accuracy. There are numerous online PDF OCR services that serve these needs. One can simply upload PDF documents and be turned into written text in a fast and convenient manner.

The main problem with this, however, is the quality control of the OCR. These online free OCR software, while they work well most of the time, are not bound to deliver the best quality output each time compared to other offline software that requires constant maintenance

Võrguühenduseta tarkvara

Praegu on mitu ettevõtet, kes pakuvad väga täpseid PDF OCR-teenuseid. Siin vaatleme mitmeid PDF-OCR-i valikuid, mis on spetsialiseerunud erinevatele aspektidele, ning mõningaid hiljutisi uurimistöö prototüüpe, mis näivad andvat paljulubavaid tulemusi:

There are multiple OCR services that are targeted towards tasks such as images-in-the wild. We skipped those services as we are currently focusing on PDF document reading only.

  • ABBYY – ABBYY FineReader PDF is an OCR developed by ABBYY. The software has a friendly UI used for PDF reading and text conversion. However, with its non-engineering nature (the target customers are non-tech specialists in other fields in need of PDF OCR), it would be more difficult to incorporate it into other programs for further processing.
  • kofax – Sarnaselt ABBYYga on Kofax sõbralik PDF-lugeja, mis nõuab ostmist. Hind on fikseeritud individuaalseks kasutamiseks, suurettevõtetele allahindlustega. 24/7 abi on saadaval ka tehniliste probleemide korral.
  • Sügav lugeja – Deep Reader on uurimistöö, mis avaldati ACCV konverentsil 2019. See hõlmab mitut nüüdisaegset võrguarhitektuuri, et täita selliseid ülesandeid nagu dokumentide sobitamine, teksti otsimine ja piltide müra vähendamine. On lisafunktsioone, nagu tabelid ja võtme-väärtus-paaride väljavõtted, mis võimaldavad andmeid organiseeritud viisil hankida ja salvestada.
  • Nanonets™ – Nanonets™ PDF OCR kasutab sügavat õppimist ja on seetõttu täielikult mallist ja reeglitest sõltumatu. Nanonetid ei saa mitte ainult töötada teatud tüüpi PDF-idega, vaid seda saab rakendada ka mis tahes dokumenditüübile teksti toomiseks.

Järeldus

In conclusion, in this article we walked through the basics of how an OCR works, as well as the timeline of OCR development followed by simple tutorials and use cases. We also presented a set of viable options for PDF OCRs as well as their advantages and disadvantages for further use.

Source: https://nanonets.com/blog/pdf-ocr/

Ajatempel:

Veel alates Tehisintellekt ja masinõpe