מתודולוגיה — איך מחושבת תפוסה
עמוד לביקורת עירייה. הקבועים למטה נקראים מ־ParkWizHeuristic בזמן טעינה, כדי שלא ייסחפו מהקוד.
1. מה מחושב
לכל מלבן חניה שסומן מראש מחזירים תפוס או פנוי, ועוד שדות שקיפות:
occupied— כן/לאmethod— איזו שיטה ניצחהconfidence— מספר קבוע לפי שיטה, לא הסתברות מכוילתlighting— יום / דמדומים / לילה לפי בהירות ממוצעתheuristic: true— תמיד
ספירת התפוסה של המגרש היא מספר המלבנים עם occupied === true. אין מעקב אחרי רכב בין פריימים.
2. צינור הפיקסלים
- חותכים את מלבן המקום מתמונת ה־snapshot (ומפריים הייחוס הריק, אם יש).
- קוראים RGBA. דוגמים כל פיקסל רביעי — צעד
16בבתים (4 ערוצים × 4 פיקסלים). - ממירים ללומה Rec. 709: Y = 0.2126 R + 0.7152 G + 0.0722 B
- מחשבים ממוצע, שונות, חציון, MAD, אחוזונים 10/90.
- מסווגים תאורה לפי ממוצע הלומה של המגרש (חציון בין המקומות): לילה < 35 ≤ דמדומים < 70 ≤ יום.
3. שלוש שיטות, לפי מה שיש בכיול
א. חיסור רקע מנורמל־תאורה (עדיפות ראשונה)
כשיש דגימות מיושרות מהפריים הריק ומהפריים הנוכחי:
δ יום = 22, δ לילה = 16. τ יום = 0.18, τ לילה = 0.22. confidence = 0.58.
ה־gain מבטל עמעום גלובלי (עננה, ערב). רכב נשאר כשינוי מקומי.
ב. השוואה לפריים ריק אחרי נרמול (בלי דגימות מיושרות)
כשיש רק סטטיסטיקה, לא פיקסלים מיושרים. אחרי אותו gain משווים סטיית תקן, MAD, וטווח P90−P10. סף יום 9.5, סף לילה 7.5. אם יש ייחוס לילה נפרד — משתמשים בו בלילה.
v1 השווה |Δmean| ונכשל כשהמגרש הריק פשוט החשיך. v2 בודק ניגודיות שאחרי הנרמול.
ג. סף מוחלט לפי תאורה (בלי ייחוס בכלל)
יום: תפוס אם mean < 95 או variance > 900. לילה: לא משתמשים בסף בהירות — אספלט לילה כהה מספיק כדי לצבוע הכול תפוס. בלילה דורשים מבנה (שונות / MAD).
4. מה confidence אומר — ומה לא
| שיטה | confidence | משמעות |
|---|---|---|
| bg-subtract-normalized | 0.58 | יש ייחוס מיושר. עדיין היוריסטיקה. |
| vs-empty-normalized | 0.52 | יש ייחוס סטטיסטי. |
| vs-empty-frame (v1) | 0.45 | נשמר להשוואה, לא ברירת המחדל. |
| absolute-threshold | 0.25 | אין ייחוס. בלילה 0.16. |
אלה קבועים שכתבנו. הם לא הסתברות מכוילת ואין מאחוריהם מודל בייס.
5. איך עירייה מבקרת
- קוראים את src/lib/heuristic.js — אין תלות חיצונית.
- מריצים
npm test. אין רשת, אין מפתחות. - פותחים את דף הדיוק ומריצים את מערך הדמו.
- משווים את הקבועים בעמוד הזה (נקראים מהמודול) לקוד.
- בשטח: פקח ממלא את השוואת הדיוק. רק אז יש דיוק שדה.
6. כשלים ידועים — לא מוסתרים
| מצב | מה קורה | מה עושים |
|---|---|---|
| צל על מקום ריק | חיסור רקע רואה שינוי → false positive | מתועד בסט הדמו (shadow-false). לא «תוקן» בהסתרה. |
| רכב בצבע אספלט | ניגודיות נמוכה אחרי נרמול | סצנת camouflage-day. דורש ייחוס טוב או פקח. |
| רכב קטן במלבן גדול | שבר הפיקסלים מתחת ל־τ | לכווץ את המלבן באשף הכיול. |
| לילה בלי ייחוס ריק | v1 מסמן הכול תפוס; v2 דורש מבנה | לצלם פריים לילה ריק. |
| גשם / רטוב | השתקפות יכולה לחקות רכב | נרשם ביומן השדה. לא מוסתר. |
7. מה לא מחושב
| דבר | באלגוריתם? |
|---|---|
| זיהוי לוחית / LPR | לא |
| זיהוי פנים או הולכי רגל | לא |
| מעקב רכב בין פריימים | לא |
| המלצת קנס / הפרה | לא |
| שמירת וידאו בשרת שלנו | אין שרת |
| תפוס / פנוי על מלבן מסומן | כן — היוריסטיקה |
8. הקבועים החיים מהמודול
אם הטבלה והקוד חלוקים — הקוד מנצח, והבלוק הזה חושף את זה.