Altbilgi içeriğine atla
IRONOCR KULLANıMı
C#'ta Plakalardan OCR Nasıl Gerçekleştirilir

C#'da Plaka OCR Nasıl Yapılır (Eğitim)

Trafik yönetimi ve park sistemlerinden kolluk kuvvetleri ve ücretli geçiş çözümlerine kadar birçok sektörde, plaka tanıma vazgeçilmez bir araç haline geldi. Optik Karakter Tanıma (OCR) teknolojisinden faydalanarak, geliştiriciler görüntülerden metinleri etkili bir şekilde çıkarabilir, plaka tanıma sürecini otomatikleştirebilirler. Bu eğitimde, IronOCR, güçlü bir C# OCR kütüphanesi, kullanarak görüntülerden plakaları hassas bir şekilde okuyabileceğinizi göstereceğiz. Bilgisayarla görme görevleri için OpenCV kaynak kodu ile sorunsuz entegrasyonu sayesinde, IronOCR karmaşık veya gürültülü görüntü kaynaklarından bile metin tanımanın sağlam bir çözümünü sunar. Temiz bir plaka görüntüsüyle veya tam bir araç fotoğrafıyla çalışıyor olsanız da, bu kılavuz size modern OCR tekniklerini kullanarak güvenilir bir plaka tanıma sistemi oluşturma adımlarını gösterecek.

Plaka Tanıma C# Nasıl Kullanılır

  1. Plaka tanıma kullanımı için C# Kütüphanesini kurun
  2. Araç plakası resmini yeni bir OcrImageInput örneğine aktarın.
  3. C#'ta metin çıkarma işlemini iyileştirmek için görüntü filtreleri uygulayın.
  4. Fotoğraftaki plaka bölgesini belirterek tanıma hızını artırın.
  5. Çıkarılan metni bir OcrLicensePlateResult örneği kullanarak yazdırın.

IronOCR ile Başlarken

IronOCR, Tesseract OCR motoru üzerine inşa edilmiş bir C# OCR kütüphanesidir ve .NET uygulamalarında metin tanıma projelerine yüksek doğruluk ve verimlilik getirmek üzere tasarlanmıştır. Gürültülü veya düşük kaliteli görüntülerle başa çıkmak için ideal olan IronOCR, otomatik gürültü azaltma ve gri tonlama dönüşümü gibi güçlü görüntü ön işleme yetenekleri içerir ve metin çıkarma netliğini artırır.

IronOCR'un öne çıkan özelliklerinden bazıları:

  • Yüksek OCR Doğruluğu: Çeşitli diller ve yazı tipleri için optimize edilmiştir, IronOCR karmaşık veya bozulmuş metinlerle çalışırken bile yüksek doğruluk sağlar.
  • Görüntü ve PDF Desteği: Çeşitli görüntü formatlarından ve PDF dosyalarından metin okuyabilir, bu da farklı belge türleri için çok yönlü olmasını sağlar.
  • OpenCV ile Entegrasyon: OpenCV desteği sayesinde, IronOCR belirli metin bölgelerini görüntüde tespit etme gibi bilgisayarla görme görevlerini gerçekleştirebilir, bu da plaka tanıma için özellikle kullanışlıdır.
  • Gelişmiş Ön İşleme: Gri tonlama dönüşümü, döndürme, eğiklik giderme ve kontrast artırma için filtreler içerir, bunlar tanıma kalitesini artırmaya yardımcı olur.
  • Esnek Giriş Seçenekleri: Çok sayfalı belgeleri ve ayarlanabilir bölgeleri destekler, geliştiricilere daha hızlı ve daha hedeflenmiş sonuçlar için belirlenen alanlarda OCR işlemine odaklanmasına olanak tanır.

Bu yeteneklerle, IronOCR, diğer bilgisayarlı görüş araçlarıyla entegrasyonda doğruluk, esneklik ve kolaylık arayan OCR uygulamaları oluşturmak için güçlü bir çözümdür.

Bir Visual Studio Projesi Oluşturun

Visual Studio'yu açıp "Yeni Bir Proje Oluştur"u seçerek başlayın. Bu, sizin (bizim durumumuzda, bir Konsol Uygulaması oluşturacağız) hangi tür projeyi oluşturmak istediğinizi seçebileceğiniz bir sayfaya götürecek. İstediğiniz uygulama türünü seçin ve "İleri"ye tıklayın.

Visual Studio Proje Türü

Şimdi, projenize bir isim verin ve kaydedileceği yeri seçin.

Proje Adı ve Konumu

Son olarak, hedef .NET çerçevenizi seçin ve "Oluştur" düğmesine tıklayın. Bu aşağıda gösterildiği gibi projeyi oluşturacaktır.

Oluşturulan Proje

Bir sonraki adım, plaka işlemi başlatabilmemiz için IronOCR kütüphanesini kurmaktır.

IronOCR'un Kurulumu

C# projenizde IronOCR ile başlamak için, NuGet'ten IronOCR paketini yüklemeniz gerekecek. IronOCR, .NET Framework ve .NET Core ile uyumludur, böylece çeşitli .NET uygulamalarına kolayca entegre edilebilir.

1. Adım: Paket Yöneticisi Konsolunu Açın

Visual Studio'da, Araçlar > NuGet Paket Yöneticisi > Paket Yöneticisi Konsolu yolunu takip edin.

2. Adım: IronOCR Paketini Kurun

Paket Yöneticisi Konsoluna aşağıdaki komutu girin:

Install-Package IronOcr

Bu komut, projenizde OCR işlevlerini çalıştırmak için gereken tüm bağımlılıklarla birlikte IronOCR kütüphanesini kurar. Uygulamamız, bilgisayarlı görüş kullanarak plaka tespiti gibi gelişmiş özellikler gerektirdiğinden, isteğe bağlı IronOcr.ComputerVision.Windows paketini de bu şekilde kurabilirsiniz:

Install-Package IronOcr.ComputerVision.Windows

IronOcr.Extensions.AdvancedScan uzantısının kurulu olduğundan emin olun, böylece güçlü ReadLicensePlate yönteminden yararlanabilirsiniz:

Install-Package IronOcr.Extensions.AdvancedScan

Alternatif olarak, ihtiyacınız olan paketleri aramak için Araçlar > NuGet Paket Yöneticisi > Çözüm İçin NuGet Paketlerini Yönet seçeneğini kullanarak paketleri kurabilirsiniz:

NuGet Paket Yöneticisi

Kodu Ayarlama

Son olarak, kodumuzun başına gerekli ilave ve using ifadelerini eklemeliyiz:

using IronOcr;
using IronOcr;
Imports IronOcr
$vbLabelText   $csharpLabel

Optik Karakter Tanıma ile Plakaları Okuma

Bu bölümde, IronOCR, Tesseract OCR Motoru, kullanarak plaka okumak için bir program oluşturacağız. Araç tespiti uygulamak için ayrıca makine öğrenimi kütüphanelerini de dahil edebiliriz. Özellikle, IronOCR, açık kaynaklı lider bilgisayarla görme kütüphanesi OpenCV ile entegre olup, araç ve plaka gibi nesneleri tespit etme görevlerini yerine getirmemize olanak sağlar.

Örnek Plaka Görüntüsü

Aşağıdaki plaka ile çalışacağız:

Plaka Örneği

Plakaya OCR Uygulamak için Örnek Kod

using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrImageInput("licensePlate.jpeg"))
{
    // Fixes digital noise and makes the image easier to read
    input.DeNoise();
    input.ToGrayScale();

    // Reads the license plate information and stores it for further use
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);

    // Saves the license plate text to a string variable
    string output = result.Text;

    // Outputs the license plate text to the console
    Console.WriteLine(output);
}
using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrImageInput("licensePlate.jpeg"))
{
    // Fixes digital noise and makes the image easier to read
    input.DeNoise();
    input.ToGrayScale();

    // Reads the license plate information and stores it for further use
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);

    // Saves the license plate text to a string variable
    string output = result.Text;

    // Outputs the license plate text to the console
    Console.WriteLine(output);
}
Imports IronOcr

Private ocr = New IronTesseract()

Using input = New OcrImageInput("licensePlate.jpeg")
	' Fixes digital noise and makes the image easier to read
	input.DeNoise()
	input.ToGrayScale()

	' Reads the license plate information and stores it for further use
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)

	' Saves the license plate text to a string variable
	Dim output As String = result.Text

	' Outputs the license plate text to the console
	Console.WriteLine(output)
End Using
$vbLabelText   $csharpLabel

OCR Çıkışı

Kod Açıklaması:

  • Başlatma: var ocr = new IronTesseract();, Optik Karakter Tanıma (OCR) için yöntemler sağlayan IronTesseract sınıfının yeni bir örneğini oluşturur.

  • Görüntü Girişi: using ifadesi, belirtilen resim dosyası ile yeni bir OcrImageInput nesnesi oluşturur "licensePlate.jpeg". Bu nesne, OCR işlemi için görüntü verilerini tutmak üzere tasarlanmıştır.

  • Görüntü Ön İşleme:

    • input.DeNoise();, görüntü kalitesini artırmak için dijital bir gürültü azaltma filtresi uygular ve OCR motorunun metni okumasını kolaylaştırır.
    • input.ToGrayScale();, tanıma doğruluğunu ve işlem hızını artırabilecek şekilde görüntüyü gri tonlamalıya dönüştürür.
  • Plaka Tanıma: OcrLicensePlateResult result = ocr.ReadLicensePlate(input); satırı, işlenmiş görüntüyü analiz etmek ve tespit ettiği herhangi bir plaka bilgisini çıkarmak için ReadLicensePlate yöntemini kullanır ve sonuçları bir OcrLicensePlateResult nesnesinde saklar.

  • Çıktı Depolama: Plaka metni, plakadaki tanınan metni içeren result.Text'e erişilerek output dizesi değişkeninde saklanır.

  • Konsol Çıkışı: Son olarak, Console.WriteLine(output); çıkarılan plaka metnini doğrulama için konsola yazdırır.

Bir Arabadan Plaka Numaralarını Tarama

Sadece plaka yerine tüm arabanın bir görüntüsüne sahipsek, plaka alanına odaklanmak için dikdörtgen bir bölge belirtebiliriz. Bu alanı piksel olarak tanımlamak için System.Drawing.Rectangle kullanabiliriz.

Orijinal Görüntü

Örneğimiz için aşağıdaki görüntü dosyasını kullanacağız:

Plakalı Araba

İlgili bölgeyi belirterek, işlem hızını artırır ve gereksiz metin çıkarmayı önleriz.

Uygulama Kodu

using IronOcr;
using System.Drawing;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
    input.LoadImage("CarPlate.jpeg", contentArea);
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
using IronOcr;
using System.Drawing;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
    input.LoadImage("CarPlate.jpeg", contentArea);
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
Imports IronOcr
Imports System.Drawing

Private ocr = New IronTesseract()

Using input = New OcrInput()
	Dim contentArea = New Rectangle(x:= 252, y:= 282, width:= 148, height:= 47)
	input.LoadImage("CarPlate.jpeg", contentArea)
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
	Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Odaklanılmış OCR Çıkışı

Kod Açıklaması:

  • Başlatma: var ocr = new IronTesseract();, OCR işlemlerini yürütmekten sorumlu olan IronTesseract sınıfının yeni bir örneğini oluşturur.
  • OCR Girişi: using (var input = new OcrInput()) ifadesi, OCR için görüntüyü yüklemek ve işlemek amacıyla kullanılacak yeni bir OcrInput nesnesi oluşturur.
  • İlgi Alanını Tanımlama: var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);, görüntü içinde dikdörtgen bir alan (contentArea) tanımlar. Bu dikdörtgen, plakanın bulunması beklenen koordinat ve boyutları (genişlik ve yükseklik) belirtir.
  • Görüntüyü Yükleme: input.LoadImage("CarPlate.jpeg", contentArea); belirtilen resim dosyasını ("CarPlate.jpeg") yükler ve tanımlanan dikdörtgen (contentArea) üzerinde odaklanarak OCR işlemine sınırlı bir alan getirir.
  • Plakayı Okuma: OcrLicensePlateResult result = ocr.ReadLicensePlate(input);, giriş görüntüsünü plaka karakterleri için analiz etmek ve çıkarılan metni içeren bir OcrLicensePlateResult nesnesi döndürmek üzere ReadLicensePlate yöntemini çağırır.
  • Çıktı: Console.WriteLine(result.Text);, plakadan tanınan metni konsola yazdırır.

Otomatik Plaka Tanıma

IronOCR, çeşitli görüntü işleme teknikleri kullanarak görüntüdeki metin bölgelerini tespit etmek için OpenCV'den yararlanır. Bu işlevsellik sayesinde, programlar görüntüdeki metin bölgelerini tespit edip, ardından bu bölgeleri okumak için Tesseract'ı kullanarak plakaları tespit edebilir.

Kurulum

Plaka tespit modelini etkinleştirmek için gerekli paketi, Paket Yöneticisi Konsolu aracılığıyla yükleyin:

Plakalar için otomatik bölge tespitini kullanma örneği:

var ocr = new IronTesseract();

using (var input = new OcrImageInput("CarPlate.jpeg"))
{
    input.FindTextRegion();
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();

using (var input = new OcrImageInput("CarPlate.jpeg"))
{
    input.FindTextRegion();
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()

Using input = New OcrImageInput("CarPlate.jpeg")
	input.FindTextRegion()
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
	Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Otomatik OCR Çıkışı

Kod Açıklaması:

  • Başlatma: Tesseract motoru ile optik karakter tanıma (OCR) için kullanılacak IronTesseract sınıfının bir örneği oluşturulur.
  • Görüntü Girişi: Belirtilen resim dosyası ("CarPlate.jpeg") ile yeni bir OcrImageInput nesnesi başlatılır. Bu nesne, OCR sürecine giriş olarak hizmet edecek ve doğru kaynak yönetimini sağlamak için bir using ifadesine kapatılmıştır.
  • Metin Bölgesi Algılama: FindTextRegion() yöntemi, input nesnesinde çağrılır. Bu yöntem, bilgisayarlı görüş tekniklerini kullanarak özellikle plaka hedeflenen metin içeren alanları otomatik olarak tespit eder.
  • Plaka Tanıma: ReadLicensePlate yöntemi, algılanan metin bölgelerini analiz etmek ve plaka numarasını çıkarmak için çağrılır. Sonuç, tanınan metni ve ilgili herhangi bir metaveriyi içeren bir OcrLicensePlateResult nesnesinde saklanır.
  • Çıktı: Tespit edilen plaka metni konsolda yazdırılır, kullanıcıya çıkarılan plaka numarasını görme olanağı sunar.

IronOCR Lisanslama

IronOCR Lisansı

IronOCR'u kendiniz denemek isteyenler için, IronOCR tüm araç yelpazesine erişim sağlayan bir ücretsiz deneme sunuyor, böylece lisans satın almadan önce kendi projelerinizde deneyebilirsiniz. Ücretsiz deneme süreniz dolduğunda, IronOCR lisansı, sadece $liteLicense'den başlayan lite lisansı ile başlar. Ayrıca, telif ücretsiz yeniden dağıtım kapsamı, kesintisiz destek ve sürekli ürün güncellemeleri gibi ek bir maliyet karşılığında isteğe bağlı eklentiler sağlar.

Bunun ötesinde, sadece IronOCR dışında daha fazla Iron Software ürünü kullanmanız gerekirse, PDF ile ilgili görevleriniz için IronPDF veya Word belgeleri ile çalışmak için IronWord gibi, Iron Software ayrıca Iron Suite sunar, bu da tüm araç yelpazesine uygun bir fiyatla erişim sağlamanın harika bir yoludur.

Sonuç

Bu kılavuzda, C# kullanarak güçlü bir IronOCR kullanarak güvenilir bir plaka tanıma sistemi kurmayı araştırdık. Güçlü metin çıkarma yetenekleri ve OpenCV ile entegrasyonu sayesinde IronOCR, araç görüntülerinden doğru metin tanıma gerektiren uygulamalar için verimli ve kullanımı kolay bir çözüm sunar. Görüntüyü ön işlemekten belirli tespit bölgelerini ayarlamaya kadar, IronOCR, trafik ve gözetim görüntüleri gibi gürültülü veya karmaşık görüntüler için özelleştirilmiş araçlarla OCR sürecini basitleştirir.

Trafik izleme, park uygulama veya otomatik plaka tanıma gerektiren herhangi bir uygulama geliştiriyorsanız, IronOCR, .NET ortamlarına sorunsuz bir şekilde entegre olan kapsamlı bir kütüphane sunar. Bu adımları takip ederek, çeşitli gerçek dünya senaryolarında verimliliği ve doğruluğu artıran OCR destekli çözümleri dağıtmaya hazırsınız. Bölge seçimi ve gürültü azaltma gibi ek özelliklerle, IronOCR, plaka tanıma görevlerinizin en iyi sonuçlar için optimize edilmesini sağlar.

Sıkça Sorulan Sorular

C#'ta plaka numaralarını tanımlamak için OCR'u nasıl kullanabilirim?

C#'ta plaka numaralarını tanımlamak için IronOCR'u kullanarak, bir OCR örneği oluşturmak için IronTesseract sınıfını kullanın, plakanın bulunduğu görüntüyü yükleyin, gürültü azaltma gibi ön işleme filtrelerini uygulayın ve metni çıkarmak için ReadLicensePlate yöntemini kullanın.

Plaka tanıma için OCR kullanmanın avantajları nelerdir?

Plaka tanıma için OCR kullanmak, metin çıkarım sürecini otomatikleştirerek yüksek doğruluk ve verimlilik sağlar. IronOCR, çoklu resim formatları ve bilgisayarla görme entegrasyonu desteği sağlayarak trafik yönetimi ve kolluk kuvvetleri gibi uygulamalar için idealdir.

OCR işlemesinde gürültülü veya düşük kaliteli görüntüleri nasıl ele alabilirim?

IronOCR, gürültü azaltma ve gri tonlamaya dönüştürme gibi güçlü resim ön işleme olanakları sağlar, bu da gürültülü veya düşük kaliteli görüntülerle çalışırken metin çıkarım doğruluğunu artırır.

Bir resmin belirli bölgelerine OCR işlemesini odaklamak mümkün mü?

Evet, IronOCR, bir resimdeki ilgi alanlarını belirlemenize izin verir ve OCR işlemesini burada odaklayarak, plaka gibi alanlardan metin çıkarım hızını ve doğruluğunu artırır.

Bir Visual Studio projesinde OCR ile nasıl başlamalıyım?

Bir Visual Studio projesinde OCR kullanmaya başlamak için yeni bir Console Application oluşturun, NuGet üzerinden IronOCR paketini yükleyin ve IronOCR sınıfları ve yöntemleri kullanarak OCR mantığını uygulayın. Bu kurulum, uygulamanızda OCR görevlerini kolayca gerçekleştirmenizi sağlar.

IronOCR, plaka tanıma için hangi özellikleri sunar?

IronOCR, yüksek OCR doğruluğu, gelişmiş bilgisayarla görme görevleri için OpenCV ile entegrasyon, gelişmiş ön işleme filtreleri ve çoklu resim ve PDF formatlarına destek gibi özellikler sunarak plaka tanıma için çok yönlü bir araç haline getirir.

IronOCR bilgisayarla görme görevleriyle nasıl entegre edilir?

IronOCR, otomatik metin bölgesi algılama gibi çeşitli bilgisayarla görme görevlerini gerçekleştirmek için OpenCV ile entegre olur ve plaka tanıma gibi uygulamalar için OCR işlemini geliştirir.

IronOCR için hangi lisanslama seçenekleri mevcuttur?

IronOCR, bir lite lisansından başlayarak çeşitli lisans seçeneklerinin yanı sıra ücretsiz bir deneme sunar. Farklı uygulamalarda genişletilmiş işlevsellik arayan kullanıcılar için ek eklentiler ve Iron Suite mevcuttur.

OCR teknolojisi tüm taşıt resimlerine uygulanabilir mi?

Evet, IronOCR tüm araç resimleri ile kullanılabilir. Plaka bölgesini belirterek, OCR işlemesini istenen alana odaklayabilir, gereksiz metin çıkarımından kaçınarak işlem verimliliğini artırabilirsiniz.

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