פיתוח מערכת זיהוי פנים (Face Identification, 1:N)

זיהוי פנים בזרם וידאו לעיתים רחוקות נכשל מעצמו — בדרך כלל מפריעים תנאי הצילום והמצב שנבחר בטעות. אנו מפתחים מערכות זיהוי מקצה לקצה: בוחרים מצב 1:N או 1:1, מתאימים לאתר שלכם ומביאים את שיעור ההתראות השווא למינימום תפעולי. התוצאה — בקרת כניסה עובדת ונהלים ברורים לצוות.

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

מדוע זיהוי פנים בזרימה מייצר זיהויים שגויים

צינור זיהוי הפנים נשבר לא ברגע ההשוואה, אלא קודם לכן — בפריים. איכות הצילום בזרימה נקבעת לפי שלושה דברים: תאורה, תנועה וזווית. אדם הולך דרך עמדת ביקורת בלי לעצור, חלון מאחוריו יוצר תאורה נגדית, הוא מסובב את הראש ב-30–40 מעלות — ולמודול הזיהוי מגיע פריים מטושטש עם רקע חשוף מדי.

ואז מתחילה אריתמטיקה על וקטורים. פריים מרוח מחליש את הקרבה לייחוס ה"של עצמו", אבל לפעמים מחזק אותה מול ייחוס זר: ההפרעה מטשטשת בדיוק את ההבדלים שמפרידים בין אנשים.

אלגוריתם המעקב מאבד את הפנים במשך כמה פריימים ברצף, מדביק אותן לעובר אורח סמוך — וההחלטה מתקבלת על סמך שבר פסולת.

הפיתוי ברור: להוריד את סף ההתאמה כדי ש"שלנו" יעברו בלי עיכובים. בדיוק זה יוצר זיהויים שגויים — מעבר על סמך פנים של אחר או דחייה של אדם שנמצא כדין במאגר.

סיבה נפרדת היא מאגר תבניות ייחוס מיושן: תמונה בודדת מתעודת מעבר ישנה, שצולמה חזיתית בתאורה אחרת, מפסיקה להיות דומה לאדם במשקפיים ועם זקן שהשתנה.

בכניסה לאתר זה נראה מיד: העובדים ממתינים ליד הטורניקט, האבטחה חוזרת למצב ידני, חלק מהאנשים מפסיקים להשתמש בביומטריה ושולפים כרטיס — כלומר המערכת עובדת פורמלית, אבל היא לא מחזיקה את הזרימה. נפרט כיצד סוגרים את זה: מהצבת הצילום והספים ועד לתקנון עדכון תבניות הייחוס.

מה משתנה לאחר ההטמעה: מהירות, דחיות, עומס

אפקט ההטמעה נמדד לא לפי הדגמה על מתנדב אחד, אלא לפי ארבעה מדדים בזרימה חיה: שיעור הדחיות, זמן המעבר של אדם אחד, התנהגות בעומס שיא והיקף הבדיקה הידנית. אנחנו מודדים אותם לפני ההפעלה וחוזרים על אותו תרחיש אחרי חודש עבודה — אחרת המספרים אינם ברי השוואה.

שיעור הדחיות הוא איזון בין העברות שווא לדחיות שווא, והסף נבחר לפי המשימה ולא נלקח כברירת מחדל. את המודל אנחנו בוחרים לפי מדידות דיוק בלתי תלויות, למשל NIST FRVT: בבקרת כניסה שיעור דחיות השווא יורד מ-8–10% ל-1–2%, ובמקביל העברות השווא נשארות בתחום המותר לאתר.

תפוקת המעבר עולה בלי להחליף מצלמות ונקודות מעבר: זרימה אחת משרתת עד 20–30 איש בדקה, כי ההחלטה מתקבלת בשברירי שנייה ואינה דורשת עצירה מול מסך.

בעומס שיא, כשמספר האנשים גדול פי שלושה מהרגיל, התור לא גדל: הבקשות עוברות לעיבוד מקבילי, ובירידה העומס משאבים חוזרים לפרופיל הבסיסי — אין תשלום יתר על זמן מושבת.

בדיקה ידנית מפסיקה להיות חלק מהתהליך. המפעיל רואה רק מקרים שנויים במחלוקת — חלקם בזרימה טיפוסית נמדד באחוזים בודדים, השאר עובר בלי מעורבות אדם, ויומן האירועים נשאר לניתוח תקלות.

מצבי זיהוי פנים: 1:N, 1:1 ובקרת גישה

מצב אינו תכונה של האלגוריתם, אלא הצבת המשימה. אימות 1:1 משווה את הפנים המוצגות לתבנית ייחוס אחת: העובד מצמיד כרטיס או מקיש קוד, והמערכת מאשרת התאמה. קשה לזייף תרחיש כזה, ולכן סף התגובה כאן נקבע מחמיר יותר ומתקבל מינימום של אישורים שגויים.

זיהוי פנים במצב 1:N עובד על כל הגלריה ובלי רמז — הדיוק תלוי בנפח המאגר, באיכות תבניות הייחוס ובזוויות בכניסה. בקרת גישה אינה אלגוריתם נפרד, אלא תוספת מעל 1:N: המערכת לא רק מוצאת התאמה, אלא מקבלת החלטה לפי כללים ורושמת אירוע ביומן.

אפשרות מתי מתאימה מגבלות המצב
אימות 1:1 מעבר בכרטיס, כניסה לחשבון אישי, אישור פעולה דרוש אמצעי נשיאה או קוד — זה אימות זהות, לא מעבר לפי פנים
זיהוי 1:N מעבר לפי פנים, איתור כפילויות, חיפוש אדם בארכיון וידאו המאגר גדל — שיעור ההתאמות השגויות גדל; דרושים סינון תבניות ייחוס וכיול סף
1:N וכללי גישה בקרת גישה לפי אזורים, לוחות זמנים, רשימות דורש חיבור לטורניקטים ולמנעולים, וניתוח ידני של מקרי שווא

כיצד בוחרים באתר

לרוב משלבים את המצבים: 1:1 — בפעולות קריטיות, 1:N — בזרימה, וכללי גישה — מעליהם. מה בדיוק ובאילו ספים להציב נקבע לפי מספר האנשים במאגר, איכות פריימי הכניסה וההשלכות של אישור שגוי — אנחנו מנתחים זאת בשלב התכנון.

שלבי הטמעת מערכת הזיהוי: מביקורת ועד קבלה

שלבי ההטמעה בנויים כך שכל שלב מסתיים בארטיפקט שנבדק לפני המעבר לשלב הבא. אי-התאמה בנתונים או בפריסה מתגלה בשלב מוקדם, כשהתיקון אורך שעות ולא שבועות של עיבוד מחדש.

  1. ביקורת תשתית. מתעדים מה כבר קיים באתר: מצלמות והזוויות שלהן, תאורה בשעות שונות ביממה, ערוצי תקשורת, משאבי מחשוב פנויים. הפלט — דוח עם צווארי בקבוק ורשימת החלפות.
  2. פריסה. נקודות התקנה, אזורי חפיפה, דרישות לפריים — זווית הפנים, גודל מינימלי. מתאמים לפני ההתקנה: להעביר מצלמה אחרי ההפעלה יקר יותר מאשר לחשב מראש.
  3. מאגר תבניות ייחוס. איסוף, תיוג, הסרת כפילויות ופסילת פריימים לא מתאימים. בודקים שאדם מיוצג בכמה פריימים — אחרת ההשוואה טועה.
  4. הרצת פיילוט. המערכת עובדת במתחם מוגבל: אזור אחד או זרימה אחת. את המדדים לוקחים מתעבורה חיה, לא ממדגם בדיקה.
  5. כיול ספים. בוחרים ערכים לפי המשימה: היכן חשוב יותר לא להחמיץ אדם, והיכן — לא להכניס זר. פרוטוקול עם הנמקה נשאר אצל הלקוח.
  6. קבלה לפי מדדים. הרצה משותפת לפי תרחישים מוסכמים, כולל ניתוק תקשורת והפעלה מחדש, השוואה לערכי היעד, מסירת תיעוד והדרכת צוות.

לאחר המסירה נשאר מתחם של למידה נוספת: האיכות עולה על נתונים חדשים בלי הטמעה חוזרת.

מארז האספקה: תצורות, פריסות, תקנונים, תיעוד

מארז האספקה הוא מה שנשאר אצל הלקוח לאחר המסירה: לא רק מערכת עובדת, אלא גם חומרים שלפיהם אפשר להפעיל ולפתח אותה בלעדינו. את התיעוד אנחנו כותבים להתקנה קונקרטית — לא לפי תבנית: בו מופיעים תפקידים אמיתיים, כתובות של מקטעים וערכי פרמטרים של המתחם שלכם.

  • תצורות עבודה — פרמטרי חיפוש (סף התאמה, גודל תור, כללי הסרת כפילויות) מיוצאים למאגר קוד ומנוהלים בגרסאות: חזרה לסט הקודם אורכת דקות.
  • מדיניות גישה — הפרדת תפקידים: מי מוסיף לגלריית תבניות הייחוס, מי מפעיל חיפוש, מי עובד עם היומן; לכל רמה מתוארים כללים ועילות.
  • פריסות — תוכניות התקנת מצלמות, אזורי כיסוי וחפיפה, גבהים וזוויות צפייה, ערוצי תקשורת וחשמל, קישור לתוכנית החללים.
  • תקנון הפעלה — פעולות המפעיל כשהזיהוי נחלש, כשערוץ נופל ובזמן עבודות מתוכננות, תדירות בדיקות ואזורי אחריות.
  • הוראות לשירות התפעול — תרחישים שלב אחר שלב: רישום עובד חדש, עדכון תבנית ייחוס, ניתוח זיהוי שגוי.
  • תיעוד אינטגרציה — שיטות החלפת נתונים, פורמטים של בקשות ותשובות, קודי שגיאה ועומסי שיא על מערכות סמוכות.
  • עבודה עם ביומטריה — היכן ובאיזה צורה נשמרות תבניות, כיצד מוגנות, תקופות שמירה ונוהל מחיקה לפי בקשה.

את המארז מתאמים עם השירותים שלכם לפני המסירה הסופית, ולכן עד למועד ההפעלה לתפעול כבר יש הוראות בדוקות.

מקרה בוחן: כיצד הפחתנו את שיעור הזיהויים השגויים באתר

האתר — מעבר כניסה עם זרימה צפופה: בשעת השיא של הבוקר עוברים דרכו כמה אלפי אנשים בשעה. את הזיהוי הפעילו במצב 1:N לפי תמונה ארכיונית אחת מתיק העובד, ואת הפריימים לקחו מהזרימה הכללית של מצלמות האבטחה Hikvision.

בהתחלה מועמד-כפיל הופיע כמעט בכל אירוע ארבעים, וכל התאמה אושרה ידנית בידי המפעיל. שיעור דחיות הזיהוי — כשאדם נמצא במאגר אך המערכת לא מוצאת אותו — החזיק סביב 6%, והתור בכניסה גדל מהר מהקצב שבו המשמרת הספיקה להגיב.

מה שינו בצילום

שינינו לא את סף ההתאמה, אלא את איכות הפריים: מצלמת הכניסה הועברה לאזור מכויל נפרד עם זווית חזיתית וזמן חשיפה קצר, כדי שהפנים לא יימרחו בתנועה. הצילום נקשר לרגע שבו האדם מאט את הצעד לפני הטורניקט — להשוואה החלו להגיע פריימים מתאימים במקום אקראיים.

את תבניות הייחוס הרכיבו מחדש: במקום תמונה ארכיונית אחת — סט של 5–8 פריימים מזוויות ותאורה שונות, בלי קטנים ומטושטשים. את התבנית חישבו לפי כל הסט, ולכן תאורה נגדית בערב וסיבוב ראש הפסיקו להיות סיבת דחייה.

מה השתנה במדדים

במדגם הביקורת שיעור הזיהויים השגויים ירד מ-1 מתוך 40 ל-1 מתוך 250 אירועים, דחיות הזיהוי — מ-6% ל-1.5%, והכנסת המועמד הנכון לשורה הראשונה ברשימה עלתה מ-82% ל-97%. המעבר דרך הטורניקט התקצר מ-4–6 שניות ל-1–2, והמפעיל חזר לניתוח חריגים במקום עיבוד ידני של כל התאמה.

מה לעשות אם מערכת הזיהוי כבר פרוסה

קודם כול מבררים היכן בדיוק אובדת האיכות: בכניסה (זווית, תאורה, רזולוציית פריים), בגלריית תבניות הייחוס או בלוגיקת ההשוואה. במתחם פעיל לרוב אשם לא האלגוריתם, אלא תנאי הצילום — לכן מתחילים במדידה לפי כל ערוץ: שיעור העברות השווא והזיהויים השגויים בנפרד.

להשאיר את הליבה ולכוונן. צילום מחדש של תבניות ייחוס, ניקוי הגלריה מכפילויות ורשומות מיושנות, בחירת סף השוואה לפי המשימה (מחמיר יותר למעבר או לזיהוי שגוי), כיול אזורי זיהוי ותאורה. המסלול אורך ימים, אינו דורש עצירת האתר ולעיתים קרובות מסיר את רוב השגיאות.

לשנות את מתחם הצילום. משנים את מה שנמצא לפני הזיהוי: נקודות התקנת מצלמות לזווית הרצויה, תאורה, צומת מחשוב קרוב יותר למצלמה כדי שהזרימה לא תהיה תלויה בערוץ התקשורת. הליבה נשארת כשהייתה, איכות הפריים בכניסה משתנה — והיא בדיוק שקובעת את התוצאה במצב 1:N.

להחליף את ליבת הזיהוי בלי השבתה. מנוע חדש עולה לצד הקיים (VisionLabs או ליבה אקטואלית אחרת), שניהם מקבלים את אותה זרימה ומחשבים במקביל. משווים את הפלט על אירועים אמיתיים, ואז מעבירים מצלמות בקבוצות תוך שמירה על נסיגה בשלב אחד.

תאימות עם המערכת הקיימת מספק מתאם: אירועים ותבניות ייחוס נשארים בצורתם ובפורמט הנוכחיים, ורק מודול ההשוואה משתנה. אפשרית גם החלפה חלקית — ליבה חדשה בקבוצת אתרים אחת, והישנה בשאר, עד שתצטבר סטטיסטיקת שגיאות.

ספקות נפוצים: איכות הצילום, פרטיות, עומס

למערכת זיהוי לפי פנים מצטבר אצל מהנדסים ואנשי אבטחה אותו סט שאלות: כיצד תתנהג בתנאים לא שגרתיים ומה בדיוק היא שומרת. אנחנו מנתחים אותן לפני ההתחלה — על אב טיפוס שנבדק על הפריימים שלכם, ולא על פריימים נבחרים להדגמה.

מה יקרה בתאורה לקויה ובתאורה נגדית?

הערכת איכות הפריים מתבצעת לפני ההשוואה: המערכת מיישרת את הפנים לפי נקודות עיגון, מנרמלת בהירות וניגודיות, ובמקרה של צללים עמוקים או חשיפת יתר מסמנת את הפריים כלא מתאים — הזיהוי לא מופעל, והמפעיל מקבל סטטוס ברור במקום התאמה שגויה. את סף הדמיון מכיילים על הקלטות מהנקודות שלכם, ולא על ערכים ממוצעים מהתיעוד.

כיצד נשמרות תבניות הייחוס ומה נכנס למאגר?

למאגר נכנסות לא תמונות, אלא תבניות מתמטיות: לפיהן אי אפשר לשחזר את התמונה המקורית. אחסון תבניות הייחוס — במתחם נפרד עם הצפנה, המפתחות נמצאים מחוץ למאגר, הגישה ניתנת לשירות לפי תפקידים, כל פנייה נרשמת ביומן עם עילה. הגנת הנתונים בנויה כך שהוצאת תבנית החוצה בלי מעורבותכם אינה אפשרית טכנית.

מה משתנה כשהמאגר גדל לעשרות אלפי אנשים?

עם גדילת המאגר גדל גם שיעור ההתאמות השגויות, ולכן סף אחד אינו מספיק: עובדים עם צמד מדדים — התאמות שגויות מול העברות שווא, ומכווננים איזון לפי התרחיש שלכם.

עוזרים לכך שרדינג של המאגר לפי מחלקות, סינון מקדים לפי מטא-נתונים ובדיקה רב-שלבית: קודם תת-קבוצה מצומצמת, ואחר כך השוואה מלאה. את העומס מפזרים על כמה צמתים, ולכן זמן התגובה בזרימות שיא נשאר בגבולות שהוגדרו בתכנון.

נדון במשימה: נתאים מצב עבודה ונחזור עם תוכנית

כדי שהערכת העבודה תישען על עובדות ולא על הנחות, כדי להתחיל די במה שכבר יש לכם. תארו את המשימה במילים שלכם — נחזור עם שאלות הבהרה ותוכנית הטמעה ראשונית.

מה שמאיץ משמעותית את המעבר להערכה וללוחות זמנים:

  • תרחיש: היכן בדיוק דרוש זיהוי פנים — מעבר כניסה, ניתוח ארכיון וידאו, אפליקציה לנייד או חיפוש לפי תמונה.
  • נפח הגלריה: כמה אנשים יש במאגר כיום ולאיזה גידול הוא מתוכנן.
  • זרימה: מספר מצלמות או נקודות צילום, חיבורים בו-זמניים, מצב עבודה — בזמן אמת או ניתוח באצווה.
  • איכות החומרים: זוויות, תאורה, תנועת אנשים, והאם יש תמונות מוכנות למערך בדיקה.
  • דרישות דיוק: איזה שיעור זיהויים שגויים אתם מחשיבים כקביל, ומה צריך לקרות בהתאמה שנויה במחלוקת.
  • אינטגרציות ומתחם: טורניקטים, מערכת כוח אדם, התראות, והיכן מותר לאחסן ולעבד ביומטריה.

השלב הבא מצדנו: מנתחים את נתוני המקור, שואלים שאלות בנקודות שנויות במחלוקת וחוזרים עם הערכת עבודה ותוכנית הטמעה לפי שלבים — עם גבולות אחריות, נקודות בדיקת איכות ואפשרויות נסיגה. משם אתם מחליטים מאיזה שלב להתחיל.