Etiquetado de color
El servicio de etiquetado de colores, cuando se proporciona una imagen, puede calcular un histograma de colores de píxeles y ordenarlos por colores dominantes en bloques. Los colores de los píxeles de la imagen se agrupan en 40 colores predominantes que son representativos del espectro de colores. A continuación, se calcula un histograma de los valores de color entre esos 40 colores. El servicio tiene dos variantes:
Etiquetado de color (imagen completa)
Este método extrae un histograma de colores en toda la imagen.
Etiquetado de color (con máscara)
Este método utiliza un extractor de primer plano basado en aprendizaje profundo para identificar objetos en primer plano. Una vez extraídos los objetos de primer plano, se calcula un histograma sobre los colores dominantes para las regiones de primer plano y de fondo, junto con toda la imagen.
Extracción de tonos
Además de las variantes mencionadas anteriormente, puede configurar el servicio para recuperar un histograma de tonos para:
- La imagen general (cuando se utiliza la variante con imagen completa)
- La imagen general y las regiones de primer plano y fondo (cuando se utiliza la variante con enmascaramiento)
La siguiente imagen se utilizó en el ejemplo mostrado en este documento:
Formato de API
POST /services/v2/predict
Solicitud - variante de imagen completa
La siguiente solicitud de ejemplo utiliza el método de imagen completa para el etiquetado de colores y extrae colores de una imagen en función de los parámetros de entrada proporcionados en la carga útil. Consulte la tabla debajo de la carga útil de ejemplo para obtener más información sobre los parámetros de entrada que se muestran.
curl -w'\n' -i -X POST https://sensei.adobe.io/services/v2/predict \
-H 'Prefer: respond-async, wait=59' \
-H "x-api-key: $API_KEY" \
-H "content-type: multipart/form-data" \
-H "authorization: Bearer $API_TOKEN" \
-F 'contentAnalyzerRequests={
"sensei:name": "Feature:autocrop:Service-af865523d46547e2b17fdf9b38e32a72",
"sensei:invocation_mode": "synchronous",
"sensei:invocation_batch": false,
"sensei:engines": [
{
"sensei:execution_info": {
"sensei:engine": "Feature:autocrop:Service-af865523d46547e2b17fdf9b38e32a72"
},
"sensei:inputs": {
"documents": [{
"sensei:multipart_field_name": "infile_1",
"dc:format": "image/jpg"
}]
},
"sensei:params": {
"top_n": 5,
"min_coverage": 0.005
},
"sensei:outputs":{
"result" : {
"sensei:multipart_field_name" : "result",
"dc:format": "application/json"
}
}
}
]
}' \
-F 'infile_1=@1431RDMJANELLERAWJACKE_2.jpg'
Respuesta: variante de imagen completa
Una respuesta correcta devuelve los detalles de los colores extraídos. Cada color está representado por una clave feature_value
, que contiene la siguiente información:
- Un nombre de color
- El porcentaje en que aparece este color en relación con la imagen
- El valor RGB del color
"White":{"coverage":0.5834,"rgb":{"red":254,"green":254,"blue":243}}
significa que el color encontrado es blanco, que se encuentra en el 58,34% de la imagen, y tiene un valor de RGB promedio de 254, 254, 243.
{
"statuses": [{
"sensei:engine": "Feature:autocrop:Service-af865523d46547e2b17fdf9b38e32a72",
"invocations": [{
"sensei:outputs": {
"result": {
"sensei:multipart_field_name": "result",
"dc:format": "application/json"
}
},
"message": null,
"status": "200"
}]
}],
"request_id": "bfpzaJxKDxtgxpjUj5QDrN1jasjUw2RM"
}
[{
"overall": {
"colors": {
"White": {
"coverage": 0.5834,
"rgb": {
"red": 254,
"green": 254,
"blue": 243
}
},
"Orange": {
"coverage": 0.254,
"rgb": {
"red": 249,
"green": 165,
"blue": 45
}
},
"Gold": {
"coverage": 0.0817,
"rgb": {
"red": 253,
"green": 188,
"blue": 58
}
},
"Mustard": {
"coverage": 0.0727,
"rgb": {
"red": 253,
"green": 207,
"blue": 84
}
},
"Cream": {
"coverage": 0.0082,
"rgb": {
"red": 253,
"green": 236,
"blue": 174
}
}
}
}
}]
Observe que el resultado aquí tiene un color extraído en la región de imagen "general".
Solicitud - variante de imagen enmascarada
La siguiente solicitud de ejemplo utiliza el método de enmascaramiento para el etiquetado de colores. Esto se habilita al establecer el parámetro enable_mask
en true
en la solicitud.
curl -w'\n' -i -X POST https://sensei.adobe.io/services/v2/predict \
-H 'Prefer: respond-async, wait=59' \
-H "x-api-key: $API_KEY" \
-H "content-type: multipart/form-data" \
-H "authorization: Bearer $API_TOKEN" \
-F 'contentAnalyzerRequests={
"sensei:name": "Feature:autocrop:Service-af865523d46547e2b17fdf9b38e32a72",
"sensei:invocation_mode": "synchronous",
"sensei:invocation_batch": false,
"sensei:engines": [
{
"sensei:execution_info": {
"sensei:engine": "Feature:autocrop:Service-af865523d46547e2b17fdf9b38e32a72"
},
"sensei:inputs": {
"documents": [{
"sensei:multipart_field_name": "infile_1",
"dc:format": "image/jpg"
}]
},
"sensei:params": {
"top_n": 5,
"min_coverage": 0.005,
"enable_mask": true,
"retrieve_tone": true
},
"sensei:outputs":{
"result" : {
"sensei:multipart_field_name" : "result",
"dc:format": "application/json"
}
}
}
]
}' \
-F 'infile_1=@1431RDMJANELLERAWJACKE_2.jpg'
retrieve_tone
también está establecido en true
en la solicitud anterior. Esto nos permite recuperar un histograma de distribución de tonos sobre tonos cálidos, neutros y fríos en las regiones general, frontal y de fondo de la imagen.Respuesta: variante de imagen enmascarada
{
"statuses": [{
"sensei:engine": "Feature:autocrop:Service-af865523d46547e2b17fdf9b38e32a72",
"invocations": [{
"sensei:outputs": {
"result": {
"sensei:multipart_field_name": "result",
"dc:format": "application/json"
}
},
"message": null,
"status": "200"
}]
}],
"request_id": "gpeCyJsrJvOWd94WwZOyPBPrKi2BQyla"
}
[{
"overall": {
"colors": {
"White": {
"coverage": 0.5834,
"rgb": {
"red": 254,
"green": 254,
"blue": 243
}
},
"Orange": {
"coverage": 0.254,
"rgb": {
"red": 249,
"green": 165,
"blue": 45
}
},
"Gold": {
"coverage": 0.0817,
"rgb": {
"red": 253,
"green": 188,
"blue": 58
}
},
"Mustard": {
"coverage": 0.0727,
"rgb": {
"red": 253,
"green": 207,
"blue": 84
}
},
"Cream": {
"coverage": 0.0082,
"rgb": {
"red": 253,
"green": 236,
"blue": 174
}
}
},
"tones": {
"warm": 0.4084,
"neutral": 0.5916,
"cool": 0
}
},
"foreground": {
"colors": {
"Orange": {
"coverage": 0.6022,
"rgb": {
"red": 249,
"green": 165,
"blue": 45
}
},
"Gold": {
"coverage": 0.1935,
"rgb": {
"red": 253,
"green": 188,
"blue": 58
}
},
"Mustard": {
"coverage": 0.1722,
"rgb": {
"red": 253,
"green": 207,
"blue": 84
}
},
"Cream": {
"coverage": 0.0173,
"rgb": {
"red": 253,
"green": 235,
"blue": 170
}
},
"Yellow": {
"coverage": 0.0148,
"rgb": {
"red": 254,
"green": 229,
"blue": 117
}
}
},
"tones": {
"warm": 0.9827,
"neutral": 0.0173,
"cool": 0
}
},
"background": {
"colors": {
"White": {
"coverage": 0.9923,
"rgb": {
"red": 254,
"green": 254,
"blue": 243
}
},
"Dark_Brown": {
"coverage": 0.0077,
"rgb": {
"red": 83,
"green": 68,
"blue": 57
}
}
},
"tones": {
"warm": 0,
"neutral": 1.0,
"cool": 0
}
}
}]
Además de los colores de la imagen general, ahora también puede ver colores de las regiones de primer plano y de fondo. Dado que la recuperación de tonos está habilitada para cada una de las regiones anteriores, también puede recuperar el histograma de un tono.
Parámetros de entrada
documents
top_n
min_coverage
resize_image
False
.enable_mask
retrieve_tone
Objeto de documento
repo:path
sensei:repoType
sensei:multipart_field_name
dc:format
"image/jpeg",
"image/png",
"image/tiff"