Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

הכשר מודל תיוג תמונות עם 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

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

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

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

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

2. הרכבת הדגם שלך

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

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

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

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

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

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

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

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

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

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

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

      זמני אימון אופייניים
      סטים קטנים מאוד 1 שעה
      500 תמונות 2 שעות
      1,000 תמונות 3 שעות
      5,000 תמונות 6 שעות
      10,000 תמונות 7 שעות
      50 אלף תמונות 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 באמצעות 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 של Cloud Auto Cloud.

    פִּיתוֹן

    # 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.