# PP-OCRv5 **Repository Path**: xu_dazhous_spring/PP-OCRv5 ## Basic Information - **Project Name**: PP-OCRv5 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-24 - **Last Updated**: 2025-08-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- license: Apache License 2.0 tasks: - Object Detection - Image-to-Text --- # 一、PP-OCRv5简介 **PP-OCRv5** 是PP-OCR新一代文字识别解决方案,该方案聚焦于多场景、多文字类型的文字识别。在文字类型方面,PP-OCRv5支持简体中文、中文拼音、繁体中文、英文、日文5大主流文字类型,在场景方面,PP-OCRv5升级了中英复杂手写体、竖排文本、生僻字等多种挑战性场景的识别能力。在内部多场景复杂评估集上,PP-OCRv5较PP-OCRv4端到端提升13个百分点。 ![PP-OCRv5算法示意图](https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/AIStudio/application_help/demo_images/algorithm_ppocrv5.png) # 二、关键指标 ### 1. 文本检测指标
模型 手写中文 手写英文 印刷中文 印刷英文 繁体中文 古籍文本 日文 通用场景 拼音 旋转 扭曲 艺术字 平均
PP-OCRv5_server_det 0.803 0.841 0.945 0.917 0.815 0.676 0.772 0.797 0.671 0.8 0.876 0.673 0.827
PP-OCRv4_server_det 0.706 0.249 0.888 0.690 0.759 0.473 0.685 0.715 0.542 0.366 0.775 0.583 0.662
PP-OCRv5_mobile_det 0.744 0.777 0.905 0.910 0.823 0.581 0.727 0.721 0.575 0.647 0.827 0.525 0.770
PP-OCRv4_mobile_det 0.583 0.369 0.872 0.773 0.663 0.231 0.634 0.710 0.430 0.299 0.715 0.549 0.624
对比PP-OCRv4,PP-OCRv5在所有检测场景下均有明显提升,尤其在手写、古籍、日文检测能力上表现更优。 ### 2. 文本识别指标 ![PP-OCRv5文本识别雷达图](https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/AIStudio/application_help/demo_images/ocrv5_rec_acc.png)
评估集类别 手写中文 手写英文 印刷中文 印刷英文 繁体中文 古籍文本 日文 易混淆字符 通用场景 拼音 竖直文本 艺术字 加权平均
PP-OCRv5_server_rec 0.5807 0.5806 0.9013 0.8679 0.7472 0.6039 0.7372 0.5946 0.8384 0.7435 0.9314 0.6397 0.8401
PP-OCRv4_server_rec 0.3626 0.2661 0.8486 0.6677 0.4097 0.3080 0.4623 0.5028 0.8362 0.2694 0.5455 0.5892 0.5735
PP-OCRv5_mobile_rec 0.4166 0.4944 0.8605 0.8753 0.7199 0.5786 0.7577 0.5570 0.7703 0.7248 0.8089 0.5398 0.8015
PP-OCRv4_mobile_rec 0.2980 0.2550 0.8398 0.6598 0.3218 0.2593 0.4724 0.4599 0.8106 0.2593 0.5924 0.5555 0.5301
单模型即可覆盖多语言和多类型文本,识别精度大幅领先前代产品和主流开源方案。 # 三、PP-OCRv5 Demo示例 ![PP-OCRv5识别效果图](https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/AIStudio/application_help/demo_images/algorithm_ppocrv5_demo1.png) [更多示例](https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/doc_images/PP-OCRv5/algorithm_ppocrv5_demo.pdf) # 四、使用方式 在本地使用 PP-OCRv5 产线前,请确保您已经按照[安装教程](https://github.com/PaddlePaddle/PaddleOCR/blob/main/docs/version3.x/installation.md)完成了wheel包安装。安装完成后,可以在本地使用命令行体验或 Python 集成。 ## 1. 命令行方式 一行命令即可快速体验OCR产线效果。运行以下代码前,请您下载[示例图片](https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png)到本地: ```bash # 默认使用 PP-OCRv5 模型 paddleocr ocr -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png \ --use_doc_orientation_classify False \ --use_doc_unwarping False \ --use_textline_orientation False \ --save_path ./output \ --device gpu:0 # 通过 --ocr_version 指定 PP-OCR 其他版本 paddleocr ocr -i ./general_ocr_002.png --ocr_version PP-OCRv4 ```
命令行支持更多参数设置,点击展开以查看命令行参数的详细说明
参数 参数说明 参数类型 默认值
input 待预测数据,必填。如图像文件或者PDF文件的本地路径:/root/data/img.jpg如URL链接,如图像文件或PDF文件的网络URL:示例如本地目录,该目录下需包含待预测图像,如本地路径:/root/data/(当前不支持目录中包含PDF文件的预测,PDF文件需要指定到具体文件路径)。 str
save_path 指定推理结果文件保存的路径。如果不设置,推理结果将不会保存到本地。 str
doc_orientation_classify_model_name 文档方向分类模型的名称。如果不设置,将会使用产线默认模型。 str
doc_orientation_classify_model_dir 文档方向分类模型的目录路径。如果不设置,将会下载官方模型。 str
doc_unwarping_model_name 文本图像矫正模型的名称。如果不设置,将会使用产线默认模型。 str
doc_unwarping_model_dir 文本图像矫正模型的目录路径。如果不设置,将会下载官方模型。 str
text_detection_model_name 文本检测模型的名称。如果不设置,将会使用产线默认模型。 str
text_detection_model_dir 文本检测模型的目录路径。如果不设置,将会下载官方模型。 str
text_line_orientation_model_name 文本行方向模型的名称。如果不设置,将会使用产线默认模型。 str
text_line_orientation_model_dir 文本行方向模型的目录路径。如果不设置,将会下载官方模型。 str
text_line_orientation_batch_size 文本行方向模型的批处理大小。如果不设置,将默认设置批处理大小为1 int
text_recognition_model_name 文本识别模型的名称。如果不设置,将会使用产线默认模型。 str
text_recognition_model_dir 文本识别模型的目录路径。如果不设置,将会下载官方模型。 str
text_recognition_batch_size 文本识别模型的批处理大小。如果不设置,将默认设置批处理大小为1 int
use_doc_orientation_classify 是否加载并使用文档方向分类功能。如果不设置,将默认使用产线初始化的该参数值,初始化为True bool
use_doc_unwarping 是否加载并使用文本图像矫正功能。如果不设置,将默认使用产线初始化的该参数值,初始化为True bool
use_textline_orientation 是否加载并使用文本行方向功能。如果不设置,将默认使用产线初始化的该参数值,初始化为True bool
text_det_limit_side_len 文本检测的最大边长度限制。 大于 0 的任意整数。如果不设置,将默认使用产线初始化的该参数值,初始化为 960 int
text_det_limit_type 文本检测的边长度限制类型。支持 minmaxmin 表示保证图像最短边不小于 det_limit_side_lenmax 表示保证图像最长边不大于 limit_side_len。如果不设置,将默认使用产线初始化的该参数值,初始化为 max str
text_det_thresh 文本检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。 大于0的任意浮点数。如果不设置,将默认使用产线初始化的该参数值 0.3 float
text_det_box_thresh 文本检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。 大于 0 的任意浮点数。如果不设置,将默认使用产线初始化的该参数值 0.6 float
text_det_unclip_ratio 文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。大于0的任意浮点数。如果不设置,将默认使用产线初始化的该参数值 2.0 float
text_det_input_shape 文本检测的输入形状,您可以设置3个值代表C,H,W。 int
text_rec_score_thresh 文本识别阈值,得分大于该阈值的文本结果会被保留。 大于0的任意浮点数。如果不设置,将默认使用产线初始化的该参数值 0.0。即不设阈值。 float
text_rec_input_shape 文本识别的输入形状。 tuple
lang 使用指定语言的 OCR 模型。
  • ch:中文;
  • en:英文;
  • korean:韩文;
  • japan:日文;
  • chinese_cht:繁体中文;
  • te:泰卢固文;
  • ka:卡纳达文;
  • ta:泰米尔文;
如果不设置,将默认使用ch
str
ocr_version OCR 版本。
  • PP-OCRv5:使用PP-OCRv5系列模型;
  • PP-OCRv4:使用PP-OCRv4系列模型;
  • PP-OCRv3:使用PP-OCRv3系列模型;
如果不设置,将默认使用PP-OCRv5系列模型。
str
det_model_dir 已废弃,请参考text_detection_model_dir,且与新的参数不能同时指定。 str
det_limit_side_len 已废弃,请参考text_det_limit_side_len,且与新的参数不能同时指定。 int
det_limit_type 已废弃,请参考text_det_limit_type,且与新的参数不能同时指定。 str
det_db_thresh 已废弃,请参考text_det_thresh,且与新的参数不能同时指定。 float
det_db_box_thresh 已废弃,请参考text_det_box_thresh,且与新的参数不能同时指定。 float
det_db_unclip_ratio 已废弃,请参考text_det_unclip_ratio,且与新的参数不能同时指定。 float
rec_model_dir 已废弃,请参考text_recognition_model_dir,且与新的参数不能同时指定。 str
rec_batch_num 已废弃,请参考text_recognition_batch_size,且与新的参数不能同时指定。 int
use_angle_cls 已废弃,请参考use_textline_orientation,且与新的参数不能同时指定。 bool
cls_model_dir 已废弃,请参考text_line_orientation_model_dir,且与新的参数不能同时指定。 str
cls_batch_num 已废弃,请参考text_line_orientation_batch_size,且与新的参数不能同时指定。 int
device 用于推理的设备。支持指定具体卡号。
  • 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 进行推理;
如果不设置,将默认使用产线初始化的该参数值,初始化时,会优先使用本地的 GPU 0号设备,如果没有,则使用 CPU 设备。
str
enable_hpi 是否启用高性能推理。 bool False
use_tensorrt 是否使用 TensorRT 进行推理加速。 bool False
min_subgraph_size 最小子图大小,用于优化模型子图的计算。 int 3
precision 计算精度,如 fp32、fp16。 str fp32
enable_mkldnn 是否启用 MKL-DNN 加速库。如果不设置,将默认启用。 bool
cpu_threads 在 CPU 上进行推理时使用的线程数。 int 8
paddlex_config PaddleX产线配置文件路径。 str

运行结果会被打印到终端上: ```bash {'res': {'input_path': './general_ocr_002.png', 'page_index': None, 'model_settings': {'use_doc_preprocessor': True, 'use_textline_orientation': False}, 'doc_preprocessor_res': {'input_path': None, 'page_index': None, 'model_settings': {'use_doc_orientation_classify': False, 'use_doc_unwarping': False}, 'angle': -1}, 'dt_polys': array([[[ 3, 10], ..., [ 4, 30]], ..., [[ 99, 456], ..., [ 99, 479]]], dtype=int16), 'text_det_params': {'limit_side_len': 736, 'limit_type': 'min', 'thresh': 0.3, 'max_side_limit': 4000, 'box_thresh': 0.6, 'unclip_ratio': 1.5}, 'text_type': 'general', 'textline_orientation_angles': array([-1, ..., -1]), 'text_rec_score_thresh': 0.0, 'rec_texts': ['www.997700', '', 'Cm', '登机牌', 'BOARDING', 'PASS', 'CLASS', '序号SERIAL NO.', '座位号', 'SEAT NO.', '航班FLIGHT', '日期DATE', '舱位', '', 'W', '035', '12F', 'MU2379', '03DEc', '始发地', 'FROM', '登机口', 'GATE', '登机时间BDT', '目的地TO', '福州', 'TAIYUAN', 'G11', 'FUZHOU', '身份识别IDNO.', '姓名NAME', 'ZHANGQIWEI', '票号TKT NO.', '张祺伟', '票价FARE', 'ETKT7813699238489/1', '登机口于起飞前10分钟关闭 GATESCL0SE10MINUTESBEFOREDEPARTURETIME'], 'rec_scores': array([0.67634439, ..., 0.97416091]), 'rec_polys': array([[[ 3, 10], ..., [ 4, 30]], ..., [[ 99, 456], ..., [ 99, 479]]], dtype=int16), 'rec_boxes': array([[ 3, ..., 30], ..., [ 99, ..., 479]], dtype=int16)}} ``` 若指定了`save_path`,则会保存可视化结果在`save_path`下。可视化结果如下: ![预测结果](https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/AIStudio/application_help/demo_images/demo_result1.png) ## 2. Python脚本方式集成 命令行方式是为了快速体验查看效果,一般来说,在项目中,往往需要通过代码集成,您可以通过几行代码即可完成产线的快速推理,推理代码如下: ```python from paddleocr import PaddleOCR ocr = PaddleOCR( use_doc_orientation_classify=False, # 通过 use_doc_orientation_classify 参数指定不使用文档方向分类模型 use_doc_unwarping=False, # 通过 use_doc_unwarping 参数指定不使用文本图像矫正模型 use_textline_orientation=False, # 通过 use_textline_orientation 参数指定不使用文本行方向分类模型 ) # ocr = PaddleOCR(lang="en") # 通过 lang 参数来使用英文模型 # ocr = PaddleOCR(ocr_version="PP-OCRv4") # 通过 ocr_version 参数来使用 PP-OCR 其他版本 # ocr = PaddleOCR(device="gpu") # 通过 device 参数使得在模型推理时使用 GPU # ocr = PaddleOCR( # text_detection_model_name="PP-OCRv5_server_det", # text_recognition_model_name="PP-OCRv5_server_rec", # use_doc_orientation_classify=False, # use_doc_unwarping=False, # use_textline_orientation=False, # ) # 更换 PP-OCRv5_server 模型 result = ocr.predict("./general_ocr_002.png") for res in result: res.print() res.save_to_img("output") res.save_to_json("output") ``` 在上述 Python 脚本中,执行了如下几个步骤:
(1)通过 PaddleOCR() 实例化 OCR 产线对象,具体参数说明如下:
参数 参数说明 参数类型 默认值
doc_orientation_classify_model_name 文档方向分类模型的名称。如果设置为None,将会使用产线默认模型。 str None
doc_orientation_classify_model_dir 文档方向分类模型的目录路径。如果设置为None,将会下载官方模型。 str None
doc_unwarping_model_name 文本图像矫正模型的名称。如果设置为None,将会使用产线默认模型。 str None
doc_unwarping_model_dir 文本图像矫正模型的目录路径。如果设置为None,将会下载官方模型。 str None
text_detection_model_name 文本检测模型的名称。如果设置为None,将会使用产线默认模型。 str None
text_detection_model_dir 文本检测模型的目录路径。如果设置为None,将会下载官方模型。 str None
text_line_orientation_model_name 文本行方向模型的名称。如果设置为None,将会使用产线默认模型。 str None
text_line_orientation_model_dir 文本行方向模型的目录路径。如果设置为None,将会下载官方模型。 str None
text_line_orientation_batch_size 文本行方向模型的批处理大小。如果设置为None,将默认设置批处理大小为1 int None
text_recognition_model_name 文本识别模型的名称。如果设置为None,将会使用产线默认模型。 str None
text_recognition_model_dir 文本识别模型的目录路径。如果设置为None,将会下载官方模型。 str None
text_recognition_batch_size 文本识别模型的批处理大小。如果设置为None,将默认设置批处理大小为1 int None
use_doc_orientation_classify 是否加载并使用文档方向分类功能。如果设置为None,将默认使用产线初始化的该参数值,初始化为True bool None
use_doc_unwarping 是否加载并使用文本图像矫正功能。如果设置为None,将默认使用产线初始化的该参数值,初始化为True bool None
use_textline_orientation 是否加载并使用文本行方向功能。如果设置为None,将默认使用产线初始化的该参数值,初始化为True bool None
text_det_limit_side_len 文本检测的最大边长度限制。
  • int:大于 0 的任意整数;
  • None:如果设置为None, 将默认使用产线初始化的该参数值,初始化为 960
int None
text_det_limit_type 文本检测的边长度限制类型。
  • str:支持 minmaxmin 表示保证图像最短边不小于 det_limit_side_lenmax 表示保证图像最长边不大于 limit_side_len
  • None:如果设置为None, 将默认使用产线初始化的该参数值,初始化为 max
str None
text_det_thresh 文本检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。
  • float:大于0的任意浮点数;
  • None:如果设置为None, 将默认使用产线初始化的该参数值 0.3
float None
text_det_box_thresh 文本检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。
  • float:大于0的任意浮点数;
  • None:如果设置为None将默认使用产线初始化的该参数值 0.6
float None
text_det_unclip_ratio 文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。
  • float:大于0的任意浮点数;
  • None:如果设置为None,将默认使用产线初始化的该参数值 2.0
float None
text_det_input_shape 文本检测的输入形状。 tuple None
text_rec_score_thresh 文本识别阈值,得分大于该阈值的文本结果会被保留。
  • float:大于0的任意浮点数;
  • None:如果设置为None,将默认使用产线初始化的该参数值 0.0,即不设阈值。
float None
text_rec_input_shape 文本识别的输入形状。 tuple None
lang 使用指定语言的 OCR 模型。
  • ch:中文;
  • en:英文;
  • korean:韩文;
  • japan:日文;
  • chinese_cht:繁体中文;
  • te:泰卢固文;
  • ka:卡纳达文;
  • ta:泰米尔文;
  • None:如果设置为None,将默认使用ch
str None
ocr_version OCR 版本。
  • PP-OCRv5:使用PP-OCRv5系列模型;
  • PP-OCRv4:使用PP-OCRv4系列模型;
  • PP-OCRv3:使用PP-OCRv3系列模型;
  • None:如果设置为None, 将默认使用PP-OCRv5系列模型。
str None
device 用于推理的设备。支持指定具体卡号。
  • 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 设备。
str None
enable_hpi 是否启用高性能推理。 bool False
use_tensorrt 是否使用 TensorRT 进行推理加速。 bool False
min_subgraph_size 最小子图大小,用于优化模型子图的计算。 int 3
precision 计算精度,如 fp32、fp16。 str "fp32"
enable_mkldnn 是否启用 MKL-DNN 加速库。如果设置为None,将默认启用。 bool None
cpu_threads 在 CPU 上进行推理时使用的线程数。 int 8
paddlex_config PaddleX产线配置文件路径。 str None
(2)调用 OCR 产线对象的 predict() 方法进行推理预测,该方法会返回一个结果列表。另外,产线还提供了 predict_iter() 方法。两者在参数接受和结果返回方面是完全一致的,区别在于 predict_iter() 返回的是一个 generator,能够逐步处理和获取预测结果,适合处理大型数据集或希望节省内存的场景。可以根据实际需求选择使用这两种方法中的任意一种。以下是 predict() 方法的参数及其说明:
参数 参数说明 参数类型 默认值
input 待预测数据,支持多种输入类型,必填。
  • 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"]。
Python Var|str|list
use_doc_orientation_classify 是否在推理时使用文档方向分类模块。 bool None
use_doc_unwarping 是否在推理时使用文本图像矫正模块。 bool None
use_textline_orientation 是否在推理时使用文本行方向分类模块。 bool None
text_det_limit_side_len 与实例化时的参数相同。 int None
text_det_limit_type 与实例化时的参数相同。 str None
text_det_thresh 与实例化时的参数相同。 float None
text_det_box_thresh 与实例化时的参数相同。 float None
text_det_unclip_ratio 与实例化时的参数相同。 float None
text_rec_score_thresh 与实例化时的参数相同。 float None
(3)对预测结果进行处理,每个样本的预测结果均为对应的Result对象,且支持打印、保存为图片、保存为json文件的操作:
方法 方法说明 参数 参数类型 参数说明 默认值
print() 打印结果到终端 format_json bool 是否对输出内容进行使用 JSON 缩进格式化。 True
indent int 指定缩进级别,以美化输出的 JSON 数据,使其更具可读性,仅当 format_jsonTrue 时有效。 4
ensure_ascii bool 控制是否将非 ASCII 字符转义为 Unicode。设置为 True 时,所有非 ASCII 字符将被转义;False 则保留原始字符,仅当format_jsonTrue时有效。 False
save_to_json() 将结果保存为json格式的文件 save_path str 保存的文件路径,当为目录时,保存文件命名与输入文件类型命名一致。
indent int 指定缩进级别,以美化输出的 JSON 数据,使其更具可读性,仅当 format_jsonTrue 时有效。 4
ensure_ascii bool 控制是否将非 ASCII 字符转义为 Unicode。设置为 True 时,所有非 ASCII 字符将被转义;False 则保留原始字符,仅当format_jsonTrue时有效。 False
save_to_img() 将结果保存为图像格式的文件 save_path str 保存的文件路径,支持目录或文件路径。

此外,也支持通过属性获取带结果的可视化图像和预测结果,具体如下:

属性 属性说明
json 获取预测的 json 格式的结果
img 获取格式为 dict 的可视化图像
# 五、部署与二次开发 * **多系统支持**:兼容Windows、Linux、Mac等主流操作系统。 * **多硬件支持**:除了英伟达GPU外,还支持Intel CPU、昆仑芯、昇腾等新硬件推理和部署。 * **高性能推理插件**:推荐结合高性能推理插件进一步提升推理速度,详见[高性能推理指南](https://github.com/PaddlePaddle/PaddleOCR/blob/release/3.0/docs/version3.x/deployment/high_performance_inference.md)。 * **服务化部署**:支持高稳定性服务化部署方案,详见[服务化部署指南](https://github.com/PaddlePaddle/PaddleOCR/blob/release/3.0/docs/version3.x/deployment/serving.md)。 * **二次开发能力**:支持自定义数据集训练、字典扩展、模型微调。举例:如需增加韩文识别,可扩展字典并微调模型,无缝集成到现有产线,详见[文本检测模块使用教程](https://github.com/PaddlePaddle/PaddleOCR/blob/release/3.0/docs/version3.x/module_usage/text_detection.md)及[文本识别模块使用教程](https://github.com/PaddlePaddle/PaddleOCR/blob/release/3.0/docs/version3.x/module_usage/text_recognition.md)