当前位置: 首页 > news >正文

PaddleOCR系列——《文本检测、文本识别》模型训练

上面已经制作完数据集 ,现在开始进行模型训练。

数据集制作请参考:PaddleOCR系列——《文本检测、文本识别、表格结构》数据集制作_ppocrlabel-CSDN博客

官方文档:

文本检测模块 - PaddleOCR 文档

文本识别模块 - PaddleOCR 文档

下载PaddleOCR源码

https://github.com/PaddlePaddle/PaddleOCR.git

再或者GitHub - PaddlePaddle/PaddleOCR: Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100+ languages. · GitHub
去github下载源码压缩包

安装参考:PaddleOCR系列——基础环境安装及快速使用-CSDN博客

官方链接:安装 - PaddleOCR 文档

下载预训练模型

# 下载 PP-OCRv5_server_det 预训练模型 wget https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/PP-OCRv5_server_det_pretrained.pdparams # 下载 PP-OCRv5_server_rec 预训练模型 wget https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/PP-OCRv5_server_rec_pretrained.pdparams

训练

源码结构:

配置文件:

接下来让我们看一下配置文件。

所有模型 配置文件路径是:

PaddleOCR-main/configs

我们现在要使用的配置文件是:

/mnt/svip/lmz/PyPro/PaddleOCR/test/PaddleOCR-main/configs/det/PP-OCRv5/PP-OCRv5_server_det.yml

/mnt/svip/lmz/PyPro/PaddleOCR/test/PaddleOCR-main/configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml

参数介绍:

PP-OCRv5_server_det.yml

一、Global(全局配置)

这部分是整个训练过程的全局控制参数,影响整体训练流程。

参数含义取值说明
model_name模型名称指定使用 PP-OCRv5_server_det 静态模型进行推理,用于标识训练的模型版本
debug调试模式false表示关闭调试(生产训练建议关闭),true会输出更多调试信息
use_gpu是否使用 GPUtrue启用 GPU 训练(大幅提升速度),false使用 CPU(仅测试 / 低配环境)
epoch_num训练轮数500表示模型会完整遍历训练集 500 次(&epoch_num是 YAML 锚点,方便其他地方复用该值)
log_smooth_window日志平滑窗口计算 20 个批次的平均日志指标(如 loss),让日志曲线更平滑
print_batch_step日志打印间隔每训练 10 个批次,打印一次训练日志(loss、lr 等)
save_model_dir模型保存目录训练过程中生成的模型文件会保存到./output/PP-OCRv5_server_det
save_epoch_step模型保存间隔每训练 10 个 epoch,保存一次模型权重
eval_batch_step评估间隔[0, 1500]表示:从第 0 个 epoch 开始,每训练 1500 个批次,对验证集评估一次
cal_metric_during_train训练中计算指标false表示训练时不计算精度 / 召回率(提升训练速度),仅在 eval 阶段计算
checkpoints断点续训路径空值表示从头训练,若填路径则从指定断点恢复训练
pretrained_model预训练模型路径使用 PPHGNetV2_B4 预训练权重初始化模型(迁移学习,提升训练效果)
save_inference_dir推理模型保存路径空值表示训练时不导出推理模型,训练完成后可单独导出
use_visualdl可视化工具false关闭 VisualDL(Paddle 可视化工具),true可实时查看 loss / 指标曲线
infer_img测试推理图片训练中若需快速测试模型效果,指定单张测试图片路径
save_res_path推理结果保存路径测试推理的结果(如检测框坐标)保存到该文件
distributed分布式训练true启用多卡分布式训练(需多 GPU 环境),false单卡训练
二、Architecture(模型结构)

定义文本检测模型的网络结构,PP-OCRv5 基于 DB(Differentiable Binarization)算法。

参数含义取值说明
model_type模型类型det表示检测模型(OCR 分为 det 检测、rec 识别)
algorithm检测算法DB是 PaddleOCR 主流的文本检测算法(可微分二值化)
Transform数据变换层空值表示不使用额外变换层
Backbone.name骨干网络PPHGNetV2_B4是 PP-OCRv5 主推的骨干网络(轻量且精度高),det: True适配检测任务
Neck.name颈部网络LKPAN是 DB 算法的特征融合模块,out_channels: 256输出特征通道数,intracl: true启用 intra-class 注意力
Head.name检测头PFHeadLocal是 PP-OCRv5 的检测头,k: 50是 DiceLoss 的参数,mode: "large"适配大尺寸文本
三、Loss(损失函数)

定义模型训练的损失计算方式,DB 算法的损失由多部分组成。

参数含义取值说明
name损失函数名称DBLoss是 DB 算法的专用损失(包含二值化损失 + 分割损失)
balance_loss平衡损失权重true自动平衡不同损失的权重,避免某类损失占主导
main_loss_type主损失类型DiceLoss是分割任务常用损失(适合文本区域分割)
alpha/beta损失权重系数调整不同损失分支的权重(alpha=5 对应二值化损失,beta=10 对应分割损失)
ohem_ratio难例挖掘比例3表示只计算 hardest 3:1 比例的负样本损失(提升模型对难例的学习能力)
四、Optimizer(优化器)

定义模型参数的优化策略,控制模型如何更新权重。

参数含义取值说明
name优化器类型Adam是主流的自适应学习率优化器(比 SGD 收敛更快)
beta1/beta2Adam 超参数动量相关参数,默认0.90.999(无需修改)
lr.name学习率策略Cosine余弦退火学习率(先升后降,适合长周期训练)
learning_rate初始学习率0.001(8 卡分布式训练的推荐值,单卡需按比例降低,如 0.000125)
warmup_epoch热身轮数2表示前 2 个 epoch 学习率从低到高线性上升(避免初始 lr 过高导致训练不稳定)
regularizer.name正则化方式L2正则化(权重衰减),防止模型过拟合
factor正则化系数1e-6是权重衰减系数(值越小,正则化约束越弱)
五、PostProcess(后处理)

模型输出预测结果后,将特征图转换为文本检测框的过程。

参数含义取值说明
name后处理方法DBPostProcess是 DB 算法的专用后处理
thresh二值化阈值0.3表示将预测概率图大于 0.3 的区域视为文本区域
box_thresh检测框置信度阈值0.6过滤掉置信度低于 0.6 的检测框(减少误检)
max_candidates最大候选框数1000限制单张图最多生成 1000 个候选框(防止内存溢出)
unclip_ratio框膨胀系数1.5将检测框向外膨胀 1.5 倍(弥补文本区域收缩,避免框住不全)
六、Metric(评估指标)

定义验证集的评估标准,衡量模型性能。

参数含义取值说明
name评估方法DetMetric是文本检测的标准评估方法
main_indicator核心评估指标hmean是 Precision(精确率)和 Recall(召回率)的调和平均(F1-score),是检测任务的核心指标
七、Train(训练集配置)

定义训练集的数据加载、数据增强等流程。

7.1 dataset(数据集配置)
参数含义取值说明
name数据集类型SimpleDataSet是 PaddleOCR 通用的数据集加载类
data_dir图片根目录训练图片的存放路径
label_file_list标签文件路径训练集标签文件(每行格式:图片名\t文本框坐标\t是否忽略
ratio_list数据采样比例[1.0]表示使用 100% 的训练数据
transforms数据增强 / 预处理流程按顺序执行以下操作:-DecodeImage:解码图片(BGR 模式,通道在后)-DetLabelEncode:编码检测标签(转换为模型可识别格式)-CopyPaste:文本复制粘贴增强(空值表示关闭)-IaaAugment:基于 imgaug 的数据增强(随机水平翻转、旋转 ±10°、缩放 0.5-3 倍)-EastRandomCropData:随机裁剪图片到 640×640(最多尝试 50 次,保持宽高比)-MakeBorderMap:生成边界概率图(用于计算边界损失)-MakeShrinkMap:生成文本区域收缩图(核心分割标签)-NormalizeImage:归一化(减均值、除标准差,符合预训练模型输入要求)-ToCHWImage:将图片格式从 HWC 转为 CHW(Paddle 要求的输入格式)-KeepKeys:保留模型训练所需的关键字段(图片、各类标签)
7.2 loader(数据加载器)
参数含义取值说明
shuffle打乱数据true每 epoch 打乱训练集顺序(避免模型过拟合)
drop_last丢弃最后不完整批次false保留最后一个不足 batch_size 的批次(true会丢弃,适合严格对齐批次的场景)
batch_size_per_card单卡批次大小8表示每张 GPU 每次加载 8 张图片(批次越大,训练越稳定,但显存占用越高)
num_workers数据加载线程数8启用 8 个线程加载数据(加速数据读取,避免 GPU 等待 CPU)
八、Eval(验证集配置)

定义验证集的数据加载流程(无数据增强,仅基础预处理)。

8.1 dataset(数据集配置)
参数含义取值说明
transforms预处理流程与训练集的区别:- 无数据增强(IaaAugment/Crop 等)-DetResizeForTest:测试时统一缩放图片(保持比例)- 保留polys(真实框坐标)、ignore_tags(是否忽略)用于计算指标
8.2 loader(数据加载器)
参数含义取值说明
shuffle打乱数据false验证集无需打乱(按顺序评估即可)
batch_size_per_card单卡批次大小1验证集批次大小为 1(确保评估精度,避免批次维度干扰)
num_workers数据加载线程数2验证集数据量小,线程数可减少
九、其他参数
参数含义
profiler_options性能分析选项空值表示关闭性能分析(调试时可开启,分析训练瓶颈)

PP-OCRv5_server_rec.yml

一、Global(全局配置)

控制文本识别模型训练的整体流程和基础参数,是整个训练的 “总开关”。

参数含义取值说明
model_name模型名称指定 PP-OCRv5_server_rec 静态识别模型,标识训练的模型版本
debug调试模式false关闭调试(生产训练建议),true输出更多调试日志
use_gpuGPU 启用开关true用 GPU 训练(识别模型对 GPU 依赖高,CPU 训练极慢)
epoch_num训练总轮数75表示模型遍历训练集 75 次(识别模型训练轮数远少于检测,因收敛更快)
log_smooth_window日志平滑窗口计算 20 个批次的平均指标(如 loss),让日志曲线更平稳
print_batch_step日志打印间隔每训练 10 个批次打印一次 loss、lr、准确率等日志
save_model_dir模型保存目录训练权重保存到./output/PP-OCRv5_server_rec
save_epoch_step模型保存间隔每训练 1 个 epoch 保存一次模型(识别模型迭代快,频繁保存便于选最优模型)
eval_batch_step评估间隔[0, 2000]:从第 0 个 epoch 开始,每 2000 个批次评估一次验证集
cal_metric_during_train训练中计算指标true训练时同步计算识别准确率(方便实时监控效果,检测模型常关闭以提速)
calc_epoch_interval按 epoch 评估间隔1每 1 个 epoch 强制评估一次(补充批次级评估)
pretrained_model预训练模型路径空值表示从头训练,填路径则加载预训练权重(推荐使用,提升收敛速度)
checkpoints断点续训路径空值表示从头训练,填路径则从指定断点恢复训练
save_inference_dir推理模型保存路径空值表示训练时不导出,训练完成后可单独导出为推理模型
use_visualdl可视化工具false关闭 VisualDL,true可可视化 loss / 准确率曲线
infer_img测试推理图片训练中快速测试模型识别效果的单张图片路径
character_dict_path字符字典路径./ppocr/utils/dict/ppocrv5_dict.txt是识别字符的字典文件(包含数字、字母、中文等)
max_text_length最大文本长度25(YAML 锚点&max_text_length供其他模块复用),限制识别文本的最大字符数,超过则截断
infer_mode推理模式false表示训练模式,true为纯推理模式(关闭训练相关逻辑)
use_space_char是否识别空格true支持识别文本中的空格(如 “AB CD”),false则忽略空格
distributed分布式训练true启用多卡分布式训练(多 GPU 环境必备)
save_res_path推理结果保存路径测试推理的识别结果(如 “图片名 \t 识别文本”)保存到该文件
d2s_train_image_shape训练图片尺寸[3, 48, 320]表示通道数 3、高度 48、宽度 320(识别模型固定输入尺寸)
二、Optimizer(优化器)

控制模型参数的更新策略,是模型收敛的核心配置。

参数含义取值说明
name优化器类型Adam自适应学习率优化器(识别模型首选,收敛快、稳定性高)
beta1/beta2Adam 超参数动量相关参数,0.9/0.999是业界通用值(无需修改)
lr.name学习率策略Cosine余弦退火学习率(先热身上升,后余弦下降,适合识别模型短周期训练)
learning_rate初始学习率0.0005(分布式训练推荐值,单卡需按 batch_size 比例降低,如 0.0000625)
warmup_epoch热身轮数1前 1 个 epoch 学习率从低到高线性上升(避免初始 lr 过高导致训练震荡)
regularizer.name正则化方式L2权重衰减(防止模型过拟合)
factor正则化系数3.0e-05权重衰减系数(值越小,正则化约束越弱,识别模型系数通常比检测小)
三、Architecture(模型结构)

定义 PP-OCRv5 文本识别模型的网络结构,核心是 SVTR_HGNet 算法。

参数含义取值说明
model_type模型类型rec表示识别模型(区别于检测det
algorithm识别算法SVTR_HGNet是 PP-OCRv5 主推的识别算法(基于 SVTR 结构 + PPHGNetV2 骨干)
Transform数据变换层空值表示不使用额外变换层
Backbone.name骨干网络PPHGNetV2_B4轻量高性能骨干网络,text_rec: True适配文本识别任务(调整网络输出适配序列建模)
Head.name识别头MultiHead多输出头(同时包含 CTCHead 和 NRTRHead,提升识别精度)
Head.head_list[0].CTCHeadCTC 识别头工业界主流的识别头(无需对齐字符,鲁棒性强):-Neck.name: svtr:SVTR 特征提取模块-dims: 120:SVTR 维度-depth: 2:SVTR 层数-hidden_dims: 120:隐藏层维度-kernel_size: [1, 3]:卷积核尺寸-use_guide: True:启用引导注意力机制(提升长文本识别效果)-Head.fc_decay: 0.00001:全连接层权重衰减系数
Head.head_list[1].NRTRHeadNRTR 识别头辅助识别头(基于注意力机制,提升复杂文本识别精度):-nrtr_dim: 384:NRTR 维度-max_text_length: *max_text_length:复用全局配置的最大文本长度
四、Loss(损失函数)

定义模型训练的损失计算方式,多识别头对应多损失。

参数含义取值说明
name损失函数名称MultiLoss多损失函数(对应 MultiHead 多识别头)
loss_config_list损失配置列表-CTCLoss:CTC 损失(对应 CTCHead,识别任务核心损失)-NRTRLoss:NRTR 损失(对应 NRTRHead,辅助损失)注:MultiLoss 会自动融合两种损失,提升模型泛化能力
五、PostProcess(后处理)

将模型输出的概率分布转换为最终识别文本的过程。

参数含义取值说明
name后处理方法CTCLabelDecode基于 CTC 算法的标签解码(将模型输出的序列概率转换为字符)
六、Metric(评估指标)

定义验证集的评估标准,衡量识别模型的性能。

参数含义取值说明
name评估方法RecMetric文本识别专用评估方法
main_indicator核心评估指标acc识别准确率(正确识别的样本数 / 总样本数,识别任务的核心指标)
七、Train(训练集配置)

定义训练集的数据加载、数据增强等流程(识别模型数据增强更轻量)。

7.1 dataset(数据集配置)
参数含义取值说明
name数据集类型MultiScaleDataSet多尺度数据集加载类(支持不同尺寸图片输入)
ds_width固定宽度false不固定宽度(配合多尺度采样)
data_dir图片根目录训练图片存放路径
ext_op_transform_idx扩展增强索引1指定数据增强的执行位置(内部参数,无需修改)
label_file_list标签文件路径训练集标签文件(每行格式:图片名\t真实文本
transforms数据预处理 / 增强流程按顺序执行:-DecodeImage:解码图片(BGR 模式,通道在后)-RecAug:识别专用数据增强(如随机模糊、亮度调整、透视变换等,提升鲁棒性)-MultiLabelEncode:多标签编码(同时生成 CTC 和 NRTR 所需标签,gtc_encode: NRTRLabelEncode指定 NRTR 标签编码方式)-KeepKeys:保留训练所需字段(图片、CTC 标签、NRTR 标签、文本长度、有效比例)
7.2 sampler(采样器)
参数含义取值说明
name采样器类型MultiScaleSampler多尺度采样器(随机选择图片尺寸,提升模型对不同尺寸文本的适应性)
scales采样尺寸列表[[320, 32], [320, 48], [320, 64]]随机选择宽度 320、高度 32/48/64 的尺寸(模拟不同高度的文本)
first_bs初始批次大小128(YAML 锚点&bs供 loader 复用),多尺度采样的初始批次大小
fix_bs固定批次大小false不固定批次大小(适配多尺度采样)
divided_factor尺寸整除因子[8, 16]宽度 / 高度需分别被 8/16 整除(保证模型下采样后尺寸为整数)
is_training训练模式True采样器适配训练场景(打乱、多尺度)
7.3 loader(数据加载器)
参数含义取值说明
shuffle打乱数据true每 epoch 打乱训练集(避免模型过拟合)
batch_size_per_card单卡批次大小128(复用锚点&bs),每张 GPU 每次加载 128 张图片(识别模型显存占用低,可设较大批次)
drop_last丢弃最后批次true丢弃最后一个不足 batch_size 的批次(保证批次完整性,提升训练稳定性)
num_workers加载线程数16启用 16 个线程加载数据(识别数据量通常大,多线程加速读取)
八、Eval(验证集配置)

定义验证集的数据加载流程(无数据增强,固定尺寸)。

8.1 dataset(数据集配置)
参数含义取值说明
name数据集类型SimpleDataSet通用数据集加载类(验证集无需多尺度)
data_dir图片根目录验证集图片存放路径
label_file_list标签文件路径验证集标签文件
transforms预处理流程与训练集的区别:- 无RecAug数据增强(保证评估准确性)-RecResizeImg:固定调整图片尺寸为[3, 48, 320](与训练最终尺寸一致)- 保留标签字段用于计算准确率
8.2 loader(数据加载器)
参数含义取值说明
shuffle打乱数据false验证集无需打乱(按顺序评估即可)
batch_size_per_card单卡批次大小128验证集批次大小与训练集一致(提升评估速度)
drop_last丢弃最后批次false保留最后批次(不遗漏验证样本)
num_workers加载线程数4验证集数据量小,减少线程数(节省资源)

模型训练:

文本检测--模型训练命令:

#单卡训练 (默认训练方式) python3 tools/train.py -c configs/det/PP-OCRv5/PP-OCRv5_server_det.yml \ -o Global.pretrained_model=./PP-OCRv5_server_det_pretrained.pdparams \ Train.dataset.data_dir=./ocr_det_dataset_examples \ Train.dataset.label_file_list='[./ocr_det_dataset_examples/train.txt]' \ Eval.dataset.data_dir=./ocr_det_dataset_examples \ Eval.dataset.label_file_list='[./ocr_det_dataset_examples/val.txt]' #多卡训练,通过--gpus参数指定卡号 python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py \ -c configs/det/PP-OCRv5/PP-OCRv5_server_det.yml \ -o Global.pretrained_model=./PP-OCRv5_server_det_pretrained.pdparams \ Train.dataset.data_dir=./ocr_det_dataset_examples \ Train.dataset.label_file_list='[./ocr_det_dataset_examples/train.txt]' \ Eval.dataset.data_dir=./ocr_det_dataset_examples \ Eval.dataset.label_file_list='[./ocr_det_dataset_examples/val.txt]'

文本识别--模型训练命令:

#单卡训练 (默认训练方式) python3 tools/train.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml \ -o Global.pretrained_model=./PP-OCRv5_server_rec_pretrained.pdparams #多卡训练,通过--gpus参数指定卡号 python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml \ -o Global.pretrained_model=./PP-OCRv5_server_rec_pretrained.pdparams

模型训练脚本:

#!/bin/bash # 脚本名称:model_train.sh # 功能:执行PaddleOCR表格检测模型训练 # 依赖:已安装PaddleOCR环境和相关依赖包 # 训练命令(保持原始参数不变) # Global.pretrained_model:预训练模型路径 # Train.dataset.data_dir:训练集路径 # Train.dataset.label_file_list:训练集标签路径 # Eval.dataset.data_dir:验证集路径 # Eval.dataset.label_file_list:验证集标签路径 # Global.save_model_dir:训练完模型保存路径 # PP-OCRv5_server_det python3 tools/train.py -c configs/det/PP-OCRv5/PP-OCRv5_server_det.yml \ -o Global.pretrained_model=/xxx/PP-OCRv5_server_det_pretrained.pdparams \ Train.dataset.data_dir=/xxx/det/train \ Train.dataset.label_file_list='[/xxx/det/train.txt]' \ Eval.dataset.data_dir=/xxx/det/val \ Eval.dataset.label_file_list='[/xxx/det/val.txt]' \ Global.save_model_dir=/xxx/det/output # PP-OCRv5_server_rec python3 tools/train.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml \ -o Global.pretrained_model=/xxx/PP-OCRv5_server_rec_pretrained.pdparams \ Train.dataset.data_dir=/xxx/rec/train \ Train.dataset.label_file_list='[/xxx/rec/train.txt]' \ Eval.dataset.data_dir=/xxx/rec/val \ Eval.dataset.label_file_list='[/xxx/rec/val.txt]' \ Global.save_model_dir=/xxx/rec/output # 检查命令执行状态 if [ $? -eq 0 ]; then echo "======================================" echo "训练任务执行完成!" echo "======================================" else echo "======================================" echo "训练任务执行失败!请检查错误信息" echo "======================================" exit 1 fi

模型评估:

您可以评估已经训练好的权重,如,output/PP-OCRv5_server_det/best_accuracy.pdprams

文本检测--模型评估命令:

# 注意将pretrained_model的路径设置为本地路径。若使用自行训练保存的模型,请注意修改路径和文件名为{path/to/weights}/{model_name}。 # demo 测试集评估 python3 tools/eval.py -c configs/det/PP-OCRv5/PP-OCRv5_server_det.yml \ -o Global.pretrained_model=output/PP-OCRv5_server_det/best_accuracy.pdparams \ Eval.dataset.data_dir=./ocr_det_dataset_examples \ Eval.dataset.label_file_list='[./ocr_det_dataset_examples/val.txt]'

文本识别--模型评估命令:

#注意将pretrained_model的路径设置为本地路径。若使用自行训练保存的模型,请注意修改路径和文件名为{path/to/weights}/{model_name}。 #demo 测试集评估 python3 tools/eval.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml -o \ Global.pretrained_model=output/xxx/xxx.pdparams

模型导出

文本检测--模型导出命令:

python3 tools/export_model.py -c configs/det/PP-OCRv5/PP-OCRv5_server_det.yml -o \ Global.pretrained_model=output/PP-OCRv5_server_det/best_accuracy.pdparams \ Global.save_inference_dir="./PP-OCRv5_server_det_infer/"

文本识别--模型导出命令:

python3 tools/export_model.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml -o \ Global.pretrained_model=output/xxx/xxx.pdparams \ Global.save_inference_dir="./PP-OCRv5_server_rec_infer/"

模型导出脚本:

#!/bin/bash # 脚本名称:model_export.sh # 功能:执行PaddleOCR表格检测模型转换 # 依赖:已安装PaddleOCR环境和相关依赖包 # 训练命令(保持原始参数不变) # Global.pretrained_model:训练完模型路径 # Global.save_inference_dir:静态图模型导出到的路径 #PP-OCRv5_server_det python3 tools/export_model.py -c configs/det/PP-OCRv5/PP-OCRv5_server_det.yml -o \ Global.pretrained_model=/xxx/det/best_accuracy.pdparams \ Global.save_inference_dir="/xxx/output/det/export_model/" #PP-OCRv5_server_rec python3 tools/export_model.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml -o \ Global.pretrained_model=/xxx/rec/best_accuracy.pdparams \ Global.save_inference_dir="/xxx/output/rec/export_model/" # 检查命令执行状态 if [ $? -eq 0 ]; then echo "======================================" echo "导出任务执行完成!" echo "======================================" else echo "======================================" echo "导出任务执行失败!请检查错误信息" echo "======================================" exit 1 fi

导出模型后,静态图模型会存放于当前目录的./PP-OCRv5_server_rec_infer/中,在该目录下,您将看到如下文件:

./PP-OCRv5_server_rec_infer/
├── inference.json
├── inference.pdiparams
├── inference.yml

http://www.cnnetsun.cn/news/1402931.html

相关文章:

  • LangBot:企业级即时通讯 AI 机器人平台 介绍篇
  • 【超详细】2026年OpenClaw云端零基础1分钟部署及使用教程
  • 告别机械音!Qwen3-TTS实测:97ms低延迟生成真人级语音
  • 【上位机心法】别让传感器数据卡死你的 UI!撕碎 Qt/QML 渲染黑盒,用 C++ 后端打造 144Hz 零延迟工业仪表盘
  • 小白也能玩转DeepSeek-OCR:图文并茂的部署使用教程
  • Qwen3-TTS语音合成生产环境部署:高并发流式API服务搭建实践
  • S12SD紫外线传感器在MSPM0G3507上的低功耗模拟接口移植
  • csdn访问量越来越低-----可能要做好转移数据的准备
  • NEC红外协议串口模块:5字节指令实现红外编解码
  • 光储融合的深度重构:2024年电站建设方案的数字基因与商业进化(WORD)
  • ESP32驱动0.96寸TFT屏幕避坑指南:ST7735初始化与坐标偏移实战
  • AI气候影响小于预期,或助力绿色技术创新
  • 一文讲清全面质量管理是什么意思?全面质量管理的核心是什么?
  • 计算机毕业设计springboot高校学生学业预警系统 基于SpringBoot的高校学业风险监测与干预平台 SpringBoot框架下大学生学业状态智能追踪与预警平台
  • CentOS 7下GTK2开发环境搭建全攻略(附常见错误解决方案)
  • 功能测试、自动化测试、性能测试的区别?
  • 【Dify企业级私有化部署终极指南】:5大架构选型对比、3类典型故障复盘与2024年生产环境落地 checklist
  • Qwen3-32B-Chat镜像部署教程:transformers tokenizer.pad_token_id设置要点
  • Cosmos-Reason1-7B模型部署避坑指南:解决403 Forbidden等常见API访问错误
  • CANoe新手必看:如何用VN7640实现双通道CAN报文互发(附实物接线图)
  • K8s内存监控避坑指南:为什么container_memory_working_set_bytes会骗人?
  • 保姆级教程:在CentOS 7上从Node.js到RustDesk Server的完整自建流程(含防火墙配置)
  • HB100微波雷达嵌入式驱动设计与消抖实现
  • SHT20温湿度传感器驱动开发与I²C通信实战
  • Stripe跨境收款实战:从注册到提现的全流程解析
  • netsh winsock reset真的有用吗?深度解析Windows网络重置的适用场景与注意事项
  • Alibaba DASD-4B Thinking 对话工具 C 盘清理方案智能分析与自动化脚本建议
  • 曾经有个人把别人的声音申请为个人的版权作为个人私有财产之后收到了国内外无数的律师函
  • IBM MQ安装包全版本解析:从试用版到正式版,如何选择最适合你的版本?
  • 基于DeepSeek-R1-Distill-Qwen-7B的智能测试用例生成器