|
4 weeks ago | |
---|---|---|
.. | ||
README.md | 4 weeks ago | |
assignment.md | 4 weeks ago | |
pi-camera.md | 4 weeks ago | |
single-board-computer-classify-image.md | 4 weeks ago | |
virtual-device-camera.md | 4 weeks ago | |
wio-terminal-camera.md | 4 weeks ago | |
wio-terminal-classify-image.md | 4 weeks ago |
README.md
Überprüfung der Obstqualität mit einem IoT-Gerät
Sketchnote von Nitya Narasimhan. Klicken Sie auf das Bild für eine größere Version.
Quiz vor der Vorlesung
Einführung
In der letzten Lektion haben Sie etwas über Bildklassifikatoren gelernt und wie man sie trainiert, um gutes und schlechtes Obst zu erkennen. Um diesen Bildklassifikator in einer IoT-Anwendung zu verwenden, müssen Sie in der Lage sein, ein Bild mit einer Kamera aufzunehmen und dieses Bild in die Cloud zu senden, um es zu klassifizieren.
In dieser Lektion lernen Sie Kamerasensoren kennen und wie Sie diese mit einem IoT-Gerät verwenden, um ein Bild aufzunehmen. Außerdem erfahren Sie, wie Sie den Bildklassifikator von Ihrem IoT-Gerät aus aufrufen können.
In dieser Lektion behandeln wir:
- Kamerasensoren
- Ein Bild mit einem IoT-Gerät aufnehmen
- Ihren Bildklassifikator veröffentlichen
- Bilder von Ihrem IoT-Gerät klassifizieren
- Das Modell verbessern
Kamerasensoren
Kamerasensoren sind, wie der Name schon sagt, Kameras, die Sie mit Ihrem IoT-Gerät verbinden können. Sie können Standbilder aufnehmen oder Streaming-Videos erfassen. Einige liefern Rohbilddaten, andere komprimieren die Bilddaten in eine Bilddatei wie JPEG oder PNG. Normalerweise sind die Kameras, die mit IoT-Geräten funktionieren, viel kleiner und haben eine geringere Auflösung als die, die Sie vielleicht gewohnt sind. Es gibt jedoch auch hochauflösende Kameras, die mit den besten Smartphones konkurrieren können. Sie können verschiedene Wechselobjektive, Mehrkamerasysteme, Infrarot-Wärmekameras oder UV-Kameras erhalten.
Die meisten Kamerasensoren verwenden Bildsensoren, bei denen jedes Pixel eine Fotodiode ist. Eine Linse fokussiert das Bild auf den Bildsensor, und Tausende oder Millionen von Fotodioden erfassen das Licht, das auf jede einzelne fällt, und zeichnen dies als Pixeldaten auf.
💁 Linsen drehen Bilder um, der Kamerasensor dreht das Bild dann wieder richtig herum. Das ist auch bei Ihren Augen der Fall – das, was Sie sehen, wird auf der Rückseite Ihres Auges auf den Kopf gestellt erfasst, und Ihr Gehirn korrigiert es.
🎓 Der Bildsensor wird als Active-Pixel-Sensor (APS) bezeichnet, und der beliebteste Typ von APS ist ein Complementary Metal-Oxide Semiconductor-Sensor, oder CMOS. Sie haben möglicherweise den Begriff CMOS-Sensor für Kamerasensoren gehört.
Kamerasensoren sind digitale Sensoren, die Bilddaten als digitale Daten senden, normalerweise mit Hilfe einer Bibliothek, die die Kommunikation bereitstellt. Kameras verwenden Protokolle wie SPI, um große Datenmengen zu senden – Bilder sind erheblich größer als einzelne Zahlen von einem Sensor wie einem Temperatursensor.
✅ Welche Einschränkungen gibt es bei der Bildgröße mit IoT-Geräten? Denken Sie insbesondere an die Beschränkungen bei Mikrocontroller-Hardware.
Ein Bild mit einem IoT-Gerät aufnehmen
Sie können Ihr IoT-Gerät verwenden, um ein Bild aufzunehmen, das klassifiziert werden soll.
Aufgabe – ein Bild mit einem IoT-Gerät aufnehmen
Arbeiten Sie die entsprechende Anleitung durch, um ein Bild mit Ihrem IoT-Gerät aufzunehmen:
Ihren Bildklassifikator veröffentlichen
Sie haben Ihren Bildklassifikator in der letzten Lektion trainiert. Bevor Sie ihn von Ihrem IoT-Gerät aus verwenden können, müssen Sie das Modell veröffentlichen.
Modelliterationen
Während Ihr Modell in der letzten Lektion trainiert wurde, haben Sie möglicherweise bemerkt, dass die Registerkarte Leistung Iterationen auf der Seite anzeigt. Als Sie das Modell zum ersten Mal trainiert haben, haben Sie Iteration 1 im Training gesehen. Als Sie das Modell mit den Vorhersagebildern verbessert haben, haben Sie Iteration 2 im Training gesehen.
Jedes Mal, wenn Sie das Modell trainieren, erhalten Sie eine neue Iteration. Dies ist eine Möglichkeit, die verschiedenen Versionen Ihres Modells zu verfolgen, die mit unterschiedlichen Datensätzen trainiert wurden. Wenn Sie einen Schnelltest durchführen, gibt es ein Dropdown-Menü, mit dem Sie die Iteration auswählen können, sodass Sie die Ergebnisse über mehrere Iterationen hinweg vergleichen können.
Wenn Sie mit einer Iteration zufrieden sind, können Sie sie veröffentlichen, um sie für externe Anwendungen verfügbar zu machen. Auf diese Weise können Sie eine veröffentlichte Version haben, die von Ihren Geräten verwendet wird, dann an einer neuen Version über mehrere Iterationen arbeiten und diese veröffentlichen, sobald Sie damit zufrieden sind.
Aufgabe – eine Iteration veröffentlichen
Iterationen werden über das Custom Vision-Portal veröffentlicht.
-
Starten Sie das Custom Vision-Portal unter CustomVision.ai und melden Sie sich an, falls Sie es noch nicht geöffnet haben. Öffnen Sie dann Ihr Projekt
fruit-quality-detector
. -
Wählen Sie die Registerkarte Leistung aus den Optionen oben aus.
-
Wählen Sie die neueste Iteration aus der Liste Iterationen auf der Seite aus.
-
Wählen Sie die Schaltfläche Veröffentlichen für die Iteration aus.
-
Legen Sie im Dialogfeld Modell veröffentlichen die Vorhersageressource auf die Ressource
fruit-quality-detector-prediction
fest, die Sie in der letzten Lektion erstellt haben. Lassen Sie den Namen alsIteration2
und wählen Sie die Schaltfläche Veröffentlichen aus. -
Sobald die Iteration veröffentlicht ist, wählen Sie die Schaltfläche Vorhersage-URL aus. Dies zeigt Details der Vorhersage-API, die Sie benötigen, um das Modell von Ihrem IoT-Gerät aus aufzurufen. Der untere Abschnitt ist mit Wenn Sie eine Bilddatei haben beschriftet, und dies sind die Details, die Sie benötigen. Kopieren Sie die angezeigte URL, die etwa so aussieht:
https://<location>.api.cognitive.microsoft.com/customvision/v3.0/Prediction/<id>/classify/iterations/Iteration2/image
Dabei wird
<location>
der Standort sein, den Sie bei der Erstellung Ihrer Custom Vision-Ressource verwendet haben, und<id>
wird eine lange ID aus Buchstaben und Zahlen sein.Kopieren Sie auch den Wert Vorhersage-Schlüssel. Dies ist ein sicherer Schlüssel, den Sie übergeben müssen, wenn Sie das Modell aufrufen. Nur Anwendungen, die diesen Schlüssel übergeben, dürfen das Modell verwenden, alle anderen Anwendungen werden abgelehnt.
✅ Wenn eine neue Iteration veröffentlicht wird, hat sie einen anderen Namen. Wie würden Sie die Iteration ändern, die ein IoT-Gerät verwendet?
Bilder von Ihrem IoT-Gerät klassifizieren
Sie können diese Verbindungsdetails jetzt verwenden, um den Bildklassifikator von Ihrem IoT-Gerät aus aufzurufen.
Aufgabe – Bilder von Ihrem IoT-Gerät klassifizieren
Arbeiten Sie die entsprechende Anleitung durch, um Bilder mit Ihrem IoT-Gerät zu klassifizieren:
Das Modell verbessern
Es kann sein, dass die Ergebnisse, die Sie mit der Kamera Ihres IoT-Geräts erhalten, nicht den Erwartungen entsprechen. Die Vorhersagen sind möglicherweise nicht so genau wie bei Bildern, die von Ihrem Computer hochgeladen wurden. Dies liegt daran, dass das Modell mit anderen Daten trainiert wurde als denjenigen, die für Vorhersagen verwendet werden.
Um die besten Ergebnisse für einen Bildklassifikator zu erzielen, sollten Sie das Modell mit Bildern trainieren, die den für Vorhersagen verwendeten Bildern so ähnlich wie möglich sind. Wenn Sie beispielsweise Ihre Handykamera verwendet haben, um Bilder für das Training aufzunehmen, werden die Bildqualität, Schärfe und Farben anders sein als bei einer Kamera, die mit einem IoT-Gerät verbunden ist.
Im obigen Bild wurde das Bananenbild links mit einer Raspberry Pi-Kamera aufgenommen, das rechts mit einem iPhone von derselben Banane am selben Ort. Es gibt einen deutlichen Unterschied in der Qualität – das iPhone-Bild ist schärfer, mit helleren Farben und mehr Kontrast.
✅ Was könnte sonst noch dazu führen, dass die von Ihrem IoT-Gerät aufgenommenen Bilder falsche Vorhersagen haben? Denken Sie an die Umgebung, in der ein IoT-Gerät verwendet werden könnte. Welche Faktoren können das aufgenommene Bild beeinflussen?
Um das Modell zu verbessern, können Sie es mit den Bildern, die vom IoT-Gerät aufgenommen wurden, erneut trainieren.
Aufgabe – das Modell verbessern
-
Klassifizieren Sie mehrere Bilder von reifen und unreifen Früchten mit Ihrem IoT-Gerät.
-
Trainieren Sie das Modell im Custom Vision-Portal erneut mit den Bildern auf der Registerkarte Vorhersagen.
⚠️ Sie können die Anweisungen zum erneuten Trainieren Ihres Klassifikators in Lektion 1 bei Bedarf nachlesen.
-
Wenn Ihre Bilder sehr unterschiedlich zu den ursprünglichen Bildern aussehen, die für das Training verwendet wurden, können Sie alle ursprünglichen Bilder löschen, indem Sie sie auf der Registerkarte Trainingsbilder auswählen und die Schaltfläche Löschen auswählen. Um ein Bild auszuwählen, bewegen Sie den Cursor darüber, und ein Häkchen erscheint. Wählen Sie dieses Häkchen aus, um das Bild auszuwählen oder die Auswahl aufzuheben.
-
Trainieren Sie eine neue Iteration des Modells und veröffentlichen Sie es mit den oben genannten Schritten.
-
Aktualisieren Sie die Endpunkt-URL in Ihrem Code und führen Sie die App erneut aus.
-
Wiederholen Sie diese Schritte, bis Sie mit den Ergebnissen der Vorhersagen zufrieden sind.
🚀 Herausforderung
Wie stark beeinflussen die Bildauflösung oder Beleuchtung die Vorhersage?
Versuchen Sie, die Auflösung der Bilder in Ihrem Gerätecode zu ändern, und sehen Sie, ob dies einen Unterschied in der Qualität der Bilder macht. Probieren Sie auch unterschiedliche Beleuchtung aus.
Wenn Sie ein Produktionsgerät entwickeln würden, das an Bauernhöfe oder Fabriken verkauft wird, wie würden Sie sicherstellen, dass es immer konsistente Ergebnisse liefert?
Quiz nach der Vorlesung
Rückblick & Selbststudium
Sie haben Ihr Custom Vision-Modell mit dem Portal trainiert. Dies setzt voraus, dass Bilder verfügbar sind – und in der realen Welt können Sie möglicherweise keine Trainingsdaten erhalten, die mit den Bildern übereinstimmen, die die Kamera Ihres Geräts aufnimmt. Sie können dies umgehen, indem Sie direkt von Ihrem Gerät aus mit der Trainings-API trainieren, um ein Modell mit Bildern zu trainieren, die von Ihrem IoT-Gerät aufgenommen wurden.
- Lesen Sie mehr über die Trainings-API im Schnellstart zur Verwendung des Custom Vision SDK
Aufgabe
Auf Klassifikationsergebnisse reagieren
Haftungsausschluss:
Dieses Dokument wurde mithilfe des KI-Übersetzungsdienstes 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.