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. Zaimportuj 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. PRINT wyodrębniony tekst przy użyciu 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".

Typ projektu Visual Studio

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

Nazwa projektu i lokalizacja

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:

Menedżer pakietów 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:

Przykład 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 nową instancję klasy IronTesseract, która udostępnia metody do optycznego rozpoznawania znaków (OCR).

  • Wprowadzanie obrazu: Instrukcja using tworzy nowy obiekt OcrImageInput z określonym plikiem obrazu "licensePlate.jpeg". Ten obiekt jest przeznaczony do przechowywania danych obrazu do przetwarzania OCR.

  • Wstępne przetwarzanie obrazów:

    • input.DeNoise(); stosuje filtr cyfrowej redukcji szumów w celu poprawy jakości obrazu, ułatwiając silnikowi OCR odczytanie tekstu.
    • input.ToGrayScałe(); konwertuje obraz na skalę szarości, co może poprawić dokładność rozpoznawania i szybkość przetwarzania.
  • Rozpoznawanie tablic rejestracyjnych: Wiersz OcrLicensePlateResult result = ocr.ReadLicensePlate(input); wykorzystuje metodę ReadLicensePlate do analizy przetworzonego obrazu i wyodrębnienia wszelkich wykrytych informacji o tablicach rejestracyjnych, zapisując wyniki w obiekcie OcrLicensePlateResult.

  • Przechowywanie wyników: Tekst tablicy rejestracyjnej jest przechowywany w zmiennej typu string output poprzez dostęp do result.Text, która zawiera rozpoznany tekst z tablicy rejestracyjnej.

  • Wyjście konsoli: Na koniec Console.WriteLine(output); PRINTuje wyodrębniony tekst tablicy rejestracyjnej na konsoli w celu 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:

Samochód z tablicą rejestracyjną

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

Wynik ukierunkowanego OCR

Podział kodu:

  • Inicjalizacja: var ocr = new IronTesseract(); tworzy nową instancję klasy IronTesseract, która odpowiada za wykonywanie operacji OCR.
  • Dane wejściowe OCR: Instrukcja using (var input = new OcrInput()) tworzy nowy obiekt OcrInput, który zostanie użyty do załadowania i przetworzenia obrazu na potrzeby OCR.
  • Definiowanie obszaru zainteresowania: var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47); definiuje prostokątny obszar (contentArea) w obrębie obrazu. Ten prostokąt określa współrzędne i wymiary (szerokość i wysokość) miejsca, w którym ma znajdować się tablica rejestracyjna.
  • Ładowanie obrazu: input.LoadImage("CarPlate.jpeg", contentArea); ładuje określony plik obrazu ("CarPlate.jpeg") i skupia się na zdefiniowanym prostokącie (contentArea), aby ograniczyć przetwarzanie OCR do tego konkretnego obszaru.
  • Odczytanie tablicy rejestracyjnej: OcrLicensePlateResult result = ocr.ReadLicensePlate(input); wywołuje metodę ReadLicensePlate, która analizuje obraz wejściowy pod kątem znaków tablicy rejestracyjnej i zwraca obiekt OcrLicensePlateResult zawierający wyodrębniony tekst.
  • Wynik: Console.WriteLine(result.Text); PRINTuje 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 wymagańy 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

Wynik automatycznego OCR

Podział kodu:

  • Inicjalizacja: Tworzona jest instancja klasy IronTesseract, która będzie używana do optycznego rozpoznawania znaków (OCR) za pomocą silnika Tesseract.
  • Wprowadzanie obrazu: Tworzona jest instancja nowego obiektu OcrImageInput z określonym plikiem obrazu ("CarPlate.jpeg"). Obiekt ten posłuży jako dane wejściowe dla procesu OCR i jest ujęty w instrukcji using w celu zapewnienia prawidłowego zarządzania zasobami.
  • Wykrywanie regionu tekstu: Metoda FindTextRegion() jest wywoływana 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 tablic rejestracyjnych: Wywoływana jest metoda ReadLicensePlate w celu analizy wykrytych obszarów tekstu i wyodrębnienia numeru rejestracyjnego. Wynik jest przechowywany w obiekcie OcrLicensePlateResult, który zawiera rozpoznany tekst oraz wszelkie powiązane metadane.
  • Wynik: Wykryty tekst tablicy rejestracyjnej jest drukowany w konsoli, co pozwala użytkownikowi zobaczyć wyodrębniony numer rejestracyjny.

Licencjonowanie IronOCR

Licencja IronOCR

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

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie