IronOCR Kullanarak Azure OCR Hizmeti Nasıl İnşa Edilir
Iron Software, Azure OCR entegrasyonunda karşılaşılan birlikte çalışabilirlik sorunlarını ortadan kaldıran bir OCR (Optik Karakter Tanıma) kütüphanesi oluşturmuştur. Azure üzerinde OCR kütüphaneleri ile çalışmak, her zaman geliştiriciler için biraz sıkıntılı olmuştur. Bu ve birçok diğer OCR baş ağrılarına çözüm IronOCR'dir.
Microsoft Azure için IronOCR özellikleri
IronOCR, Microsoft Azure üzerinde bir OCR Hizmeti oluşturmak için şu özellikleri içerir:
- PDF'leri aranabilir belgelere dönüştürerek metin çıkarmayı kolaylaştırır
- Görüntülerden metin çıkararak görüntüleri aranabilir belgelere dönüştürür
- Barkodların yanı sıra QR kodlarını okur
- Olağanüstü doğruluk
- Yerel olarak çalışır ve Microsoft Azure gibi bir bulut sağlayıcısı çeşitli uygulamaları barındırdığında ve son kullanıcılara bu uygulamaları sunduğunda bu tür bir yazılım dağıtım modeli olan SaaS (Hizmet Olarak Yazılım) gerektirmez.
- Şimşek hızında hız
Haydi, Iron Software'in IronOCR'sinin en iyi OCR motoru olarak geliştiricilere herhangi bir giriş belgesinden metin çıkarmada nasıl yardımcı olduğunu inceleyelim.
Azure OCR Hizmetimize Başlayalım
Örneğimizle başlamak için önce IronOCR'yi yüklememiz gerekiyor.
- C# ile yeni bir Konsol uygulaması oluşturun.
- IronOCR'u NuGet aracılığıyla şu şekillerde yükleyebilirsiniz:
Install-Package IronOcrveya NuGet paketlerini yönetmeyi seçip IronOCR'u arayarak. Bu aşağıda gösterilmiştir. -
Program.csdosyanızı şu şekilde görünecek şekilde düzenleyin:- IronOcr ad alanını OCR yeteneklerini kullanarak PDF dosyasının içeriğini okumak ve çıkarmak için dahil ederiz.
- Bir resimden metin çıkarmak için yeni bir IronTesseract nesnesi oluştururuz.
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
- Sonra, Purgatory.PNG adlı bir resmi açarız. Bu resim, Dante'nin İlahi Komedya'sının bir parçasıdır - en sevdiğim kitaplardan biri. Resim, bir sonraki görsele benziyor.

Şekil 2 - IronOCR'nin optik karakter okuma yetenekleriyle çıkarılacak metin
- Yukarıdaki metnin yukarıdaki giriş resim metninden çıkarıldıktan sonraki çıktısı.

Şekil 3 - Çıkarılan metin
- Aynı işlemi bir PDF belge ile yapalım. PDF belge, Şekil 2 ile aynı metni çıkarmayı içerir.
Tek fark, bir resim yerine bir PDF belge kullanacak olmamı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
Bu kod, bir resimden metin çıkaran önceki kodla hemen hemen aynıdır.
Burada, mevcut PDF belgesini okumak için OcrInput yönteminden yararlandık, bu durumda: Purgatorio.pdf. PDF dosyasında başlık veya parola gibi meta veriler varsa, bunları da besleyebiliriz.
Sonuç, metni arayabileceğimiz aranabilir bir PDF belge olarak kaydedilir.
Not, eğer PDF dosyası çok büyükse bir istisna atılabilir.
- Windows uygulamaları hakkında yeterince; OCR'yi Microsoft Azure ile nasıl kullanabileceğimizi görelim.
IronOCR'nin güzelliği, bir mikro servis mimarisinde Microsoft Azure'da bir Azure Fonksiyonu olarak çok iyi çalışmasıdır. IronOCR ile çalışan bir Microsoft Azure Fonksiyonunun nasıl görüneceğine dair çok hızlı bir örnek. Bu Microsoft Azure fonksiyonu, resimlerden 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
Bu, fonksiyon tarafından alınan resmi doğrudan çıkılan metni çıkarmak için OCR motoruna besler.
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 geliştirildiği ve dağıtıldığı uygulamalar oluşturmanın bir mimari yaklaşımıdır. Mikro hizmet mimarisi dağıtılmış ve gevşek bağlıdır, bu nedenle bir bileşenin hatası tüm uygulamayı bozmaz. Bağımsız bileşenler bir arada çalışır ve iyi tanımlanmış API sözleşmeleri ile iletişim kurar. Mikro hizmet uygulamaları inşa ederek hızla değişen iş gereksinimlerini karşılayabilir ve yeni işlevsellikleri daha hızlı bir şekilde piyasaya sunabilirsiniz.
IronOCR'un .NET veya Microsoft Azure ile ek birkaç özelliği şunları içerir:
- Hemen her dosya, görüntü veya PDF üzerinde OCR gerçekleştirme yeteneği.
- OCR girişi 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 gerekmez.
- PDF'leri ve görüntüleri aranabilir belgelere dönüştürebilir.
- Microsoft Cognitive Services'ın Azure OCR'ına mükemmel bir alternatif.
OCR performansını artırmak için Görüntü Filtreleri
OcrInput.Rotate- Görselleri saat yönünde birkaç derece döndürür. Saat yönünün tersinde döndürmek için negatif sayılar kullanın.OcrInput.Binarize()- Bu görüntü filtresi, her pikseli siyah veya beyaz yapar, ara bir ton yoktur. Bu, OCR performansını artırır.OcrInput.ToGrayScale()- Bu görüntü filtresi, her pikseli grinin bir tonu haline getirir. Bu, OCR hızını artırır.OcrInput.Contrast()- Kontrasti otomatik olarak artırır. Bu filtre, düşük kontrast taramalarda OCR hızını ve doğruluğunu artırır.OcrInput.DeNoise()- Dijital gürültüyü giderir. Bu filtre sadece giriş belgelerinde gürültü beklendiğinde kullanılmalıdır.OcrInput.Invert()- Her rengi tersine çevirir.OcrInput.Dilate()- Genişleme, bir görüntüdeki herhangi bir nesnenin kenarlarına pikseller ekler.OcrInput.Erode()- Aşındırma, nesne sınırlarından pikselleri çıkarır.OcrInput.Deskew()- Bir görüntüyü doğru şekilde yukarıya ve dik açılı döndürür. Bu, OCR için çok yararlı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ü giderme.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ğıda:
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
Fiyatlandırma ve lisanslama seçenekleri
Ücretli lisanslama seviyeleri esasen, bir kerelik satın alma, ömür boyu lisans prensibine dayanarak çalışan üç seçenektir.
Ve evet, bunlar geliştirme amaçları için ücretsizdir.
Daha fazla bilgi
- Ek kaynaklar aşağıdaki bağlantıda bulunabilir: Kaynaklar
- API Referansları burada bulunabilir: API Referansları
- IronOCR ürünleri için destek burada bulunabilir: Destek
- Iron Software ile iletişim kurma: İletişim Bilgileri
Azure ve diğer Sistemler üzerinde OCR çalıştıran .NET uygulamaları için IronOCR özellikleri
- IronOCR, 125 uluslararası dili destekler. Her dil, Hızlı, Standart ve En İyi kalite olarak mevcuttur. Kullanılabilir dil paketlerinden bazıları şunlardır:
- Bulgarca
- Ermenice
- Hırvatça
- Afrikanca
- Danca
- Çekçe
- Filipince
- Fince
- Fransızca
- Almanca Daha birçok dil paketi mevcut, bunlara göz atmak için lütfen aşağıdaki bağlantıyı takip edin. IronOCR dil paketleri
- .NET'te kutudan çıkar çıkmaz çalışır
- Xamarin Desteği
- Mono Desteği
- Microsoft Azure Desteği
- Microsoft Azure üzerinde Docker Desteği
- PDF belgeleri destekler
- Çoklu çerceve Tiff'leri destekler
- Tüm ana resim formatları için destek
- Aşağıdaki .NET Çerçeveleri destekleniyor:
- .NET Framework 4.5 ve üstü
- .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 bir açık kaynak OCR motoru) kurmanıza gerek yok.
- Tesseract'a göre doğruluğu geliştirilmiştir.
- Tesseract'a göre hızı geliştirilmiştir.
- Belgelerin veya dosyaların düşük kaliteli taramalarını düzeltir.
- Belgelerin veya dosyaların düşük kaliteli eğik taramalarını düzeltir.
Optik Karakter Tanıma (OCR) nedir?
Vikipedi'ye göre: Optik karakter tanıma, yazılı, basılı metinlerin görüntülerinin elektronik veya mekanik olarak makine kodlu metne dönüştürülmesidir, bir taranmış dokümandan, bir dokümanın fotoğrafından, bir sahne fotoğrafından veya bir görüntüye eklenmiş altyazılardan. OCR, Optik Karakter Tanıma anlamına gelir. Esasen dört tür optik karakter tanıma vardır:
- OCR - Optik Karakter Tanıma, bir girdi belgesinden tipografiyle yazılmış metni, bir seferde bir karakter veya glifi (belirlenmiş semboller kümesi içinde temel bir sembol, örn. farklı yazı tiplerinde 'a') hedefler.
- OWR - Optik Kelime Tanıma, bir girdi belgesinden tipografiyle yazılmış metni, bir seferde bir kelimeyi hedefler.
- ICR - Akıllı Karakter Tanıma, baskı yazısı (diğer harflerle birleşmeyen karakterler) ve el yazısı gibi yazılı metni, bir seferde bir karakter veya glifi hedefler.
- IWR - Akıllı Kelime Tanıma, el yazısı metni hedefler.
Sıkça Sorulan Sorular
Azure üzerinde bir C# uygulamasında OCR yeteneklerini nasıl entegre edebilirim?
Azure üzerinde bir C# uygulamasında OCR yeteneklerini entegre etmek için yeni bir Konsol uygulaması oluşturabilir ve NuGet aracılığıyla IronOCR'u yükleyebilirsiniz. Install-Package IronOcr komutunu kullanın veya NuGet paket yöneticisinde IronOCR'u arayın.
IronOCR'un Azure’un yerel OCR hizmetine kıyasla avantajları nelerdir?
IronOCR, Azure’un yerel OCR hizmetine kıyasla geliştirilmiş doğruluk, daha hızlı işlem hızları ve SaaS'a ihtiyaç duymadan yerel çalıştırma yeteneği gibi birçok avantaj sunar. Ayrıca geniş bir dil yelpazesini destekler ve OCR performansını artırmak için görüntü filtreleri sağlar.
OCR metin çıkarmak için bir Microsoft Azure Fonksiyonu nasıl kurarım?
OCR metin çıkarmak için bir Microsoft Azure Fonksiyonu kurmak için IronOCR'u kullanarak görüntülerden metin çıkaran bir fonksiyon oluşturabilirsiniz. Bu, Azure uygulamalarınıza OCR yeteneklerini sorunsuz bir şekilde entegre etmeye olanak tanıyan bir mikro hizmet mimarisinin parçasıdır.
IronOCR, OCR işleminde birden fazla dili işleyebilir mi?
Evet, IronOCR, her biri Hızlı, Standart ve En İyi kalitelerde mevcut olan 125 uluslararası dili destekler, bu da onu küresel uygulamalar için çok yönlü kılar.
IronOCR, OCR doğruluğunu artırmak için hangi görüntü işleme seçeneklerini sunar?
IronOCR, OCR sonuçlarının doğruluğunu ve güvenilirliğini artırmak için Döndür, İkili Hale Getir, Gri Ölçek, Kontrast, Gürültü Azaltma, Ters Çevir, Genişlet, Aşındır, Eğim Düzenle, Arka Plan Gürültüsünü Derin Temizle ve Çözünürlüğü Artır gibi çeşitli görüntü işleme seçenekleri sağlar.
IronOCR, Azure dağıtımı için çeşitli .NET çerçeveleriyle 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. Aynı zamanda Xamarin, Mono'yu destekler ve Docker ile Microsoft Azure üzerine dağıtılabilir.
IronOCR'u Azure üzerinde çalıştırmak için ek bir yazılıma ihtiyaçım var mı?
IronOCR'u Azure üzerinde çalıştırmak için ek bir yazılıma gerek yoktur. Bağımsız olarak çalışır ve Tesseract'ın kurulmasına gerek kalmadan daha iyi doğruluk ve hız sağlar.
IronOCR için hangi lisanslama seçenekleri mevcuttur?
IronOCR, tek seferlik satın alma, ömür boyu lisans modeli temelinde üç ücretli lisanslama seviyesi sunar. Bu lisanslar geliştirme amaçları için ücretsizdir, projelerin ölçeklendirilmesi için esneklik sağlar.
IronOCR kullanarak görüntüleri ve PDF'leri aranabilir belgelere nasıl dönüştürebilirim?
IronOCR, OCR yeteneklerini kullanarak metni çıkartmak ve tanımak suretiyle görüntüleri ve PDF'leri aranabilir belgelere dönüştürmenize olanak tanır, böylece onları kolayca aranabilir ve indekslenebilir hale getirir.
IronOCR kullanarak barkodları ve QR kodlarını okumanın süreci nedir?
IronOCR, C# uygulamalarında Azure üzerinde kolaylıkla entegre edilmelerini sağlayarak bu kodlardan veri taramak ve çıkarmak için yerleşik özelliklerini kullanarak barkodları ve QR kodlarını okuyabilir.

