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 |
|
bedroom Dormitorio |
|
cert Documento de certificado energético |
|
commonzones Zonas de paso: recibidor, portal, pasillo, escaleras, etc. |
|
construction Estancia o vivienda en construcción o con elementos de construcción |
|
details Primer plano de objetos |
|
emptyroom Habitación vacía |
|
facade Fachada |
|
kitchen Cocina |
|
leisure Zonas de ocio: gimnasio, parque infantil, etc. |
|
livingroom Sala de estar o salón |
|
map Imagen de un mapa |
|
office Oficina, despacho o estudio |
|
outdoors Exteriores, jardín, etc. |
|
parking Aparcamiento |
|
plan Plano de la vivienda |
|
pool Piscina |
|
storage Despensa, trastero o zona de almacenamiento |
|
terrace Terraza |
|
business Negocios: cafetería, resturante, peluquería, supermercado, etc. |
|
corridor Pasillo |
|
seaviews Vistas al mar |
|
unknown Esta etiqueta se utiliza cuando la imagen no corresponde con ninguna de las otras etiquetas de la lista |
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
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
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
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()
- Asegúrese de sustituir
YOUR.SESSION.TOKEN
por un token de sesión válido - Asegúrese de sustituir
ACTIVE_CLIENT_KEY
por un client-key válido - 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());
}
}
- Asegúrese de sustituir
YOUR.SESSION.TOKEN
por un token de sesión válido - Asegúrese de sustituir
ACTIVE_CLIENT_KEY
por un client-key válido - 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);
?>
- Asegúrese de sustituir
YOUR.SESSION.TOKEN
por un token de sesión válido - Asegúrese de sustituir
ACTIVE_CLIENT_KEY
por un client-key válido - Establezca en image-url la URL a la imagen que desee etiquetar