אימון מודל זיהוי אובייקטים עם AutoML Vision Edge

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

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

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

  • אם עדיין אין לך פרויקט Firebase, צור אחד במסוף Firebase .

  • הכר את ההנחיות המובאות במדריך ML כולל - AutoML .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gs://your-training-data-bucket/001.jpg,accordion,0.2,0.4,,,0.3,0.5,,
gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,,
gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,

תיבות תוחמות של אובייקטים מצוינות בתור קואורדינטות יחסיות בתמונה. ראה עיצוב CSV של נתוני אימון .

התמונות חייבות להיות מאוחסנות בדלי שנמצא באזור us-central1 וחלק מפרויקט Google Cloud המקביל של פרויקט Firebase שלך.

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

סמן את תמונות האימון שלך ושרטט גבולות של אובייקטים ב-Google Cloud Console לאחר העלאתן. זה מומלץ רק עבור מערכי נתונים קטנים. ראה את השלב הבא.

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

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

  1. פתח את דף מערכי הנתונים של Vision ב-Google Cloud Console. בחר את הפרויקט שלך כאשר תתבקש.

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

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

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

  5. אם לא העלית CSV, עבור כל תמונה, צייר תיבות תוחמות סביב האובייקטים שברצונך לזהות ותווית כל אובייקט.

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

    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 Console, ולאחר מכן העלה את המודל בדף המודל המותאם אישית של מסוף 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 Console.
    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 שלך.