יצירת הערה על נכס במחסן

אובייקטים של מדיה (משאבי asset) במחסן נתונים (corpus) מכילים מטא-נתונים ומשאבי annotation. משאבי annotation האלה מייצגים מיפוי של תוכן ב-asset לפי זוגות של מפתח וערך.

יצירת הערה על נכס במחסן

לפני שיוצרים הערה לנכס, צריך לבצע את השלבים הבאים:

  • יצירת משאב asset במחסן נתונים
  • יוצרים dataSchema עם אותו מפתח כדי לציין את סוג הנתונים של הערך annotation

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

יצירת הערה ללא חלוקה זמנית

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

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • REGIONALIZED_ENDPOINT: נקודת הקצה עשויה לכלול תחילית שתואמת ל-LOCATION_ID, כמו europe-west4-. מידע נוסף על נקודות קצה אזוריות
  • PROJECT_NUMBER: מספר הפרויקט ב- Google Cloud.
  • LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI Vision. לדוגמה: us-central1, ‏ europe-west4. אזורים זמינים
  • CORPUS_ID: המזהה של מאגר הידע היעד.
  • ASSET_ID: המזהה של נכס היעד.
  • ANNOTATION_ID: (אופציונלי) ערך שסופק על ידי המשתמש למזהה ההערה. בבקשה הזו, הערך מתווסף לכתובת ה-URL של הבקשה בפורמט:
    • https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets/ASSET_ID/annotations?annotation_id=ANNOTATION_ID

ה-method של ה-HTTP וכתובת ה-URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations

גוף בקשת JSON:

{
  "user_specified_annotation":{
    "key": "camera-location",
    "value": {
      "str_value": "Sunnyvale"
    }
  }
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
  "userSpecifiedAnnotation": {
    "key": "camera-location",
    "value": {
      "strValue": "Sunnyvale"
    }
  }
}

יצירת הערה עם חלוקה זמנית

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

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • REGIONALIZED_ENDPOINT: נקודת הקצה עשויה לכלול תחילית שתואמת ל-LOCATION_ID, כמו europe-west4-. מידע נוסף על נקודות קצה אזוריות
  • PROJECT_NUMBER: מספר הפרויקט ב- Google Cloud.
  • LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI Vision. לדוגמה: us-central1, ‏ europe-west4. אזורים זמינים
  • CORPUS_ID: המזהה של מאגר הידע היעד.
  • ASSET_ID: המזהה של נכס היעד.
  • ANNOTATION_ID: (אופציונלי) ערך שסופק על ידי המשתמש למזהה ההערה. בבקשה הזו, הערך מתווסף לכתובת ה-URL של הבקשה בפורמט:
    • https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets/ASSET_ID/annotations?annotation_id=ANNOTATION_ID

ה-method של ה-HTTP וכתובת ה-URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations

גוף בקשת JSON:

{
  "user_specified_annotation": {
    "key": "object-detected",
    "value": {
      "str_value": "cat"
    },
    "partition": {
      "temporal_partition": {
        "start_time": {
          "seconds": "1630464728"
        },
        "end_time": {
          "seconds": "1630464729"
        }
      }
    }
  }
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
  "userSpecifiedAnnotation": {
    "key": "object-detected",
    "value": {
      "strValue": "cat"
    },
    "partition": {
      "temporalPartition": {
        "startTime": "2022-09-14T20:33:09Z",
        "endTime": "2022-09-14T20:33:39Z"
      }
    }
  }
}

עדכון הערה (ללא חלוקה זמנית)

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID

גוף בקשת JSON:

{
 "user_specified_annotation":{
    "key": "camera-location",
    "value": {
      "str_value": "UPDATED_FIELD_VALUE"
    }
  }
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
  "userSpecifiedAnnotation": {
    "key": "camera-location",
    "value": {
      "strValue": "UPDATED_FIELD_VALUE"
    }
  }
}