Darmowe API OCR w C++ do automatycznego rozpoznawania tablic rejestracyjnych
OpenALPR to wiodąca otwartoźródłowa biblioteka OCR w C++, która umożliwia programistom wbudowanie automatycznego rozpoznawania tablic rejestracyjnych i rozpoznawania pojazdów w ich własnych aplikacjach C++.
Co to jest OpenALPR?
OpenALPR to potężna otwartoźródłowa biblioteka do automatycznego rozpoznawania tablic rejestracyjnych (ALPR), zaprojektowana do wykrywania i odczytywania tablic pojazdów z obrazów i wideo. Zbudowana w C++ i wykorzystująca OCR (Optical Character Recognition) poprzez Tesseract, OpenALPR pozwala programistom na integrację możliwości rozpoznawania pojazdów w aplikacjach do automatyzacji parkingów, systemów bezpieczeństwa, punktów poboru opłat oraz infrastruktury inteligentnych miast. Biblioteka zawiera różne funkcje związane z operacjami OCR, takie jak rozpoznawanie tablic z obrazów i wideo, rozpoznawanie tablic z transmisji na żywo, obsługa szablonów specyficznych dla regionów, integracja z aplikacjami własnymi i wiele innych.
OpenALPR jest bardzo elastycznym rozwiązaniem z powiązaniami dla innych popularnych języków programowania, takich jak C#, Java i Python, co czyni je dostępnym dla szerokiego grona deweloperów. Biblioteka dostępna jest zarówno w wersji otwartoźródłowej, jak i komercyjnej; wersja otwartoźródłowa jest popularnym wyborem wśród programistów i hobbystów, którzy chcą eksperymentować z technologią ALPR. Biblioteka jest zaprojektowana jako wieloplatformowa i może być kompilowana oraz uruchamiana na Linux, Windows i macOS. Niezależnie od tego, czy budujesz system poboru opłat, automatyzację parkingu, czy platformę monitoringu ruchu, OpenALPR zapewnia solidną podstawę do precyzyjnego rozpoznawania tablic bez konieczności korzystania z usług w chmurze.
Rozpoczęcie pracy z OpenALPR
Zalecany sposób instalacji OpenALPR to użycie GitHub. Proszę użyć poniższego polecenia, aby przeprowadzić płynną instalację.
Instalacja OpenALPR API za pomocą GitHub
git clone https://github.com/openalpr/openalpr.git Instalacja OpenALPR API za pomocą CMake
# Build with CMake
mkdir build
cd build
cmake ..
make
sudo make install
Możesz również zainstalować go ręcznie; pobierz najnowsze pliki wydania bezpośrednio z GitHub repozytorium.
Rozpoznawanie tablicy rejestracyjnej z obrazu przy użyciu API C++
Otwarta biblioteka OpenALPR zapewnia pełne wsparcie przy tworzeniu systemu automatycznego rozpoznawania tablic, który wykorzystuje OCR i wizję komputerową do odczytywania tablic rejestracyjnych z obrazów i strumieni wideo. Programiści mogą używać statycznych obrazów lub klatek w czasie rzeczywistym z kamery przy użyciu OpenCV. Poniższy fragment kodu demonstruje podstawowy przepływ pracy z biblioteką OpenALPR w C++. Inicjalizuje bibliotekę, rozpoznaje tablicę z pliku obrazu, a następnie wypisuje wyniki wraz z ich współczynnikami pewności.
Jak wykrywać tablice rejestracyjne z obrazu przy użyciu API C++?
from openalpr import Alpr
alpr = Alpr("us", "/path/to/openalpr.conf", "/path/to/runtime_data")
if not alpr.is_loaded():
print("Error loading OpenALPR")
sys.exit(1)
results = alpr.recognize_file("/path/to/image.jpg")
i = 0
for plate in results['results']:
i += 1
print("Plate #%d" % i)
print(" %12s %12s" % ("Plate", "Confidence"))
for candidate in plate['candidates']:
prefix = "-"
if candidate['matches_template']:
prefix = "*"
print(" %s %12s%12f" % (prefix, candidate['plate'], candidate['confidence']))
# Call when completely done to release memory
alpr.unload()
Przetwarzanie w czasie rzeczywistym i rozpoznawanie pojazdów przy użyciu C++
Otwarta biblioteka OpenALPR jest zoptymalizowana pod kątem wydajności i może przetwarzać strumienie wideo w czasie rzeczywistym, co czyni ją odpowiednią dla aplikacji wymagających natychmiastowej reakcji. Poza odczytywaniem tablic, biblioteka OpenALPR potrafi także identyfikować markę, model i kolor pojazdu, dostarczając pełniejszy zestaw danych do analizy.
Wsparcie rozpoznawania specyficznego dla kraju
Biblioteka OpenALPR zawiera wsparcie dla ładowania i rozpoznawania tablic specyficznych dla poszczególnych krajów w aplikacjach C++. Biblioteka obejmuje tablice z ponad 60 krajów i potrafi nawet określić stan wydania dla wszystkich 50 stanów USA, a także dla Kanady i Meksyku.