DLR 影像分類 - AWS IoT Greengrass

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

DLR 影像分類

DLR 影像分類元件 (aws.greengrass.DLRImageClassification) 包含範例推論程式碼,可使用深度學習執行階段和 resnet-50 模型來執行影像分類推論。此元件使用變體DLR 圖像分類模型商店DLR 執行階段元件作為從屬關係來下載 DLR 和範例模型。

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

版本

此元件具有下列版本:

  • 2.1.x

  • 2.0.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
  • 樹莓派運行樹莓派操作系統靶心設備必須滿足以下要求:

    • 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.13 and 2.1.14

下表列出此元件 2.1.13 和 2.1.14 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.1.12

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

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.1.11

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

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.1.10

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

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.1.9

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

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.1.8

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

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.1.7

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

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.1.6

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

相依性 兼容版本 相依性類型
Greengrass 核 >=2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.1.4 - 2.1.5

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

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.1.3

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

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.1.2

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

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.1.1

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

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
DLR 圖像分類模型商店 約 2.1.0 硬式
DLR 約 1.6.0 硬式
2.0.x

下表列出此元件 2.0.x 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 〜 2.0.0 軟式
DLR 圖像分類模型商店 〜 2.0.0 硬式
DLR 約 1.3.0 軟式

組態

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

2.1.x
accessControl

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

預設:

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

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

預設:ml/dlr/image-classification

Accelerator

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

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

預設:cpu

ImageDirectory

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

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

注意

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

ImageName

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

預設:cat.jpeg

注意

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

InferenceInterval

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

預設:3600

ModelResourceKey

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

預設:

{ "armv7l": "DLR-resnet50-armv7l-cpu-ImageClassification", "aarch64": "DLR-resnet50-aarch64-cpu-ImageClassification", "x86_64": "DLR-resnet50-x86_64-cpu-ImageClassification", "windows": "DLR-resnet50-win-cpu-ImageClassification" }
UseCamera

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

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

預設:false

注意

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

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

2.0.x
MLRootPath

(選擇性) 推論元件讀取影像和寫入推論結果的 Linux 核心裝置上的資料夾路徑。您可以將此值修改為裝置上執行此元件的使用者具有讀取/寫入存取權限的任何位置。

預設:/greengrass/v2/work/variant.DLR/greengrass_ml

預設:/greengrass/v2/work/variant.TensorFlowLite/greengrass_ml

Accelerator

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

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

預設:cpu

ImageName

(選擇性) 推論元件用作進行預測輸入的影像名稱。元件會在中指定的資料夾中尋找影像ImageDirectory。預設位置為MLRootPath/images。 AWS IoT Greengrass 支援下列影像格式:jpegjpgpng、和npy

預設:cat.jpeg

InferenceInterval

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

預設:3600

ModelResourceKey

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

預設:

armv7l: "DLR-resnet50-armv7l-cpu-ImageClassification" x86_64: "DLR-resnet50-x86_64-cpu-ImageClassification"

本機記錄檔

此元件使用下列記錄檔。

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

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

變更記錄

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

版本

變更

2.1.14

版本更新了 Greengrass 核 2.12.5 版本。

2.1.13

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

2.1.12

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

2.1.11

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

2.1.10

版本更新 Greengrass 2.9.0 版本釋放。

2.1.9

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

2.1.8

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

2.1.7

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

2.1.6

版本更新了 Greengrass 核 2.5.0 版本。

2.1.5

全部已發行的元件 AWS 區域。

2.1.4

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

此版本不適用於歐洲 (倫敦) (eu-west-2)。

2.1.3

版本更新了 Greengrass 核 2.3.0 版本。

2.1.2

版本更新 Greengrass 2.2.0 版本的版本。

2.1.1

新功能
  • 使用深度學習執行階段 v1.6.0。

  • 在 Arch64 (AArch64) 平台上新增對範例影像分類的支援。這擴展了對運行 NVIDIA 傑特森的 Greengrass 核心設備的機器學習支持,例如傑特森納米。

  • 啟用相機整合以進行範例推論。使用新的UseCamera組態參數可啟用範例推論程式碼,以存取 Greengrass 核心裝置上的攝影機,並在擷取的映像上在本機執行推論。

  • 新增將推論結果發佈至. AWS 雲端使用新的PublishResultsOnTopic組態參數來指定您要發佈結果的主題。

  • 新增可讓您為要執行推論之影像指定自訂目錄的ImageDirectory組態參數。

錯誤修復和改進
  • 將推論結果寫入元件記錄檔,而不是個別的推論檔案。

  • 使用 AWS IoT Greengrass 核心軟體記錄模組來記錄元件輸出。

  • 使用讀 AWS IoT Device SDK 取零組件模型組態並套用模型組態變更。

2.0.4

初始版本。