---
comments: true
---
# 印章文本识别产线使用教程
## 1. 印章文本识别产线介绍
印章文本识别是一种自动从文档或图像中提取和识别印章内容的技术,印章文本的识别是文档处理的一部分,在很多场景都有用途,例如合同比对,出入库审核以及发票报销审核等场景。
印章文本识别产线用于识别印章的文本内容,提取印章图像中的文字信息以文本形式输出,本产线集成了业界知名的 PP-OCRv4 的端到端 OCR 串联系统,支持弯曲印章文本的检测和识别。同时,本产线集成了可选的版面区域定位模块,可以在整个文档中准确定位印章所在的版面位置。此外也增加可选的文档图像的方向矫正和扭曲矫正功能。基于本产线,可实现 CPU 上毫秒级的文本内容精准预测。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。
印章文本识别产线中包含印章印章文本检测模块和文本识别模块,以及可选的版面检测模块、文档图像方向分类模块、文本图像矫正模块。
如您更考虑模型精度,请选择精度较高的模型,如您更考虑模型推理速度,请选择推理速度较快的模型,如您更考虑模型存储大小,请选择存储大小较小的模型。
👉模型列表详情
* 中文识别模型
| 模型 | 模型下载链接 |
识别 Avg Accuracy(%) |
GPU推理耗时(ms) |
CPU推理耗时 (ms) |
模型存储大小(M) |
介绍 |
| PP-OCRv4_server_rec_doc | 推理模型/训练模型 |
81.53 |
|
|
74.7 M |
PP-OCRv4_server_rec_doc是在PP-OCRv4_server_rec的基础上,在更多中文文档数据和PP-OCR训练数据的混合数据训练而成,增加了部分繁体字、日文、特殊字符的识别能力,可支持识别的字符为1.5万+,除文档相关的文字识别能力提升外,也同时提升了通用文字的识别能力 |
| PP-OCRv4_mobile_rec | 推理模型/训练模型 |
78.74 |
7.95018 |
46.7868 |
10.6 M |
PP-OCRv4的轻量级识别模型,推理效率高,可以部署在包含端侧设备的多种硬件设备中 |
| PP-OCRv4_server_rec | 推理模型/训练模型 |
80.61 |
7.19439 |
140.179 |
71.2 M |
PP-OCRv4的服务器端模型,推理精度高,可以部署在多种不同的服务器上 |
| PP-OCRv3_mobile_rec | 推理模型/训练模型 |
72.96 |
|
|
9.2 M |
PP-OCRv3的轻量级识别模型,推理效率高,可以部署在包含端侧设备的多种硬件设备中 |
注:以上精度指标的评估集是 PaddleOCR 自建的中文数据集,覆盖街景、网图、文档、手写多个场景,其中文本识别包含 8367 张图片。所有模型 GPU 推理耗时基于 NVIDIA Tesla T4 机器,精度类型为 FP32, CPU 推理速度基于 Intel(R) Xeon(R) Gold 5117 CPU @ 2.00GHz,线程数为8,精度类型为 FP32。
| 模型 | 模型下载链接 |
识别 Avg Accuracy(%) |
GPU推理耗时(ms) |
CPU推理耗时 |
模型存储大小(M) |
介绍 |
| ch_SVTRv2_rec | 推理模型/训练模型 |
68.81 |
8.36801 |
165.706 |
73.9 M |
SVTRv2 是一种由复旦大学视觉与学习实验室(FVL)的OpenOCR团队研发的服务端文本识别模型,其在PaddleOCR算法模型挑战赛 - 赛题一:OCR端到端识别任务中荣获一等奖,A榜端到端识别精度相比PP-OCRv4提升6%。
|
注:以上精度指标的评估集是 PaddleOCR算法模型挑战赛 - 赛题一:OCR端到端识别任务A榜。 所有模型 GPU 推理耗时基于 NVIDIA Tesla T4 机器,精度类型为 FP32, CPU 推理速度基于 Intel(R) Xeon(R) Gold 5117 CPU @ 2.00GHz,线程数为8,精度类型为 FP32。
| 模型 | 模型下载链接 |
识别 Avg Accuracy(%) |
GPU推理耗时(ms) |
CPU推理耗时 |
模型存储大小(M) |
介绍 |
| ch_RepSVTR_rec | 推理模型/训练模型 |
65.07 |
10.5047 |
51.5647 |
22.1 M |
RepSVTR 文本识别模型是一种基于SVTRv2 的移动端文本识别模型,其在PaddleOCR算法模型挑战赛 - 赛题一:OCR端到端识别任务中荣获一等奖,B榜端到端识别精度相比PP-OCRv4提升2.5%,推理速度持平。 |
注:以上精度指标的评估集是 PaddleOCR算法模型挑战赛 - 赛题一:OCR端到端识别任务B榜。 所有模型 GPU 推理耗时基于 NVIDIA Tesla T4 机器,精度类型为 FP32, CPU 推理速度基于 Intel(R) Xeon(R) Gold 5117 CPU @ 2.00GHz,线程数为8,精度类型为 FP32。
* 英文识别模型
| 模型 | 模型下载链接 |
识别 Avg Accuracy(%) |
GPU推理耗时(ms) |
CPU推理耗时 |
模型存储大小(M) |
介绍 |
| en_PP-OCRv4_mobile_rec | 推理模型/训练模型 |
70.39 |
|
|
6.8 M |
基于PP-OCRv4识别模型训练得到的超轻量英文识别模型,支持英文、数字识别 |
| en_PP-OCRv3_mobile_rec | 推理模型/训练模型 |
70.69 |
|
|
7.8 M |
基于PP-OCRv3识别模型训练得到的超轻量英文识别模型,支持英文、数字识别 |
* 多语言识别模型
| 模型 | 模型下载链接 |
识别 Avg Accuracy(%) |
GPU推理耗时(ms) |
CPU推理耗时 |
模型存储大小(M) |
介绍 |
| korean_PP-OCRv3_mobile_rec | 推理模型/训练模型 |
60.21 |
|
|
8.6 M |
基于PP-OCRv3识别模型训练得到的超轻量韩文识别模型,支持韩文、数字识别 |
| japan_PP-OCRv3_mobile_rec | 推理模型/训练模型 |
45.69 |
|
|
8.8 M |
基于PP-OCRv3识别模型训练得到的超轻量日文识别模型,支持日文、数字识别 |
| chinese_cht_PP-OCRv3_mobile_rec | 推理模型/训练模型 |
82.06 |
|
|
9.7 M |
基于PP-OCRv3识别模型训练得到的超轻量繁体中文识别模型,支持繁体中文、数字识别 |
| te_PP-OCRv3_mobile_rec | 推理模型/训练模型 |
95.88 |
|
|
7.8 M |
基于PP-OCRv3识别模型训练得到的超轻量泰卢固文识别模型,支持泰卢固文、数字识别 |
| ka_PP-OCRv3_mobile_rec | 推理模型/训练模型 |
96.96 |
|
|
8.0 M |
基于PP-OCRv3识别模型训练得到的超轻量卡纳达文识别模型,支持卡纳达文、数字识别 |
| ta_PP-OCRv3_mobile_rec | 推理模型/训练模型 |
76.83 |
|
|
8.0 M |
基于PP-OCRv3识别模型训练得到的超轻量泰米尔文识别模型,支持泰米尔文、数字识别 |
| latin_PP-OCRv3_mobile_rec | 推理模型/训练模型 |
76.93 |
|
|
7.8 M |
基于PP-OCRv3识别模型训练得到的超轻量拉丁文识别模型,支持拉丁文、数字识别 |
| arabic_PP-OCRv3_mobile_rec | 推理模型/训练模型 |
73.55 |
|
|
7.8 M |
基于PP-OCRv3识别模型训练得到的超轻量阿拉伯字母识别模型,支持阿拉伯字母、数字识别 |
| cyrillic_PP-OCRv3_mobile_rec | 推理模型/训练模型 |
94.28 |
|
|
7.9 M |
基于PP-OCRv3识别模型训练得到的超轻量斯拉夫字母识别模型,支持斯拉夫字母、数字识别 |
| devanagari_PP-OCRv3_mobile_rec | 推理模型/训练模型 |
96.44 |
|
|
7.9 M |
基于PP-OCRv3识别模型训练得到的超轻量梵文字母识别模型,支持梵文字母、数字识别 |
注:以上精度指标的评估集是 PaddleX 自建的多语种数据集。 所有模型 GPU 推理耗时基于 NVIDIA Tesla T4 机器,精度类型为 FP32, CPU 推理速度基于 Intel(R) Xeon(R) Gold 5117 CPU @ 2.00GHz,线程数为8,精度类型为 FP32。
## 2. 快速开始
PaddleX 所提供的预训练的模型产线均可以快速体验效果,你可以在本地使用命令行或 Python 体验印章文本识别产线的效果。
在本地使用印章文本识别产线前,请确保您已经按照[PaddleX本地安装教程](../../../installation/installation.md)完成了PaddleX的wheel包安装。
### 2.1 命令行方式体验
一行命令即可快速体验印章文本识别产线效果,使用 [测试文件](https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/seal_text_det.png),并将 `--input` 替换为本地路径,进行预测
```bash
paddlex --pipeline seal_recognition \
--input seal_text_det.png \
--use_doc_orientation_classify False \
--use_doc_unwarping False \
--device gpu:0 \
--save_path ./output
```
相关的参数说明可以参考[2.1.2 Python脚本方式集成](#212-python脚本方式集成)中的参数说明。
运行后,会将结果打印到终端上,结果如下:
| 参数 |
参数说明 |
参数类型 |
可选项 |
默认值 |
input |
待预测数据,支持多种输入类型,必填 |
Python Var|str|list |
- Python Var:如
numpy.ndarray 表示的图像数据
- str:如图像文件或者PDF文件的本地路径:
/root/data/img.jpg;如URL链接,如图像文件或PDF文件的网络URL:示例;如本地目录,该目录下需包含待预测图像,如本地路径:/root/data/(当前不支持目录中包含PDF文件的预测,PDF文件需要指定到具体文件路径)
- List:列表元素需为上述类型数据,如
[numpy.ndarray, numpy.ndarray],[\"/root/data/img1.jpg\", \"/root/data/img2.jpg\"],[\"/root/data1\", \"/root/data2\"]
|
None |
device |
产线推理设备 |
str|None |
- CPU:如
cpu 表示使用 CPU 进行推理;
- GPU:如
gpu:0 表示使用第 1 块 GPU 进行推理;
- NPU:如
npu:0 表示使用第 1 块 NPU 进行推理;
- XPU:如
xpu:0 表示使用第 1 块 XPU 进行推理;
- MLU:如
mlu:0 表示使用第 1 块 MLU 进行推理;
- DCU:如
dcu:0 表示使用第 1 块 DCU 进行推理;
- None:如果设置为
None, 将默认使用产线初始化的该参数值,初始化时,会优先使用本地的 GPU 0号设备,如果没有,则使用 CPU 设备;
|
None |
use_doc_orientation_classify |
是否使用文档方向分类模块 |
bool|None |
- bool:
True 或者 False;
- None:如果设置为
None, 将默认使用产线初始化的该参数值,初始化为True;
|
None |
use_doc_unwarping |
是否使用文档扭曲矫正模块 |
bool|None |
- bool:
True 或者 False;
- None:如果设置为
None, 将默认使用产线初始化的该参数值,初始化为True;
|
None |
use_layout_detection |
是否使用版面检测模块 |
bool|None |
- bool:
True 或者 False;
- None:如果设置为
None, 将默认使用产线初始化的该参数值,初始化为True;
|
None |
layout_threshold |
版面检测置信度阈值,得分大于该阈值才会被输出 |
float|dict|None |
- float:大于
0 的任意浮点数
- dict:key是int类别id, value是大于
0 的任意浮点数
- None:如果设置为
None, 将默认使用产线初始化的该参数值 0.5 |
None |
layout_nms |
是否使用版面检测后处理NMS |
bool|None |
- bool:
True 或者 False;
- None:如果设置为
None, 将默认使用产线初始化的该参数值,初始化为True;
|
None |
layout_unclip_ratio |
检测框的边长缩放倍数;如果不指定,将默认使用PaddleX官方模型配置 |
float|list|None |
- float, 大于0的浮点数,如 1.1 , 表示将模型输出的检测框中心不变,宽和高都扩张1.1倍
- 列表, 如 [1.2, 1.5] , 表示将模型输出的检测框中心不变,宽度扩张1.2倍,高度扩张1.5倍
- None:如果设置为
None, 将默认使用产线初始化的该参数值,初始化为1.0
|
layout_merge_bboxes_mode |
模型输出的检测框的合并处理模式;如果不指定,将默认使用PaddleX官方模型配置 |
string|None |
- large, 设置为large时,表示在模型输出的检测框中,对于互相重叠包含的检测框,只保留外部最大的框,删除重叠的内部框。
- small, 设置为small,表示在模型输出的检测框中,对于互相重叠包含的检测框,只保留内部被包含的小框,删除重叠的外部框。
- union, 不进行框的过滤处理,内外框都保留
- None:如果设置为
None, 将默认使用产线初始化的该参数值,初始化为large
|
None |
seal_det_limit_side_len |
印章文本检测的图像边长限制 |
int|None |
- int:大于
0 的任意整数;
- None:如果设置为
None, 将默认使用产线初始化的该参数值,初始化为 736;
|
None |
seal_det_limit_type |
印章文本检测的图像边长限制类型 |
str|None |
- str:支持
min 和 max,min 表示保证图像最短边不小于 det_limit_side_len,max 表示保证图像最长边不大于 limit_side_len
- None:如果设置为
None, 将默认使用产线初始化的该参数值,初始化为 min;
|
None |
seal_det_thresh |
检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点 |
float|None |
- float:大于
0 的任意浮点数
- None:如果设置为
None, 将默认使用产线初始化的该参数值 0.2 |
None |
seal_det_box_thresh |
检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域 |
float|None |
- float:大于
0 的任意浮点数
- None:如果设置为
None, 将默认使用产线初始化的该参数值 0.6 |
None |
seal_det_unclip_ratio |
文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大 |
float|None |
- float:大于
0 的任意浮点数
- None:如果设置为
None, 将默认使用产线初始化的该参数值 0.5 |
None |
seal_rec_score_thresh |
文本识别阈值,得分大于该阈值的文本结果会被保留 |
float|None |
- float:大于
0 的任意浮点数
- None:如果设置为
None, 将默认使用产线初始化的该参数值 0.0。即不设阈值 |
None |
(3)对预测结果进行处理,每个样本的预测结果均为`dict`类型,且支持打印、保存为图片、保存为`json`文件的操作: