You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/de/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-class...

5.5 KiB

Klassifizieren eines Bildes - Virtuelle IoT-Hardware und Raspberry Pi

In diesem Teil der Lektion senden Sie das vom Kamera erfasste Bild an den Custom Vision-Dienst, um es zu klassifizieren.

Bilder an Custom Vision senden

Der Custom Vision-Dienst verfügt über ein Python-SDK, das Sie zur Klassifizierung von Bildern verwenden können.

Aufgabe - Bilder an Custom Vision senden

  1. Öffnen Sie den Ordner fruit-quality-detector in VS Code. Wenn Sie ein virtuelles IoT-Gerät verwenden, stellen Sie sicher, dass die virtuelle Umgebung im Terminal läuft.

  2. Das Python-SDK zum Senden von Bildern an Custom Vision ist als Pip-Paket verfügbar. Installieren Sie es mit folgendem Befehl:

    pip3 install azure-cognitiveservices-vision-customvision
    
  3. Fügen Sie die folgenden Import-Anweisungen am Anfang der Datei app.py hinzu:

    from msrest.authentication import ApiKeyCredentials
    from azure.cognitiveservices.vision.customvision.prediction import CustomVisionPredictionClient
    

    Damit werden einige Module aus den Custom Vision-Bibliotheken eingebunden, eines zur Authentifizierung mit dem Prediction Key und eines, um eine Prediction-Client-Klasse bereitzustellen, die Custom Vision aufrufen kann.

  4. Fügen Sie den folgenden Code am Ende der Datei hinzu:

    prediction_url = '<prediction_url>'
    prediction_key = '<prediction key>'
    

    Ersetzen Sie <prediction_url> durch die URL, die Sie zuvor im Dialogfeld Prediction URL kopiert haben. Ersetzen Sie <prediction key> durch den Prediction Key, den Sie aus demselben Dialogfeld kopiert haben.

  5. Die Prediction-URL, die im Dialogfeld Prediction URL bereitgestellt wurde, ist so konzipiert, dass sie direkt beim Aufruf des REST-Endpunkts verwendet wird. Das Python-SDK verwendet Teile der URL an verschiedenen Stellen. Fügen Sie den folgenden Code hinzu, um diese URL in die benötigten Teile aufzuteilen:

    parts = prediction_url.split('/')
    endpoint = 'https://' + parts[2]
    project_id = parts[6]
    iteration_name = parts[9]
    

    Dies teilt die URL auf und extrahiert den Endpunkt https://<location>.api.cognitive.microsoft.com, die Projekt-ID und den Namen der veröffentlichten Iteration.

  6. Erstellen Sie ein Predictor-Objekt, um die Vorhersage mit folgendem Code durchzuführen:

    prediction_credentials = ApiKeyCredentials(in_headers={"Prediction-key": prediction_key})
    predictor = CustomVisionPredictionClient(endpoint, prediction_credentials)
    

    Die prediction_credentials umschließen den Prediction Key. Diese werden dann verwendet, um ein Prediction-Client-Objekt zu erstellen, das auf den Endpunkt zeigt.

  7. Senden Sie das Bild mit folgendem Code an Custom Vision:

    image.seek(0)
    results = predictor.classify_image(project_id, iteration_name, image)
    

    Dies spult das Bild zurück zum Anfang und sendet es dann an den Prediction-Client.

  8. Zeigen Sie schließlich die Ergebnisse mit folgendem Code an:

    for prediction in results.predictions:
        print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
    

    Dies durchläuft alle zurückgegebenen Vorhersagen und zeigt sie im Terminal an. Die zurückgegebenen Wahrscheinlichkeiten sind Gleitkommazahlen von 0 bis 1, wobei 0 einer 0%igen Übereinstimmung mit dem Tag entspricht und 1 einer 100%igen Übereinstimmung.

    💁 Bildklassifizierer geben die Prozentsätze für alle verwendeten Tags zurück. Jedes Tag hat eine Wahrscheinlichkeit, dass das Bild diesem Tag entspricht.

  9. Führen Sie Ihren Code aus, während Ihre Kamera auf ein Stück Obst, ein geeignetes Bildset oder Obst, das auf Ihrer Webcam sichtbar ist (bei Verwendung virtueller IoT-Hardware), gerichtet ist. Sie sehen die Ausgabe in der Konsole:

    (.venv) ➜  fruit-quality-detector python app.py
    ripe:   56.84%
    unripe: 43.16%
    

    Sie können das aufgenommene Bild sehen und diese Werte im Predictions-Tab in Custom Vision einsehen.

    Eine Banane in Custom Vision, vorhergesagt als reif mit 56,8% und unreif mit 43,1%

💁 Sie finden diesen Code im Ordner code-classify/pi oder code-classify/virtual-iot-device.

😀 Ihr Programm zur Klassifizierung der Obstqualität war ein Erfolg!

Haftungsausschluss:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst Co-op Translator übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.