הטמעת זיהוי פנים באפליקציית מובייל
אפליקציה לאימות לקוחות זקוקה לביומטריה מדויקת, אך אנטי-ספופינג שגוי הופך את המערכת לפילטר לתמונות ממסך. הסיכונים המשפטיים לא פחותים: התעלמות מדרישות GDPR או 152-FZ מובילה ישירות לדחיית האפליקציה בחנות. אנו פותרים את שתי הרמות—מזיהוי ועד עמידה ברגולציה—במפתח אחד.
תרחיש טיפוסי: מפתח משתלב עם ML Kit לזיהוי, מחלץ embedding של פנים דרך FaceNet, ועוצר שם. בדיקת האבטחה הראשונה מראה שהמערכת מקבלת תמונה מודפסת. ו-App Store Review דוחה את הבנייה בגלל חוסר הסכמה ביומטרית מפורשת. כדי להימנע מבעיות אלו, ה-pipeline חייב לכלול שלושה שלבים חובה: זיהוי + יישור, embedding, אנטי-ספופינג—ואת ביקורת העמידה ברגולציה.
הניסיון שלנו מראה: ללא פיצול ה-pipeline לשלבים עצמאיים, לא ניתן להשיג תוצאות יציבות במכשירים ותנאי תאורה שונים. להלן כיצד אנו עושים זאת.
כיצד פועל ה-Pipeline של זיהוי פנים
ה-pipeline מורכב משלושה שלבים רציפים:
- זיהוי — מציאת פנים בפריים, קבלת bounding box ונקודות ציון.
- אימות/זיהוי — קבלת embedding של פנים (וקטור 128- או 512-ממדי) והשוואה מול מסד נתונים של הפניות.
- אנטי-ספופינג — הבטחה שאדם חי נמצא מול המצלמה, לא תמונה/וידאו/מסכה.
דילוג על השלב השלישי יוצר מערכת שכל תמונה מודפסת יכולה לעקוף. אפילו אנטי-ספופינג פסיבי בסיסי מסנן 70–80% מהתקפות פשוטות.
זיהוי ונקודות ציון
בחירת הספרייה תלויה בפלטפורמה ובדרישות הדיוק. להלן השוואה בין שתי גישות עיקריות:
| מסגרת | פלטפורמה | דיוק נקודות ציון | זמן חיזוי | תכונות |
|---|---|---|---|---|
| Vision Framework | iOS | 76 נקודות מפתח | 8–15 אלפיות השנייה ב-iPhone 12 | מובנה, אין צורך ברשת, עובד עם מודלי ML |
| ML Kit Face Detection | Android | עד 468 נקודות (זיהוי קווי מתאר) | 15–30 אלפיות השנייה ב-Pixel 6 | דורש Google Play Services; זיהוי זמין במצב ACCURATE |
ב-iOS: VNDetectFaceLandmarksRequest מ-Vision framework. מחזיר VNFaceObservation עם landmarks (76 נקודות: קו מתאר פנים, גבות, אף, שפתיים, עיניים) ו-boundingBox. על המכשיר, ללא רשת, ~8–15 אלפיות השנייה ב-iPhone 12.
ב-Android: ML Kit Face Detection עם FaceDetectorOptions.ACCURATE. מחזיר FirebaseFace עם 468 נקודות כאשר setContourDetectionEnabled(true) מופעל—רשת פנים מלאה. כבד יותר אך נדרש ליישור פנים מדויק לפני ה-embedding.
יישור פנים לפני חיזוי ה-embedding הוא קריטי. ללא יישור לפי העיניים, דיוק זיהוי הפנים יורד ב-15–25%. גיאומטרית: מצא את מרכזי העיניים, חשב את זווית הסיבוב, בצע טרנספורמציה אפינית למיקום סטנדרטי (עיניים בשליש מהחלק העליון, סימטריות).
Embedding והשוואה
הבחירות הסטנדרטיות הן FaceNet (128D) או ArcFace (512D). FaceNet זמין מחוץ לקופסה כמודל TFLite. ArcFace מדויק יותר אך כבד יותר. למובייל: FaceNet INT8—12 MB, חיזוי ~35 אלפיות השנייה ב-Pixel 6.
מרחק קוסינוס בין וקטורים הוא המדד העיקרי. סף ל"אותה פנים": בדרך כלל דמיון קוסינוס > 0.75. הסף מכוון למערך נתונים ספציפי—זה לא קבוע אוניברסלי.
אחסון embeddings של הפניות: ב-Keychain מוצפן (iOS) או EncryptedSharedPreferences / Android Keystore (Android). לעולם אל תאחסן תמונות מקוריות. Embeddings הם (תיאורטית) בלתי הפיכים, תמונות לא.
כיצד פועל אנטי-ספופינג
שתי גישות:
| סוג | עיקרון | ביצועים | הגנה מפני מסכות תלת-ממדיות |
|---|---|---|---|
| פסיבי | ניתוח מרקם עור, חפצים אופטיים | <10 אלפיות השנייה, ללא פעולת משתמש | חלש (30–40% קבלה שגויה) |
| אקטיבי | אתגר-תגובה: מצמוץ, סיבוב ראש | 50–200 אלפיות השנייה, דורש UX | חזק (עד 98% זיהוי התקפות) |
אנטי-ספופינג פסיבי מהיר יותר, אך אקטיבי אמין פי 2 נגד מסכות תלת-ממדיות. לאפליקציות בנקאות ופינטק, אנו ממליצים על שילוב: פסיבי + אתגר אקטיבי. לגישה ארגונית, פסיבי מספיק. קבל ייעוץ לבחירת השיטה האופטימלית לתרחיש שלך.
מה נדרש לעמידה ברגולציה?
נתונים ביומטריים (embedding של פנים הוא ביומטריה לפי GDPR סעיף 9 ו-152-FZ סעיף 11) דורשים הסכמה מפורשת של המשתמש, נפרדת מתנאי השימוש הכלליים. אחסון embeddings בענן מותר רק עם הצפנה במעבר ובמנוחה ו-DPA עם הספק. אם האפליקציה פועלת ברוסיה עם משתמשים רוסים, חלות דרישות לוקליזציה של נתונים לפי 152-FZ.
הנחיות App Store Review סעיף 5.1.1 אוסרות במפורש איסוף ביומטריה ללא אישור מפורש. דחייה בנקודה זו נפוצה. הזמן ביקורת עמידה ברגולציה בהתחלה—זה חוסך שבועות של עבודה חוזרת.
מה כלול בעבודה
ההטמעה כוללת:
- שילוב הגלאי (Vision / ML Kit) ובחירת מודל ה-embedding (FaceNet / ArcFace)
- פיתוח אנטי-ספופינג אקטיבי או פסיבי
- הגדרת אחסון מוצפן להפניות
- הכנת תיעוד עמידה ברגולציה (הסכמות, DPA)
- בדיקות מול 100+ דגימות התקפה (תמונה, וידאו, מסכה)
- פריסה ל-App Store / Google Play עם תמיכה בסקירה
- קוד מקור, תיעוד והדרכת צוות
לוחות זמנים ואחריות
זיהוי + אימות על המכשיר ללא אנטי-ספופינג: 1–2 שבועות. Pipeline מלא עם אנטי-ספופינג, אחסון מוצפן וביקורת עמידה ברגולציה: 3–4 שבועות. העלות מחושבת באופן אישי.
אנו מבטיחים דיוק של לפחות 95% FAR ב-0.1% FRR על מערך נתונים ייחוס (מוגדר לפי משימה). יש לנו 5+ שנים ו-20+ פרויקטים עם ביומטריה בבנקים ומערכות פיסקליות. צור קשר לייעוץ ולהערכת תוכנית השילוב למוצר שלך.







