הכנת נתוני אימון של תמונות לסיווג

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

בקטעים הבאים של המאמר מפורטים דרישות הנתונים, קובץ הסכימה של הקלט/פלט והפורמט של קובצי ייבוא הנתונים (JSON Lines ו-CSV) שמוגדרים על ידי הסכימה.

הרשאות

כדי להשתמש בתמונות מקטגוריה של Cloud Storage, צריך להעניק לסוכן של Agent Platform Service את התפקיד Storage Object Viewer בקטגוריה. סוכן השירות הוא חשבון שירות בניהול Google ש-Agent Platform משתמשת בו כדי לגשת לנתונים שלכם בשמכם. הסבר מפורט יותר זמין במאמר סוכני שירות.

סיווג עם תווית אחת

הדרישות לגבי הנתונים

  • נתוני אימון: הפורמטים הבאים של תמונות נתמכים כשמאמנים את המודל. אחרי ש-Agent Platform API מבצע עיבוד מקדים לתמונות המיובאות, הן משמשות כנתונים לאימון המודל. הגודל המקסימלי של כל קובץ תמונה הוא 30MB.
    • JPEG
    • GIF
    • PNG
    • BMP
    • ICO
  • נתוני חיזוי: כשמבקשים חיזוי מהמודל (שליחת שאילתה), אפשר להשתמש בפורמטים הבאים של תמונות. הגודל המקסימלי של כל קובץ הוא 1.5MB.
    • JPEG
    • GIF
    • PNG
    • WEBP
    • BMP
    • TIFF
    • ICO

    שיטות מומלצות לשימוש בנתוני תמונות לאימון מודלים של AutoML

    השיטות המומלצות הבאות רלוונטיות למערכי נתונים שמשמשים לאימון מודלים באמצעות AutoML.

  • מודלים של AutoML מותאמים לתמונות של אובייקטים בעולם האמיתי.
  • נתוני האימון צריכים להיות כמה שיותר קרובים לנתונים שעליהם יתבססו התחזיות. לדוגמה, אם תרצו להשתמש במודל כדי לזהות תמונות מטושטשות ברזולוציה נמוכה (למשל, תמונות ממצלמת אבטחה), נתוני האימון צריכים לכלול תמונות מטושטשות ברזולוציה נמוכה. באופן כללי, כדאי גם לספק כמה זוויות, רזולוציות ורקעים לתמונות האימון.
  • בדרך כלל, מודלים של Gemini Enterprise Agent Platform לא יכולים לחזות תוויות שאנשים לא יכולים להקצות. לכן, אם אי אפשר לאמן אדם להקצות תוויות על ידי התבוננות בתמונה למשך שנייה או שתיים, סביר להניח שגם את המודל אי אפשר לאמן לעשות זאת.
  • מומלץ להשתמש בכ-1,000 תמונות לאימון לכל תווית. הסכום המינימלי לכל תווית הוא 10. באופן כללי, נדרשות יותר דוגמאות לכל תווית כדי לאמן מודלים עם כמה תוויות לכל תמונה, והציונים שמתקבלים קשים יותר לפירוש.
  • המודל פועל בצורה הכי טובה כשיש לכל היותר פי 100 יותר תמונות לתווית הנפוצה ביותר מאשר לתווית הנפוצה הכי פחות. מומלץ להסיר תוויות עם תדירות נמוכה מאוד.
  • מומלץ לכלול תווית None_of_the_above ותמונות שלא תואמות לאף אחת מהתוויות שהגדרתם. לדוגמה, אם אתם יוצרים מערך נתונים של פרחים, כדאי לכלול תמונות של פרחים שלא נכללים בזנים שסימנתם, ולסמן אותם בתווית None_of_the_above.

קובץ סכימת YAML

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

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml

קובץ סכימה מלא

title: ImageClassificationSingleLabel
description: >
 Import and export format for importing/exporting images together with
 single-label classification annotation. Can be used in
 Dataset.import_schema_uri field.
type: object
required:
- imageGcsUri
properties:
 imageGcsUri:
   type: string
   description: >
     A Cloud Storage URI pointing to an image. Up to 30MB in size.
     Supported file mime types: `image/jpeg`, `image/gif`, `image/png`,
     `image/webp`, `image/bmp`, `image/tiff`, `image/vnd.microsoft.icon`.
 classificationAnnotation:
   type: object
   description: Single classification Annotation on the image.
   properties:
     displayName:
       type: string
       description: >
         It will be imported as/exported from AnnotationSpec's display name,
         i.e. the name of the label/class.
     annotationResourceLabels:
       description: Resource labels on the Annotation.
       type: object
       additionalProperties:
         type: string
 dataItemResourceLabels:
   description: Resource labels on the DataItem.
   type: object
   additionalProperties:
     type: string

קבצי קלט

JSON Lines

‫JSON בכל שורה:



{
  "imageGcsUri": "gs://bucket/filename.ext",
  "classificationAnnotation": {
    "displayName": "LABEL",
    "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name": "displayName",
        "env": "prod"
      }
   },
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training/test/validation"
  }
}

הערות בשדה:

  • imageGcsUri – שדה החובה היחיד.
  • annotationResourceLabels – יכול להכיל כל מספר של צמדי מפתח/ערך של מחרוזות. צמד המפתח/ערך היחיד ששמור למערכת הוא:
    • ‪"aiplatform.googleapis.com/annotation_set_name" : "value"

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

  • dataItemResourceLabels – יכול להכיל כל מספר של צמדי מפתח/ערך של מחרוזות. צמד המפתח/ערך היחיד ששמור למערכת הוא הבא, שמציין את קבוצת השימוש של למידת מכונה בפריט הנתונים:
    • ‪"aiplatform.googleapis.com/ml_use" : "training/test/validation"

דוגמה ל-JSON Lines – image_classification_single_label.jsonl:



{"imageGcsUri": "gs://bucket/filename1.jpeg",  "classificationAnnotation": {"displayName": "daisy"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif",  "classificationAnnotation": {"displayName": "dandelion"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png",  "classificationAnnotation": {"displayName": "roses"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.bmp",  "classificationAnnotation": {"displayName": "sunflowers"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename5.tiff",  "classificationAnnotation": {"displayName": "tulips"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

CSV

פורמט CSV:

[ML_USE],GCS_FILE_PATH,[LABEL]
רשימת העמודות
  • ML_USE (אופציונלי) – לצורך פיצול נתונים כשמאמנים מודל. משתמשים ב-TRAINING,‏ TEST או VALIDATION. מידע נוסף על פיצול נתונים ידני זמין במאמר מידע על פיצול נתונים למודלים של AutoML.
  • GCS_FILE_PATH – השדה הזה מכיל את ה-URI של Cloud Storage לתמונה. כתובות URI של Cloud Storage הן תלויות רישיות.
  • LABEL (אופציונלי) – התוויות חייבות להתחיל באות ולהכיל רק אותיות, מספרים וקווים תחתונים.

דוגמה לקובץ CSV – image_classification_single_label.csv:

test,gs://bucket/filename1.jpeg,daisy
training,gs://bucket/filename2.gif,dandelion
gs://bucket/filename3.png
gs://bucket/filename4.bmp,sunflowers
validation,gs://bucket/filename5.tiff,tulips
...
    

סיווג עם כמה תוויות

הדרישות לגבי הנתונים

  • נתוני אימון: הפורמטים הבאים של תמונות נתמכים כשמאמנים את המודל. אחרי ש-Agent Platform API מבצע עיבוד מקדים לתמונות המיובאות, הן משמשות כנתונים לאימון המודל. הגודל המקסימלי של כל קובץ תמונה הוא 30MB.
    • JPEG
    • GIF
    • PNG
    • BMP
    • ICO
  • נתוני חיזוי: כשמבקשים חיזוי מהמודל (שליחת שאילתה), אפשר להשתמש בפורמטים הבאים של תמונות. הגודל המקסימלי של כל קובץ הוא 1.5MB.
    • JPEG
    • GIF
    • PNG
    • WEBP
    • BMP
    • TIFF
    • ICO

    שיטות מומלצות לשימוש בנתוני תמונות לאימון מודלים של AutoML

    השיטות המומלצות הבאות רלוונטיות למערכי נתונים שמשמשים לאימון מודלים באמצעות AutoML.

  • מודלים של AutoML מותאמים לתמונות של אובייקטים בעולם האמיתי.
  • נתוני האימון צריכים להיות כמה שיותר קרובים לנתונים שעליהם יתבססו התחזיות. לדוגמה, אם תרצו להשתמש במודל כדי לזהות תמונות מטושטשות ברזולוציה נמוכה (למשל, תמונות ממצלמת אבטחה), נתוני האימון צריכים לכלול תמונות מטושטשות ברזולוציה נמוכה. באופן כללי, כדאי גם לספק כמה זוויות, רזולוציות ורקעים לתמונות האימון.
  • בדרך כלל, מודלים של Gemini Enterprise Agent Platform לא יכולים לחזות תוויות שאנשים לא יכולים להקצות. לכן, אם אי אפשר לאמן אדם להקצות תוויות על ידי התבוננות בתמונה למשך שנייה או שתיים, סביר להניח שגם את המודל אי אפשר לאמן לעשות זאת.
  • מומלץ להשתמש בכ-1,000 תמונות לאימון לכל תווית. הסכום המינימלי לכל תווית הוא 10. באופן כללי, נדרשות יותר דוגמאות לכל תווית כדי לאמן מודלים עם כמה תוויות לכל תמונה, והציונים שמתקבלים קשים יותר לפירוש.
  • המודל פועל בצורה הכי טובה כשיש לכל היותר פי 100 יותר תמונות לתווית הנפוצה ביותר מאשר לתווית הנפוצה הכי פחות. מומלץ להסיר תוויות עם תדירות נמוכה מאוד.
  • מומלץ לכלול תווית None_of_the_above ותמונות שלא תואמות לאף אחת מהתוויות שהגדרתם. לדוגמה, אם אתם יוצרים מערך נתונים של פרחים, כדאי לכלול תמונות של פרחים שלא נכללים בזנים שסימנתם, ולסמן אותם בתווית None_of_the_above.

קובץ סכימת YAML

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

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_multi_label_io_format_1.0.0.yaml

קובץ סכימה מלא

title: ImageClassificationMultiLabel
description: >
 Import and export format for importing/exporting images together with
 multi-label classification annotations. Can be used in
 Dataset.import_schema_uri field.
type: object
required:
- imageGcsUri
properties:
 imageGcsUri:
   type: string
   description: >
     A Cloud Storage URI pointing to an image. Up to 30MB in size.
     Supported file mime types: `image/jpeg`, `image/gif`, `image/png`,
     `image/webp`, `image/bmp`, `image/tiff`, `image/vnd.microsoft.icon`.
 classificationAnnotations:
   type: array
   description: Multiple classification Annotations on the image.
   items:
     type: object
     description: Classification annotation.
     properties:
       displayName:
         type: string
         description: >
           It will be imported as/exported from AnnotationSpec's display name,
           i.e. the name of the label/class.
       annotationResourceLabels:
         description: Resource labels on the Annotation.
         type: object
         additionalProperties:
           type: string
 dataItemResourceLabels:
   description: Resource labels on the DataItem.
   type: object
   additionalProperties:
     type: string

קבצי קלט

JSON Lines

‫JSON בכל שורה:


{
  "imageGcsUri": "gs://bucket/filename.ext",
  "classificationAnnotations": [
    {
      "displayName": "LABEL1",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name":"displayName",
        "label_type": "flower_type"
      }
    },
    {
      "displayName": "LABEL2",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name":"displayName",
        "label_type": "image_shot_type"
      }
    }
  ],
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training/test/validation"
  }
}

הערות בשדה:

  • imageGcsUri – שדה החובה היחיד.
  • annotationResourceLabels – יכול להכיל כל מספר של צמדי מפתח/ערך של מחרוזות. צמד המפתח/ערך היחיד ששמור למערכת הוא:
    • ‪"aiplatform.googleapis.com/annotation_set_name" : "value"

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

  • dataItemResourceLabels – יכול להכיל כל מספר של צמדי מפתח/ערך של מחרוזות. צמד המפתח/ערך היחיד ששמור למערכת הוא הבא, שמציין את קבוצת השימוש של למידת מכונה בפריט הנתונים:
    • ‪"aiplatform.googleapis.com/ml_use" : "training/test/validation"

דוגמה ל-JSON Lines – image_classification_multi_label.jsonl:



{"imageGcsUri": "gs://bucket/filename1.jpeg",  "classificationAnnotations": [{"displayName": "daisy"}, {"displayName": "full_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif",  "classificationAnnotations": [{"displayName": "dandelion"}, {"displayName": "medium_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png",  "classificationAnnotations": [{"displayName": "roses"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.bmp",  "classificationAnnotations": [{"displayName": "sunflowers"}, {"displayName": "closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename5.tiff",  "classificationAnnotations": [{"displayName": "tulips"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

CSV

פורמט CSV:

[ML_USE],GCS_FILE_PATH,[LABEL1,LABEL2,...LABELn]
רשימת העמודות
  • ML_USE (אופציונלי) – לצורך פיצול נתונים כשמאמנים מודל. משתמשים ב-TRAINING,‏ TEST או VALIDATION. מידע נוסף על פיצול נתונים ידני זמין במאמר מידע על פיצול נתונים למודלים של AutoML.
  • GCS_FILE_PATH – השדה הזה מכיל את ה-URI של Cloud Storage לתמונה. כתובות URI של Cloud Storage הן תלויות רישיות.
  • LABEL (אופציונלי) – התוויות חייבות להתחיל באות ויכולות להכיל רק אותיות, מספרים וקווים תחתונים.

דוגמה לקובץ CSV – image_classification_multi_label.csv:

test,gs://bucket/filename1.jpeg,daisy,full_shot
training,gs://bucket/filename2.gif,dandelion,medium_shot
gs://bucket/filename3.png
gs://bucket/filename4.bmp,sunflowers,closeup
validation,gs://bucket/filename5.tiff,tulips,extreme_closeup
...