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 resim yazısı 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
OCR ve görüntü analizi için desteklenen veri kaynakları, Azure Blob Depolama ve Azure Data Lake Storage (ADLS) 2. Nesil'deki bloblar ve OneLake'deki görüntü içeriğidir. Görüntüler tek başına dosyalar veya PDF veya diğer dosyalara eklenmiş resimler olabilir.
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:
defaultLanguageCode birinde 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:
|
Beceri girişleri
Giriş adı | Açıklama |
---|---|
image |
Karmaşık Tür. Şu anda yalnızca Dışında none bir 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ındanadultScore goreScore racyScore (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 , , h piksel) içeren bir rectangle y dö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+w y . 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 gender içeren age karmaşı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 , left width , 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
}
]