Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Note
Azure AI Search è disponibile tramite il portale di Azure, le API REST e Azure SDK. È inoltre alla base di Foundry IQ, il livello di conoscenza gestito che trasforma il contenuto aziendale in knowledge base riutilizzabili e con riconoscimento delle autorizzazioni per gli agenti nel portale di Microsoft Foundry.
La competenza Analisi Immagini estrae un ricco insieme di caratteristiche visive basate sul contenuto dell'immagine. Ad esempio, puoi generare una didascalia da un'immagine, generare tag o identificare celebrità e luoghi di riferimento. Questo articolo è la documentazione di riferimento per la competenza Analisi delle Immagini . Vedi Estrae testo e informazioni dalle immagini per le istruzioni d'uso.
Questa competenza utilizza i modelli di machine learning forniti da Azure Vision in Foundry Tools. L'analisi delle immagini funziona su immagini che soddisfano i seguenti requisiti:
- L'immagine deve essere presentata in formato JPEG, PNG, GIF o BMP
- Le dimensioni del file dell'immagine devono essere inferiori a 4 megabyte (MB)
- Le dimensioni dell'immagine devono essere superiori a 50 x 50 pixel
Le fonti di dati supportate per OCR e analisi delle immagini sono i blob in Archiviazione BLOB di Azure e Azure Data Lake Storage (ADLS) Gen2, e i contenuti delle immagini in Microsoft OneLake. Le immagini possono essere file autonomi o immagini incorporate in un PDF o altri file.
Questa abilità è implementata utilizzando l'API AI Image Analysis versione 3.2. Se la soluzione richiede la chiamata di una versione più recente dell'API del servizio, ad esempio la versione 4.0, è consigliabile implementare tramite la competenza API Web personalizzata.
Note
Questa competenza è vincolata a Foundry Tools e richiede una risorsa fatturabile per transazioni che superano i 20 documenti per indicizzatore al giorno. L'esecuzione di competenze predefinite viene addebitata al prezzo standard degli strumenti Foundry esistenti.
Inoltre, l'estrazione dell'immagine è fatturabile per Azure AI Search.
@odata.type
Microsoft.Skills.Vision.ImageAnalysisSkill
Parametri della competenza
I parametri fanno distinzione tra maiuscole e minuscole.
| Nome del parametro | Descrzione |
|---|---|
defaultLanguageCode |
Una stringa che indica la lingua da restituire. Il servizio restituisce i risultati di riconoscimento in un linguaggio specificato. Se questo parametro non è specificato, il valore predefinito è "en". I linguaggi supportati includono un sottoinsieme di lingue generalmente disponibili di Azure Vision. Quando un linguaggio viene introdotto con stato di disponibilità generale in Azure Vision, ci sono ritardi previsti prima che vengano completamente integrati in questa competenza. |
visualFeatures |
Un array di stringhe che indicano i tipi di caratteristiche visive da restituire. I tipi validi di caratteristiche visive includono:
defaultLanguageCode. |
details |
Un array di stringhe che indicano quali dettagli specifici del dominio restituire. I tipi validi di caratteristiche visive includono:
|
Input delle competenze
| Nome del campo di input | Descrzione |
|---|---|
image |
Tipo complesso. Attualmente funziona solo con il campo "/document/normalized_images", prodotto dal blob indexer Azure quando imageAction è impostato a un valore diverso da none. |
Output delle competenze
| Nome dell'output | Descrzione |
|---|---|
adult |
Output è un singolo oggetto adulto di tipo complesso, costituito da campi booleani (isAdultContent, isGoryContent, isRacyContent) e punteggi di tipo doppio (adultScore, goreScore, racyScore). |
brands |
L'output è un array di oggetti di marca , dove l'oggetto è un tipo complesso composto da name (stringa) e uno confidence score (doppio). Restituisce inoltre a rectangle con quattro coordinate di riquadro delimitatore (x, y, w, h, in pixel) che indicano la posizione all'interno dell'immagine. Per il rettangolo, x e y sono in alto a sinistra. In basso a sinistra è x, y+h. In alto a destra è x+w, y. In basso a destra è x+w, y+h. |
categories |
Output è un array di oggetti categoria , dove ogni oggetto categoria è un tipo complesso composto da una name (stringa), score (doppio), ed opzionale detail che contiene dettagli di celebrità o punti di riferimento. Vedi la tassonomia delle categorie per l'elenco completo dei nomi delle categorie. Un dettaglio è un tipo complesso annidato. Un dettaglio di celebrità consiste in un nome, un punteggio di fiducia e una casella di ripetizione del volto. Un dettaglio di riferimento consiste in un nome e un punteggio di fiducia. |
description |
Output è un singolo oggetto descrizione di tipo complesso, costituito da liste di tags e caption (un array composto da Text (stringa) e confidence (doppio)). |
faces |
Tipo complesso composto da age, gender, e faceBoundingBox con quattro coordinate di scatola delimitante (in pixel) che indicano la posizione all'interno dell'immagine. Le coordinate sono top, left, width, height. |
objects |
L'output è un array di oggetti di caratteristiche visive. Ogni oggetto è di tipo complesso, composto da object (stringa), confidence (doppio), rectangle (con quattro coordinate di riquadro che indicano la posizione all'interno dell'immagine) e un parent che contiene un nome e una fiducia dell'oggetto . |
tags |
Output è un array di oggetti imageTag , dove un oggetto tag è un tipo complesso composto da name (stringa), hint (stringa) e confidence (doppio). L'aggiunta di un indizio è rara. Viene generato solo se un tag è ambiguo. Ad esempio, un'immagine etichettata come "curling" potrebbe avere un accenno di "sport" per indicare meglio il contenuto. |
Definizione di abilità campione
{
"description": "Extract image analysis.",
"@odata.type": "#Microsoft.Skills.Vision.ImageAnalysisSkill",
"context": "/document/normalized_images/*",
"defaultLanguageCode": "en",
"visualFeatures": [
"adult",
"brands",
"categories",
"description",
"faces",
"objects",
"tags"
],
"inputs": [
{
"name": "image",
"source": "/document/normalized_images/*"
}
],
"outputs": [
{
"name": "adult"
},
{
"name": "brands"
},
{
"name": "categories"
},
{
"name": "description"
},
{
"name": "faces"
},
{
"name": "objects"
},
{
"name": "tags"
}
]
}
Indice di esempio
Per oggetti singoli (come adult e ), puoi strutturarli nell'indice come un description to return Collection(Edm.ComplexType) e adult output per descriptiontutti. Per maggiori informazioni sulla mappatura degli output ai campi indicizzati, vedi Appiattimento delle informazioni da tipi complessi.
{
"fields": [
{
"name": "metadata_storage_name",
"type": "Edm.String",
"key": true,
"searchable": true,
"filterable": false,
"facetable": false,
"sortable": true
},
{
"name": "metadata_storage_path",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"facetable": false,
"sortable": true
},
{
"name": "content",
"type": "Edm.String",
"sortable": false,
"searchable": true,
"filterable": false,
"facetable": false
},
{
"name": "adult",
"type": "Edm.ComplexType",
"fields": [
{
"name": "isAdultContent",
"type": "Edm.Boolean",
"searchable": false,
"filterable": true,
"facetable": true
},
{
"name": "isGoryContent",
"type": "Edm.Boolean",
"searchable": false,
"filterable": true,
"facetable": true
},
{
"name": "isRacyContent",
"type": "Edm.Boolean",
"searchable": false,
"filterable": true,
"facetable": true
},
{
"name": "adultScore",
"type": "Edm.Double",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "goreScore",
"type": "Edm.Double",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "racyScore",
"type": "Edm.Double",
"searchable": false,
"filterable": false,
"facetable": false
}
]
},
{
"name": "brands",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "name",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"facetable": false
},
{
"name": "confidence",
"type": "Edm.Double",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "rectangle",
"type": "Edm.ComplexType",
"fields": [
{
"name": "x",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "y",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "w",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "h",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
}
]
}
]
},
{
"name": "categories",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "name",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"facetable": false
},
{
"name": "score",
"type": "Edm.Double",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "detail",
"type": "Edm.ComplexType",
"fields": [
{
"name": "celebrities",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "name",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"facetable": false
},
{
"name": "faceBoundingBox",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "x",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "y",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
}
]
},
{
"name": "confidence",
"type": "Edm.Double",
"searchable": false,
"filterable": false,
"facetable": false
}
]
},
{
"name": "landmarks",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "name",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"facetable": false
},
{
"name": "confidence",
"type": "Edm.Double",
"searchable": false,
"filterable": false,
"facetable": false
}
]
}
]
}
]
},
{
"name": "description",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "tags",
"type": "Collection(Edm.String)",
"searchable": true,
"filterable": false,
"facetable": false
},
{
"name": "captions",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "text",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"facetable": false
},
{
"name": "confidence",
"type": "Edm.Double",
"searchable": false,
"filterable": false,
"facetable": false
}
]
}
]
},
{
"name": "faces",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "age",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "gender",
"type": "Edm.String",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "faceBoundingBox",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "top",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "left",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "width",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "height",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
}
]
}
]
},
{
"name": "objects",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "object",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"facetable": false
},
{
"name": "confidence",
"type": "Edm.Double",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "rectangle",
"type": "Edm.ComplexType",
"fields": [
{
"name": "x",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "y",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "w",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
},
{
"name": "h",
"type": "Edm.Int32",
"searchable": false,
"filterable": false,
"facetable": false
}
]
},
{
"name": "parent",
"type": "Edm.ComplexType",
"fields": [
{
"name": "object",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"facetable": false
},
{
"name": "confidence",
"type": "Edm.Double",
"searchable": false,
"filterable": false,
"facetable": false
}
]
}
]
},
{
"name": "tags",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "name",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"facetable": false
},
{
"name": "hint",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"facetable": false
},
{
"name": "confidence",
"type": "Edm.Double",
"searchable": false,
"filterable": false,
"facetable": false
}
]
}
]
}
Mappatura del campo di output di esempio
Il campo target può essere un campo complesso o una collezione. La definizione dell'indice specifica qualsiasi sottocampo.
"outputFieldMappings": [
{
"sourceFieldName": "/document/normalized_images/*/adult",
"targetFieldName": "adult"
},
{
"sourceFieldName": "/document/normalized_images/*/brands/*",
"targetFieldName": "brands"
},
{
"sourceFieldName": "/document/normalized_images/*/categories/*",
"targetFieldName": "categories"
},
{
"sourceFieldName": "/document/normalized_images/*/description",
"targetFieldName": "description"
},
{
"sourceFieldName": "/document/normalized_images/*/faces/*",
"targetFieldName": "faces"
},
{
"sourceFieldName": "/document/normalized_images/*/objects/*",
"targetFieldName": "objects"
},
{
"sourceFieldName": "/document/normalized_images/*/tags/*",
"targetFieldName": "tags"
}
Variazione delle mappature del campo di uscita (proprietà annidate)
Puoi definire mappature di campo di output a proprietà di livello inferiore, come solo celebrità o punti di riferimento. In questo caso, assicurati che lo schema dell'indice abbia un campo che contenga ogni dettaglio nello specifico.
"outputFieldMappings": [
{
"sourceFieldName": "/document/normalized_images/*/categories/detail/celebrities/*",
"targetFieldName": "celebrities"
},
{
"sourceFieldName": "/document/normalized_images/*/categories/detail/landmarks/*",
"targetFieldName": "landmarks"
}
Input di esempio
{
"values": [
{
"recordId": "1",
"data": {
"image": {
"data": "BASE64 ENCODED STRING OF A JPEG IMAGE",
"width": 500,
"height": 300,
"originalWidth": 5000,
"originalHeight": 3000,
"rotationFromOriginal": 90,
"contentOffset": 500,
"pageNumber": 2
}
}
}
]
}
Output di esempio
{
"values": [
{
"recordId": "1",
"data": {
"categories": [
{
"name": "abstract_",
"score": 0.00390625
},
{
"name": "people_",
"score": 0.83984375,
"detail": {
"celebrities": [
{
"name": "Satya Nadella",
"faceBoundingBox": [
{
"x": 273,
"y": 309
},
{
"x": 395,
"y": 309
},
{
"x": 395,
"y": 431
},
{
"x": 273,
"y": 431
}
],
"confidence": 0.999028444
}
],
"landmarks": [ ]
}
}
],
"adult": {
"isAdultContent": false,
"isRacyContent": false,
"isGoryContent": false,
"adultScore": 0.0934349000453949,
"racyScore": 0.068613491952419281,
"goreScore": 0.08928389008070282
},
"tags": [
{
"name": "person",
"confidence": 0.98979085683822632
},
{
"name": "man",
"confidence": 0.94493889808654785
},
{
"name": "outdoor",
"confidence": 0.938492476940155
},
{
"name": "window",
"confidence": 0.89513939619064331
}
],
"description": {
"tags": [
"person",
"man",
"outdoor",
"window",
"glasses"
],
"captions": [
{
"text": "Satya Nadella sitting on a bench",
"confidence": 0.48293603002174407
}
]
},
"faces": [
{
"age": 44,
"gender": "Male",
"faceBoundingBox": [
{
"x": 1601,
"y": 395
},
{
"x": 1653,
"y": 395
},
{
"x": 1653,
"y": 447
},
{
"x": 1601,
"y": 447
}
]
}
],
"objects": [
{
"rectangle": {
"x": 25,
"y": 43,
"w": 172,
"h": 140
},
"object": "person",
"confidence": 0.931
}
],
"brands":[
{
"name":"Microsoft",
"confidence": 0.903,
"rectangle":{
"x":20,
"y":97,
"w":62,
"h":52
}
}
]
}
}
]
}
Casi di errore
Nei seguenti casi di errore, nessun elemento viene estratto.
| Codice di errore | Descrzione |
|---|---|
NotSupportedLanguage |
Il linguaggio fornito non è supportato. |
InvalidImageUrl |
L'URL dell'immagine è formattato male o non accessibile. |
InvalidImageFormat |
I dati di input non sono un'immagine valida. |
InvalidImageSize |
L'immagine di input è troppo grande. |
NotSupportedVisualFeature |
Il tipo di caratteristica specificato non è valido. |
NotSupportedImage |
Immagini non supportate, ad esempio, pornografia infantile. |
InvalidDetails |
Modello specifico di dominio non supportato. |
Se ricevi un errore simile a "One or more skills are invalid. Details: Error in skill #<num>: Outputs are not supported by skill: Landmarks", controlla il percorso. Sia le celebrità che i punti di riferimento sono proprietà sotto detail.
"categories":[
{
"name":"building_",
"score":0.97265625,
"detail":{
"landmarks":[
{
"name":"Forbidden City",
"confidence":0.92013400793075562
}
]