Optimal Performans için C#'ta Hızlı OCR Yapılandırması

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCR'nin hızlı yapılandırması, EnglishFast dil modunu kullanarak ve BarCode okuma gibi gereksiz özellikleri devre dışı bırakarak, doğruluk kaybı olmadan OCR işleme hızını %17'ye kadar artırır. Bu optimizasyon, zamanın kritik olduğu yüksek hacimli işlemler için idealdir.

IronOCR, kutusundan çıkar çıkmaz etkili bir şekilde çalışır. Mutlak doğruluk yerine hızın öncelikli olduğu durumlarda, IronOCR hızlı bir yapılandırma sunar. Bu ayar, standart OCR yapılandırmasından çok daha hızlı, önemli tarama performansı kazançları sağlar ve doğruluk üzerindeki etkisi minimumdur.

Bu makale, hızlı yapılandırmanın nasıl ayarlanacağını ve hızlı ile standart IronOCR yapılandırmaları arasındaki karşılaştırmalı test sonuçlarını gösterir. İşlediğiniz taratılmış belgeler, PDFler veya görüntüler olsun, bu optimizasyonlar uygulamanızın performansını önemli ölçüde artırabilir.


Başlangıç: C#'ta Hızlı OCR Yapılandırmasını Ayarlayın

Hızlı yapılandırmanın ana bileşeni Language özelliğidir. Language özelliğini OcrLanguage.EnglishFast olarak ayarlamak, doğruluktaki küçük bir potansiyel maliyet yerine hıza öncelik verir. Bu, IronOCR'un toplu halde çok daha hızlı okumasını sağlar; bu, zamanın esas olduğu kritik görev uygulamalarında özellikle faydalıdır.

Hızlı dil ayarının yanı sıra, ReadBarCodes gibi gereksiz yapılandırmaları devre dışı bırakarak daha da fazla hız kazanabilirsiniz. Kurulumu basit tutmak için IronOCR'un sayfa bölümlemesini otomatik algılamasına izin verin. Daha ileri yapılandırma seçenekleri için Tesseract detaylı yapılandırma kılavuzumuzu inceleyin.

Aşağıdaki kod örneği şu giriş görüntüsünü işler:

Hangi Giriş Formatını Kullanmalıyım?

Moby Dick başlangıç metni, koyu arka planda beyaz olarak gösterilen Ishmael'in tanıtımı

Hızlı Yapılandırma için Hangi Kod Gereklidir?

  1. IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronOcr
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    /* :path=/static-assets/ocr/content-code-examples/how-to/ocr-fast-configuration.cs */
    using IronOcr;
    using System;
    
    var ocrTesseract = new IronTesseract();
    
    // Fast Dictionary
    ocrTesseract.Language = OcrLanguage.EnglishFast;
    
    // Turn off unneeded options
    ocrTesseract.Configuration.ReadBarCodes = false;
    
    // Assume text is laid out neatly in an orthogonal document
    ocrTesseract.Configuration.PageSegmentationMod = TesseractPageSegmentationMod.Auto;
    
    using var ocrInput = new OcrInput();
    ocrInput.LoadImage("image.png");
    
    var ocrResult = ocrTesseract.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın

    arrow pointer

Hangi Çıkışı Bekleyebilirim?

Visual Studio düzenleyicisi, Moby Dick romanından açılış pasajını görüntülüyor

Bu, yukarıdan çıkarılan metin çıktı. OCR motoru edebi metni orijinal biçimlendirme ve yapısını koruyarak doğru bir şekilde yakalar. Hızlı yapılandırma, bu örnekte olduğu gibi net, yüksek kontrastlı metinler için mükemmel sonuçlar sağlar.


Hızlı Yapılandırma Standart ile Nasıl Karşılaştırılır?

Gerçek dünya etkisini göstermek için standart konfigürasyonu hızlı yapılandırmaya karşı değerlendirdik. Performansı karşılaştırmak ve hızlı yapılandırmanın kullanımındaki ödünleri görselleştirmek için her biri birkaç paragraf içeren 10 örnek resim setini kullanıyoruz.

Standart yapılandırma için, hız odaklı özellikler uygulamadan IronTesseract öğesini varsayılan ayarlarıyla başlatırız. Bu kıyaslama yaklaşıp, gerçek zamanlı OCR işlemlerini izleme< guide'e> yönelik performans izleme kılavuzumuza benzerdir.

Testi çalıştırmak için kullandığımız örnek girişler şunlardır. Bu görüntüler, çok sayfalı belgelerin veya toplu işlemlerin işlendiği tipik belge senaryolarını temsil eder.

Kıyaslamayı Nasıl Çalıştırırım?

:path=/static-assets/ocr/content-code-examples/how-to/ocr-fast-configuration-benchmark.cs
using IronOcr;
using System;
using System.Diagnostics;
using System.IO;

// --- Tesseract Engine Setup ---
var ocrTesseract = new IronTesseract();
ocrTesseract.Language = OcrLanguage.EnglishFast;
ocrTesseract.Configuration.ReadBarCodes = false;
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;

// --- 1. Define folder and get files ---
string folderPath = @"images"; // IMPORTANT: Set this to your image directory
string filePattern = "*.png";    // Change to "*.jpg", "*.bmp", etc. as needed
string outputFilePath = "ocr_results.txt"; // The new results file

// Get all image files in the directory
var imageFiles = Directory.GetFiles(folderPath, filePattern);

Console.WriteLine($"Found {imageFiles.Length} total images to process...");
Console.WriteLine($"Results will be written to: {outputFilePath}");

// --- 2. Start timer and process images, writing to file ---
// Open the output file *before* the loop for efficiency
using (StreamWriter writer = new StreamWriter(outputFilePath))
{
    var stopwatch = Stopwatch.StartNew();

    foreach (var file in imageFiles)
    {
        string fileName = Path.GetFileName(file);

        using var ocrInput = new OcrInput();
        ocrInput.LoadImage(file);

        var ocrResult = ocrTesseract.Read(ocrInput);

        // Check if any text was actually found
        if (!string.IsNullOrEmpty(ocrResult.Text))
        {
            // Write to Console
            Console.WriteLine($"--- Text found in: {fileName} ---");
            Console.WriteLine(ocrResult.Text.Trim());
            Console.WriteLine("------------------------------------------");

            // Write to File
            writer.WriteLine($"--- Text found in: {fileName} ---");
            writer.WriteLine(ocrResult.Text.Trim());
            writer.WriteLine("------------------------------------------");
            writer.WriteLine(); // Add a blank line for readability
        }
        else
        {
            // Write to Console
            Console.WriteLine($"No text found in: {fileName}");

            // Write to File
            writer.WriteLine($"No text found in: {fileName}");
            writer.WriteLine();
        }
    }

    stopwatch.Stop();

    // --- 3. Print and write final benchmark summary ---
    string lineSeparator = "\n========================================";
    string title = "Batch OCR Processing Complete";
    string summary = $"Fast configuration took {stopwatch.Elapsed.TotalSeconds:F2} seconds";

    // Write summary to Console
    Console.WriteLine(lineSeparator);
    Console.WriteLine(title);
    Console.WriteLine("========================================");
    Console.WriteLine(summary);

    // Write summary to File
    writer.WriteLine(lineSeparator);
    writer.WriteLine(title);
    writer.WriteLine("========================================");
    writer.WriteLine(summary);

    if (imageFiles.Length > 0)
    {
        string avgTime = $"Average time per image: {(stopwatch.Elapsed.TotalSeconds / (double)imageFiles.Length):F3} seconds";
        Console.WriteLine(avgTime);
        writer.WriteLine(avgTime);
    }
}

Console.WriteLine($"\nSuccessfully saved results to {outputFilePath}");
Imports IronOcr
Imports System
Imports System.Diagnostics
Imports System.IO

' --- Tesseract Engine Setup ---
Dim ocrTesseract As New IronTesseract()
ocrTesseract.Language = OcrLanguage.EnglishFast
ocrTesseract.Configuration.ReadBarCodes = False
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto

' --- 1. Define folder and get files ---
Dim folderPath As String = "images" ' IMPORTANT: Set this to your image directory
Dim filePattern As String = "*.png" ' Change to "*.jpg", "*.bmp", etc. as needed
Dim outputFilePath As String = "ocr_results.txt" ' The new results file

' Get all image files in the directory
Dim imageFiles = Directory.GetFiles(folderPath, filePattern)

Console.WriteLine($"Found {imageFiles.Length} total images to process...")
Console.WriteLine($"Results will be written to: {outputFilePath}")

' --- 2. Start timer and process images, writing to file ---
' Open the output file *before* the loop for efficiency
Using writer As New StreamWriter(outputFilePath)
    Dim stopwatch = Stopwatch.StartNew()

    For Each file In imageFiles
        Dim fileName As String = Path.GetFileName(file)

        Using ocrInput As New OcrInput()
            ocrInput.LoadImage(file)

            Dim ocrResult = ocrTesseract.Read(ocrInput)

            ' Check if any text was actually found
            If Not String.IsNullOrEmpty(ocrResult.Text) Then
                ' Write to Console
                Console.WriteLine($"--- Text found in: {fileName} ---")
                Console.WriteLine(ocrResult.Text.Trim())
                Console.WriteLine("------------------------------------------")

                ' Write to File
                writer.WriteLine($"--- Text found in: {fileName} ---")
                writer.WriteLine(ocrResult.Text.Trim())
                writer.WriteLine("------------------------------------------")
                writer.WriteLine() ' Add a blank line for readability
            Else
                ' Write to Console
                Console.WriteLine($"No text found in: {fileName}")

                ' Write to File
                writer.WriteLine($"No text found in: {fileName}")
                writer.WriteLine()
            End If
        End Using
    Next

    stopwatch.Stop()

    ' --- 3. Print and write final benchmark summary ---
    Dim lineSeparator As String = vbLf & "========================================"
    Dim title As String = "Batch OCR Processing Complete"
    Dim summary As String = $"Fast configuration took {stopwatch.Elapsed.TotalSeconds:F2} seconds"

    ' Write summary to Console
    Console.WriteLine(lineSeparator)
    Console.WriteLine(title)
    Console.WriteLine("========================================")
    Console.WriteLine(summary)

    ' Write summary to File
    writer.WriteLine(lineSeparator)
    writer.WriteLine(title)
    writer.WriteLine("========================================")
    writer.WriteLine(summary)

    If imageFiles.Length > 0 Then
        Dim avgTime As String = $"Average time per image: {(stopwatch.Elapsed.TotalSeconds / CDbl(imageFiles.Length)):F3} seconds"
        Console.WriteLine(avgTime)
        writer.WriteLine(avgTime)
    End If
End Using

Console.WriteLine(vbLf & $"Successfully saved results to {outputFilePath}")
$vbLabelText   $csharpLabel

Bu kıyaslama kodu birkaç önemli kavramı gösterir:

  1. Toplu İşleme: Kod, görüntüleri tek bir işlemde işler; bu, paralel işleme kullanarak daha büyük hız iyileştirmeleri sağlamak için çok iş parçacıklı OCR örneğimize benzer.

  2. Performans Ölçümü: Stopwatch sınıfını kullanmak, farklı yapılandırmaları karşılaştırmak için gerekli olan milisaniye düzeyinde doğru zamanlama ölçümleri sağlar.

  3. Sonuç Günlüğü: Hem konsol hem de dosya çıktısı, sonuçları daha sonra analiz edebilmenizi ve yapılandırmalar arasındaki doğruluk farklarını doğrulamanızı sağlar.

Ne Tür Performans Kazançları Bekleyebilirim?

Mod Toplam Süre Ort. Süre / Görüntü Standart ile Karşılaştırmalı Süre Kazancı Standart ile Karşılaştırmalı Doğruluk Kazancı
Standart 10,40 s 1,040 s Temel Çizgi Temel Çizgi
Hızlı 8,60 s 0,860 s +17,31% (Daha Hızlı) +0% (Aynı)

Standart ve hızlı yapılandırmalar arasındaki karşılaştırma, hızlı yapılandırma için önemli bir performans avantajını gösteriyor. Standart mod, temel olarak kurularak toplam 10,40 saniye içinde tamamlandı ve hızlı yapılandırma aynı 10 görüntü yığını sadece 8,60 saniyede tamamlandı. Bu, %17,31 oranında önemli bir zaman kazancı anlamına gelir. Önemli olan, bu hız iyileştirmesinin kaliteyi etkilememesidir; Her iki mod arasındaki doğruluk aynıydı ve her iki yapılandırma da aynı metin çıktısını üretti.

Sonuçları doğrulamak için hem hızlı metin çıktısını hem de standart metin çıktısını indirebilirsiniz.

Hızlı Yapılandırmayı Ne Zaman Kullanmalıyım?

Hızlı yapılandırma, aşağıdaki durumlar için özellikle faydalıdır:

  • Yüksek hacimli belge işleme binlerce sayfanın hızlı işlenmesini gerektiğinde
  • Gerçek zamanlı uygulamalar yanıt süresinin kritik olduğu durumlarda
  • Web uygulamaları kullanıcı deneyimini sürdürmek isteyen
  • Toplu işleme sistemleri sıkı takvimlerde çalışan

Çok dilli belgeler, düşük kaliteli taramalar veya plakalar veya pasaportlar gibi özel belge türlerini içeren daha karmaşık senaryolar için maksimum doğruluk sağlamak adına standart yapılandırmayı kullanmak isteyebilirsiniz.

IronOCR, yapılandırmalar arasında geçişi basit hale getiriyor - sadece birkaç özellik değiştirin ve uygulamanız, büyük kod değişiklikleri olmadan farklı performans gereksinimlerine uyum sağlayabilir.

Sıkça Sorulan Sorular

Hızlı OCR yapılandırması standart ayarlara kıyasla ne kadar daha hızlıdır?

IronOCR'nin hızlı yapılandırması, standart OCR ayarlarına göre %17'ye kadar daha hızlı işlem oranlarına ulaşabilir, doğruluk üzerinde minimal etki ile. Bu performans kazancı, EnglishFast dil modu ve gereksiz özellikleri devre dışı bırakarak sağlanır.

Hızlı OCR işlemesini mümkün kılan ana ayar nedir?

IronOCR'deki hızlı yapılandırma için ana bileşen, Defteri Dil özelliğini OcrLanguage.EnglishFast olarak ayarlamaktır. Bu, hız için küçük bir potansiyel doğruluk kaybı göze alınarak önceliklenir, bu da büyük ölçekli işlemler ve zamana kritik uygulamalar için idealdir.

EnglishFast modunu kullanmanın ötesinde OCR hızını nasıl daha da optimize edebilirim?

IronOCR'de gereksiz özellikler devre dışı bırakılarak hız artışı sağlanabilir; örneğin, barkod algılamasına ihtiyacınız yoksa ReadBarCodes'u false olarak ayarlamak. Ayrıca, TesseractPageSegmentationMode.Auto kullanarak IronOCR'nin sayfa segmentasyonunu otomatik algılamasına izin verin.

Hızlı OCR yapılandırmasını standart ayarlara yerine ne zaman kullanmalıyım?

IronOCR'de hızlı OCR yapılandırması, zamanın kritik olduğu ve ufak bir doğruluk takasının kabul edilebilir olduğu yüksek hacimli işleme senaryoları için idealdir. Bu, taranmış belgelerin, PDF'lerin veya görüntülerin hızlı şekilde işlenmesine ihtiyaç duyan misyon-kritik uygulamalar için özellikle yararlıdır.

Hızlı yapılandırma tüm belge türleriyle çalışır mı?

Evet, IronOCR'nin hızlı yapılandırması, taranmış belgeler, PDF'ler ve görüntüler dahil olmak üzere çeşitli belge türleriyle etkin şekilde çalışır. Optimizasyon faydaları, işlediğiniz giriş formatına bakılmaksızın geçerlidir.

Hızlı OCR modunu kullanırken herhangi bir doğruluk kaybı var mı?

IronOCR'nin hızlı yapılandırması, minimal doğruluk etkisi ile önemli tarama performans kazançları sağlar. EnglishFast modu kullanılırken küçük bir potansiyel doğruluk kaybı olsa da, hız öncelikli uygulamalar için takas genellikle değerlidir.

IronOCR mevcut uygulamalara entegre edilebilir mi?

IronOCR, C# kullanarak mevcut uygulamalara kolayca entegre edecek şekilde tasarlanmıştır, bu sayede geliştiriciler, yazılımlarına minimal çabayla OCR işlevselliği ekleyebilir.

IronOCR'yi belge yönetimi için kullanmanın faydaları nelerdir?

IronOCR'yi belge yönetimi için kullanmak, taranmış belgeleri aranabilir ve düzenlenebilir metne dönüştürerek iş akışını hızlandırır, manuel veri giriş ihtiyacını azaltır ve belge erişilebilirliğini artırır.

IronOCR veri doğruluğunu nasıl artırabilir?

IronOCR, gelişmiş tanıma algoritmaları ve görüntü düzeltme özellikleriyle veri doğruluğunu artırır, böylece metin çıkarım sürecinin hem güvenilir hem de kesin olmasını sağlar.

IronOCR için ücretsiz bir deneme mevcut mu?

Evet, Iron Software, IronOCR'nin özelliklerini ve yeteneklerini, bir satın alma kararı vermeden önce test edebilmek için ücretsiz bir deneme sunar.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,896,332 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.