API OCR חינמי ב‑C++ לזיהוי לוחות רישוי אוטומטי
OpenALPR היא ספריית OCR בקוד פתוח מובילה ב‑C++ המאפשרת למפתחי תוכנה לשלב זיהוי לוחות רישוי אוטומטי וזיהוי רכב באפליקציות ה‑C++ שלהם.
מה זה OpenALPR?
OpenALPR היא ספרייה חזקה בקוד פתוח לזיהוי לוחות רישוי אוטומטי (ALPR) המיועדת לאיתור וקריאת לוחות רישוי של רכבים מתמונות וסרטונים. הספרייה נבנתה ב‑C++ ומשתמשת ב‑OCR (זיהוי תווים אופטי) דרך Tesseract, ומאפשרת למפתחי תוכנה לשלב יכולות זיהוי רכב באפליקציות עבור אוטומציה של חניונים, מערכות אבטחה, תחנות גבייה, ותשתיות ערים חכמות. הספרייה כוללת מגוון תכונות הקשורות לפעולות 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.
זיהוי לוח רישוי מתמונה באמצעות API ב‑C++
ספריית OpenALPR בקוד פתוח מספקת תמיכה מלאה ביצירת מערכת זיהוי לוחות רישוי אוטומטית המשתמשת ב‑OCR ובראייה ממוחשבת לקריאת לוחות רישוי מרכבים מתמונות וזרמי וידאו. מפתחים יכולים להשתמש בתמונות סטטיות או במסגרת בזמן אמת ממצלמה באמצעות OpenCV. הקוד שלהלן מדגים את זרימת העבודה הבסיסית של שימוש בספריית OpenALPR ב‑C++. הוא מאתחל את הספרייה, מזהה לוח רישוי מקובץ תמונה, ומדפיס את התוצאות יחד עם רמת הביטחון שלהן.
איך לזהות לוחות רישוי מתמונה באמצעות 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()
עיבוד בזמן אמת וזיהוי רכב באמצעות C++
ספריית OpenALPR בקוד פתוח מותאמת לביצועים ויכולה לעבד זרמי וידאו בזמן אמת, מה שהופך אותה למתאימה ליישומים הדורשים משוב מיידי. מעבר לקריאת לוחות רישוי, הספרייה יכולה גם לזהות את היצרן, הדגם והצבע של הרכב, ובכך לספק סט נתונים שלם יותר לניתוח.
תמיכה בזיהוי לפי מדינה
ספריית OpenALPR כוללת תמיכה בטעינה וזיהוי של לוחות רישוי לפי מדינה בתוך יישומי C++. הספרייה תומכת בלוחות רישוי של יותר מ‑60 מדינות, ויכולה גם לזהות את המדינה עבור כל 50 המדינות של ארה״ב, וכן עבור קנדה ומקסיקו.