אימון דגם תיוג תמונה עם AutoML Vision Edge

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

AutoML Vision Edge הוא שירות של Google Cloud. השימוש בשירות כפוף להסכם הרישיון של Google Cloud Platform ולתנאים הספציפיים לשירות , ומחויב בהתאם. לפרטי חיוב, עיין בדף תמחור AutoML.

לפני שאתה מתחיל

1. הרכיבו את נתוני האימון שלכם

ראשית, עליך להרכיב מערך הדרכה של תמונות שכותרתו. זכור את ההנחיות הבאות:

  • התמונות חייבות להיות באחד מהפורמטים הבאים: JPEG, PNG, GIF, BMP, ICO.

  • כל תמונה חייבת להיות בגודל 30MB ומטה. שימו לב ש-AutoML Vision Edge מקטין את קנה המידה של רוב התמונות במהלך עיבוד מקדים, כך שבדרך כלל אין יתרון דיוק במתן תמונות ברזולוציה גבוהה מאוד.

  • כלול לפחות 10, ועדיף 100 או יותר, דוגמאות של כל תווית.

  • כלול מספר זוויות, רזולוציות ורקעים עבור כל תווית.

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

  • הדגמים שנוצרו על ידי AutoML Vision Edge מותאמים לצילומים של אובייקטים בעולם האמיתי. ייתכן שהם לא יעבדו טוב עבור צילומי רנטגן, רישומי ידיים, מסמכים סרוקים, קבלות וכו'.

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

כשתכינו את תמונות האימון שלכם, הכינו אותן לייבוא ​​ל-Firebase. יש לך שלוש אפשרויות:

אפשרות 1: ארכיון zip מובנה

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

שמות הספריות בארכיון zip זה יכולים להיות באורך של עד 32 תווי ASCII ויכולים להכיל רק תווים אלפאנומריים ואת תו הקו התחתון ( _ ).

לדוגמה:

my_training_data.zip
  |____accordion
  | |____001.jpg
  | |____002.jpg
  | |____003.jpg
  |____bass_guitar
  | |____hofner.gif
  | |____p-bass.png
  |____clavier
    |____well-tempered.jpg
    |____well-tempered (1).jpg
    |____well-tempered (2).jpg

אפשרות 2: אחסון בענן עם אינדקס CSV

העלה את תמונות ההדרכה שלך ל- Google Cloud Storage והכן קובץ CSV המפרט את כתובת האתר של כל תמונה, ולחלופין, את התוויות הנכונות לכל תמונה. אפשרות זו מועילה בעת שימוש במערכי נתונים גדולים מאוד.

לדוגמה, העלה את התמונות שלך ל-Cloud Storage, והכן קובץ CSV כמו הבא:

gs://your-training-data-bucket/001.jpg,accordion
gs://your-training-data-bucket/002.jpg,accordion
gs://your-training-data-bucket/003.jpg,accordion
gs://your-training-data-bucket/hofner.gif,bass_guitar
gs://your-training-data-bucket/p-bass.png,bass_guitar
gs://your-training-data-bucket/well-tempered.jpg,clavier
gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier
gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier

התמונות חייבות להיות מאוחסנות בדלי המהווה חלק מפרויקט Google Cloud התואם של פרויקט Firebase שלך.

ראה הכנת נתוני האימון שלך בתיעוד Cloud AutoML Vision למידע נוסף על הכנת קובץ ה-CSV.

אפשרות 3: תמונות ללא תווית

סמן את תמונות האימון שלך במסוף Firebase לאחר העלאתן, בנפרד או בקובץ zip לא מובנה. ראה את השלב הבא.

2. אמן את הדגם שלך

לאחר מכן, אמן מודל באמצעות התמונות שלך:

  1. פתח את הדף Vision Datasets במסוף Google Cloud. בחר את הפרויקט שלך כאשר תתבקש.

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

  3. בכרטיסייה 'ייבוא ' של מערך הנתונים שלך, העלה ארכיון zip של תמונות האימון שלך או קובץ CSV המכיל את מיקומי Cloud Storage שאליהם העלית אותם. ראה הרכבת נתוני האימון שלך .

  4. לאחר השלמת משימת הייבוא, השתמש בכרטיסייה 'תמונות' כדי לאמת את נתוני ההדרכה ולתייג תמונות ללא תווית.

  5. בכרטיסייה רכבת , לחץ על התחל אימון .

    1. תן שם לדגם ובחר בסוג דגם Edge .

    2. הגדר את הגדרות האימון הבאות, המסדירות את הביצועים של המודל שנוצר:

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

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

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

      זמני אימונים אופייניים
      סטים קטנים מאוד 1 שעה
      500 תמונות 2 שעות
      1,000 תמונות 3 שעות
      5,000 תמונות 6 שעות
      10,000 תמונות 7 שעות
      50,000 תמונות 11 שעות
      100,000 תמונות 13 שעות
      1,000,000 תמונות 18 שעות

3. העריכו את המודל שלכם

בסיום ההדרכה, תוכל ללחוץ על הכרטיסייה הערכה כדי לראות מדדי ביצועים עבור המודל.

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

בהקשר של סיווג תמונה, דיוק הוא היחס בין מספר התמונות שסומנו בצורה נכונה למספר התמונות שהדגם סימן בהינתן הסף שנבחר. כאשר למודל יש דיוק גבוה, הוא מקצה תוויות באופן שגוי בתדירות נמוכה יותר (פחות תוצאות חיוביות שגויות).

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

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

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

4. פרסם או הורד את הדגם שלך

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

פרוס את המודל

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

פרסם את הדגם

על ידי פרסום המודל ל-Firebase, אתה יכול לעדכן את המודל מבלי לשחרר גרסת אפליקציה חדשה, ותוכל להשתמש ב-Remote Config ו-A/B Testing כדי להגיש באופן דינמי מודלים שונים לקבוצות שונות של משתמשים.

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

כדי לפרסם את המודל שלך, תוכל להשתמש באחת משתי השיטות:

  • הורד את מודל TF Lite מדף הבדיקה והשימוש של מערך הנתונים שלך במסוף Google Cloud, ולאחר מכן העלה את הדגם בדף המודל המותאם אישית של מסוף Firebase. בדרך כלל זו הדרך הקלה ביותר לפרסם דגם בודד.
  • פרסם את המודל ישירות מפרויקט Google Cloud שלך ל-Firebase באמצעות ה-Admin SDK. אתה יכול להשתמש בשיטה זו לפרסום אצווה של מספר מודלים או כדי לעזור ביצירת צינורות פרסום אוטומטיים.

כדי לפרסם את המודל עם ה- API לניהול מודל SDK של Admin:

  1. התקן ואתחל את ה-SDK .

  2. פרסם את הדגם.

    יהיה עליך לציין את מזהה המשאב של המודל, שהוא מחרוזת שנראית כמו הדוגמה הבאה:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER מספר הפרויקט של דלי Cloud Storage המכיל את הדגם. זה עשוי להיות פרויקט Firebase שלך ​​או פרויקט אחר של Google Cloud. אתה יכול למצוא ערך זה בדף ההגדרות של מסוף Firebase או בלוח המחוונים של מסוף Google Cloud.
    MODEL_ID מזהה הדגם, שקיבלת מ-AutoML Cloud API.

    פִּיתוֹן

    # First, import and initialize the SDK.
    
    # Get a reference to the AutoML model
    source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format(
        # See above for information on these values.
        project_number,
        model_id
    ))
    
    # Create the model object
    tflite_format = ml.TFLiteFormat(model_source=source)
    model = ml.Model(
        display_name="example_model",  # This is the name you will use from your app to load the model.
        tags=["examples"],             # Optional tags for easier management.
        model_format=tflite_format)
    
    # Add the model to your Firebase project and publish it
    new_model = ml.create_model(model)
    new_model.wait_for_unlocked()
    ml.publish_model(new_model.model_id)
    

    Node.js

    // First, import and initialize the SDK.
    
    (async () => {
      // Get a reference to the AutoML model. See above for information on these
      // values.
      const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`;
    
      // Create the model object and add the model to your Firebase project.
      const model = await ml.createModel({
        displayName: 'example_model',  // This is the name you use from your app to load the model.
        tags: ['examples'],  // Optional tags for easier management.
        tfliteModel: { automlModel: automlModel },
      });
    
      // Wait for the model to be ready.
      await model.waitForUnlocked();
    
      // Publish the model.
      await ml.publishModel(model.modelId);
    
      process.exit();
    })().catch(console.error);
    

הורד ואגד את הדגם עם האפליקציה שלך

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

אם גם תפרסם את הדגם וגם תצרף אותו עם האפליקציה שלך, האפליקציה תשתמש בגרסה העדכנית ביותר הזמינה.

כדי להוריד את הדגם שלך, לחץ על TF Lite בדף הבדיקה והשימוש של מערך הנתונים שלך.

הצעדים הבאים

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