אובייקטים של מדיה (משאבי 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
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- 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: המזהה של ההערה שרוצים להוסיף.
ה-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"
}
}
}