Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Bildanalyse-Fähigkeit extrahiert eine reiche Auswahl an visuellen Merkmalen basierend auf dem Bildgehalt. Zum Beispiel können Sie eine Bildunterschrift aus einem Bild erstellen, Tags erstellen oder Prominente und Wahrzeichen identifizieren. Dieser Artikel ist die Referenzdokumentation für die Bildanalyse-Fertigkeit . Siehe Text und Informationen aus Bildern extrahieren für Nutzungsanweisungen.
Diese Fähigkeit verwendet die maschinellen Lernmodelle von Azure Vision in Foundry Tools. Bildanalyse arbeitet an Bildern, die folgende Anforderungen erfüllen:
- Das Bild muss im JPEG-, PNG-, GIF- oder BMP-Format präsentiert werden
- Die Dateigröße des Bilds muss kleiner als 4 MB sein.
- Die Abmessungen des Bildes müssen größer als 50 x 50 Pixel sein
Unterstützte Datenquellen für OCR und Bildanalyse sind Blobs in Azure Blob Storage und Azure Data Lake Storage (ADLS) Gen2 sowie Bildinhalte in Microsoft OneLake. Bilder können eigenständige Dateien oder eingebettete Bilder in einem PDF oder anderen Dateien sein.
Diese Fähigkeit wird mit der AI Image Analysis API Version 3.2 implementiert. Wenn Ihre Lösung einen Aufruf einer neueren Version dieser Service-API (wie Version 4.0) erfordert, sollten Sie über Web API Custom Skill implementieren oder die Power Skill ImageAnalysisV4 Power Skill verwenden.
Note
Diese Fähigkeit ist an Foundry Tools gebunden und erfordert eine abrechenbare Ressource für Transaktionen, die pro Indexer pro Tag 20 Dokumente umfassen. Die Ausführung der integrierten Fähigkeiten wird zum bestehenden Foundry Tools Standard-Preis berechnet.
Außerdem ist die Bildgewinnung abrechenbar nach Azure KI-Suche.
@odata.type
Microsoft.Skills.Vision.ImageAnalysisSkill
Skill parameters
Bei Parametern wird die Groß-/Kleinschreibung beachtet.
| Parameter name | Description |
|---|---|
defaultLanguageCode |
Eine Zeichenkette, die anzeigt, welche Sprache zurückkehren soll. Der Service liefert Erkennungsergebnisse in einer bestimmten Sprache zurück. Wenn dieser Parameter nicht angegeben ist, ist der Standardwert "en". Unterstützte Sprachen umfassen eine Teilmenge von allgemein verfügbaren Sprachen von Azure Vision. Wenn eine Sprache mit dem Status der allgemeinen Verfügbarkeit neu in Azure Vision eingeführt wird, gibt es eine erwartete Verzögerung, bevor sie vollständig in diese Fähigkeit integriert ist. |
visualFeatures |
Ein Array von Zeichenketten, die die visuellen Merkmalstypen angeben, die zurückkehren sollen. Gültige visuelle Merkmale umfassen:
defaultLanguageCode unterstützt werden. |
details |
Ein Array von Strings, die angeben, welche domänenspezifischen Details zurückgegeben werden sollen. Gültige visuelle Merkmale umfassen:
|
Skill inputs
| Input name | Description |
|---|---|
image |
Complex Type. Derzeit funktioniert es nur mit dem Feld "/document/normalized_images", das vom Azure Blob-Indexer erzeugt wird, wenn imageAction auf einen anderen Wert als none gesetzt wird. |
Skill outputs
| Output name | Description |
|---|---|
adult |
Ausgabe ist ein einzelnes erwachsenes Objekt eines komplexen Typs, bestehend aus Booleschen Feldern (isAdultContent, isGoryContent, isRacyContent) und Doppeltyp-Werten (adultScore, goreScore, , racyScore). |
brands |
Ausgabe ist ein Array von Markenobjekten , wobei das Objekt ein komplexer Typ ist, bestehend aus name (String) und einem confidence Score (Double). Es gibt außerdem ein mit rectangle vier Begrenzungsbox-Koordinaten (x, y, w, h, in Pixeln) zurück, die die Platzierung innerhalb des Bildes anzeigen. Für das Rechteck x sind und y oben links. Unten links ist x, y+h. Oben rechts ist x+w, y. Unten rechts ist x+w, y+h. |
categories |
Output ist ein Array von Kategorienobjekten , wobei jedes Kategorienobjekt ein komplexer Typ ist, der aus einer name (Zeichenkette), score (doppelt) und optional detail besteht und Prominenten- oder Meilensteindetails enthält. Siehe die Kategorie-Taxonomie für die vollständige Liste der Kategorienamen. Ein Detail ist ein verschachtelter komplexer Typ. Ein Promi-Detail besteht aus einem Namen, einem Vertrauenswert und einem Face-Bounding-Box. Ein wegweisendes Detail besteht aus einem Namen und einem Vertrauenswert. |
description |
Ausgabe ist ein Einzelbeschreibungsobjekt komplexen Typs, bestehend aus Listen von tags und caption (ein Array bestehend aus Text (Zeichenkette) und confidence (doppeltem)). |
faces |
Komplexer Typ, bestehend aus age, gender, und faceBoundingBox mit vier Begrenzungsbox-Koordinaten (in Pixeln), die die Platzierung innerhalb des Bildes anzeigen. Die Koordinaten sind top, left, width, . height |
objects |
Ausgabe ist ein Array visueller Merkmalsobjekte. Jedes Objekt ist ein komplexer Typ, bestehend aus object (Zeichenkette), confidence (doppelt), rectangle (mit vier Begrenzungsbox-Koordinaten, die die Platzierung im Bild anzeigen) und a parent , das einen Objektnamen und Konfidenz enthält. |
tags |
Ausgabe ist ein Array von imageTag-Objekten , wobei ein Tag-Objekt ein komplexer Typ ist, bestehend aus name (Zeichenkette), hint (Zeichenkette) und confidence (Doppel). Die Hinzufügung eines Hinweises ist selten. Es wird nur generiert, wenn ein Tag mehrdeutig ist. Zum Beispiel könnte ein Bild, das als "Curling" markiert ist, einen Hinweis auf "Sport" enthalten, um seinen Inhalt besser anzuzeigen. |
Beispiel-Fertigkeitsdefinition
{
"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"
}
]
}
Sample index
Für einzelne Objekte (wie adult und description) können Sie sie im Index so Collection(Edm.ComplexType) strukturieren, dass Sie für alle zurückgeben adult und description ausgeben. Weitere Informationen zur Abbildung von Ausgaben auf Indexfelder finden Sie unter Abflachung von Informationen aus komplexen Typen.
{
"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
}
]
}
]
}
Beispielausgabefeldabbildung
Das Zielfeld kann ein komplexes Feld oder eine Sammlung sein. Die Indexdefinition spezifiziert beliebige Teilfelder.
"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"
}
Variation der Ausgabefeldabbildungen (verschachtelte Eigenschaften)
Man kann Ausgabefeldzuordnungen zu niedrigeren Eigenschaften definieren, wie zum Beispiel nur Prominente oder Wahrzeichen. In diesem Fall solltest du sicherstellen, dass dein Indexschema ein Feld enthält, das jedes Detail speziell enthält.
"outputFieldMappings": [
{
"sourceFieldName": "/document/normalized_images/*/categories/detail/celebrities/*",
"targetFieldName": "celebrities"
},
{
"sourceFieldName": "/document/normalized_images/*/categories/detail/landmarks/*",
"targetFieldName": "landmarks"
}
Sample input
{
"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
}
}
}
]
}
Sample output
{
"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
}
}
]
}
}
]
}
Error cases
In den folgenden Fehlerfällen werden keine Elemente extrahiert.
| Error Code | Description |
|---|---|
NotSupportedLanguage |
Die bereitgestellte Sprache wird nicht unterstützt. |
InvalidImageUrl |
Die Bild-URL ist schlecht formatiert oder nicht zugänglich. |
InvalidImageFormat |
Eingabedaten sind kein gültiges Bild. |
InvalidImageSize |
Das Eingabebild ist zu groß. |
NotSupportedVisualFeature |
Der angegebene Feature-Typ ist nicht gültig. |
NotSupportedImage |
Nicht unterstütztes Bild, zum Beispiel Kinderpornografie. |
InvalidDetails |
Nicht unterstütztes domänenspezifisches Modell. |
Wenn du einen ähnlichen "One or more skills are invalid. Details: Error in skill #<num>: Outputs are not supported by skill: Landmarks"Fehler wie bekommst, überprüfe den Pfad. Sowohl Prominente als auch Wahrzeichen sind Immobilien unter detail.
"categories":[
{
"name":"building_",
"score":0.97265625,
"detail":{
"landmarks":[
{
"name":"Forbidden City",
"confidence":0.92013400793075562
}
]