[paddleocr]基于Python引擎的PP-OCR模型库推理

26- OCR 基于PP-OCRv3的液晶屏读数识别 本项目基于PaddleOCR开源套件,以PP-OCRv3检测和识别模型为基础,针对液晶屏读数识别场景进行优化。PP-OCRv3检测模型是对PP-OCRv2中的CML(Collaborative Mutual Learning) 协同互学习文本检测蒸馏策略进行了升级。如下图所示,CML的核心思想结合了①传统的Teacher指导Student的标准蒸馏与 ②Students网络之间的DML互学习,可以让Students网络互学习的同时,Teacher网络予以指导。 阅读详情

本文介绍针对PP-OCR模型库的Python推理引擎使用方法,内容依次为文本检测、文本识别、方向分类器以及三者串联在CPU、GPU上的预测方法。

1. 文本检测模型推理

文本检测模型推理,默认使用DB模型的配置参数。超轻量中文检测模型推理,可以执行如下命令:

# 下载超轻量中文检测模型:
wget  https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar
tar xf ch_PP-OCRv3_det_infer.tar
python3 tools/infer/predict_det.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./ch_PP-OCRv3_det_infer/"

可视化文本检测结果默认保存到./inference_results文件夹里面,结果文件的名称前缀为'det_res'。结果示例如下:

通过参数limit_type和det_limit_side_len来对图片的尺寸进行限制, limit_type可选参数为[max, min], det_limit_size_len 为正整数,一般设置为32 的倍数,比如960。

参数默认设置为limit_type='max', det_limit_side_len=960。表示网络输入图像的最长边不能超过960, 如果超过这个值,会对图像做等宽比的resize操作,确保最长边为det_limit_side_len。 设置为limit_type='min', det_limit_side_len=960 则表示限制图像的最短边为960。

如果输入图片的分辨率比较大,而且想使用更大的分辨率预测,可以设置det_limit_side_len 为想要的值,比如1216:

python3 tools/infer/predict_det.py --image_dir="./doc/imgs/1.jpg" --det_model_dir="./ch_PP-OCRv3_det_infer/" --det_limit_type=max --det_limit_side_len=1216

如果想使用CPU进行预测,执行命令如下

python3 tools/infer/predict_det.py --image_dir="./doc/imgs/1.jpg" --det_model_dir="./ch_PP-OCRv3_det_infer/"  --use_gpu=False

2. 文本识别模型推理

2.1 超轻量中文识别模型推理

注意 PP-OCRv3的识别模型使用的输入shape为3,48,320, 如果使用其他识别模型,则需根据模型设置参数--rec_image_shape。此外,PP-OCRv3的识别模型默认使用的rec_algorithm为SVTR_LCNet,注意和原始SVTR的区别。

超轻量中文识别模型推理,可以执行如下命令:

# 下载超轻量中文识别模型:
wget  https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar
tar xf ch_PP-OCRv3_rec_infer.tar
python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/ch/word_4.jpg" --rec_model_dir="./ch_PP-OCRv3_rec_infer/"

执行命令后,上面图像的预测结果(识别的文本和得分)会打印到屏幕上,示例如下:

Predicts of ./doc/imgs_words/ch/word_4.jpg:('实力活力', 0.9956803321838379)

2.2 英文识别模型推理

英文识别模型推理,可以执行如下命令, 注意修改字典路径:

# 下载英文数字识别模型:
wget https://paddleocr.bj.bcebos.com/PP-OCRv3/english/en_PP-OCRv3_rec_infer.tar
tar xf en_PP-OCRv3_rec_infer.tar
python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/en/word_1.png" --rec_model_dir="./en_PP-OCRv3_rec_infer/" --rec_char_dict_path="ppocr/utils/en_dict.txt"

执行命令后,上图的预测结果为:

Predicts of ./doc/imgs_words/en/word_1.png: ('JOINT', 0.998160719871521)

2.3 多语言模型的推理

如果您需要预测的是其他语言模型,可以在此链接中找到对应语言的inference模型,在使用inference模型预测时,需要通过--rec_char_dict_path指定使用的字典路径, 同时为了得到正确的可视化结果,需要通过 --vis_font_path 指定可视化的字体路径,doc/fonts/ 路径下有默认提供的小语种字体,例如韩文识别:

wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/korean_mobile_v2.0_rec_infer.tar
python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/korean/1.jpg" --rec_model_dir="./your inference model" --rec_char_dict_path="ppocr/utils/dict/korean_dict.txt" --vis_font_path="doc/fonts/korean.ttf"

执行命令后,上图的预测结果为:

Predicts of ./doc/imgs_words/korean/1.jpg:('바탕으로', 0.9948904)

3. 方向分类模型推理

方向分类模型推理,可以执行如下命令:

# 下载超轻量中文方向分类器模型:
wget  https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar
tar xf ch_ppocr_mobile_v2.0_cls_infer.tar
python3 tools/infer/predict_cls.py --image_dir="./doc/imgs_words/ch/word_4.jpg" --cls_model_dir="ch_ppocr_mobile_v2.0_cls_infer"

执行命令后,上面图像的预测结果(分类的方向和得分)会打印到屏幕上,示例如下:

Predicts of ./doc/imgs_words/ch/word_4.jpg:['0', 0.9999982]

4. 文本检测、方向分类和文字识别串联推理

注意 PP-OCRv3的识别模型使用的输入shape为3,48,320, 如果使用其他识别模型,则需根据模型设置参数--rec_image_shape。此外,PP-OCRv3的识别模型默认使用的rec_algorithm为SVTR_LCNet,注意和原始SVTR的区别。

以超轻量中文OCR模型推理为例,在执行预测时,需要通过参数image_dir指定单张图像或者图像集合的路径,也支持PDF文件、参数det_model_dir,cls_model_dir和rec_model_dir分别指定检测,方向分类和识别的inference模型路径。参数use_angle_cls用于控制是否启用方向分类模型。use_mp表示是否使用多进程(Paddle Inference并不是线程安全,建议使用多进程)。total_process_num表示在使用多进程时的进程数。可视化识别结果默认保存到 ./inference_results 文件夹里面。

# 使用方向分类器
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./ch_PP-OCRv3_det_infer/" --cls_model_dir="./cls/" --rec_model_dir="./ch_PP-OCRv3_rec_infer/" --use_angle_cls=true
# 不使用方向分类器
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./ch_PP-OCRv3_det_infer/" --rec_model_dir="./ch_PP-OCRv3_rec_infer/" --use_angle_cls=false
# 使用多进程
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./ch_PP-OCRv3_det_infer/" --rec_model_dir="./ch_PP-OCRv3_rec_infer/" --use_angle_cls=false --use_mp=True --total_process_num=6
# 使用PDF文件,可以通过使用`page_num`参数来控制推理前几页,默认为0,表示推理所有页
python3 tools/infer/predict_system.py --image_dir="./xxx.pdf" --det_model_dir="./ch_PP-OCRv3_det_infer/" --cls_model_dir="./cls/" --rec_model_dir="./ch_PP-OCRv3_rec_infer/" --use_angle_cls=true --page_num=2

执行命令后,识别结果图像如下:

更多关于推理超参数的配置与解释,请参考:模型推理超参数解释教程。

5. TensorRT推理

Paddle Inference 采用子图的形式集成 TensorRT,针对 GPU 推理场景,TensorRT 可对一些子图进行优化,包括 OP 的横向和纵向融合,过滤冗余的 OP,并为 OP 自动选择最优的 kernel,加快推理速度。

如果希望使用Paddle Inference进行TRT推理,一般需要2个步骤。

  • (1)收集该模型关于特定数据集的动态shape信息,并存储到文件中。
  • (2)加载动态shape信息文件,进行TRT推理。

以文本检测模型为例,首先使用下面的命令,生成动态shape文件,最终会在ch_PP-OCRv3_det_infer目录下面生成det_trt_dynamic_shape.txt的文件,该文件即存储了动态shape信息的文件。

python3 tools/infer/predict_det.py --image_dir="./doc/imgs/1.jpg" --det_model_dir="./ch_PP-OCRv3_det_infer/" --use_tensorrt=True

上面的推理过程仅用于收集动态shape信息,没有用TRT进行推理。

运行完成以后,再使用下面的命令,进行TRT推理。

python3 tools/infer/predict_det.py --image_dir="./doc/imgs/1.jpg" --det_model_dir="./ch_PP-OCRv3_det_infer/" --use_tensorrt=True

注意:

  • 如果在第一步中,已经存在动态shape信息文件,则无需重新收集,直接预测,即使用TRT推理;如果希望重新生成动态shape信息文件,则需要先将模型目录下的动态shape信息文件删掉,再重新生成。
  • 动态shape信息文件一般情况下仅需生成一次。在实际部署过程中,建议首先在线下验证集或者测试集合上生成好,之后可以直接加载该文件进行线上TRT推理。
PP-OCR技术原理与实现方法 本文介绍了一种实用的超轻量级OCR系统PP-OCR,能精准识别多种场景下的图片中文本。该系统由文本检测、检测框矫正和文本识别三部分组成 阅读详情

相关推荐

PP-OCRv6 ONNX部署的官方和手搓方案

PP-OCRv6 基于全新设计的 PPLCNetV4 统一骨干网络,提供 tiny、small、medium 三档模型,分别面向端侧/IoT、移动端/桌面端、服务端场景。在内部多场景综合评估集上,PP-OCRv6_medium 相比 PP-OCRv5_server 识别精度提升 5.1%、检测精度提升 4.6%,同时 GPU 推理速度提升 2.37×;以仅 34.5M 参数的规模,精度超越 Qwen3-VL-235B、GPT-5.5 等大型视觉语言模型。

懒人的技术笔记 1911

OCR文字检测与识别系统:融合文字检测、文字识别和方向分类器的综合解决方案

OCR文字检测与识别系统:融合文字检测、文字识别和方向分类器的综合解决方案

丨汀、的博客 9337

PaddleOCR---基于Python引擎的PP-OCR模型库推理

基于Python引擎的PP-OCR模型库推理 本文介绍针对PP-OCR模型库的Python推理引擎使用方法,内容依次为文本检测、文本识别、方向分类器以及三者串联在CPU、GPU上的预测方法。 1. 文本检测模型推理 2. 文本识别模型推理 2.1 超轻量中文识别模型推理 2.2 多语言模型的推理 3. 方向分类模型推理 4. 文本检测、方向分类和文字识别串联推理 PaddleOCR 版本是: PaddleOCR-release-2.3 PaddleOCR-release-2.3 官网 1.

心惠天意 5562

PP-OCR阅读笔记

PP-OCR是一个实用的超轻量中英文OCR系统,对最新的文本检测算法和经典的文本识别算法CRNN的能力充分挖掘。虽然没有理论创新,但是从骨干网络选择和调整预测头部的设计数据增强学习率变换策略正则化参数选择预训练模型使用以及模型自动裁剪量化8个方面,采用19个有效策略,对各个模块的模型进行效果调优和瘦身,最终得到整体大小为3.5M的超轻量中英文OCR和2.8M的英文数字OCR下图是PP-OCR的流程图,主要由DB文本检测检测框修正和CRNN。

编程小白的博客 1658

OCR :PaddleOCR项目(vs2017 C++)

文章目录Github源码下载Install and Compile C++ Inference Library on WindowsCmake编译打开项目ocr_system.sln(vs2017)下载模型copy所需文件修改配置文件cmd测试 参考: C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示 百度PaddleOCR字符识别推理部署(C++) C++ 编译 PaddleOCR(CPU版) Github源码下载 2.0版本:PaddleOCR-release-2.0 Insta

fwt1226的博客 3548

【论文阅读】AU检测|《Deep Adaptive Attention for Joint Facial Action Unit Detection and Face Alignment》

摘要 本文旨在从大量没有人工标注的视频中学习用于面部动作单元检测的区分表示。受面部动作是面部肌肉运动这一事实的启发,论文将这些运动描述为不同帧中两幅面部图像之间的转换,并将其用作学习表示的自我监控信号。但是,在不受控制的情况下,这种转换是由面部动作和头部运动引起的。为了消除头部运动的影响,我们提出了一个双圈自动编码器(TCAE),它可以解开面部动作相关运动和头部运动相关运动。具体而言,TCAE被训练成分别将源面部的面部动作和头部姿态改变为目标面部的面部动作和头部姿态。我们的实验验证了TCAE解耦运动的能力。

Celine的博客 4554

PaddleOCR-json完整配置教程:Windows/Linux双平台离线OCR部署指南

PaddleOCR-json是一款基于PaddleOCR C++引擎的离线图片文字识别命令行程序,以JSON字符串形式输出结果,为开发者提供高效、精准的OCR能力。本教程将带你从零开始,在Windows和Linux系统上完成PaddleOCR-json的完整部署与配置,让你快速获得离线OCR识别能力。 ## 一、项目概述与核心价值 PaddleOCR-json是一个封装好的OCR引擎组件,让你

gitblog_00720的博客 796

模电实验室:手把手教你调试共射放大电路静态工作点(避免波形失真)

本文详细介绍了共射放大电路静态工作点的调试方法,帮助避免波形失真问题。从实验准备、电路搭建到静态工作点测量,提供了实用的电阻选值策略和常见波形失真解决方案,适合电子相关专业学生和硬件工程师参考学习。

weixin_42531128的博客 377

PS3 实机存档与 RPCS3,怎么双向搬运还不用改一个字节

本文解决一个问题:PS3 实机存档数据与 RPCS3 存档数据互相搬运。存档文件夹该放进哪个目录、串号和字段要满足什么一致条件、导入后存档不显示怎么办,下文按顺序给出答案。两种环境共用同一套 savedata 约定,不涉及格式转换,也不涉及解密,核心是把命名对齐。 ## 存档怎么被 RPCS3 识别:三条规则同时生效 想弄明白搬运逻辑,先要懂模拟器凭什么认为一个文件夹是"合法存档"。判定条件是

gitblog_00152的博客 1037

Android 13 录音APK在后台无数据的处理

未获取到录音数据

chenchen4310的博客 1183

MID360+fastlio功能笔记

前言。

qq_35598561的博客 5307

PaddleOCR 全景解读:多语言场景 OCR 与文档智能解析引擎的技术能力与实战指南

PaddleOCR 是飞桨(PaddlePaddle)生态下的多语言 OCR 工具包与文档人工智能引擎,核心使命是将 PDF 文档与图像转换为可供大语言模型直接消费的结构化数据(JSON / Markdown),并同时提供覆盖 100+ 语言的通用场景文字识别能力。本文以仓库首页文档([readme/README_ar.md](https://link.gitcode.com/i/3a59ab7e

gitblog_00208的博客 689

硅谷刷屏的ClawdBot,让Mac mini卖爆了!创始人爆料:一人开发、100% AI 写代码

这两天,个人 AI 助手 ClawdBot 席卷硅谷,国内外社交平台上全是关于它的讨论。 在试用后,网友们纷纷给出了很高的评价。“它是迄今为止最伟大的 AI 应用,相当于你 24 小时全天候专属 AI 员工。”Creator Buddy 创始人兼 CEO Alex Finn 盛赞道,“这就是他们 (Anthropic) 希望 Claude Cowork 呈现的样子。”

技术引领业务创新 1586

飞桨PaddleOCR完整指南:如何用开源OCR工具包实现80+语言智能文字识别

飞桨PaddleOCR是一款全球领先的多语言OCR工具包和文档AI引擎,能够将PDF文档和图像转换为结构化、LLM就绪的数据(JSON/Markdown格式)。作为构建智能RAG和Agentic应用的基石,PaddleOCR凭借其行业领先的准确性和超轻量设计,已成为Dify、RAGFlow和Cherry Studio等顶级项目的首选OCR解决方案。 ## 📊 项目概览与核心价值 ### 为什

gitblog_00677的博客 772

Imatest-Dot Pattern

本文介绍了DotPattern模块测试方法,用于评估相机拍摄点阵图的表现。测试主要关注两点:色彩准确性(是否存在彩色噪点和杂边)和摩尔纹现象。测试步骤包括导入图片、选择分析区域、微调ROI、选择点状图类型和分析保存结果。测试结果包含横向色差、光学畸变和SMIATV畸变等数据,其中0.115%的色差值和0.004度的网格旋转角度表明相机表现良好,但-10.4%的SMIATV畸变显示存在明显桶形畸变。文章还提供了各项指标的具体解读标准。

weixin_64706696的博客 1352

Python面试题及详细答案150道(126-135) -- 数据库交互篇

本文介绍了Python中操作MySQL、SQLite数据库及ORM框架的核心技术。主要内容包括:1. 使用pymysql连接MySQL数据库,演示了连接配置、SQL执行和事务管理;2. ORM原理及主流框架SQLAlchemy和Django ORM的示例;3. 通过sqlite3模块操作轻量级SQLite数据库;4. 数据库事务的ACID特性解析。这些内容涵盖了Python数据库开发的关键知识点,适合准备前后端面试的开发者复习核心概念和实际应用。

大剑师兰特的GIS世界 1730

PP-OCRv6_small_rec_onnx实战教程:手把手教你构建OCR应用

PP-OCRv6_small_rec_onnx是飞桨PaddlePaddle推出的轻量级文本识别模型,基于ONNX格式部署,适用于快速构建高效的OCR应用。本文将从安装到实战,带你一步步掌握这个强大工具的使用方法。 ## 🌟 为什么选择PP-OCRv6_small_rec_onnx? PP-OCRv6_small_rec_onnx作为PP-OCRv6系列的轻量级模型,具有以下核心优势: -

gitblog_00069的博客 1052

GStreamer中h264parse元素

h264parse是 GStreamer 中处理 H.264 视频流的关键元素,主要负责解析和准备 H.264 流以便后续处理。

深之JohnChen的专栏 1029

PaddleOCR 技术全景:多语言场景 OCR 与 LLM 就绪文档解析引擎深度解读

> 本指南以 PaddleOCR 官方法语版 README([readme/README_fr.md](https://link.gitcode.com/i/ec8790464535fa495c356daa5d4732d1))为骨架,结合仓库内源码与配置文件,系统梳理 PaddleOCR 的核心能力——从面向 100+ 语言的多场景文字检测识别,到以 PaddleOCR-VL、PP-Structu

gitblog_00274的博客 219

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

PaddleOCR 安装教程:只做 OCR 还是要训练?6 种场景一篇配好环境

这是写给新手开发者的 PaddleOCR 安装指南:按你的使用目的(通用 OCR、文档解析、信息抽取、文档翻译、转 Markdown、训练导出)直接给出 PaddleOCR 3.x 的安装命令、Python 版本约束与推理引擎选择,照着做就能跑通。 [![PaddleOCR 安装后通用 OCR 识别效果示例](https://raw.gitcode.com/GitHub_Trending/pa/

gitblog_00399的博客 307

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

三步上手PaddleOCR:把图片和PDF变成结构化数据的开源OCR工具

# 三步上手PaddleOCR:把图片和PDF变成结构化数据的开源OCR工具 您是否被一堆拍照的发票、合同PDF或纸质资料折磨过——想让它们变成可搜索、可编辑的文本,却发现现有工具只能一行一行地认,遇到表格和公式就失灵?PaddleOCR 是百度飞桨推出的开源 OCR 工具包,能把图片和 PDF 文档转换成可直接喂给大模型的结构化数据,并支持 100 多种语言。这篇文章带您在三步之内完成安装、运

gitblog_00012的博客 952

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

PaddleOCR-json技术演进:从Windows OCR组件到跨平台高性能文字识别引擎

PaddleOCR-json是一款基于PaddleOCR C++编译的离线图片文字识别命令行程序,以JSON字符串形式输出结果,方便其他程序调用,并提供多种语言API支持。作为一款专注于OCR技术封装的开源项目,它通过简洁的接口设计,让开发者能够轻松集成OCR能力到各种应用中,无需深入了解底层复杂的深度学习模型实现。项目支持Windows 7+和Linux x64系统,采用C++核心引擎结合多语言

gitblog_01070的博客 494

PaddleOCR 安装配置保姆级指南:5 分钟跑通推理,一步到位配好训练环境

PaddleOCR 是百度的开源 OCR 工具包,负责把图片和 PDF 变成结构化文本,支持 100 多种语言。安装它真正的卡点不在包本身,而在 Python 版本、可选依赖组和推理引擎三处。本文按你的使用场景给出完整安装配置方案,从 5 分钟跑通到训练环境一次讲清。 ## 🎯 先对号入座:你的使用场景 先想清楚"你想做的事",安装方案就确定了一半。对号入座: - **只想本地跑 OCR*

gitblog_00192的博客 220

RapidOCR:把 OCR 装进 Python 工程,6 种推理引擎随便挑

RapidOCR 是一个多引擎 OCR 工具包:检测、方向分类、识别三段流水线各约 10 行代码即可调用,底层支持 ONNX Runtime、OpenVINO、TensorRT、MNN、PaddlePaddle、PyTorch 六类推理引擎,CPU 就能跑,Intel 机器上换一行配置切到 OpenVINO,NVIDIA 显卡上开 TensorRT FP16。下面按"先跑通、再讲原理、后给数据"的

gitblog_01107的博客 747

如何不调用本地推理,用 PaddleOCR 官方 API 提交文档完成 OCR 与解析

如果你的机器上没有 GPU、不想安装推理引擎,也不想在本机加载模型,但仍然需要把 PDF 或图片文档转成结构化文本,PaddleOCR 的官方 API 是一条可直接使用的路径:把本地文件或文件 URL 提交到官方托管服务,由远端完成任务后拉回结果。官方 API 客户端(Python、TypeScript、Go SDK 和 `paddleocr api` CLI 命令)只负责提交任务、轮询异步任务并

gitblog_00098的博客 436
上一篇: [paddleocr]服务器端C++预测
下一篇: [paddleocr]PPOCR 服务化部署
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值