איך יוצרים פתרון לניתוח תמונות באמצעות 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 או ב-Gemini Enterprise Agent Platform כדי ליצור מודלים ולבצע חיזויים על סמך ההערות ששמרתם.
    3. מבצעים ניתוח נוסף בצינור עיבוד הנתונים של Dataflow (לא מוצג בתרשים הזה).

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

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

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

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

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

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

חלופות לעיצוב

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

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

אם אתם צריכים לבצע עיבוד ברצף (batch processing) של מספר גדול של תמונות, אתם יכולים להשתמש ב-API של asyncBatchAnnotate שתוכנן במיוחד למטרה הזו.

שיקולים שקשורים לעיצוב

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

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

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

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

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

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

הוזלת עלויות

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

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

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

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

במאמר נקודת מבט של AI ו-ML: אופטימיזציה של עלויות ב-Well-Architected Framework, תוכלו לקרוא על עקרונות והמלצות לאופטימיזציה של עלויות שספציפיות לעומסי עבודה של AI ו-ML.

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

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

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

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

פריסה

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

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

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

מחברים:

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