בתעשיות שונות, כגון שירותים פיננסיים, טלקומוניקציה ושירותי בריאות, לקוחות משתמשים בתהליך זהות דיגיטלית, הכולל בדרך כלל מספר שלבים לאימות משתמשי קצה במהלך הצטרפות מקוונת או אימות שלב. דוגמה לשלב אחד שניתן להשתמש בו הוא חיפוש פנים, שיכול לעזור לקבוע אם הפנים של משתמש קצה חדש תואמות לאלו המשויכות לחשבון קיים.
בניית מערכת חיפוש פנים מדויקת כוללת מספר שלבים. המערכת חייבת להיות מסוגלת לזהות פנים אנושיות בתמונות, לחלץ את הפרצופים לייצוגים וקטוריים, לאחסן וקטורי פנים במסד נתונים ולהשוות פנים חדשות מול ערכים קיימים. אמזון עושה זאת ללא מאמץ בכך שהוא נותן לך מודלים מאומנים מראש המופעלים באמצעות קריאות API פשוטות.
אמזון זיהוי מאפשר לך להשיג דיוק חיפוש פנים גבוה מאוד עם תמונת פנים אחת. במקרים מסוימים, אתה יכול להשתמש במספר תמונות של פניו של אותו אדם כדי ליצור וקטורים של משתמשים ולשפר את הדיוק עוד יותר. זה מועיל במיוחד כאשר לתמונות יש וריאציות בתאורה, תנוחות ומראה.
בפוסט זה, אנו מדגימים כיצד להשתמש בממשקי ה-API של Amazon Rekognition Face Search עם וקטורים של משתמשים כדי להגדיל את ציון הדמיון עבור התאמות אמיתיות ולהקטין את ציון הדמיון עבור אי-התאמות אמיתיות.
אנו משווים את התוצאות של ביצוע התאמת פנים עם ובלי וקטורים של משתמשים.
התאמת פנים לזיהוי אמזון
התאמת פנים של Amazon Rekognition מאפשרת מדידת הדמיון של וקטור פנים שחולץ מתמונה אחת לוקטור פנים שחולץ מתמונה אחרת. אומרים שזוג תמונות פנים הן א התאמה אמיתית אם שתי התמונות מכילות פנים של אותו אדם, וכן א אי התאמה אמיתית אחרת. Amazon Rekognition מחזירה ציון עבור הדמיון של פני המקור והמטרה. ציון הדמיון המינימלי הוא 0, מה שמרמז על מעט מאוד דמיון, והמקסימום הוא 100.
להשוואה של פרצוף מקור עם אוסף של פרצופי יעד (התאמה 1:N), Amazon Rekognition מאפשרת ליצור אובייקט Collection ולאכלס אותו בפרצופים מתמונות באמצעות קריאות API.
כאשר מוסיפים פנים לאוסף, Amazon Rekognition לא מאחסנת את התמונה האמיתית של הפנים אלא את וקטור הפנים, ייצוג מתמטי של הפנים. עם ה SearchFaces API, אתה יכול להשוות פנים מקור עם אחד או כמה אוספים של פנים יעד.
בחודש יוני 2023, AWS השיקה וקטורים למשתמשים, יכולת חדשה שמשפרת משמעותית את דיוק חיפוש הפנים על ידי שימוש במספר תמונות פנים של משתמש. כעת, אתה יכול ליצור וקטורים של משתמשים, שצוברים בוקטורי פנים מרובים של אותו משתמש. וקטורי משתמשים מציעים דיוק גבוה יותר של חיפוש פנים עם תיאורים חזקים יותר, מכיוון שהם מכילים דרגות שונות של תאורה, חדות, תנוחה, מראה ועוד. זה משפר את הדיוק בהשוואה לחיפוש מול וקטורי פנים בודדים.
בסעיפים הבאים, אנו מתארים את תהליך השימוש בוקטורי משתמש של Amazon Rekognition. אנו מנחים אותך דרך יצירת אוסף, אחסון וקטורי פנים באוסף זה, צבירה של וקטורי פנים אלה לוקטורים של משתמשים, ולאחר מכן השוואת תוצאות החיפוש מול אותם וקטורי פנים וויקטורי משתמש בודדים.
סקירת פתרונות
עבור פתרון זה, אנו משתמשים באוסף אמזון זיהוי של משתמשים, כל אחד עם וקטורי הפנים המאונדקסים המשויכים לו ממספר תמונות שונות של פרצופים עבור כל משתמש.
בואו נסתכל על זרימת העבודה לבניית אוסף עם משתמשים ופנים:
- צור אוסף אמזון זיהוי.
- עבור כל משתמש, צור משתמש באוסף.
- עבור כל תמונה של המשתמש, הוסף את הפנים לאוסף (IndexFaces, אשר מחזיר מזהה פנים המתאים לכל וקטור פנים).
- שייך את כל מזהי הפנים שנוספו לאינדקס למשתמש (זה הכרחי עבור וקטורים של משתמשים).
לאחר מכן, נשווה את זרימות העבודה הבאות:
חיפוש עם תמונת קלט חדשה נתונה מול וקטורי פנים בודדים באוסף שלנו:
- קבל את כל הפרצופים מתמונה (DetectFaces).
- עבור כל פנים, השווה מול פנים בודדות באוסף שלנו (SearchFacesByImage).
חיפוש עם תמונת קלט חדשה נתונה מול וקטורים של משתמשים באוסף שלנו:
- קבל את כל הפרצופים מתמונה (DetectFaces).
- עבור כל פנים, השווה לוקטור המשתמש (SearchUsersByImage).
כעת נתאר את הפתרון בפירוט.
תנאים מוקדמים
הוסף את המדיניות הבאה שלך AWS זהות וניהול גישה (IAM) משתמש או תפקיד. המדיניות מעניקה לך הרשאה ל-Amazon Rekognition APIs הרלוונטיים ומאפשרת גישה ל- שירות אחסון פשוט של אמזון (Amazon S3) דלי לאחסון התמונות:
צור אוסף אמזון זיהוי והוסף משתמשים ופנים
ראשית, אנו יוצרים דלי S3 לאחסון תמונות של משתמשים. אנו מארגנים את הדלי על ידי יצירת תיקיה לכל משתמש המכילה את התמונות האישיות שלו. שֶׁלָנוּ תיקיית תמונות נראה כמו המבנה הבא:
לדלי S3 שלנו יש ספרייה לכל משתמש שמאחסנת את התמונות שלו. יש כרגע שתי תיקיות, וכל אחת מכילה כמה תמונות. אתה יכול להוסיף תיקיות נוספות עבור המשתמשים שלך, שכל אחת מהן מכילה תמונה אחת או יותר ליצירת אינדקס.
לאחר מכן, אנו יוצרים את קולקציית אמזון ההכרה שלנו. אנחנו סיפקנו helpers.py, שמכיל שיטות שונות שבהן אנו משתמשים:
- ליצור_אוסף - צור אוסף חדש
- מחק_אוסף - מחק אוסף
- צור משתמש - צור משתמש חדש באוסף
- הוסף_פנים_לאוסף - הוסף פרצופים לאוסף
- associate_faces - שיוך face_ids למשתמש באוסף
- get_subdirs - קבל את כל ספריות המשנה תחת הקידומת S3
- get_files - קבל את כל הקבצים תחת הקידומת S3
להלן שיטה לדוגמה ליצירת אוסף אמזון זיהוי:
צור את האוסף עם הקוד הבא:
לאחר מכן, בואו נוסיף את וקטורי הפנים לאוסף שלנו ונרכז אותם לוקטורים של משתמשים.
עבור כל משתמש בספריית S3, אנו יוצרים וקטור משתמש באוסף. לאחר מכן אנו מוסיפים לאינדקס את תמונות הפנים עבור כל משתמש לתוך האוסף כווקטורי פנים בודדים, מה שיוצר מזהי פנים. לבסוף, אנו משייכים את מזהי הפנים לוקטור המשתמש המתאים.
זה יוצר שני סוגים של וקטורים באוסף שלנו:
- וקטורי פנים בודדים
- וקטורי משתמש, הבנויים על סמך מזהי וקטור הפנים שסופקו בשיטה
associate_faces
ראה את הקוד הבא:
אנו משתמשים בשיטות הבאות:
- get_subdirs – מחזירה רשימה של כל ספריות המשתמשים. בדוגמה שלנו, הערך הוא [Swami,Werner].
- get_files - מחזיר את כל קבצי התמונות תחת הקידומת S3 עבור המשתמש.
- face_ids – זוהי רשימה המכילה את כל מזהי הפנים השייכים למשתמש. אנו משתמשים ברשימה זו כאשר אנו מתקשרים ל- AssociateFaces ה-API.
כפי שהוסבר קודם, אתה יכול להוסיף משתמשים נוספים על ידי הוספת תיקיות עבורם (התיקיה מכתיבה את מזהה המשתמש) ולהוסיף את התמונות שלך לתיקיה זו (אין צורך בהזמנה עבור הקבצים).
כעת, כשהסביבה שלנו מוגדרת ויש לנו גם וקטורי פנים בודדים וגם וקטורים של משתמשים, בואו נשווה את איכות החיפוש שלנו מול כל אחד מהם. לשם כך, אנו משתמשים בתמונה חדשה עם מספר אנשים ומנסים להתאים את פניהם לאוסף שלנו, תחילה מול וקטור הפנים בודדים ולאחר מכן מול וקטורי המשתמש.
חיפוש פנים של תמונה מול אוסף של וקטורי פנים בודדים
כדי לחפש מול וקטורי הפנים האישיים שלנו, אנו משתמשים בזיהוי אמזון SearchFacesByImage ממשק API. פונקציה זו משתמשת בתמונת פנים מקור כדי לחפש מול וקטורי פנים בודדים באוסף שלנו ומחזירה פרצופים התואמים את סף ציון הדמיון המוגדר שלנו.
שיקול חשוב הוא שה SearchFacesByImage
API יפעל רק על הפנים הגדולות ביותר שזוהו בתמונה. אם קיימים פרצופים מרובים, עליך לחתוך כל פנים בנפרד ולהעביר אותם בנפרד לשיטת הזיהוי.
לחילוץ פרטי פרצופים מתמונה (כגון מיקומם בתמונה), אנו משתמשים בזיהוי אמזון DetectFaces ה-API.
הבא לזהות_פנים_בתמונה השיטה מזהה פרצופים בתמונה. עבור כל פנים, הוא מבצע את הפעולות הבאות:
- הדפס את מיקום התיבה התוחמת שלו
- חתכו את הפנים מהתמונה ובדקו אם פרצוף כזה קיים באוסף והדפיס את המשתמש או 'לא ידוע'
- הדפס את ציון הדמיון
קוד Python לדוגמה משתמש ב- כרית ספרייה לביצוע מניפולציות תמונה (כגון הדפסה, ציור וחיתוך).
אנו משתמשים בסף ציון דמיון של 99%, שהיא הגדרה נפוצה למקרי שימוש באימות זהות.
הפעל את הקוד הבא:
file_key
הוא מפתח האובייקט S3 שאנו רוצים להתאים לאוסף שלנו. סיפקנו תמונה לדוגמה (photo.jpeg
) מתחת לתיקיית התמונות.
התמונה הבאה מציגה את התוצאות שלנו.
באמצעות סף של 99%, זוהה רק אדם אחד. ד"ר ורנר פוגלס סומן כלא ידוע. אם נריץ את אותו קוד באמצעות סף נמוך יותר של 90 (set threshold=90), נקבל את התוצאות הבאות.
כעת אנו רואים שלפניו של ד"ר ורנר פוגל יש ציון דמיון של 96.86%. לאחר מכן, בואו נבדוק אם נוכל לקבל את ציון הדמיון מעל הסף המוגדר שלנו באמצעות וקטורים של משתמשים.
חיפוש פנים של תמונה מול אוסף של וקטורים של משתמשים
כדי לחפש מול וקטורי המשתמש שלנו, אנו משתמשים בזיהוי של אמזון SearchUsersByImage ממשק API. פונקציה זו משתמשת בתמונת פנים מקור כדי לחפש מול וקטורים של משתמשים באוסף שלנו ומחזירה משתמשים התואמים את סף ציון הדמיון המוגדר שלנו.
אותו שיקול רלוונטי כאן - ה SearchUsersByImage
API יפעל רק על הפנים הגדולות ביותר שזוהו בתמונה. אם קיימים מספר פנים, עליך לחתוך כל פנים בנפרד ולהעביר אותם בנפרד לשיטת הזיהוי.
לחילוץ פרטי פרצופים מתמונה (כגון מיקומם בתמונה), אנו משתמשים בזיהוי אמזון DetectFaces ה-API.
הבא detect_users_in_image השיטה מזהה פרצופים בתמונה. עבור כל פנים, הוא מבצע את הפעולות הבאות:
- הדפס את מיקום התיבה התוחמת שלו
- חתוך את הפנים מהתמונה ובדוק אם פני משתמש כאלה קיימים באוסף שלנו והדפיס את המשתמש או 'לא ידוע'
- הדפס את ציון הדמיון
ראה את הקוד הבא:
הפונקציה מחזירה תמונה ששונתה עם התוצאות שניתן לשמור באמזון S3 או להדפיס. הפונקציה גם מפיקה נתונים סטטיסטיים לגבי הגילאים המשוערים של הפנים למסוף.
הפעל את הקוד הבא:
התמונה הבאה מציגה את התוצאות שלנו.
המשתמשים הקיימים באוסף שלנו זוהו בצורה נכונה עם דמיון גבוה (מעל 99%).
הצלחנו להגדיל את ציון הדמיון על ידי שימוש בשלושה וקטורי פנים לכל וקטור משתמש. ככל שאנו מגדילים את מספר וקטורי הפנים בשימוש, אנו מצפים שגם ציון הדמיון עבור התאמות אמיתיות יגדל. אתה יכול להשתמש בעד 100 וקטורי פנים לכל וקטור משתמש.
ניתן למצוא קוד לדוגמה מקצה לקצה ב- מאגר GitHub. זה כולל מפורט מחברת צדק שאתה יכול לרוץ עליו סטודיו SageMaker של אמזון (או חלופות אחרות).
לנקות את
כדי למחוק את האוסף, השתמש בקוד הבא:
סיכום
בפוסט זה הצגנו כיצד להשתמש בוקטורים של משתמשי Amazon Rekognition כדי ליישם חיפוש פנים מול אוסף של פרצופים של משתמשים. הדגמנו כיצד לשפר את דיוק חיפוש הפנים על ידי שימוש במספר תמונות פנים לכל משתמש והשווינו זאת מול וקטורי פנים בודדים. בנוסף, תיארנו כיצד ניתן להשתמש ב-Amazon Rekognition APIs השונים כדי לזהות פרצופים. הקוד לדוגמה שסופק משמש כבסיס איתן לבניית מערכת חיפוש פנים פונקציונלית.
למידע נוסף על וקטורים למשתמשים של Amazon Rekognition, עיין ב חיפוש פנים באוסף. אם אתה חדש ב-Amazon Rekognition, אתה יכול להשתמש ב-Free Tier שלנו, שנמשך 12 חודשים וכולל עיבוד של 5,000 תמונות בחודש ואחסון של 1,000 אובייקטים וקטוריים של משתמשים בחודש.
על הכותבים
אריק פורת הוא ארכיטקט פתרונות סטארט-אפ בכיר בשירותי האינטרנט של אמזון. הוא עובד עם סטארט-אפים כדי לעזור להם לבנות ולעצב את הפתרונות שלהם בענן, והוא נלהב מלמידת מכונה ופתרונות מבוססי מיכל. בזמנו הפנוי אריק אוהב לשחק שחמט ומשחקי וידאו.
אלירן עפרון הוא אדריכל פתרונות סטארט-אפ בשירותי האינטרנט של אמזון. אלירן הוא חובב נתונים ומחשוב, המסייע לסטארטאפים בתכנון ארכיטקטורות המערכת שלהם. בזמנו הפנוי, אלירן אוהב לבנות ולמרוץ מכוניות במירוצי טורינג ולבנות מכשירי IoT.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoData.Network Vertical Generative Ai. העצים את עצמך. גישה כאן.
- PlatoAiStream. Web3 Intelligence. הידע מוגבר. גישה כאן.
- PlatoESG. פחמן, קלינטק, אנרגיה, סביבה, שמש, ניהול פסולת. גישה כאן.
- PlatoHealth. מודיעין ביוטכנולוגיה וניסויים קליניים. גישה כאן.
- מקור: https://aws.amazon.com/blogs/machine-learning/improve-accuracy-of-amazon-rekognition-face-search-with-user-vectors/
- :יש ל
- :הוא
- $ למעלה
- 000
- 1
- 10
- 100
- 12
- 12 חודשים
- 17
- 2023
- 28
- 30
- 7
- 9
- a
- יכול
- אודות
- מֵעַל
- גישה
- חֶשְׁבּוֹן
- דיוק
- מדויק
- להשיג
- פעולה
- פעולות
- ממשי
- להוסיף
- מוסיף
- בנוסף
- נגד
- גילים
- לְקַבֵּץ
- -
- תעשיות
- להתיר
- מאפשר
- כְּבָר
- גם
- חלופות
- אמזון בעברית
- אמזון
- אמזון שירותי אינטרנט
- an
- ו
- אחר
- API
- ממשקי API
- המראה
- הופעות
- מתאים
- ארכיטקטורות
- ARE
- מערך
- AS
- סיוע
- עמית
- המשויך
- At
- ניסיון
- אימות
- AWS
- מבוסס
- BE
- כי
- שייכות
- בֵּין
- גוּף
- שניהם
- אריזה מקורית
- תיבות
- לִבנוֹת
- נבנה
- אבל
- by
- לחשב
- שיחה
- קוראים
- שיחות
- CAN
- יכול לקבל
- יכולת
- מכוניות
- מקרים
- לבדוק
- שחמט
- לקוחות
- ענן
- קוד
- אוסף
- אוספים
- Common
- לְהַשְׁווֹת
- לעומת
- השוואה
- לחשב
- התחשבות
- בנייה
- להכיל
- מכיל
- להמיר
- צורה נכונה
- תוֹאֵם
- לִיצוֹר
- יוצר
- יוצרים
- יבול
- כיום
- לקוחות
- נתונים
- מסד נתונים
- להקטין
- מוגדר
- להפגין
- מופגן
- לתאר
- מְתוּאָר
- עיצוב
- תכנון
- מְפוֹרָט
- פרטים
- לאתר
- זוהה
- לקבוע
- התקנים
- מכתיב
- אחר
- דיגיטלי
- זהות דיגיטלית
- ספריות
- בספרייה
- לְהַצִיג
- do
- לא
- עושה
- עשה
- dr
- לצייר
- ציור
- בְּמַהֲלָך
- כל אחד
- מוקדם יותר
- השפעה
- ללא מאמץ
- אחר
- מאפשר
- מקצה לקצה
- נלהב
- סביבה
- במיוחד
- מוערך
- אֲפִילוּ
- דוגמה
- אלא
- להתקיים
- קיימים
- קיים
- יציאות
- לצפות
- מוסבר
- תמצית
- פָּנִים
- פנים
- קבצים
- כספי
- שירותים פיננסיים
- ראשון
- מסומן
- לָצוּף
- הבא
- בעד
- פוּרמָט
- מצא
- קרן
- חופשי
- החל מ-
- פונקציה
- פונקציונלי
- נוסף
- משחקים
- מייצר
- לקבל
- נתן
- נתינה
- מענקים
- מדריך
- יש
- he
- בריאות
- גובה
- לעזור
- עוזרים
- מועיל
- כאן
- גָבוֹהַ
- גבוה יותר
- שֶׁלוֹ
- איך
- איך
- HTML
- http
- HTTPS
- בן אנוש
- ID
- הזדהות
- מזוהה
- זהות
- אימות זהות
- מזהה
- if
- תמונה
- תמונות
- ליישם
- לייבא
- חשוב
- לשפר
- משפר
- in
- כולל
- להגדיל
- מדד
- -
- בנפרד
- תעשיות
- מידע
- קלט
- אל תוך
- הופעל
- כרוך
- IOT
- מכשירי יוט
- IT
- שֶׁלָה
- jpeg
- יוני
- מפתח
- הגדול ביותר
- לבסוף
- הושק
- למידה
- עזבו
- סִפְרִיָה
- תְאוּרָה
- כמו
- אוהב
- רשימה
- קְצָת
- לִטעוֹן
- מיקום
- נראה
- נראה
- נמוך
- להוריד
- מכונה
- למידת מכונה
- עושה
- מניפולציות
- להתאים
- גפרורים
- תואם
- מתמטיקה
- מתימטי
- מקסימום
- מדידת
- שיטה
- שיטות
- מינימום
- מודלים
- שונים
- חוֹדֶשׁ
- חודשים
- יותר
- מספר
- צריך
- שם
- הכרחי
- צורך
- חדש
- הבא
- לא
- עַכשָׁיו
- מספר
- אובייקט
- אובייקטים
- of
- הַצָעָה
- זקן
- on
- Onboarding
- ONE
- באינטרנט
- רק
- להפעיל
- or
- אחר
- אַחֶרֶת
- שלנו
- מתווה
- פלטים
- יותר
- זוג
- לעבור
- לוהט
- אֲנָשִׁים
- עבור
- ביצוע
- מבצע
- רשות
- אדם
- אישי
- צילום
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- לְשַׂחֵק
- נקודות
- מדיניות
- פוזה
- תנוחות
- הודעה
- להציג
- מוצג
- קופונים להדפסה
- הדפסה
- תהליך
- תהליך
- ובלבד
- פיתון
- איכות
- גזע
- גזעים
- במקום
- להתייחס
- רלוונטי
- נציגות
- נדרש
- משאב
- תגובה
- תוצאות
- לַחֲזוֹר
- החזרות
- חָסוֹן
- תפקיד
- הפעלה
- בעל חכמים
- אמר
- אותו
- הציל
- ציון
- חיפוש
- חיפוש
- סעיפים
- לִרְאוֹת
- לחצני מצוקה לפנסיונרים
- משמש
- שירותים
- מושב
- סט
- הצבה
- כמה
- הופעות
- באופן משמעותי
- פָּשׁוּט
- יחיד
- מידה
- מוצק
- פִּתָרוֹן
- פתרונות
- כמה
- מָקוֹר
- חברות סטארט
- הצהרה
- סטטיסטיקה
- מצב
- שלב
- צעדים
- אחסון
- חנות
- חנויות
- אחסון
- זרם
- מִבְנֶה
- כזה
- שסופק
- מערכת
- יעד
- התקשורת
- מסוף
- זֶה
- השמיים
- המקור
- שֶׁלָהֶם
- אותם
- אז
- שם.
- הֵם
- זֶה
- אלה
- שְׁלוֹשָׁה
- סף
- דרך
- נִדבָּך
- זמן
- ל
- חלק עליון
- הופעות
- נָכוֹן
- לנסות
- שתיים
- סוגים
- תחת
- לא ידוע
- להשתמש
- מְשׁוּמָשׁ
- משתמש
- משתמשים
- שימושים
- באמצעות
- בְּדֶרֶך כְּלַל
- ערך
- וריאציות
- שונים
- משתנה
- אימות
- לאמת
- גרסה
- מאוד
- באמצעות
- וִידֵאוֹ
- משחקי וידאו
- רוצה
- היה
- we
- אינטרנט
- שירותי אינטרנט
- היו
- מתי
- אם
- אשר
- רוחב
- יצטרך
- עם
- לְלֹא
- זרימת עבודה
- זרימות עבודה
- עובד
- היה
- שנים
- אתה
- זפירנט