Kognitiv skicklighet för bildanalys
Kunskapen Bildanalys extraherar en omfattande uppsättning visuella funktioner baserat på bildinnehållet. Du kan till exempel generera en bildtext från en bild, generera taggar eller identifiera kändisar och landmärken. Den här artikeln är referensdokumentationen för kunskapen för bildanalys . Se Extrahera text och information från bilder för användningsinstruktioner.
Den här färdigheten använder maskininlärningsmodellerna som tillhandahålls av Azure AI Vision i Azure AI-tjänster. Bildanalys fungerar endast på bilder som uppfyller följande krav:
- Bilden måste visas i JPEG-, PNG-, GIF- eller BMP-format
- Filstorleken måste vara mindre än 4 megabyte (MB)
- Bildens dimensioner måste vara större än 50 x 50 bildpunkter
Den här färdigheten implementeras med hjälp av AI Image Analysis API version 3.2. Om din lösning kräver att du anropar en nyare version av tjänst-API:et (till exempel version 4.0) kan du överväga att implementera den anpassade webb-API:ns kunskaper.
Kommentar
Den här kompetensen är bunden till Azure AI-tjänster och kräver en fakturerbar resurs för transaktioner som överstiger 20 dokument per indexerare och dag. Körning av inbyggda kunskaper debiteras enligt det befintliga priset för Betala per användning för Azure AI-tjänster.
Dessutom kan bildextrahering faktureras av Azure AI Search.
@odata.type
Microsoft.Skills.Vision.ImageAnalysisSkill
Kompetensparametrar
Parametrar är skiftlägeskänsliga.
Parameternamn | beskrivning |
---|---|
defaultLanguageCode |
En sträng som anger vilket språk som ska returneras. Tjänsten returnerar igenkänningsresultat på ett angivet språk. Om den här parametern inte anges är standardvärdet "en". Språk som stöds innehåller en delmängd av allmänt tillgängliga språk i Azure AI Vision. När ett språk nyligen introduceras med allmän tillgänglighetsstatus i AI Vision-tjänsten förväntas det dröja innan de är helt integrerade i den här kompetensen. |
visualFeatures |
En matris med strängar som anger vilka typer av visuella funktioner som ska returneras. Giltiga visuella funktionstyper är:
defaultLanguageCode . |
details |
En matris med strängar som anger vilken domänspecifik information som ska returneras. Giltiga visuella funktionstyper är:
|
Kunskapsindata
Indatanamn | beskrivning |
---|---|
image |
Komplex typ. För närvarande fungerar endast med fältet "/document/normalized_images", som skapas av Azure Blob Indexer när imageAction är inställt på ett annat värde än none . |
Kunskapsutdata
Utdatanamn | beskrivning |
---|---|
adult |
Utdata är ett enskilt vuxet objekt av en komplex typ som består av booleska fält (isAdultContent , , isGoryContent isRacyContent ) och dubbla typpoäng (adultScore , goreScore , racyScore ). |
brands |
Utdata är en matris med varumärkesobjekt , där objektet är en komplex typ som består av name (sträng) och en confidence poäng (dubbel). Den returnerar också en rectangle med fyra koordinater för avgränsningsrutor (x , , y w , h , i bildpunkter) som anger placering inuti bilden. För rektangeln x och y längst upp till vänster. Längst ned till vänster är x , y+h . Överst till höger är x+w , y . Längst ned till höger är x+w , y+h . |
categories |
Utdata är en matris med kategoriobjekt , där varje kategoriobjekt är en komplex typ som består av en name (sträng), score (dubbel) och valfri detail som innehåller kändis- eller landmärkesinformation. Se kategoritaxonomi för den fullständiga listan över kategorinamn. En detalj är en kapslad komplex typ. En kändisdetalj består av ett namn, en konfidenspoäng och en ansiktsgränsruta. En landmärkesdetalj består av ett namn och en konfidenspoäng. |
description |
Utdata är ett enskilt beskrivningsobjekt av en komplex typ, som består av listor över tags och caption (en matris som består av Text (sträng) och confidence (dubbel)). |
faces |
Komplex typ som består av age , gender och faceBoundingBox har fyra koordinater för avgränsningsrutor (i bildpunkter) som anger placering inuti bilden. Koordinaterna är top , left , width , height . |
objects |
Utdata är en matris med visuella funktionsobjekt. Varje objekt är en komplex typ som består av object (sträng), confidence (dubbel), rectangle (med fyra koordinater för avgränsningsrutor som anger placering inuti bilden) och en parent som innehåller ett objektnamn och en konfidens . |
tags |
Utdata är en matris med imageTag-objekt , där ett taggobjekt är en komplex typ som består av name (sträng), hint (sträng) och confidence (dubbel). Tillägg av en ledtråd är sällsynt. Den genereras bara om en tagg är tvetydig. En bild som är taggad som "curling" kan till exempel ha en antydan till "sport" för att bättre ange innehållet. |
Exempel på kompetensdefinition
{
"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"
}
]
}
Exempelindex
För enskilda objekt (till exempel adult
och description
) kan du strukturera dem i indexet som en Collection(Edm.ComplexType)
för att returnera adult
och description
mata ut för dem alla. Mer information om hur du mappar utdata till indexfält finns i Platta ut information från komplexa typer.
{
"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
}
]
}
]
}
Exempel på mappning av utdatafält
Målfältet kan vara ett komplext fält eller en komplex samling. Indexdefinitionen anger eventuella underfält.
"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"
}
Variation i utdatafältmappningar (kapslade egenskaper)
Du kan definiera utdatafältmappningar till egenskaper på lägre nivå, till exempel bara kändisar eller landmärken. I det här fallet kontrollerar du att indexschemat har ett fält som innehåller varje detalj specifikt.
"outputFieldMappings": [
{
"sourceFieldName": "/document/normalized_images/*/categories/detail/celebrities/*",
"targetFieldName": "celebrities"
},
{
"sourceFieldName": "/document/normalized_images/*/categories/detail/landmarks/*",
"targetFieldName": "landmarks"
}
Exempelindata
{
"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
}
}
}
]
}
Exempelutdata
{
"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
}
}
]
}
}
]
}
Felfall
I följande felfall extraheras inga element.
Felkod | beskrivning |
---|---|
NotSupportedLanguage |
Det angivna språket stöds inte. |
InvalidImageUrl |
Bild-URL är dåligt formaterad eller inte tillgänglig. |
InvalidImageFormat |
Indata är inte en giltig bild. |
InvalidImageSize |
Indatabilden är för stor. |
NotSupportedVisualFeature |
Den angivna funktionstypen är inte giltig. |
NotSupportedImage |
Bild som inte stöds, till exempel barnpornografi. |
InvalidDetails |
Domänspecifik modell som inte stöds. |
Om du får felet liknande "One or more skills are invalid. Details: Error in skill #<num>: Outputs are not supported by skill: Landmarks"
kontrollerar du sökvägen. Både kändisar och landmärken är egenskaper under detail
.
"categories":[
{
"name":"building_",
"score":0.97265625,
"detail":{
"landmarks":[
{
"name":"Forbidden City",
"confidence":0.92013400793075562
}
]