TensorFlow Lite-Bildklassifizierung - AWS IoT Greengrass

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

TensorFlow Lite-Bildklassifizierung

Die TensorFlow Lite-Komponente zur Bildklassifizierung (aws.greengrass.TensorFlowLiteImageClassification) enthält einen Beispiel-Inferenzcode für die Durchführung von Inferenzen zur Bildklassifizierung mithilfe der TensorFlow Lite-Laufzeit und ein vortrainiertes quantisiertes MobileNet 1.0-Beispielmodell. Diese Komponente verwendet die Variante TensorFlow Modellspeicher für Lite-Bildklassifizierung und die TensorFlow Lite-Laufzeit Komponenten als Abhängigkeiten, um die TensorFlow Lite-Laufzeit und das Beispielmodell herunterzuladen.

Um diese Inferenzkomponente mit einem individuell trainierten TensorFlow Lite-Modell zu verwenden, erstellen Sie eine benutzerdefinierte Version der abhängigen Modellspeicherkomponente. Um Ihren eigenen benutzerdefinierten Inferenzcode zu verwenden, können Sie das Rezept dieser Komponente als Vorlage verwenden, um eine benutzerdefinierte Inferenzkomponente zu erstellen.

Versionen

Diese Komponente hat die folgenden Versionen:

  • 2.1.x

Typ

Diese Komponente ist eine generische Komponente () aws.greengrass.generic. Der Greengrass-Kern führt die Lebenszyklusskripte der Komponente aus.

Weitere Informationen finden Sie unter Komponententypen.

Betriebssystem

Diese Komponente kann auf Kerngeräten installiert werden, auf denen die folgenden Betriebssysteme ausgeführt werden:

  • Linux

  • Windows

Voraussetzungen

Für diese Komponente gelten die folgenden Anforderungen:

  • Auf Greengrass-Core-Geräten, auf denen Amazon Linux 2 oder Ubuntu 18.04 ausgeführt wird, ist die GNU C Library (Glibc) Version 2.27 oder höher auf dem Gerät installiert.

  • Auf ARMv7L-Geräten wie Raspberry Pi sind Abhängigkeiten für OpenCV-Python auf dem Gerät installiert. Führen Sie den folgenden Befehl aus, um die Abhängigkeiten zu installieren.

    sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  • Raspberry Pi-Geräte, auf denen Raspberry Pi OS Bullseye ausgeführt wird, müssen die folgenden Anforderungen erfüllen:

    • NumPy 1.22.4 oder höher auf dem Gerät installiert. Raspberry Pi OS Bullseye enthält eine frühere Version von NumPy, sodass Sie den folgenden Befehl ausführen können, um das Gerät zu aktualisieren NumPy .

      pip3 install --upgrade numpy
    • Der ältere Kamerastack ist auf dem Gerät aktiviert. Raspberry Pi OS Bullseye enthält einen neuen Kamerastack, der standardmäßig aktiviert und nicht kompatibel ist. Sie müssen also den älteren Kamerastack aktivieren.

      Um den alten Kamerastack zu aktivieren
      1. Führen Sie den folgenden Befehl aus, um das Raspberry Pi-Konfigurationstool zu öffnen.

        sudo raspi-config
      2. Wählen Sie Schnittstellenoptionen.

      3. Wählen Sie Legacy-Kamera aus, um den Legacy-Kamerastack zu aktivieren.

      4. Starten Sie den Raspberry Pi neu.

Abhängigkeiten

Wenn Sie eine Komponente bereitstellen, stellt sie AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereit. Das bedeutet, dass Sie die Anforderungen für die Komponente und all ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitstellen zu können. In diesem Abschnitt werden die Abhängigkeiten für die veröffentlichten Versionen dieser Komponente sowie die semantischen Versionseinschränkungen aufgeführt, die die Komponentenversionen für jede Abhängigkeit definieren. Sie können die Abhängigkeiten für jede Version der Komponente auch in der AWS IoT Greengrass Konsole anzeigen. Suchen Sie auf der Seite mit den Komponentendetails nach der Liste der Abhängigkeiten.

2.1.11 and 2.1.12

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.1.11 und 2.1.12 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.13.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart
2.1.10

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.10 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.12.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart
2.1.9

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.9 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.11.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart
2.1.8

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.8 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.10.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart
2.1.7

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.7 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.9.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart
2.1.6

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.6 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.8.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart
2.1.5

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.5 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.7.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart
2.1.4

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.4 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.6.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart
2.1.3

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.3 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.5.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart
2.1.2

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.2 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.4.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart
2.1.1

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.1 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.3.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart
2.1.0

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.0 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Art der Abhängigkeit
Grüngraskern >=2.0.0 <2.2.0 Weich
TensorFlow Lite-Modellspeicher zur Bildklassifizierung >=2.1.0 <2.2.0 Hart
TensorFlow Leicht >=2,5,0 <2,6,0 Hart

Konfiguration

Diese Komponente stellt die folgenden Konfigurationsparameter bereit, die Sie bei der Bereitstellung der Komponente anpassen können.

accessControl

(Optional) Das Objekt, das die Autorisierungsrichtlinie enthält, die es der Komponente ermöglicht, Nachrichten unter dem Standardthema für Benachrichtigungen zu veröffentlichen.

Standard:

{ "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.TensorFlowLiteImageClassification:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/tflite/image-classification.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/tflite/image-classification" ] } } }
PublishResultsOnTopic

(Optional) Das Thema, zu dem Sie die Inferenzergebnisse veröffentlichen möchten. Wenn Sie diesen Wert ändern, müssen Sie auch den Wert von resources im accessControl Parameter so ändern, dass er Ihrem benutzerdefinierten Themennamen entspricht.

Standard: ml/tflite/image-classification

Accelerator

Der Beschleuniger, den Sie verwenden möchten. Unterstützte Werte sind cpu und gpu.

Die Beispielmodelle in der abhängigen Modellkomponente unterstützen nur CPU-Beschleunigung. Um die GPU-Beschleunigung mit einem anderen benutzerdefinierten Modell zu verwenden, erstellen Sie eine benutzerdefinierte Modellkomponente, um die öffentliche Modellkomponente zu überschreiben.

Standard: cpu

ImageDirectory

(Optional) Der Pfad des Ordners auf dem Gerät, in dem Inferenzkomponenten Bilder lesen. Sie können diesen Wert an einen beliebigen Ort auf Ihrem Gerät ändern, auf den Sie Lese-/Schreibzugriff haben.

Standard: /greengrass/v2/packages/artifacts-unarchived/component-name/image_classification/sample_images/

Anmerkung

Wenn Sie den Wert auf setzen UseCameratrue, wird dieser Konfigurationsparameter ignoriert.

ImageName

(Optional) Der Name des Bilds, das die Inferenzkomponente als Eingabe für eine Make-Vorhersage verwendet. Die Komponente sucht in dem unter angegebenen Ordner nach dem Bild. ImageDirectory Standardmäßig verwendet die Komponente das Beispielbild im Standard-Bildverzeichnis. AWS IoT Greengrass unterstützt die folgenden Bildformate: jpegjpg,png, undnpy.

Standard: cat.jpeg

Anmerkung

Wenn Sie den Wert UseCamera auf setzentrue, wird dieser Konfigurationsparameter ignoriert.

InferenceInterval

(Optional) Die Zeit in Sekunden zwischen den einzelnen Vorhersagen des Inferenzcodes. Der Beispiel-Inferenzcode wird unbegrenzt ausgeführt und wiederholt seine Vorhersagen im angegebenen Zeitintervall. Sie können dieses Intervall beispielsweise auf ein kürzeres Intervall ändern, wenn Sie mit einer Kamera aufgenommene Bilder für Vorhersagen in Echtzeit verwenden möchten.

Standard: 3600

ModelResourceKey

(Optional) Die Modelle, die in der abhängigen öffentlichen Modellkomponente verwendet werden. Ändern Sie diesen Parameter nur, wenn Sie die Komponente des öffentlichen Modells durch eine benutzerdefinierte Komponente überschreiben.

Standard:

{ "model": "TensorFlowLite-Mobilenet" }
UseCamera

(Optional) Zeichenkettenwert, der definiert, ob Bilder von einer Kamera verwendet werden sollen, die mit dem Greengrass-Core-Gerät verbunden ist. Unterstützte Werte sind true und false.

Wenn Sie diesen Wert auf setzentrue, greift der Beispiel-Inferenzcode auf die Kamera auf Ihrem Gerät zu und führt die Inferenz lokal für das aufgenommene Bild aus. Die Werte der ImageDirectory Parameter ImageName und werden ignoriert. Stellen Sie sicher, dass der Benutzer, der diese Komponente ausführt, Lese-/Schreibzugriff auf den Speicherort hat, an dem die Kamera aufgenommene Bilder speichert.

Standard: false

Anmerkung

Wenn Sie sich das Rezept für diese Komponente ansehen, erscheint der UseCamera Konfigurationsparameter nicht in der Standardkonfiguration. Sie können den Wert dieses Parameters jedoch in einem Update zur Zusammenführung der Konfiguration ändern, wenn Sie die Komponente bereitstellen.

Wenn Sie UseCamera auf setzentrue, müssen Sie auch einen Symlink erstellen, damit die Inferenzkomponente über die virtuelle Umgebung, die von der Runtime-Komponente erstellt wurde, auf Ihre Kamera zugreifen kann. Weitere Hinweise zur Verwendung einer Kamera mit den Beispiel-Inferenzkomponenten finden Sie unter. Komponentenkonfigurationen aktualisieren

Lokale Protokolldatei

Diese Komponente verwendet die folgende Protokolldatei.

Linux
/greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log
Windows
C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log
Um die Protokolle dieser Komponente einzusehen
  • Führen Sie den folgenden Befehl auf dem Kerngerät aus, um die Protokolldatei dieser Komponente in Echtzeit anzuzeigen. Ersetzen Sie /greengrass/v2 oder C:\greengrass\v2 durch den Pfad zum AWS IoT Greengrass Stammordner.

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log -Tail 10 -Wait

Änderungsprotokoll

In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der Komponente beschrieben.

Version

Änderungen

2.1.12

Die Version wurde für die Version Greengrass Nucleus 2.12.5 aktualisiert.

2.1.11

Die Version wurde für die Version 2.12.0 von Greengrass Nucleus aktualisiert.

2.1.10

Die Version wurde für die Version 2.11.0 von Greengrass Nucleus aktualisiert.

2.1.9

Die Version wurde für die Version 2.10.0 von Greengrass Nucleus aktualisiert.

2.1.8

Die Version wurde für die Version 2.9.0 von Greengrass Nucleus aktualisiert.

2.1.7

Die Version wurde für die Version 2.8.0 von Greengrass Nucleus aktualisiert.

2.1.6

Die Version wurde für die Version 2.7.0 von Greengrass Nucleus aktualisiert.

2.1.5

Die Version wurde für die Version 2.6.0 von Greengrass Nucleus aktualisiert.

2.1.4

Die Version wurde für die Version 2.5.0 von Greengrass Nucleus aktualisiert.

2.1.3

Die Version wurde für die Version 2.4.0 von Greengrass Nucleus aktualisiert.

2.1.2

Die Version wurde für die Version 2.3.0 von Greengrass Nucleus aktualisiert.

2.1.1

Die Version wurde für die Version 2.2.0 von Greengrass Nucleus aktualisiert.

2.1.0

Erste Version