Bildklassifizierung mit ML.NET und Windows Machine Learning

Image classification flow

In diesem Leitfaden erfahren Sie, wie Sie ein neuronales Netzwerkmodell trainieren, um Bilder von Lebensmitteln mithilfe von ML.NET Model Builder zu klassifizieren, wie Sie das Modell in das ONNX-Format exportieren und wie das Modell in einer Windows Machine Learning-Anwendung bereitgestellt wird, die lokal auf einem Windows-Gerät ausgeführt wird. Es sind keine vorherigen Kenntnisse im Bereich Machine Learning erforderlich, und wir führen Sie Schritt für Schritt durch diesen Vorgang.

Wenn Sie erfahren möchten, wie Sie ein Modell mit ML.NET Model Builder erstellen und trainieren, können Sie mit Trainieren eines Modells fortfahren.

Wenn Sie über ein Modell verfügen und erfahren möchten, wie Sie eine WinML-App von Grund auf neu erstellen, navigieren Sie zum umfassenden WinML-App-Tutorial.

Wenn Sie die vordefinierte Lösung für eine WinML-App abrufen möchten, können Sie die Projektmappendatei klonen und sofort testen.

Szenario

In diesem Tutorial erstellen Sie eine Machine Learning-Klassifizierungsanwendung für Lebensmittel, die auf Windows-Geräten ausgeführt werden kann. Das Modell wird darauf trainiert, bestimmte Arten von Mustern zu erkennen, um ein Bild eines Lebensmittelns zu klassifizieren. Es gibt bei Eingabe eines Bilds ein Klassifizierungstag und den zugehörigen prozentualen Konfidenzwert für diese Klassifizierung zurück.

Voraussetzungen für das Modelltraining

Zum Erstellen und Trainieren Ihres Modells verwenden Sie ML.NET Model Buider in Visual Studio.

  • Sie benötigen Visual Studio 2019 16.6.1 oder höher, um ML.NET Model Builder verwenden zu können. Hier können Sie Visual Studio abrufen.
  • Sie benötigen ein Azure-Konto, um ein Modell mit ML.NET Model Builder im Azure ML-Arbeitsbereich zu trainieren. Wenn Sie noch nicht mit Azure vertraut sind, können Sie sich für ein kostenloses Azure-Konto registrieren.

Hinweis

Möchten Sie mehr über Azure-Registrierungsoptionen und kostenlose Azure-Konten erfahren? Sehen Sie sich Erstellen eines Azure-Kontos an.

ML.NET Model Builder ist eine intuitive grafische Visual Studio-Erweiterung zum Erstellen, Trainieren und Bereitstellen von benutzerdefinierten Machine Learning-Modellen. Sie verwendet automatisiertes maschinelles Lernen (AutoML), um verschiedene Machine Learning-Algorithmen und -Einstellungen zu untersuchen, damit Sie den für Ihr Szenario am besten geeigneten Algorithmus ermitteln können.

ML.NET Model Builder ist im Lieferumfang von Visual Studio 16.6.1 oder höher enthalten, wenn Sie eine der .NET-Workloads installieren. Stellen Sie sicher, dass die ML.NET Model Builder-Komponente im Installer markiert ist, wenn Sie Visual Studio herunterladen oder ändern. Um zu überprüfen, ob Ihr VS über die ML.NET Model Builder-Komponenten verfügt, navigieren Sie zu „Erweiterungen“, und wählen Sie „Erweiterungen verwalten“ aus. Geben Sie „Model Builder“ in die Suchleiste ein, um die Erweiterungsergebnisse zu überprüfen.

Model builder extension

ML.NET Model Builder ist derzeit eine Previewfunktion. Um das Tool zu verwenden, müssen Sie daher in Visual Studio zu „Extras > Optionen > Umgebung > Previewfunktionen“ navigieren und ML.NET Model Builder aktivieren:

Enable the model builder extension

Hinweis

Möchten Sie mehr über ML.NET Model Builder und die verschiedenen unterstützten Szenarien erfahren? Weitere Informationen finden Sie in der Model Builder-Dokumentation.

Voraussetzungen für die Bereitstellung der Windows ML-App

Zum Erstellen und Bereitstellen einer Windows ML-App benötigen Sie Folgendes:

  • Windows 10, Version 1809 (Build 17763) oder höher. Sie können die Buildversionsnummer überprüfen, indem Sie winver mit dem Ausführungsbefehl ((Windows logo key + R)) ausführen.
  • Windows SDK für Build 17763 oder höher. Hier können Sie das SDK abrufen.
  • Visual Studio 2019, Version 16.6.1 oder höher. Hier können Sie Visual Studio abrufen.
  • Visual Studio Erweiterung des Windows ML-Codegenerators (mlgen). Download für VS 2019.
  • Wenn Sie sich für die Erstellung einer UWP-App entscheiden, müssen Sie die Workload für UWP-Entwicklung (universelle Windows Plattform) in Visual Studio aktivieren.
  • Sie müssen außerdem den Entwicklermodus auf Ihrem PC aktivieren.

Hinweis

Windows ML-APIs sind in die neuesten Versionen von Windows 10 (1809 oder höher) und Windows Server 2019 integriert. Wenn Ihre Zielplattform eine ältere Version von Windows verwendet, können Sie Ihre WinML-App auf das weitervertreibbare NuGet-Paket (Windows 8.1 oder höher) portieren.

Vorbereiten der Daten

Machine Learning-Modelle müssen mit vorhandenen Daten trainiert werden. In diesem Leitfaden verwenden Sie ein Dataset mit Lebensmittelbildern von Kaggle Open Datasets. Dieses Dataset wird unter der öffentlichen Domänenlizenz vertrieben.

Wichtig

Um diesen Datensatz zu verwenden, müssen Sie sich an die Nutzungsbedingungen der Kaggle-Website und die Lizenzbestimmungen für das Food-11-Dataset selbst halten. Microsoft übernimmt keine Garantie oder Zusicherung für die Website oder dieses Dataset.

Das Dataset besteht aus drei Teilen – Auswertung, Training und Validierung – und enthält 16.643 Lebensmittelbilder, die in 11 Hauptkategorien für Lebensmittel gruppiert sind. Die Bilder im Dataset jeder Kategorie von Lebensmitteln werden in einem separaten Ordner platziert, wodurch der Modelltrainingsprozess bequemer wird.

Laden Sie das Dataset hier herunter. Beachten Sie, dass das Dataset etwa 1 GB groß ist und Sie möglicherweise aufgefordert werden, ein Konto auf der Kaggle-Website zu erstellen, um die Daten herunterzuladen.

Food image dataset

Wenn Sie möchten, können Sie jedes andere Dataset mit relevanten Bildern verwenden. Es wird empfohlen, im ersten Trainingssatz mindestens 30 Bilder pro Tag zu verwenden. Sie sollten auch einige zusätzliche Bilder sammeln, um Ihr Modell zu testen, nachdem es trainiert wurde.

Stellen Sie außerdem sicher, dass alle Ihre Trainingsbilder die folgenden Kriterien erfüllen:

  • JPG-, PNG-, BMP- oder GIF-Format.
  • Höchstens 6 MB groß (4 MB für Vorhersagebilder).
  • Mindestens 256 Pixel an der kürzesten Seite; kürzere Bilder werden von Custom Vision Service automatisch hochskaliert.

Nächste Schritte

Nachdem Sie die Voraussetzungen erfüllt und Ihr Dataset vorbereitet haben, können Sie mit der Erstellung Ihres WinML-Modells fortfahren. Im nächsten Teil verwenden Sie ML.NET Model Builder, um Ihr Klassifizierungsmodell zu erstellen und zu trainieren.