Erstellen eines benutzerdefinierten Bildanalysemodells

Wichtig

Dieses Feature ist jetzt veraltet. Am 10. Januar 2025 wird die Vorschau-API für Azure KI-Bildanalyse 4.0 für benutzerdefinierte Bildklassifizierung, benutzerdefinierte Objekterkennung und Produkterkennung eingestellt. Nach diesem Datum schlagen API-Aufrufe für diese Dienste fehl.

Um einen reibungslosen Betrieb Ihrer Modelle zu gewährleisten, wechseln Sie zu Azure KI Custom Vision (jetzt allgemein verfügbar). Custom Vision bietet ähnliche Funktionen wie die eingestellten Features.

Mit Bildanalyse 4.0 können Sie ein benutzerdefiniertes Modell mit Ihren eigenen Trainingsbildern trainieren. Durch manuelles Beschriften Ihrer Bilder können Sie ein Modell trainieren, um benutzerdefinierte Tags auf die Bilder anzuwenden (Bildklassifizierung) oder benutzerdefinierte Objekte zu erkennen (Objekterkennung). Modelle von Bildanalyse 4.0 eignen sich besonders für Few-Shot-Lernen, sodass Sie genaue Modelle mit weniger Trainingsdaten erhalten können.

In diesem Leitfaden erfahren Sie, wie Sie ein benutzerdefiniertes Bildklassifizierungsmodell erstellen und trainieren. Die wenigen Unterschiede zwischen dem Trainieren eines Bildklassifizierungsmodells und eines Objekterkennungsmodells sind bekannt.

Hinweis

Die Modellanpassung ist über die REST-API und Vision Studio, aber nicht über die Clientsprachen-SDKs verfügbar.

Voraussetzungen

  • Ein Azure-Abonnement. Sie können ein kostenloses Konto erstellen.
  • Sobald Sie über Ihr Azure-Abonnement verfügen, erstellen Sie eine Vision-Ressource im Azure-Portal, um Ihren Schlüssel und Endpunkt abzurufen. Wenn Sie diesen Leitfaden über Vision Studio verfolgen, müssen Sie Ihre Ressource in der Region „USA, Osten“ erstellen. Wählen Sie nach Abschluss der Bereitstellung Zu Ressource wechseln aus. Kopieren Sie Schlüssel und Endpunkt für die spätere Verwendung an einen temporären Speicherort.
  • Eine Azure Storage-Ressource. Erstellen Sie eine Storage-Ressource.
  • Eine Reihe von Bildern, die Sie zum Training Ihrer Klassifizierung nutzen. Sie können den Satz von Beispielbildern auf GitHub verwenden. Sie können ebenfalls Ihre eigenen Bilder verwenden. Sie benötigen nur etwa 3–5 Bilder pro Klassifizierung.

Hinweis

Aufgrund einer potenziell hohen Wartezeit wird nicht empfohlen, benutzerdefinierte Modelle für unternehmenskritische Umgebungen zu verwenden. Wenn Kunden benutzerdefinierte Modelle in Vision Studio trainieren, gehören diese Modelle zu der Vision-Ressource, mit der sie trainiert wurden. Der Kunde kann diese Modelle mithilfe der Bildanalyse-API aufrufen. Werden diese Aufrufe ausgeführt, wird das benutzerdefinierte Modell in den Arbeitsspeicher geladen und die Vorhersageinfrastruktur initialisiert. In dieser Phase kann es bei Kunden zu einer unerwarteten höheren Latenz bei der Abfrage von Vorhersageergebnissen kommen.

Ein neues benutzerdefiniertes Modell erstellen

Wechseln Sie zunächst zu Vision Studio, und wählen Sie die Registerkarte Bildanalyse aus. Wählen Sie dann die Kachel Modelle anpassen aus.

Screenshot der Kachel „Modelle anpassen“

Melden Sie sich dann mit Ihrem Azure-Konto an, und wählen Sie Ihre Vision-Ressource aus. Sollten Sie nicht über ein Konto verfügen, können Sie auf diesem Bildschirm ein Konto erstellen.

Screenshot des Bildschirms der ausgewählten Ressource.

Vorbereiten von Trainingsbildern

Sie müssen die Trainingsbilder in einen Azure Blob Storage-Container hochladen. Navigieren Sie im Azure-Portal zu Ihrer Speicherressource und zur Registerkarte Speicherbrowser. Hier können Sie einen Blobcontainer erstellen und Ihre Bilder hochladen. Platzieren Sie sie alle im Stammverzeichnis des Containers.

Hinzufügen eines Datasets

Um ein benutzerdefiniertes Modell zu trainieren, müssen Sie es einem Dataset zuordnen, in dem Sie Bilder und deren Beschriftungsinformationen als Trainingsdaten bereitstellen. Wählen Sie in Vision Studio die Registerkarte Datasets aus, um Ihre Datasets anzuzeigen.

Wählen Sie Neues Dataset hinzufügen aus, um ein neues Dataset zu erstellen. Geben Sie in dem Popup-Fenster einen Namen ein und wählen Sie einen Dataset-Typ für Ihren Anwendungsfall. Modelle zur Bildklassifizierung wenden Inhaltsbezeichnungen auf das gesamte Bild an, während Modelle zur Objekterkennung Objektbezeichnungen auf bestimmte Stellen im Bild anwenden. Produkterkennungsmodelle sind eine Unterkategorie von Objekterkennungsmodellen, die für die Erkennung von Einzelhandelsprodukten optimiert sind.

Screenshoot: Dialogfeld zum Erstellen eines neuen Datasets

Wählen Sie dann den Container des Azure Blob Storage-Kontos aus, in dem Sie die Trainingsbilder gespeichert haben. Aktivieren Sie das Kontrollkästchen, damit Vision Studio im Blobspeicher-Container lesen und schreiben kann. Dies ist ein erforderlicher Schritt für den Import beschrifteter Daten. Erstellen Sie das Dataset.

Erstellen eines Azure Machine Learning-Beschriftungsprojekts

Sie benötigen eine COCO-Datei, um die Beschriftungsinformationen zu übermitteln. Eine einfache Möglichkeit zum Generieren einer COCO-Datei besteht darin, ein Azure Machine Learning-Projekt zu erstellen, das einen Datenbeschriftungsworkflow enthält.

Wählen Sie auf der Seite mit den Details des Datasets die Option Neues Datenbeschriftungsprojekt hinzufügen aus. Benennen Sie es und wählen Sie Neuen Arbeitsbereich erstellen aus. Dadurch wird eine neue Registerkarte des Azure-Portals geöffnet, auf der Sie das Azure Machine Learning-Projekt erstellen können.

Screenshot: Erstellen eines Azure Machine Learning-Datenbeschriftungsprojekts

Nachdem das Azure Machine Learning-Projekt erstellt wurde, kehren Sie zur Registerkarte von Vision Studio zurück, und wählen Sie es unter Arbeitsbereich aus. Das Azure Machine Learning-Portal wird dann auf einer neuen Browserregisterkarte geöffnet.

Erstellen von Bezeichnungen

Um mit der Beschriftung zu beginnen, folgen Sie der Aufforderung Beschriftungsklassen hinzufügen, um Beschriftungsklassen hinzuzufügen.

Screenshot: Schaltfläche zum Hinzufügen von Beschriftungsklassen

Screenshot: Schaltfläche zum Hinzufügen von Beschriftungskategorien

Nachdem Sie alle Klassenbeschriftungen hinzugefügt haben, speichern Sie sie, und wählen Sie Start für das Projekt und dann oben Daten beschriften aus.

Screenshot: Schaltfläche zum Starten Datenbeschriftung

Manuelles Beschriften von Trainingsdaten

Wählen Sie Beschriftung starten aus und folgen Sie den Anweisungen, um alle Ihre Bilder zu beschriften. Wenn Sie fertig sind, kehren Sie zur Registerkarte von Vision Studio in Ihrem Browser zurück.

Wählen Sie nun COCO-Datei hinzufügen und dann COCO-Datei aus einem Azure ML-Datenbeschriftungsprojekt importieren aus. Dadurch werden die gekennzeichneten Daten aus Azure Machine Learning importiert.

Die erstellte COCO-Datei wird jetzt in dem Azure Storage-Container gespeichert, den Sie mit diesem Projekt verknüpft haben. Sie können sie jetzt in den Workflow zur Modellanpassung importieren. Wählen Sie sie in der Dropdownliste aus. Nachdem die COCO-Datei in das Dataset importiert wurde, kann das Dataset zum Trainieren eines Modells verwendet werden.

Hinweis

Wenn Sie über eine vorgefertigte COCO-Datei verfügen, die Sie importieren möchten, wechseln Sie zur Registerkarte Datasets, und wählen Sie COCO-Dateien zu diesem Dataset hinzufügen aus. Sie können eine bestimmte COCO-Datei aus einem Blobspeicherkonto hinzufügen oder aus dem Azure Machine Learning-Beschriftungsprojekt importieren.

Derzeit behandelt Microsoft ein Problem, welches dazu führt, dass der COCO-Dateiimport bei großen Datasets fehlschlägt, wenn er in Vision Studio initiiert wird. Um mit einem großen Dataset zu trainieren, empfiehlt es sich, stattdessen die REST-API zu verwenden.

Screenshot: Dialogfeld „COCO-Datei importieren“

Informationen zu COCO-Dateien

COCO-Dateien sind JSON-Dateien mit bestimmten erforderlichen Feldern: "images", "annotations" und "categories". Eine COCO-Datei sieht beispielhaft wie folgt aus:

{
 "images": [
   {
     "id": 1,
     "width": 500,
     "height": 828,
     "file_name": "0.jpg",
     "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/0.jpg"
   },
    {
      "id": 2,
      "width": 754,
      "height": 832,
      "file_name": "1.jpg",
      "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/1.jpg"
    },

   ...

  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 7,
      "image_id": 1,
      "area": 0.407,
      "bbox": [
        0.02663142641129032,
        0.40691584277841153,
        0.9524163571731749,
        0.42766634515266866
      ]
    },
    {
      "id": 2,
      "category_id": 9,
      "image_id": 2,
      "area": 0.27,
      "bbox": [
        0.11803319477782331,
        0.41586723392402375,
        0.7765206955096307,
        0.3483334397217212
      ]
    },
    ...

  ],
  "categories": [
    {
      "id": 1,
      "name": "vegall original mixed vegetables"
    },
    {
      "id": 2,
      "name": "Amy's organic soups lentil vegetable"
    },
    {
      "id": 3,
      "name": "Arrowhead 8oz"
    },

    ...

  ]
}

Feldreferenz für COCO-Datei

Wenn Sie Ihre eigene COCO-Datei von Grund auf neu generieren, stellen Sie sicher, dass alle erforderlichen Felder mit den richtigen Details gefüllt sind. In den folgenden Tabellen werden die einzelnen Felder in einer COCO-Datei beschrieben:

"images"

Schlüssel type Description Erforderlich?
id integer Eindeutige Bild-ID, beginnend bei 1 Ja
width integer Breite des Bilds in Pixeln Ja
height integer Höhe des Bilds in Pixeln Ja
file_name Zeichenfolge Eindeutiger Name für das Bild Ja
absolute_url oder coco_url Zeichenfolge Pfad zum Bild als absoluter URI zu einem Blob in einem Blobcontainer. Die Vision-Ressource muss über die Berechtigung zum Lesen der Anmerkungsdateien und aller Bilddateien verfügen, auf die verwiesen wird. Ja

Den Wert für absolute_url finden Sie in den Eigenschaften Ihres Blobcontainers:

Absolute URL

"annotations"

Schlüssel type Description Erforderlich?
id integer ID der Anmerkung Ja
category_id integer ID der im Abschnitt categories definierten Kategorie Ja
image_id integer ID des Bilds Ja
area integer Wert von „Breite“ x „Höhe“ (dritter und vierter Wert von bbox) No
bbox list[float] Relative Koordinaten des Begrenzungsrahmens (0 bis 1), in der Reihenfolge „Links“, „Oben“, „Breite“, „Höhe“ Yes

"categories"

Schlüssel type Description Erforderlich?
id integer Eindeutige ID jeder Kategorie (Beschriftungsklassifikation). Diese sollten im Abschnitt annotations vorhanden sein. Ja
name Zeichenfolge Name der Kategorie (Beschriftungsklassifikation) Yes

Überprüfung der COCO-Datei

Sie können unseren Python-Beispielcode verwenden, um das Format einer COCO-Datei zu überprüfen.

Trainieren eines benutzerdefinierten Modells

Um das Training eines Modells mit Ihrer COCO-Datei zu beginnen, wechseln Sie zur Registerkarte Benutzerdefinierte Modelle und wählen Sie Neues Modell hinzufügen aus. Geben Sie einen Namen für das Modell ein und wählen Sie Image classification oder Object detection als Modelltyp aus.

Screenshot: Dialogfeld zum Trainieren eines neuen Modells

Wählen Sie Ihr Dataset aus, das nun der COCO-Datei zugeordnet ist, die die Beschriftungsinformationen enthält.

Wählen Sie dann ein Zeitbudget aus und trainieren Sie das Modell. Für kleine Beispiele können Sie ein 1 hour-Budget verwenden.

Screenshot: Zu überprüfende Trainingsdetails

Das Training des Modells kann einige Zeit dauern. Modelle von Bildanalyse 4.0 können auch mit nur einem kleinen Satz von Trainingsdaten genau sein, aber das Training dauert länger als bei vorherigen Modellen.

Auswerten des trainierten Modells

Nach Abschluss des Trainings können Sie die Leistungsauswertung des Modells anzeigen. Es werden die folgenden Metriken verwendet:

  • Bildklassifizierung: Durchschnittliche Genauigkeit, Genauigkeit Top 1, Genauigkeit Top 5
  • Objekterkennung: Mittlere Durchschnittliche Genauigkeit @ 30, Mittlere Durchschnittliche Genauigkeit @ 50, Mittlere Durchschnittliche Genauigkeit @ 75

Wenn beim Trainieren des Modells kein Auswertungssatz bereitgestellt wird, wird die gemeldete Leistung auf der Grundlage eines Teils des Trainingssatzes geschätzt. Es wird dringend empfohlen, ein Auswertungsdataset (mit demselben Prozess wie oben) zu verwenden, um eine zuverlässige Schätzung der Modellleistung zu erhalten.

Screenshot: Auswertungsergebnisse

Testen des benutzerdefinierten Modells in Vision Studio

Nachdem Sie ein benutzerdefiniertes Modell erstellt haben, können Sie testen, indem Sie auf dem Bildschirm „Modellauswertung“ die Schaltfläche Ausprobieren auswählen.

Screenshot des Bildschirms „Modellauswertung“ mit der hervorgehobenen Schaltfläche „Ausprobieren“.

Dadurch gelangen Sie zur Seite Häufig verwendete Tags aus Bildern extrahieren. Wählen Sie im Dropdownmenü Ihr benutzerdefiniertes Modell aus, und laden Sie ein Testbild hoch.

Screenshot: Auswählen des Testmodells in Vision Studio

Die Vorhersageergebnisse werden in der rechten Spalte angezeigt.

Im Rahmen dieses Leitfadens haben Sie mithilfe der Bildanalyse ein benutzerdefiniertes Bildklassifizierungsmodell erstellt und trainiert. Als Nächstes erfahren Sie mehr über die Analyze Image 4.0-API, damit Sie Ihr benutzerdefiniertes Modell mithilfe von REST aus einer Anwendung aufrufen können.