Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Note
Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.
Dovednost Image Analysis extrahuje bohatou škálu vizuálních rysů na základě obsahu obrázku. Například můžete vytvořit popisek z obrázku, vytvořit tagy nebo identifikovat celebrity a památky. Tento článek je referenční dokumentací pro dovednost Image Analysis . Viz Extrakt textu a informací z obrázků pro pokyny k použití.
Tato dovednost využívá modely strojového učení poskytované společností Azure Vision ve Foundry Tools. Analýza obrazu pracuje na snímcích, které splňují následující požadavky:
- Obrázek musí být prezentován ve formátech JPEG, PNG, GIF nebo BMP
- Velikost souboru obrázku musí být menší než 4 megabajty (MB).
- Rozměry obrazu musí být větší než 50 x 50 pixelů
Podporovanými datovými zdroji pro OCR a analýzu obrázků jsou blobs v Azure Blob Storage a Azure Data Lake Storage (ADLS) Gen2 a obrazový obsah v Microsoft OneLake. Obrázky mohou být samostatné soubory nebo vložené obrázky v PDF či jiných souborech.
Tato dovednost je implementována pomocí API AI Image Analysis verze 3.2. Pokud vaše řešení vyžaduje volání novější verze tohoto rozhraní API služby, například verze 4.0, zvažte implementaci prostřednictvím dovednosti vlastního webového rozhraní API.
Note
Tato dovednost je vázána na Foundry Tools a vyžaduje fakturovatelný zdroj pro transakce, které přesahují 20 dokumentů na indexera za den. Provádění integrovaných dovedností se účtuje za stávající standardní cenu foundry Tools.
Navíc je extrakce obrazu fakturovatelná pomocí Azure AI Vyhledávač.
@odata.type
Microsoft.Skills.Vision.ImageAnalysisSkill
Parametry dovedností
Parametry rozlišují malá a velká písmena.
| Název parametru | Description |
|---|---|
defaultLanguageCode |
Řetězec označující, který jazyk má vrátit. Služba vrací výsledky rozpoznávání v určeném jazyce. Pokud tento parametr není specifikován, výchozí hodnota je "en". Podporované jazyky zahrnují podmnožinu obecně dostupných jazyků Azure Vision. Když je do Azure Vision nově zaveden jazyk s obecnou dostupností, očekává se zpoždění, než bude plně integrován do této dovednosti. |
visualFeatures |
Pole řetězců indikujících vizuální typy rysů, které je třeba vrátit. Platné typy vizuálních prvků zahrnují:
defaultLanguageCode. |
details |
Pole řetězců indikujících, které doménově specifické detaily vrátit. Platné typy vizuálních prvků zahrnují:
|
Vstupy dovedností
| Název vstupu | Description |
|---|---|
image |
Komplexní typ. V současnosti funguje pouze s polem "/document/normalized_images", které vytváří Azure blob indexer, když je imageAction nastaveno na jinou hodnotu než none. |
Výstupy schopností
| Název výstupu | Description |
|---|---|
adult |
Výstupem je jeden dospělý objekt komplexního typu, který se skládá z booleovských polí (isAdultContent, isGoryContent, isRacyContent) a skóre dvojitého typu (adultScore, goreScore, ). racyScore |
brands |
Výstup je pole značkových objektů, kde objekt je komplexní typ složený z name (string) a skóre confidence (double). Vrací také a rectangle se čtyřmi ohraničujícími souřadnicemi (x, , yw, h, v pixelech), které označují umístění uvnitř obrazu. Pro obdélník x a jsou y vlevo nahoře. Vlevo dole je x, y+h. Vpravo nahoře je x+w, y. Dole vpravo je x+w, y+h. |
categories |
Výstup je pole kategoriových objektů, kde každý kategoriový objekt je složitý typ složený z name (řetězce), score (dvojitého) a volitelného detail , který obsahuje detaily celebrit nebo významných bodů. Kompletní seznam názvů kategorií najdete v taxonomii kategorií . Detail je vnořený komplexní typ. Detail celebrity zahrnuje jméno, skóre sebevědomí a ohraničovací rámeček obličeje. Detail významu se skládá ze jména a skóre důvěry. |
description |
Výstup je jediný popisný objekt komplexního typu, který se skládá ze seznamů tags a caption (pole složené z Text (string) a confidence (double)). |
faces |
Komplexní typ sestávající z age, gender, a faceBoundingBox má čtyři ohraničující souřadnice (v pixelech), které označují umístění uvnitř obrazu. Souřadnice jsou top, left, width, . height |
objects |
Výstup je pole vizuálních objektů rysů. Každý objekt je komplexního typu, který se skládá z object (string), confidence (double), rectangle (se čtyřmi ohraničujícími boxovými souřadnicemi indikujícími umístění uvnitř obrazu) a , parent který obsahuje název objektu a jistotu . |
tags |
Výstup je pole objektů imageTag , kde objekt tagu je komplexní typ složený z name (string), hint (string) a confidence (double). Přidání nápovědy je vzácné. Generuje se pouze tehdy, pokud je tag nejednoznačný. Například obrázek označený jako "curling" může mít náznak "sport", aby lépe vystihl svůj obsah. |
Ukázková definice dovednosti
{
"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"
}
]
}
Ukázkový index
Pro jednotlivé objekty (například adult a description), je můžete strukturovat v indexu jako Collection(Edm.ComplexType) return adult a description výstup pro všechny. Pro více informací o mapování výstupů do indexových polí viz Zploštění informací z komplexních typů.
{
"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
}
]
}
]
}
Mapování výstupních polí vzorků
Cílové pole může být složité pole nebo kolekce. Definice indexu specifikuje libovolná podpole.
"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"
}
Variace mapování výstupních polí (vnořené vlastnosti)
Můžete definovat mapování výstupních polí na nižší úrovně objektů, jako jsou pouze celebrity nebo památky. V takovém případě se ujistěte, že vaše indexové schéma má pole, které obsahuje každý detail konkrétně.
"outputFieldMappings": [
{
"sourceFieldName": "/document/normalized_images/*/categories/detail/celebrities/*",
"targetFieldName": "celebrities"
},
{
"sourceFieldName": "/document/normalized_images/*/categories/detail/landmarks/*",
"targetFieldName": "landmarks"
}
Ukázkový vstup
{
"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
}
}
}
]
}
Ukázkový výstup
{
"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
}
}
]
}
}
]
}
Chybové případy
V následujících chybových případech nejsou žádné prvky extrahovány.
| Kód chyby | Description |
|---|---|
NotSupportedLanguage |
Jazyk, který je uveden, není podporován. |
InvalidImageUrl |
URL obrázku je špatně naformátovaná nebo není přístupná. |
InvalidImageFormat |
Vstupní data nejsou platný obrázek. |
InvalidImageSize |
Vstupní obraz je příliš velký. |
NotSupportedVisualFeature |
Specifikovaný typ funkce není platný. |
NotSupportedImage |
Nepodložený obrázek, například dětská pornografie. |
InvalidDetails |
Nepodporovaný doménově specifický model. |
Pokud dostanete chybu podobnou , "One or more skills are invalid. Details: Error in skill #<num>: Outputs are not supported by skill: Landmarks"zkontrolujte cestu. Jak celebrity, tak památky jsou nemovitostmi podle .detail
"categories":[
{
"name":"building_",
"score":0.97265625,
"detail":{
"landmarks":[
{
"name":"Forbidden City",
"confidence":0.92013400793075562
}
]