IronOCR kullanarak Azure OCR Servisi Nasıl Oluşturulur

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

Iron Software, Azure OCR entegrasyonundaki birlikte çalışabilirlik sorunlarını ortadan kaldıran bir OCR (Optik Karakter Tanıma) kütüphanesi oluşturdu. Azure'da OCR kütüphaneleri ile çalışmak, her zaman geliştiriciler için biraz zahmetli olmuştur. Bu ve diğer birçok OCR sorununun çözümü IronOCR'dir.

Microsoft Azure için IronOCR özellikleri

IronOCR, Microsoft Azure üzerinde bir OCR Servisi oluşturmak için aşağıdaki özellikleri içerir:

  • PDF'leri metin çıkarmayı kolaylaştıracak şekilde aranabilir belgelere dönüştürür
  • Görüntülerden metin çıkararak görüntüleri aranabilir belgelere dönüştürür
  • Barkodları ve QR kodları okur
  • Olağanüstü doğruluk
  • Yerel olarak çalışır ve Microsoft Azure gibi bir bulut sağlayıcısının çeşitli uygulamaları barındırdığı ve bu uygulamaları son kullanıcılara sunduğu bir yazılım dağıtım modeli olan SaaS'yi (Hizmet Olarak Yazılım) gerektirmez.
  • Yıldırım hızında

Iron Software'in en iyi OCR motoru IronOCR'un, geliştiriciler için herhangi bir girdi belgesinden metin çıkarmayı nasıl kolaylaştırdığına bir göz atalım.

Azure OCR Servisimize başlayalım

Örneğe başlamak için öncelikle IronOCR'u kurmamız gerekiyor.

  1. C# ile yeni bir Console uygulaması oluşturun.
  2. NuGet aracılığıyla IronOCR'yi yükleyin. Bunun için Install-Package IronOcr yazın veya NuGet paketlerini yönet seçeneğini seçip IronOCR'yi arayın. Aşağıda gösterilmiştir.
  3. Program.cs dosyanızı aşağıdaki gibi düzenleyin:

    • IronOCR ad alanını içe aktarıyoruz, böylece PDF dosyasının içeriğini okumak ve çıkarmak için OCR yeteneklerinden yararlanabiliyoruz.
    • Bir görüntüden metin çıkarmak için yeni bir IronTesseract nesnesi oluşturuyoruz.
using IronOcr;
using System;

namespace IronOCR_Ex
{
    class Program
    {
        static void Main(string[] args)
        {
            var ocr = new IronTesseract();
            using (var Input = new OcrInput("..\\Images\\Purgatory.PNG"))
            {
                var result = ocr.Read(Input); // Read PNG image File
                Console.WriteLine(result.Text); // Output extracted text to console
                Console.ReadLine();
            }
        }
    }
}
using IronOcr;
using System;

namespace IronOCR_Ex
{
    class Program
    {
        static void Main(string[] args)
        {
            var ocr = new IronTesseract();
            using (var Input = new OcrInput("..\\Images\\Purgatory.PNG"))
            {
                var result = ocr.Read(Input); // Read PNG image File
                Console.WriteLine(result.Text); // Output extracted text to console
                Console.ReadLine();
            }
        }
    }
}
Imports IronOcr
Imports System

Namespace IronOCR_Ex
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim ocr = New IronTesseract()
			Using Input = New OcrInput("..\Images\Purgatory.PNG")
				Dim result = ocr.Read(Input) ' Read PNG image File
				Console.WriteLine(result.Text) ' Output extracted text to console
				Console.ReadLine()
			End Using
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel
  1. Sonraki adımda Purgatory.PNG adında bir resmi açıyoruz. Bu resim Dante'nin İlahi Komedya eserinin bir parçasını oluşturuyor - en sevdiğim kitaplardan biri. Resim bir sonraki görüntüye benziyor.

IronOCR'nin optik karakter okuma özellikleriyle çıkarılacak metin

Şekil 2 - IronOCR'un optik karakter okuma yetenekleriyle çıkarılacak metin

  1. Yukarıdaki girdi resim metninden metin çıkarıldıktan sonraki çıktı.

Çıkarılan metin

Şekil 3 - Çıkarılan metin

  1. Aynı işlemi bir PDF belgesiyle de yapalım. PDF belgesi, Şekil 2'de bulunan aynı metni çıkarmaktadır.

Tek fark, bir görüntü yerine PDF belgesi kullanmamızdır. Aşağıdaki kodu girin:

var OCR = new IronTesseract();
using (var input = new OcrInput())
{
    input.Title = "Divine Comedy - Purgatory"; // Give title to input document 
    // Supply optional password and name of document
    input.AddPdf("..\\Documents\\Purgatorio.pdf", "dante");
    var result = OCR.Read(input); // Read the input file

    result.SaveAsSearchablePdf("SearchablePDFDocument.pdf"); 
}
var OCR = new IronTesseract();
using (var input = new OcrInput())
{
    input.Title = "Divine Comedy - Purgatory"; // Give title to input document 
    // Supply optional password and name of document
    input.AddPdf("..\\Documents\\Purgatorio.pdf", "dante");
    var result = OCR.Read(input); // Read the input file

    result.SaveAsSearchablePdf("SearchablePDFDocument.pdf"); 
}
Dim OCR = New IronTesseract()
Using input = New OcrInput()
	input.Title = "Divine Comedy - Purgatory" ' Give title to input document
	' Supply optional password and name of document
	input.AddPdf("..\Documents\Purgatorio.pdf", "dante")
	Dim result = OCR.Read(input) ' Read the input file

	result.SaveAsSearchablePdf("SearchablePDFDocument.pdf")
End Using
$vbLabelText   $csharpLabel

Bu kod, bir görüntüden metin çıkaran önceki koda neredeyse aynı.

Burada, mevcut PDF belgesini okumak için OcrInput yöntemini kullanıyoruz; bu durumda: Purgatorio.pdf. PDF dosyasında başlık veya parola gibi meta veriler varsa, bunları da besleyebiliriz.

Sonuç, aranabilir bir PDF belgesi olarak kaydedilir ve metni arayabiliriz.

Not: PDF dosyası çok büyükse, bir istisna fırlatılabilir.

  1. Windows uygulamaları hakkında yeterince idi; Microsoft Azure ile OCR'yi nasıl kullanabileceğimize bir bakalım.

IronOCR'nin güzelliği, Microsoft Azure ile mikro hizmet mimarisinde bir Azure İşlevi olarak çok iyi çalışmasıdır. IronOCR ile çalışan bir Microsoft Azure İşlevinin nasıl görüneceğine dair çok hızlı bir örnek. Bu Microsoft Azure işlevi, görüntülerden metin çıkarır.

public static class OCRFunction
{
    public static HttpClient hcClient = new HttpClient();

    [FunctionName("IronOCRFunction_EX")]
    public static async Task<IActionResult> Run([HttpTrigger] HttpRequest hrRequest, ExecutionContext ecContext)
    {
        var URI = hrRequest.Query["image"];
        var saStream = await hcClient.GetStreamAsync(URI);

        var ocr = new IronTesseract();
        using (var inputOCR = new OcrInput(saStream))
        {
            var outputOCR = ocr.Read(inputOCR);
            return new OkObjectResult(outputOCR.Text);
        }
    }
} 
public static class OCRFunction
{
    public static HttpClient hcClient = new HttpClient();

    [FunctionName("IronOCRFunction_EX")]
    public static async Task<IActionResult> Run([HttpTrigger] HttpRequest hrRequest, ExecutionContext ecContext)
    {
        var URI = hrRequest.Query["image"];
        var saStream = await hcClient.GetStreamAsync(URI);

        var ocr = new IronTesseract();
        using (var inputOCR = new OcrInput(saStream))
        {
            var outputOCR = ocr.Read(inputOCR);
            return new OkObjectResult(outputOCR.Text);
        }
    }
} 
Public Module OCRFunction
	Public hcClient As New HttpClient()

	<FunctionName("IronOCRFunction_EX")>
	Public Async Function Run(<HttpTrigger> ByVal hrRequest As HttpRequest, ByVal ecContext As ExecutionContext) As Task(Of IActionResult)
		Dim URI = hrRequest.Query("image")
		Dim saStream = Await hcClient.GetStreamAsync(URI)

		Dim ocr = New IronTesseract()
		Using inputOCR = New OcrInput(saStream)
			Dim outputOCR = ocr.Read(inputOCR)
			Return New OkObjectResult(outputOCR.Text)
		End Using
	End Function
End Module
$vbLabelText   $csharpLabel

Bu, işlev tarafından alınan görüntüyü doğrudan OCR motoruna besler ve çıkarılan metni çıktı verir.

Microsoft'a göre Microsoft Azure hakkında hızlı bir özet:

Microsoft Azure Mikro hizmetleri, her çekirdek işlevin veya hizmetin bağımsız olarak oluşturulduğu ve dağıtıldığı uygulamalar oluşturmaya yönelik bir mimari yaklaşımdır. Mikro hizmet mimarisi dağıtılmış ve gevşek bağlıdır; bu nedenle bir bileşenin arızası tüm uygulamayı bozmaz. Bağımsız bileşenler birlikte çalışır ve iyi tanımlanmış API sözleşmeleri ile iletişim kurar. Değişen iş ihtiyaçlarını hızla karşılamak ve yeni işlevsellikleri daha hızlı pazara sunmak için mikro hizmet uygulamaları geliştirin.

.NET veya Microsoft Azure ile IronOCR'un birkaç daha fazla özelliği şunları içerir:

  • Neredeyse her dosya, görüntü veya PDF üzerinde OCR performansı
  • OCR girişini işleme hızında yıldırım hızında
  • Olağanüstü doğruluk
  • Barkodlar ve QR kodlarını okur
  • Yerel olarak çalışır, SaaS gerektirmez
  • PDF'leri ve görüntüleri aranabilir belgelere dönüştürebilir
  • Microsoft Tanıma Hizmetlerinden Azure OCR'a mükemmel bir alternatif

OCR performansını arttırmak için Görüntü Filtreleri

  • OcrInput.Rotate - Görüntüleri saat yönünde birkaç derece döndürür. Saat yönünün tersine döndürmek için negatif sayılar kullanın.
  • OcrInput.Binarize() - Bu görüntü filtresi, her pikseli ara tonlar olmadan siyah veya beyaza dönüştürür. Bu, OCR performansını artırır.
  • OcrInput.ToGrayScale() - Bu görüntü filtresi, her pikseli gri tonlamaya dönüştürür. Bu, OCR hızını artırır.
  • OcrInput.Contrast() - Kontrastı otomatik olarak artırır. Bu filtre, düşük zıtlık taramalarında OCR hızını ve doğruluğunu artırır.
  • OcrInput.DeNoise() - Dijital gürültüyü giderir. Bu filtre, yalnızca giriş belgelerinde gürültü olması beklenen durumlarda kullanılmalıdır.
  • OcrInput.Invert() - Tüm renkleri tersine çevirir.
  • OcrInput.Dilate() - Genişletme, bir görüntüdeki herhangi bir nesnenin sınırlarına piksel ekler.
  • OcrInput.Erode() - Erozyon, nesne sınırlarındaki pikselleri kaldırır.
  • OcrInput.Deskew() - Görüntüyü doğru yönde ve dik olacak şekilde döndürür. Bu, OCR için çok faydalıdır çünkü Tesseract'ın eğik taramalara toleransı 5 derece kadar düşük olabilir.
  • OcrInput.DeepCleanBackgroundNoise() - Yoğun arka plan gürültüsünün giderilmesi.
  • OcrInput.EnhanceResolution - Düşük kaliteli bir görüntünün çözünürlüğünü artırır.

Hız performansı

Bir örnek aşağıdadır:

var OCR = new IronTesseract();
OCR.Configuration.BlackListCharacters = "~`$#^*_}{][|\\";
OCR.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
OCR.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
OCR.Configuration.EngineMode = TesseractEngineMode.LstmOnly;
OCR.Language = OcrLanguage.EnglishFast;
using (var Input = new OcrInput("..\\Images\\Purgatory.PNG"))
{
    var Result = OCR.Read(Input);
    Console.WriteLine(Result.Text);
}
var OCR = new IronTesseract();
OCR.Configuration.BlackListCharacters = "~`$#^*_}{][|\\";
OCR.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
OCR.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
OCR.Configuration.EngineMode = TesseractEngineMode.LstmOnly;
OCR.Language = OcrLanguage.EnglishFast;
using (var Input = new OcrInput("..\\Images\\Purgatory.PNG"))
{
    var Result = OCR.Read(Input);
    Console.WriteLine(Result.Text);
}
Dim OCR = New IronTesseract()
OCR.Configuration.BlackListCharacters = "~`$#^*_}{][|\"
OCR.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto
OCR.Configuration.TesseractVersion = TesseractVersion.Tesseract5
OCR.Configuration.EngineMode = TesseractEngineMode.LstmOnly
OCR.Language = OcrLanguage.EnglishFast
Using Input = New OcrInput("..\Images\Purgatory.PNG")
	Dim Result = OCR.Read(Input)
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

Fiyatlandırma ve lisanslama seçenekleri

Temelde, bir kere satın alma, ömür boyu lisans ilkesiyle çalışan üç ücretli lisanslama düzeyi vardır.

Evet, bunlar geliştirme amaçları için ücretsizdir.

Daha fazla bilgi

IronOCR özellikleri, Azure'da ve diğer Sistemlerde OCR çalıştıran .NET uygulamaları için

  • IronOCR, 125 uluslararası dili destekler. Her dil, Hızlı, Standart ve En İyi kalite seviyelerinde mevcuttur. Mevcut dil paketlerinden bazıları şunlardır:
    • Bulgarca
    • Ermenice
    • Hırvatça
    • Afrikaanca
    • Danca
    • Çekçe
    • Filipince
    • Fince
    • Fransızca
    • Almanca
    • Daha birçok dil paketi mevcuttur, onları görmek için lütfen aşağıdaki bağlantıya tıklayın. IronOCR dil paketleri
  • .NET'te kutudan çıkar çıkmaz çalışır
    • Xamarin desteği
    • Mono desteği
    • Microsoft Azure desteği
    • Microsoft Azure'da Docker desteği
    • PDF belgelerini destekler
    • Çoklu Kare Tif dosyalarını destekler
    • Tüm büyük resim formatlarını destekler
  • Desteklenen .NET Framework'leri şunlardır:
    • .NET Framework 4.5 ve üzeri
    • .NET Standard 2
    • .NET Core 2
    • .NET Core 3
    • .NET Core 5
  • IronOCR'un çalışması için Tesseract'ı (Unicode ve 100'den fazla dili destekleyen açık kaynaklı bir OCR motoru) kurmanıza gerek yok.
    • Tesseract'a göre geliştirilmiş doğruluk.
    • Tesseract'a göre geliştirilmiş hız.
  • Düşük kaliteli belgelerin veya dosyaların taramalarını düzeltir.
  • Düşük kaliteli eğik belgelerin veya dosyaların taramalarını düzeltir.

Optik Karakter Tanıma (OCR) Nedir?

Wikipedia'ya göre: Optik karakter tanıma, taranmış bir belgeden, bir belgenin fotoğrafından, bir sahne fotoğrafından veya bir görüntüye yerleştirilmiş altyazı metninden kaynaklanmış yazılı, basılı metin görüntülerinin elektronik veya mekanik olarak makine koduna dönüştürülmesidir. OCR, Optik Karakter Tanıma anlamına gelir. Temelde dört tür optik karakter tanıma vardır:

  • OCR - Optik Karakter Tanıma, giriş belgesinden yazılı metni, bir karakter veya glif (belirlenmiş bir sembol seti içindeki temel sembol, örneğin farklı yazı tiplerindeki 'a') bir seferde hedefler.
  • OWR - Optik Kelime Tanıma, giriş belgesinden yazılı metni, bir seferde bir kelime hedefler.
  • ICR - Akıllı Karakter Tanıma, baskı senaryosunda (diğer harflerle birleşmeyen karakterler) ve kursive metinde hedefler, bir karakter veya glif bir seferde.
  • IWR - Akıllı Kelime Tanıma, kursive metinleri hedefler.

Sıkça Sorulan Sorular

Azure üzerindeki bir C# uygulamasında OCR yeteneklerini nasıl entegre ederim?

Azure üzerindeki bir C# uygulamasına OCR yeteneklerini entegre etmek için yeni bir Konsol uygulaması oluşturup IronOCR'yi NuGet üzerinden yükleyebilirsiniz. Install-Package IronOcr komutunu kullanabilir veya NuGet paket yöneticisinde IronOCR arayabilirsiniz.

IronOCR'nun Azure’un yerel OCR hizmetine kıyasla avantajları nelerdir?

IronOCR, Azure’un yerel OCR hizmetine göre birkaç avantaj sunar, bunlar arasında gelişmiş doğruluk, daha hızlı işleme hızları ve SaaS gerektirmeden yerel olarak çalışabilme yeteneği bulunmaktadır. Ayrıca geniş bir dil yelpazesini destekler ve OCR performansını artırmak için görüntü filtreleri sağlar.

OCR metin çıkarımı için bir Microsoft Azure İşlevi nasıl kurulur?

OCR metin çıkarımı için bir Microsoft Azure İşlevi kurmak için, IronOCR'yi kullanarak bir işlev oluşturabilirsiniz. Bu, mikro servis mimarisinin bir parçasıdır ve OCR yeteneklerini Azure uygulamalarınıza sorunsuz bir şekilde entegre etmenize olanak tanır.

IronOCR, OCR işleminde birden çok dili destekleyebilir mi?

Evet, IronOCR, her biri Hızlı, Standart ve En İyi kalite seçenekleri ile 125 uluslararası dili destekler, bu da onu küresel uygulamalar için çok yönlü bir hale getirir.

IronOCR'nun OCR doğruluğunu artırmak için sunduğu görüntü işleme seçenekleri nelerdir?

IronOCR, OCR sonuçlarının doğruluğunu ve güvenilirliğini artırmak için Döndür, İkiliye Çevir, Grayscale'e Çevir, Kontrast, Gürültü Giderici, Ters Çevir, Genişlet, Aşındır, Eğim Giderici, Derin Temiz Fonaya Gürültü ve Çözünürlüğü Artır gibi çeşitli görüntü işleme seçenekleri sunar.

IronOCR, Azure dağıtımları için çeşitli .NET frameworkler ile uyumlu mu?

Evet, IronOCR, .NET Framework 4.5 ve üzeri, .NET Standard 2, .NET Core 2, .NET Core 3 ve .NET Core 5 ile uyumludur. Ayrıca Xamarin, Mono destekler ve Microsoft Azure üzerinde Docker ile dağıtılabilir.

IronOCR'yi Azure üzerinde çalıştırmak için ek yazılım gerekir mi?

IronOCR'yi Azure üzerinde çalıştırmak için ek yazılım gerekmez. SaaS kullanmadan Tesseract'a kıyasla daha iyi doğruluk ve hız sunar.

IronOCR için hangi lisanslama seçenekleri mevcuttur?

IronOCR, bir kere satın alma modeline dayanan üç ücretli lisanslama seviyesi sunar. Bu lisanslar geliştirme amaçları için ücretsizdir ve proje ölçeklendirme açısından esneklik sağlar.

IronOCR kullanarak resimleri ve PDF'leri aranabilir belgelere nasıl dönüştürebilirim?

IronOCR, OCR yeteneklerini kullanarak metin çıkartıp tanır ve böylece resimleri ve PDF'leri kolay aranabilir ve indekslenebilir hale getirir.

IronOCR ile barkod ve QR kodları okuma işlemi nasıldır?

IronOCR, bu kodları tarama ve verilerini çıkartma için yerleşik özelliklerini kullanarak barkod ve QR kodlarını okuyabilir, bu da onların Azure üzerindeki C# uygulamalarına entegrasyonunu kolaylaştırı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ı...

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.