הכשר מודל תיוג תמונות עם AutoML Vision Edge

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

AutoML חזון Edge הוא שירות Google Cloud Print. השימוש בשירות כפוף להסכם הרישיון של 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 לפרט את כתובת האתר של כל תמונה, וכן, לחלופין, את התוויות הנכונות עבור כל תמונה. אפשרות זו מועילה בעת שימוש בערכות נתונים גדולות מאוד.

לדוגמה, העלה את התמונות שלך לאחסון בענן, והכין קובץ 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 שלך.

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

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

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

2. תאמן את המודל שלך

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

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

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

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

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

  5. בכרטיסיית הרכבת, לחץ הכשרת התחלה.

    1. שם הדגם ובחר את סוג מודל Edge.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

פרוס את המודל

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

פרסם את הדגם

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

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

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

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

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

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

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

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

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

    פִּיתוֹן

    # 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 בדף הבדיקה & השימוש של הנתונים שלך.

הצעדים הבאים

עכשיו שפרסמת או להוריד את המודל, ללמוד כיצד להשתמש במודל שלך iOS ו- Android Apps.