La API Vision Warehouse te permite gestionar recursos de Vision Warehouse mediante la línea de comandos.
Un almacén conectado (corpus) en una aplicación implementada que ingiere datos tiene uno o varios objetos multimedia (por ejemplo, recursos de vídeo). Estos objetos multimedia (recursos asset) contienen metadatos y anotaciones de recursos (annotations).
En función de los modelos utilizados en los objetos multimedia, estas anotaciones pueden
consistir en distintos tipos de información, como etiquetas, cuadros delimitadores y
marcas de tiempo.
Usa los siguientes comandos para gestionar estas anotaciones.
Hay dos tipos de anotaciones:
- Anotación a nivel de recurso: anotación que se aplica a todo el recurso.
Por ejemplo:
camera-location. - Anotación a nivel de partición: anotación que solo se aplica a una parte del recurso. Para obtener información sobre las anotaciones a nivel de partición, debe especificar una partición temporal (hora de inicio y hora de finalización) para el recurso de vídeo de streaming o una partición temporal relativa (desplazamiento de inicio o desplazamiento de finalización) para el recurso de vídeo por lotes.
Antes de crear una anotación, debes crear un esquema de datos correspondiente con la misma clave para indicar el tipo de datos del valor de la anotación. Si necesitas cambiar el tipo de valor de una clave específica, debes eliminar todas las anotaciones que usen esa clave. Después de eliminar estas anotaciones, puedes actualizar el esquema de datos correspondiente.
Crear una anotación de recurso de almacén
Debes completar los siguientes pasos antes de crear una anotación para un recurso:
- Crea un recurso
asseten un almacén. - Crea un recurso
dataSchemacon la misma clave para indicar el tipo de datos del valorannotation.
Un recurso annotation puede tener opcionalmente una partición temporal asociada.
Por ejemplo, si una anotación se aplica a todo el recurso, puede omitir cualquier partición temporal asociada a él. Del mismo modo, si una anotación solo se aplica a una parte específica de un recurso de vídeo, puede indicar el intervalo de tiempo del recurso al crear el recurso annotation.
Crear una anotación sin partición temporal
Si una anotación se aplica a todo un recurso de vídeo, no tienes que proporcionar una partición temporal para ella. Usa el siguiente ejemplo para crear un recurso annotation para un recurso completo (no se ha especificado ningún periodo de tiempo del vídeo).
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- REGIONALIZED_ENDPOINT: el endpoint puede incluir un prefijo que coincida con
LOCATION_ID, comoeurope-west4-. Consulta más información sobre los puntos finales regionalizados. - PROJECT_NUMBER: tu Google Cloud número de proyecto.
- LOCATION_ID: la región en la que usas Vertex AI Vision. Por ejemplo:
us-central1,europe-west4. Consulta las regiones disponibles. - CORPUS_ID: el ID del corpus de destino.
- ASSET_ID: el ID del recurso de destino.
- ANNOTATION_ID: (opcional) valor proporcionado por el usuario para el ID de la anotación. En esta solicitud, el valor se añade a la URL de la solicitud con el siguiente formato:
- https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets/ASSET_ID/annotations?annotation_id=ANNOTATION_ID
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations
Cuerpo JSON de la solicitud:
{
"user_specified_annotation":{
"key": "camera-location",
"value": {
"str_value": "Sunnyvale"
}
}
}
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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
Deberías recibir una respuesta JSON similar a la siguiente:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
"userSpecifiedAnnotation": {
"key": "camera-location",
"value": {
"strValue": "Sunnyvale"
}
}
}
Crear una anotación con una partición temporal
Si una anotación solo se aplica a una parte de un recurso de vídeo en streaming, puedes proporcionar un intervalo de tiempo para la parte del vídeo de destino. Usa el siguiente ejemplo para crear un recurso annotation para un periodo específico de un recurso de vídeo mediante una partición temporal.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- REGIONALIZED_ENDPOINT: el endpoint puede incluir un prefijo que coincida con
LOCATION_ID, comoeurope-west4-. Consulta más información sobre los puntos finales regionalizados. - PROJECT_NUMBER: tu Google Cloud número de proyecto.
- LOCATION_ID: la región en la que usas Vertex AI Vision. Por ejemplo:
us-central1,europe-west4. Consulta las regiones disponibles. - CORPUS_ID: el ID del corpus de destino.
- ASSET_ID: el ID del recurso de destino.
- ANNOTATION_ID: (opcional) valor proporcionado por el usuario para el ID de la anotación. En esta solicitud, el valor se añade a la URL de la solicitud con el siguiente formato:
- https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets/ASSET_ID/annotations?annotation_id=ANNOTATION_ID
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations
Cuerpo JSON de la solicitud:
{
"user_specified_annotation": {
"key": "object-detected",
"value": {
"str_value": "cat"
},
"partition": {
"temporal_partition": {
"start_time": {
"seconds": "1630464728"
},
"end_time": {
"seconds": "1630464729"
}
}
}
}
}
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `