TensorFlow 精簡型物體偵測 - AWS IoT Greengrass

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

TensorFlow 精簡型物體偵測

TensorFlow Lite 物件偵測元件 (aws.greengrass.TensorFlowLiteObjectDetection) 包含範例推論程式碼,可使用 TensorFlow Lite 執行物件偵測推論,以及預先訓練的單次射擊偵測 (SSD) MobileNet 1.0 模型範例。此組件使用變體TensorFlow 精簡型物件偵測模型商店TensorFlow 精簡版運行組件作為依賴關係來下載 TensorFlow Lite 和示例模型。

若要將此推論元件與自訂訓練的 TensorFlow Lite 模型搭配使用,您可以建立相依模型存放區元件的自訂版本。若要使用您自己的自訂推論程式碼,請使用此元件的方式做為範本來建立自訂推論元件。

版本

此元件具有下列版本:

  • 2.1.x

Type

元件是一般元件 (aws.greengrass.generic)。Greengrass 核會執行元件的生命週期指令碼。

如需詳細資訊,請參閱 元件類型

作業系統

此元件可安裝在執行下列作業系統的核心裝置上:

  • Linux

  • Windows

要求

此元件具有下列需求:

  • 在運行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心設備上,GNU C 庫(glibc)2.27 版或更高版本安裝在設備上。

  • 在 ARMV7L 設備上,如樹莓派,對於設備上安裝了 OpenCV-Python 的依賴關係。執行下列命令以安裝相依性。

    sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  • 樹莓派運行樹莓派 OS 靶心設備必須滿足以下要求:

    • NumPy 1.22.4 或更新版本已安裝在裝置上。樹莓派 OS 靶心包括早期版本的 NumPy,因此您可以在設備上運行以下命令進 NumPy 行升級。

      pip3 install --upgrade numpy
    • 裝置上啟用的舊式攝影機堆疊。樹莓派 OS Bullseye 包括一個新的相機堆疊,預設情況下啟用且不相容,因此您必須啟用傳統的相機堆疊。

      啟用舊式相機堆疊
      1. 運行以下命令以打開樹莓派配置工具。

        sudo raspi-config
      2. 選取介面選項

      3. 選取「舊式相機」以啟用舊式相機堆疊。

      4. 重新啟動 Raspberry Pi。

相依性

部署元件時, AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的需求,才能成功部署元件。本節列出此元件之已發行版本的相依性,以及定義每個相依性之元件版本的語意版本條件約束。您也可以在AWS IoT Greengrass 主控台中檢視元件每個版本的相依性。在元件詳細資料頁面上,尋找 [相依性] 清單。

2.1.11 and 2.1.12

下表列出此元件 2.1.11 和 2.1.12 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式
2.1.10

下表列出此元件 2.1.10 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式
2.1.9

下表列出此元件 2.1.9 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 <2.11.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式
2.1.8

下表列出此元件 2.1.8 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式
2.1.7

下表列出此元件 2.1.7 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式
2.1.6

下表列出此元件 2.1.6 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式
2.1.5

下表列出此元件 2.1.5 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式
2.1.4

下表列出此元件 2.1.4 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式
2.1.3

下表列出此元件 2.1.3 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式
2.1.2

下表列出此元件 2.1.2 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式
2.1.1

下表列出此元件 2.1.1 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式
2.1.0

下表列出此元件 2.1.0 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
TensorFlow 精簡版圖片分類模型店 > = 2.1.0 硬式
TensorFlow 精簡版 >=2.5.0 硬式

組態

此元件提供下列組態參數,您可以在部署元件時自訂這些參數。

accessControl

(選擇性) 包含授權原則的物件,可讓元件將訊息發佈至預設通知主題。

預設:

{ "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

(選擇性) 您要發佈推論結果的主題。如果修改此值,則還必須修改accessControl參數resources中的值以符合您的自訂主題名稱。

預設:ml/tflite/object-detection

Accelerator

您要使用的加速器。支援的值為 cpugpu

相依模型元件中的範例模型僅支援 CPU 加速。若要將 GPU 加速與不同的自訂模型搭配使用,請建立自訂模型元件以覆寫公用模型元件。

預設:cpu

ImageDirectory

(選擇性) 推論元件讀取影像之設備上的資料夾路徑。您可以將此值修改為裝置上具有讀取/寫入存取權限的任何位置。

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

注意

如果UseCamera將的值設定為true,則會忽略此組態參數。

ImageName

(選擇性) 推論元件用作進行預測輸入的影像名稱。元件會在中指定的資料夾中尋找影像ImageDirectory。依預設,元件會使用預設映像目錄中的範例影像。 AWS IoT Greengrass 支援下列影像格式:jpegjpgpng、和npy

預設:objects.jpg

注意

如果UseCamera將的值設定為true,則會忽略此組態參數。

InferenceInterval

(選擇性) 推論程式碼進行的每個預測之間的時間 (以秒為單位)。範例推論程式碼會無限期執行,並在指定的時間間隔內重複其預測。例如,如果您要使用相機拍攝的影像進行即時預測,可以將其變更為較短的間隔。

預設:3600

ModelResourceKey

(選擇性) 在相依公用模型元件中使用的模型。只有在使用自訂元件覆寫公用模型元件時,才能修改此參數。

預設:

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

(選擇性) 字串值,定義是否使用來自連接至 Greengrass 核心裝置之攝影機的影像。支援的值為 truefalse

將此值設定為時true,範例推論程式碼會存取裝置上的攝影機,並在擷取的影像本機上執行推論。ImageNameImageDirectory參數的值會被忽略。請確定執行此元件的使用者具有相機儲存擷取影像之位置的讀取/寫入存取權。

預設:false

注意

當您檢視此元件的配方時,UseCamera組態參數不會顯示在預設組態中。不過,您可以在部署元件時,在組態合併更新中修改此參數的值。

當您設定UseCamera為時true,您還必須建立符號連結,以使推論元件能夠從執行階段元件建立的虛擬環境存取您的攝影機。如需將相機與範例推論元件搭配使用的詳細資訊,請參閱更新零組件組態

注意

當您檢視此元件的配方時,UseCamera組態參數不會顯示在預設組態中。不過,您可以在部署元件時,在組態合併更新中修改此參數的值。

當您設定UseCamera為時true,您還必須建立符號連結,以使推論元件能夠從執行階段元件建立的虛擬環境存取您的攝影機。如需將相機與範例推論元件搭配使用的詳細資訊,請參閱更新零組件組態

本機記錄檔

此元件會使用下列記錄檔。

Linux
/greengrass/v2/logs/aws.greengrass.TensorFlowLiteObjectDetection.log
Windows
C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.log
若要檢視此元件的記錄
  • 在核心裝置上執行下列命令,即時檢視此元件的記錄檔。以 AWS IoT Greengrass 根資料夾的路徑取代/greengrass/v2C:\greengrass\v2

    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

變更記錄

下表說明元件每個版本中的變更。

版本

變更

2.1.12

版本更新了 Greengrass 核 2.12.5 版本。

2.1.11

版本更新了 Greengrass 核 2.12.0 版本釋放。

2.1.10

版本更新了 Greengrass 核 2.11.0 版本釋放。

2.1.9

版本更新了 Greengrass 核 2.10.0 版本釋放。

2.1.8

版本更新 Greengrass 2.9.0 版本釋放。

2.1.7

版本更新 Greengrass 2.8.0 版本的版本。

2.1.6

版本更新了 Greengrass 核 2.7.0 版本釋放。

2.1.5

版本更新 Greengrass 2.6.0 版本的版本。

2.1.4

版本更新了 Greengrass 核 2.5.0 版本。

2.1.3

版本更新 Greengrass 2.4.0 版本的版本。

2.1.2

版本更新了 Greengrass 核 2.3.0 版本。

2.1.1

錯誤修復和改進
  • 修正影像縮放問題,此問題會導致範例 TensorFlow Lite 物件偵測推論結果中不正確的邊界方塊。

2.1.0

初始版本。