בקודם בלוג, תיארנו פתרון לאימות זהות מקצה לקצה באזור AWS יחיד. הפתרון משתמש ב- אמזון ממשקי API DetectFaces לזיהוי פנים ו השווה פרצופים להשוואת פנים. אנו חושבים על ממשקי API אלה כממשקי API חסרי מדינה מכיוון שהם אינם תלויים בהכרה של אמזון אוסף פנים. הם גם אימפוטנטיים, כלומר שיחות חוזרות עם אותם פרמטרים יחזירו את אותה תוצאה. הם מספקים אפשרויות גמישות להעברת תמונות, בין אם דרך א שירות אחסון פשוט של אמזון (Amazon S3) מיקום או בתים גולמיים.
בפוסט זה נתמקד ב תמונת ההכרה באמזון ממשקי API חסרי מדינה, ולדון בשתי אפשרויות של העברת תמונות ומתי לבחור אחת על פני השנייה מנקודת מבט של ארכיטקטורת המערכת. לאחר מכן נדון כיצד להתאים את ממשקי ה-API חסרי המדינה כדי להתגבר על כמה מגבלות אזוריות. כשמדברים על מדרגיות, אנחנו מתייחסים לרוב לטרנזקציות המקסימליות לשנייה (TPS) שהפתרון יכול להתמודד. לדוגמה, בעת אירוח אירוע גדול המשתמש בראייה ממוחשבת כדי לזהות פנים או תוויות של אובייקטים, אתה עלול להיתקל בתנועות תנועה, ואינך רוצה שהמערכת תגרום למצערת. זה אומר שלפעמים צריך להגדיל את ה-TPS ואפילו לחרוג ממכסת השירות האזורית שיש ל-Amazon Rekognition APIs. פוסט זה מציע פתרון להגדלת ה-TPS של ממשקי API חסרי מדינה על ידי שימוש במספר אזורים.
ממשקי API חסרי מדינה של Amazon Rekognition
מבין ממשקי ה-API של Amazon Rekognition Image הזמינים, השווה פרצופים, DetectFaces, DetectLabels, DetectModerationLabels, DetectProtective Equipment, DetectText, ו זיהוי סלבריטאים הם חסרי אזרחות. הם מספקים גם אמזון S3 וגם אפשרויות בתים גולמיים להעברת תמונות. לדוגמה, בתחביר הבקשה של ה DetectFaces
API, ישנן שתי אפשרויות להעביר ל- Image
שדה: Bytes
or S3Object
.
בעת שימוש S3Object
אפשרות, ארכיטקטורה טיפוסית היא כדלקמן.
לפתרון זה יש את זרימת העבודה הבאה:
- יישום הלקוח ניגש לדף אינטרנט שמתארח בו AWS להגביר.
- יישום הלקוח מאומת ומאושר עם אמזון קוגניטו.
- אפליקציית הלקוח מעלה תמונה לדלי S3.
- Amazon S3 מפעיל an AWS למבדה פונקציה להתקשר ל- Amazon Rekognition.
- הפונקציה Lambda קוראת ל-Amazon Rekognition APIs עם אפשרות S3Object.
- פונקציית Lambda ממשיכה את התוצאה ל- אמזון דינמו השולחן.
בחר את S3Object
אפשרות בתרחישים הבאים:
- התמונה היא קובץ בפורמט PNG או JPEG
- אתה פורס את כל הערימה באותו אזור שבו אמזון זיהוי זמין
- מכסת השירות האזורית של ה-Amazon Rekognition API עונה על דרישת המערכת שלך
כאשר אינך עומד בכל הדרישות הללו, עליך לבחור ב Bytes
אוֹפְּצִיָה.
השתמש ב-Amazon Rekognition Stateless APIs באזור אחר
דוגמה אחת לשימוש ב- Bytes
האפשרות היא כאשר אתה רוצה לפרוס את מקרה השימוש שלך באזור שבו זיהוי אמזון אינו זמין בדרך כלל, לדוגמה, אם יש לך נוכחות של לקוחות בדרום אמריקה (sa-east-1
) אזור. עבור תושבות נתונים, דלי S3 שבו אתה משתמש לאחסון תמונות של משתמשים חייב להיות בתוכו sa-east-1
, אבל אתה רוצה להשתמש ב-Amazon Rekognition עבור הפתרון שלך למרות שהוא לא זמין בדרך כלל ב sa-east-1
. פתרון אחד הוא להשתמש ב- Bytes
אפשרות להתקשר ל-Amazon Rekognition באזור אחר שבו Amazon Rekognition זמין, כגון us-east-1
. התרשים הבא ממחיש את הארכיטקטורה הזו.
לאחר הפעלת פונקציית Lambda (שלב 4), במקום להתקשר ישירות ל-Amazon Rekognition עם מיקום ה-S3 של התמונה, הפונקציה צריכה לאחזר את התמונה מה-S3 bucket (שלב 5), ואז להתקשר ל-Amazon Rekognition עם הבייטים הגולמיים של התמונה (שלב 6). להלן קטע קוד של פונקציית Lambda:
שים לב שקטע הקוד הקודם פועל ישירות עבור פורמטים JPEG או PNG. עבור פורמטים אחרים של תמונה, כמו BMP, יש צורך בעיבוד תמונה נוסף כדי להמיר אותה ל-JPEG או PNG בתים לפני השליחה ל-Amazon Rekognition. הקוד הבא ממיר BMP ל-JPEG בתים:
הגדל את ה-TPS של ממשקי API חסרי מדינה על ידי הפצת קריאות API למספר אזורים
מקרה שימוש נוסף של Bytes
האפשרות היא שאתה יכול להגדיל את ה-TPS של ממשקי API חסרי מדינה על ידי הפצת קריאות ה-API למספר אזורים. בדרך זו, אינך מוגבל על ידי מכסת השירות האזורי של ה-API מכיוון שאתה יכול להשיג TPS נוסף מאזורים אחרים.
בדוגמה הבאה נוצרת פונקציית Lambda כדי לקרוא ל-Amazon Rekognition DetectLabels
API עם ה Bytes
אוֹפְּצִיָה. כדי להגדיל את ה-TPS המקסימלי, אתה יכול לפזר את קריאות ה-API למספר אזורים עם משקלים. ה-TPS המקסימלי שאתה יכול להשיג מחושב עם: min(region_1_max_tps/region_1_weight, region_2_max_tps/region_2_weight, … region_n_max_tps/region_n_weight). הדוגמה הבאה משתמשת us-east-1
ו us-west-2
אזורים.
קטע הקוד להתקשרות עם DetectLabels
API הוא כדלקמן:
כי us-east-1
ו us-west-2
לשניהם יש מקסימום 50 TPS עבור Amazon Rekognition DetectFaces API, אתה יכול לפזר באופן שווה את קריאות ה-API עם משקל של 50/50 על ידי הגדרת משתנה הסביבה REGION_1_TRAFFIC_PERCENTAGE
עד 50. בדרך זו, אתה יכול להשיג min(50/50%, 50/50%) = 100 TPS בתיאוריה.
כדי לאמת את הרעיון, פונקציית Lambda נחשפת כ- REST API עם שער API של אמזון. אז JMeter משמש לבדיקת טעינת ה-API.
REGION_1_TRAFFIC_PERCENTAGE
מוגדר תחילה ל-100, כך הכל DetectFaces
קריאות API נשלחות אל us-east-1
רק. בתיאוריה, ה-TPS המקסימלי שניתן להשיג מוגבל על ידי מכסת השירותים ב us-east-1
, שזה 50 TPS. בדיקת טעינה על נקודת הקצה המותאמת של ממשק API, החל מ-50 שרשורים במקביל, הוספת בהדרגה 5 שרשורים עד ProvisionedThroughputExceededException
חזר מאמזון זיהוי נצפה.
REGION_1_TRAFFIC_PERCENTAGE
לאחר מכן מוגדר ל-50, כך הכל DetectLabels
קריאות API נשלחות באופן שווה us-east-1
ו us-west-2
. בתיאוריה, ה-TPS המקסימלי שניתן להשיג הוא מכסת השירות ששני האזורים משלבים, שהיא 100 TPS. התחל שוב את בדיקת העומס מ-100 שרשורים כדי למצוא את ה-TPS המקסימלי.
הטבלה הבאה מסכמת את תוצאות בדיקת העומס.
אחוז הקריאות של DetectLabels API ל-us-east-1 | אחוז הקריאות של DetectLabels API ל-us-west-2 | מקסימום TPS בתיאוריה | מקסימום ריצות במקביל ללא ProvisionedThroughputExceededException |
100 | 0 | 50 | 70 |
50 | 50 | 100 | 145 |
סיכום
לקוחות רבים משתמשים בממשקי API חסרי מדינה של Amazon Rekognition Image למקרי שימוש שונים, כולל אימות זהות, ניהול תוכן, עיבוד מדיה ועוד. פוסט זה דן בשתי האפשרויות של העברת תמונות וכיצד להשתמש באפשרות ה-raw bytes עבור מקרי השימוש הבאים:
- אמזון זיהוי זמינות אזורית
- תושבות נתוני לקוחות
- הגדלה של ה-TPS של ממשקי API חסרי מדינה של Amazon Rekognition
בדוק כיצד נעשה שימוש בזיהוי אמזון ב מקרי שימוש שונים בראיית מחשב והתחל את מסע החדשנות שלך.
על הכותבים
שרון לי הוא אדריכל פתרונות ב-AWS, המבוסס באזור בוסטון, MA. היא עובדת עם לקוחות ארגוניים, עוזרת להם לפתור בעיות קשות ולהתבסס על AWS. מחוץ לעבודה, היא אוהבת לבלות עם משפחתה ולחקור מסעדות מקומיות.
וייבבה שאה הוא אדריכל פתרונות בכיר עם AWS ואוהב לעזור ללקוחות שלו בכל דבר בענן ולאפשר את מסע האימוץ שלהם בענן. מחוץ לעבודה, הוא אוהב לטייל, לחקור מקומות חדשים ומסעדות, לבשל, לעקוב אחר ספורט כמו קריקט וכדורגל, לצפות בסרטים וסדרות (מעריץ של מארוול), ופעילויות הרפתקניות כמו טיולים רגליים, צניחה חופשית, והרשימה עוד ארוכה.
- מתקדם (300)
- AI
- איי אמנות
- מחולל אמנות ai
- איי רובוט
- אמזון
- בינה מלאכותית
- הסמכת בינה מלאכותית
- בינה מלאכותית בבנקאות
- רובוט בינה מלאכותית
- רובוטים של בינה מלאכותית
- תוכנת בינה מלאכותית
- למידת מכונות AWS
- blockchain
- blockchain conference ai
- קוינגניוס
- בינה מלאכותית של שיחה
- קריפטו כנס ai
- של דאל
- למידה עמוקה
- גוגל איי
- למידת מכונה
- אפלטון
- plato ai
- מודיעין אפלטון
- משחק אפלטון
- אפלטון נתונים
- פלטוגיימינג
- סולם ai
- תחביר
- מדריך טכני
- זפירנט