模型自訂 (4.0 版預覽版)

模型自定義可讓您針對自己的使用案例定型特製化影像分析模型。 自定義模型可以執行影像分類(標籤適用於整個影像)或物件偵測(標籤適用於影像的特定區域)。 建立和定型自定義模型之後,它會屬於您的視覺資源,而且您可以使用分析影像 API 來呼叫它

遵循快速入門,快速且輕鬆地實作模型自定義:

重要

您可以使用 自訂視覺 服務或具有模型自定義的影像分析 4.0 服務來定型自定義模型。 下表比較這兩個服務。

區域 自訂視覺服務 影像分析 4.0 服務
工作 影像分類
物件偵測
影像分類
物件偵測
基底模型 Cnn 轉換器模型
加上標籤 Customvision.ai AML Studio
入口網站 Customvision.ai Vision Studio
Libraries REST、SDK REST、Python 範例
所需的最小定型數據 每個類別15個影像 每個類別 2-5 個影像
訓練資料儲存體 上傳至服務 客戶的 Blob 記憶體帳戶
模型裝載 雲端和邊緣 僅限雲端裝載、邊緣容器裝載即將來臨
AI 品質
內容影像分類
(前 1 名精確度,22 個數據集)
物件偵測
(mAP@50,59 個數據集)
2 槍51.4733.3
3 槍56.7337.0
5 桿63.0143.4
10 次拍攝68.9554.0
完整85.2576.6
內容影像分類
(前 1 名精確度,22 個數據集)
物件偵測
(mAP@50,59 個數據集)
2 槍73.0249.2
3 槍75.5161.1
5 桿79.1468.2
10 次拍攝81.3175.0
完整90.9885.4
定價 自訂視覺定價 影像分析定價

情節元件

模型自定義系統的主要元件是定型影像、COCO 檔案、數據集物件和模型物件。

定型影像

您的定型影像集合應該包含您想要偵測的每個標籤的數個範例。 您也會想要收集一些額外的影像,以在模型定型之後進行測試。 映像必須儲存在 Azure 儲存體 容器中,才能供模型存取。

若要有效地定型模型,請使用具有視覺多樣性的影像。 選取依不同而有所不同的影像:

  • 相機角度
  • 照明
  • 背景
  • 可視化樣式
  • 個別/分組的主體(s)
  • size
  • type

此外,請確定所有定型影像都符合下列準則:

  • 影像必須以 JPEG、PNG、GIF、BMP、WEBP、ICO、TIFF 或 MPO 格式呈現。
  • 映像的檔案大小必須小於 20 MB(MB)。
  • 影像的維度必須大於 50 x 50 像素,且小於 16,000 x 16,000 像素。

COCO 檔案

COCO 檔案會參考所有定型影像,並將其與其標籤資訊產生關聯。 在物件偵測的情況下,它會在每個影像上指定每個標記的周框方塊座標。 此檔案必須是 COCO 格式,這是特定類型的 JSON 檔案。 COCO 檔案應該儲存在與定型映像相同的 Azure 儲存體 容器中。

提示

關於 COCO 檔案

COCO 檔案是具有特定必要欄位的 JSON 檔案:"images""annotations""categories"。 範例 COCO 檔案看起來會像這樣:

{
 "images": [
   {
     "id": 1,
     "width": 500,
     "height": 828,
     "file_name": "0.jpg",
     "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/0.jpg"
   },
    {
      "id": 2,
      "width": 754,
      "height": 832,
      "file_name": "1.jpg",
      "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/1.jpg"
    },

   ...

  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 7,
      "image_id": 1,
      "area": 0.407,
      "bbox": [
        0.02663142641129032,
        0.40691584277841153,
        0.9524163571731749,
        0.42766634515266866
      ]
    },
    {
      "id": 2,
      "category_id": 9,
      "image_id": 2,
      "area": 0.27,
      "bbox": [
        0.11803319477782331,
        0.41586723392402375,
        0.7765206955096307,
        0.3483334397217212
      ]
    },
    ...

  ],
  "categories": [
    {
      "id": 1,
      "name": "vegall original mixed vegetables"
    },
    {
      "id": 2,
      "name": "Amy's organic soups lentil vegetable"
    },
    {
      "id": 3,
      "name": "Arrowhead 8oz"
    },

    ...

  ]
}

COCO 檔案欄位參考

如果您要從頭開始產生自己的 COCO 檔案,請確定所有必要的欄位都已填入正確的詳細資料。 下表描述 COCO 檔案中的每個欄位:

"images"

機碼 類型 描述 是必要的嗎?
id 整數 唯一影像識別碼,從 1 開始 Yes
width 整數 以像素為單位的影像寬度 Yes
height 整數 以像素為單位的影像高度 Yes
file_name string 影像的唯一名稱 Yes
absolute_urlcoco_url string 作為 Blob 容器中 Blob 絕對 URI 的影像路徑。 視覺資源必須具有讀取註釋檔案和所有參考影像檔案的權限。 Yes

absolute_url 的值可以在 Blob 容器的屬性中找到:

absolute url

"annotations"

機碼 類型 描述 是必要的嗎?
id 整數 註釋的識別碼 Yes
category_id 整數 categories 區段中定義的類別識別碼 Yes
image_id 整數 影像的識別碼 Yes
area 整數 'Width' x 'Height' 的值 (bbox 的第三和第四個值) No
bbox list[float] 周框方塊的相對座標 (0 到 1),順序為 'Left'、'Top'、'Width'、'Height' Yes

"categories"

機碼 類型 描述 是必要的嗎?
id 整數 每個類別的唯一識別碼 (標籤類別)。 這些應該會出現在 annotations 區段中。 Yes
name string 類別的名稱 (標籤類別) Yes

COCO 檔案驗證

您可以使用我們的 Python 範例程式碼來檢查 COCO 檔案的格式。

資料集物件

Dataset 對像是影像分析服務所儲存的數據結構,可參考關聯檔案。 您必須先建立 Dataset 物件,才能建立和定型模型。

模型物件

Model 對像是影像分析服務所儲存的數據結構,代表自定義模型。 它必須與數據集相關聯,才能進行初始定型。 定型之後,您可以在分析影像 API 呼叫查詢參數中model-name輸入其名稱來查詢模型。

配額限制

下表說明自定義模型項目的規模限制。

類別 一般影像分類器 一般對象偵測器
最大 # 訓練時數 288 (12 天) 288 (12 天)
Max # 定型影像 1,000,000 200,000
Max # 評估影像 100,000 100,000
每個類別的最小 # 定型影像 2 2
每個影像的標籤上限 multiclass:1 NA
每個映像的最大 # 區域 NA 1,000
最大 # 類別 2,500 1,000
最小值 # 類別 2 1
影像大小上限 (訓練) 20 MB 20 MB
影像大小上限 (預測) 同步:6 MB,Batch:20 MB 同步:6 MB,Batch:20 MB
最大影像寬度/高度 (訓練) 10,240 10,240
最小影像寬度/高度(預測) 50 50
可用區域 美國西部 2、美國東部、西歐 美國西部 2、美國東部、西歐
接受的影像類型 jpg, png, bmp, gif, jpeg jpg, png, bmp, gif, jpeg

常見問題集

為什麼從 Blob 記憶體匯入時,我的 COCO 檔案匯入失敗?

目前,Microsoft 正在解決會導致 COCO 檔案匯入在 Vision Studio 中起始時,大型數據集失敗的問題。 若要使用大型資料集來訓練,建議您改用 REST API。

為什麼訓練比我指定的預算還要長/短?

指定的定型預算是校正的 計算時間,而不是 時鐘時間。 列出差異的一些常見原因:

  • 比指定的預算長:

    • 影像分析體驗高定型流量,而 GPU 資源可能很緊。 您的工作可能會在佇列中等候,或在訓練期間擱置。
    • 後端定型程式發生非預期的失敗,導致重試邏輯。 失敗的執行不會耗用您的預算,但這可能會導致一般訓練時間較長。
    • 您的數據會儲存在與您的視覺資源不同的區域中,這會導致數據傳輸時間更長。
  • 比指定的預算短: 下列因素會以在一定時鐘時間使用更多預算來加快訓練速度。

    • 影像分析有時會根據您的數據來訓練多個 GPU。
    • 影像分析有時會同時訓練多個 GPU 上的多個探索試驗。
    • 影像分析有時會使用頂級 (更快速) GPU SKU 來定型。

為什麼我的訓練失敗,我該怎麼做?

以下是定型失敗的一些常見原因:

  • diverged:定型無法從您的數據中學習有意義的專案。 一些常見的原因是:
    • 數據不足:提供更多數據應該有説明。
    • 數據品質不佳:檢查您的影像是否解析度低、外觀比例極端,或註釋錯誤。
  • notEnoughBudget:您指定的預算不足以容納您正在定型的數據集和模型類型大小。 指定較大的預算。
  • datasetCorrupt:這通常表示您提供的影像無法存取,或註釋檔案的格式不正確。
  • datasetNotFound:找不到數據集
  • unknown:這可能是後端問題。 請連絡以支持調查。

評估模型時會使用哪些計量?

使用的計量如下:

  • 影像分類:平均精確度、最高精確度、精確度前 5 名
  • 物件偵測:平均值平均精確度 @ 30,平均值平均精確度 @ 50,平均值平均精確度 @ 75

為什麼我的數據集註冊失敗?

API 回應應該有足夠的資訊。 畫面如下:

  • DatasetAlreadyExists:具有相同名稱的數據集存在
  • DatasetInvalidAnnotationUri:「在數據集註冊時間的批注 URI 中提供了無效的 URI。

合理/良好/最佳模型品質需要多少個影像?

雖然佛羅倫薩模型具有非常少的射門功能(在有限的數據可用性下達到絕佳的模型效能),但一般而言,更多的數據可讓定型的模型變得更好且更健全。 有些案例需要很少的數據(例如將蘋果分類成香蕉),但其他案例則需要更多(如在雨林中檢測200種昆蟲)。 這使得很難提供單一建議。

如果您的數據標籤預算受到限制,我們建議的工作流程會重複下列步驟:

  1. N收集每個類別的影像,其中N影像很容易收集(例如) N=3

  2. 將模型定型,並在評估集上進行測試。

  3. 如果模型效能為:

    • 足夠 好(效能比您先前實驗接近預期或效能更好,但收集的數據較少):請在此停止並使用此模型。
    • 不好(效能仍然低於您的預期,或比先前的實驗更好,以合理的幅度收集較少的數據):
    • 收集每個類別的更多影像,這是一個容易收集的數位,並返回步驟 2。
    • 如果您注意到效能在幾個反覆項目之後不會再改善,可能是因為:
      • 此問題未妥善定義或太困難。 與我們連絡以逐一分析。
      • 定型數據品質可能很低:檢查是否有錯誤的註釋或非常低圖元的影像。

我應該指定多少定型預算?

您應該指定您願意取用的預算上限。 影像分析會在其後端使用 AutoML 系統來試用不同的模型和定型配方,以找出最適合使用案例的模型。 指定的預算越多,尋找更好的模型的機會就越高。

如果 AutoML 系統得出結論,即使仍有剩餘的預算,也會自動停止。 因此,它並不總是耗盡您指定的預算。 您保證不會按指定的預算計費。

我可以控制超參數,或在定型中使用自己的模型嗎?

否,影像分析模型自定義服務會使用低程序代碼 AutoML 定型系統來處理後端中的超參數搜尋和基底模型選取。

我可以在定型之後導出模型嗎?

預測 API 僅透過雲端服務支援。

為什麼我的物件偵測模型評估失敗?

以下是可能的原因:

  • internalServerError:發生未知的錯誤。 請稍後再試一次。
  • modelNotFound:找不到指定的模型。
  • datasetNotFound:找不到指定的數據集。
  • datasetAnnotationsInvalid:嘗試下載或剖析與測試數據集相關聯的地面真相批注時發生錯誤。
  • datasetEmpty:測試數據集未包含任何「地面真相」註釋。

使用自定義模型進行預測的預期延遲為何?

我們不建議您將自訂模型用於業務關鍵環境,因為潛在的高延遲。 當客戶在 Vision Studio 中訓練自定義模型時,這些自定義模型屬於他們定型的 Azure AI 視覺資源,而且客戶可以使用分析影像 API 來呼叫這些模型。 當他們進行這些呼叫時,自定義模型會載入記憶體中,並初始化預測基礎結構。 發生此情況時,客戶在接收預測結果時可能會遇到高於預期的延遲。

資料隱私權和安全性

如同所有 Azure AI 服務,使用影像分析模型自定義的開發人員應該瞭解 Microsoft 對客戶數據的原則。 請參閱 Microsoft 信任中心上的 Azure AI 服務頁面以深入了解。

下一步

建置和定型自訂模型