图像关键点训练

如果您的业务场景涉及人体相关的关键点检测,则可以通过图像关键点训练组件构建关键点模型,从而进行模型推理。本文为您介绍图像关键点训练组件的配置方法及使用示例。

前提条件

已开通OSS并完成授权,详情请参见开通OSS服务云产品依赖与授权:Designer

功能限制

  • Designer提供该算法组件。

  • 支持的计算引擎为DLC。

算法简介

关键点检测模块提供主流的自上而下(Top-Down)的算法,主要包含两个部分:目标检测和单人人体关键点检测。人体关键点定位依赖于检测算法提出的Proposals,目前已经支持的模型包括HRNetLite-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://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 step5,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表示1epoch训练完成后保存一次模型。

    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数据-1OSS数据-2OSS数据-3OSS数据-4OSS数据-5组件分别读取训练数据、训练数据标注结果文件、验证数据、验证数据标注结果文件和数据集标签文件,即配置OSS数据组件的OSS数据路径参数为存放训练数据、训练数据标注结果文件、验证数据、验证数据标注结果文件和数据集标签文件的OSS路径。

  3. 将以上5OSS数据组件接入图像关键点训练组件,并配置具体参数,详情请参见上文的可视化配置组件

  4. 通过通用图像预测组件进行离线推理,需要配置以下关键参数,详情请参见通用图像预测

    • 模型类型:选择关键点预测

    • 模型OSS路径图像关键点训练组件输出模型的OSS路径。

    • 检测模型OSS路径:手动选择关键点使用的检测模型的OSS路径。

      说明

      因为当前仅支持TopDown格式的关键点算法,所以需要一个检测模型先将人体框出,再将检测框送入关键点模型识别关键点。如果您在通用图像预测组件的上游连接图像检测训练组件,使用该组件输出的检测模型,则不需要配置检测模型OSS路径参数,否则必须手动配置该参数。

    • 检测模型类型(必选):关键点使用的检测模型类型,仅支持yolox预测