Przejdź do treści stopki
KORZYSTANIE Z IRONOCR
Jak wykonać OCR tablic rejestracyjnych w języku C#

Jak wykonać OCR tablicy rejestracyjnej w C# (samouczek)

Rozpoznawanie tablic rejestracyjnych stało się niezbędnym narzędziem w wielu branżach, od zarządzania ruchem i systemów parkingowych po egzekwowanie prawa i rozwiązania w zakresie poboru opłat. Wykorzystując technologię optycznego rozpoznawania znaków (OCR), programiści mogą efektywnie wyodrębniać tekst z obrazów, automatyzując proces identyfikacji tablic rejestracyjnych. W tym samouczku pokażemy, jak używać biblioteki IronOCR, potężnej biblioteki OCR w języku C#, do dokładnego odczytywania tablic rejestracyjnych ze zdjęć. Dzięki płynnej integracji z kodem źródłowym OpenCV do zadań związanych z wizją komputerową, IronOCR oferuje solidne rozwiązanie do rozpoznawania tekstu nawet ze złożonych lub zaszumionych źródeł obrazów. Niezależnie od tego, czy pracujesz z czystym obrazem tablicy rejestracyjnej, czy z pełnym zdjęciem pojazdu, ten przewodnik przeprowadzi Cię przez kolejne etapy tworzenia niezawodnego systemu rozpoznawania tablic rejestracyjnych przy użyciu nowoczesnych technik OCR.

Jak korzystać z rozpoznawania tablic rejestracyjnych w języku C

  1. Zainstaluj bibliotekę C#, aby korzystać z funkcji rozpoznawania tablic rejestracyjnych
  2. Importuj obraz tablicy rejestracyjnej do nowej instancji OcrImageInput.
  3. Zastosuj filtry obrazu, aby poprawić ekstrakcję tekstu w języku C#.
  4. Zwiększ szybkość rozpoznawania poprzez określenie obszaru tablicy rejestracyjnej na zdjęciu.
  5. Wydrukuj wyodrebniony tekst, uzywajac instancji OcrLicensePlateResult.

Pierwsze kroki z IronOCR

IronOCR to biblioteka OCR w języku C# oparta na silniku Tesseract OCR, zaprojektowana specjalnie w celu zapewnienia wysokiej dokładności i wydajności w projektach rozpoznawania tekstu w aplikacjach .NET. Idealny do obsługi obrazów z zakłóceniami lub o niskiej jakości, IronOCR zawiera zaawansowane funkcje przetwarzania wstępnego obrazów, takie jak automatyczna redukcja szumów i konwersja do skali szarości, które poprawiają czytelność wyodrębnionego tekstu.

Niektóre z wyróżniających się funkcji IronOCR to:

  • Wysoka dokładność OCR: Zoptymalizowany pod kątem różnych języków i czcionek, IronOCR wyróżnia się dokładnością nawet podczas pracy ze złożonym lub zniekształconym tekstem.
  • Obsługa obrazów i plików PDF: Potrafi odczytywać tekst z wielu formatów obrazów i plików PDF, dzięki czemu jest wszechstronny w przypadku różnych typów dokumentów.
  • Integracja z OpenCV: Dzięki obsłudze OpenCV IronOCR może wykonywać zadania z zakresu widzenia komputerowego, takie jak wykrywanie określonych obszarów tekstu na obrazie, co jest szczególnie przydatne w rozpoznawaniu tablic rejestracyjnych.
  • Zaawansowane przetwarzanie wstępne: Obejmuje filtry do konwersji do skali szarości, obracania, prostowania i poprawiania kontrastu w celu poprawy jakości rozpoznawania.
  • Elastyczne opcje wprowadzania danych: Obsługuje dokumenty wielostronicowe i regulowane obszary, pozwalając programistom skupić przetwarzanie OCR na wybranych obszarach w celu uzyskania szybszych i bardziej ukierunkowanych wyników.

Dzięki tym możliwościom IronOCR jest potężnym rozwiązaniem do tworzenia aplikacji OCR, które wymagają dokładności, elastyczności i łatwości integracji z innymi narzędziami wizji komputerowej.

Utwórz projekt Visual Studio

Zacznij od otwarcia programu Visual Studio i wybrania opcji "Utwórz nowy projekt". Spowoduje to przejście do strony, na której można wybrać typ projektu, który chcesz zbudować (w naszym przypadku będziemy tworzyć aplikację konsolową). Wybierz żądany typ aplikacji i kliknij "Dalej".

Visual Studio Project Type

Teraz nadaj nazwę projektowi i wybierz lokalizację, w której zostanie on zapisany.

Nazwa i lokalizacja projektu

Na koniec wybierz docelową platformę .NET Framework i kliknij przycisk "Utwórz". Spowoduje to utworzenie projektu, jak pokazano poniżej.

Utworzony projekt

Kolejnym krokiem jest zainstalowanie biblioteki IronOCR, abyśmy mogli rozpocząć przetwarzanie tablic rejestracyjnych.

Instalacja IronOCR

Aby rozpocząć korzystanie z IronOCR w projekcie C#, należy zainstalować pakiet IronOCR z NuGet. IronOCR jest kompatybilny z .NET Framework i .NET Core, co ułatwia integrację z różnymi aplikacjami .NET.

Krok 1: Otwórz konsolę menedżera pakietów

W programie Visual Studio przejdź do menu Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów.

Krok 2: Zainstaluj paket IronOCR

Wpisz następujące polecenie w konsoli menedżera pakietów:

Install-Package IronOcr

To polecenie instaluje bibliotekę IronOCR wraz ze wszystkimi zależnościami niezbędnymi do uruchomienia funkcji OCR w projekcie. Ponieważ nasza aplikacja wymaga zaawansowanych funkcji, takich jak rozpoznawanie tablic rejestracyjnych za pomocą wizji komputerowej, można również zainstalować opcjonalny pakiet IronOcr.ComputerVision.Windows w następujący sposób:

Install-Package IronOcr.ComputerVision.Windows

Upewnij się, że masz zainstalowane rozszerzenie IronOcr.Extensions.AdvancedScan, aby móc korzystać z jego potężnej metody ReadLicensePlate:

Install-Package IronOcr.Extensions.AdvancedScan

Alternatywnie można zainstalować pakiety, korzystając z opcji Narzędzia > Menedżer pakietów NuGet > Zarządzaj pakietami NuGet dla rozwiązania i wyszukując potrzebne pakiety:

Menadzer pakietow NuGet

Konfiguracja kodu

Na koniec musimy dodać niezbędne instrukcje importu i using na początku naszego kodu:

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

Odczytywanie tablic rejestracyjnych za pomocą optycznego rozpoznawania znaków

W tej sekcji stworzymy program do odczytu tablic rejestracyjnych przy użyciu IronOCR, silnika OCR Tesseract, który doskonale radzi sobie z wyodrębnianiem tekstu z obrazów. Aby wdrożyć wykrywanie pojazdów, możemy również wykorzystać dodatkowe biblioteki uczenia maszynowego. Warto zauważyć, że IronOCR integruje się z OpenCV, wiodącą biblioteką open source do przetwarzania obrazów, co pozwala nam wykonywać zadania wykrywania obiektów, takie jak identyfikacja pojazdów i tablic rejestracyjnych.

Przykładowy obraz tablicy rejestracyjnej

Będziemy pracować na podstawie następującej licencji:

Przyklad tablicy rejestracyjnej

Przykładowy kod do wykonania OCR na tablicy rejestracyjnej

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

Wynik OCR

Podział kodu:

  • Inicjalizacja: var ocr = new IronTesseract(); tworzy nowa instancje klasy IronTesseract, ktora zapewnia metody do optycznego rozpoznawania znakow (OCR).

  • Wejscie obrazu: Instrukcja using tworzy nowy obiekt OcrImageInput z okreslonym plikiem obrazu "licensePlate.jpeg". Ten obiekt jest przeznaczony do przechowywania danych obrazu do przetwarzania OCR.

  • Wstępne przetwarzanie obrazów:

    • input.DeNoise(); stosuje cyfrowy filtr redukcji szumow w celu poprawy jakosci obrazu, co ulatwia silnikowi OCR odczytanie tekstu.
    • input.ToGrayScale(); konwertuje obraz na odcienie szarosci, co moze poprawic dokladnosc rozpoznawania i szybkosc przetwarzania.
  • Rozpoznawanie tablicy rejestracyjnej: Linia OcrLicensePlateResult result = ocr.ReadLicensePlate(input); uzywa metody ReadLicensePlate do analizy przetworzonego obrazu i wyodrebnienia wszelkiej wykrytej informacji o tablicy rejestracyjnej, przechowujac wyniki w obiekcie OcrLicensePlateResult.

  • Przechowywanie wynikow: Tekst tablicy rejestracyjnej jest przechowywany w zmiennej lancuchowej output przez uzyskanie dostepu do result.Text, ktora zawiera rozpoznany tekst z tablicy rejestracyjnej.

  • Wynik na konsoli: Na koncu Console.WriteLine(output); drukuje wyodrebniony tekst tablicy rejestracyjnej na konsoli do weryfikacji.

Skanowanie numerów rejestracyjnych samochodów

Jeśli mamy zdjęcie całego samochodu, a nie tylko tablicy rejestracyjnej, możemy zaznaczyć prostokątny obszar, aby skupić się na obszarze tablicy rejestracyjnej. Możemy użyć klasy System.Drawing.Rectangle, aby zdefiniować ten obszar w pikselach.

Oryginalny obraz

W naszym przykładzie wykorzystamy następujący plik graficzny:

Samochod z tablica rejestracyjna

Określając obszar zainteresowań, zwiększamy szybkość przetwarzania i unikamy wyodrębniania zbędnego tekstu.

Kod implementacji

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

Skupiony wynik OCR

Podział kodu:

  • Inicjalizacja: var ocr = new IronTesseract(); tworzy nowa instancje klasy IronTesseract, ktora odpowiada za wykonanie operacji OCR.
  • Wejscie OCR: Instrukcja using (var input = new OcrInput()) tworzy nowy obiekt OcrInput, ktory bedzie uzywany do wczytania i przetworzenia obrazu do OCR.
  • Okreslenie obszaru zainteresowania: var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47); definiuje prostokatny obszar (contentArea) w obrazie. Ten prostokąt określa współrzędne i wymiary (szerokość i wysokość) miejsca, w którym ma znajdować się tablica rejestracyjna.
  • Wczytywanie obrazu: input.LoadImage("CarPlate.jpeg", contentArea); wczytuje okreslony plik obrazu ("CarPlate.jpeg") i skupia sie na zdefiniowanym prostokacie (contentArea), aby ograniczyc przetwarzanie OCR do tego konkretnego regionu.
  • Odczyt tablicy rejestracyjnej: OcrLicensePlateResult result = ocr.ReadLicensePlate(input); wywoluje metode ReadLicensePlate, ktora analizuje obraz wejsciowy pod katem znakow tablicy rejestracyjnej i zwraca obiekt OcrLicensePlateResult zawierajacy wyodrebniony tekst.
  • Wynik: Console.WriteLine(result.Text); drukuje rozpoznany tekst z tablicy rejestracyjnej na konsoli.

Automatyczne rozpoznawanie tablic rejestracyjnych

IronOCR wykorzystuje OpenCV do identyfikacji obszarów tekstowych na obrazach, stosując różne techniki przetwarzania obrazu. Ta funkcja umożliwia programom wykrywanie tablic rejestracyjnych poprzez lokalizowanie obszarów tekstowych na obrazie, a następnie wykorzystanie Tesseract do odczytania tych obszarów.

Instalacja

Aby włączyć model wykrywania tablic rejestracyjnych, zainstaluj wymagany pakiet za pomocą konsoli menedżera pakietów:

Przykład wykorzystania automatycznego wykrywania regionu w przypadku tablic rejestracyjnych:

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

Automatyczny wynik OCR

Podział kodu:

  • Inicjalizacja: Tworzona jest instancja klasy IronTesseract, ktora bedzie uzywana do optycznego rozpoznawania znakow (OCR) z wykorzystaniem silnika Tesseract.
  • Wejscie obrazu: Nowy obiekt OcrImageInput jest tworzony z okreslonym plikiem obrazu ("CarPlate.jpeg"). Ten obiekt bedzie sluzyl jako wejscie do procesu OCR i jest zawarty w instrukcji using, aby zapewnic prawidlowe zarzadzanie zasobami.
  • Wykrywanie obszaru tekstowego: Metoda FindTextRegion() jest wywolywana na obiekcie input. Metoda ta wykorzystuje techniki wizji komputerowej do automatycznej identyfikacji obszarów obrazu, które prawdopodobnie zawierają tekst, skupiając się w szczególności na tablicy rejestracyjnej.
  • Rozpoznawanie tablicy rejestracyjnej: Metoda ReadLicensePlate jest wywolywana w celu analizy wykrytych obszarow tekstowych i wyodrebnienia numeru tablicy rejestracyjnej. Wynik jest przechowywany w obiekcie OcrLicensePlateResult, ktory zawiera rozpoznany tekst i wszelkie powiazane metadane.
  • Wynik: Wykryty tekst tablicy rejestracyjnej jest drukowany w konsoli, co pozwala użytkownikowi zobaczyć wyodrębniony numer rejestracyjny.

Licencjonowanie IronOCR

IronOCR License

Dla tych, którzy chcą wypróbować IronOCR, dostępna jest bezpłatna wersja próbna, która zapewnia dostęp do pełnego zakresu oferowanych narzędzi, co oznacza, że można je przetestować we własnych projektach przed zakupem licencji. Po wygaśnięciu bezpłatnego okresu próbnego ceny licencji IronOCR zaczynają się już od $Lite License za licencję Lite. Oferuje również opcjonalne dodatki za dodatkową opłatą, takie jak bezpłatny zakres redystrybucji, nieprzerwane wsparcie techniczne oraz bieżące aktualizacje produktu.

Ponadto, jeśli potrzebujesz korzystać z innych produktów Iron Software poza IronOCR, takich jak IronPDF do zadań związanych z plikami PDF lub IronWord do pracy z dokumentami Word, firma Iron Software oferuje również pakiet Iron Suite, który stanowi doskonały sposób na uzyskanie dostępu do całej gamy narzędzi w atrakcyjnej cenie.

Wnioski

W tym przewodniku omówiliśmy, jak zbudować niezawodny system rozpoznawania tablic rejestracyjnych w języku C# przy użyciu IronOCR. Dzięki potężnym możliwościom ekstrakcji tekstu i integracji z OpenCV, IronOCR zapewnia wydajne, łatwe w użyciu rozwiązanie dla aplikacji wymagających dokładnego rozpoznawania tekstu na zdjęciach pojazdów. Od wstępnego przetwarzania obrazu po ustawianie konkretnych obszarów wykrywania, IronOCR upraszcza proces OCR dzięki narzędziom dostosowanym do obrazów zawierających zakłócenia lub złożonych, takich jak tablice rejestracyjne w ruchu drogowym i materiały z monitoringu.

Niezależnie od tego, czy tworzysz oprogramowanie do monitorowania ruchu, egzekwowania przepisów parkingowych, czy też jakąkolwiek aplikację wymagającą automatycznego rozpoznawania tablic rejestracyjnych, biblioteka IronOCR oferuje kompleksową bibliotekę, która płynnie integruje się ze środowiskami .NET. Postępując zgodnie z tymi krokami, będziesz gotowy do wdrożenia rozwiązań opartych na technologii OCR, które zwiększają wydajność i dokładność w różnych rzeczywistych scenariuszach. Dzięki dodatkowym funkcjom, takim jak wybór regionu i redukcja szumów, IronOCR zapewnia optymalizację zadań związanych z rozpoznawaniem tablic rejestracyjnych w celu uzyskania najlepszych możliwych wyników.

Często Zadawane Pytania

Jak mogę użyć OCR do rozpoznawania numerów rejestracyjnych w języku C#?

Możesz użyć IronOCR do identyfikacji numerów tablic rejestracyjnych w języku C#, wykorzystując klasę IronTesseract do utworzenia instancji OCR, załadowania obrazu zawierającego tablicę rejestracyjną, zastosowania filtrów przetwarzania wstępnego, takich jak redukcja szumów, oraz wyodrębnienia tekstu za pomocą metody ReadLicensePlate.

Jakie są zalety wykorzystania OCR do rozpoznawania tablic rejestracyjnych?

Wykorzystanie OCR do rozpoznawania tablic rejestracyjnych automatyzuje proces wyodrębniania tekstu, zapewniając wysoką dokładność i wydajność. IronOCR rozszerza te możliwości, zapewniając obsługę wielu formatów obrazów oraz integrację z systemami wizji komputerowej, dzięki czemu idealnie nadaje się do zastosowań takich jak zarządzanie ruchem drogowym i egzekwowanie prawa.

Jak radzić sobie z zakłóconymi lub niskiej jakości obrazami podczas przetwarzania OCR?

IronOCR zapewnia zaawansowane funkcje przetwarzania wstępnego obrazów, takie jak automatyczna redukcja szumów i konwersja do skali szarości, które poprawiają dokładność ekstrakcji tekstu nawet w przypadku obrazów z zakłóceniami lub o niskiej jakości.

Czy możliwe jest skupienie przetwarzania OCR na określonych obszarach obrazu?

Tak, IronOCR pozwala określić prostokątne obszary zainteresowania na obrazie, aby skoncentrować przetwarzanie OCR, poprawiając zarówno szybkość, jak i dokładność wyodrębniania tekstu z obszarów takich jak tablice rejestracyjne.

Jak rozpocząć korzystanie z OCR w projekcie Visual Studio?

Aby rozpocząć korzystanie z OCR w projekcie Visual Studio, należy utworzyć nową aplikację konsolową, zainstalować pakiet IronOCR za pośrednictwem NuGet oraz zaimplementować logikę OCR przy użyciu klas i metod IronOCR. Taka konfiguracja pozwala na łatwe wykonywanie zadań OCR w ramach aplikacji.

Jakie funkcje oferuje IronOCR w zakresie rozpoznawania tablic rejestracyjnych?

IronOCR oferuje wysoką dokładność OCR, integrację z OpenCV w celu usprawnienia zadań związanych z wizją komputerową, zaawansowane filtry przetwarzania wstępnego oraz obsługę wielu formatów obrazów i plików PDF, co czyni go wszechstronnym narzędziem do rozpoznawania tablic rejestracyjnych.

W jaki sposób IronOCR integruje się z zadaniami z zakresu widzenia komputerowego?

IronOCR integruje się z OpenCV w celu wykonywania różnych zadań związanych z wizją komputerową, takich jak automatyczne wykrywanie obszarów tekstu, usprawniając proces OCR w zastosowaniach takich jak rozpoznawanie tablic rejestracyjnych.

Jakie opcje licencyjne są dostępne dla IronOCR?

IronOCR oferuje bezpłatną wersję próbną, a także różne opcje licencyjne, począwszy od Lite License. Dodatkowe dodatki oraz Iron Suite są dostępne dla użytkowników poszukujących rozszerzonej funkcjonalności w różnych aplikacjach.

Czy technologia OCR może być stosowana do pełnych obrazów pojazdów?

Tak, IronOCR może być używany z obrazami całych pojazdów. Określając obszar tablicy rejestracyjnej, można skoncentrować przetwarzanie OCR na wybranym obszarze, unikając niepotrzebnego wyodrębniania tekstu i poprawiając wydajność przetwarzania.

Kannaopat Udonpant
Inżynier oprogramowania
Zanim stał się inżynierem oprogramowania, Kannapat ukończył doktorat z zasobów środowiskowych na Uniwersytecie Hokkaido w Japonii. W czasie studiowania, Kannapat również został członkiem Laboratorium Robotyki Pojazdów, które jest częścią Wydziału Inżynierii Bioprodukcji. W 2022 roku wykorzystał swoje umiejętności w ...
Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie