Zephyrnet-Logo

Verwenden Sie Computer Vision, um den landwirtschaftlichen Ertrag mit Amazon Rekognition Custom Labels zu messen

Datum:

In der Landwirtschaft spielt das Problem der Bestimmung und Zählung der Obstmenge an Bäumen eine wichtige Rolle bei der Ernteschätzung. Das Konzept des Mietens und Verpachtens eines Baumes wird immer beliebter, bei dem ein Baumbesitzer den Baum jedes Jahr vor der Ernte auf der Grundlage des geschätzten Fruchtertrags verpachtet. Die gängige Praxis, Obst manuell zu zählen, ist ein zeitaufwändiger und arbeitsintensiver Prozess. Dies ist eine der schwierigsten, aber wichtigsten Aufgaben, um bessere Ergebnisse in Ihrem Pflanzenmanagementsystem zu erzielen. Diese Schätzung der Obst- und Blumenmenge hilft den Landwirten, bessere Entscheidungen zu treffen – nicht nur in Bezug auf die Pachtpreise, sondern auch in Bezug auf Anbaupraktiken und die Vorbeugung von Pflanzenkrankheiten.

Hier kann eine automatisierte Lösung für maschinelles Lernen (ML) für Computer Vision (CV) den Landwirten helfen. Benutzerdefinierte Etiketten von Amazon Rekognition ist ein vollständig verwalteter Computer-Vision-Service, der es Entwicklern ermöglicht, benutzerdefinierte Modelle zu erstellen, um Objekte in Bildern zu klassifizieren und zu identifizieren, die spezifisch und einzigartig für Ihr Unternehmen sind.

Rekognition Custom Labels erfordert keine Vorkenntnisse im Bereich Computer Vision. Sie können beginnen, indem Sie einfach Dutzende von Bildern anstelle von Tausenden hochladen. Wenn die Bilder bereits beschriftet sind, können Sie mit nur wenigen Klicks mit dem Training eines Modells beginnen. Wenn nicht, können Sie sie direkt in der Rekognition Custom Labels-Konsole beschriften oder verwenden Amazon Sagemaker Ground Truth sie zu beschriften. Rekognition Custom Labels verwendet Transfer Learning, um die Trainingsdaten automatisch zu untersuchen, das richtige Modell-Framework und den richtigen Algorithmus auszuwählen, die Hyperparameter zu optimieren und das Modell zu trainieren. Wenn Sie mit der Modellgenauigkeit zufrieden sind, können Sie das trainierte Modell mit nur einem Klick hosten.

In diesem Beitrag zeigen wir, wie Sie mithilfe von Rekognition Custom Labels eine End-to-End-Lösung erstellen können, um Obst zu erkennen und zu zählen, um den landwirtschaftlichen Ertrag zu messen.

Lösungsüberblick

Wir erstellen ein benutzerdefiniertes Modell zum Erkennen von Früchten mit den folgenden Schritten:

  1. Beschriften Sie einen Datensatz mit Bildern, die Früchte enthalten, mit Amazon Sagemaker Ground Truth.
  2. Erstellen Sie ein Projekt in Rekognition Custom Labels.
  3. Importieren Sie Ihren beschrifteten Datensatz.
  4. Trainiere das Modell.
  5. Testen Sie das neue benutzerdefinierte Modell mithilfe des automatisch generierten API-Endpunkts.

Mit Rekognition Custom Labels können Sie den ML-Modell-Trainingsprozess auf der Amazon Rekognition-Konsole verwalten, was die End-to-End-Modellentwicklung und den Inferenzprozess vereinfacht.

Voraussetzungen:

Um ein Ertragsmessmodell für die Landwirtschaft zu erstellen, müssen Sie zunächst einen Datensatz vorbereiten, mit dem Sie das Modell trainieren können. Für diesen Beitrag besteht unser Datensatz aus Bildern von Früchten. Die folgenden Bilder zeigen einige Beispiele.

Wir haben unsere Bilder aus unserem eigenen Garten bezogen. Sie können die Bilddateien von herunterladen GitHub Repo.

Für diesen Beitrag verwenden wir nur eine Handvoll Bilder, um den Anwendungsfall des Fruchtertrags zu zeigen. Sie können mit weiteren Bildern weiter experimentieren.

Führen Sie die folgenden Schritte aus, um Ihren Datensatz vorzubereiten:

  1. Erstellen Sie ein Amazon Simple Storage-Service (Amazon S3) Eimer.
  2. Erstellen Sie zwei Ordner in diesem Bucket mit dem Namen raw_data und test_data, um Bilder für Beschriftungs- und Modelltests zu speichern.
  3. Auswählen Hochladen um die Bilder aus dem GitHub-Repo in ihre jeweiligen Ordner hochzuladen.

Die hochgeladenen Bilder sind nicht beschriftet. Im folgenden Schritt beschriften Sie die Bilder.

Beschriften Sie Ihren Datensatz mit Ground Truth

Um das ML-Modell zu trainieren, benötigen Sie beschriftete Bilder. Ground Truth bietet einen einfachen Prozess zum Beschriften der Bilder. Die Etikettierungsaufgabe wird von einer menschlichen Arbeitskraft durchgeführt; In diesem Beitrag erstellen Sie eine private Belegschaft. Sie können verwenden Amazon Mechanischer Türke zur maßstäblichen Beschriftung.

Erstellen Sie eine Beschriftungsbelegschaft

Lassen Sie uns zuerst unsere Belegschaft für die Etikettierung erstellen. Führen Sie die folgenden Schritte aus:

  1. Auf der SageMaker-Konsole unter Grundwahrheit Wählen Sie im Navigationsbereich Kennzeichnung von Arbeitskräften.
  2. Auf dem Privat Tab, wählen Sie Erstellen Sie ein privates Team.
  3. Aussichten für Teamname, geben Sie einen Namen für Ihre Belegschaft ein (für diesen Beitrag labeling-team).
  4. Auswählen Erstellen Sie ein privates Team.
  5. Auswählen Laden Sie neue Mitarbeiter ein.

  6. Im Mitarbeiter nach E-Mail-Adresse hinzufügen Geben Sie im Abschnitt die E-Mail-Adressen Ihrer Mitarbeiter ein. Geben Sie für diesen Beitrag Ihre eigene E-Mail-Adresse ein.
  7. Auswählen Laden Sie neue Mitarbeiter ein.

Sie haben eine Belegschaft für die Etikettierung erstellt, die Sie im nächsten Schritt beim Erstellen eines Etikettierungsauftrags verwenden.

Erstellen Sie einen Ground Truth-Beschriftungsjob

Führen Sie die folgenden Schritte aus, um Ihren Etikettierauftrag zu optimieren:

  1. Auf der SageMaker-Konsole unter Grundwahrheit, wählen Beschriften von Jobs.
  2. Auswählen Beschriftungsjob erstellen.
  3. Aussichten für Berufsbezeichnung, eingeben fruits-detection.
  4. Auswählen Ich möchte einen Label-Attributnamen angeben, der sich vom Labeling-Jobnamen unterscheidet.
  5. Aussichten für Name des Beschriftungsattributseingeben Labels.
  6. Aussichten für Eingabedaten einrichtenWählen Automatisierte Dateneinrichtung.
  7. Aussichten für S3-Speicherort für Eingabedatensätze, geben Sie den S3-Speicherort der Bilder ein, indem Sie den zuvor erstellten Bucket verwenden (s3://{your-bucket-name}/raw-data/images/).
  8. Aussichten für S3-Speicherort für AusgabedatensätzeWählen Geben Sie einen neuen Standort an und geben Sie den Ausgabeort für kommentierte Daten ein (s3://{your-bucket-name}/annotated-data/).
  9. Aussichten für Datentyp, wählen Bild.
  10. Auswählen Komplette Dateneinrichtung.
    Dadurch wird die Image-Manifestdatei erstellt und der S3-Eingabepfad aktualisiert. Warten Sie auf die Meldung „Datenverbindung erfolgreich eingeben“.
  11. Erweitern Sie die Funktionalität der Zusätzliche Konfiguration.
  12. Bestätige das Vollständiger Datensatz ist ausgewählt.
    Hiermit legen Sie fest, ob Sie alle Bilder für den Etikettierauftrag bereitstellen möchten oder eine Teilmenge von Bildern basierend auf Filtern oder Zufallsstichproben.
  13. Aussichten für Aufgabenkategorie, wählen Bild weil dies eine Aufgabe für die Bildannotation ist.
  14. Da dies ein Anwendungsfall zur Objekterkennung ist, z AufgabenauswahlWählen Begrenzungsrahmen.
  15. Belassen Sie die anderen Optionen als Standard und wählen Sie Weiter.
  16. Auswählen Weiter.

    Nun legen Sie Ihre Worker fest und konfigurieren das Labeling-Tool.
  17. Aussichten für ArbeitertypenWählen Privat.Für diesen Beitrag verwenden Sie eine interne Belegschaft, um die Bilder zu kommentieren. Sie haben auch die Möglichkeit, einen öffentlichen Vertragsarbeitnehmer auszuwählen (Amazon Mechanical Turk) oder eine Partner-Belegschaft (Anbieter verwaltet) abhängig von Ihrem Anwendungsfall.
  18. Wählen Sie für private Teams¸ das Team aus, das Sie zuvor erstellt haben.
  19. Belassen Sie die anderen Optionen als Standard und scrollen Sie nach unten zu Beschriftungstool für Begrenzungsrahmen.Es ist wichtig, hier im Labeling-Tool klare Anweisungen für das Private-Labeling-Team zu geben. Diese Anleitung dient als Leitfaden für Kommentatoren beim Beschriften. Gute Anweisungen sind prägnant, daher empfehlen wir, die verbalen oder textlichen Anweisungen auf zwei Sätze zu beschränken und sich auf visuelle Anweisungen zu konzentrieren. Im Falle der Bildklassifizierung empfehlen wir, in jeder Klasse ein beschriftetes Bild als Teil der Anweisungen bereitzustellen.
  20. Fügen Sie zwei Labels hinzu: fruit und no_fruit.
  21. Geben Sie detaillierte Anweisungen in die ein Beschreibungsfeld bereitzustellen Anweisungen an die Arbeiter. Zum Beispiel: You need to label fruits in the provided image. Please ensure that you select label 'fruit' and draw the box around the fruit just to fit the fruit for better quality of label data. You also need to label other areas which look similar to fruit but are not fruit with label 'no_fruit'. Optional können Sie auch Beispiele für gute und schlechte Beschriftungsbilder bereitstellen. Sie müssen sicherstellen, dass diese Bilder öffentlich zugänglich sind.
  22. Auswählen Erstellen um den Etikettierauftrag zu erstellen.

Nachdem der Job erfolgreich erstellt wurde, besteht der nächste Schritt darin, die Eingabebilder zu kennzeichnen.

Starten Sie den Etikettierauftrag

Sobald Sie den Job erfolgreich erstellt haben, ist der Status des Jobs InProgress. Das bedeutet, dass der Job erstellt wird und die private Belegschaft per E-Mail über die ihnen zugewiesene Aufgabe benachrichtigt wird. Da Sie sich die Aufgabe selbst zugewiesen haben, sollten Sie eine E-Mail mit Anweisungen erhalten, sich beim Ground Truth Labeling-Projekt anzumelden.

  1. Öffnen Sie die E-Mail und wählen Sie den bereitgestellten Link aus.
  2. Geben Sie den Benutzernamen und das Passwort aus der E-Mail ein.
    Möglicherweise müssen Sie das in der E-Mail angegebene temporäre Passwort nach der Anmeldung in ein neues Passwort ändern.
  3. Nachdem Sie sich angemeldet haben, wählen Sie Ihren Job aus und wählen Sie Beginne zu arbeiten.

    Sie können die bereitgestellten Werkzeuge zum Vergrößern, Verkleinern, Verschieben und Zeichnen von Begrenzungsrahmen in den Bildern verwenden.
  4. Wählen Sie Ihr Etikett (fruit or no_fruit) und ziehen Sie dann einen Begrenzungsrahmen in das Bild, um es mit Anmerkungen zu versehen.
  5. Wenn Sie fertig sind, wählen Sie Absenden.

Jetzt haben Sie korrekt beschriftete Bilder, die vom ML-Modell für das Training verwendet werden.

Erstellen Sie Ihr Amazon Rekognition-Projekt

Führen Sie die folgenden Schritte aus, um Ihr landwirtschaftliches Ertragsmessprojekt zu erstellen:

  1. Wählen Sie in der Amazon Rekognition-Konsole aus Kundenspezifische Etiketten.
  2. Auswählen Loslegen .
  3. Aussichten für Projektname, eingeben fruits_yield.
  4. Auswählen Projekt anlegen.

Sie können auch ein Projekt auf dem erstellen Projekte Seite. Sie können auf die zugreifen Projekte Seite über das Navigationsfenster. Der nächste Schritt besteht darin, Bilder als Eingabe bereitzustellen.

Importieren Sie Ihren Datensatz

Um Ihr landwirtschaftliches Ertragsmessmodell zu erstellen, müssen Sie zunächst einen Datensatz importieren, um das Modell damit zu trainieren. Für diesen Beitrag ist unser Datensatz bereits mit Ground Truth gekennzeichnet.

  1. Aussichten für Bilder importierenWählen Importieren Sie mit SageMaker Ground Truth gekennzeichnete Bilder.
  2. Aussichten für Speicherort der Manifestdatei, geben Sie den Speicherort des S3-Buckets Ihrer Manifestdatei ein (s3://{your-bucket-name}/fruits_image/annotated_data/fruits-labels/manifests/output/output.manifest).
  3. Auswählen Datensatz erstellen.

Sie können Ihren beschrifteten Datensatz sehen.

Jetzt haben Sie Ihren Eingabedatensatz für das ML-Modell, um mit dem Training zu beginnen.

Trainieren Sie Ihr Modell

Nachdem Sie Ihre Bilder beschriftet haben, können Sie Ihr Modell trainieren.

  1. Auswählen Zugmodell.
  2. Aussichten für Projekt auswählen, wählen Sie Ihr Projekt aus fruits_yield.
  3. Auswählen Zugmodell.

Warten Sie, bis das Training abgeschlossen ist. Jetzt können Sie mit dem Testen der Leistung für dieses trainierte Modell beginnen.

Testen Sie Ihr Modell

Ihr landwirtschaftliches Ertragsmessmodell ist nun einsatzbereit und sollte im Running Zustand. Führen Sie die folgenden Schritte aus, um das Modell zu testen:

Schritt 1: Starten Sie das Modell

Auf Ihrer Modelldetailseite auf der Modell verwenden Tab, wählen Sie Startseite.

Rekognition Custom Labels stellt auch die API-Aufrufe zum Starten, Verwenden und Stoppen Ihres Modells bereit.

Schritt 2: Testen Sie das Modell

Wenn das Modell in der Running Status können Sie das Beispieltestskript verwenden analyzeImage.py die Menge an Obst in einem Bild zu zählen.

  1. Laden Sie dieses Skript von der herunter GitHub Repo.
  2. Bearbeiten Sie diese Datei, um den Parameter zu ersetzen bucket mit Ihrem Bucket-Namen und model mit Ihrem Amazon Rekognition-Modell-ARN.

Wir verwenden die Parameter photo und min_confidence als Eingabe für dieses Python-Skript.

Sie können dieses Skript lokal mit dem ausführen AWS-Befehlszeilenschnittstelle (AWS CLI) oder verwenden AWS CloudShell. In unserem Beispiel haben wir das Skript über die CloudShell-Konsole ausgeführt. Beachten Sie, dass CloudShell ist frei zu benutzen.

Stellen Sie sicher, dass Sie die erforderlichen Abhängigkeiten mit dem Befehl installieren pip3 install boto3 PILLOW falls noch nicht installiert.

  1. Datei hochladen analyzeImage.py zu CloudShell mit der Aktionen Menü.

Der folgende Screenshot zeigt die Ausgabe, die zwei Früchte im Eingabebild erkannt hat. Wir haben 15.jpeg als Fotoargument und 85 als Argument angegeben min_confidence Wert.

Das folgende Beispiel zeigt Bild 15.jpeg mit zwei Begrenzungsrahmen.

Sie können dasselbe Skript mit anderen Bildern ausführen und experimentieren, indem Sie den Konfidenzwert weiter ändern.

Schritt 3: Stoppen Sie das Modell

Wenn Sie fertig sind, denken Sie daran, das Modell zu stoppen, um unnötige Gebühren zu vermeiden. Wählen Sie auf Ihrer Modelldetailseite auf der Registerkarte Modell verwenden die Option Stopp aus.

Aufräumen

Um unnötige Gebühren zu vermeiden, löschen Sie die in dieser exemplarischen Vorgehensweise verwendeten Ressourcen, wenn sie nicht verwendet werden. Wir müssen das Amazon Rekognition-Projekt und den S3-Bucket löschen.

Löschen Sie das Amazon Rekognition-Projekt

Führen Sie die folgenden Schritte aus, um das Amazon Rekognition-Projekt zu löschen:

  1. Wählen Sie in der Amazon Rekognition-Konsole aus Verwenden Sie benutzerdefinierte Beschriftungen.
  2. Auswählen Los geht´s.
  3. Wählen Sie im Navigationsbereich Projekte.
  4. Auf dem Projekte Seite, wählen Sie das Projekt aus, das Sie löschen möchten.
    1. Auswählen Löschen.
      Das Projekt löschen Das Dialogfeld wird angezeigt.
  5. Wenn das Projekt keine zugeordneten Modelle hat:
    1. Enter löschen um das Projekt zu löschen.
    2. Auswählen Löschen um das Projekt zu löschen.
  6. Wenn das Projekt über verknüpfte Modelle oder Datensätze verfügt:
    1. Enter löschen um zu bestätigen, dass Sie das Modell und die Datensätze löschen möchten.
    2. Wählen Sie beides Löschen Sie zugeordnete Modelle, Löschen Sie zugehörige Datensätze, oder Löschen Sie zugeordnete Datasets und Modelle, je nachdem, ob das Modell über Datasets, Modelle oder beides verfügt.

    Das Löschen des Modells kann eine Weile dauern. Beachten Sie, dass die Amazon Rekognition-Konsole keine Modelle löschen kann, die trainiert oder ausgeführt werden. Versuchen Sie es erneut, nachdem Sie alle aufgeführten ausgeführten Modelle gestoppt haben, und warten Sie, bis die als Training aufgeführten Modelle abgeschlossen sind. Wenn Sie das Dialogfeld während des Löschens des Modells schließen, werden die Modelle dennoch gelöscht. Später können Sie das Projekt löschen, indem Sie diesen Vorgang wiederholen.

  7. Enter löschen um zu bestätigen, dass Sie das Projekt löschen möchten.
  8. Auswählen Löschen um das Projekt zu löschen.

Löschen Sie Ihren S3-Bucket

Sie müssen den Bucket zuerst leeren und dann löschen.

  1. Auf dem Amazon S3 Konsole wählen Eimer.
  2. Wählen Sie den Eimer aus, den Sie leeren möchten, und wählen Sie dann aus leer.
  3. Bestätigen Sie, dass Sie den Bucket leeren möchten, indem Sie den Bucket-Namen in das Textfeld eingeben und dann wählen leer.
  4. Auswählen Löschen.
  5. Bestätigen Sie, dass Sie den Bucket löschen möchten, indem Sie den Bucket-Namen in das Textfeld eingeben und dann auswählen Eimer löschen.

Zusammenfassung

In diesem Beitrag haben wir Ihnen gezeigt, wie Sie mit Rekognition Custom Labels ein Objekterkennungsmodell erstellen. Diese Funktion erleichtert das Trainieren eines benutzerdefinierten Modells, das eine Objektklasse erkennen kann, ohne dass andere Objekte angegeben werden müssen oder die Genauigkeit der Ergebnisse verloren geht.

Weitere Informationen zur Verwendung benutzerdefinierter Beschriftungen finden Sie unter Was sind benutzerdefinierte Etiketten von Amazon Rekognition?


Über die Autoren

Dhiraj Thakur ist ein Lösungsarchitekt bei Amazon Web Services. Er arbeitet mit AWS-Kunden und -Partnern zusammen, um Anleitungen zur Einführung, Migration und Strategie von Unternehmens-Clouds zu geben. Er liebt Technologie und baut und experimentiert gerne im Bereich Analytics und AI / ML.

Sameer Goel ist ein Sr. Solutions Architect in den Niederlanden, der den Kundenerfolg vorantreibt, indem er Prototypen für innovative Initiativen baut. Bevor er zu AWS kam, schloss Sameer sein Studium mit einem Master-Abschluss in Boston mit Schwerpunkt Datenwissenschaft ab. Er baut und experimentiert gerne mit KI/ML-Projekten auf Raspberry Pi. Sie finden ihn auf LinkedIn.

spot_img

Neueste Intelligenz

spot_img

Chat mit uns

Hallo! Wie kann ich dir helfen?