如果您的業務場景涉及人體相關的關鍵點檢測,則可以通過圖像關鍵點訓練組件構建關鍵點模型,從而進行模型推理。本文為您介紹圖像關鍵點訓練組件的配置方法及使用示例。
前提條件
已開通OSS并完成授權,詳情請參見開通OSS服務和云產品依賴與授權:Designer。
功能限制
僅Designer提供該算法組件。
支持的計算引擎為DLC。
算法簡介
關鍵點檢測模塊提供主流的自上而下(Top-Down)的算法,主要包含兩個部分:目標檢測和單人人體關鍵點檢測。人體關鍵點定位依賴于檢測算法提出的Proposals,目前已經支持的模型包括HRNet和Lite-HRNet。
圖像關鍵點訓練組件位于組件庫視覺算法文件夾下的離線訓練模型子文件夾。
可視化配置組件
輸入樁
輸入樁(從左到右)
限制數據類型
建議上游組件
是否必選
訓練數據
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://examplebucket/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路徑,訓練生成的模型存儲在該路徑下。
使用示例
您可以使用圖像關鍵點訓練組件構建如下工作流。本示例中,您需要按照以下流程配置組件:
準備數據,通過PAI提供的智能標注模塊進行數據標注,詳情請參見智能標注(ITAG)。
使用讀OSS數據-1、讀OSS數據-2、讀OSS數據-3、讀OSS數據-4和讀OSS數據-5組件分別讀取訓練數據、訓練數據標注結果文件、驗證數據、驗證數據標注結果文件和數據集標簽文件,即配置讀OSS數據組件的OSS數據路徑參數為存放訓練數據、訓練數據標注結果文件、驗證數據、驗證數據標注結果文件和數據集標簽文件的OSS路徑。
將以上5個讀OSS數據組件接入圖像關鍵點訓練組件,并配置具體參數,詳情請參見上文的可視化配置組件。
通過通用圖像預測組件進行離線推理,需要配置以下關鍵參數,詳情請參見通用圖像預測。
模型類型:選擇關鍵點預測。
模型OSS路徑:圖像關鍵點訓練組件輸出模型的OSS路徑。
檢測模型OSS路徑:手動選擇關鍵點使用的檢測模型的OSS路徑。
說明因為當前僅支持TopDown格式的關鍵點算法,所以需要一個檢測模型先將人體框出,再將檢測框送入關鍵點模型識別關鍵點。如果您在通用圖像預測組件的上游連接圖像檢測訓練組件,使用該組件輸出的檢測模型,則不需要配置檢測模型OSS路徑參數,否則必須手動配置該參數。
檢測模型類型(必選):關鍵點使用的檢測模型類型,僅支持yolox預測。