איך יוצרים פתרון לניתוח תמונות באמצעות ML עם Dataflow ו-Cloud Vision API

Last reviewed 2024-05-23 UTC

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

מסמך הארכיטקטורה הזה מיועד למהנדסי נתונים ולמדעני נתונים.

ארכיטקטורה

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

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

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

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

    1. לקוחות מעלים קובצי תמונות לקטגוריה של Cloud Storage.
    2. בכל העלאת קובץ, מערכת Cloud Storage שולחת באופן אוטומטי התראת קלט על ידי פרסום הודעה ב-Pub/Sub.
  2. תהליך: השלב הזה מתרחש מיד אחרי שלב ההטמעה וההפעלה. לכל התראה חדשה על קלט, מתבצעות הפעולות הבאות:

    1. צינור הנתונים של Dataflow מאזין להודעות האלה על קלט קובץ, מחלץ מטא-נתונים של קובץ מההודעה של Pub/Sub ושולח את הפניה לקובץ אל Vision API לעיבוד.
    2. ‫Vision API קורא את התמונה ויוצר הערות.
    3. צינור הנתונים של Dataflow שומר את ההערות שנוצרו על ידי Vision API בטבלאות של BigQuery.
  3. שמירה וניתוח: זה השלב האחרון בתהליך. בשלב הזה, אפשר לבצע את הפעולות הבאות עם התוצאות שנשמרו:

    1. שליחת שאילתות לטבלאות BigQuery וניתוח ההערות המאוחסנות.
    2. משתמשים ב-BigQuery ML או ב-Vertex AI כדי ליצור מודלים ולבצע חיזויים על סמך ההערות המאוחסנות.
    3. מבצעים ניתוח נוסף בצינור Dataflow (לא מוצג בתרשים הזה).

המוצרים שהשתמשו בהם

ארכיטקטורת ההפניה הזו כוללת את המוצרים הבאים Google Cloud :

תרחישים לדוגמה

‫Vision API תומך בתכונות עיבוד רבות, כולל הוספת תוויות לתמונות, זיהוי של פנים וציוני דרך, זיהוי תווים אופטי (OCR), תיוג של תוכן בוטה ועוד. כל אחת מהתכונות האלה מאפשרת כמה תרחישי שימוש שרלוונטיים לתעשיות שונות. במסמך הזה יש כמה דוגמאות פשוטות למה שאפשר לעשות באמצעות Vision API, אבל מגוון האפליקציות האפשריות הוא רחב מאוד.

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

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

חלופות עיצוב

במקום לאחסן תמונות בקטגוריה של Cloud Storage ב-Google Cloud Storage, התהליך שיוצר את התמונות יכול לפרסם אותן ישירות במערכת העברת הודעות – למשל Pub/Sub – ופייפליין עיבוד הנתונים של Dataflow יכול לשלוח את התמונות ישירות אל Vision API.

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

אם אתם צריכים לעבד מספר גדול של תמונות בפעולות מקובצות, אתם יכולים להשתמש ב-API asyncBatchAnnotate שנועד במיוחד לכך.

שיקולים לגבי העיצוב

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

אבטחה, פרטיות ותאימות

תמונות שהתקבלו ממקורות לא מהימנים עלולות להכיל תוכנות זדוניות. מכיוון ש-Vision API לא מבצע שום פעולה על סמך התמונות שהוא מנתח, תוכנות זדוניות שמבוססות על תמונות לא ישפיעו על ה-API. אם אתם צריכים לסרוק תמונות, אתם צריכים לשנות את צינור הנתונים של Dataflow כדי להוסיף שלב סריקה. כדי להשיג את אותה התוצאה, אפשר גם להשתמש במינוי נפרד לנושא Pub/Sub ולסרוק תמונות בתהליך נפרד.

מידע נוסף זמין במאמר בנושא אוטומציה של סריקת תוכנות זדוניות בקבצים שמועלים ל-Cloud Storage.

‫Vision API משתמש בניהול זהויות והרשאות גישה (IAM) לאימות. כדי לגשת ל-Vision API, לגורם המרכזי לאבטחה צריך להיות גישה מסוג Cloud Storage > צפייה באובייקט אחסון (roles/storage.objectViewer) לקטגוריה שמכילה את הקבצים שרוצים לנתח.

עקרונות והמלצות אבטחה שספציפיים לעומסי עבודה של AI ו-ML מפורטים במאמר AI and ML perspective: Security (נקודת מבט על AI ו-ML: אבטחה) ב-Well-Architected Framework.

הוזלת עלויות

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

‫Vision API תומך באצווה אסינכרונית של הערות לתמונות במצב אופליין לכל התכונות. הבקשה האסינכרונית תומכת בעד 2,000 תמונות בכל אצווה. בתגובה, Vision API מחזיר קובצי JSON שמאוחסנים בקטגוריה של Cloud Storage.

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

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

עקרונות והמלצות לאופטימיזציה של עלויות שספציפיים לעומסי עבודה של AI ו-ML מפורטים במאמר AI and ML perspective: Cost optimization ב-Well-Architected Framework.

אופטימיזציה של הביצועים

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

לצינור Dataflow יש כמה פרמטרים שיכולים להשפיע על זמני האחזור של העיבוד. מידע נוסף על הפרמטרים האלה זמין במאמר פריסת פתרון לניתוח נתונים של ראייה ממוחשבת באמצעות Dataflow ו-Vision API.

עקרונות והמלצות לאופטימיזציה של ביצועים שספציפיים לעומסי עבודה של AI ו-ML מפורטים במאמר AI and ML perspective: Performance optimization ב-Well-Architected Framework.

פריסה

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

המאמרים הבאים

שותפים ביצירת התוכן

מחברים:

תורמי תוכן אחרים: