Ein Objekterkennungsmodell mit Amazon Rekognition Custom Labels und Roboflow entwickeln
Mark McQuade
Die Computer-Vision-Technologie (computerbasiertes Sehen) spielt mittlerweile in jeder Branche eine wichtige Rolle – von der Einhaltung der Vorschriften für Schutzhelme auf Baustellen, über die Identifizierung von Pflanzen und Unkraut für den gezielten Einsatz von Herbiziden bis hin zur Identifizierung und Zählung von Zellpopulationen in Laborexperimenten.
Indem wir Computern beibringen, die visuelle Welt genauso gut bzw. besser zu interpretieren als Menschen, können wir Objekte schnell identifizieren und klassifizieren und anhand dieser Informationen automatisch entsprechende Maßnahmen ergreifen. Auf diese Weise können wir die Sicherheit am Arbeitsplatz verbessern, unsere Umgebung schützen und Innovationen beschleunigen – und zwar in allen Branchen.
Probleme bei der Computer Vision
Obwohl die Computer-Vision-Ausgabe relativ einfach ist („Diese Person trägt den Schutzhelm auf der Baustelle ordnungsgemäß bzw. nicht ordnungsgemäß“), stellt das Training des Computer-Vision-Backends oft eine Herausforderung dar. Es muss in der Lage sein, Objekte genau zu identifizieren und zu klassifizieren und dabei mehrere Faktoren berücksichtigen, z. B.:
- Klassifizierung: „Das ist eine Person“.
- Klassifizierung + Lokalisierung: „Das ist eine Person auf einer Baustelle.“
- Objekterkennung: „Es befinden sich zwei Personen und ein Schutzhelm auf der Baustelle.“
- Semantische Segmentierung: „Es gibt zwei Personen und einen Schutzhelm, und das ist die Form der beiden.“
- Erkennung von Merkmalspunkten (Keypoints) und Positionsbestimmung: „Es gibt zwei Personen. Eine davon trägt einen Schutzhelm, der jedoch nicht richtig positioniert ist. Die andere trägt gar keinen Schutzhelm.“
Um die richtige Ausgabe zu erhalten, braucht man die richtige Eingabe. Und dafür sind in der Regel sieben wichtige Schritte erforderlich, die wir im Folgenden näher beleuchten.
Sieben Schritte, die zu beachten sind, wenn man ein Objekterkennungsmodell von Grund auf neu trainiert
1. Definition des Problems
Definieren Sie zunächst genau, was Sie tun möchten. Was ist Ihr Anwendungsfall? Dies wird Ihnen bei den folgenden Schritten helfen.
2. Datenerfassung
Als Nächstes müssen Sie Fotos und Videos sammeln, die für das zu lösende Problem relevant sind. Wenn Sie beispielsweise einen Detektor für Schutzhelme entwickeln möchten, müssen Sie Bilder von unterschiedlichen Schutzhelmen sowie von Umgebungen sammeln, in denen Menschen oft Schutzhelme tragen. Achten Sie darauf, dass Sie Bilder mit unterschiedlichen Aufnahmebedingungen bereitstellen: hell und dunkel, drinnen und draußen, sonnig und regnerisch, einzelne Personen und Personen in einer Gruppe usw. Je größer die Vielfalt, desto mehr kann Ihr Modell lernen.
3. Kennzeichnung mit Labels
Bei der Bildannotation gibt es Dutzende von verschiedenen Formaten – mit Labels in sämtlichen Formen und Größen. Bekannte Formate sind beispielsweise Pascal VOC, COCO JSON und YOLO TXT. Aber jedes Modellframework benötigt eine bestimmte Art von Annotation. Zum Beispiel verlangt TensorFlow TF-Datensätze, und der Erkennungsdienst benötigt eine manifest.json-Datei, die speziell für die AWS-Annotation bestimmt ist.
Achten Sie deshalb vor allem darauf, dass Ihre Bilder in einem einheitlichen Format gekennzeichnet sind, das Ihrem Modellframework entspricht. Zudem sollten Sie ein Tool wie Amazon SageMaker Ground Truth verwenden, um den Prozess zu optimieren.
Diese Tipps sollten Sie bei der Kennzeichnung beachten:
- Kennzeichnen Sie den gesamten Bereich um das Objekt herum. Es ist besser, einen kleinen Teil, der nicht zum Objekt gehört, einzuschließen, als einen Teil des Objekts innerhalb eines rechteckigen Labels auszuschließen. Auf diese Weise kann Ihr Modell die Ränder wesentlich besser verstehen.
- Kennzeichnen Sie ausgeblendete/verdeckte Objekte vollständig. Wenn ein Objekt aufgrund eines davor platzierten Objekts nicht sichtbar ist, sollten Sie das Objekt dennoch so beschriften, als ob Sie es in seiner Gesamtheit sehen könnten. Auf diese Weise entwickelt Ihr Modell ein Verständnis für die tatsächlichen Abgrenzungen von Objekten.
- Objekte, die sich nur zum Teil im Rahmen befinden, sollten in der Regel gekennzeichnet werden. Zwar hängt dies von dem Problem ab, das Sie zu lösen versuchen, grundsätzlich gilt jedoch, dass auch Teilobjekte zu kennzeichnen sind.
4. Vorverarbeitung der Daten
Jetzt müssen Sie sicherstellen, dass Ihre Daten für Ihr Modell richtig formatiert sind – dabei sollte je nach Bedarf die Größe und Ausrichtung verändert werden, Farbkorrekturen vorgenommen werden und so weiter. Wenn für Ihr Modell beispielsweise ein quadratisches Seitenverhältnis erforderlich ist, sollten Sie Ihre Fotos/Videos so formatieren, dass sie eine quadratische Fläche ausfüllen, indem Sie eventuell schwarze oder weiße Pixel verwenden, um den leeren Raum auszufüllen.
Zudem sollten Sie die EXIF-/Metadaten aus Ihren Bildern entfernen, da diese mitunter das Modell verwirren. Wenn das Modell nicht auf Farben reagieren soll (z. B. wenn es keine Rolle spielt, welche Farbe der Schutzhelm hat), können Sie Ihre Bilder/Videos im Graustufen-Format formatieren, um diesen Faktor auszuschließen.
5. Erweiterung der Daten
Als Nächstes sollten Sie Ihre vorhandenen Inhalte unterschiedlich formatieren, damit Sie Ihr Modell einer breiteren Palette von Trainingsbeispielen aussetzen können. Indem Sie Ihre Bilder spiegeln, drehen, verzerren, unscharf machen und die Farben anpassen, erzeugen Sie im Grunde neue Daten.
Anstatt also tatsächlich Fotos von Personen mit Schutzhelmen bei unterschiedlichen Lichtverhältnissen zu machen, können Sie mithilfe der Erweiterungen eine hellere oder schwächere Raumbeleuchtung simulieren. Darüber hinaus können Sie Ihr Modell so trainieren, dass es nicht durch Verdeckung beeinträchtigt wird. Auf diese Weise erkennt es ein Objekt selbst dann noch, wenn es von einem anderen Objekt verdeckt wird. Hierzu können Sie Fotos/Videos mit „Black Box“-Ausschnitten versehen, um das Modell zu trainieren.
6. Training des Modells
Für das Training Ihres Modells kommt ein Tool wie Amazon Rekognition Custom Labels zum Einsatz, das die Eingaben verarbeitet, die Sie in den ersten fünf Schritten erstellt haben. Sie müssen jedoch entscheiden, was für Ihren Anwendungsfall am wichtigsten ist: Genauigkeit, Geschwindigkeit oder Modellgröße? Diese Faktoren gleichen sich in der Regel gegenseitig aus.
7. Inferenz
Jetzt ist es an der Zeit, dass Ihr Modell in Produktion geht. Hier spielt die Art der Implementierung eine wichtige Rolle. Möchten Sie beispielsweise integrierte Geräte wie Kameras in einer Fertigungsstraße verwenden? Oder handelt es sich um eine serverseitige Implementierung mit APIs?
Den Prozess in Aktion sehen
Im letzten Jahr haben wir ein Webinar aufgezeichnet, in dem die Verwendung von Amazon Rekognition Custom Labels mit Roboflow zur Implementierung eines Erkennungssystems erläutert wurde. Das System kann erkennen, ob Personen eine Gesichtsmaske tragen oder nicht. Sie können die gleichen Schritte für Ihre eigenen Objekterkennungsmodelle anwenden, um Ihre eigenen Anwendungsfälle zu bedienen.
Schauen Sie sich unser On-Demand-Webinar an, um den End-to-End-Prozess zur Erstellung eines funktionsfähigen Objekterkennungsmodells zu verfolgen.
Recent Posts
Datenhoheit: Damit Ihre Bytes am richtigen Ort sind
Dezember 6th, 2024
Höhepunkte der Keynote von Dr. Werner Vogels: Komplexität mit Einfachheit managen
Dezember 6th, 2024
Die Macht der Partnerschaften: Dr. Ruba Borno's 2024 AWS re:Invent Partner Keynote
Dezember 5th, 2024