Hur man Gör OCR från kommandoraden i Linux med Hjälp av Tesseract

0
55
Fatmawati Achmad Zaenuri/Shutterstock

Du kan extrahera text från bilder på Linux kommandorad med Tesseract OCR-motor. Det är snabbt, korrekt, och verkar i cirka 100 språk. Här är hur man använder det.

Optical Character Recognition

OCR (Optical character recognition) är möjligheten att titta på och hitta ord i en bild, och sedan extrahera dem som redigerbar text. Denna enkla uppgift för människor är mycket svåra för datorer att göra. Tidiga insatser clunky, minst sagt. Datorer var ofta förvirrad om typsnitt eller storlek var inte att OCR-programmet i smaken.

Ändå, pionjärerna inom detta område var fortfarande högt i kurs. Om du förlorat en elektronisk kopia av ett dokument, men hade fortfarande en tryckt version, OCR kan åter-skapa en elektronisk, redigerbar version. Även om resultaten var inte 100 procent korrekt, det var fortfarande en stor tidsbesparing.

Med lite manuell städa, skulle du ha ditt dokument tillbaka. Människor var förlåtande om de misstag det gjort eftersom de förstod komplexiteten i den uppgift vi står inför ett OCR-paket. Plus, det var bättre än att behöva skriva om hela dokumentet.

Saker och ting har förbättrats avsevärt sedan dess. Den Tesseract OCR-program, skrivet av Hewlett Packard, började under 1980-talet som en kommersiell tillämpning. Det var en öppen-källkod i 2005, och det är nu som stöds av Google. Det har flerspråkig kapacitet, anses som en av de mest korrekta OCR system som finns, och du kan använda det gratis.

Installera Tesseract OCR

För att installera Tesseract OCR på Ubuntu, att använda detta kommando:

sudo apt-get install tesseract-ocr

På Fedora, kommandot är:

sudo dnf installera tesseract

Om Manjaro, måste du skriva:

sudo pacman -Syu tesseract

Med hjälp av OCR Tesseract

Vi kommer att ställa ett antal frågor till Tesseract OCR. Vår första bild som innehåller text är ett utdrag från Skäl 63 Allmänna Bestämmelser om dataskydd. Låt oss se om OCR kan läsa detta (och hålla sig vaken).

Det är en knepig bild eftersom varje mening börjar med en svagt upphöjd siffra, vilket är typiskt i rättsliga dokument.

Vi måste ge tesseract kommandot viss information, inklusive:

  • Namnet på den bildfil som vi vill ha det för att bearbeta.
  • Namnet på den textfil som det kommer att skapa för det extraherade sms: a. Vi behöver inte ge den file extension (det kommer alltid att vara .txt). Om det redan finns en fil med samma namn kommer det att skrivas över.
  • Vi kan använda –dpi möjlighet att berätta tesseract vad de punkter per tum (dpi) upplösning. Om vi inte tillhandahåller ett dpi-värde, tesseract kommer att försöka räkna ut det.

Vår image filen heter “skäl-63.png”, och dess upplösning på 150 dpi. Vi kommer att skapa en textfil från det som kallas “recital.txt.”

Vårt kommando ser ut så här:

tesseract skäl-63.png skäl –150 dpi

Resultaten är mycket goda. Den enda frågan är upphöjd—de var alltför svaga för att kunna läsa ordentligt. En bra bild är avgörande för att få bra resultat.

tesseract har tolkat det upphöjda siffror som citattecken (“) och grad symboler (°), men den faktiska texten har hämtats perfekt (höger sida av bilden tvungen att klippas till för att passa in här).

Det sista tecknet är ett byte med hexadecimala värdet av 0x0C, som är en vagnretur.

Nedan är en bild med text i olika storlekar, och för både fet och kursiv stil.

Namnet på denna fil är “fet-kursiv stil.png.” Vi vill skapa en textfil med namnet “bold.txt” så våra kommandot är:

tesseract fet-kursiv stil.png fet –150 dpi

Detta inte utgöra något problem, och texten var ur helt.

Med Hjälp Av Olika Språk

Tesseract OCR stödjer omkring 100 språk. Att använda ett språk, måste du först installera det. När du hittar det språk du vill använda i listan, observera dess förkortning. Vi kommer att installera stöd för Welsh. Dess förkortning är “cym,” vilket är en förkortning för “Cymru,” vilket innebär Walesiska.

Installationspaketet kallas “tesseract-ocr-” med språket förkortning märkt på slutet. För att installera den Walesiska språket fil i Ubuntu, vi kommer att använda:

sudo apt-get install tesseract-ocr-cym

Bilden med texten nedan. Det är första versen i wales nationalsång.

Låt oss se om Tesseract OCR är upp till utmaningen. Vi kommer att använda -l (språk) möjlighet att låta tesseract vet vilket språk vi vill arbeta för:

tesseract hen-wlad-fy nhadau.png-anthem -l cym –150 dpi

tesseract klarar perfekt, som visas i den extraherade texten nedan. Da iawn, Tesseract OCR.

Om ditt dokument innehåller två eller fler språk (som en Welsh-att-engelska ordbok, till exempel), kan du använda ett plustecken (+) för att tala om tesseract att lägga till ytterligare ett språk, som så:

tesseract bild.png textfil-l eng+cym+fra

Med hjälp av Tesseract OCR-med Pdf-filer

Den tesseract kommandot är designat för att arbeta med bild-filer, men det är inte för att läsa Pdf-filer. Dock, om du behöver för att extrahera text från en PDF-fil, kan du använda ett annat verktyg första för att generera en uppsättning bilder. En enda bild kommer att utgöra en enda sida i PDF-filen.

Den pdftppm verktyg som du behöver bör redan vara installerat på din Linux-dator. PDF-vi kommer att använda för vårt exempel är en kopia av Alan Turing sädes papper på artificiell intelligens, “Computing Machinery and Intelligence”.

Vi använder -png-alternativet för att ange att vi vill skapa en PNG-filer. Namnet på vår PDF är “turing.pdf-filen.” Vi kallar våra bildfiler “turing-01.png” “turing-02.png”, och så vidare:

pdftoppm -png-turing.pdf-turing

Att köra tesseract på varje bildfil med hjälp av ett enda kommando, måste vi använda en for-loop. För vart och ett av våra “turing-nn.png-filer kör vi tesseract, och skapa en textfil som heter “text-” plus “turing-nn” som en del av bilden fil:

för att jag i turing-??.png; göra tesseract “$i”, “text-$jag” -l eng; gjort.

Att kombinera all text filer till en, som vi kan använda för katt:

sms: a katt-turing* > complete.txt

Så, hur gick det att göra? Mycket bra, som ni kan se nedan. Första sidan ser ganska utmanande, men. Det har olika text stilar och storlekar, och dekoration. Det finns också en vertikal “vattenstämpel” på den högra kanten av sidan.

Men produktionen ligger nära den ursprungliga. Självklart, den formatering som var förlorat, men texten är korrekt.

Den vertikala vattenstämpel var transkriberas som en linje av rotvälska längst ner på sidan. Texten var för liten för att läsas av tesseract exakt, men det skulle vara lätt att hitta och ta bort det. Det sämsta resultatet skulle ha varit att oönskade tecken i slutet på varje rad.

Märkligt nog, de enda bokstäver i början av listan med frågor och svar på sidan två har ignorerats. Avsnitt från PDF-filen nedan.

Som du kan se nedan, frågor kvar, men den “Q” och “A” i början av varje rad var förlorat.

Diagram även kommer inte att återges korrekt. Låt oss titta på vad som händer när vi försöker att extrahera den som visas på bilden nedan från Turing PDF.

Som du kan se i vårt resultat under, tecken som lästes, men formatet av diagrammet var förlorat.

Igen, tesseract kämpat med den lilla storleken av det indextal, och de var återges felaktigt.

I rättvisans namn, men det var ändå ett bra resultat. Vi var inte i stånd till att dra enkla text, men då, i detta exempel var medvetet valt för att det har varit en stor utmaning.

En Bra Lösning När Du Behöver Det

OCR är inte något du behöver för att använda varje dag. Dock, när behov uppstår, är det bra att veta att du har en av de bästa OCR-motorer till ditt förfogande.

LÄS NÄSTA

  • “Varför Folk Köper Fortfarande Har Telefoner i 2020
  • “Hur Automatiskt att Tömma Papperskorgen på Mac
  • “Hur du kopierar Bilder i Microsoft PowerPoint
  • “Mikrofonen Inte Fungerar på en Mac? Här är Hur man Fixar Det
  • “✨ Kan du Använda Uttryckssymboler i filnamn i Windows 10