使用 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. 開啟 Vision 資料集 頁面。系統出現提示時,請選取您的專案。

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

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

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

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

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

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

    2. 調整下列訓練設定,控管效能 範例:

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

      用來訓練 model.訓練時間越長,通常也越準確 model.

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

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

3. 評估模型

訓練完成後,您可以按一下 [評估] 分頁標籤, 查看模型成效指標

這個網頁很重要的一點,就是要判定可信度門檻 找出模型的最佳選擇可信度門檻是指模型的可信度門檻 才能為圖片指派標籤移動可信度門檻 滑桿即可查看不同門檻對模型成效的影響。 模型效能利用「精確度」和「喚回度」這兩項指標來衡量。

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

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

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

發現可信度門檻會產生可接受的指標時, 並記下來請使用可信度門檻來設定模型 應用程式。(你隨時可以使用這項工具取得適當的門檻值)。

4. 發布或下載模型

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

部署模型

在資料集的「測試與,即可將模型部署至線上環境 預測模型在雲端執行模型這個選項會在 Cloud AutoML 說明文件。 文件處理其餘兩個選項

發布模型

將模型發布至 Firebase 之後,您就能在不發布的情況下更新模型 新的應用程式版本 運用遠端設定和 A/B 測試功能 為不同的使用者群組動態提供不同的模型。

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

您可以使用下列兩種方法之一來發布模型:

  • 從資料集的 Test &網頁使用 然後將模型上傳至 頁面。這通常 是發布單一模型的最簡單方法
  • 使用以下方式,直接從 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 值區中含有 model.這可能是你的 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 應用程式。