Aracılığıyla paylaş


Görüntü Analizi bilişsel beceri

Görüntü Analizi becerisi, görüntü içeriğine göre zengin bir görsel özellik kümesi ayıklar. Örneğin, bir görüntüden başlık oluşturabilir, etiketler oluşturabilir veya ünlüleri ve yer işaretlerini tanımlayabilirsiniz. Bu makale, Görüntü Analizi becerisine yönelik başvuru belgeleridir. Kullanım yönergeleri için bkz . Resimlerden metin ve bilgi ayıklama.

Bu beceri, Azure yapay zeka hizmetlerinde Azure AI Vision tarafından sağlanan makine öğrenmesi modellerini kullanır. Görüntü Analizi aşağıdaki gereksinimleri karşılayan görüntüleri analiz edebilir:

  • Resim JPEG, PNG, GIF veya BMP biçiminde gösterilmelidir
  • Görüntünün dosya boyutunun 4 megabayt (MB) değerini aşmaması gerekir
  • Görüntünün boyutlarının 50 x 50 pikselden büyük olması gerekir

Bu beceri, AI Görüntü Analizi API'sinin 3.2 sürümü kullanılarak uygulanır. Çözümünüz söz konusu hizmet API'sinin daha yeni bir sürümünü (sürüm 4.0 gibi) çağırmayı gerektiriyorsa, Web API'sinin özel becerisi aracılığıyla uygulamayı göz önünde bulundurun.

Not

Bu beceri Azure AI hizmetlerine bağlıdır ve günlük dizin oluşturucu başına 20 belgeyi aşan işlemler için faturalanabilir bir kaynak gerektirir. Yerleşik becerilerin yürütülmesi, mevcut Azure AI hizmetlerinin kullandıkça öde fiyatından ücretlendirilir.

Ayrıca görüntü ayıklama, Azure AI Search tarafından faturalandırılabilir.

@odata.type

Microsoft.Skills.Vision.ImageAnalysisSkill

Beceri parametreleri

Parametreler büyük/küçük harfe duyarlıdır.

Parametre adı Açıklama
defaultLanguageCode Döndürülecek dili gösteren bir dize. Hizmet, belirtilen dilde tanıma sonuçlarını döndürür. Bu parametre belirtilmezse, varsayılan değer "en" olur.

Desteklenen diller, Azure AI Vision'ın genel kullanıma sunulan dillerinin bir alt kümesini içerir. Yapay Zeka Görüntü İşleme hizmetine genel kullanılabilirlik durumuyla yeni bir dil sunulduğunda, bu beceriyle tam olarak tümleştirilmeden önce gecikme olması beklenir.
visualFeatures Döndürülecek görsel özellik türlerini gösteren dize dizisi. Geçerli görsel özellik türleri şunlardır:
  • yetişkin - görüntünün pornografik (çıplaklığı veya bir seks eylemini gösterir), gory (aşırı şiddet veya kan gösterir) veya müstehcen (müstehcen içerik olarak da bilinir) olduğunu algılar.
  • brands - yaklaşık konum dahil olmak üzere bir görüntüdeki çeşitli markaları algılar.
  • kategoriler - Görüntü içeriğini Azure AI hizmetleri tarafından tanımlanan taksonomiye göre kategorilere ayırır.
  • description - desteklenen dillerde tam bir cümleyle görüntü içeriğini açıklar.
  • faces - yüzlerin mevcut olup olmadığını algılar. Varsa, koordinatlar, cinsiyet ve yaş oluşturur.
  • objects - Yaklaşık konum dahil olmak üzere bir görüntüdeki çeşitli nesneleri algılar.
  • tags - görüntüyü, görüntü içeriğiyle ilgili sözcüklerin ayrıntılı bir listesiyle etiketler.
Görsel özelliklerin adları büyük/küçük harfe duyarlıdır. Hem color hem de imageType görsel özellikleri kullanım dışı bırakıldı, ancak bu işleve özel bir beceri aracılığıyla erişebilirsiniz. Her defaultLanguageCodebirinde görsel özelliklerin desteklendiği Azure AI Görüntü İşleme Görüntü Analizi belgelerine bakın.
details Hangi etki alanına özgü ayrıntıların döndürüleceği belirten dize dizisi. Geçerli görsel özellik türleri şunlardır:
  • ünlüler - görüntüde algılanırsa ünlüleri tanımlar.
  • yer işaretleri - görüntüde algılanırsa yer işaretlerini tanımlar.

Beceri girişleri

Giriş adı Açıklama
image Karmaşık Tür. Şu anda yalnızca Dışında nonebir değere ayarlandığında Azure blob dizin oluşturucu imageAction tarafından üretilen "/document/normalized_images" alanıyla çalışır.

Beceri çıkışları

Çıkış adı Açıklama
adult Çıktı, boole alanları (, , ) ve çift tür puanlarındanadultScoregoreScoreracyScore (isAdultContent, isGoryContent, isRacyContent) oluşan karmaşık türde tek bir yetişkin nesnesidir.
brands Çıkış, nesnenin (dize) ve bir puandan (çift) oluşan name karmaşık bir tür olduğu bir confidence marka nesneleri dizisidir. Ayrıca, görüntünün içindeki yerleşimi gösteren dört sınırlayıcı kutu koordinatı (, , w, , hpiksel) içeren bir rectangle ydöndürür.x Dikdörtgen x için ve y sol üst kısımdır. Sol altta x, . y+h Sağ üst, şeklindedirx+wy. Sağ altta x+w, . y+h
categories Çıkış, her kategori nesnesinin bir (dize), (çift) score ve ünlü veya yer işareti ayrıntılarını içeren isteğe bağlı detail karmaşık bir name tür olduğu bir kategori nesneleri dizisidir. Kategori adlarının tam listesi için kategori taksonomisine bakın. Ayrıntı, iç içe yerleştirilmiş karmaşık bir türdür. Ünlü ayrıntıları bir ad, güvenilirlik puanı ve yüz sınırlama kutusundan oluşur. Yer işareti ayrıntıları bir ad ve güvenilirlik puanından oluşur.
description Çıktı, ve listelerinden tags ((dize) ve caption confidence (çift) oluşan bir diziden oluşan Text karmaşık türde tek bir açıklama nesnesidir.
faces , ve genderiçeren agekarmaşık faceBoundingBox tür, görüntünün içine yerleştirmeyi gösteren dört sınırlayıcı kutu koordinatı (piksel) içeriyor. Koordinatlar , top, leftwidth, height.
objects Çıkış, görsel özellik nesnelerinin bir dizisidir. Her nesne, object (dize), (çift) confidence rectangle (görüntünün içine yerleştirmeyi gösteren dört sınırlayıcı kutu koordinatı ile) ve nesne adı ve güveni içeren bir parent karmaşık türdür.
tags Çıktı, bir etiket nesnesinin (dize), (dize) ve confidence (çift) hint oluşan name karmaşık bir tür olduğu imageTag nesneleri dizisidir. bir ipucunun eklenmesi nadirdir. Yalnızca bir etiket belirsizse oluşturulur. Örneğin, "curling" olarak etiketlenmiş bir görüntüde içeriğini daha iyi belirtmek için "spor" ipucu olabilir.

Örnek beceri tanımı

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

Örnek dizin

Tek nesneler (ve gibi adult description) için, bunları dizinde Collection(Edm.ComplexType) tümünü döndürecek adult ve description çıkış olarak yapılandırabilirsiniz. Çıktıları dizin alanlarına eşleme hakkında daha fazla bilgi için bkz . Karmaşık türlerden düzleştirme bilgileri.

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

Örnek çıkış alanı eşlemesi

Hedef alan karmaşık bir alan veya koleksiyon olabilir. Dizin tanımı tüm alt alanları belirtir.

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

Çıkış alanı eşlemelerindeki çeşitleme (iç içe özellikler)

Yalnızca ünlüler veya yer işaretleri gibi alt düzey özelliklere çıkış alanı eşlemeleri tanımlayabilirsiniz. Bu durumda, dizin şemanızın her ayrıntıyı özel olarak içerecek bir alanı olduğundan emin olun.

"outputFieldMappings": [
    {
        "sourceFieldName": "/document/normalized_images/*/categories/detail/celebrities/*",
        "targetFieldName": "celebrities"
    },
    {
        "sourceFieldName": "/document/normalized_images/*/categories/detail/landmarks/*",
        "targetFieldName": "landmarks"
    }

Örnek girdi

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

Örnek çıktı

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

Hata durumları

Aşağıdaki hata durumlarında hiçbir öğe ayıklanmamıştır.

Hata Kodu Açıklama
NotSupportedLanguage Sağlanan dil desteklenmiyor.
InvalidImageUrl Görüntü URL'si hatalı biçimlendirilmiş veya erişilebilir değil.
InvalidImageFormat Giriş verileri geçerli bir görüntü değil.
InvalidImageSize Giriş görüntüsü çok büyük.
NotSupportedVisualFeature Belirtilen özellik türü geçerli değil.
NotSupportedImage Desteklenmeyen görüntü, örneğin çocuk pornografisi.
InvalidDetails Desteklenmeyen etki alanına özgü model.

gibi "One or more skills are invalid. Details: Error in skill #<num>: Outputs are not supported by skill: Landmarks"bir hata alırsanız yolu denetleyin. Hem ünlüler hem de yer işaretleri altında detailözelliklerdir.

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

Ayrıca bkz.