אימון ArcFace: מדוע המודל מבלבל בין פנים בפריימים חיים
מודל על סט בדיקה מראה דיוק גבוה מ-99%, אך בכניסה מאובטחת הוא מתחיל להתבלבל בין אנשים. הפער נוצר מפני שהמדד מחושב על פריימים מוכנים: תאורה אחידה, פנים במבט חזיתי, האדם מסתכל למצלמה.
זרם חי הוא התפלגות אחרת, ו-ArcFace עם FaceNet רגישים באותה מידה לפער הזה, אם האימון והכוונון העדין לא נעשו על הנתונים הנכונים.
ישנם שלושה מקורות שגיאה. הראשון — פנים דומות: תאומים, קרובי משפחה, עובדים בציוד זהה, בקסדות או במסכות, כשחשופה נשארת שליש מהפנים. השני — איכות הפריימים: תאורה נגדית מהכניסה, תנועה, טשטוש מתנועה בגלל מהירות תריס, זווית שלושת-רבעי במקום מבט חזיתי.
השלישי — תיוג מיושן: חלק מתמונות הייחוס צולמו לפני שנה, האדם שינה תסרוקת, גידל זקן או מרכיב משקפיים, ובגלריה הוא עדיין כפי שהיה.
בכניסה מאובטחת זה מתבטא בשני סוגי דחיות. התראות שווא בכיוון «לא להכניס» — העובד עומד ליד הטורניקט, התור מצטבר, האבטחה מאשרת מעבר ידנית. התראות שווא בכיוון «להכניס» — אדם זר עובר בגלל התאמה מקרית, וזה כבר אירוע אבטחה, לא אי-נוחות.
שגיאות בזיהוי פנים אינן נרפאות בסף הפעלה אחד: הורדת הסף מפחיתה דחיות, אך פותחת את הגישה. נבחן כיצד זה נסגר — התאמת הסף למשימה, כוונון עדין על פריימים אמיתיים מהכניסה המאובטחת ובדיקת זוגות של עובדים דומים בגלריה.
אפקט מדיד: דיוק, שיעורי שגיאה, זמן בדיקה
השוואת מודלים הגיונית על פריימים מהאתר עצמו, לא על מערכי נתונים ציבוריים: אופטיקה אחרת, גובה התקנה, תאורה וזוויות אופייניות נותנים תמונה אחרת. לכן לפני ההתאמה אנו מריצים את מודל הבסיס על הארכיון וקובעים מדדים ראשוניים — ובהמשך משווים אליהם את התוצאה.
לאחר כוונון עדין של ArcFace על פריימים מתויגים של האתר, דיוק הזיהוי על סט הבדיקה עולה, ושיעור המעברים הכוזבים יורד פי כמה. המודל מתחיל לעבוד בביטחון בתאורת ערב, בסיבוב חלקי ובמצב של הסתרת פנים, שבהם בעבר נדרש מעבר ידני.
פרמטר המפתח הוא סף ההפעלה. הזזתו משנה את האיזון בין מעברים כוזבים להתראות שווא: בבקרת כניסה בכניסה מאובטחת חשוב יותר לא להכניס זר, ובמעקב שעות עבודה — לא לאבד עובד. את הסף בוחרים לפי העקומה על סט בדיקה וקובעים אותו כחלק מהתצורה.
מהירות הבדיקה נמדדת בזרם: כמה אנשים עוברים בדקה, מה השהיית ההחלטה לפריים, וכיצד המערכת מתנהגת עם כמה מצלמות במקביל. בפועל מדובר בשברירי שנייה לאדם — התור ליד הטורניקט מפסיק להצטבר.
עמידות נבדקת לא רק על הארכיון שלנו: מריצים את המודל על נתונים מוטים — מצלמה אחרת, שעה אחרת ביום, לבוש עונתי. אם המדדים יורדים, מוסיפים פריימים כאלה לתיוג וחוזרים על המחזור. את המדדים מתעדים בדוח, כדי שצמיחה או הידרדרות לאחר כל איטרציה יהיו גלויים במספרים, לא במילים.
מצבי הטמעה: מודל עצמאי, מוכן, סכימה היברידית
שלוש גישות נבדלות בכמה נתונים דרושים לפני ההתחלה ובמידת העומק שבה ניתן להשפיע על התנהגות המודל. מודל פתוח מוכן מבוסס ArcFace או FaceNet נותן תוצאה עובדת ראשונה בזרם טיפוסי, כוונון עדין מתאים אותו לצילום מסוים, ואימון מאפס נלקח כאשר אף אחת משתי האפשרויות הראשונות אינה מספקת. בחירת הגישה היא פשרה בין לוח הזמנים להשקה, היקף תיוג הנתונים והשליטה במודל.
| אפשרות | מתי מתאימה | מגבלות |
|---|---|---|
| מודל מוכן | מבט חזיתי, תאורה צפויה, זווית אחת או שתיים, נדרשת הפעלה מהירה | הדיוק יורד בכיסויי ראש, בתאורה נגדית, בהטיות חזקות; את הלוגיקה הפנימית איננו משנים |
| כוונון עדין של מודל | יש מאגר תמונות משלכם מהזרם המיועד, תנאי הצילום יציבים | נדרש תיוג של זוגות «שלנו/זר» וסט בדיקה, אחרת המודל עובר אימון יתר על מערך צר |
| אימון מאפס | ערוץ צילום לא טיפוסי או דרישות מחמירות לשליטה בארכיטקטורה | נדרש מאגר גדול ומגוון, לוחות הזמנים נמדדים בחודשים, הסיכון לשגיאות באיסוף הנתונים גבוה יותר |
את ההחלטה מקבלים לפי מדידות, לא לפי שיקולים כלליים: תחילה מריצים את המודל המוכן על פריימים אמיתיים של הלקוח וסופרים את שיעור המעברים הכוזבים והתראות השווא בסף הנבחר. אם המדדים אינם עומדים בדרישות, עוברים לכוונון עדין — הוא סוגר את הפער על מדגם קטן בסדר גודל מאשר אימון מאפס. אימון מאפס נשאיר למקרים שבהם הארכיטקטורה עצמה מותאמת לערוץ צילום לא סטנדרטי.
אימון ArcFace לתרחיש שלכם: שלבי העבודה
אימון ArcFace אינו הפעלה של ספרייה מוכנה, אלא התאמת המדד לתרחיש שלכם: זוויות, תאורה, שיעור מותר של התאמות כוזבות. מתחילים בבדיקת פריימים ומסיימים במסירת מודל עם ספים קבועים, כדי שהתוצאה תשחזר בצד שלכם. להלן שלבי האימון.
- בדיקת נתונים — היקף ואיכות הפריימים: גודל הפנים, זוויות, הסתרות, שיעור הפגומים. סופרים את מספר האנשים והפריימים לכל אדם, משלימים מקרים נדירים, מסירים כפילויות.
- תיוג והכנה — יישור לפי נקודות מפתח, קנה מידה אחיד, חלוקה קבועה לסט אימון, סט ולידציה וסט בדיקה. סט הבדיקה אינו משתתף באימון.
- בחירת ארכיטקטורה — משווים ArcFace ו-FaceNet על הנתונים שלכם: היכן אנשים דומים מופרדים טוב יותר באותו זמן תגובה. עבור ArcFace מתאימים את גודל השוליים הזוויתיים.
- אימון ובקרה — מוסיפים עיוותים בבהירות, סיבוב וטשטוש, עוקבים אחר הפרדת המחלקות בולידציה. עוצרים את האימון כשהאיכות מפסיקה להשתפר.
- כיול ספים — לפי עקומת השגיאות בוחרים סף לתרחיש: נקודת מעבר, אזור בקרה או אישור בידי מפעיל.
- בדיקת המודל על סט בדיקה — בודקים לפי אנשים, הפעלות ומצלמות שהמודל לא ראה, ובוחנים מדדים בנפרד לפי תת-קבוצות.
- הטמעת זיהוי — מוסרים משקלות, תצורה, מודול פלט, נוהל ספים וניטור, עוזרים לחבר למתאר שלכם.
ארטיפקטים: משקלות המודל, תיוג, נהלים
יחד עם המודל המאומן הלקוח מקבל לא «קופסה שחורה», אלא ערכה שמאפשרת להפעיל את הפתרון בכוחות עצמו או להעביר אותו לצוות אחר בלי לאבד הקשר. אנו מחשיבים מסירה כמושלמת רק כאשר מהנדס חיצוני יוכל לשחזר את התוצאה ולבצע שינויים לפי החומרים האלה.
- משקלות המודל בפורמט פתוח — משקלות סופיים לאחר תקופת האימון האחרונה בתוספת נקודות ביקורת מכמה תקופות טובות: הן נותנות מרווח לחזרה אחורה ולכוונון עדין בלי להריץ מחדש את כל האימון.
- סקריפטים להכנת נתונים ולאימון עם פרמטרים קבועים: הרכב וסדר ההגברות, קצב למידה, אסטרטגיית הקפאת שכבות, ערכי אתחול — כדי שהתוצאה תשחזר עד הסימן האחרון.
- תיוג בצורתו המקורית: תמונות, תוויות, חלוקה לסט אימון, סט ולידציה וסט בדיקה, יומן פריימים שהוצאו ופרוטוקול בקרת איכות התיוג.
- דוח מדדים: איכות על סט הבדיקה, נקודת עבודה לפי סף ההפעלה, שיעור המעברים הכוזבים והתראות השווא, פירוט שגיאות לפי תנאי צילום — תאורה חלשה, זווית, פנים מוסתרות.
- תיעוד תפעולי: הפעלת זיהוי, כיול הסף לאיזון השגיאות הרצוי, דרישות מהפריים, סדר עיבוד אמבדינגים ואחסון נתונים ביומטריים.
- נוהל אימון מחדש: אילו אירועים מפעילים בנייה מחדש — עלייה בשיעור הדחיות על אנשים חדשים, החלפת מצלמות או תנאי צילום, הרחבת רשימת העובדים — באיזו תדירות מתבצעת בדיקה מתוכננת וכיצד מתועדת הידרדרות באיכות.
- זכויות במודל: העברת זכויות כתובה על המשקלות, על מודלים נגזרים ועל התיוג, וכן רשימת רישיונות של רכיבים פתוחים ששימשו בפתרון.
נוהל אימון מחדש אינו פורמליות: בלעדיו המודל מתיישן בשקט ככל שמתרחשים שינויים בזרם הנתונים, והאות הראשון מגיע כבר משירות האבטחה. זכויות ותיעוד סוגרים את הסיכון השני — כאשר הצוות שאימן את המודל אינו זמין, ואין מי שיפענח את הארטיפקטים.
מקרה בוחן: כניסה מאובטחת עם שני תרחישים, מדדים לפני ואחרי
באתר ייצור — ארבע כניסות מאובטחות וכ-2,000 עובדים. בקרת הכניסה עבדה על מודל שאומן על מערך פנים פתוח: על עובדים דומים (קרובי משפחה, ביגוד עבודה זהה, משקפיים, קסדות) הוא נתן דחיות כוזבות, והאבטחה העבירה אנשים ידנית.
בשעות שיא התור ליד הטורניקטים הצטבר. במשמרת נעשו יותר ממאה בדיקות ידניות, וחלק מהעובדים עם הזמן התחילו להצמיד את הכרטיס בלי להביט למצלמה — הסטטיסטיקה של המערכת הפסיקה לשקף את המציאות.
מה שינו
אספנו מערך נתונים במצלמות של הכניסות עצמן — זוויות, תאורה, לבוש עונתי — וכווננו עדין אמבדינגים של ArcFace על תיוג משלנו. כענף אימות שני השארנו את FaceNet: ההחלטה עוברת כששני המודלים מסכימים, ולכן מחלקת השגיאות בפנים דומות נסגרת.
ספי ההפעלה כוילו בנפרד לכל נקודה — בשער עם תאורה צדית איכות הפריים שונה מאשר בטורניקט הכניסה. ההשוואה נעשית לפי סדרת פריימים, לא לפי תמונה אחת, ולכן הבזק או סיבוב ראש אינם הופכים יותר לדחייה.
מדדים לפני ואחרי
| מדד | לפני | אחרי |
|---|---|---|
| שיעור דחיות כוזבות | 7% | 1.2% |
| בדיקות ידניות במשמרת בשעת שיא | יותר מ-100 | כ-15 |
| מעברים בלי עצירה | 82% | 97% |
התיוג והספים שנבחרו משמשים מחדש בשאר נקודות הכניסה: כל כניסה מאובטחת נוספת מתחברת מהר יותר מהקודמת וללא איסוף מערך נתונים מאפס.
מה לעשות אם באתר כבר פועל מודל אחר?
מערכת עובדת היא לא רק משקלות המודל: סביבה כבר נאספו תבניות פנים, ספי החלטה מכוילים, חיבורים למערכת החשבונות וכללים שלפיהם אירוע הופך להרשאה. לכן ההסתעפות «להחליף או להרחיב» נקבעת לא לפי איכות המודל כשלעצמו, אלא לפי מה בדיוק הפסיק להתמודד במתאר הנוכחי.
אם ההידרדרות מקומית — זוויות חדשות, תאורה, מצלמה שנוספה — כוונון עדין של ArcFace על הנתונים האלה סוגר את המשימה בלי לבנות מחדש את בסיס התבניות.
הרחבה שומרת על וקטור המאפיינים, ולכן תבניות שנרשמו קודם נשארות תקפות, הספים כמעט לא זזים, ולא נוגעים בחיבורים למערכת החשבונות.
החלפת מודל לחלוטין היא תרחיש אחר: וקטור מאפיינים חדש אינו תואם לישן, כלומר התבניות מחושבות מחדש, הספים מכוילים על מערך מתויג, וההחלטות נבדקות מול המתאר הקודם עד שהפערים נכנסים לטווח מותר. נתיב כזה מוצדק כשהמודל מפסיד במחלקת משימות, לא בתנאי צילום נקודתיים.
אפשרות שלישית — מתאר בדיקה שני: מודל חדש מחשב מאפיין במקביל למודל הפועל, וההחלטה מתקבלת לפי הסכמת שניהם. זה מפחית את שיעור המעברים הכוזבים במקומות שבהם מחיר הטעות גבוה, אך מוסיף עומס על משאבי החישוב ומאריך את זמן קבלת ההחלטה, ולכן כך סוגרים רק נקודות כניסה קריטיות.
העברת נכסים קיימים בכל נתיב זהה: תיוג, תרחישי בדיקה, היסטוריית הפעלות וחיבורים למערכת החשבונות משמשים מחדש — מחדש נאסף רק מה שקשור למאפיינים של מודל מסוים.
את בחירת הנתיב קובעים לאחר מדידה על ההיסטוריה המצטברת: משווים שיעורי מעברים כוזבים והתראות שווא בכל סכימה על מצלמות אמיתיות באתר. העדכון נעשה בלי לעצור את העבודה — המודל הקודם נשאר בפעולה עד שהחדש יאשר תוצאה על אותו זרם.
שאלות טכניות נפוצות לפני ההתחלה
לפני תחילת אימון ArcFace לקוחות מעלים את אותה קבוצה של ספקות טכניים: האם יספיקו הנתונים, האם חוקי לאחסן נתונים ביומטריים, מה יקרה בהחלפת מצלמות וכיצד המודל יתנהג בכמה נקודות.
מהתשובות תלויה ארכיטקטורת איסוף הנתונים, ולכן אנו מפרקים אותן לפני שורת הקוד הראשונה — חלק מהמגבלות מוסרות בהמשך על ידי כיוונון אזור הצילום, וחלק אינן מוסרות כלל.
האם יספיקו הנתונים ומה לעשות עם זוויות נדירות?
מתבססים על עשרות פריימים לאדם בתנאים שונים — תאורה, סיבוב ראש, משקפיים, כיסוי ראש. זוויות נדירות משלימים ממצלמות פעילות ומוסיפים למדגם: בלי זה הדחיות הכוזבות נופלות בדיוק עליהן.
כיצד נשמרים נתונים ביומטריים והאם נדרשת הסכמת עובדים?
במאגר נמצא לא צילום, אלא וקטור מאפיינים מספרי — אי אפשר לשחזר ממנו תמונה. הסכמה מפורמלת במסמך נפרד, הגישה מופרדת לפי תפקידים, מתנהל יומן פניות ורשומות נמחקות לפי בקשה.
מה יקרה בהחלפת מצלמות והאם האיכות תרד עם הזמן?
המודל רגיש לזירה: זווית, גובה, תאורה, מרחק. לאחר החלפת ציוד מכיילים את הספים מחדש, ובהמשך עוקבים אחר שיעור הדחיות — מגיעים אנשים חדשים, התאורה והלבוש העונתי משתנים, ולכן מעת לעת מכווננים עדין את המודל על מדגם שהתעדכן.
כיצד המערכת מתרחבת לכמה נקודות?
ההשוואה נעשית לפי אינדקס, לא בסריקה מלאה, ולכן זמן התגובה אינו גדל ליניארית עם גודל המאגר. נקודות מחוברות למאגר משותף, ספים נקבעים בנפרד לכל כניסה, ומשווים את שיעור התראות השווא.
נדון במשימת זיהוי הפנים שלכם
כדי לחזור עם הערכת פרויקט, תוכנית עבודה ולוחות זמנים במקום מילים כלליות, דרוש לנו סט קטן של נתוני מקור — וככל שהם קרובים יותר לתנאים אמיתיים באתר, כך התחזית לאיכות המודל מדויקת יותר. במיוחד כשמדובר באימון ArcFace לתרחיש שלכם.
- דוגמאות נתונים מהאתר: 30–50 תמונות או קטעים קצרים מאותן מצלמות, באותה תאורה ובאותן זוויות.
- הרכב האנשים: כמה אנשים יש להבחין ביניהם, כמה פריימים לכל אחד כבר קיימים או יכולים להיאסף.
- תרחיש: בקרת כניסה, מעקב שעות עבודה, חיפוש בארכיון — מזה תלויים סף ההפעלה והיגיון הדחיות.
- דרישות איכות: שיעור מותר של מעברים כוזבים והתראות שווא, תגובה למשקפיים, מסכות, כיסויי ראש.
- מגבלות נתונים: היכן נשמרות התמונות, מי נותן הסכמה, אילו כללי אנונימיזציה חלים.
- תשתית: זרם ממצלמות או עיבוד לא מקוון, בסיס חישובי, חיבור לניתוח וידאו קיים.
- גבולות השלב: אתר פיילוט או כל האתרים בבת אחת, לוחות זמנים קריטיים, מי מקבל את התוצאה.
לאחר דיון במשימה נחזור עם הערכת פרויקט, תוכנית עבודה שלב אחר שלב והצעה להרצה ניסיונית: אימון ובדיקה על הנתונים שלכם, לפני הרחבה לכל התשתית.







