Megosztás a következőn keresztül:


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:
  • felnőtt - észleli, ha a kép pornográf (meztelenséget vagy nemi aktust ábrázol), gory (szélsőséges erőszakot vagy vért ábrázol) vagy szuggesztív (más néven racy tartalom).
  • márkák - észleli a különböző márkákat egy képen belül, beleértve a hozzávetőleges helyet.
  • kategóriák – kategorizálja a képtartalmakat az Azure AI-szolgáltatások által meghatározott osztályozás szerint.
  • leírás – a kép tartalmát egy teljes mondattal ismerteti a támogatott nyelveken.
  • arcok – észleli, hogy az arcok jelen vannak-e. Ha jelen van, koordinátákat, nemet és életkort hoz létre.
  • objektumok – észleli a képeken belüli különböző objektumokat, beleértve a hozzávetőleges helyet is.
  • címkék – címkézheti a képet a kép tartalmához kapcsolódó szavak részletes listájával.
A vizuális funkciók neve megkülönbözteti a kis- és nagybetűket. A szín- és imageType-vizualizációs funkciók elavultak, de ezt a funkciót egyéni képességekkel érheti el. Tekintse meg az Azure AI Vision Image Analysis dokumentációját , amely alapján az egyes defaultLanguageCodevizualizá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:
  • hírességek – azonosítja a hírességeket, ha a képen észlelik.
  • tájékozódási pontok – azonosítja a nevezetességeket, ha a rendszerkép észleli.

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 nonea .

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, hké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 , xy+h. A jobb felső sarokban az , x+wy. 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 agea genderfaceBoundingBox 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, widthheight.
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
               }
            ]

Lásd még