Buscar objetivo de reconocimiento| POST /v2/search
Buscar objetivo en imágenes, interfaz de reconocimiento de búsqueda por imagen.
Acción
POST /v2/search
Autenticación
Cabecera HTTP
Content-Type : multipart/form-data
Authorization (solo cuando se utiliza autenticación por token de API Key)
Parámetros de solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| image | Multipart | Sí | Cadena codificada en base64 del contenido de la imagen, compatible con formatos JPG y PNG. |
| notracking | String | No | "false" indica que se devuelve la imagen de seguimiento trackingImage. "true" indica que solo se devuelve la propiedad targetId detectada, sin la imagen de seguimiento. Se recomienda incluir para WebAR para reducir la latencia de solicitud. |
Ejemplo de solicitud con autenticación por token
curl -X POST -H "Authorization:xxx" --form "image=@trackingImage.jpg;type=image/jpg" --form appId=YOUR-APPID
https://<your-domain>-cn1.crs.easyar.com:8443/v2/search
Ejemplo de solicitud con autenticación por firma
curl -X POST --form "image=@trackingImage;type=image/jpg"
--form apiKey=YOUR-APIKEY --form appId=YOUR-APPID
--form timestamp=1514736000000
--form signature=xxx
https://<your-domain>-cn1.crs.easyar.com:8443/v2/search
Importante
- Debe utilizar Client-end-URL como punto de entrada de reconocimiento, HTTPS utiliza puerto 8443
- Configure la cabecera HTTP Connection: Keep-Alive para optimizar la sobrecarga de conexiones repetidas
Campos de respuesta
| Campo | Descripción |
|---|---|
| statusCode | Código de estado 0 indica autenticación correcta, más referencias en Códigos de estado |
| result | Mensaje de error o información del objetivo |
| timestamp | Hora del servidor al momento de la respuesta. Usa formato de marca de tiempo Unix en milisegundos |
| result.targetId | ID único del objetivo |
| result.trackingImage | Cadena codificada en base64 de la imagen de seguimiento |
| result.name | Nombre del objetivo |
| result.size | Ancho del objetivo (en cm). La altura se calculará automáticamente según la imagen cargada. El tamaño del objetivo corresponde al tamaño del contenido virtual superpuesto |
| result.meta | Información adicional codificada en base64, por ejemplo, cadena JSON codificada |
| result.type | Fijo como ImageTarget |
| result.active | "1" activo, "0" inactivo |
Códigos de respuesta principales
| Respuesta | Código HTTP | Estado | Resultado |
|---|---|---|---|
| OK | 200 | 0 | result: { imageBody } |
| NO_RESULT | 404 | 17 | result: { message: "No result: there is no matching." } |
| NO_TARGET | 500 | 18 | result: { message: "Target not found: there is a matching but no target, please report this issue: IMAGE-UUID" } |
| TIMEOUT | 408 | 19 | result: { message: "Request timeout." } |
| OUT_OF_LIMIT | 402 | 21 | result: { message: "You have exceeded the limit of daily scanning." } |
| OUT_OF_QPS | 200 | 21 | result: { message: "Exceed your QPS limitation." } |
| RPC_ERROR | 500 | 20 | result: { message: "Error retrieving results." } |
| OTHER_ERROR | 501 | 30 | result: { message: "Other error occur: details" } |
Códigos de error
Ver Lista completa de códigos de estado y error
Ejemplo de solicitud
POST /search/ HTTP/1.1
Host:
Date: Mon, 1 Jan 2018 00:00:00 GMT
Content-Type: application/json
{
"image":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgM...",
"timestamp": 1514736000000,
"appKey": "test_app_key",
"signature": "89985e2420899196db5bdf16b3c2ed0922c0c221"
}
Ejemplo de respuesta
- Si se detecta una coincidencia, la estructura de respuesta es:
HTTP/1.1 200 OK
Content-Type: application/json
{
"statusCode": 0,
"result": {
"target": {
"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
}
- Si no hay objetivos coincidentes:
HTTP/1.1 404 NOT FOUND
Content-Type: application/json
{
"statusCode": 17,
"result": {
"message": "No result: there is no matching."
}
}