全部產品
Search
文件中心

Platform For AI:映像關鍵點訓練

更新時間:Jul 13, 2024

如果您的業務情境涉及人體相關的關鍵點檢測,則可以通過映像關鍵點訓練組件構建關鍵點模型,從而進行模型推理。本文為您介紹映像關鍵點訓練組件的配置方法及使用樣本。

前提條件

已開通OSS並完成授權,詳情請參見開通OSS服務雲產品依賴與授權:Designer

功能限制

  • Designer提供該演算法組件。

  • 支援的計算引擎為DLC。

演算法簡介

關鍵點檢測模組提供主流的自上而下(Top-Down)的演算法,主要包含兩個部分:目標檢測和單人人體關鍵點檢測。人體關鍵點定位依賴於檢測演算法提出的Proposals,目前已經支援的模型包括HRNet和Lite-HRNet。

映像關鍵點訓練組件位於組件庫視覺演算法檔案夾下的離線訓練模型子檔案夾。

可視化配置組件

  • 輸入樁

    輸入樁(從左至右)

    限制資料類型

    建議上遊組件

    是否必選

    訓練資料

    OSS

    讀OSS資料

    訓練資料標註檔案

    OSS

    讀OSS資料

    驗證資料

    OSS

    讀OSS資料

    驗證資料標註檔案

    OSS

    讀OSS資料

    資料集標籤檔案

    OSS

    讀OSS資料

  • 組件參數

    頁簽

    參數

    是否必選

    描述

    預設值

    欄位設定

    訓練模型類型

    訓練模型使用的演算法類型,僅支援TopDown

    TopDown

    儲存訓練輸出的OSS目錄

    儲存訓練模型的OSS目錄,比如:oss://examplebucket/output_dir/ckpt/。

    訓練資料oss路徑

    如果您沒有通過輸入樁配置該組件的訓練資料,則需要配置該參數。

    訓練資料所在的OSS目錄。比如:oss://examplebucket/data/train_images/。

    說明

    如果您同時通過輸入樁和該參數配置了該組件的訓練資料,則優先使用輸入樁配置的資料。

    訓練資料標註結果檔案路徑

    如果您沒有通過輸入樁配置該組件的訓練資料標註結果檔案,則需要配置該參數。

    訓練資料標註結果檔案所在的OSS路徑,比如:oss://examplebucket/data/annotations/train.json 。

    說明

    如果您同時通過輸入樁和該參數配置了該組件的訓練資料標註結果檔案,則優先使用輸入樁配置的資料。

    驗證資料oss路徑

    如果您沒有通過輸入樁配置該組件的驗證資料,則需要配置該參數。

    驗證資料所在的OSS目錄,比如:oss://examplebucket/data/val_images/。

    說明

    如果您同時通過輸入樁和該參數配置了該組件的驗證資料,則優先使用輸入樁配置的資料。

    驗證資料標註結果檔案路徑

    如果您沒有通過輸入樁配置該組件的驗證資料標註結果檔案,則需要配置該參數。

    驗證資料標註結果檔案所在的OSS路徑,比如:oss://examplebucket/data/annotations/val.json。

    說明

    如果您同時通過輸入樁和該參數配置了該組件的驗證資料標註結果檔案,則優先使用輸入樁配置的資料。

    dataset info檔案oss路徑

    如果您沒有通過輸入樁配置該組件的資料集標籤檔案,則需要配置該參數。

    表示資料集標籤檔案所在的OSS路徑,比如:oss://examplebucke/data/annotations/dataset_info.py。

    說明

    如果您同時通過輸入樁和該參數配置了該組件的資料集標籤檔案,則優先使用輸入樁配置的資料。

    資料來源格式

    輸入資料的格式類型,僅支援DetSourceCOCO

    DetSourceCOCO

    預訓練模型oss路徑

    如果您有自己的預訓練模型,則將該參數配置為預訓練模型的OSS路徑。如果沒有配置該參數,則使用PAI提供的預設預訓練模型。

    參數設定

    關鍵點檢測模型使用的backbone

    選擇使用的骨幹模型,支援以下兩種主流模型:

    • hrnet

    • lite_hrnet

    hrnet

    關鍵點類別數目

    資料中類別標籤的數目。

    圖片resize大小

    圖片大小調整成固定的高和寬,用半形逗號(,)分隔。

    192,256

    初始學習率

    初始學習率大小。

    0.01

    學習率調整策略

    使用學習率調整策略來控制學習率。支援的學習率調整策略為step:人工指定各階段的學習率。

    step

    Ir step

    與學習率調整策略配合使用,多個step用半形逗號(,)串連。當epoch數量達到某個階段,學習率預設衰減0.1倍。

    比如:初始學習率為0.1,總的訓練迭代epoch輪數為20,lr step為5,10。則epoch輪數為1~5時,學習率為0.1;epoch輪數為5~10時,學習率為0.01;epoch輪數為10~20時,學習率為0.001。

    170,200

    訓練batch_size

    訓練的批大小,即模型訓練過程中,每次迭代(每一步)訓練的樣本數量。

    32

    評估batch_size

    評估(驗證)的批大小,即模型驗證過程中,每次迭代(每一步)載入的樣本數量。

    32

    總的訓練迭代epoch輪數

    所有樣本訓練完成一輪表示一個epoch。總的epoch輪數表示所有樣本共訓練多少輪。

    200

    儲存checkpoint的頻率

    儲存模型檔案的頻率。取值為1表示1個epoch訓練完成後儲存一次模型。

    1

    執行調優

    最佳化方法

    模型訓練的最佳化方法,支援以下取值:

    • SGD

    • Adam

    SGD

    每個GPU讀取訓練資料的進程數

    每個GPU讀取訓練資料的進程數量。

    2

    evtorch model 開啟半精度

    選中該參數,表示使用半精度進行模型訓練,用來降低記憶體佔用。

    單機或分布式DLC

    組件啟動並執行引擎,您可以結合實際情況選擇。系統支援以下計算引擎:

    • 單機DLC

    • 分布式DLC

    單機DLC

    worker個數

    當運行引擎為分布式DLC時,需要配置該參數。

    訓練過程中,並發的進程(worker)數量。

    1

    cpu機型選擇

    當運行引擎為分布式DLC時,需要配置該參數。

    選擇啟動並執行CPU規格。

    16vCPU+64GB Mem-ecs.g6.4xlarge

    gpu機型選擇

    選擇啟動並執行GPU規格。

    8vCPU+60GB Mem+1xp100-ecs.gn5-c8g1.2xlarge

  • 輸出樁

    輸出樁

    資料類型

    下遊組件

    輸出模型

    OSS路徑。該路徑是您在欄位設定頁簽的儲存訓練輸出的oss目錄參數配置的OSS路徑,訓練產生的模型儲存在該路徑下。

    通用映像預測

使用樣本

您可以使用映像關鍵點訓練組件構建如下工作流程。工作流程本樣本中,您需要按照以下流程配置組件:

  1. 準備資料,通過PAI提供的智能標註模組進行資料標註,詳情請參見智能標註(iTAG)

  2. 使用讀OSS資料-1讀OSS資料-2讀OSS資料-3讀OSS資料-4讀OSS資料-5組件分別讀取訓練資料、訓練資料標註結果檔案、驗證資料、驗證資料標註結果檔案和資料集標籤檔案,即配置讀OSS資料組件的OSS資料路徑參數為存放訓練資料、訓練資料標註結果檔案、驗證資料、驗證資料標註結果檔案和資料集標籤檔案的OSS路徑。

  3. 將以上5個讀OSS資料組件接入映像關鍵點訓練組件,並配置具體參數,詳情請參見上文的可視化配置組件

  4. 通過通用映像預測組件進行離線推理,需要配置以下關鍵參數,詳情請參見通用映像預測

    • 模型類型:選擇關鍵點預測

    • 模型OSS路徑映像關鍵點訓練組件輸出模型的OSS路徑。

    • 檢測模型OSS路徑:手動選擇關鍵點使用的檢測模型的OSS路徑。

      說明

      因為當前僅支援TopDown格式的關鍵點演算法,所以需要一個檢測模型先將人體框出,再將檢測框送入關鍵點模型識別關鍵點。如果您在通用映像預測組件的上遊串連映像檢測訓練組件,使用該組件輸出的檢測模型,則不需要配置檢測模型OSS路徑參數,否則必須手動設定該參數。

    • 檢測模型類型(必選):關鍵點使用的檢測模型類型,僅支援yolox預測