OCR

支持在模型工程中训练 “OCR”(图像文字识别)模型。支持使用数据集对训练所得模型进行评估、推理,并展示结果。

模型版本

模型版本用于管理训练得到的模型,通过创建模型版本可以一键进行模型的训练、训练可视化 (TensorBoard)、评估、推理。 训练的基本配置信息、日志、监控等内容可在模型版本详情页中查看。训练可视化、评估、推理的配置等信息可以在各自任务的详情页中查看。

创建模型版本

创建之前,需要先创建 模型工程、用于训练的 标注数据集。 标注数据集需要使用“实例正框”标注文字位置,并为正框添加一个属性,数据类型为字符串,设置方式为必填的填空,属性内容将作为文字字符的标注,参考 标注规则集

  1. 左侧功能栏选择“0 代码训练”;

  2. 在模型工程列表页单击创建好的模型工程名称;

  3. 单击上方“模型版本”,进入子页面;

  4. 单击“创建模型版本”按钮,打开创建页面;

  5. 按照页面提示配置参数:

    表 84 创建“OCR”类型的模型版本参数

    名称

    必填项

    说明

    模型版本名称

    需要包含3位数字,如 1.0.0

    存储集群

    可视化时长

    TensorBoard 的使用时长

    类型

    模型类型,此处应该选择“OCR”

    模型规模

    预置模型的规模,有“大”、“中”、“小”三种选择

    预训练模型

    该选项的可选值由“类型”和“模型规模”配置决定

    因此,该选项在填写完成“类型”和“模型规模”之后出现

    单节点规格

    依托于模型版本创建的训练、评估、推理任务的算力规格,支持多选

    节点数

    每个任务总的资源量为 单节点规格 x 计算节点数量

    训练数据

    符合“OCR”标注要求的标注数据集,用于训练模型

    训练参数

    “stage_one_learning_rate”:文字检测阶段训练学习率

    “stage_one_batch_size”:文字检测阶段每张卡每批次训练的样本数

    “stage_one_cycle_count”:文字检测阶段训练周期数

    “stage_two_learning_rate”:文字识别阶段训练学习率

    “stage_two_batch_size”:文字识别阶段每张卡每批次训练的样本数

    “stage_two_cycle_count”:文字识别阶段训练周期数

    评估数据

    符合“OCR”标注要求的标注数据集,用于评估训练得到的模型

    如果填写,模型版本在训练完成后将会自动创建评估任务

    评估参数

    “stage_one_batch_size”:

    文字检测阶段每张卡每批次评估的样本数

    “stage_two_batch_size”:

    文字识别阶段每张卡每批次评估的样本数

    推理数据

    可选“标注数据集”、“我的数据集”或“数据集收藏”,

    模型推理所用数据

    如果填写,模型版本在训练完成后将会自动创建推理任务

    推理参数

    “stage_one_batch_size”:

    文字检测阶段每张卡每批次推理的样本数

    “stage_two_batch_size”:

    文字识别阶段每张卡每批次推理的样本数

  6. 单击“创建”。

    ../../_images/codeless_model_version_ocr_create.png

    图 115 创建模型版本

模型版本其余的操作方式和 分类 中一致,请参考 模型版本

TensorBoard

TensorBoard 其余的操作方式和 分类 中一致,请参考 TensorBoard

查看 TensorBoard

  1. 左侧功能栏选择“0 代码训练”;

  2. 在模型工程列表页单击 TensorBoard 所在模型工程的名称;

  3. 单击页面上方 TensorBoard,进入子页面;

  4. 查找需要可视化的 TensorBoard, 单击 TensorBoard 地址;

  5. 查看“OCR”模型训练过程中的可视化。文字检测环节,每个 epoch 在测试集上对字符检测的精确率与召回率,每个 iteration 在训练集的不同维度的 loss 曲线(包括 BCELoss,DiceLoss 和 L1Loss); 文字识别环节,每个 epoch 在测试集上的单词不同维度的 acc(如无视大小写和符号,无视大小写,无限制),字符识别的精确率与召回率,每个 iteration 在训练集的 loss 曲线。

    ../../_images/codeless_model_version_ocr_tensorboard.png

    图 116 “OCR”模型训练过程中的可视化

文字检测

① 每个 epoch 在测试集上对字符检测的精确率

② 每个 epoch 在测试集上对字符检测的召回率

③ 每个 iteration 在训练集的不同维度的 BCELoss 曲线

④ 每个 iteration 在训练集的不同维度的 DiceLoss 曲线

⑤ 每个 iteration 在训练集的不同维度的 L1Loss 曲线

文字识别

⑥ 每个 epoch 在测试集上的单词不同维度的 acc 无视大小写和符号

⑦ 每个 epoch 在测试集上的单词不同维度的 acc 无视大小写

⑧ 每个 epoch 在测试集上的单词不同维度的 acc 无限制

⑨ 字符识别的精确率

⑩ 字符识别的召回率

⑪⑫ 每个 iteration 在训练集的 loss 曲线

TensorBoard 其余的操作方式和 分类 中一致,请参考 TensorBoard

评估任务

评估任务用于评估 模型版本 中的模型。

创建评估任务的方式有两种:

  1. 创建模型版本 时,表单中填写“评估数据”和“评估参数”,在训练完模型之后将会自动创建评估任务;

  2. 选择已经创建的模型版本,配置“评估数据”和“评估参数”,对模型进行评估,过程参见 创建评估任务

用户可以打开“成功”状态的评估任务的“可视化”界面,查看“OCR”模型评估指标。

创建评估任务

创建之前,需要先 创建模型版本, 并确保其类型为“OCR”,状态为“成功”。

  1. 左侧功能栏选择“0 代码训练”;

  2. 在模型工程列表页单击待评估的模型版本所在的模型工程名称;

  3. 单击上方“评估任务”,进入子页面;

  4. 单击“创建评估任务”按钮,打开创建页面;

  5. 按照页面提示配置参数:

    表 85 创建评估任务参数

    名称

    必填项

    说明

    评估任务名称

    模型版本

    数据

    符合“OCR”标注要求的标注数据集

    评估参数

    “stage_one_batch_size”:

    文字检测每张卡每批次评估的样本数

    “stage_two_batch_size”:

    文字识别每张卡每批次评估的样本数

    单节点规格

    评估任务的算力规格

  1. 单击“创建”。

    ../../_images/codeless_evaluation_ocr_create.png

    图 117 创建评估任务

查看评估任务详情

  1. 左侧功能栏选择“0 代码训练”;

  2. 在模型工程列表页单击评估任务所在模型工程名称;

  3. 单击页面上方“评估任务”,进入子页面;

  4. 单击评估任务名称,进入评估任务详情页,可查看评估任务状态、详情、规格、评估参数等信息;

  5. 在评估任务详情页,单击上方“监控 ”功能,可查看评估任务 CPU、内存、MLU、网络流量等资源的监控;

  6. 在评估任务详情页,单击上方“日志 ”功能,可查看评估任务的日志、事件信息;

  7. 在评估任务详情页,单击上方“检测结果”功能,可查看被评估模型对标注数据集中图像的检测结果。如下图所示,左侧为图像列表,点击名称,右侧会展示相应预测图像预览及预测结果。

    ../../_images/codeless_evaluation_ocr_detection.png

    图 118 “OCR”模型的评估检测结果

    检测结果包含 dobjectsdclassesdconfidences 字段,分别对应:物体检测的坐标列表,物体检测的类别列表,每个检测的置信度列表。 更多说明可参见 在线测试 中输出格式部分。

  8. 在评估任务详情页,单击上方“可视化”功能,可查看“OCR”模型的评估指标。文字检测+文字识别模型结果分别评估, 总体评估为 H-Mean(精确率、召回率和调和平均数,用以衡量“OCR”模型精确度), 在文字检测模块,详细评估对文字检测的精确率、召回率及调和平均数;在文字识别模块,以标注的 Ground truth 为基准比较, 详细评估对单词无视大小写的精度,对单词无视大小写和符号的精度,对单词无限制精度,以及对字符的召回略和精确率。 文字检测+文字识别模型结果串联评估:总体评估为H-Mean,为基于文字检测后的预测结果,传送到下一环节文字识别的预测结果, 端到端的串联评估效果,具体包括端到端的精确率,召回率和调和平均精度。

    ../../_images/codeless_evaluation_ocr_visual.png

    图 119 “OCR”模型的评估可视化

备注

鼠标移动到柱状体上会显示具体的评估指标。

文字检测

① 文字检测召回率

② 文字检测精确率

③ 文字检测调和平均数

文字识别

④ 文字识别召回率

⑤ 文字识别精确率

⑥ 文字识别无限制精度

⑦ 文字识别无视大小写精度

⑧ 文字识别无视大小写符号精度

文字检测和文字识别串联评估

⑨ 端到端的召回率

⑩ 端到端的精确率

⑪ 端到端的调和平均数

评估任务其余的操作方式和 分类 中一致,请参考 评估任务

评估对比

评估对比的操作方式和 分类 中一致,请参考 评估对比

推理任务

推理任务使用 模型版本 中的模型,推理测试数据集。

创建“推理任务”的方式有两种:

  1. 创建模型版本 时,表单中填写“推理数据”和“推理参数”,在训练完模型之后将会自动创建推理任务;

  2. 选择已经创建的“模型版本”,配置“推理数据”和“推理参数”,对模型进行推理,过程参见 创建推理任务

创建推理任务

创建之前,需要先 创建模型版本, 并确保其类型为“OCR”,状态为“成功”。

  1. 左侧功能栏选择“0 代码训练”;

  2. 在“模型工程”列表页单击待推理的“模型版本”所在的“模型工程”;

  3. 单击上方“推理任务”,进入子页面;

  4. 单击“创建推理任务”按钮,打开创建页面;

  5. 按照页面提示配置参数:

    表 86 创建推理任务参数

    名称

    必填项

    说明

    推理任务名称

    模型版本

    数据

    可选“标注数据集”、“我的数据集”或“数据集收藏”,

    用于推理训练得到的模型

    推理参数

    “stage_one_batch_size”:

    文字检测每张卡每批次推理的样本数

    “stage_two_batch_size”:

    文字识别每张卡每批次推理的样本数

    单节点规格

    推理任务的算力规格

  1. 单击“创建”。

    ../../_images/codeless_predictor_job_ocr_create.png

    图 120 创建推理任务

推理任务其余的操作方式和 分类 中一致,请参考 推理任务