Altbilgi içeriğine atla
OCR ARAçLARı
Açık Kaynak Kütüphaneler Kullanarak C#'ta OCR Nasıl Uygulanır

C# Açık Kaynak OCR (Geliştiriciler İçin Liste)

OCR (Optik Karakter Tanıma), taranmış belgelerin günümüz dijital dünyasında nasıl kullanılabileceğini tamamen dönüştüren devrim niteliğinde bir teknolojidir. Bilgisayarların taranmış PDF belgeleri de dahil olmak üzere çeşitli kaynaklardan metinleri tanımasını ve çıkartmasını sağlar, böylece PDF belgelerini etkili bir şekilde düzenleyebilme ve bunlarla etkileşimde bulunabilmemizi sağlar. Optik karakter tanıma (OCR) programlarından biri olan Adobe Acrobat, taranmış belgelerden metni hızlı bir şekilde çıkartmanıza ve bunları düzenlenebilir PDF'lere ve aranabilir görüntü PDF'lerine dönüştürmenize olanak sağlar.

Geliştiriciler, OCR kütüphaneleri olan Tesseract ve IronOCR gibi kütüphaneleri kullanarak, gelişmiş algoritmaları ve makine öğrenimi yaklaşımlarını kullanan sağlam araçlara ve API'lere erişebilirler. Bu kütüphaneler doğru metin tanımayı mümkün kılar, bu da hem daha önce taranmış belgelerden hem de yeni belgelerden kullanışlı bilgileri yönetmeyi ve geri getirmeyi kolaylaştırır. OCR, kesintisiz içerik analizi sağlar ve işletmelerin ve bireylerin taranmış belgelerden ve sayfa görüntülerinden en iyi şekilde yararlanarak üretkenliği artırmalarına yardımcı olur. OCR, ister kağıt bazlı kayıtları dijitalleştirmek, ister faturlardan veri çıkartmak, isterse yalnızca belge erişilebilirliğini artırmak olsun, günümüz teknolojisinde önemli bir araçtır.

Tesseract

En tanınmış açık kaynaklı OCR motoru, HP tarafından başlangıçta oluşturulmuş olan Tesseract olarak adlandırılır. 2006 yılından bu yana Google, Apache lisansı altında yayınlanan bu ücretsiz yazılım projesini desteklemektedir.

Tesseract OCR motoru, mevcut en doğru açık kaynaklı ve ücretsiz sistemlerden biridir. Mevcut kararlı sürümü 4.1.1 olan Tesseract, LSTM tabanlıdır ve 116 dili desteklemektedir.

Tesseract, kendi entegre arabirimine sahip olmadığından komut satırı arabiriminden çalışırken ayrı bir GUI (grafik kullanıcı arabirimi) desteğine ihtiyaç duyar. Sinir ağlarını kullanarak yeni bilgileri öğrenebilir ve gelişmiş bir görüntü ön işleme hattına sahiptir. .NET uygulamanıza OCR yetenekleri eklemenin en etkili yolu, Tesseract .NET SDK'lı OCR yetenekleri sağlamanın en iyi çözümlerinden biridir. Tesseract, tartışmasız şu anda piyasadaki en iyi OCR kütüphanesi olmasına rağmen.

GOCR

GOCR olarak bilinen OCR (Optik Karakter Tanıma) programı, GNU Kamu Lisansı kullanılarak oluşturuldu. Metin dosyalarını belge taramalarından dönüştürür. Programın başlatılması ve geliştirici ekibinin SourceForge (SF) üzerinde idaresini Joerg Schulenburg yaparken, bugün paketi (çok) düşük frekansta yönetmeyi sürdürüyor.

GOCR birkaç ön uç ile kullanılabildiği için, diğer işletim sistemlerine, ağ uygulamalarına ve mimarilere taşınması nispeten basittir. Geniş bir resim dosyası türü aralığını okuyabilir ve 2010 yılına kadar kalitesi istikrarlı bir şekilde arttı.

GOCR'ye göre, 20-60 piksel yüksekliğindeki tek sütun sans-serif yazı tiplerini işleyebilir. Latin alfabesi dışındaki alfabelerde yazılmış metinlerle, serif yazı tipleri, üst üste binen harfler, çeşitli yazı stilleri, gürültülü fotoğraflar ve aşırı eğik açıları ele alırken zorluklar bildirir. GOCR ayrıca barkodları çevirebilir.

CuneiForm

CuneiForm, ücretsiz ve açık kaynaklı teknoloji, şimdi 'Cognitive OpenOCR' olarak da bilinir. Dahili çıkış ve bir veritabanı içermektedir. 23 farklı dili kapsar ve metin format taraması, belge düzen analiz ve kimlik belirleme gibi görevleri de yerine getirir.

Cognitive Technologies, OpenOCR için freeware ve BSD lisansları geliştirdi. Çapraz platform kullanımı desteklemekle birlikte, Linux kullanıcılarına grafik arayüz sağlamaz.

.NET Framework 2.0 veya daha yeni uygulamalarda karakter tanıma işlemlerini basitleştirmek için, Puma .NET sarmalayıcı kütüphanesi kullanılır. Veri işlenirken, tanımanın kalitesini artırmak amacıyla bir sözlük kontrolü yapar.

CuneiForm, elektronik kağıt kopyalarını veya resim dosyalarını otomatik veya yarı otomatik olarak düzenlenebilir formata dönüştürmek için yapılmış bir teknolojidir, yapısı ve orijinal belge yazı tiplerini etkilemeden. Sistem, elektronik belgeleri toplu olarak işleme için iki bölüme ve bir belge bir kerede işleme bölümüne sahiptir. Buna ek olarak, sistem Rusça ve İngilizce kombinasyonunu destekler. Sadece 2009 yılında Andrei Borovsky tarafından oluşturulan sürgün, diğer karma dillerin tanınmasını destekler. Sistemi diğer dilleri tanımada eğitmek zordur çünkü her dilin kendi dat dosyası ile ilişkilendirilmiştir, ancak geliştiriciler yapı ve yaratım sürecini açıklamamaktadırlar.

Kraken

Kraken, Ocropus'un diğer özellikleri üzerinde etki yaratmadan sorunlarını ele almak için geliştirildi. Kendi CLSTM sinir ağı kütüphanesini kullanır ve yeni verilerle birlikte önceki projelerden elde edilen değerli deneyimlerden yararlanır. Farklı platformlarda etkili bir şekilde çalışabilmesi için belirli dış kütüphanelerin kullanılması gerekmektedir. Saklanan bilgiler yardımıyla, olası veri doğrulama sorunları hakkında daha doğru tahminler yapabilir. Ayrıca, çalışma metodolojisi yeni modellerin kolay bir şekilde uygulanmasını ve eğitimini kolaylaştırır.

A9T9

A9T9, resim dosyalarından metin çıkartılması ve resim ve PDF belgelerinin dönüştürülmesi için kullanılabilen ücretsiz bir OCR yazılımıdır. Tesseract OCR motoru için bir grafik kullanıcı arayüzü (GUI) sağlar.

Program kurulum için kolaydır. En önemlisi, tamamen ücretsiz ve açık kaynaklıdır. Casus yazılım ve reklam yazılımı yok.

Bir PDF dosyasını veya bir görüntüyü açabilirsiniz ve kaynak dosyanın içeriği sol pencerede gösterilecektir. Belgeniz birden fazla sayfaya sahipse veya çok sayfalı bir belge ise, sayfalar arasında gezinmek için sayfanın altındaki okları kullanabilirsiniz.

OCR işlemini başlatmak için, yeşil OCR düğmesine tıklayın ve çıktı sağ ikinci panelde görünecektir. Çıktı metnini hem metin dosyaları hem de Word belgeleri olarak kaydedebilirsiniz.

IronOCR

Standart Tesseract kütüphanesiyle kıyaslandığında, IronOCR, Tesseract'ın yeteneklerini genişletir ve daha yüksek doğruluk, geliştirilmiş performans ve geliştirilmiş kararlılıkla yerel bir C# OCR kütüphanesi sağlar. IronOCR, PDF ve görüntülerden metin çıkartmak için .NET program ve web sitelerinde kullanılabilir. Geniş bir yabancı dil yelpazesini destekler ve düz metin veya yapılandırılmış veri çıktısı üretebilir. Barkodlar ve metin gömülü görüntüler taranabilir. Kütüphane, konsol, web, MVC ve masaüstü için geliştirilen .NET uygulamalarında kullanılabilir. Geliştirme ekibi, ticari dağıtımlar için lisanslama süreciyle ilgili doğrudan destek sunar. IronOCR, Visual Studio'nun en yeni sürümleriyle uyumludur.

IronOCR'un Avantajı

  • En son Tesseract 5 motorunu kullanan IronOCR, kağıt belgeleri, barkodları ve QR kodları çeşitli resim veya PDF dosyalarından okuyabilir. Bu paket, masaüstü, konsol ve web uygulamalarına OCR entegrasyonunu kolaylaştırır.
  • IronOCR, taranmış PDF'leri aranabilir PDF'lere dönüştürmemize olanak sağlar, bu da OCR gerçekleştirmemize imkan tanır.
  • Kelime listeleri ve özel dillerin yanı sıra, IronOCR dünya genelinde 125 farklı dili destekler.
  • IronOCR, 20'den fazla farklı türdeki barkod ve QR kodunu tarayabilir.
  • IronOCR, düz metin ve aynı zamanda barkod verileri sağlayabilir. Geliştiriciler, alternatif yapılandırılmış veri nesnesi paradigmasını kullanarak bir sistemde doğrudan giriş için tüm içeriği alabilirler. Bu, web uygulamalarında yapılandırılmış başlıklar, paragraflar, satırlar, kelimeler ve karakterleri içerir.

Aşağıda, verilen görüntüden metin içeriğini tanımak ve metne dönüştürmek için kullanacağımız örnek kod bulunmaktadır.

using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
Imports IronOcr

' Instantiate an IronTesseract object to utilize its OCR capabilities
Private Ocr = New IronTesseract()

' Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest

' Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5

' Create an OcrInput object to add images for OCR processing
Using Input = New OcrInput()
	' Add the image to be processed; specify the image's path
	Input.AddImage("Demo.png")

	' Perform the OCR and store the result
	Dim Result = Ocr.Read(Input)

	' Output the extracted text to the console
	Console.WriteLine(Result.Text)

	' Pause the console to keep it open
	Console.ReadKey()
End Using
$vbLabelText   $csharpLabel

Yukarıdaki kod kesitinde, bir özelliği IronTesseract kullanarak geliştiriyoruz. Önce, bir veya daha fazla resim dosyası eklenmesini sağlamak için yeni bir OcrInput nesnesi oluşturuyoruz. AddImage yöntemi kullanılarak her bir resmin yolunu belirterek istediğiniz kadar resim ekleyebilirsiniz. Resimlerinizi ekledikten sonra, sağlanan girdi üzerinde OCR gerçekleştirmek için IronTesseract nesnesinde Read yöntemi çağrılır. Sonuçta çıkan metin daha sonra çıkarılır ve konsol aracılığıyla görüntülenir.

Aşağıdaki çıktı, daha önce sağlanan görüntüden çıkarılan metni gösterir ve metnin görüntüden başarıyla çıkarıldığını gösterir.

OCR C# Açık Kaynak (Geliştiriciler İçin Liste) Şekil 1 - Çıktı

Derinlemesine bir IronOCR eğitimi için bu yazıya bakın.

Sonuç

OCR açık kaynaklı araçlar, kendi programlarımızı kaynak kodlarını kullanarak oluşturmamıza olanak tanır. Ancak, bazı araçlar resmi bir kütüphaneye veya kodlama sorunlarında destek sağlamak için adanmış bir ekibe sahip değildir. Tesseract'ın belgeleri, yaygın kullanım senaryoları için örnek kod veya öğreticiler içermediğinden, yeni başlayanların kodu ve kütüphaneleri anlaması zorlaşmaktadır.

IronOCR, .NET Framework Standard 2, .NET Framework 4.5 ve .NET Core 2, 3 ve 5 gibi çeşitli .NET projelerini destekler ve Mono, Xamarin ve Azure gibi yeni teknolojilerle de çalışır. IronOCR teknolojilerinden yararlanarak, Tesseract'ın sonuçlarını iyileştirebilir ve hatalı taranmış belgeleri veya görüntüleri düzeltebiliriz. Karmaşık Tesseract sözlük sistemi, NuGet Paketi üzerinden yönetilir. OCR aracı geliştirmek için IronOCR Kütüphanesini kullanıyoruz.

IronOCR ile, herhangi bir ek yapılandırma olmadan programı kullanabiliriz ve PDF dosyalarını, çoklu çerçeveli TIFF ve tüm yaygın görüntü formatlarını destekler. Ayrıca barkod tanıma yetenekleri sunar, barkod verilerini çıkararak ve görüntülerden barkod değerlerini okuyarak. IronOCR, ücretsiz denemeyi içeren uygun maliyetli bir geliştirme sürümü sunar ve yaşam boyu lisans, ekstra masraf olmadan IronOCR paketine dahildir. IronOCR paketi, tek bir ödeme ile birden fazla platformu kapsar. IronOCR fiyatlandırması hakkında daha fazla bilgi için, lütfen bu sayfaya bakın.

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

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara