[paddleocr]文本图像矫正模块使用教程

文本图像矫正模块使用教程

一、概述

文本图像矫正的主要目的是针对图像进行几何变换,以纠正图像中的文档扭曲、倾斜、透视变形等问题,以供后续的文本识别进行更加准确。

二、支持模型列表

模型模型下载链接CER模型存储大小(M)介绍
UVDoc推理模型/训练模型0.17930.3 M高精度文本图像矫正模型

测试环境说明:

  • 性能测试环境
    • 测试数据集:DocUNet benchmark数据集。
    • 硬件配置:
      • GPU:NVIDIA Tesla T4
      • CPU:Intel Xeon Gold 6271C @ 2.60GHz
      • 其他环境:Ubuntu 20.04 / cuDNN 8.6 / TensorRT 8.5.2.2
  • 推理模式说明
模式GPU配置CPU配置加速技术组合
常规模式FP32精度 / 无TRT加速FP32精度 / 8线程PaddleInference
高性能模式选择先验精度类型和加速策略的最优组合FP32精度 / 8线程选择先验最优后端(Paddle/OpenVINO/TRT等)

三、快速开始

❗ 在快速开始前,请先安装 PaddleOCR 的 wheel 包,详细请参考 安装教程

使用一行命令即可快速体验:

paddleocr text_image_unwarping -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/doc_test.jpg

您也可以将图像矫正的模块中的模型推理集成到您的项目中。运行以下代码前,请您下载示例图片到本地。

from paddleocr import TextImageUnwarping
model = TextImageUnwarping(model_name="UVDoc")
output = model.predict("doc_test.jpg", batch_size=1)
for res in output:
    res.print()
    res.save_to_img(save_path="./output/")
    res.save_to_json(save_path="./output/res.json")

运行后,得到的结果为:

{'res': {'input_path': 'doc_test.jpg', 'page_index': None, 'doctr_img': '...'}}

运行结果参数含义如下: - input_path:表示输入待矫正图像的路径 - doctr_img:表示矫正后的图像结果,由于数据过多不便于直接print,所以此处用...替换,可以通过res.save_to_img()将预测结果保存为图片,通过res.save_to_json()将预测结果保存为json文件。

可视化图片如下:

相关方法、参数等说明如下:

  • TextImageUnwarping实例化图像矫正模型(此处以UVDoc为例),具体说明如下:
参数参数说明参数类型可选项默认值
model_name模型名称str所有支持的模型名称
model_dir模型存储路径str
device模型推理设备str支持指定GPU具体卡号,如“gpu:0”,其他硬件具体卡号,如“npu:0”,CPU如“cpu”。gpu:0
use_hpip是否启用高性能推理插件boolFalse
hpi_config高性能推理配置dict | NoneNone
  • 其中,model_name 必须指定,在此基础上,指定 model_dir 时,使用用户自定义的模型。

  • 调用图像矫正模型的 predict() 方法进行推理预测,该方法会返回一个结果列表。另外,本模块还提供了 predict_iter() 方法。两者在参数接受和结果返回方面是完全一致的,区别在于 predict_iter() 返回的是一个 generator,能够逐步处理和获取预测结果,适合处理大型数据集或希望节省内存的场景。可以根据实际需求选择使用这两种方法中的任意一种。predict() 方法参数有 input 和 batch_size,具体说明如下:

参数参数说明参数类型可选项默认值
input待预测数据,支持多种输入类型Python Var/str/dict/list
  • Python变量,如numpy.ndarray表示的图像数据
  • 文件路径,如图像文件的本地路径:/root/data/img.jpg
  • URL链接,如图像文件的网络URL:示例
  • 本地目录,该目录下需包含待预测数据文件,如本地路径:/root/data/
  • 列表,列表元素需为上述类型数据,如[numpy.ndarray, numpy.ndarray]["/root/data/img1.jpg", "/root/data/img2.jpg"]["/root/data1", "/root/data2"]
batch_size批大小int任意整数1
  • 对预测结果进行处理,每个样本的预测结果均为对应的Result对象,且支持打印、保存为图片、保存为json文件的操作:
方法方法说明参数参数类型参数说明默认值
print()打印结果到终端format_jsonbool是否对输出内容进行使用 JSON 缩进格式化True
indentint指定缩进级别,以美化输出的 JSON 数据,使其更具可读性,仅当 format_json 为 True 时有效4
ensure_asciibool控制是否将非 ASCII 字符转义为 Unicode。设置为 True 时,所有非 ASCII 字符将被转义;False 则保留原始字符,仅当format_jsonTrue时有效False
save_to_json()将结果保存为json格式的文件save_pathstr保存的文件路径,当为目录时,保存文件命名与输入文件类型命名一致
indentint指定缩进级别,以美化输出的 JSON 数据,使其更具可读性,仅当 format_json 为 True 时有效4
ensure_asciibool控制是否将非 ASCII 字符转义为 Unicode。设置为 True 时,所有非 ASCII 字符将被转义;False 则保留原始字符,仅当format_jsonTrue时有效False
save_to_img()将结果保存为图像格式的文件save_pathstr保存的文件路径,当为目录时,保存文件命名与输入文件类型命名一致
  • 此外,也支持通过属性获取带结果的可视化图像和预测结果,具体如下:
属性属性说明
json获取预测的json格式的结果
img获取格式为dict的可视化图像

四、二次开发

当前模块暂时不支持微调训练,仅支持推理集成。关于该模块的微调训练,计划在未来支持。

### PaddleOCR 技术介绍 PaddleOCR 是由百度飞桨团队开发的一个高性能、易用的光学字符识别(Optical Character Recognition, OCR)工具包[^2]。它集成了多个先进的模型和技术,能够快速完成文字检测和识别任务。 #### 主要特点 - **高精度**:通过引入多种优化算法以及预训练权重,PaddleOCR 提供了业界领先的识别效果。 - **高效能**:支持多线程加速推理过程,在单张 GPU 或 CPU 上均表现出优异性能。 - **轻量化部署**:提供了一系列压缩后的模型版本,方便嵌入到移动端或其他资源受限环境中运行。 - **简单易用**:无论是安装配置还是调用接口都非常直观简洁,降低了开发者的学习成本。 ```python from paddleocr import PaddleOCR # 初始化 ocr 工具,默认会下载官方推荐的最佳模型文件 ocr = PaddleOCR(use_angle_cls=True, lang="ch") img_path = 'test.jpg' result = ocr.ocr(img_path, cls=True) for line in result: print(line) ``` 上述代码展示了如何利用 `paddleocr` 库加载一张图像并提取其中的文字信息。 --- ### 使用指南 为了更好地理解和应用 PaddleOCR 技术,以下是几个关键环节: #### 1. 环境搭建 确保 Python 版本不低于 3.7,并按照文档指引安装依赖项及核心组件。可以通过 pip 命令轻松获取最新稳定发行版: ```bash pip install paddlepaddle==2.x.x pip install paddleocr ``` #### 2. 数据准备 对于自定义场景下的 OCR 需求,可能需要收集特定类型的样本数据用于微调现有网络结构或者重新训练整个流水线。这一步骤通常包括标注边界框位置及其对应字符串标签等内容。 #### 3. 参数调整 根据实际应用场景的不同,可以灵活修改一些超参设置来平衡速度与质量之间的关系。比如启用角度分类功能 (`use_angle_cls`) 可提高倾斜文本处理能力;指定目标语言种类(`lang='en'/'fr'/...`)则限定仅关注该区域内的字符集合等等。 --- ### 源码解析 深入研究源码有助于掌握其实现细节进而做出更深层次定制化改动。整体架构分为以下几个主要组成部分: - **Text Detection (DB)**: 负责定位图片中的潜在文本区块,采用的是东航大学提出的 Efficient and Accurate Arbitrary-Shaped Text Detector(DB) 方法论。 - **Angle Classification**: 判断每一段候选区是否存在旋转情况以便后续矫正操作更加精准有效。 - **Text Recognition(CRNN)**: 将裁剪出来的子图送入循环神经元序列预测最终输出结果串形式表示出来。 这些模块相互协作共同完成了端到端自动化的流程设计思路清晰明了易于维护扩展性强等特点使其成为众多企业首选解决方案之一。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值