Képelemzési kognitív képesség
A Képelemzési képesség a képtartalmak alapján számos vizuális funkciót nyer ki. Létrehozhat például feliratot egy képből, címkéket hozhat létre, vagy azonosíthat hírességeket és nevezetességeket. Ez a cikk a Képelemzési képesség referenciadokumentációja. A használati utasításokért tekintse meg a képek szövegének és információinak kinyerése című témakört.
Ez a képesség az Azure AI Vision által az Azure AI-szolgáltatásokban biztosított gépi tanulási modelleket használja. A képelemzés az alábbi követelményeknek megfelelő képek esetében működik:
- A képet JPEG, PNG, GIF vagy BMP formátumban kell bemutatni
- A fájlméret nem érheti el a 4 megabájtot (MB)
- A képnek nagyobbnak kell lennie, mint 50 x 50 képpont
Az OCR és a képelemzés támogatott adatforrásai az Azure Blob Storage és az Azure Data Lake Storage (ADLS) Gen2 blobok, valamint a OneLake képtartalmai. A képek lehetnek önálló fájlok vagy beágyazott képek PDF-fájlban vagy más fájlokban.
Ezt a képességet az AI Image Analysis API 3.2-es verziójával implementáljuk. Ha a megoldáshoz a szolgáltatás API újabb verziójának meghívása szükséges (például 4.0-s verzió), fontolja meg a webes API egyéni jártasságon keresztüli implementálását.
Feljegyzés
Ez a képesség az Azure AI-szolgáltatásokhoz van kötve, és számlázható erőforrást igényel olyan tranzakciókhoz, amelyek indexelőnként naponta 20 dokumentumot meghaladóak. A beépített készségek végrehajtásáért a meglévő Azure AI-szolgáltatások használatalapú fizetéses díját számítjuk fel.
Emellett a rendszerképek kinyerése az Azure AI Search által számlázható.
@odata.type
Microsoft.Skills.Vision.ImageAnalysisSkill
Képességparaméterek
A paraméterek megkülönböztetik a kis- és nagybetűket.
Paraméter neve | Leírás |
---|---|
defaultLanguageCode |
A visszaadni kívánt nyelvet jelző sztring. A szolgáltatás a felismerési eredményeket egy megadott nyelven adja vissza. Ha ez a paraméter nincs megadva, az alapértelmezett érték az "en". A támogatott nyelvek közé tartozik az Azure AI Vision általánosan elérhető nyelveinek egy része. Ha egy nyelvet újonnan vezetnek be általános rendelkezésre állási állapottal az AI Vision szolgáltatásba, várható késés, mielőtt teljesen integrálva lennének ebbe a képességbe. |
visualFeatures |
Sztringek tömbje, amelyek a visszaadandó vizualizációs funkciótípusokat jelzik. Az érvényes vizualizációs funkciótípusok a következők:
defaultLanguageCode vizualizációs funkciók támogatottak. |
details |
Sztringek tömbje, amelyek jelzik, hogy mely tartományspecifikus adatokat kell visszaadni. Az érvényes vizualizációs funkciótípusok a következők:
|
Készségbemenetek
Bemeneti név | Leírás |
---|---|
image |
Összetett típus. Jelenleg csak a "/document/normalized_images" mezővel működik, amelyet az Azure blobindexelő állít elő, ha imageAction nem none a . |
Képességkimenetek
Kimeneti név | Leírás |
---|---|
adult |
A kimenet egy összetett típusú felnőtt objektum, amely logikai mezőkből (isAdultContent , , isGoryContent ) isRacyContent és kettős típusú pontszámokból (adultScore , goreScore , ). racyScore |
brands |
A kimenet márkaobjektumok tömbje, ahol az objektum egy összetett típus, amely (sztring) és egy confidence pontszámból (dupla) áll name . Emellett egy rectangle négy határolókeret-koordinátát (x , , y , w , h képpontban) ad vissza, amely a képen belüli elhelyezést jelzi. A téglalaphoz és x y a bal felső sarokhoz. A bal alsó sarokban az , x y+h . A jobb felső sarokban az , x+w y . A jobb alsó sarokban az x+w , y+h . |
categories |
A kimenet kategóriaobjektumok tömbje, ahol minden kategóriaobjektum egy összetett típus, amely egy (sztringből name ), (dupla) score és nem köteleződetail , amely híresség- vagy tájékozódási adatokat tartalmaz. A kategórianevek teljes listájához tekintse meg a kategória osztályozását. A részlet egy beágyazott összetett típus. A híresség részletei egy névből, megbízhatósági pontszámból és arc határolókeretből állnak. A tájékozódási pont egy névből és megbízhatósági pontszámból áll. |
description |
A kimenet egy összetett típus egyetlen leírási objektuma, amely az és (sztringből) és confidence caption (dupla)-ból álló tömbökből tags áll Text . |
faces |
Összetett típus, amely age a gender faceBoundingBox képen belüli elhelyezést jelző négy határolókeret-koordinátával (képpontban) áll. A koordináták a következőktop : , left , width height . |
objects |
A kimenet vizuális funkcióobjektumok tömbje. Minden objektum egy összetett típus, amely object (sztring), (dupla) confidence rectangle (négy határolókeret koordinátáival, amelyek a képen belüli elhelyezést jelölik), valamint egy parent objektumnevet és megbízhatóságot tartalmazó. |
tags |
A kimenet az imageTag objektumok tömbje, ahol a címkeobjektum egy összetett típus, amely (sztring), hint (sztring) és confidence (kettős) részből áll name . A tipp hozzáadása ritka. Csak akkor jön létre, ha egy címke nem egyértelmű. Egy "curling" címkével ellátott kép például rendelkezhet egy "sport" tippel, hogy jobban jelezze a tartalmát. |
Minta készségdefiníció
{
"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"
}
]
}
Mintaindex
Egyetlen objektum (például adult
ésdescription
) esetén az indexben Collection(Edm.ComplexType)
strukturálhatja őket, hogy mindet visszaadja és description
kimenetként adja visszaadult
. A kimenetek indexmezőkhöz való leképezéséről további információt az összetett típusok információinak összesimításával kapcsolatban talál.
{
"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
}
]
}
]
}
Minta kimeneti mező leképezése
A célmező lehet összetett mező vagy gyűjtemény. Az indexdefiníció minden almezőt meghatároz.
"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"
}
Változat a kimeneti mezőleképezéseken (beágyazott tulajdonságok)
A kimeneti mezőleképezéseket alacsonyabb szintű tulajdonságokra, például hírességekre vagy nevezetességekre határozhatja meg. Ebben az esetben győződjön meg arról, hogy az indexséma olyan mezővel rendelkezik, amely külön tartalmazza az egyes részleteket.
"outputFieldMappings": [
{
"sourceFieldName": "/document/normalized_images/*/categories/detail/celebrities/*",
"targetFieldName": "celebrities"
},
{
"sourceFieldName": "/document/normalized_images/*/categories/detail/landmarks/*",
"targetFieldName": "landmarks"
}
Példabemenet
{
"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
}
}
}
]
}
Példakimenet
{
"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
}
}
]
}
}
]
}
Hibaesetek
Az alábbi hibaesetekben a rendszer nem nyer ki elemeket.
Hibakód | Leírás |
---|---|
NotSupportedLanguage |
A megadott nyelv nem támogatott. |
InvalidImageUrl |
A kép URL-címe rosszul formázott vagy nem érhető el. |
InvalidImageFormat |
A bemeneti adatok nem érvényes rendszerképek. |
InvalidImageSize |
A bemeneti kép túl nagy. |
NotSupportedVisualFeature |
A megadott szolgáltatástípus érvénytelen. |
NotSupportedImage |
Nem támogatott kép, például gyermekpornográfia. |
InvalidDetails |
Nem támogatott tartományspecifikus modell. |
Ha a hiba a következőhöz hasonlóan jelenik meg "One or more skills are invalid. Details: Error in skill #<num>: Outputs are not supported by skill: Landmarks"
, ellenőrizze az elérési utat. Hírességek és nevezetességek is tulajdonságok alatt detail
.
"categories":[
{
"name":"building_",
"score":0.97265625,
"detail":{
"landmarks":[
{
"name":"Forbidden City",
"confidence":0.92013400793075562
}
]