Saltar a contenido

Etiqueta

PhotoTag es otro servicio de PhotoILike que permite etiquetar las imágenes en función de la estancia que representan. Actualmente, PhotoTag puede clasificar las imágenes entre 23 etiquetas diferentes.

Las estancias que detecta son las siguientes

Listado de etiquetas
Etiqueta Ejemplo
bathroom
Baño o aseo
Bathroom
bedroom
Dormitorio
Bedroom
cert
Documento de certificado energético
Cert
commonzones
Zonas de paso:
recibidor, portal,
pasillo, escaleras, etc.
CommonZones
construction
Estancia o vivienda en construcción
o con elementos de construcción
Construction
details
Primer plano de objetos
Detail
emptyroom
Habitación vacía
Empty room
facade
Fachada
Facade
kitchen
Cocina
Kitchen
leisure
Zonas de ocio:
gimnasio, parque
infantil, etc.
Leisure
livingroom
Sala de estar o salón
Living room
map
Imagen de un mapa
Map
office
Oficina, despacho
o estudio
Office
outdoors
Exteriores, jardín, etc.
Outdoors
parking
Aparcamiento
Parking
plan
Plano de la vivienda
Plan
pool
Piscina
Pool
storage
Despensa, trastero o
zona de almacenamiento
Storage
terrace
Terraza
Terrace
business
Negocios: cafetería,
resturante,
peluquería,
supermercado, etc.
Business
corridor
Pasillo
Corridor
seaviews
Vistas al mar
SeaViews
unknown
Esta etiqueta se utiliza cuando
la imagen no corresponde con
ninguna de las otras etiquetas
de la lista
Cat

Petición

POST https://api.photoilike.com/v2.0/label

Cabeceras

Campos

Clave Valor
Authorization string
Requerido
Token de sesión precedido por la palabra Bearer.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON

{
    "client-key": string,
    "image-url": string,
    "image-base64": string,
    "ext": string
}

Campos

Parámetro Información
client-key string
Requerido
Client-key del usuario final que solicita la etiqueta de la imagen.
image-url string
Requerido1
URL que identifica desde donde se puede obtener la imagen a procesar.
La imagen ha de poder obtenerse mediante una petición GET a la URL indicada.
image-base64 string
Requerido1
Codificación en base64 de la imagen que se desea procesar.
ext string
Requerido2
Extensión del archivo a usar. Los valores permitidos son: png, jpg, jpeg, webp, heic, avif.

Warning

1 Cada petición solo procesa una imagen, lo que implica que los campos image-url e image-base64 son disjuntos, es decir, se ha de usar uno u el otro, pero nunca los dos a la vez.
2 Si se usa image-base64 se ha de pasar el parámetro ext.

Respuesta de la solicitud

En caso de éxito, el código de estado HTTP en el encabezado de la respuesta es 200 OK y el cuerpo de la respuesta contiene la predicción del tipo de estancia a la que pertenece la imagen. La predicción es un array de elementos, donde cada elemento indica la etiqueta predicha y la precisión de la clasificación (valor entre 0 y 1).

Representación JSON

{
    "id": string,
    "predictions": [
        {
            "label": string,
            "confidence": float
        },
        ...
    ] 
}

Campos

Parámetro Información
id string
Identificador del trabajo que procesó la petición para obtener la etiqueta de la imagen.
predictions List
Array de pares label-confidence.
predictions[item].label string
Indica la etiqueta que la predicción obtiene para la imagen dada.
predictions[item].confidence float
Precisión de la etiqueta que clasificó el servicio (valor entre 0 y 1).

Ejemplo de petición

curl --request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer {YOUR.SESSION.TOKEN}" \
--data '{"client-key": "{ACTIVE_CLIENT_KEY}", "image-url": "{https://example.org/photo.jpg}"}' \
https://api.photoilike.com/v2.0/label 
import requests

header = {
    # Add your token session (1)
    'Authorization': 'Bearer YOUR.SESSION.TOKEN'
}

payload = {
    # Add an active client key (2)
    'client-key': 'ACTIVE_CLIENT_KEY',
    # Add the image url you want to label (3)
    'image-url': 'https://example.org/photo.jpg'
}

endpoint = 'https://api.photoilike.com/v2.0/label'

# Make the request
r = requests.post(endpoint, headers=header, json=payload)

# Response in json format
response = r.json()
  1. Asegúrese de sustituir YOUR.SESSION.TOKEN por un token de sesión válido
  2. Asegúrese de sustituir ACTIVE_CLIENT_KEY por un client-key válido
  3. Establezca en image-url la URL a la imagen que desee etiquetar
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

import org.json.JSONObject;

public class Label {

    public static void main(String[] args) throws Exception {
        // add your session token (1)
        String bearerToken = String.format("Bearer %s", "YOUR.SESSION.TOKEN");

        JSONObject payload = new JSONObject();
        // add an active client key (2)
        payload.put("client-key", "ACTIVE_CLIENT_KEY");
        // add the image url you want to label (3)
        payload.put("image-url", "https://example.org/photo.jpg");


        String endpoint = "https://api.devel.photoilike.com/v2.0/label";

        // build the request
        HttpURLConnection connection = (HttpURLConnection) new URL(endpoint).openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Authorization", bearerToken);
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setDoOutput(true);

        OutputStream os = connection.getOutputStream();
        byte[] input = payload.toString().getBytes(StandardCharsets.UTF_8);
        os.write(input, 0, input.length);

        // make the request
        BufferedReader br = new BufferedReader(
                new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8)
        );
        StringBuilder response = new StringBuilder();

        for (String responseLine = null; (responseLine = br.readLine()) != null; response.append(responseLine.trim()))
            ;

        // Response in json format
        JSONObject json = new JSONObject(response.toString());
    }

}
  1. Asegúrese de sustituir YOUR.SESSION.TOKEN por un token de sesión válido
  2. Asegúrese de sustituir ACTIVE_CLIENT_KEY por un client-key válido
  3. Establezca en image-url la URL a la imagen que desee etiquetar
<?php

  // Add your token session (1)
  $headers = array(
    'Content-Type:application/json',
    'Authorization: Bearer YOUR.SESSION.TOKEN'
  );

  // Add an active client key (2)
  // Add the image url you want to label (3)
  $payload = json_encode(array(
    'client-key' => 'ACTIVE_CLIENT_KEY',
    'image-url' => 'https://example.org/photo.jpg'
  ));

  $endpoint = "https://api.photoilike.com/v2.0/label";

  $ch = curl_init($endpoint);
  curl_setopt($ch,  CURLOPT_POSTFIELDS, $payload);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  // Make the request
  $result = curl_exec($ch);

  curl_close($ch);

  // Response in json format
  $response = json_decode($result);
 ?>
  1. Asegúrese de sustituir YOUR.SESSION.TOKEN por un token de sesión válido
  2. Asegúrese de sustituir ACTIVE_CLIENT_KEY por un client-key válido
  3. Establezca en image-url la URL a la imagen que desee etiquetar