Table of Contents

Introducción a las APIs de reconocimiento en la nube

Api completa

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

Temas relacionados