Képelemzés kognitív készség

Note

Azure AI Keresés a Azure portálon, REST API-kon és Azure SDK-k keresztül érhető el. Emellett a Foundry IQ-t is támogatja, amely a vállalati tartalmakat újrafelhasználható, engedélytudatos tudásbázisokká alakítja át az Microsoft Foundry portálon található ügynökök számára.

A képelemzés képesség gazdag vizuális jellemzőket nyer ki a képtartalom alapján. Például képből generálhatsz feliratot, címkéket hozhatsz létre, vagy hírességeket és nevezetességeket azonosíthatsz. Ez a cikk a képelemzési készség referenciadokumentációja. A használati utasításokért lásd: Szöveg és információk kivonása képekből .

Ez a készség a Foundry ToolsAzure> Vision A képelemzés olyan képeken dolgozik, amelyek megfelelnek az alábbi követelményeknek:

  • A képet JPEG, PNG, GIF vagy BMP formátumban kell megjeleníteni
  • A kép fájlméretének 4 megabájtnál (MB) kisebbnek kell lennie
  • A kép méretei nagyobbnak kell lenniük, mint 50 x 50 pixel

Az OCR és képelemzés támogatott adatforrások az Azure Blob Storage és Azure Data Lake Storage (ADLS) Gen2 blokkjai, valamint a Microsoft OneLake képtartalma. A képek lehetnek önálló fájlok vagy beágyazott képek PDF-be vagy más fájlokba.

Ezt a készséget az AI Image Analysis API 3.2-es verziója valósította meg. Ha a megoldáshoz meg kell hívnia a szolgáltatás API újabb verzióját, például a 4.0-s verziót, fontolja meg az egyéni webes API-képességen keresztüli implementálást.

Note

Ez a képesség a Foundry Tools-hoz kötött, és egy számlázható erőforrást igényel olyan tranzakciókhoz, amelyek indexelőnként naponta 20 dokumentumnál meghaladják. A beépített készségek végrehajtása a meglévő Foundry Tools Standard áron történik.

Ezen felül a képkivonás számlázható Azure AI Keresés számon.

@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 Description
defaultLanguageCode Egy láncsor, amely jelzi, melyik nyelvet kell visszaadni. A szolgáltatás egy meghatározott nyelvben ad vissza felismerő eredményeket. Ha ez a paraméter nincs megadva, az alapértelmezett érték "en".

A támogatott nyelvek közé tartozik a Azure Vision általánosan elérhető nyelvek alhalmaza. Amikor egy nyelv újonnan kerül bevezetésre általános elérhetőséggel az Azure Vision-ba, várhatóan késés várható, mire teljesen integrálódnak ebbe a képességbe.
visualFeatures Egy láncsorokból álló tömb, amely jelzi, hogy milyen vizuális jellemzőket kell visszaadni. Érvényes vizuális jellemzők a következők:
  • Felnőtt – Érzékeli, hogy a kép pornográf (meztelenséget vagy szexuális aktust ábrázol), véres (extrém erőszakot vagy vért ábrázol) vagy sugalló-e (más néven racy tartalom).
  • márkák – különböző márkákat érzékelnek egy képen belül, beleértve a hozzávetőleges helyet is.
  • kategóriák – a képtartalmat a Foundry Tools által meghatározott taxonómia szerint kategorizálja.
  • Leírás – A kép tartalmát teljes mondattal írja le támogatott nyelvekben.
  • arcok – érzékeli, ha vannak arcok. Ha jelen van, koordinátákat, nemet és életkort generál.
  • objektumok – különböző objektumokat érzékelnek egy képen belül, beleértve a közelítő helyet is.
  • címkék – a képet részletes szólistával jelöli meg, amely a kép tartalmához kapcsolódik.
A vizuális jellemzők neve kis- és kisméretre érzékenyek. Mind a color , mind a imageType vizuális funkciók már elavulttá váltak, de ezt a funkciót egyedi képességgel lehet elérni. Lásd a Azure Vision Image Analysis dokumentációt amelyen minden defaultLanguageCode vizuális jellemzők támogatottak.
details Egy stringtömb, amely jelzi, mely domainspecifikus részleteket kell visszaadni. Érvényes vizuális jellemzők a következők:
  • Celebrities – azonosítja a hírességeket, ha észlelik őket a képen.
  • Tájékozódási pontok – Azonosítja azokat a nevezetességeket, ha a képen észlelik.

Készségbemenetek

Bemeneti név Description
image Összetett típus. Jelenleg csak a "/document/normalized_images" mezővel működik, amelyet a Azure blob indexer generál, amikor a imageAction értéket állítanak be a none-n kívül.

Képességkimenetek

Kimeneti név Description
adult A kimenet egy egyetlen , összetett típusú felnőtt objektum, amely boole-mezőkből (isAdultContent, isGoryContent, isRacyContent) és dupla típusú pontszámokból (adultScore, goreScore, racyScore) áll.
brands A kimenet egy márkaobjektumok tömbje, ahol az objektum egy összetett típus, amely ( name string) és egy confidence pontszám (dupla) áll. Emellett rectangle négy határoló dobozkoordinátával (x, , ywh, , pixelekben) egy képet ad vissza, ami a képen belüli elhelyezkedést jelzi. A téglalap x esetében és y a bal felső sarokban vannak. Bal alsó sarkban x, y+h. Jobb fent , x+wy. Jobb alsó sarkban x+w, y+h.
categories A kimenet egy kategóriaobjektumokból álló tömb, ahol minden kategóriaobjektum egy összetett típus, amely egy name (string), score (dupla) és opcionális elemből detail áll, és amely hírességek vagy mérföldkőhelyek részleteit tartalmazza. A kategórianevek teljes listájáért lásd a kategória-taxonómiát . A részlet egy beágyazott összetett típus. A híresség részlete egy névből, önbizalmi pontszámból és arckeretből áll. Egy mérföldkőrészlet egy név- és megbízhatósági pontszámból áll.
description A kimenet egy összetett típusú egyetlen leírási objektum, amely és tags listákból caption áll (egy tömb, amely (Textstring) és confidence (dupla)) listákból áll.
faces Komplex típus, amely , age, genderés faceBoundingBox négy határoló dobozkoordinátával (pixelekben) rendelkezik, amelyek a képen belüli elhelyezkedést jelzik. A koordináták: top, left, width, height.
objects A kimenet egy vizuális jellemző objektumokból álló tömb. Minden objektum egy komplex típus, amely object (string), confidence (dupla), rectangle (négy határoló dobozkoordinátával, amelyek jelzik a képen belüli elhelyezést), valamint egy parent objektum nevet és megbízhatóságot tartalmaz.
tags A kimenet egy imageTag objektumokból álló tömb, ahol a tag objektum egy összetett típus, amely (string), name (string) és hint (double) formákból confidence áll. A tipp hozzáadása ritka. Csak akkor generálódik, ha egy címke kétértelmű. Például egy "curling" címkével ellátott kép tartalmazhat egy kis "sport" utalást, hogy jobban jelezze a tartalmát.

Mintakép definí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 objektumok esetén (például adult és description), az indexben strukturálhatod őket úgy, hogy mindegyik Collection(Edm.ComplexType) visszatérítése adult és description kimenete legyen. További információért a kimenetek indexmezőkkel való leképezéséről lásd: Komplex típusok információinak laposítása.

{
    "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
                }
            ]
        }
    ]
}

Mintakimeneti mező leképezés

A célmező lehet összetett mező vagy gyűjtemény. Az index definíció bármely almezőt megad.

"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"
    }

Kimeneti mezőleképezések változatossága (beágyazott tulajdonságok)

Kimeneti mező leképezést definiálhatsz alacsonyabb szintű tulajdonságokhoz, például hírességekhez vagy nevezetességekhez. Ebben az esetben győződj meg róla, hogy az indexsémánál van egy mező, amely minden részletet kifejezetten tartalmaz.

"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 leírása

Az alábbi hibaesetekben nem nyernek ki elemeket.

Hibakód Description
NotSupportedLanguage A megadott nyelvezet nem támogatott.
InvalidImageUrl A kép URL-je rosszul van formázva vagy nem hozzáférhető.
InvalidImageFormat A bemeneti adat nem érvényes kép.
InvalidImageSize A bemeneti kép túl nagy.
NotSupportedVisualFeature A megadott funkciótípus nem érvényes.
NotSupportedImage Alapítatlan képek, például gyermekpornográfia.
InvalidDetails Támogatatlan domain-specifikus modell.

Ha hasonló hibát kapsz "One or more skills are invalid. Details: Error in skill #<num>: Outputs are not supported by skill: Landmarks", nézd meg az útvonalat. Mind a hírességek, mind a nevezetességek a .detail

"categories":[  
      {  
         "name":"building_",
         "score":0.97265625,
         "detail":{  
            "landmarks":[  
               {  
                  "name":"Forbidden City",
                  "confidence":0.92013400793075562
               }
            ]

Lásd még