Yetersiz OCR Sonuçları İyileştirme
OCR kalitesi büyük ölçüde girişe bağlıdır. Bir yapılandırma, filtre veya ayar bir belgeyi net bir şekilde okurken, bir başka üzerinde başarısız olabilir ve size bozuk veya eksik metin bırakabilir. Standart okuma hayal kırıklığına uğrattığında, IronOcr.Extensions.AdvancedScan paketi genellikle doğruluk açığını kapatır.
Fark, motora dayanmaktadır. Standart IronOCR Tesseract motorunda çalışırken, IronOcr.Extensions.AdvancedScan PaddleOCR ile güçlendirilmiştir ve makine öğrenimi yetenekleri ekler. Bu, ekran görüntüleri gibi gürültülü girdilere ve pasaportlar ve plaka plakaları gibi yapılandırılmış kaynaklara iyi uyum sağlar.
Paket, bu durumlar için amaca yönelik okuma yöntemleri sunar:
Çözüm
1. ReadDocumentAdvanced() ve EnhanceResolution() ile başlayın
Başka bir yapılandırmaya geçmeden önce, ReadDocumentAdvanced() yöntemini EnhanceResolution() ön işleme filtresi ile eşleştirin. Bu kombinasyon, kullanıcıların standart okumada karşılaştığı çoğu doğruluk sorununu çözer.
Filtreyi OcrInput'e uygulayın, ardından aynı girdiyi ReadDocumentAdvanced()'ye iletin:
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("document.pdf");
// Upscale and sharpen low-resolution input before reading
input.EnhanceResolution();
var result = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(result.Text);
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("document.pdf");
// Upscale and sharpen low-resolution input before reading
input.EnhanceResolution();
var result = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(result.Text);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadPdf("document.pdf")
' Upscale and sharpen low-resolution input before reading
input.EnhanceResolution()
Dim result = ocr.ReadDocumentAdvanced(input)
Console.WriteLine(result.Text)
End Using
ReadDocumentAdvanced(), belgeyi mizanpaj farkındalığı ve metin yoğunluğu ile ayrıştırmak için PaddleOCR makine öğrenimi motorunu çalıştırırken, EnhanceResolution() okuma öncesi düşük çözünürlüklü girdiyi büyütür ve keskinleştirir. Düşük çözünürlük, kötü sonuçların yaygın bir kök nedenidir, bu nedenle bu ön işleme adımı genellikle motor değiş tokuşu kadar önemlidir.
2. .NET Framework üzerinde x64 hedefle
.NET Framework projelerini x64 olarak derlemek üzere yapılandırın. AdvancedScan önemli miktarda belleğe ihtiyaç duyar ve farklı bir mimari altında çalıştırmak, çalışma zamanı hatalarını tetikleyebilir. Tam yapılandırma için .NET Framework'te Advanced Scan kılavuzuna bakın.
Sınırlamalar
AdvancedScan güçlü doğruluk sağlar, ancak bugün birkaç kısıtlama geçerlidir:
- Daha az sonuç özelliği: AdvancedScan sonuç nesneleri, standart
OcrResultnesnesinden daha az özellik sunar. - Farklı dönüş türleri: her okuma yöntemi farklı bir sonuç nesne türü döndürür, bu nedenle çağırdığınızın özel ayrıntıları için API Referansına bakın.
- Aranabilir PDF yok: AdvancedScan çıktı özeti aranabilir PDF oluşturulması henüz desteklenmez, ancak bu özellik geliştirme aşamasındadır.
- Sınırlı diller: paket şu anda İngilizce, Çince, Japonca, Korece ve Latin alfabelerini destekler.

