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

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

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

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

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

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

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

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

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

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

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

    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.