סיסמת הפנים – רשתות קומפקטיות שרצות ללא ענן

מיועד ל- מתחילים (כתבה קצת טכנית)

נכתב על ידי תמיר נווה

רקע

אותנטיקציה (אימות) אמין ופשוט למשתמש זה מצרך מאוד מבוקש בימנו! החיים שלנו יותר ויותר נמצאים בעולמות וירטואליים ודיגיטליים, ואפילו נכסים פיננסים (ביטקוין וחבריו) כבר נכנסו לעולם זה. כדי להיכנס לעולם הדיגיטלי הפרטי שלנו נידרש לשם משתמש וסיסמא אישית לכל הפחות. כשמדובר באתרים רגישים יותר גם מוסיפים Two-factor Authentication ואישור במייל או בסמס. כל זה מאוד מייגע עבורנו (ראו מערכון מעולה של ארץ נהדרת בנושא).

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

תוצאות נכון להיום (אימות תמונות פנים במובייל)

ישנן רשתות קומפקטיות (מתאימות למובייל) שמוצלחות בזיהוי (לאו דווקא של פנים) כמו ShuffleNet, SqueezeNet ו MobileNetV2. אך לאחרונה יצאה רשת MobileFaceNet  שנראה שמתמחה בזיהוי הפנים.

במאמר המציג את MobileFaceNet בחנו ביצועים על מאגר התמונות LFW=Labeled Faces in the Wild המכיל 13,000 תמונות פנים שנאספו מהרשת, (in the wild הכוונה שאלו תמונות שצולמו בתנאים בלתי נשלטים, ז”א במגוון תנאי תאורה, הבעות פנים, רעשים, הסתרות, תנוחות וכו’) ועל מאגר התמונות AgeDB שגם מכיל תיוג גיל לכל תמונה.

רשת MobileFaceNet  מגיעה לדיוקים של 99.55% על LFW ו 96.07% על AgeDB. הרשת צורכת 4MB  זכרון (פחות ממיליון פרמטרים) ונותנת תשובה תוך 24 מילישניות (על מעבד של mobile) על תמונה באורך\רוחב 112 או 96 פיקסלים. (תלוי בגירסה). הגדולה של רשת זו היא שהביצועים שלה גבוהים כמו של הרשתות הגדולות והכבדות הדורשות מאות MB זכרון (שאינן מתאימות למובייל).

את הרשת אימנו על מאגר בן 10 מיליון תמונות פנים של 100 אלף סלבריטאים MS-celeb-1M.

על הארכיטקטורה של הרשת ומה החידוש בה, במאמר הבא.

מה קורה ב MobileFaceNet 

ה tradeoff בין דיוק גבוה של רשת לבין כמות פרמטרים הינו נושא מחקר פורה. אחרי שנדהמנו מהדיוקים של Alexnet ואלו שבאו אחריה נעשו ונעשים מחקרים רבים המנסים לשחזר דיוקים עם רשתות קומפקטיות. ראו למשל SqueezeNet, MobileNetV1, MobileNetV2, ShuffleNet, NasNet, Light CNN-29, LMobileNetE. הגישות של הרשתות הקומפקטיות מתבססות על טכניקות כגון bottleneck, depthwise convolution layer או מציאת רשת באמצעות reinforcement learning או גישת ה  .knowledge distillation

אימות תמונת פנים מתבצע באופן כללי בשלושה שלבים: עיבוד מקדים (preprocessing), חישוב פיצ’רים מהתמונה בעזרת רשת CNN, השוואה בין פיצ’רים של שתי תמונות פנים.

במאמר הם מנתחים את אזורי ה reception field (האזור בשכבה שמשפיע על נקודה בשכבות הבאות) של הפיצ’רים במוצא ה CNN ועל בסיס הניתוח כמו גם על בסיס ניסויים מראים שהחולשה של רשתות שרצות על מובייל היא שכבת ה averaging pooling שמתייחסת באופן שווה לכל היחידות. כיוון שלהחליף אותה ב fully connected זו לא אופציה כיוון שיעלה משמעותית את כמות הפרמטרים של הרשת, הם מציעים להחליף אותה בשכבת global depthwise convolution=GDConv. להלן הארכיטקטורה המלאה של הרשת:

תודה ל MobileFaceNets: Efficient CNNs for Accurate Real-time Face Verification on Mobile Devices