Tesseract Kullanarak Linux Komut Satırından OCR Nasıl Yapılır

Linux dizüstü bilgisayarda bir terminal penceresi.
Fatmawati Achmad Zaenuri / Shutterstock

Tesseract OCR motorunu kullanarak Linux komut satırındaki görüntülerden metin ayıklayabilirsiniz. Hızlı, doğrudur ve yaklaşık 100 dilde çalışır. İşte nasıl kullanılacağı.

Optik karakter tanıma

Optik karakter tanıma (OCR), bir görüntüdeki kelimelere bakma ve bulma ve ardından bunları düzenlenebilir metin olarak ayıklama yeteneğidir. İnsanlar için bu basit görev, bilgisayarların yapması çok zordur. En hafif tabirle erken dönem çabalar hantaldı. Yazı tipi veya boyutu OCR yazılımının beğenisine göre değilse bilgisayarların çoğu zaman kafası karışırdı.

Bununla birlikte, bu alandaki öncüler hala yüksek itibar görüyordu. Bir belgenin elektronik kopyasını kaybettiyseniz, ancak yine de basılı bir sürümünüz varsa, OCR elektronik, düzenlenebilir bir sürümü yeniden oluşturabilir. Sonuçlar yüzde 100 doğru olmasa bile, bu yine de büyük bir zaman tasarrufu sağladı.

Bazı manuel düzeltmelerle belgenizi geri alırsınız. İnsanlar, bir OCR paketinin karşı karşıya olduğu görevin karmaşıklığını anladıkları için yaptığı hataları affediyorlardı. Ayrıca, tüm belgeyi yeniden yazmaktan daha iyiydi.

O zamandan beri işler önemli ölçüde gelişti. Hewlett Packard tarafından yazılan Tesseract OCR uygulaması, 1980’lerde ticari bir uygulama olarak başladı. 2005’te açık kaynaklıydı ve şimdi Google tarafından destekleniyor. Çoklu dil yeteneklerine sahiptir, mevcut en doğru OCR sistemlerinden biri olarak kabul edilir ve ücretsiz olarak kullanabilirsiniz.

Tesseract OCR’yi Yükleme

Tesseract OCR’yi Ubuntu’ya yüklemek için şu komutu kullanın:

sudo apt-get install tesseract-ocr

sudo apt, tesseract-ocr'ı bir terminal penceresine yükleyin.

Fedora’da komut şu şekildedir:

sudo dnf install tesseract

sudo dnf tesseract'ı bir terminal penceresine yükleyin.

Manjaro’da şunu yazmanız gerekir:

sudo pacman -Syu tesseract

sudo pacman -Syu tesseract bir terminal penceresinde.

Tesseract OCR’yi kullanma

Tesseract OCR’ye bir dizi zorluk çıkaracağız. Metin içeren ilk resmimiz, Genel Veri Koruma Yönetmeliklerinin 63. Resitalinden bir alıntıdır. Bakalım OCR bunu okuyabilir mi (ve uyanık kalabilir mi).

GDPR'nin 63. Resitalinden alıntı

Bu aldatıcı bir görüntü çünkü her cümle, yasal belgelerde tipik olan zayıf bir üst simge sayısıyla başlar.

Vermemiz gerek tesseract aşağıdakiler de dahil olmak üzere bazı bilgilere komut verin:

  • İşlemesini istediğimiz görüntü dosyasının adı.
  • Ayıklanan metni tutmak için oluşturacağı metin dosyasının adı. Dosya uzantısını sağlamak zorunda değiliz (her zaman .txt olacaktır). Aynı ada sahip bir dosya zaten mevcutsa, üzerine yazılacaktır.
  • Kullanabiliriz --dpi söyleme seçeneği tesseract görüntünün inç başına nokta (dpi) çözünürlüğü nedir. Bir dpi değeri sağlamazsak, tesseract anlamaya çalışacak.

Görüntü dosyamız “resital-63.png” olarak adlandırılır ve çözünürlüğü 150 dpi’dir. Ondan “recital.txt” adında bir metin dosyası oluşturacağız.

Komutumuz şuna benzer:

tesseract recital-63.png recital --dpi 150

tesseract recital-63.png resital --dpi 150 bir terminal penceresinde.

Sonuçlar çok iyi. Tek sorun üst simgelerdir – doğru okunamayacak kadar soluktu. İyi sonuçlar almak için kaliteli bir görüntü çok önemlidir.

Resitalden alıntı metin 63.

tesseract üst simge numaralarını tırnak işaretleri (“) ve derece sembolleri (°) olarak yorumladı, ancak gerçek metin mükemmel bir şekilde çıkarıldı (görüntünün sağ tarafının buraya sığması için kesilmesi gerekiyordu).

Son karakter, bir satır başı olan 0x0C onaltılık değerine sahip bir bayttır.

Aşağıda, farklı boyutlarda ve hem kalın hem de italik metin içeren başka bir resim var.

Kalın ve italik olarak farklı boyutlarda metin içeren resim.

Bu dosyanın adı “bold-italic.png” dir. “Bold.txt” adında bir metin dosyası oluşturmak istiyoruz, bu nedenle komutumuz:

tesseract bold-italic.png bold --dpi 150

tesseract bold-italic.png kalın --dpi 150 bir terminal penceresinde.

Bu herhangi bir sorun yaratmadı ve metin mükemmel bir şekilde çıkarıldı.

kalın-italik.png dosyasından çıkarılan metin.

Farklı Dilleri Kullanma

Tesseract OCR, yaklaşık 100 dili destekler. Bir dili kullanmak için önce onu yüklemelisiniz. Listede kullanmak istediğiniz dili bulduğunuzda kısaltmasını not edin. Galce için destek kuracağız. Kısaltması, Galce anlamına gelen “Cymru” nun kısaltması olan “cym” dir.

Kurulum paketi, sonunda etiketlenmiş dil kısaltması ile “tesseract-ocr-” olarak adlandırılır. Galce dil dosyasını Ubuntu’ya kurmak için şunları kullanacağız:

sudo apt-get install tesseract-ocr-cym

sudo apt-get install tesseract-ocr-cym bir terminal penceresinde.

Metinli resim aşağıdadır. Galler milli marşının ilk mısrasıdır.

Galce milli marşının ilk ayetinin metnini içeren görüntü.

Bakalım Tesseract OCR meydan okumaya hazır mı? Kullanacağız -l (dil) seçeneği tesseract çalışmak istediğimiz dili öğrenin:

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

tesseract hen-wlad-fy-nhadau.png marşı -l cym --dpi 150 bir terminal penceresinde.

tesseract Aşağıdaki çıkarılan metinde gösterildiği gibi mükemmel bir şekilde başa çıkmaktadır. Da iawn, Tesseract OCR.

Çıkarılan Galce metin.

Belgeniz iki veya daha fazla dil içeriyorsa (örneğin Galce’den İngilizce’ye bir sözlük gibi), artı işareti (+) söylemek tesseract başka bir dil eklemek için:

tesseract image.png textfile -l eng+cym+fra

Tesseract OCR’yi PDF’lerle kullanma

tesseract komutu görüntü dosyalarıyla çalışmak üzere tasarlanmıştır, ancak PDF’leri okuyamaz. Ancak, bir PDF’den metin çıkarmanız gerekirse, bir dizi görüntü oluşturmak için önce başka bir yardımcı program kullanabilirsiniz. Tek bir resim, PDF’nin tek bir sayfasını temsil edecektir.

pdftppm ihtiyacınız olan yardımcı program Linux bilgisayarınızda zaten kurulu olmalıdır. Örneğimiz için kullanacağımız PDF, Alan Turing’in yapay zeka ile ilgili çığır açan makalesi olan “Hesaplama Makineleri ve Zeka” nın bir kopyasıdır.

AM Turing tarafından hazırlanan "Computing Machinery and Intelligence" başlığının PDF dosyası.

Kullanıyoruz -png PNG dosyaları oluşturmak istediğimizi belirtme seçeneği. PDF’mizin dosya adı “turing.pdf” dir. Resim dosyalarımıza “turing-01.png”, “turing-02.png” vb. Adını vereceğiz:

pdftoppm -png turing.pdf turing

pdftoppm -png turing.pdf bir terminal penceresinde turing.

Koşmak tesseract her görüntü dosyasında tek bir komut kullanarak bir for döngüsü kullanmamız gerekir. Her “turing” içinnn.png ”, çalıştırdığımız dosyalar tesseractve “metin-” artı “turing-” adlı bir metin dosyası oluşturun.nn“Resim dosyası adının bir parçası olarak:

for i in turing-??.png; do tesseract "$i" "text-$i" -l eng; done;

i in turing için - ??. png;  tesseract "$ i" "metin- $ i" -l eng;  bitti;  bir terminal penceresinde.

Tüm metin dosyalarını bir araya getirmek için kullanabiliriz cat:

cat text-turing* > complete.txt

cat text-turing *> bir terminal penceresinde complete.txt.” width=”646″ height=”57″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<p>Peki nasıl oldu?  Pekala, aşağıda gördüğünüz gibi.  Yine de ilk sayfa oldukça zorlu görünüyor.  Farklı yazı stilleri ve boyutları ve dekorasyonu vardır.  Ayrıca sayfanın sağ kenarında dikey bir “filigran” var.</p>
<p>Ancak çıktı orijinaline yakındır.  Açıkçası, biçimlendirme kayboldu, ancak metin doğru.</p>
<p><img loading=

Dikey filigran, sayfanın alt kısmına anlamsız bir satır olarak yazılmıştır. Metin okuyamayacak kadar küçüktü tesseract doğru, ancak onu bulup silmek yeterince kolay olacaktır. En kötü sonuç, her satırın sonundaki başıboş karakterler olurdu.

Merakla, ikinci sayfadaki soru ve cevap listesinin başındaki tek harfler göz ardı edildi. PDF’den bölüm aşağıda gösterilmiştir.

Turing makalesinin PDF dosyasından bir soru ve cevap listesi.

Aşağıda görebileceğiniz gibi, sorular kalır, ancak her satırın başındaki “Q” ve “A” kayboldu.

Turing PDF'nin soru ve cevap sayfasından çıkarılan metin.

Diyagramlar da doğru şekilde yazılmayacaktır. Aşağıda gösterileni Turing PDF’den çıkarmaya çalıştığımızda ne olduğuna bakalım.

Turing PDF

Aşağıdaki sonucumuzda görebileceğiniz gibi, karakterler okundu, ancak diyagramın biçimi kayboldu.

Turing PDF'deki bir diyagramdan çıkarılan metin.

Tekrar, tesseract abonelerin küçük boyutuyla mücadele etti ve bunlar yanlış oluşturuldu.

Doğrusu, yine de iyi bir sonuçtu. Anlaşılır bir metin çıkaramadık, ancak daha sonra bu örnek bir meydan okuma sunduğu için kasıtlı olarak seçildi.

İhtiyaç Duyduğunuzda İyi Bir Çözüm

OCR, günlük kullanmanız gereken bir şey değildir. Bununla birlikte, ihtiyaç ortaya çıktığında, emrinizde en iyi OCR motorlarından birine sahip olduğunuzu bilmek güzel.

LEAVE A REPLY

Please enter your comment!
Please enter your name here