Безкоштовний C++ OCR API для автоматичного розпізнавання номерних знаків
OpenALPR — провідна відкрито‑джерельна C++ OCR бібліотека, яка дозволяє розробникам програмного забезпечення вбудовувати автоматичне розпізнавання номерних знаків та розпізнавання транспортних засобів у свої C++ застосунки.
Що таке OpenALPR?
OpenALPR — потужна відкрито‑джерельна бібліотека автоматичного розпізнавання номерних знаків (ALPR), розроблена для виявлення та зчитування номерних знаків транспортних засобів з зображень та відео. Створена на C++ і використовує OCR (оптичне розпізнавання символів) через Tesseract, OpenALPR дозволяє розробникам програмного забезпечення інтегрувати можливості розпізнавання транспортних засобів у додатки для автоматизації паркування, систем безпеки, платних пунктів та інфраструктури «розумного» міста. Бібліотека включає різноманітні функції, пов’язані з OCR, такі як розпізнавання номерних знаків з зображень і відео, розпізнавання номерних знаків з потоків живих камер, підтримка шаблонів номерних знаків для конкретних регіонів, інтеграція у власні застосунки тощо.
OpenALPR — надзвичайно гнучке рішення з прив’язками до інших популярних мов програмування, таких як C#, Java та Python, що робить його доступним широкому колу розробників. Бібліотека доступна як у відкритій, так і в комерційній версії, причому відкриту версію часто обирають розробники та хобісти, які хочуть експериментувати з технологією ALPR. Бібліотека спроектована як крос‑платформенна і може бути скомпільована та запущена на Linux, Windows та macOS. Незалежно від того, чи створюєте ви систему платних пунктів, автоматизацію паркування чи платформу моніторингу дорожнього руху, OpenALPR забезпечує надійну основу для точного розпізнавання номерних знаків — без необхідності у хмарних залежностях.
Початок роботи з OpenALPR
Рекомендований спосіб встановлення OpenALPR — використання GitHub. Будь ласка, скористайтеся наступною командою для безпроблемної інсталяції.
Встановити OpenALPR API через GitHub
git clone https://github.com/openalpr/openalpr.git Встановити OpenALPR API через CMake
# Build with CMake
mkdir build
cd build
cmake ..
make
sudo make install
Ви також можете встановити його вручну; завантажте останні файли релізу безпосередньо з GitHub репозиторію.
Розпізнавання номерного знака з зображення за допомогою C++ API
Відкрита бібліотека OpenALPR забезпечує повну підтримку створення систем автоматичного розпізнавання номерних знаків, які використовують OCR та комп’ютерний зір для зчитування реєстраційних номерів транспортних засобів з зображень та відеопотоків. Розробники можуть використовувати статичні зображення або кадри в режимі реального часу з камери за допомогою OpenCV. Наведений нижче фрагмент коду демонструє базовий робочий процес використання бібліотеки OpenALPR C++. Він ініціалізує бібліотеку, розпізнає номерний знак з файлу зображення та виводить результати разом із їхніми оцінками впевненості.
Як виявити номерні знаки на зображенні за допомогою C++ API?
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()
Обробка в реальному часі та розпізнавання транспортних засобів за допомогою C++
Відкрита бібліотека OpenALPR оптимізована для продуктивності та може обробляти відеопотоки в режимі реального часу, що робить її придатною для застосувань, які потребують миттєвого зворотного зв’язку. Окрім простого зчитування номерних знаків, бібліотека OpenALPR може також визначати марку, модель та колір транспортного засобу, забезпечуючи більш повний набір даних для аналізу.
Підтримка розпізнавання за країною
Бібліотека OpenALPR включає підтримку завантаження та розпізнавання номерних знаків, специфічних для окремих країн, у C++ застосунках. Бібліотека містить номерні знаки більш ніж 60 країн і навіть може визначати штат, у якому випущено номер, для всіх 50 штатів США, а також для Канади та Мексики.