OCR
支持在模型工程中训练 “OCR”(图像文字识别)模型。支持使用数据集对训练所得模型进行评估、推理,并展示结果。
模型版本
模型版本用于管理训练得到的模型,通过创建模型版本可以一键进行模型的训练、训练可视化 (TensorBoard)、评估、推理。 训练的基本配置信息、日志、监控等内容可在模型版本详情页中查看。训练可视化、评估、推理的配置等信息可以在各自任务的详情页中查看。
创建模型版本
创建之前,需要先创建 模型工程、用于训练的 标注数据集。 标注数据集需要使用“实例正框”标注文字位置,并为正框添加一个属性,数据类型为字符串,设置方式为必填的填空,属性内容将作为文字字符的标注,参考 标注规则集。
左侧功能栏选择“0 代码训练”;
在模型工程列表页单击创建好的模型工程名称;
单击上方“模型版本”,进入子页面;
单击“创建模型版本”按钮,打开创建页面;
按照页面提示配置参数:
名称
必填项
说明
模型版本名称
是
需要包含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”:
文字识别阶段每张卡每批次推理的样本数
单击“创建”。
TensorBoard
TensorBoard 其余的操作方式和 分类 中一致,请参考 TensorBoard。
查看 TensorBoard
左侧功能栏选择“0 代码训练”;
在模型工程列表页单击 TensorBoard 所在模型工程的名称;
单击页面上方 TensorBoard,进入子页面;
查找需要可视化的 TensorBoard, 单击 TensorBoard 地址;
查看“OCR”模型训练过程中的可视化。文字检测环节,每个 epoch 在测试集上对字符检测的精确率与召回率,每个 iteration 在训练集的不同维度的 loss 曲线(包括 BCELoss,DiceLoss 和 L1Loss); 文字识别环节,每个 epoch 在测试集上的单词不同维度的 acc(如无视大小写和符号,无视大小写,无限制),字符识别的精确率与召回率,每个 iteration 在训练集的 loss 曲线。
文字检测
① 每个 epoch 在测试集上对字符检测的精确率
② 每个 epoch 在测试集上对字符检测的召回率
③ 每个 iteration 在训练集的不同维度的 BCELoss 曲线
④ 每个 iteration 在训练集的不同维度的 DiceLoss 曲线
⑤ 每个 iteration 在训练集的不同维度的 L1Loss 曲线
文字识别
⑥ 每个 epoch 在测试集上的单词不同维度的 acc 无视大小写和符号
⑦ 每个 epoch 在测试集上的单词不同维度的 acc 无视大小写
⑧ 每个 epoch 在测试集上的单词不同维度的 acc 无限制
⑨ 字符识别的精确率
⑩ 字符识别的召回率
⑪⑫ 每个 iteration 在训练集的 loss 曲线
TensorBoard 其余的操作方式和 分类 中一致,请参考 TensorBoard。
评估任务
评估任务用于评估 模型版本 中的模型。
创建评估任务的方式有两种:
用户可以打开“成功”状态的评估任务的“可视化”界面,查看“OCR”模型评估指标。
创建评估任务
创建之前,需要先 创建模型版本, 并确保其类型为“OCR”,状态为“成功”。
左侧功能栏选择“0 代码训练”;
在模型工程列表页单击待评估的模型版本所在的模型工程名称;
单击上方“评估任务”,进入子页面;
单击“创建评估任务”按钮,打开创建页面;
按照页面提示配置参数:
名称
必填项
说明
评估任务名称
是
模型版本
是
数据
是
符合“OCR”标注要求的标注数据集
评估参数
是
“stage_one_batch_size”:
文字检测每张卡每批次评估的样本数
“stage_two_batch_size”:
文字识别每张卡每批次评估的样本数
单节点规格
是
评估任务的算力规格
单击“创建”。
查看评估任务详情
左侧功能栏选择“0 代码训练”;
在模型工程列表页单击评估任务所在模型工程名称;
单击页面上方“评估任务”,进入子页面;
单击评估任务名称,进入评估任务详情页,可查看评估任务状态、详情、规格、评估参数等信息;
在评估任务详情页,单击上方“监控 ”功能,可查看评估任务 CPU、内存、MLU、网络流量等资源的监控;
在评估任务详情页,单击上方“日志 ”功能,可查看评估任务的日志、事件信息;
在评估任务详情页,单击上方“检测结果”功能,可查看被评估模型对标注数据集中图像的检测结果。如下图所示,左侧为图像列表,点击名称,右侧会展示相应预测图像预览及预测结果。
检测结果包含
dobjects
,dclasses
,dconfidences
字段,分别对应:物体检测的坐标列表,物体检测的类别列表,每个检测的置信度列表。 更多说明可参见 在线测试 中输出格式部分。在评估任务详情页,单击上方“可视化”功能,可查看“OCR”模型的评估指标。文字检测+文字识别模型结果分别评估, 总体评估为 H-Mean(精确率、召回率和调和平均数,用以衡量“OCR”模型精确度), 在文字检测模块,详细评估对文字检测的精确率、召回率及调和平均数;在文字识别模块,以标注的 Ground truth 为基准比较, 详细评估对单词无视大小写的精度,对单词无视大小写和符号的精度,对单词无限制精度,以及对字符的召回略和精确率。 文字检测+文字识别模型结果串联评估:总体评估为H-Mean,为基于文字检测后的预测结果,传送到下一环节文字识别的预测结果, 端到端的串联评估效果,具体包括端到端的精确率,召回率和调和平均精度。
备注
鼠标移动到柱状体上会显示具体的评估指标。
文字检测
① 文字检测召回率
② 文字检测精确率
③ 文字检测调和平均数
文字识别
④ 文字识别召回率
⑤ 文字识别精确率
⑥ 文字识别无限制精度
⑦ 文字识别无视大小写精度
⑧ 文字识别无视大小写符号精度
文字检测和文字识别串联评估
⑨ 端到端的召回率
⑩ 端到端的精确率
⑪ 端到端的调和平均数
评估对比
推理任务
推理任务使用 模型版本 中的模型,推理测试数据集。
创建“推理任务”的方式有两种:
在 创建模型版本 时,表单中填写“推理数据”和“推理参数”,在训练完模型之后将会自动创建推理任务;
选择已经创建的“模型版本”,配置“推理数据”和“推理参数”,对模型进行推理,过程参见 创建推理任务。
创建推理任务
创建之前,需要先 创建模型版本, 并确保其类型为“OCR”,状态为“成功”。
左侧功能栏选择“0 代码训练”;
在“模型工程”列表页单击待推理的“模型版本”所在的“模型工程”;
单击上方“推理任务”,进入子页面;
单击“创建推理任务”按钮,打开创建页面;
按照页面提示配置参数:
名称
必填项
说明
推理任务名称
是
模型版本
是
数据
是
可选“标注数据集”、“我的数据集”或“数据集收藏”,
用于推理训练得到的模型
推理参数
是
“stage_one_batch_size”:
文字检测每张卡每批次推理的样本数
“stage_two_batch_size”:
文字识别每张卡每批次推理的样本数
单节点规格
是
推理任务的算力规格
单击“创建”。