API זיהוי לוחיות רישוי (ALPR / ANPR) Online
בהשוואה ל-V1: פרמטרים חדשים regions, camera_id, timestamp, config, threshold, mode
קורא לוחיות רישוי בתמונה של רכב. שלחו ב-POST תמונה אחת (JPEG, PNG, WebP, BMP או TIFF, עד 8 MB) כגוף JSON עם image_url או image_base64, כהעלאת multipart/form-data בשדה "image", או כבתים גולמיים עם Content-Type מסוג image/*. כל לוחית שנמצאה מוחזרת עם הטקסט, ציון 0-1, קריאות חלופיות, תיבת הלוחית בפיקסלים וציון הזיהוי. המנוע הוא גלאי וקורא הלוחיות שלנו, המכוון למשאיות ואוטובוסים אירופיים. תמונות מעובדות בזיכרון ולעולם אינן נשמרות. image_url חייב להיות כתובת http(s) ציבורית; כתובות פרטיות ופנימיות, וכן הפניות אליהן, נדחות, וההורדה נעצרת לאחר 10 שניות.
POST https://nakordoni.eu/api/v4/data/plate-recognition
— מחלקת מכסה: heavy
| פרמטר | תיאור |
|---|---|
image_url | (גוף JSON) כתובת URL ציבורית (http(s)) של התמונה. עד 8 MB, עד 3 הפניות, מגבלת הורדה של 10 s. |
image_base64 | (גוף JSON) התמונה כ-base64 (קידומת data:image/...;base64, מותרת). שלחו image_url או image_base64, לא את שניהם. |
regions | אופציונלי. המדינות שאתם מצפים להן, כקודי ISO 3166-1 alpha-2: מערך JSON ["PL","DE"] או מחרוזת מופרדת בפסיקים "PL,DE" (שדה multipart או פרמטר query). עד 10. ניחוש המדינה וסדר הקריאות מוטים לטובת מדינות אלה: כאשר הקריאה הטובה ביותר אינה תואמת לפורמט של אף מדינה ברשימה, אך מועמד אחר שה-score שלו נמוך ב-0.15 לכל היותר תואם, המועמד הזה הופך ללוחית. לוחית שאינה תואמת לאף מדינה ברשימה שומרת על התשובה הרגילה שלה. |
camera_id | אופציונלי. מזהה המצלמה או השער שלכם, עד 128 תווים. מוחזר ללא שינוי ב-data.camera_id. לא נשמר מעבר ליומן הבקשות הרגיל. |
timestamp | אופציונלי. זמן הצילום בפורמט שלכם (למשל 2026-10-27T14:05:00Z), עד 64 תווים. מוחזר ללא שינוי ב-data.timestamp. לא נשמר מעבר ליומן הבקשות הרגיל. |
config | אופציונלי. אובייקט JSON {"threshold": 0-1, "mode": "fast"|"full"}. בטופס multipart או במחרוזת query שלחו אותו כמחרוזת JSON, או השתמשו בשדות threshold ו-mode. |
threshold | אופציונלי, כמו config.threshold. תוצאות עם score מתחת לערך זה (0-1) מושמטות. כשלא נשארת תוצאה, התשובה היא 404 no_plate_detected. |
mode | אופציונלי, כמו config.mode. full (ברירת מחדל) מריץ זיהוי לוחיות וגילוי רכב. fast מדלג על גילוי הרכב למהירות דומה ל-v2: region עדיין מתמלא, vehicle הוא null. |
שדות התשובה — בתוך אובייקט data שבמעטפת התשובה. [] מסמן רשימה, ולכן data.items[].name הוא שדה name של כל פריט. שדה יהיה null, ייעדר או יחזור כרשימה ריקה כשאין לנו ערך עבורו — לעולם לא ערך ממלא מקום.
| שדה | תיאור |
|---|---|
data.success | true כאשר נקראה לפחות לוחית אחת; data.message מציין כמה. |
data.processing_time | הזמן שהוקדש לבקשה באלפיות שנייה (הורדה, זיהוי לוחית וגילוי רכב). v4 לוקח יותר זמן מ-v2 בגלל גילוי הרכב, בדרך כלל 0.5-1.5 s לתמונה. עם config.mode=fast אין גילוי רכב, והזמן קרוב ל-v2. |
data.camera_id | ה-camera_id ששלחתם, ללא שינוי. קיים רק אם שלחתם אחד. |
data.timestamp | ה-timestamp ששלחתם, ללא שינוי (מחרוזת נשארת מחרוזת, מספר נשאר מספר). קיים רק אם שלחתם אחד. |
data.results[] | רשומה אחת לכל לוחית, ציון הזיהוי הגבוה ביותר ראשון. |
data.results[].plate | טקסט הלוחית, באותיות גדולות, אותיות A-Z וספרות בלבד (ללא רווחים או מקפים). |
data.results[].score | ודאות הקריאה 0-1 (ממוצע הוודאות של כל תו). |
data.results[].candidates[] | עד 5 קריאות {plate, score}, הטובה ביותר ראשונה; הראשונה היא הלוחית. |
data.results[].region | {code, score}: code היא מדינת הלוחית לפי ISO 3166-1 alpha-2 (לדוגמה UA, PL, RO), הנקראת מתבנית הלוחית. score 0-1 הוא ודאות הקריאה מוכפלת במידת הייחודיות של התבנית; כאשר אותה תבנית משמשת בכמה מדינות (לדוגמה LT, MD ו-HU חולקות את ABC123) הציון מתחלק ביניהן ונמוך. null כאשר הטקסט אינו תואם אף תבנית מוכרת. מדינות נתמכות: UA, BG, BY, RO, ES, CZ, BE, EE, HU, TR, PL, SK, LV, LT, MD, IT, FR, RS, DE. |
data.results[].box | מיקום הלוחית בפיקסלים: xmin, ymin, xmax, ymax. |
data.results[].dscore | ודאות זיהוי הלוחית 0-1. |
data.results[].vehicle | {type, score, box}: הרכב שנושא את הלוחית. type הוא car, bus, truck או motorcycle; score הוא רמת הביטחון של הגילוי, 0-1; box הוא מיקום הרכב בפיקסלים (xmin, ymin, xmax, ymax). אוטובוסי תיירים הנראים מקדימה, וכן מיניבוסים או טנדרים, עלולים להיות מסווגים כ-truck (לגלאי אין מחלקת טנדר). null כאשר אף רכב שזוהה אינו מכיל את הלוחית, ותמיד null עם config.mode=fast. |
error.code | 400: image_required, bad_json, bad_base64, one_image_only, bad_image_url, image_url_not_allowed, image_url_fetch_failed, image_url_timeout, invalid_image, unsupported_image_type, unsupported_content_type, upload_failed, bad_regions, bad_camera_id, bad_timestamp, bad_config, bad_threshold, bad_mode. 404: no_plate_detected (גם כאשר config.threshold לא משאיר תוצאה). 413: payload_too_large. 500: engine_error. |
curl -X POST "https://nakordoni.eu/api/v4/data/plate-recognition" \
-H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX" \
-H "Content-Type: application/json" \
-d '{
"image_url": "https://nakordoni.eu/img/developers/plate-recognition-example-bus.jpg",
"regions": [
"UA"
],
"camera_id": "depot-gate-1",
"timestamp": "2026-10-27T14:05:00Z",
"config": {
"threshold": 0.8
}
}'
זיהוי לוחיות רישוי (ANPR / ALPR) לרכבים אירופיים
Plate Image Recognition API הוא שירות לזיהוי לוחיות רישוי (LPR): שולחים תמונה ומקבלים את טקסט הלוחית כ-JSON. זהו מנוע ANPR / ALPR משלנו, מכוון למשאיות ואוטובוסים באיחוד האירופי במעברי גבול ובמסופי אוטובוסים, והוא קורא גם לוחיות של מכוניות ואופנועים.
גרסה v4 מוסיפה את מדינת הלוחית ואת סוג הרכב (car, bus, truck או motorcycle). היא מקבלת גם אפשרויות בקשה אופציונליות: regions, כדי להטות את התוצאה למדינות שאתם מצפים להן; camera_id ו-timestamp, שחוזרים בתגובה; סף score; ומצב fast.
GDPR כבר בתכנון: ה-API מאוחסן באיחוד האירופי, וכל תמונה מעובדת בזיכרון בלבד ואינה נשמרת לעולם. שום שירות ראייה של צד שלישי אינו רואה את התמונות שלכם.
אינטגרציות: Home Assistant
אינטגרציית ה-Home Assistant בקוד פתוח שלנו (רישיון MIT, מותקנת עם HACS) קוראת לוחיות רישוי ממצלמות ה-Home Assistant שלכם. היא נותנת חיישן ואירוע לכל לוחית, עם מדינת הלוחית וסוג הרכב. היא תומכת ב-Frigate: באירוע רכב היא קוראת את ה-snapshot וכותבת את הלוחית בחזרה ל-Frigate כ-sub-label. ההתחברות משתמשת ב-OAuth, כך שכל משתמש מקבל מפתח חינמי משלו.
עודכן