View a markdown version of this page

TensorFlow Lite-Objekterkennung - 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-Objekterkennung

Die TensorFlow Lite-Objekterkennungskomponente (aws.greengrass.TensorFlowLiteObjectDetection) enthält einen Beispiel-Inferenzcode zur Durchführung von Objekterkennungsinferenzen mit TensorFlow Lite und ein vortrainiertes Single Shot Detection (SSD) MobileNet 1.0-Beispielmodell. Diese Komponente verwendet die Variante TensorFlow Modellspeicher für Lite-Objekterkennung und die TensorFlow Lite-Laufzeit Komponenten als Abhängigkeiten, um TensorFlow Lite und das Beispielmodell herunterzuladen.

Um diese Inferenzkomponente mit einem speziell trainierten TensorFlow Lite-Modell zu verwenden, können Sie eine benutzerdefinierte Version der abhängigen Modellspeicherkomponente erstellen. Um Ihren eigenen benutzerdefinierten Inferenzcode zu verwenden, verwenden Sie das Rezept dieser Komponente als Vorlage, 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 Lifecycle-Skripte 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 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 auf dem Gerät installiert. OpenCV-Python 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 Kamerastapel ist auf dem Gerät aktiviert. Raspberry Pi OS Bullseye enthält einen neuen Kamerastapel, der standardmäßig aktiviert und nicht kompatibel ist. Sie müssen also den alten Kamerastapel aktivieren.

      Um den alten Kamerastapel 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, um den Legacy-Kamera-Stack zu aktivieren.

      4. Starten Sie den Raspberry Pi neu.

Abhängigkeiten

Wenn Sie eine Komponente bereitstellen, werden AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereitgestellt. Das bedeutet, dass Sie die Anforderungen für die Komponente und alle ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitzustellen. 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,13,0 Weich
TensorFlow Lite-Modellspeicher für die 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,12,0 Weich
TensorFlow Lite-Modellspeicher für die 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,11,0 Weich
TensorFlow Lite-Modellspeicher für die 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,1,0 Weich
TensorFlow Lite-Modellspeicher für die 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,9,0 Weich
TensorFlow Lite-Modellspeicher für die 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,8,0 Weich
TensorFlow Lite-Modellspeicher für die 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,7,0 Weich
TensorFlow Lite-Modellspeicher für die 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,6,0 Weich
TensorFlow Lite-Modellspeicher für die 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,5,0 Weich
TensorFlow Lite-Modellspeicher für die 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,4,0 Weich
TensorFlow Lite-Modellspeicher für die 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,3,0 Weich
TensorFlow Lite-Modellspeicher für die 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,2,0 Weich
TensorFlow Lite-Modellspeicher für die Bildklassifizierung > =2,1,0 <2,2,0 Hart
TensorFlow Leicht > =2,5,0 <2,6,0 Hart

Konfiguration

Diese Komponente bietet die folgenden Konfigurationsparameter, 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 zum Standardthema für Benachrichtigungen zu veröffentlichen.

Standard:

{ "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.TensorFlowLiteObjectDetection:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/tflite/object-detection.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/tflite/object-detection" ] } } }
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/object-detection

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 die 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 jedem beliebigen Ort auf Ihrem Gerät ändern, auf den Sie read/write Zugriff haben.

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

Anmerkung

Wenn Sie den Wert von UseCamera auf setzentrue, 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: objects.jpg

Anmerkung

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

InferenceInterval

(Optional) Die Zeit in Sekunden zwischen den einzelnen durch den Inferenzcode getroffenen Vorhersagen. Der Beispiel-Inferenzcode wird auf unbestimmte Zeit ausgeführt und wiederholt seine Vorhersagen im angegebenen Zeitintervall. Sie können dieses Intervall beispielsweise in ein kürzeres Intervall ändern, wenn Sie von 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 öffentliche Modellkomponente durch eine benutzerdefinierte Komponente überschreiben.

Standard:

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

(Optional) Zeichenkettenwert, der definiert, ob Bilder von einer Kamera verwendet werden sollen, die an das Greengrass-Core-Gerät angeschlossen 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 auf dem aufgenommenen Bild durch. Die Werte der ImageDirectory Parameter ImageName und werden ignoriert. Stellen Sie sicher, dass der Benutzer, der diese Komponente ausführt, read/write Zugriff auf den Speicherort hat, an dem die Kamera die aufgenommenen 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 von der virtuellen Umgebung, die von der Laufzeitkomponente erstellt wird, auf Ihre Kamera zugreifen kann. Weitere Informationen zur Verwendung einer Kamera mit den Beispiel-Inferenzkomponenten finden Sie unter. Komponentenkonfigurationen aktualisieren

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 von der virtuellen Umgebung, die von der Laufzeitkomponente erstellt wird, auf Ihre Kamera zugreifen kann. Weitere Informationen 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.TensorFlowLiteObjectDetection.log
Windows
C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.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.TensorFlowLiteObjectDetection.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.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 Veröffentlichung von Greengrass Nucleus 2.12.5 aktualisiert.

2.1.11

Version für Greengrass Nucleus Version 2.12.0 aktualisiert.

2.1.10

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

2.1.9

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

2.1.8

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

2.1.7

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

2.1.6

Version für die Greengrass Nucleus-Version 2.7.0 aktualisiert.

2.1.5

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

2.1.4

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

2.1.3

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

2.1.2

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

2.1.1

Fehlerbehebungen und Verbesserungen
  • Behebt ein Problem mit der Bildskalierung, das zu ungenauen Begrenzungsrahmen in den Beispielinferenzergebnissen der TensorFlow Lite-Objekterkennung führte.

2.1.0

Erste Version