IRONSOFTWAREHOME
DIĞER BILEŞENLERLE KARŞILAŞTIRIN

IronOCR ile LLM-Tabanlı OCR: .NET Geliştiricileri Hangisini Seçmeli?

Curtis Chau
Curtis Chau
Updated: 28 Haziran 2026

Dört model dosyası. Bu, tek bir karakter tanınmadan önce RapidOCR.NET'in talep ettiği ilk şey — bir algılama modeli, bir yön sınıflandırıcı, bir tanıma modeli, ve ayrı ayrı bir GitHub sürüm sayfasından indirilen ve kesin yol yapılandırmasıyla birleştirilen bir karakter sözlüğü. İlk engine.Run() çağrınız bir sonuç vermeden önce, manuel bir indirme dizisi yönettiniz, kodda dosya yollarını düzenlediniz, .csproj'e MSBuild kopyalama kuralları eklediniz ve ONNX Runtime'ın yerel ikili dosyalarının dağıtım hedefinizle eşleştiğini doğruladınız. Üretim için OCR seçeneklerini değerlendiren bir ekip için, bu kurulum törenselliği RapidOCR.NET'in tam hikayesidir.

RapidOCR.NET'i Anlamak

RapidOCR.NET, Baidu'nun PaddleOCR derin öğrenme modellerinin ONNX formatına CPU'ye optimize edilmiş bir aktarımı olan RapidOCR projesinin çevresinde topluluk tarafından sürdürülmekte olan bir .NET sarmalayıcıdır. NuGet paketi (RapidOcrNet) GitHub'da BobLd tarafından Apache 2.0 lisansı altında tek bir geliştirici tarafından sürdürülmektedir. Bu soy çizgisini anlamak önemlidir: Kütüphane, Baidu PaddlePaddle'dan PaddleOCR'ye, topluluk RapidOCR ONNX dönüşümüne, .NET sarmalayıcısına kadar üç soyutlama katmanı uzağında yer alır.

Ana mimari özellikler:

  • ** 4 dosyalı model gereksinimi:** Algılama (det.onnx), yön belirleme sınıflandırıcısı (cls.onnx), tanıma (rec.onnx) ve karakter sözlüğü (keys.txt), motor başlatılmadan önce yapılandırılmış yollarda mevcut olmalıdır.
  • ONNX Runtime bağımlılığı: Microsoft.ML.OnnxRuntime (CPU) veya Microsoft.ML.OnnxRuntime.Gpu (CUDA) gerektirir ve uygulama boyutuna 30–50 MB ekler. Çalışma zamanı ikili dosyalar dağıtım platformu ile eşleşmelidir.
  • Dil sınırlaması: Modeller esas olarak Çince ve İngilizce üzerinde eğitilmiştir. Avrupa dilleri (İspanyolca, Fransızca, Almanca), Kiril alfabeleri (Rusça, Ukraynaca), Arapça, İbranice ve Sanskrit alfabeler desteklenmez. Japonca ve Korece sınırlı, topluluk tarafından katkıda bulunulmuş deneysel modellere sahiptir.
  • Sadece görüntü girişi: RapidOCR.NET'in yerel PDF desteği yoktur. Bir PDF'yi işlemek için sayfaları görüntülere dönüştürmek, her görüntüyü ayrı ayrı OCR'den geçirmek ve sonuçları elle tekrar birleştirmek için harici bir işleme kütüphanesi gerekir.
  • Soğuk başlangıç gecikmesi: Model yüklemesi ilk çalıştırmada 2-5 saniye sürer ve çalışma zamanında 300–500 MB bellek tüketir.
  • Topluluk ölçeği: Proje sınırlı Stack Overflow varlığına, README'nin ötesinde minimal belgelendirmeye, ticari bir destek veya bakım SLA'sına sahiptir.
  • Aranabilir PDF çıktısı yok: Kütüphane, görüntülerden metin çıkarır. Metni bir PDF'ye aranabilir bir metin katmanı olarak geri yazamaz.

4 Model Yapılandırma Aşırı Yükü

Her RapidOCR.NET uygulaması, karmaşıklıktan bağımsız olarak bu başlangıç bloğu ile başlar:

// RapidOcrNet: 4 paths required — any missing file throws at runtime
var engine = new RapidOcrEngine(new RapidOcrOptions
{
    DetModelPath = "./models/det.onnx",      // ~3 MB download
    ClsModelPath = "./models/cls.onnx",      // ~1 MB download
    RecModelPath = "./models/rec_en.onnx",   // ~2–10 MB depending on language
    KeysPath     = "./models/en_keys.txt"    // ~100 KB character dictionary
});

// Text blocks returned — must be sorted and joined manually
var result = engine.Run(imagePath);
var text = string.Join("\n", result.TextBlocks
    .OrderBy(b => b.BoundingBox.Top)
    .ThenBy(b => b.BoundingBox.Left)
    .Select(b => b.Text));

Çince OCR'ye geçiş bir yapılandırma değişikliği değil—bu bir dosya değişimidir. İngilizce tanıma modeli (en_rec.onnx / en_keys.txt) ve Çince tanıma modeli (ch_rec.onnx / ch_keys.txt) ayrı indirmelerdir. Bir belge hem Çince hem de İspanyolca metin içeriyorsa, ilerleme yolu yoktur: İspanyolca modeller RapidOCR model kataloğunda yer almaz.

.csproj ayrıca derleme sırasında dört dosyanın tamamının kopyalanması için açık MSBuild girdilerini gerektirir:

<ItemGroup>
  <Content Include="models\**\*.*">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemGroup>
XML

Bu adımı kaçırırsanız, üretim dağıtımı, çalışma zamanında yollar hiçbir şeye çözümlenemediğinde sessizce kırılır.

IronOCR'u Anlamak

IronOCR, optimize edilmiş bir Tesseract 5 motoru üzerine inşa edilmiş, tek bir NuGet paketi ile çalışan ticari bir .NET OCR kütüphanesidir, dış model dosyaları yok, tessdata yönetimi yok ve yerel ikili yapılandırma gerektirmez. .NET geliştirme senaryolarının tam yelpazesini hedefler — ASP.NET web uygulamaları, konsol toplu işleyiciler, WPF masaüstü araçları, Azure Fonksiyonları, AWS Lambda, Docker konteynerleri ve MAUI mobil uygulamaları — Windows, Linux, macOS ve ARM üzerinde.

Anahtar özellikler:

  • Tek paket dağıtımı: dotnet add package IronOcr tam kurulumu sağlar. Tüm motor ikilileri, varsayılan (İngilizce) yapılandırma için dil verileri ve ön işleme algoritmaları paketin içindedir.
  • Otomatik ön işleme hattı: Eğiklik düzeltme, gürültü azaltma, kontrast iyileştirme, ikilileştirme ve çözünürlük normalizasyonu, ihtiyaç duyan görüntülerde otomatik olarak çalışır. Manuel filtre uygulaması gerektiğinde kullanılabilir.
  • Yerel PDF desteği: PDF'ler doğrudan IronTesseract.Read()'e beslenir, dönüştürme adımı yoktur. Parola korumalı PDF'ler bir Password parametresini kabul eder. Aranabilir PDF çıktısı, sonuç üzerindeki tek bir yöntem çağrısıdır.
  • NuGet üzerinden 125'ten fazla dil: Her dil paketi (IronOcr.Languages.French, IronOcr.Languages.Arabic, vb.) bir NuGet bağımlılığı olarak yüklenir. Dilleri değiştirmek bir dosya indirme değil, bir özellik ataması.
  • Yapılandırılmış sonuç modeli: OcrResult, .Pages, .Paragraphs, .Lines ve her kelime için güven skorlarını sınır kutusu koordinatlarıyla birlikte açıklar.
  • İplik güvenli ve durumdan bağımsız: Birden çok IronTesseract örneği kilit veya paylaşılan durum olmadan paralel çalışır.
  • Ticari destek: $999 (Lite) başlangıçtan itibaren süresiz lisanslı, e-posta desteği ve aktif bakımdaki sürümlenmiş API ile.

Özellik Karşılaştırması

ÖzellikRapidOCR.NETIronOCR
KurulumNuGet + 4 manuel model indirimiTek bir NuGet paketi
Dil desteği~5 (CJK + yalnızca İngilizce)125+NuGet dil paketleri aracılığıyla
Yerel PDF girişiHayırEvet
Aranabilir PDF çıktısıHayırEvet
Dahili ön işlemeHayırEvet (otomatik + manuel filtreler)
Ticari destekYok (topluluk)Evet (lisansla birlikte gelir)

Ayrıntılı Özellik Karşılaştırması

Kategori / ÖzellikRapidOCR.NETIronOCR
Kurulum ve Yükleme
NuGet yükleEvetEvet
Dış model indirmeleri gerekliEvet (4 dosya)Hayır
Yol yapılandırması gerekliEvetHayır
MSBuild kopyalama kuralları gerekliEvetHayır
NuGet yüklemesinden hemen sonra çalışırHayırEvet
Dil Desteği
İngilizceEvetEvet
Çince Basitleştirilmiş / GelenekselEvet (öncelikli odak)Evet
JaponcaYalnızca deneyselEvet
KoreceYalnızca deneyselEvet
Avrupa dilleri (İspanyolca, Fransızca, Almanca, vb.)HayırEvet (30+)
Kiril (Rusça, Ukraynaca, vb.)HayırEvet (15+)
Arapça / İbraniceHayırEvet
Sanskrit alfabeler (Hintçe, Bengalce, Tamil)HayırEvet (10+)
Çok dilli eşzamanlı OCRHayırEvet
Toplam desteklenen diller~5125+
Giriş Biçimleri
JPEG / PNG / BMP / TIFFEvetEvet
PDF (yerel, dönüşüm yok)HayırEvet
Şifre korumalı PDFHayırEvet
Akış / bayt dizisiSınırlıEvet
URL girişiHayırEvet
Çıktı
Düz metinEvetEvet
Metin bloğu çevreleyici kutularıEvetEvet
Yapılandırılmış kelimeler / satırlar / paragraflarKısmen (yalnızca bloklar)Evet
Kelime başına güvenilirlik puanlarıEvet (blok başına)Evet
Aranabilir PDFHayırEvet
hOCR içeri aktarmaHayırEvet
Ön işlem
Otomatik ön işlemHayırEvet
HizalamaHayırEvet
Gürültü gidermeHayırEvet
Kontrast / ikilileştirmeHayırEvet
Çözünürlük iyileştirmesiHayırEvet
Dağıtım
Kendi kendine yeten tek paketHayır (4+ dış dosya)Evet
Docker desteğiManuel model kopyası gerekliEvet (kutu dışı)
Linux desteğiONNX Runtime yerel ikilileri gerektirirEvet
macOS desteğiONNX Runtime yerel ikilileri gerektirirEvet
Destek ve Bakım
Ticari destek / SLAHayırEvet
Aktif şirket destekli bakımHayır (tek bir topluluk geliştiricisi)Evet
Lisans türüApache 2.0 (ücretsiz)Süresiz ticari ($999+)

ONNX Model Yönetimi ve Sıfır Yapılandırma Karşılaştırması

RapidOCR.NET ile IronOCR arasındaki en büyük operasyonel fark, doğruluk değil — uygulamanızın temas ettiği her ortamda dört dış model dosyasının yönetiminin süregiden maliyetidir.

RapidOCR.NET Yaklaşımı

Model dosyaları NuGet paketi ile paketlenmemiştir. RapidOCR projesi için GitHub sürüm sayfalarında bulunurlar ve bant dışı indirilmeli, elle sürümlenmeli ve uygulamanızla dağıtılmalıdır. RapidOCR projesi, daha iyi doğruluk için güncellenmiş modeller yayınladığında, indirimi tekrarlarsınız ve dağıtımınızdaki dosyaları değiştirirsiniz.

CI/CD boru hattında, model dosyaları ya depoya taahhüt edilmelidir (Git geçmişine 15–25 MB ikili veri ekler) ya da özel betiklerle derleme adımında getirilmelidir. Docker konteynerinde, her dilin model seti özel bir COPY talimatı ve azımsanmayacak bir katman ekler. Bir Kubernetes dağıtımında, model dosyaları genellikle monte edilmiş bir hacimde veya görüntüde yer alır, her ikisi de güncellemelerin nasıl yayılacağına dair politikaları gerektirir.

Kaynak dosyalarındaki doğrulama mantığı kırılganlığı somut hale getirir:

// RapidOcrNet: Runtime validation needed because any missing file crashes the engine
public static bool ValidateModelFiles()
{
    var requiredFiles = new[]
    {
        Path.Combine(ModelDirectory, "det.onnx"),
        Path.Combine(ModelDirectory, "cls.onnx"),
        Path.Combine(ModelDirectory, "rec_en.onnx"),
        Path.Combine(ModelDirectory, "en_keys.txt")
    };

    var missingFiles = requiredFiles.Where(f => !File.Exists(f)).ToList();

    if (missingFiles.Any())
    {
        Console.WriteLine("ERROR: Missing required model files:");
        foreach (var file in missingFiles)
            Console.WriteLine($"  - {file}");
        return false;
    }

    return true;
}

RapidOCR.NET'i kullanan üretim uygulamaları rutin olarak, eksik bir model dosyasının paket yükleme zamanında temiz bir hata üretmediği — motor ilk başlatıldığında çalışma zamanı çökmesine neden olduğu için bu tür başlangıç doğrulamalarını içerir. Bu başarısızlık, geliştirme değil, üretimde yüzeye çıkar.

IronOCR Yaklaşımı

Yönetilecek model dosyası yok. dotnet add package IronOcr'den sonra, motor hazırdır:

// IronOCR: no model downloads, no path configuration, no validation boilerplate
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";
var text = new IronTesseract().Read("document.jpg").Text;

IronTesseract kurulum rehberi tam kurulum yolunu gösterir. İngilizce dışındaki dilleri genişleten dil paketleri, NuGet paketleridir — dotnet add package IronOcr.Languages.French — ve geri yükleme adımı, zaten NuGet bağımlılıklarını geri yükleyen CI/CD boru hatlarında her şeyi halleder. İkili model dosyaları, Dockerfile'daki COPY katmanları veya başlangıç doğrulama betikleri hakkında hiçbir .gitignore kararı yoktur.

Docker'a dağıtan ekipler için IronOCR Docker kılavuzu, Debian/Ubuntu tabanlı görüntülerde tek gereken sistem bağımlılığı (libgdiplus) ve başka bir şey içermez.

Dil Desteği

RapidOCR.NET Yaklaşımı

RapidOCR.NET'in dil kapsamı kökenini yansıtır. PaddleOCR, Baidu tarafından Çince dilindeki internet aramalarına hizmet etmek için inşa edilmiştir. Modelleri, Çince Basitleştirilmiş ve Geleneksel için mükemmeldir. İngilizce desteği dahil edilmiştir ancak tasarımın birincil hedefi değildi. Japonca ve Korece, topluluk tarafından katkıda bulunulmuş deneysel modellere sahiptir. Geriye kalan her şey — İspanyolca, Fransızca, Almanca, Rusça, Arapça, Hintçe, Portekizce ve 100'den fazla diğer dil — mevcut modeller yok.

Desteklenen diller arasında geçiş yapmak farklı model dosyalarını indirmenizi gerektirir:

// RapidOcrNet:İngilizceengine
var englishEngine = new RapidOcrEngine(new RapidOcrOptions
{
    DetModelPath = Path.Combine(modelPath, "det.onnx"),
    ClsModelPath = Path.Combine(modelPath, "cls.onnx"),
    RecModelPath = Path.Combine(modelPath, "en_rec.onnx"),   // English-specific
    KeysPath     = Path.Combine(modelPath, "en_keys.txt")    // English-specific
});

// RapidOcrNet: Chinese engine — different rec and keys files required
var chineseEngine = new RapidOcrEngine(new RapidOcrOptions
{
    DetModelPath = Path.Combine(modelPath, "det.onnx"),
    ClsModelPath = Path.Combine(modelPath, "cls.onnx"),
    RecModelPath = Path.Combine(modelPath, "ch_rec.onnx"),   // Different download
    KeysPath     = Path.Combine(modelPath, "ch_keys.txt")    // Different download
});

// Spanish? NotSupportedException — no model exists
C#

Aynı sıradan İngilizce, Çince ve İspanyolca belgeleri işlemek isteyen bir uygulamanın RapidOCR.NET'te İspanyol belgeleri için uygun bir yolu yoktur.

IronOCR Yaklaşımı

IronOCR 125+dili destekler, her biri bir NuGet dil paketi olarak mevcuttur. Geçiş, IronTesseract örneğindeki bir enum özelliği atamasıdır — dosya indirmeleri yok, motor yeniden oluşturma yok:

// IronOCR: language switching is a property change, not a file swap
var ocr = new IronTesseract();

// English
ocr.Language = OcrLanguage.English;

// Chinese Simplified
ocr.Language = OcrLanguage.ChineseSimplified;

// Spanish — no model download needed
ocr.Language = OcrLanguage.Spanish;

// Arabic — just works
ocr.Language = OcrLanguage.Arabic;

// Russian — just works
ocr.Language = OcrLanguage.Russian;

var result = ocr.Read("document.jpg");

Karma dil belgeleri AddSecondaryLanguage kullanır:

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.ChineseSimplified;
ocr.AddSecondaryLanguage(OcrLanguage.English);
var result = ocr.Read("mixed-document.jpg");

çok dilli nasıl yapılır ve uluslararası diller örneği dil paketi yüklemesini ve ikincil dil yapılandırmasını ayrıntılı olarak kapsar.

PDF İşleme ve Çıktı Yetenekleri

RapidOCR.NET Yaklaşımı

RapidOCR.NET görüntüleri işler. PDF'ler görüntü değildir. Kütüphanede PDF işleme yeteneği, PDF yazma yeteneği ve aranabilir PDF çıktısı oluşturma mekanizması yoktur. RapidOCR.NET ile taranmış bir PDF'den metin çıkarmak en az üç ayrı bileşen gerektirir:

// RapidOcrNet: PDF processing requires external library + manual assembly
public async Task<string> ExtractTextFromPdf(string pdfPath)
{
    // Step 1: Requires PdfPig, Docotic, or similar external library
    var pageImages = await RenderPdfToImages(pdfPath);

    // Step 2: Initialize RapidOcr with 4 model files (must already be downloaded)
    using var engine = new RapidOcrEngine(new RapidOcrOptions
    {
        DetModelPath = "models/det.onnx",
        ClsModelPath = "models/cls.onnx",
        RecModelPath = "models/rec_en.onnx",
        KeysPath     = "models/en_keys.txt"
    });

    // Step 3: OCR each image individually
    var results = new List<string>();
    foreach (var pageImage in pageImages)
    {
        var result = engine.Run(pageImage);
        results.Add(string.Join("\n", result.TextBlocks.Select(b => b.Text)));
    }

    // Step 4: Combine manually — page structure not preserved
    return string.Join("\n\n", results);
}

Bu, başka bir NuGet bağımlılığı, başka bir API yüzey alanını öğrenmeyi ve büyük belgeler için sayfa işlenmiş bitmapleri bellekte tutmanın getirdiği bellek baskısını ekler. Aranabilir PDF çıktısı — tanınan metni orijinal taramanın üzerine gizli bir OCR katmanı olarak yazmak — bu hattın herhangi bir noktasında elde edilemez.

IronOCR Yaklaşımı

IronOCR, PDF'leri yerel olarak okur. Aynı IronTesseract.Read() yöntemi hem görüntü yollarını hem de PDF yollarını kabul eder:

// IronOCR: direct PDF OCR — no conversion, no external library
var text = new IronTesseract().Read("scanned-document.pdf").Text;

//Şifre korumalı PDF— one parameter
using var input = new OcrInput();
input.LoadPdf("encrypted.pdf", Password: "secret");
var result = new IronTesseract().Read(input);

// Aranabilir PDF— one method call on the result
var result = new IronTesseract().Read("scanned.pdf");
result.SaveAsSearchablePdf("searchable-output.pdf");
C#

PDF girişi nasıl yapılır rehberi sayfa seçimi, parola yönetimi ve çok sayfalı işlemeyi kapsar. aranabilir PDF nasıl yapılır rehberi, orijinal tarama ile görsel olarak özdeş kalan, ancak tam metin arama katmanı ekleyen uyumlu derece çıktıyı oluşturmayı gösterir. Belge arşivleme hatları oluşturan ekipler için, bu çıktı formatı nihai hedeftir — ve IronOCR paketinin ötesinde başka hiçbir ek bağımlılık gerektirmez.

Üretim Hazırlığı ve Topluluk Olgunluğu

RapidOCR.NET Yaklaşımı

RapidOCR.NET daha yeni bir projedir. GitHub deposu, yerleşik .NET OCR kütüphaneleri ile karşılaştırıldığında sınırlı yıldız ve katkı aktivitesine sahiptir. Stack Overflow'da minimal kapsama sahiptir. Üretimde kenar vakalar ortaya çıktığında — alışılmadık görüntü yönlendirmeleri, belirli karakter setleri, ONNX Runtime sürüm çatışmaları, GPU mod yapılandırması — birincil kaynak GitHub sorunlar takipçisidir. Ticari bir destek katmanı yok, bakım SLA'sı yok ve garanti edilen bir yanıt zaman çizelgesi yok.

Bağımlılık zinciri ilave risk tanıtıyor. RapidOCR.NET, RapidOCR projesinin model sürümlerine bağlıdır. RapidOCR projesi, PaddleOCR'ın model mimarisine bağlıdır. Bu zincirin herhangi bir katmanındaki bir kırılma değişikliği, kullanıcıların güncellenmeden önce .NET sarmalayıcı sürdürücüsünün yanıt vermesini gerektirir — ve sarmalayıcı, tek bir topluluk geliştiricisi tarafından örgütsel bir arka plan olmadan sürdürülmektedir.

Dağıtım da ONNX Runtime sürümleme sorunlarını ortaya çıkarır. Microsoft.ML.OnnxRuntime paketi, küçük versiyonlar arasında yıkıcı değişikliklere sahipti ve onunla birlikte gönderilen yerel ikili dosyalar platforma özgüdür. linux/amd64 üzerine inşa edilmiş bir konteyner görüntüsü, linux/arm64 üzerine inşa edilmiş olanla aynı ONNX Runtime ikili dosyalarını kullanamaz. Her dağıtım hedefi doğrulama gerektirir.

IronOCR Yaklaşımı

IronOCR daha fazla bir on yıldır aktif ticari geliştirme altındadır. Kütüphane, belgelenmiş kırılma değişiklikleri, .NET SDK sürümleriyle uyumlu düzenli sürümleri olan sürümlenen bir API altında gönderilir ve her ticari lisansla birlikte e-posta desteği dahil edilir. Üretim hatları oluşturan ekipler, GitHub sorunlar kuyruğu yerine, birinin boş zamanında izlenen bir destek yolu alır.

Tek paket tasarımı, dağıtım doğrulama döngüsünü tamamen ortadan kaldırır. NuGet geri yükleme adımı belirleyicidir: Aynı paket sürümü, Windows, Linux ve macOS'ta aynı çalışan kurulumu üretir, platforma özgü yerel ikili yönetimi olmaksızın. AWS Lambda ve Azure dağıtımları için, fonksiyon paketi yalnızca yayınlanan uygulamayı içerir — model dosyası yedek parçaları, hacim montajları yok, başlangıç doğrulama mantığı yok.

düşük kaliteli tarama örneği ve görüntü kalitesi düzeltme nasıl yapılır rehberi, genellikle ONNX tabanlı hatlarda özel kod gerektiren ön işleme senaryolarını — eğik taramalar, gürültülü arka planlar, düşük kontrastlı belgeler — seçilen uygun filtre yöntemleri dışında herhangi bir kod gerektirmeden kapsar.

API Eşleme Başvurusu

RapidOCR.NETIronOCR Karşılığı
new RapidOcrEngine(new RapidOcrOptions { ... })new IronTesseract()
RapidOcrOptions.DetModelPathGerekli değil — paket dahilinde
RapidOcrOptions.ClsModelPathGerekli değil — paket dahilinde
RapidOcrOptions.RecModelPathGerekli değil — paket dahilinde
RapidOcrOptions.KeysPathGerekli değil — paket dahilinde
RapidOcrOptions.UseGpuDoğrudan karşılık yok (içsel olarak CPU'ye optimize edilmiş)
RapidOcrOptions.NumThreadsIronTesseract (iplik güvenli; kullan Parallel.ForEach)
engine.Run(imagePath)new IronTesseract().Read(imagePath)
result.TextBlocksresult.Words / result.Lines / result.Paragraphs
result.TextBlocks[i].Textresult.Words[i].Text
result.TextBlocks[i].Confidenceresult.Words[i].Confidence
result.TextBlocks[i].BoundingBoxresult.Words[i].X, .Y, .Width, .Height
string.Join("\n", result.TextBlocks.Select(b => b.Text))result.Text
Manuel dil dosyası değişimiocr.Language = OcrLanguage.French
PDF-to-image + engine.Run()new IronTesseract().Read("doc.pdf")
Mevcut değilresult.SaveAsSearchablePdf("output.pdf")
Mevcut değilresult.SaveAsHocrFile("output.hocr")
engine.Dispose()using var ocr = new IronTesseract()

Ekibiniz RapidOCR.NET'ten IronOCR'a Geçmeyi Düşündüğünde

Model Dosya Yönetimi Dağıtımda Tıkanıklık Olduğunda

Prototip için RapidOCR.NET ile başlayan ekipler, üretim aşamasına geçmeye çalıştıklarında genellikle model dosyası yönetimi duvarına çarparlar. Dört model dosyasının sürümlendirilmesi, izlenmesi, oluşturulurken kopyalanması, CI (Sürekli Entegrasyon) eserlerine dahil edilmesi, sahne ortamına ve üretim ortamına dağıtılması gerekir — NuGet bağımlılık grafiğinden ayrı olarak. Küçük bir ekipte, bu operasyonel yük bir kez üstlenilir ve unutulur. Birden fazla hizmet, birden fazla ortam ve birden fazla CI boru hattını sürdüren bir ekipte, model dosyası dağıtımı etrafındaki özel betik yazımı, anlamlı bir bakım maliyetine dönüşür. Bir ekip arkadaşı "neden bu models/ klasörünü depoda bulunduruyoruz ve silersem ne olur?" diye sorduğunda ve cevap beş dakikalık bir açıklama gerektirdiğinde, genellikle değerlendirme o zaman başlar. IronOCR, model yönetim yüzeyinin tamamını ortadan kaldırır: ayrı olarak indirilecek hiçbir şey, CI'ye kopyalanacak hiçbir şey, başlangıçta doğrulanacak hiçbir şey yok.

Desteklenmeyen Dilde Bir Belge Geldiğinde

Dil kapsamı eksikliği bir durma noktasıdır, yapılandırma sorunu değildir. Bir kuruluş Almanca sözleşmeler, Fransızca faturalar, Rusça satın alma siparişleri veya Arapça yazışmalar alırsa, RapidOCR.NET bu belgeler için hiçbir yol sunmaz — "sınırlı doğruluk" değil, model yok, sonuç yok. CJK odaklı bir kullanım durumu için başlangıçta RapidOCR.NET'i seçen ekipler, bu kümenin dışındaki bir belgeyi işlemeleri gerektiğinde ilk kez bu sınırı keşfeder. IronOCR'nin dil özellikleri, NuGet üzerinden kurulabilen 125'ten fazla dili kapsar, böylece OCR hattının işleyebileceği kapsam uygulama koduna dokunmadan genişletilir - sadece dil paketini ekleyin ve bir enum özelliğini değiştirin.

Uygulama PDF Giriş veya Çıkışı Gerektirdiğinde

Belgelerin OCR işlemlerinde önemli bir kategori PDF'leri içerir: taranmış sözleşmeler, arşivlenmiş faturalar, çok işlevli yazıcılar tarafından PDF'ye dönüştürülmüş faks formları. RapidOCR.NET, ayrı bir PDF işleme kütüphanesi, özel dönüşüm kodu ve sayfa boyutundaki bit eşlemeler için bellek yönetimi olmadan hiçbirini okuyamaz. Belge alım hatları inşa eden ekipler, RapidOCR.NET yığınının hızlı bir şekilde en az iki kütüphane gerektirdiğini keşfeder — biri PDF oluşturma, diğeri OCR için — her biri kendi güncelleme döngüleri ve uyumluluk yüzeyleri ile. IronOCR, her ikisini tek bir pakette işler. RapidOCR.NET için kapsam dışında kalan taranmış bir arşivi arama yapılabilir bir dizine dönüştürerek arama yapılabilir PDF'ler üretme yeteneği,IronOCR ile tek bir yöntem çağrısıdır. Uyumluluk gereksinimlerine sahip belge yönetimi uygulamaları geliştiren ekipler, genellikle arama yapılabilir PDF çıktısı özelliğini belirleyici yetenek olarak belirtir.

Destek Yolu Olmadan Üretim Sorunları Ortaya Çıktığında

Topluluk projeleri, katkıda bulunanların müsaitliğine bağlı olarak yürütülür. Bir RapidOCR.NET üretim dağıtımı yeni bir edge vakası ile karşılaştığında — belirli bir ONNX Runtime sürüm uyuşmazlığı, alışılmadık bir resim formatında model çıkarım hatası, sürekli yük altında bir bellek sızıntısı — destek yolu bir GitHub sorunu açmak ve beklemektir. SLA yükümlülükleri veya iş açısından kritik belge işleme boru hatlarına sahip ekipler için, bu geçerli bir olay müdahale modeli değildir. IronOCR'nin ticari lisansı, ekiplerin bir Pazartesi günü son teslim tarihinden önce Cuma gecesi bir şey bozulduğunda gerçek bir iletişim noktası sağlayan doğrudan e-posta desteğini içerir.

Proje Prototip Varsayımlarının Ötesine Geçtiğinde

RapidOCR.NET, deneysel bir kavram kanıtı için makul bir seçimdir: ücretsiz, üzerinde pazarlık yapılacak bir lisans yoktur, model ayarının ötesinde hızlı kurulum yapılabilir. Bu kavram kanıtı bir üretim özelliği haline geldiğinde, laboratuvar ortamında kabul edilebilir olan kısıtlamalar — PDF desteği olmaması, dar dil kapsamı, manuel model yönetimi, ticari destek eksikliği — engel haline gelir. RapidOCR.NET'ten IronOCR'a geçiş yolu mekaniktir: paketleri kaldırın, modeller dizinini silin, MSBuild kopya kurallarını kaldırın, motor başlangıç bloğunu sıfır argümanlı bir OCR motoru yapıcısı ile değiştirin ve aynı anda PDF girişini, 125 dil kapsamını, otomatik ön işlemeyi ve aranabilir çıktıyı açın.

Genel Geçiş Dikkat Edilmesi Gereken Hususlar

Motor Başlatma İşlemini Değiştirme

En doğrudan kod değişikliği, RapidOcrEngine başlangıç bloğunu bir IronTesseract örneklemesiyle değiştirmektir. Dört yol konfigürasyon nesnesi tamamen kaybolur:

// Before: RapidOcrNet — engine needs all 4 paths populated
var engine = new RapidOcrEngine(new RapidOcrOptions
{
    DetModelPath = "models/det.onnx",
    ClsModelPath = "models/cls.onnx",
    RecModelPath = "models/rec_en.onnx",
    KeysPath     = "models/en_keys.txt"
});
var result = engine.Run(imagePath);
var text = string.Join("\n", result.TextBlocks
    .OrderBy(b => b.BoundingBox.Top)
    .Select(b => b.Text));

// After:IronOCR— no configuration required
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";
var text = new IronTesseract().Read(imagePath).Text;
C#

Manuel OrderBy ve Select zincirine sahip result.TextBlocks koleksiyonu result.Text'ya çöker. TextBlocks tarafından sağlanan sınır kutusu verilerine ihtiyaç duyan uygulamalar için, result.Words sonuçları okuma nasıl yapılır içinde belgelenmiş yapılandırılmış bir API aracılığıyla aynı kelime başına koordinatları ve güven değerlerini açıklar.

Model Dosyası Altyapısını Kaldırma

Kodu değiştirdikten sonra, models/ dizinini silin, model dosyalarını derlemede kopyalayan MSBuild <Content> girişlerini kaldırın ve eksik dosyalar için kontrol edilen herhangi bir başlangıç doğrulama mantığını kaldırın. Bunlara gerek yoktur —IronOCR verilerini dahili olarak gönderir. CI/CD hatlarında, model dosyalarını getiren veya önbelleğe alan adımları kaldırın. Görüntü girdi yönergesi, mevcut RapidOCR.NET kodunun muhtemelen kullandığı yaygın dosya yolu, akış ve bayt dizisi senaryoları için girdi işleme modellerini kapsar.

Düşük Kaliteli Görüntülerin İşlenmesi

RapidOCR.NET'in ONNX modelleri, çıkarım sırasında dahili ön işleme uygular, ancak kütüphane çağrıcıya bir ön işleme API'si sunmaz. Mevcut kod, engine.Run()'ye iletmeden önce görüntü manipülasyonunu uyguluyorsa, bu kod ayrı bir görüntü kütüphanesine karşı yazılmıştır. IronOCR, doğrudan OcrInput üzerinde bir ön işleme API'si açıklar:

using var input = new OcrInput();
input.LoadImage("low-quality-scan.jpg");
input.Deskew();           // Correct skewed scans
input.DeNoise();          // Remove scanner noise
input.Contrast();         // Enhance contrast
input.Binarize();         // Convert to black/white
input.EnhanceResolution(300);

var result = new IronTesseract().Read(input);
Console.WriteLine($"Confidence: {result.Confidence}%");

Görsel yönlendirme düzeltme rehberi ve DPI ayarları rehberi, taranmış belgelerde en yaygın olarak doğruluğu etkileyen iki ön işleme konusunu ele alır. Güven skoru result.Confidence ve her kelime için result.Words[i].Confidence aracılığıyla mevcuttur.

PDF Desteği Ekleme

engine.Run() çağrılmadan önce PDF-to-image dönüşümü yapan kodlar tamamen silinebilir. IronTesseract.Read() doğrudan bir PDF yolunu kabul eder. PDF render kütüphanesi bağımlılığını ve dönüştürme ek kodunu kaldırın — bu, bağımlılıkların eklenmesi değil, toplamda azaltılması anlamına gelir.

Ek IronOCR Yetenekleri

Karşılaştırma bölümlerinde ele alınan özelliklerin ötesinde, IronOCR'un RapidOCR.NET'te karşılığı olmayan yetenekleri bulunmaktadır:

  • Bölge tabanlı OCR: Tüm sayfayı işlemeye gerek kalmadan, bir görüntünün belirli bir alanından metin çıkarın. Bölge bazlı OCR nasıl yapılır ve kırpma dikdörtgeni örneği, fatura başlığı çıkarımı, form alanı hedefleme ve benzeri kısmi belge senaryoları için CropRectangle kullanımını kapsar.
  • OCR sırasında barkod okuma: Barkod değerlerini tek bir geçişte metinle birlikte çıkarmak için ocr.Configuration.ReadBarCodes = true ayarlayın. barkod OCR nasıl yapılır ve barkod OCR örneği, result.Barcodes'nin standart OCR çıktısıyla nasıl entegre olduğunu gösterir.
  • Özel belge türleri: IronOCR, pasaportlar, plaka, el yazısı ve tablo çıkarma için test edilmiş rehberlik sağlar.
  • Async OCR: async OCR nasıl yapılır kılavuzu, ASP.NET istek işleyicileri ve arka plan servisleri için engelleyici olmayan işlem kalıplarını gösterir.
  • hOCR ve yapılandırılmış dışa aktarma: IronOCR, OCR sonuçlarını sözcük düzeyinde sınır kutularını koruyarak hOCR XML formatında kaydedebilir ve bu format, sonrasında belge işleme araçlarıyla uyumludur. hOCR dışa aktarma nasıl yapılır kılavuzu çıktı formatı seçeneklerini kapsar.

.NET Uyumluluğu ve Geleceğe Hazırlık

IronOCR, .NET 8, .NET 9, .NET Standard 2.0 ve .NET Framework 4.6.2 ve sonrası olmak üzere, mevcut kurumsal .NET ortamlarının tüm spektrumunu kapsar. Kütüphane, Windows x64/x86, Linux x64, macOS x64 ve macOS ARM (Apple Silicon) için platformlar arası ikili dosyalarla birlikte gönderilir ve konteyner görüntüleri, standart mcr.microsoft.com/dotnet/aspnet taban görüntülerine karşı test edilir. RapidOCR.NET'in uyumluluğu, benzer hedefleri kapsayan ancak platforma özgü NuGet paketi seçimi (Microsoft.ML.OnnxRuntime CPU için vs. Microsoft.ML.OnnxRuntime.Gpu CUDA için) gerektiren ve aynı binary-in-package sadeliğini garanti etmeyen ONNX Runtime platform destek matrisi ile sınırlıdır. IronOCR, aktif sürüm döngüsü sayesinde .NET 10 (Kasım 2026'da beklenen) ile uyumluluğunu korur ve SDK güncellendiğinde uygulama kodunda herhangi bir değişiklik yapılmasını gerektirmez.

Sonuç

RapidOCR.NET, belirli bir problemi iyi bir şekilde çözer: Tam Python ekosistemini gerektirmeden, .NET içinde CPU-optimize edilmiş PaddleOCR modellerini çalıştırmak. Çin veya İngilizce görüntüleri kontrol altında bir ortamda, model dosyalarının manuel olarak yönetilebileceği bir ortamda işleyen ekipler için, ücretsiz olarak makul bir doğruluk sunar. Bu, üretim kullanım durumunun kapsamıdır.

Model yönetim yükü belirleyici kısıtlamadır. Dört ayrı dosya, harici bir GitHub deposundan sağlanmış, uygulama ile birlikte dağıtılmış, çalıştırma zamanında doğrulanmış ve üst proje yeni ağırlıkları yayımladığında el ile güncellenmiş — bu, bir prototip için bir sorun değildir. CI/CD boru hatları, çoklu ortam dağıtımları ve birden fazla geliştirici ile bir üretim hizmeti için, mühendislik çeyreği boyunca sessizce saatleri tüketen operasyonel sürtüşme türüdür. Dil kapsamı tavanı sorunu daha da karmaşık hale getirir: bir iş gereksinimi, CJK olmayan bir dili tanıttığı anda, RapidOCR.NET tamamen devre dışı kalır.

IronOCR, RapidOCR.NET'in sınırlamalarının başladığı yerde devreye girer. Tek bir NuGet paketi, harici dosya yok,125+dil, yerel PDF girişi ve aranabilir PDF çıktısı, otomatik ön işleme, yapısal sonuç çıkarımı ve sürümlenmiş bir API altında ticari destek. $999 Lite lisansı, işlem başına metering veya yıllık yenileme gereksinimi olmadan tek seferlik bir maliyettir. Model yönetimi, PDF dönüştürme çözümleri ve desteklenmeyen dil artışları üzerinde harcanan mühendislik saatlerinin maliyetini hesaplayan ekipler, genellikle ticari bir kütüphanenin ücretsiz alternatife göre ekonomik olarak daha avantajlı olduğunu bulmaktadır.

Hali hazırda RapidOCR.NET'i üretimde çalıştıran veya yeni bir proje için değerlendiren takımlar için,IronOCR eğitim merkezi ve nasıl yapılır kılavuzları pratik bir başlangıç noktası sunar. Geçiş mekanik olup, kod daha basit hale gelir ve operasyonel yüzey tek bir paket referansına indirgenir.

Lütfen dikkate alın: Bitmiracle Docotic.Pdf, PaddleOCR, PdfPig, RapidOCR, ve Tesseract kendi sahiplerinin tescilli ticari markalarıdır. Bu site, Baidu, Bit Miracle, Google, PaddlePaddle, RapidOCR veya UglyToad ile ilişkili değildir, onaylanmamıştır veya desteklenmemektedir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.
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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez