פיתוח מערכת לזיהוי גיל ומין לפי הפנים

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

תחומי פיתוח AI

שאלות נפוצות

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

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

הערכת גיל לפי פנים: היכן נשבר הדיוק

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

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

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

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

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

האפקט של אנליטיקה דמוגרפית בזרם

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

ניתוח הזרם במקום סקירה מחדש

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

שיעור החלטות ללא מפעיל

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

סוג התקלות שנעלם

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

עומס נשלט

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

מצבי עבודה: זרם, אצווה, סכמה היברידית

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

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

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

מה לשקול בבחירה

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

שלבי הטמעה: מביקורת נתונים ועד מסירה

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

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

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

מה נשאר אצל הלקוח: מודלים, סכמות, נהלים

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

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

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

מקרה בוחן: איך גדל הדיוק באתר אמיתי

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

מתודולוגיית המדידה נלקחה מפרוטוקול הערכה בלתי תלוי NIST FRVT, והמדדים חושבו על מדגם מתויג ממשמרות אמיתיות, ולא על פריימים מבוימים.

מדדים לפני ואחרי

מדד לפני ההתאמה אחרי
זיהוי נכון של גיל, סובלנות ±5 שנים 71% 93%
זיהוי נכון של מין 88% 97%
פריימים בלי תשובה בתנאים מורכבים 18% 4%
עיבוד משמרת אחת ידנית ~3 שעות ~20 דקות

מה שינו ואיפה עובר הגבול

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

הסתייגות חשובה: המספרים מחזיקים באותם תנאי צילום — זווית חזיתית, גובה תלייה, תאורה אחידה באזור הכניסה. בתאורה נגדית, בזרם צפוף ובחסימת פנים הדיוק יורד ב-10–15 נקודות אחוז; פריימים כאלה מסומנים בכנות כלא בטוחים, ולא מנוחשים.

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

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

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

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

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

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

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

שאלות נפוצות על איכות נתונים ופרטיות

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

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

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

מה לעשות אם חלק מהמבקרים במסכות ומשקפיים?

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

איך המערכת מתנהגת בתאורה חלשה ובזרם צפוף?

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

אפשר לעבד נתונים בלי לצאת מגבולות הקונטור שלנו?

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

נדון במשימה: מה לשלוח להערכה מהירה

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

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

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