如果您的业务场景是将图像中的某些高风险的实体进行框选检测,则可以通过图像检测训练算法组件构建目标检测模型,从而用其进行推理。本文介绍图像检测训练算法组件的配置方法及使用示例。

前提条件

已开通OSS并完成授权,详情请参见开通OSS服务PAI访问云产品授权:OSS

使用限制

仅PAI-Designer提供该算法组件。

算法简介

图像检测模块提供各种主流的检测模型用于目标检测的训练。目前支持以下模型:
  • SSD
  • Faster-RCNN
  • RFCN
  • YoloV5

图像检测训练算法组件位于组件库音视觉算法文件夹下的离线训练模型子文件夹,最大支持对上亿规模图片进行图片检测训练。

可视化配置组件参数

  • 输入桩
    输入桩(从左到右) 限制数据类型 建议上游组件 是否必选
    训练数据 OSS 数据转tfrecord 否。

    如果没有通过输入桩配置该参数,也可以在字段设置页签的训练数据oss路径参数中配置。

    评估数据 OSS 数据转tfrecord 否。

    如果没有通过输入桩配置该参数,也可以在字段设置页签的评估数据oss路径参数中配置。

    YOLOV5类别列表文件 OSS 读OSS组件 否。仅训练模型类型取值为YOLOV5时,需要配置类别列表文件。

    如果没有通过输入桩配置该参数,也可以在字段设置页签的类别列表文件oss路径参数中配置。

  • 组件参数
    页签 参数 是否必选 描述 默认值
    字段设置 训练模型类型 训练所选的模型类型,支持以下取值:
    • SSD
    • FasterRCNN
    • RFCN
    • YOLOV5:最新推出的模型网络,拥有精度高、训练快的优势。
    FasterRCNN
    训练所用oss目录 存储训练模型的OSS目录。例如oss://pai-online-shanghai.oss-cn-shanghai-internal.aliyuncs.com/test/ckpt/
    训练数据oss路径 如果没有通过输入桩配置算法组件的训练数据,则需要配置该参数,表示tfrecord格式的训练数据文件所在的OSS路径,支持通配符,例如oss://a/train*.tfrecord

    如果同时通过输入桩和该参数配置了算法组件的训练数据,则优先使用输入桩配置的输入。

    评估数据oss路径

    如果没有通过输入桩配置算法组件的评估数据,则需要配置该参数,表示tfrecord格式的评估数据文件所在的OSS路径,支持通配符,例如oss://a/test*.tfrecord

    如果同时通过输入桩和该参数配置了算法组件的评估数据,则优先使用输入桩配置的输入。

    是否使用预训练模型 建议使用预训练模型,以提高训练模型的精度。
    预训练模型oss路径 如果有自己的预训练模型,则将该参数配置为自己预训练模型的OSS路径。如果没有配置该参数,则使用PAI提供的默认预训练模型。
    类别列表文件oss路径 训练模型类型取值为YOLOV5时,需要类别列表文件,默认系统自动生成,因此您无需自己配置。

    类别列表文件是为了告诉系统哪些类别需要训练。文件的每一行为一种类别。

    YOLOV5数据源格式 训练模型类型取值为YOLOV5时,您需要配置YOLOV5的数据源格式,支持以下取值:
    • YOLOV5原生格式
    • PAI标注格式
    • Pascal VOC格式
    PAI标注格式
    开启oss cache缓存 训练模型类型取值为YOLOV5时,需要开启缓存,以加速OSS文件读取。
    参数设置 检测模型使用的backbone 选择使用的识别模型网络,你需要根据训练模型类型选择合适的识别模型网络:
    • 训练模型类型SSD时,支持以下主流识别模型:
      • resnet_v1_50
      • vgg16_reduce_fc
      • mobilenet_v1
    • 训练模型类型FasterRCNNRFCN时,支持以下主流识别模型:
      • resnet_v1_50
      • resnet_v1_101
    • 训练模型类型YOLOV5时,无需配置该参数。
    resnet_v1_50
    YOLOV5检测模型使用的模型大小 训练模型类型YOLOV5时,您必须选择YOLOV5检测模型使用的模型大小,系统支持以下取值:
    • yolov5s
    • yolov5m
    • yolov5l
    • yolov5x
    yolov5m
    检测类别数目 数据中类别标签的数目。如果没有配置该参数,则默认从数据集中分析得到类别数量。
    anchor尺度 anchor框的大小,与Resize后的输入图片在一个尺度。 设置大小时参考输入图片Resize后的大小。针对不同的模型类型,该参数的取值不同:
    • 如果使用SSD模型类型,则无需指定该参数。默认为输入大小的[0.1 0.2 0.37 0.54 0.71 0.88 0.96 1.0]倍。
    • 如果使用FasterRCNN(未使用FPN)或RFCN(未使用FPN)模型类型,可以任意填写多个anchor大小。默认值为[128 256 512]
    • 如果使用了FPN,则该参数只填写一个值,表示分辨率最高Layer的anchor大小,一共有5个Layer,后面每个Layer上每个anchor大小为前一Layer的2倍。例如32, 64, 128, 256, 512。SSD FPN默认值为32,FasterRCNN FPN默认值为32,RFCN暂不支持FPN。
    anchor宽高比 宽比高的比值,多个值之间采用空格分隔。 0.5 1 2
    图片缩放后的最短边大小 当训练模型类型为FasterRCNNRFCN时,您需要配置图片缩放后的最短边大小。

    为了支持Multi-Scale Training,当输入的Size有多个时,前n-1个作为训练的配置,最后一个做评估测试的配置。否则,训练评估使用相同配置。

    600
    图片缩放后的最长边大小 当训练模型类型为FasterRCNNRFCN时,您需要配置图片缩放后的最长边大小。

    为了支持Multi-Scale Training,当输入的Size有多个时,前n-1个作为训练的配置,最后一个做评估测试的配置。否则,训练评估使用相同配置。

    1024
    优化方法 模型训练的优化方法,支持以下取值:
    • momentum:指sgd
    • adam
    momentum
    yolov5输入图片尺度 YOLOV5图片预处理大小,单位为像素。取值为整数,且高=宽=image_size 640
    学习率调整策略
    系统支持以下调整策略:
    • exponential_decay:指数衰减,详细请参见exponential_decay
    • polynomial_decay:多项式衰减,详情请参见polynomial_decay。其中num_steps自动设置为总的训练迭代次数,end_learning_rateinitial_learning_rate的千分之一。
    • manual_step:人工指定各阶段的学习率,建议进阶用户使用。通过decay_epochs指定需要调整学习率的迭代轮数,通过learning_rates指定对应迭代轮数使用的学习率。
    exponential_decay
    初始学习率 初始学习率。 0.01
    decay_epochs

    学习率调整策略使用exponential_decaymanual_step时,需要配置该参数。

    如果学习率调整策略使用exponential_decay,则该参数对应tf.train.exponential_decay 中的decay_steps,详情请参见exponential_decay。系统会自动根据训练数据总数把decay_epochs转换为decay_steps,通常配置为总Epoch数的1/2。例如配置为10。

    如果学习率调整策略使用manual_step,则该参数表示需要调整学习率的迭代轮数。例如16 18表示在16 Epoch和18 Epoch对学习率进行调整。通常这两个值取总Epoch的8/10和9/10。

    10
    decay_factor exponential_decay时,需要配置该参数,表示学习率迭代过程的衰减比率。此时该参数同tf.train.exponential_decay 中的decay_factor,详情请参见exponential_decay 0.95
    staircase 学习率调整策略使用exponential_decay时,需要配置该参数。如果选中该复选框,则按照离散间隔进行学习率衰减,否则按照连续间隔进行学习率衰减。该参数同tf.train.exponential_decay 中的staircase,详情请参见exponential_decay
    epoch 学习率

    学习率调整策略使用manual_step时,需要配置该参数,表示将指定Epoch 学习率调整为多少。如果您指定的调整Epoch有两个,则需要在此填写两个对应的学习率。例如decay_epoches取值为20 40,则此处应该填写0.001 0.0001两个学习率,表示将20 Epoch的学习率调整为0.001,将40 Epoch学习率调整为0.0001。通常建议这几次调整的学习率依次设置为初始学习率的1/10、1/100、1/1000……

    训练batch_size 训练的批大小,即单次模型迭代或训练过程中使用的样本数量。
    评估batch_size 评估的批大小,即单次模型迭代或训练过程中使用的样本数量。 1
    总的训练迭代epoch轮数 总的训练迭代轮数。 20
    评估数据条目数 训练过程中评估数据条目数。
    评估过程可视化显示样本数目 评估过程可视化显示的样本数量。 5
    保存checkpoint的频率 保存模型文件的频率。取值1表示对所有训练数据都进行一次迭代。 1
    执行调优 读取训练数据线程数 读取训练数据的线程数量。 4
    单机或分布式(MaxCompute/DLC)
    组件运行的引擎,您可以结合实际情况选择。系统支持以下计算引擎:
    结合对训练模型的单机或分布式要求,系统支持以下取值:
    • 单机MaxCompute

      当运行引擎为单机MaxCompute时,您还需要配置是否使用GPU,取值100表示1张GPU卡。如果不使用GPU,则需要将是否使用GPU配置为0。

    • 分布式MaxCompute
      当运行引擎为分布式MaxCompute时,您还需要配置以下参数:
      • worker个数:并发的worker数量。
      • CPU Core个数:每个Worker的CPU数目,取值100表示1核。
      • memory大小:每个Worker的内存大小,单位为MB。
    • 单机DLC

      当运行引擎为单机DLC时,您还需要配置gpu机型选择参数,表示运行的GPU规格。

    • 分布式DLC
      当运行引擎为分布式DLC时,您还需要配置以下参数:
      • worker个数:并发的worker数量。
      • CPU机型选择:选择运行的CPU规格。
      • gpu机型选择:选择运行的GPU规格。
    分布式DLC
  • 输出桩
    输出桩(从左到右) 数据类型 下游组件
    输出模型 OSS路径。该路径是您在字段设置页签的训练所用oss目录参数配置的OSS路径,训练生成SavedModel格式的模型存储在该路径下。 通用图像预测

计算引擎

图像检测训练算法组件支持MaxCompute和PAI-DLC引擎。您可以在执行调优页签的单机或分布式(MaxCompute/DLC)参数配置运行引擎。

示例

对于SSD、FasterRCNN、RFCN类型的模型,您可以使用图像检测训练算法组件构建如下工作流。图像检测示例1本示例中,您需要按照以下流程配置组件:
  1. 通过PAI提供的智能标注模块进行图片标注,详情请参见处理标注任务
  2. 使用读OSS数据组件读取标注结果文件xxx.manifest,即配置读OSS数据组件的OSS数据路径参数为标注结果数据集的OSS路径。例如oss://pai-online-shanghai.oss-cn-shanghai.aliyuncs.com/ev_demo/xxx.manifest
  3. 通过数据转tfrecord组件将数据集拆分为tfrecord格式的训练数据和评估数据,详情请参见数据转tfrecord
  4. 将训练数据和评估数据接入图像检测训练算法组件,并配置具体参数,详情请参见上文的可视化配置组件参数
  5. 通过通用图像预测组件进行离线推理,详情请参见通用图像预测
对于YOLOV5类型的模型,您可以使用图像检测训练算法组件构建如下工作流。图像检测示例2本示例中,您需要按照以下流程配置组件:
  1. 通过PAI提供的智能标注模块分别对训练数据和评估数据进行图片标注,详情请参见处理标注任务
  2. 使用读OSS数据-1组件读取训练数据标注结果文件xxx.manifest,即配置读OSS数据组件的OSS数据路径参数为标注结果数据集的OSS路径。例如oss://pai-online-shanghai.oss-cn-shanghai.aliyuncs.com/ev_demo/xxx.manifest
  3. 使用读OSS数据-2组件读取评估数据标注结果文件xxx.manifest,即配置读OSS数据组件的OSS数据路径参数为标注结果数据集的OSS路径。例如oss://pai-online-shanghai.oss-cn-shanghai.aliyuncs.com/ev_demo/xxx.manifest
  4. 配置标签列表文件,即配置读OSS数据-3组件的OSS数据路径参数为标签列表文件的OSS路径。例如oss://pai-online-shanghai.oss-cn-shanghai.aliyuncs.com/ev_demo/图像审核-检测标注_class.txt。您可以参考示例标签列表文件(下载图像检测的标签列表文件示例),构建自己的标签列表文件,
  5. 将训练数据、评估数据及类别列表文件接入图像检测训练算法组件,并配置具体参数,详情请参见上文的可视化配置组件参数
  6. 通过通用图像预测组件进行离线推理,详情请参见通用图像预测