Using Impresee object detection services
This document describes how you can integrate Impresee object detection services into your online store. For the time being these services are only available for apparel stores.
Pasos previos
- Obtener un Impresee app
UUID
, el cual es una cadena de 36 caracteres. Este código puede ser generado en nuestro Impresee Console o puedes solicitarnos que creemos uno por ti.
Detecting objects inside images
Consulta
Para buscar debes utilizar el siguiente servicio REST:
https://api.impresee.com/ImpreseeSearch/api/v2/detection/boxes/<your_impresee_application_UUID>
El cuerpo de la consulta es un JSON
:
search_image_base64
: Query image encoded in base64 format.
An example of this JSON can be seen below:
{
"search_image_base64":
"/9j/4AAQSkZJRgABAQAAAwADAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAAB/AAAAMgAAAH8AAAAyAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAAGgAwAEAAAAAQAAAAEAAAAA/+0AOFBob3Rvc2hvcCAzLjAAOEJJTQQEAAAAAAAAOEJJTQQlAAAAAAAQ1B2M2Y8AsgTpgAmY7PhCfv/AABEIAAEAAQMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/3QAEAAH/2gAMAwEAAhEDEQA/AOMooooA/9k="
}
Respuesta
The response of this service is a JSON with the following fields:
impresee_version
: API versionstatus
: Exit status of the detection process. 0 means that there were no errors, while 1 indicates that an error occurred.error_message
: Only present ifstatus = 1
query_url
: URL where the query thumbnail can be found.detection_uid
: Unique id of the process.query_width
: Width of the query thumbnailquery_height
: Height of the query thumbnaildetections
: Array of detected items. Each of the items is aJSON
and includes these fields:rank
: Relevance of the detected item (1 means highest relevance). It is given by score, size and position inside the query.score
: Score of the detection.top
: Position of the top of the object with respect to the top of the query (for example a value of 0.14 means that the object top is located at 14% of the height of the query)left
: Position of the left side the object with respect to the left side the querywidth
: Width of the object with respect to the total width of the queryheight
: Height of the object with respect to the total height of the query
Searching products after detecting items
Consulta
By making use of the previous service, this one doesn’t require that you upload the query image again. It works by using the detection identifier to pick the correct query image. The service can be called by sending a POST
request to the URL:
https://api.impresee.com/ImpreseeSearch/api/v2/search/products/[impresee-app-uuid]
Where [impresee-app-uuid]
is the same from the object detection service. The body of this request is a JSON
with three parameters:
detection_uid
: detection uid obtained from the detection service.box_id
[Optional]: rank of the detection you want to use to search.box
[Optional]: Used when searching an area of the images that was not detected. It is aJSON
with four parameter:top
: A number between 0 and 1 indicating the position of the top of object of the object with respect to the query imageleft
: A number between 0 and 1 indicating the position of the object of left side the object with respect to the query imagewidth
: A number between 0 and 1 indicating the relative width of the object with respect to the query imageheight
: A number between 0 and 1 indicating the relative height of the object with respect to the query image
Note that you must include either the box_id or the box parameters. The box_id parameter has precedence over the box one, this means that we will always try to use box_id FIRST
Respuesta
In this case the resulting JSON
includes all the information from both the detection and searching results:
impresee_version
: API versionstatus
: Exit status of the search process. 0 means that there were no errors, while 1 indicates that an error occurred.error_message
: Empty if status value is 0.query_url
: URL where the query can be found.search_uid
: Unique id of the search.detection_uid
: Unique id of the detection processdetections
: Same structure as described onproducts
: Same structure as described on (how to integrate Impresee Search API v2)text_codes
: Same structure as described on (how to integrate Impresee Search API v2)categories_codes
: Same structure as described on (how to integrate Impresee Search API v2)