物件偵測 - TensorFlow演算法的輸入和輸出介面 - Amazon SageMaker AI

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

物件偵測 - TensorFlow演算法的輸入和輸出介面

TensorFlow Hub 模型中列出的每個預先訓練模型,皆可針對具有任何映像類別數量之任何資料集進行微調。請注意如何格式化您的訓練資料,以輸入至物件偵測 - TensorFlow模型。

  • 訓練資料輸入格式:您的訓練資料應該是具有 images 子目錄和 annotations.json 檔案的目錄。

以下為輸入目錄結構的範例。輸入目錄應該託管於 Amazon S3 儲存貯體中,其中包含與下方相似的路徑:s3://bucket_name/input_directory/。請注意,結尾的 / 是必要的。

input_directory |--images |--abc.png |--def.png |--annotations.json

annotations.json 檔案應該以字典 "images""annotations" 金鑰的形式包含邊界框及其類別標籤的資訊。"images" 金鑰的值應該是字典清單。每個映像都應該有一個字典,其中包含下列資訊:{"file_name": image_name, "height": height, "width": width, "id": image_id}"annotations" 金鑰的值應該也是字典清單。每個邊界框應該有一個字典,其中包含以下資訊:{"image_id": image_id, "bbox": [xmin, ymin, xmax, ymax], "category_id": bbox_label}

訓練後,標籤對應檔案和訓練的模型會儲存到 Amazon S3 儲存貯體。

增量訓練

您可以使用先前使用 SageMaker AI 訓練的模型成品,來植入新模型的訓練。增量訓練可以在您希望使用相同或相似資料訓練新模型時,節省訓練的時間。

注意

您只能植入 SageMaker AI 物件偵測 - TensorFlow 模型與另一個物件偵測 - 在 SageMaker AI 中訓練的 TensorFlow 模型。

只要類別組保持不變,您就可以使用任何資料集進行增量訓練。增量訓練步驟類似微調的步驟,但不是從預先訓練的模型開始,而是從現有的經微調的模型開始。如需如何搭配 SageMaker AI 物件偵測 - TensorFlow 使用增量訓練的詳細資訊,請參閱 SageMaker TensorFlow - 物件偵測筆記本簡介

使用物件偵測 - TensorFlow 演算法進行推論

您可以託管由 TensorFlow 物件偵測訓練所產生的微調模型,以進行推論。任何推論的輸入映像都必須位於.jpg、.jpeg.png 格式並且為內容類型 application/x-image。物件偵測 - TensorFlow 演算法會自動調整輸入映像的大小。

執行推論會產生邊界框、預測的類別,以及以 JSON 格式編碼的每個預測分數。物件偵測 - TensorFlow 模型會處理每個請求的單一映像,而且僅輸出一行。以下為 JSON 格式的回應範例:

accept: application/json;verbose {"normalized_boxes":[[xmin1, xmax1, ymin1, ymax1],....], "classes":[classidx1, class_idx2,...], "scores":[score_1, score_2,...], "labels": [label1, label2, ...], "tensorflow_model_output":<original output of the model>}

如果將 accept 設定為 application/json,則模型僅輸出標準化方塊、類別和分數。