Si të bëni OCR nga linja e komandës Linux duke përdorur Tesseract
Mund të nxirrni tekst nga imazhet në linjën e komandës Linux duke përdorur motorin Tesseract OCR. Është i shpejtë, i saktë dhe funksionon në rreth 100 gjuhë. Ja se si ta përdorni.
Njohja optike e karaktereve
Njohja optike e karaktereve (OCR) është aftësia për të parë dhe gjetur fjalë në një imazh dhe më pas për t'i nxjerrë ato si tekst të modifikueshëm. Kjo detyrë e thjeshtë për njerëzit është shumë e vështirë për kompjuterët. Përpjekjet e hershme ishin të vështira, për të thënë të paktën. Kompjuterët shpesh ngatërroheshin nëse teksti ose madhësia nuk i pëlqente softuerit OCR.
Gjithsesi, pionierët në këtë fushë mbaheshin ende në një vlerësim të lartë. Nëse keni humbur kopjen elektronike të një dokumenti, por keni ende një version të printuar, OCR mund të rikrijojë një version elektronik, të modifikueshëm. Edhe nëse rezultatet nuk do të ishin 100 për qind të sakta, ky ishte një kursim i shkëlqyeshëm i kohës.
Me disa rregullime manuale, do ta ktheni dokumentin tuaj. Njerëzit falnin gabimet e bëra sepse e kuptonin kompleksitetin e detyrës me të cilën përballej një paketë OCR. Plus, ishte më mirë sesa rishtypja e të gjithë dokumentit.
Gjërat janë përmirësuar ndjeshëm që atëherë. Aplikacioni Tesseract OCR, i shkruar nga Hewlett Packard, filloi në vitet 1980 si një aplikacion komercial. Ishte me burim të hapur në 2005 dhe tani mbështetet nga Google. Ka aftësi shumë-gjuhëshe, konsiderohet si një nga sistemet më të sakta OCR të disponueshme dhe mund ta përdorni falas.
Instalimi i Tesseract OCR
Për të instaluar Tesseract OCR në Ubuntu, përdorni këtë komandë:
sudo apt-get install tesseract-ocr
Në Fedora, komanda është:
sudo dnf install tesseract
Në Manjaro, duhet të shkruani:
sudo pacman -Syu tesseract
Duke përdorur Tesseract OCR
Ne do të paraqesim një sërë sfidash për Tesseract OCR. Imazhi ynë i parë që përmban tekst është një ekstrakt nga Recitali 63 i Rregulloreve të Përgjithshme të Mbrojtjes së të Dhënave. Le të shohim nëse OCR mund ta lexojë këtë (dhe të qëndrojë zgjuar).
Është një imazh i ndërlikuar sepse çdo fjali fillon me një numër të zbehtë mbishkrimi, i cili është tipik në dokumentet legjislative.
Ne duhet t'i japim komandës tesseract
disa informacione, duke përfshirë:
- Emri i skedarit të imazhit që duam të përpunojmë.
- Emri i skedarit të tekstit që do të krijojë për të mbajtur tekstin e nxjerrë. Nuk duhet të japim shtesën e skedarit (do të jetë gjithmonë .txt). Nëse një skedar tashmë ekziston me të njëjtin emër, ai do të mbishkruhet.
- Ne mund të përdorim opsionin
--dpi
për të treguartesseract
se cila është rezolucioni i pikave për inç (dpi) të imazhit. Nëse është. ne nuk japim një vlerë dpi,tesseract
do të përpiqet ta kuptojë.
Skedari ynë i imazhit quhet recital-63.png dhe rezolucioni i tij është 150 dpi. Ne do të krijojmë një skedar teksti prej tij të quajtur recital.txt.
Komanda jonë duket si kjo:
tesseract recital-63.png recital --dpi 150
Rezultatet janë shumë të mira. Problemi i vetëm janë mbishkrimet—ato ishin shumë të zbehta për t'u lexuar saktë. Një imazh me cilësi të mirë është jetik për të marrë rezultate të mira.
tesseract
i ka interpretuar numrat e sipërshkrimit si thonjëza (“) dhe simbole të shkallës (°), por teksti aktual është nxjerrë në mënyrë të përsosur (ana e djathtë e figurës duhej të shkurtohej për t'u përshtatur këtu).
Karakteri përfundimtar është një bajt me vlerën heksadecimal 0x0C, që është një kthim me karrocë.
Më poshtë është një imazh tjetër me tekst në madhësi të ndryshme, me shkronja të theksuara dhe të pjerrëta.
Emri i këtij skedari është bold-italic.png. Ne duam të krijojmë një skedar teksti të quajtur bold.txt, kështu që komanda jonë është:
tesseract bold-italic.png bold --dpi 150
Ky nuk paraqiste asnjë problem dhe teksti ishte nxjerrë në mënyrë të përsosur.
Përdorimi i gjuhëve të ndryshme
Tesseract OCR mbështet rreth 100 gjuhë. Për të përdorur një gjuhë, fillimisht duhet ta instaloni atë. Kur të gjeni gjuhën që dëshironi të përdorni në listë, vini re shkurtimin e saj. Ne do të instalojmë mbështetje për Uellsishten. Shkurtesa e tij është cym, që është shkurtim i Cymru, që do të thotë Uells.
Paketa e instalimit quhet tesseract-ocr- me shkurtesën e gjuhës të shënuar në fund. Për të instaluar skedarin e gjuhës Uellsiane në Ubuntu, ne do të përdorim:
sudo apt-get install tesseract-ocr-cym
Imazhi me tekstin është më poshtë. Është vargu i parë i himnit kombëtar të Uellsit.
Le të shohim nëse Tesseract OCR është në nivelin e sfidës. Ne do të përdorim opsionin -l
(gjuhë) për të lejuar tesseract
të dijë gjuhën në të cilën duam të punojmë:
tesseract hen-wlad-fy-nhadau.png anthem -l cym --dpi 150
tesseract
përballet në mënyrë të përsosur, siç tregohet në tekstin e nxjerrë më poshtë. Dai iawn, Tesseract OCR.
Nëse dokumenti juaj përmban dy ose më shumë gjuhë (si një fjalor nga uellsia në anglisht, për shembull), mund të përdorni një shenjë plus (+
) për t'i thënë tesseract
të shtojë një gjuhë tjetër, si kjo:
tesseract image.png textfile -l eng+cym+fra
Përdorimi i Tesseract OCR me PDF
Komanda tesseract
është krijuar për të punuar me skedarë imazhi, por nuk është në gjendje të lexojë PDF. Megjithatë, nëse keni nevojë të nxirrni tekst nga një PDF, mund të përdorni fillimisht një mjet tjetër për të gjeneruar një grup imazhesh. Një imazh i vetëm do të përfaqësojë një faqe të vetme të PDF-së.
Programi pdftppm
që ju nevojitet duhet të jetë i instaluar tashmë në kompjuterin tuaj Linux. PDF-ja që do të përdorim për shembullin tonë është një kopje e punimit themelor të Alan Turing mbi inteligjencën artificiale, Makineri kompjuterike dhe inteligjencë.
Ne përdorim opsionin -png
për të specifikuar se duam të krijojmë skedarë PNG. Emri i skedarit të PDF-së tonë është turing.pdf. Ne do t'i quajmë skedarët tanë të imazhit turing-01.png, turing-02.png dhe kështu me radhë:
pdftoppm -png turing.pdf turing
Për të ekzekutuar tesseract
në çdo skedar imazhi duke përdorur një komandë të vetme, duhet të përdorim një cikli for. Për secilin nga skedarët tanë turing-nn.png, ne ekzekutojmë tesseract
dhe krijojmë një skedar teksti të quajtur text- plus turing-nn” si pjesë e emrit të skedarit të imazhit:
for i in turing-??.png; do tesseract "$i" "text-$i" -l eng; done;
Për të kombinuar të gjithë skedarët e tekstit në një, mund të përdorim cat
:
cat text-turing* > complete.txt
Pra, si e bëri atë? Shumë mirë, siç mund ta shihni më poshtë. Megjithatë, faqja e parë duket mjaft sfiduese. Ka stile dhe madhësi të ndryshme teksti, si dhe dekorim. Ekziston gjithashtu një ujëra vertikale në skajin e djathtë të faqes.
Megjithatë, prodhimi është afër origjinalit. Natyrisht, formatimi ka humbur, por teksti është i saktë.
Filigrami vertikal u transkriptua si një linjë gërmadhash në fund të faqes. Teksti ishte shumë i vogël për t'u lexuar me saktësi nga tesseract
, por do të ishte mjaft e lehtë për ta gjetur dhe fshirë atë. Rezultati më i keq do të kishte qenë personazhet endacakë në fund të çdo rreshti.
Çuditërisht, shkronjat e vetme në fillim të listës së pyetjeve dhe përgjigjeve në faqen dy janë shpërfillur. Seksioni nga PDF është paraqitur më poshtë.
Siç mund ta shihni më poshtë, pyetjet mbeten, por Q dhe A në fillim të çdo rreshti humbën.
Diagramet gjithashtu nuk do të transkriptohen saktë. Le të shohim se çfarë ndodh kur përpiqemi të nxjerrim atë të treguar më poshtë nga Turing PDF.
Siç mund ta shihni në rezultatin tonë më poshtë, personazhet u lexuan, por formati i diagramit humbi.
Përsëri, tesseract
luftoi me madhësinë e vogël të abonimeve dhe ato u dhanë gabimisht.
Megjithatë, me drejtësi, ishte një rezultat i mirë. Ne nuk ishim në gjendje të nxirrnim tekst të drejtpërdrejtë, por më pas, ky shembull u zgjodh qëllimisht sepse paraqiste një sfidë.
Një zgjidhje e mirë kur ju nevojitet
OCR nuk është diçka që do t'ju duhet të përdorni çdo ditë. Sidoqoftë, kur lind nevoja, është mirë të dini se keni në dispozicion një nga motorët më të mirë OCR.