Hallo AWS – Verwenden Sie Amazon Rekognition, um Ihre eigenen benutzerdefinierten Etiketten zu erkennen | Mendix

Direkt zum Inhalt

Hallo AWS – Verwenden Sie Amazon Rekognition, um Ihre eigenen benutzerdefinierten Labels zu erkennen

In diesem Blog werfen wir einen Blick auf den Amazon Rekognition-Connector und sehen, wie einfach es ist, die Aktion „Benutzerdefinierte Labels erkennen“ in Mendix.
Amazon Rekognition ist ein Deep-Learning-Bildanalysedienst, mit dem Sie Ihre eigenen Modelle mit nur wenigen Bildern trainieren können.
Mit der Mendix Connector lässt sich ganz einfach in Ihrer App einrichten. Von der Gesichtserkennung bis zur Erstellung Ihrer eigenen benutzerdefinierten Beschriftungen können Sie ihn trainieren, alles in einem Bild zu erkennen, was Sie möchten.
Also habe ich mir natürlich etwas super Praktisches und Nützliches für den Alltag ausgedacht – ich habe eine App entwickelt, die verschiedene Hunderassen in Bildern erkennt. Die Inspiration dafür kam von meinem eigenen Hund Bean, der ständig die Frage aufwirft: „Was für eine Hunderasse ist das?“ Wenn Sie sich schon einmal gefragt haben: „Was für eine Hunderasse ist das?“, dann gibt es jetzt eine App dafür!
Spaß beiseite: Ich wollte etwas schaffen, das zeigt, wie einfach es ist, ein Rekognition-Modell darauf zu trainieren, alles zu erkennen, was man will, und es dazu zu bringen, verschiedene Hunderassen zu erkennen, schien mir ein unterhaltsames Beispiel zu sein.

Bevor wir anfangen

In diesem Blog verwenden wir sitzungsbasierte Anmeldeinformationen, über die ich in meinem letzten Beitrag gesprochen habe. Wenn Sie ihn also noch nicht gelesen oder angesehen haben, klicken Sie auf den Link unten, um zurückzugehen und es jetzt nachzuholen. Heute werden wir auf dem aufbauen, was wir letztes Mal getan haben.

Einrichten Ihres S3-Eimers

Der erste Schritt zum Erstellen eines Rekognition-Projekts besteht darin, den Datensatz zu erstellen, mit dem Ihr Modell trainiert wird. Das bedeutet, dass wir einen Amazon S3-Bucket erstellen müssen und danach unsere Bilder hochladen können, um das Modell zu trainieren. Um Ihren S3-Bucket zu erstellen, folgen Sie diesen Schritten:
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon S3-Konsole. Dann wählen wir Eimer erstellen.
  2. Geben Sie einen Namen für unseren Bucket ein. Ich werde meinen „HelloRekognition“ nennen.
  3. Wählen Sie unter „Region“ die AWS-Region aus, in der sich der Bucket befinden soll.
    • Wählen Sie eine Region in Ihrer Nähe, um Latenz und Kosten zu minimieren und gesetzliche Anforderungen zu erfüllen.
  4. Lassen Sie alles andere wie Standard, scrollen Sie nach unten und klicken Sie auf Eimer erstellen .
5 Laden Sie Ihre Bilder in den Bucket hoch. Stellen Sie jedoch zunächst sicher, dass sie eine Ordnerstruktur haben und dass die Ordner richtig benannt sind. Diese Ordnernamen werden zum Erstellen der Tags verwendet, die Amazon Rekognition an Sie zurückgibt. 
Wenn wir uns meine Fotos ansehen, habe ich alle Unterordner in einem übergeordneten Ordner und jeder Unterordner ist nach einer Hunderasse benannt. Sobald das Modell trainiert ist, gibt Amazon Rekognition mir diese Ordnernamen als Beschriftungen zurück, zusammen mit einem Sicherheitswert zwischen 1 und 100.
https://docs.aws.amazon.com/rekognition/latest/customlabels-dg/im-metrics-use.html

Erstellen Ihres Amazon Rekognition-Modells

Als nächstes müssen wir Ihr Amazon Rekognition-Modell erstellen und trainieren. Dies ist ein ziemlich einfacher Schritt
  1. Wenn Sie Amazon Rekognition noch nie zuvor in einer Region verwendet haben, werden Sie aufgefordert, einen S3-Bucket zu erstellen. Dieser ist von dem Bucket, den wir gerade erstellt haben, getrennt – er speichert nur Informationen, die Ihre Projekte benötigen.
    • Klicken Sie auf S3-Bucket erstellen um fortzufahren.
  2. Als nächstes müssen wir unser Projekt erstellen und dafür benutzerdefinierte Labels verwenden. Auf der Seite mit den benutzerdefinierten Labels können wir also auf „Erste Schritte“ klicken.
  3. Wählen Projekt anlegen.
    • Geben Sie unter Projektname einen Namen für Ihr Projekt ein. Ich werde meines nennen halloAWS. Wählen Sie Projekt anlegen um hier Ihr Finish zu erstellen.
  4. Wir müssen einen Datensatz für unser neu erstelltes Projekt erstellen und hier müssen wir den S3-Bucket angeben, den wir erstellt und in den wir unsere Fotos hochgeladen haben.
    • Wählen Datensatz erstellen.
    • Wählen Beginnen Sie mit einem einzelnen Datensatz
    • Wählen Sie „Bilder aus dem Amazon S3-Bucket importieren“.
    • Geben Sie in der S3-URI den Speicherort und den Ordnerpfad des Amazon S3-Buckets ein. Wir möchten den Pfad für den übergeordneten Ordner
    • Als Nächstes können wir „Bildern automatisch Beschriftungen basierend auf dem Ordner hinzufügen“ auswählen.
    • Wählen Datensätze erstellen. Die Datensatzseite für Ihr Projekt sollte jetzt geöffnet werden.

Ändern der Richtlinie Ihres S3-Buckets

Scrollen Sie nach unten und kopieren Sie die bereitgestellte Richtlinie. Öffnen Sie in einem neuen Tab die S3-Konsole und wählen Sie Ihren Bucket mit Bildern aus.
Auf dem Berechtigungen scrollen Sie nach unten zu Eimer und klicken Sie auf Bearbeiten und fügen Sie die Richtlinie ein.
Denken Sie daran, nach dem Einfügen der Bucket-Einschränkungen alle führenden Leerzeichen zu löschen:
Ändern Sie den Auftraggeber von rekognition.amazonaws.com Dienst zur ARN der Rolle, die in jeder Instanz von: erstellt wurde:
"Principal": {
  "Service" : "rekognition.amazonaws.com"
}
und
"Principal": {
  "AWS" : "arn:aws:iam::"
}
Es ist wirklich wichtig, alle Vorkommen zu ersetzen – es gibt VIER Instanzen, die ersetzt werden müssen.
Klicken Sie auf Änderungen speichern um Richtlinienaktualisierungen zu speichern.
Gehen Sie zurück zur Amazon Rekognition-Konfiguration und klicken Sie auf Datensatz erstellen in der Amazon Rekognition-Konsole. Abhängig von der Anzahl der Bilder kann die Erstellung eines Datensatzes einige Minuten dauern.
Sobald unser Datensatz erstellt ist, müssen wir ihn schließlich öffnen und das Modell trainieren. Dies kann je nach Größe Ihres Datensatzes eine Weile dauern.
Das Letzte, was wir tun müssen, ist Starten Sie das Modell, und das bedeutet, dass wir unser Modell tatsächlich einschalten, damit wir es verwenden können.
https://docs.aws.amazon.com/rekognition/latest/customlabels-dg/rm-start.html

Einrichten Ihres Mendix App

In Studio Pro können wir das Marketplace-Panel öffnen und nach „Rekognition“ suchen.
Auf der Seite, die ich für Amazon Rekognition habe, habe ich eine einfache Benutzeroberfläche eingerichtet, die es mir ermöglicht, Bilder mithilfe des Bild-Uploader-Widgets hochzuladen. Ich habe auch eine Microflow-Schaltfläche, die Amazon Rekognition über einen benutzerdefinierten Microflow aufruft.
Sie können die Funktion „Benutzerdefinierte Beschriftungen erkennen“ direkt aus der Toolbox verwenden, indem Sie die Amazon Rekognition-Aktion „Benutzerdefinierte Beschriftungen erkennen“ aus unserer Toolbox hineinziehen und dann die restlichen Parameter konfigurieren. Ich habe eine einfache Schleife, um die Daten zu speichern und sie mit meinem Amazon Rekognition-Bild zu verknüpfen, damit die Beschriftungen auf der Seite angezeigt werden können.
Denken Sie daran, die Aktion einzurichten, indem Sie alle erforderlichen Parameter angeben, wie ich es im Screenshot unten getan habe.

Konfigurieren der Amazon Rekognition-Konstanten

Um die Einrichtung des Amazon Rekognition Connectors abzuschließen, müssen wir nur noch einige Konstanten im Modul festlegen, und das tun wir, indem wir die ARNS aus unserem AWS-Projekt kopieren. Sie finden alle Konstanten, die Sie zum Ausfüllen des Amazon Rekognition Connectors benötigen, wenn Sie in der Datei „Konstanten“ und dann in den Sitzungsanmeldeinformationen nachsehen.
Diese Konstanten sind für die Aktion „Sitzungsanmeldeinformationen abrufen“, es gibt jedoch auch einen Ordner, in dem Sie bei Bedarf auch die Aktion „Statische Anmeldeinformationen abrufen“ verwenden können. In diesem Fall müssen Sie sicherstellen, dass die Konstanten unter „Statisch“ konfiguriert sind. Obwohl die Verwendung statischer Anmeldeinformationen möglich ist, sind sitzungsbasierte Anmeldeinformationen die bevorzugte Authentifizierungsmethode.
Wenn wir die Konfiguration von hier an abgeschlossen haben, können Sie den Connector grundsätzlich per Drag & Drop an die Stelle in unserer App ziehen, an der wir ihn verwenden möchten.
Ich musste eine kleine Änderung vornehmen, die sich im Mikrofluss „POST_v1_DetectCustomLabels“ befand. Ich habe der Anfrage einen zusätzlichen Header „X-amz-security-token“ hinzugefügt, und dieser nimmt als Wert das mit der Anmeldeinformationsentität verbundene Sitzungstoken an.

Amazon Rekognition aufrufen

Alles ist erledigt, und wenn Sie bis hierher alles durchgelesen haben, können Sie Ihre App ausführen und testen!
Wenn Sie mir beim Testen zusehen möchten, schauen Sie sich das Video an und springen Sie zu # Video-Zeitstempel #
Ich weiß, dass die Idee meiner App ein bisschen albern ist – aber was ich Ihnen wirklich zeigen wollte, ist, dass Sie Amazon Rekognition trainieren können, mit einem sehr kleinen Datensatz fast alles zu erkennen, was Sie wollen. Wenn ich es trainieren kann, einen Mops auf einem Foto zu erkennen, dann stellen Sie sich vor, wie einfach es ist, eine Inspektions-App oder eine Bildverarbeitungsanwendung zu erstellen.
Wenn Sie an irgendeinem Punkt nicht weiterkommen, besuchen Sie unbedingt die AWS-Workshops und nehmen Sie am Kurs teil. Low-Code-Anwendungsentwicklung auf AWS mit Mendix. Es deckt alles ab, was ich gerade getan habe, aber viel ausführlicher. Besuchen Sie auch unbedingt unsere Dokumentationsseiten, wo Sie eine weitere ausführliche Übersicht über den Connector und seine Verwendung finden.

Wählen Sie Ihre Sprache