Yükleme yok, %100 yerel, hesap yok

Makale

OCR doğruluğunu artırın: metni tanımadan önce görüntüyü düzeltin

OCR, beslediğiniz görüntü kadar iyi sonuç verir. Eğik, düşük kontrastlı, gürültülü bir tarama, motor ne kadar iyi olursa olsun bozuk metin üretir. İşte gerçekten fark yaratan adımlar, yapılması gereken sıraya göre, hepsi tarayıcınızda yerel olarak çalışır.

OCR neden gerçek taramalarda zorlanır

Tesseract gibi bir OCR motoru, temiz, yatay, yüksek kontrastlı metin üzerinde eğitilmiştir. Bir sayfayı satırlara, satırları kelimelere, kelimeleri de karakter şekillerine böler ve her şekli eğitilmiş modeline göre eşleştirir. Gerçek dünya taramaları bu varsayımları bozar: sayfa birkaç derece eğilmiştir, aydınlatma düzensizdir, çözünürlük düşüktür ve tarayıcı tablasının kenarı ya da karşı sayfa koyu gürültü ekler. Bu sorunların her biri satır ve karakter segmentasyonu adımının yanlış tahmin yapmasına yol açar; yanlış segmentasyon ise yanlış karakterlere dönüşür. Çözüm nadiren farklı bir motor kullanmaktır: asıl mesele, motorun varsayımlarının geçerli olacağı şekilde görüntüyü hazırlamaktır. Pratikte ön işleme, OCR motoru seçiminden daha fazla doğruluk artışı sağlar.

OCR ön işleme ardışık düzeninin şeması: bir tarama, tanıma motoruna ulaşmadan önce yönlendirme, eğim düzeltme, kırpma ve gri tonlama adımlarından geçer.

Çözünürlükle başlayın: 300 DPI hedefleyin

Tesseract, normal gövde metni için yaklaşık 300 DPI'da en iyi sonucu verir. Yaklaşık 200 DPI'nın altında her glifin çizgileri komşularıyla iç içe geçer ve doğruluk belirgin biçimde düşer. Taramayı siz yapıyorsanız, başka her şeyden önce tarayıcıyı 300 DPI'ya ayarlayın; bu, en yüksek etkili tek tercihtir. Yalnızca düşük çözünürlüklü bir görüntünüz varsa, büyütmek hiç kaydedilmemiş ayrıntıları oluşturmaz; ancak orta düzeyde bir büyütme, segmentasyona daha fazla piksel sunarak dokunuşan karakterleri ayırt etmeye yine de yardımcı olabilir. Çok küçük baskı 400 ile 600 DPI'dan yararlanır; bunun ötesinde yalnızca dosyayı büyütürsünüz, doğruluk kazancı sağlamazsınız. Kaynak bir PDF ise önce her sayfayı hedef DPI'da görüntüye dönüştürün, ardından OCR'ı o görüntü üzerinde çalıştırın.

Yönlendirmeyi doğru yapın

Sayfa 90, 180 veya 270 derece döndürülmüşse motor yan yana ya da baş aşağı okur ve anlamsız çıktı üretir. Tesseract, döndürmeyi tahmin edebilen bir yönlendirme ve komut dosyası algılama (OSD) geçişine sahiptir; ancak seyrek metin, formlar veya görsellerle dolu sayfalarda güvenilmezdir. Sayfayı kendiniz dik konuma getirmeniz tahmin unsurunu ortadan kaldırır. Bu adım kayıpsız ve anlıktır: 90 derecelik katları halinde döndürmek yalnızca mevcut pikselleri yeni konumlara taşır, kalite kaybı veya yeniden örnekleme olmaz. Bunu düzeltmeden önce yapın; çünkü düzeltme, metnin zaten kabaca yatay olduğunu varsayar.

Eğrilik düzeltme: küçük açıyı giderin

Sayfayı hafifçe eğri yerleştirmekten kaynaklanan 2 ila 3 derecelik bir eğrilik bile OCR'ı olumsuz etkiler: yatay satır bulma adımı bir metin satırını ikiye böler ya da iki satırı tek satırda birleştirir. Eğrilik düzeltme, metin satırlarının baskın açısını ölçer (genellikle projeksiyon profili veya Hough dönüşümü analizi kullanılarak) ve sayfayı yatay konuma geri döndürür. 90 derecelik bir döndürmenin aksine eğrilik düzeltme, küçük ve keyfi açılı bir döndürmedir; bu nedenle pikselleri yeniden örnekler ve çok az bulanıklık ekler. Bu değiş tokuş neredeyse her zaman değerlidir; çünkü düz satırlar temiz şekilde bölünür ve doğruluk kazancı hafif yumuşamayı fazlasıyla karşılar. Yönlendirmeyi düzelttikten sonra ve kırpmadan önce eğrilik düzeltmesi yapın.

Eğim düzeltme öncesi ve sonrası: solda birkaç derece eğik bir metin sayfası, sağda yatay hizalanmış şekilde düzeltilmiş hali, satırlar yatay konumda.

Metne kırpın ve gürültüyü atın

İstediğiniz metnin dışındaki her şey, motorun yanlış okuyabileceği gürültüdür: tarayıcı tablasının koyu kenarı, karşı sayfanın bir parçası, zımbalı köşe, parmak veya delik. Yalnızca metin bloğuna kırpmak bu sahte hedefleri kaldırır; bu da hem doğruluğu artırır hem de tanımayı hızlandırır, çünkü motorun analiz edeceği alan azalır. Çok sütunlu bir belgede kırpma (ya da OCR'ı sütun sütun çalıştırma), motorun boşluk boyunca düz okuyarak iki sütunu iç içe geçmiş tek bir bozuk satıra dönüştürmesini de engeller. İçeriğin çerçeve içinde dik durması için eğrilik düzeltmesinden sonra kırpın.

Kontrast, gri tonlama ve ikilileştirme gerçekte nasıl çalışır

OCR nihayetinde ikili bir görüntü üzerinde çalışır: her piksel mürekkep veya kağıt olarak belirlenir. Tesseract bunu, görüntü histogramından tek bir global eşik seçen Otsu yöntemiyle dahili olarak yapar. Bu yöntem, sayfanın aydınlatması eşit ve kontrastı iyi olduğunda düzgün çalışır; bir gölge ya da renkli arka plan bir köşeyi eşiğin beklediğinden karanlık yapınca ise başarısız olur. Güvenilir kazanımlar şunlardır: gri tonlamaya dönüştürmek, böylece renk baskısı eşiği şaşırtmasın; ve aydınlatmayı dengeleyerek sayfanın tamamının eşiğin bir tarafında kalmasını sağlamak. Kontrast artışı orta düzeyde tutulursa soluk metin için işe yarar. Genellikle ters etki yapan şey sert elle yapılan ikilileştirmedir: yanlış kesim noktasıyla kendiniz saf siyah-beyaza dönüştürürseniz, motorun kendi geçişinde tutacağı soluk çizgileri silersiniz. Motora ikilileştirme işini bırakın ve ona başlangıç için eşit, gri tonlamalı bir görüntü verin. Sunasty, PDF'ler için gri tonlama sunar; ince kontrast ayarı için masaüstü editör hâlâ daha iyidir, ancak tarama sırasındaki eşit aydınlatma herhangi bir kaydırıcıdan daha önemlidir.

Doğru dili seçin ve çıktıyı doğrulayın

Tesseract her dil ve komut dosyası için ayrı bir eğitim verisi dosyası yükler. İngilizce modelini Fransızca veya Yunanistan metni üzerinde çalıştırmak, özellikle aksanlı veya Latin olmayan karakterlerde önlenebilir hatalar üretir; bu nedenle belgeyle eşleşen dili seçin. Son olarak OCR çıktısını taslak olarak değerlendirin, kesin yanıt olarak değil: motor bir ismin doğru yazıldığını ya da 0'ın O olmadığını bilemez. Sayıları, özel isimleri ve yasal veya mali açıdan önemli olan her şeyi kontrol edin. Tablolar ve çok sütunlu düzenler için yapıyı el ile düzeltmeyi bekleyin; çünkü OCR, yeniden oluşturulmuş bir düzen değil, tanınan metin akışı döndürür.

Bu makaledeki araçlar

Sıkça sorulan sorular

Bulanık bir taramayı büyütmek OCR'ı iyileştirir mi?

Tek başına pek değil. Büyütmek, taramanın hiç kaydetmediği ayrıntıları geri kazandıramaz; bu nedenle bulanık 100 DPI görüntü bulanık kalmaya devam eder. Orta düzeyde büyütme, segmentasyona daha fazla piksel sunarak dokunuşan karakterleri ayırt etmeye yardımcı olabilir; ancak 300 DPI'da yeniden taramak herhangi miktardaki büyütmeden çok daha etkilidir.

Görüntüyü önce kendim saf siyah-beyaza dönüştürmeli miyim?

Genellikle hayır. Tesseract, Otsu yöntemiyle dahili olarak ikilileştirir ve yanlış kesim noktasıyla yapılan sert elle ikililestirme motorun tutacağı soluk çizgileri siler. Bunun yerine gri tonlamaya dönüştürün ve aydınlatmayı dengeleyin, ardından motora kendi eşiğini seçme izni verin.

Metnin yan yatıyor. OCR onu otomatik olarak döndürür mü?

Bazen. Tesseract'ın yönlendirme algılama geçişi vardır; ancak formlarda, seyrek metinde veya görsel ağırlıklı sayfalarda güvenilmezdir. Sayfayı 90, 180 veya 270 derece döndürerek kendiniz dik konuma getirmek kayıpsızdır ve tahmin unsurunu ortadan kaldırır; bu nedenle daha güvenli bir seçenektir.

Bunların herhangi biri belgeimi yükliyor mu?

Hayır. Döndürme, eğrilik düzeltme, kırpma, gri tonlamaya dönüştürme ve OCR'ın kendisi tarayıcınızda çalışır. OCR, Tesseract'ın bir WebAssembly derlemesini kullanır ve eğitilmiş dil verileri bir kez indirilip önbelleğe alınır. Dosyanız hiçbir zaman cihazı terk etmez.

Kaynaklar