Farb-Tagging
Der Farb-Tagging-Service kann bei der Bereitstellung eines Bildes ein Histogramm der Pixelfarben berechnen und diese nach dominanten Farben in Buckets sortieren. Die Farben in den Bildpixeln werden in 40 vorherrschende Farben zusammengefasst, die für das Farbspektrum repräsentativ sind. Aus diesen 40 Farben wird dann ein Histogramm der Farbwerte berechnet. Der Service kann in zwei Varianten angeboten werden:
Farb-Tagging (Vollbild)
Diese Methode extrahiert ein Farbhistogramm über das gesamte Bild.
Farb-Tagging (mit Maske)
Diese Methode verwendet einen auf Deep Learning basierenden Vordergrundextraktor, um Objekte im Vordergrund zu identifizieren. Nach dem Extrahieren der Vordergrundobjekte wird ein Histogramm über den dominanten Farben für den Vordergrund und den Hintergrund zusammen mit dem gesamten Bild berechnet.
Tonabnahme
Zusätzlich zu den oben genannten Varianten können Sie den Service so konfigurieren, dass ein Histogramm von Tönen für Folgendes abgerufen wird:
- Das Gesamtbild (bei Verwendung der vollständigen Bildvariante)
- Das Gesamtbild sowie die Vorder- und Hintergrundbereiche (bei Verwendung der Variante mit Maskierung)
Die folgende Abbildung wurde in dem in diesem Dokument gezeigten Beispiel verwendet:
API-Format
POST /services/v2/predict
Anfrage - vollständige Bildvariante
Die folgende Beispielanfrage verwendet die Full-Image-Methode für das Farb-Tagging und extrahiert Farben aus einem Bild basierend auf den in der Payload bereitgestellten Eingabeparametern. Weitere Informationen zu den angezeigten Eingabeparametern finden Sie in der Tabelle unter der Beispiel-Payload .
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'
Antwort - vollständige Bildvariante
Eine erfolgreiche Antwort gibt die Details der extrahierten Farben zurück. Jede Farbe wird durch einen feature_value dargestellt, der die folgenden Informationen enthält:
- Ein Farbname
- Der Prozentsatz, um den diese Farbe in Bezug auf das Bild angezeigt wird
- Der RGB-Wert der Farbe
"White":{"coverage":0.5834,"rgb":{"red":254,"green":254,"blue":243}}bedeutet, dass die gefundene Farbe Weiß ist, was in 58,34 % des Bildes zu finden ist, und einen mittleren RGB-Wert von 254, 254, 243 hat.
{
"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
}
}
}
}
}]
Beachten Sie, dass für das Ergebnis hier Farbe aus dem gesamten Bildbereich extrahiert wurde.
Anfrage - maskierte Bildvariante
Die folgende Beispielanfrage verwendet die Maskierungsmethode für Farb-Tagging. Dies wird aktiviert, indem in der Anfrage der enable_mask auf true gesetzt wird.
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 Parameter in der obigen Anfrage ebenfalls auf true gesetzt. Auf diese Weise können wir ein Tonverteilungs-Histogramm über warme, neutrale und kalte Töne in den gesamten, Vordergrund- und Hintergrundbereichen des Bildes abrufen.Antwort - maskierte Bildvariante
{
"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
}
}
}]
Zusätzlich zu den Farben aus dem Gesamtbild können Sie jetzt auch Farben aus den Vordergrund- und Hintergrundbereichen sehen. Da der Tonabruf für jede der oben genannten Regionen aktiviert ist, können Sie auch das Histogramm eines Tons abrufen.
Eingabeparameter
documentstop_nmin_coverageresize_imageFalse setzen.enable_maskretrieve_toneDokumentobjekt
repo:pathsensei:repoTypesensei:multipart_field_namedc:format„image/jpeg“,
„image/png“,
„image/tiff“