Introducción a las APIs de reconocimiento en la nube
Api completa
- Crear imagen objetivo
- Lista de imágenes objetivo en galería
- Obtener una imagen objetivo individual
- Calificación de dificultad de reconocibilidad de imagen
- Imágenes objetivo similares existentes
- Eliminar imagen objetivo
- Modificar atributos de imagen objetivo
- Búsqueda por imagen
- Comprobación de estado
Protocolo de interfaz REST API y mecanismo de autenticación
CRS API sigue el estándar de transmisión HTTP REST.
Http Header
Authorization:
Parámetros de solicitud Http, de dos tipos:
Parámetros comunes (incluyen estos, diferentes combinaciones con diferentes métodos de autenticación):
- appId
- timestamp (Long entero largo: milisegundos transcurridos desde el 1 de enero de 1970 00:00:00 UTC)
- apiKey
- signature (firma de solicitud, opción alternativa a autenticación por token)
Parámetros CRS API: parámetros propios de la API
La documentación de la API no describe los parámetros comunes de autenticación
Autenticación con API Key
Hay dos métodos de autenticación:
Autenticación basada en Token
El encabezado Http Authorization contiene el Token, los parámetros comunes incluyen:
- appId
Autenticación por firma
No se usa el encabezado Http Authorization.
Los parámetros comunes contienen la información de firma signature. Todos los parámetros se incluyen en el cálculo de la firma (excepto imágenes).
- appId
- timestamp
- apiKey
- signature
Para el algoritmo detallado y código del cálculo de firma, consultar Método de firma API Key.
Ejemplos de uso y análisis de atributos
Ejemplo de uso de API
Este ejemplo muestra la creación de una imagen objetivo, ayudando a comprender el proceso de solicitud CRS API, la estructura de atributos de la imagen objetivo, y la entrada/salida de la interfaz.
En producción se requieren más validaciones antes de crear imágenes objetivo. Consultar mejores prácticas para crear una nueva imagen objetivo.
Ejemplo de solicitud
Añadir un archivo de imagen objetivo test-target.jpg. Al crear, el archivo debe codificarse en base64.
La documentación de la API detalla los parámetros. Ver API —— crear imagen objetivo.
POST /targets HTTP/1.1
Host:
Date: Mon, 1 Jan 2018 00:00:00 GMT
Content-Type: application/json
{
"image":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgM...",
"active":"1",
"name":"easyar",
"size":"5",
"meta":"496fbbabc2b38ecs3460a...",
"type":"ImageTarget",
"timestamp": 1514736000000,
"apiKey": "8b485c648c3056e79c2a85ee9b51f9dc",
"appId": "C:CN1:f9f903c36da8bd64d71d491077bba...",
"signature": "89985e2420899196db5bdf16b3c2ed0922c0c221"
}
Ejemplo de respuesta
HTTP/1.1 200 OK
Content-Type: application/json
{
"statusCode": 0,
"result": {
"targetId":"e61db301-e80f-4025-b822-9a00eb48d8d2",
"trackingImage":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgM...",
"name": "easyar",
"size": "5",
"meta": "496fbbabc2b38ecs3460a...",
"type": "ImageTarget",
"modified":1514735000000
"active":"1",
"trackableRate": 0,
"detectableRate": 0,
“detectableDistinctiveness”:0,
"detectableFeatureCount": 0,
"trackableDistinctiveness": 0,
"trackableFeatureCount": 0,
"trackableFeatureDistribution": 0,
"trackablePatchContrast": 0,
"trackablePatchAmbiguity": 0
},
"timestamp": 1514736000000
}
Formato de respuesta
Todas las respuestas siguen un formato unificado. Ejemplo:
{
"statusCode": 119,
"msg": "Parameter has errors",
"date": "2022-06-15T09:56:30.000Z",
"result": //solo existe result cuando statusCode es 0, si hay error este campo está vacío
}
Como muestra el ejemplo anterior, esta es la estructura detallada de una imagen objetivo. Incluye estos atributos:
| Atributo | Descripción |
|---|---|
| targetId | ID único de la imagen objetivo |
| trackingImage | Imagen en escala de grises procesada, codificada en base64, para seguimiento en dispositivo |
| name | Nombre de la imagen objetivo |
| size | Tamaño físico utilizado para superponer contenido virtual |
| meta | Datos asociados por el usuario (texto, URL o archivo), codificado en base64 |
| type | "ImageTarget" |
| active | Solo las imágenes activas son reconocibles |
| trackableRate | Calificación de dificultad de seguimiento (menor es mejor) |
| detectableRate | Calificación compuesta de dificultad de reconocimiento (menor es mejor) |
| detectableDistinctiveness | Calificación de dificultad de distintividad en reconocimiento (menor es mejor) |
| detectableFeatureCount | Calificación de dificultad por características en reconocimiento (menor es mejor) |
| trackableDistinctiveness | Calificación de dificultad de distintividad en seguimiento (menor es mejor) |
| trackableFeatureCount | Calificación de dificultad por características en seguimiento (menor es mejor) |
| trackableFeatureDistribution | Calificación de dificultad por distribución de características en seguimiento (menor es mejor) |
Códigos de error
Explicación de códigos de error de APIs de reconocimiento en la nube