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
Fedora’da komut şu şekildedir:
sudo dnf install tesseract
Manjaro’da şunu yazmanız gerekir:
sudo pacman -Syu tesseract
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).
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ğitesseract
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
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.
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.
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
Bu herhangi bir sorun yaratmadı ve metin mükemmel bir şekilde çıkarıldı.
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
Metinli resim aşağıdadır. Galler milli marşının ilk mısrasıdır.
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
Aşağıdaki çıkarılan metinde gösterildiği gibi mükemmel bir şekilde başa çıkmaktadır. Da iawn, Tesseract OCR.
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.
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
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 tesseract
ve “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;
Tüm metin dosyalarını bir araya getirmek için kullanabiliriz cat
:
cat text-turing* > complete.txt
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.
Aşağıda görebileceğiniz gibi, sorular kalır, ancak her satırın başındaki “Q” ve “A” kayboldu.
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.
Aşağıdaki sonucumuzda görebileceğiniz gibi, karakterler okundu, ancak diyagramın biçimi kayboldu.
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.