2017-04-13 45 views
7

ile artırın Bu yüzden görüntüden metin ayıklamaya çalışıyorum. Ve resmin kalitesi ve boyutu iyi olmadığından, yanlış sonuçlar veriyor. PIL ile birkaç geliştirmeyi ve diğer şeyleri denedim, ancak bu sadece görüntü kalitesini kötüleştiriyor.Metin tanıma doğruluğunu pytesseract & PIL

Birisi daha iyi sonuç almak için görüntüde bazı geliştirmeler önerebilir. Görüntülerin Birkaç örnekler: Soru, OCR yanlış sonuçlar verdiğini gelir nasıl yani metin, görsel oldukça iyi kalitede görüntü sağlanan örnekte

two

three

+0

Anladığım kadarıyla, stackoverflow'da bu kuralların oldukça katı kuralları ve bu kurallardan biri, sorulmadığı sürece, hedefe ulaşmak için başka ne yapılabileceğini göstermeye değil, soruyu cevaplamaya odaklanmaktır.Bu yüzden size daha iyi sonuçlar veren, ancak görüntüyü geliştirmeye dayanmayan cevapları da sorunuzda sormaktan çekinmeyin. – Claudio

+0

Cevabım kabul edildi olarak işaretlenmeye ne dersin? Bir şeyi açıklamayı özledim mi? – Claudio

+0

P.S. cevabımı tekrar kontrol et - ona bazı açıklamalar ekledim. – Claudio

cevap

4

?

bu cevabın başka metinde verilen sonuçlar takımından Tesseract aracılığıyla verilen görüntüyü

enter image description here

çalışmasına izin göstermek için. Tesseract OCR sonucu Aşağıda:

"fhpgearedmomrs©gmachom" 

Şimdi imajını dört kez yeniden boyutlandırmak ve buna eşikleme uygulayalım. Yeniden boyutlandırma ve Gimp'de manuel olarak eşleştirmeyi yaptım, ancak PIL için uygun yeniden boyutlandırma yöntemi ve eşik değeri ile otomatik olarak emin olabilirsiniz, böylece geliştirmeden sonra sahip olduğum gelişmiş görüntüye benzer bir görüntü elde edersiniz:

"fhpgearedmotors © gmail.com" Bu tr göstermektedir

: enter image description here

tesseract OCR yoluyla geliştirilmiş görüntü çalıştırmak metni aşağıdaki verir Bir görüntüyü büyütmek, sağlanan metin resmi örneğinde% 100 doğruluk elde etmenize yardımcı olabilir.

Bir görüntünün büyütülmesinin daha iyi bir OCR doğruluğunun elde edilmesine yardımcı olması tuhaf görünebilir, ANCAK ... OCR, basılı ortam taramalarını metinlere dönüştürmek ve metinden 300 dpi görüntüyü tasarıma dönüştürmek için geliştirildi. Bu, bazı OCR programlarının sonuçları iyileştirmek için neden yeniden boyutlandırmadığını ve büyütme ile elde edilebilecek görüntünün daha yüksek dpi çözünürlüğünü beklemek için küçük yazı tiplerinde kötülük yapmadığını açıklar.

İşte yukarıdaki ifadeyi prooving Tesseract FAQ on github.com bir alıntı:

[makul doğruluk için minimum metin boyutu vardır. Çözünürlük yanı sıra nokta boyutunu düşünmek zorunda. Doğruluk, 8pt x 300dpi'nin altında hızla, 10pt x 300dpi'nin altına düşer. Hızlı bir kontrol, karakterlerin x yüksekliklerinin piksellerini saymaktır. (X yüksekliği, küçük harfin x yüksekliğidir.) 10pt x 300dpi'de x yükseklikleri tipik olarak yaklaşık 20 pikseldir, ancak bu yazı tipinden yazı tipine önemli ölçüde farklılık gösterebilir. 10 piksellik bir x yüksekliğinin altında, doğru sonuçlar elde etme şansınız çok azdır ve yaklaşık 8 pikselin altında, metnin çoğu "gürültü çıkarılmış" olacaktır.]

+0

Çok iyi bir açıklama ve iyi cevap. Resimden metin okumaya çalışıyorum (belge bölümlerini tanıma yazılımı) ve görüntüyü büyütmek için kaç kez dinamik bir değişken almayı başardığınızı bilmek istedim, böylece metni tanıyabilir mi? 800x800 olan görüntü için, 1600x1600 değerine genişletildiğinde, ancak herşeyi (virgül, nokta, eğik çizgi vb.) Tanımak için 30x800 boyutundaki resmin 120x3200 değerine büyütülmesi gerekiyorsa, her şeyi tanımaktır. Ayrıca, "Dosya" kelimesinin neden iyi tanımlanmadığını biliyor musunuz? Char 'i' ingilizce alfabesinden değil –