הרכבת מודל לגילוי אובייקטים באמצעות AutoML Vision Edge

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

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

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

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

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

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

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

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

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

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

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

    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.