使用 AutoML Vision Edge 訓練物件偵測模型

物件偵測模型與圖片標籤模型類似 指派標籤給整張圖片,而是為圖片區域指派標籤。你可以 運用物件偵測模型來辨識及定位圖像中的物體, 追蹤物件在一系列圖片中的移動情形。

如要訓練物件偵測模型,您必須向 AutoML Vision Edge 提供一組圖片,其中包含相應的物件標籤和物件邊界。AutoML Vision Edge 會使用這個資料集在雲端中訓練新模型,而這些模型可以用於 裝置端物件偵測。

,瞭解如何調查及移除這項存取權。

事前準備

1. 彙整訓練資料

首先,您必須整理一個含有標籤圖片的訓練資料集。保留 以下是一些要點:

  • 圖片格式必須是 JPEG、PNG、GIF、BMP 或 ICO。

  • 每張影像的大小不得超過 30 MB。請注意,AutoML Vision Edge 會在預先處理期間縮小大部分圖片,因此提供解析度極高的圖片通常不會提高準確度。

  • 每個標籤至少提供 10 個示例,最好是 100 個以上。

  • 為每個標籤加入多種角度、解析度和背景。

  • 訓練資料應儘可能貼近要用來進行預測的資料。舉例來說,如果所需用途主要是模糊和低解析度的圖片 (例如監視攝影機拍攝的圖片),則訓練資料也應為模糊和低解析度的圖片。

  • AutoML Vision Edge 產生的模型已經過最佳化調整, 現實世界中的物體X 光、手繪、 掃描文件、收據等

    此外,模型通常無法預測人類無法指派的標籤。因此,如果無法訓練人類在觀看圖片 1-2 秒後指派標籤,則可能也無法訓練模型這麼做。

備妥訓練圖片後,請準備匯入 Google Cloud。您可以採用兩種方法:

做法 1:使用 CSV 索引的 Cloud Storage

將訓練圖片上傳至 Google Cloud Storage ,並備妥列出每張圖片網址的 CSV 檔案,並視需要準備 每張圖片的正確物件標籤和邊界區域使用大型資料集時,這個選項會很實用。

舉例來說,您可以將圖片上傳至 Cloud Storage,並備妥類似下列的 CSV 檔案: 包括:

gs://your-training-data-bucket/001.jpg,accordion,0.2,0.4,,,0.3,0.5,,
gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,,
gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,

物件定界框會指定為圖片中的相對座標。請參閱「格式化訓練資料 CSV」。

圖片必須儲存在 us-central1 區域的值區中, 在您的 Firebase 專案中對應的 Google Cloud 專案中。

選項 2:未加上標籤的圖片

為訓練圖片加上標籤,並在 Google Cloud 控制台。這項做法只適用於小型資料集。請參閱下一個步驟。

2. 訓練模型

接著,使用圖片訓練模型:

  1. Google Cloud 控制台中開啟「Vision Datasets」頁面。系統出現提示時,請選取您的專案。

  2. 按一下「新資料集」,提供資料集名稱,然後選取 接著按一下「建立資料集」

  3. 在資料集的「Import」分頁中上傳訓練圖片 (ZIP 封存檔) 或包含 Cloud Storage 的 CSV 檔案 上傳這些地點的目的地詳情請見 組合訓練資料

  4. 匯入工作完成後,請使用「Images」分頁驗證 訓練資料

  5. 如未上傳 CSV,請在每張圖片周圍繪製定界框 您想要辨識並加上標籤的物件

  6. 點選「訓練」分頁中的「開始訓練」

    1. 為模型命名,並選取「Edge」模型類型。

    2. 設定下列訓練設定,這些設定會控管產生的模型效能:

      針對下列項目最佳化模型... 要使用的模型設定。您可以加快訓練速度,規模更小 較重要、低延遲或小型套件大小的模型; 速度較慢、較大,且準確率為最重要的模型。
      節點時數預算

      用來訓練 模型訓練時間越長,模型的準確度通常就越高。

      請注意,訓練可在指定的範圍內完成 判斷模型經過最佳化調整的時間 額外訓練也無法改善準確度系統會收費 實際使用時數

      一般訓練時間
      非常小集合1 小時
      500 張圖片2 小時
      1,000 張圖片3 小時
      5,000 張圖片6 小時
      10,000 張圖片7 小時
      50,000 張圖片11 小時
      100,000 張圖片13 小時
      1,000,000 張圖片18 小時

3. 評估模型

訓練完成後,您可以按一下「Evaluate」分頁標籤,查看模型的效能指標。

這個網頁很重要的一點,就是要判定可信度門檻 找出模型的最佳選擇可信度門檻是指模型為圖片指派標籤時必須達到的信賴水準。移動可信度門檻 滑桿即可查看不同門檻對模型成效的影響。 模型效能會透過兩個指標進行評估:精確度喚回率

就圖片分類而言,「精確度」是指數字的比率 並正確標示出模型已加上標籤的圖片數量 達到指定閾值模型的精確度越高,錯誤指派標籤的機率就越低 (偽陽性情形較少)。

喚回度是指正確加上標籤的圖片數量比例 內容中,模型應能加上標籤的內容圖片數量。時間 模型喚回度高,未能降低指派標籤的頻率 。

至於要針對精確度或喚回度進行最佳化,則取決於您的用途。詳情請見 AutoML Vision 初學者指南多元包容的機器學習指南 - AutoML,瞭解更多資訊。

找到可產生您滿意指標的可信度門檻後,請記下這項資訊,以便在應用程式中使用可信度門檻設定模型 (您隨時可以使用這項工具取得適當的門檻值)。

4. 發布或下載模型

如果您對模型的成效感到滿意,並想在應用程式中使用, 我們提供三個選項,您可以選擇任意組合: 以便進行線上預測、將模型發布到 Firebase,或是下載 並與您的應用程式整合

部署模型

在資料集的「測試與使用分頁,您就能在線上部署模型 預測模型在雲端執行模型這個選項會在 Cloud AutoML 說明文件。 文件處理其餘兩個選項

發布模型

將模型發布至 Firebase 之後,您就能在不發布的情況下更新模型 新的應用程式版本,且您可以使用 Remote ConfigA/B Testing 執行下列操作: 為不同的使用者群組動態提供不同的模型。

如果您選擇僅透過 Firebase 託管模型,而非 就能縮減應用程式的初始下載大小。 不過請注意,如果模型未隨附於您的應用程式 您的應用程式必須下載 首次訓練模型

如要發布模型,您可以使用下列任一方法:

  • 從資料集的 Test &網頁使用 Google Cloud控制台,然後將模型上傳到 Firebase 控制台的「自訂模型」頁面。這通常 是發布單一模型的最簡單方法
  • 使用以下方式,將 Google Cloud 專案中的模型直接發布至 Firebase Admin SDK您可以使用這個方法批次發布多個模型,或 您可以建立自動化發布管道

使用 Admin SDK 模型管理 API 發布模型的步驟如下:

  1. 安裝並初始化 SDK

  2. 發布模型。

    您必須指定模型的資源 ID,這是一個字串,如下例所示:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER 含有Cloud Storage 模型這可能是你的 Firebase 專案或其他Google Cloud 專案。您可以在 Firebase 主控台的「設定」頁面或 Google Cloud 主控台資訊主頁中找到這個值。
    MODEL_ID 您從 AutoML Cloud API 取得的模型 ID。

    Python

    # First, import and initialize the SDK.
    
    # Get a reference to the AutoML model
    source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format(
        # See above for information on these values.
        project_number,
        model_id
    ))
    
    # Create the model object
    tflite_format = ml.TFLiteFormat(model_source=source)
    model = ml.Model(
        display_name="example_model",  # This is the name you will use from your app to load the model.
        tags=["examples"],             # Optional tags for easier management.
        model_format=tflite_format)
    
    # Add the model to your Firebase project and publish it
    new_model = ml.create_model(model)
    new_model.wait_for_unlocked()
    ml.publish_model(new_model.model_id)
    

    Node.js

    // First, import and initialize the SDK.
    
    (async () => {
      // Get a reference to the AutoML model. See above for information on these
      // values.
      const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`;
    
      // Create the model object and add the model to your Firebase project.
      const model = await ml.createModel({
        displayName: 'example_model',  // This is the name you use from your app to load the model.
        tags: ['examples'],  // Optional tags for easier management.
        tfliteModel: { automlModel: automlModel },
      });
    
      // Wait for the model to be ready.
      await model.waitForUnlocked();
    
      // Publish the model.
      await ml.publishModel(model.modelId);
    
      process.exit();
    })().catch(console.error);
    

下載和並將模型與您的應用程式

將模型與應用程式搭配使用,就能確保應用程式的機器學習功能 Firebase 託管的模型無法使用時仍能正常運作。

如果您同時發布模型並與應用程式組合,應用程式會使用 可以使用最新版本。

如要下載模型,請在資料集的「測試並點擊」部分,點選「TF Lite」用途網頁。

後續步驟

您已發布或下載模型,接下來請瞭解如何使用模型 。iOS+Android 應用程式。