Paddle OCR C++部署 (CPU)

目录

1.前言

2.准备 

2.1 下载需要的源码和库

3.运行

3.1 构建vs项目,执行cmake

3.2 生成解决方案

4.预测

      5.结语


1.前言

        因工作需要,需要实现roi框下的字符识别,故选择基于paddle ocr的离线模型来开发。在此之前已经完成了OCR v4的部署,并封装成dll,以供exe调用。但有些图像感觉识别效果不是很好,且速度较慢,不知道是因为离线模型数据集太少或是什么原因,故在此部署一个OCRv3的模型,对比看看效果。v4和v3的部署方式是一样的,只是库文件会有变化,部署v4时,cmake之后根据vs报错修改即可

2.准备 

        查阅官方文档,了解window下C++的部署流程:文档

2.1 下载需要的源码和库

        1.下载ocr推理项目和模型:我下载的是release/2.6,应该release2.5以上都行项目和模型下载地址

往下滑找到模型列表 然后下载推理模型

2.下载对应的预测库:下载v2.6.0版本的推理库,要注意版本对应  预测库地址

3.opencv下载:我下载的v4.9,大家可根据需求下载,安装时,记得配置环境变量 opencv下载地址

4.CMake下载安装:我装的最新的v3.30,我记得有CMake的版本限制,好像是要求3.14+ Download CMake

5.可以将需要的资源都放一个文件夹内

6.若没有安装git,需要先安装git

3.运行

3.1 构建vs项目,执行cmake

1.先在PaddleOCR-release-2.6\deploy\cpp_infer下创建一个build文件夹

2.cmake选择source code和bulid binaries路径,点击configure,选择VS2019 和 X64,之后会报  error,这是正常的,因为还没有配置库路径

3.接下来配置库路径,因为是CPU推理 所以 只需配置opencv_dir 和paddle_dir,再点击configure

若看到configuring done说明生成vs项目成功,点击generate,open project

注:若遇到关于git的报错,可将 deploy/cpp_infer/external-cmake/auto-log.cmake 中的github地址改为 https://gitee.com/Double_V/AutoLog,重新configure(本人在配置v4的时候遇到这个问题,按这个方法解决,但是v3没有遇到)

3.2 生成解决方案

项目打开之后
1.将解决方案配置由debug改为release
2.下载dirent.h,并拷贝到工程文件下,如E:\OCRv3\PaddleOCR-release-2.6\deploy\cpp_infer下

点击生成->生成解决方案,即可在build/Release/文件夹下看见ppocr.exe文件。


注:本人在部署v4的时候遇到一个"serlocal"的报错,检查发现,可能是因为版本更新,所以预测库里paddle_inference\third_party\install下的文件名和CMakeLists.txt里的名字不对应,我修改了文件夹名字随即正常

双击ppocr.exe,会报错缺少dll,dll文件都在\paddle_inference里,主打缺啥拷贝啥,直到不报错即可

4.预测

测试下图 

1.win+r 打开cmd,cd到ppocr.exe路径下
2.输入CHCP 65001,这样不会乱码

3.执行 下面命令

ppocr.exe system --det_model_dir=E:\OCRv3\models\ch_PP-OCRv3_det_infer --rec_model_dir=E:\OCRv3\models\ch_PP-OCRv3_rec_infer --rec_char_dict_path=E:\OCRv3\PaddleOCR-release-2.6\ppocr\utils\ppocr_keys_v1.txt --image_dir=C:\Users\Administrator\Desktop\R-C.jpg

det_model_dir:定位模型路径
rec_model_dir:识别模型路径
rec_char_dict_path:字典路径
image_dir:图片路径

 4.结果

      
5.结语

以上就是部署并测试的全流程,后续我重写了ocr(),并封装成dll,在qt中调用,大致效果如下

### PaddleOCR 部署教程和指南 #### Python环境下的PaddleOCR部署 对于Python环境下PaddleOCR的安装与配置,按照官方提供的文档可以顺利完成。这包括但不限于确保环境中已正确安装Python以及pip工具,并利用pip命令来安装必要的依赖包[^1]。 ```bash pip install paddleocr ``` 完成上述操作之后,便可以通过简单的几行代码实现OCR功能: ```python from paddleocr import PaddleOCR, draw_ocr ocr = PaddleOCR(use_angle_cls=True, lang='en') # need to run only once to download and load model into memory result = ocr.ocr('example.jpg', cls=True) for line in result: print(line) ``` 此段代码展示了如何加载预训练模型并对图像文件`example.jpg`执行字符识别任务。 #### Windows平台下C++版本的PaddleOCR部署 针对Windows平台上采用C++接口调用PaddleOCR的情况,则需准备Visual Studio 2019社区版及CMake 3.0以上的开发环境。此外,还需下载对应于目标系统的[Paddle Inference Library](https://www.paddlepaddle.org.cn/install/inference_lib),即PaddlePaddle C++预测库的一部分[^2]。 具体来说,在构建应用程序之前要先设置好这些外部依赖项的位置路径;接着编写源码链接至静态或动态链接库形式发布的推理引擎API接口函数,从而实现在本地机器上运行基于深度学习的文字检测与识别服务。 #### Jetson Nano设备上的PaddleOCR部署 当考虑在嵌入式计算单元如NVIDIA Jetson Nano上快速搭建起一套轻量级但高效的光学字符读取解决方案时,可参照特定硬件架构优化过的镜像资源简化前期准备工作。例如,通过预先打包好的Docker容器映像一键拉取所需软件栈,进而绕过繁琐的手动编译环节直接进入应用层测试阶段[^3]。 #### 基于RKNN加速器的移动端PaddleOCR部署 最后介绍一种面向边缘计算场景的应用案例——将PaddleOCR转换成ONNX格式再进一步转化为Rockchip NPU支持的目标文件(.rknn),以此充分利用ARM处理器内置的人工智能协处理单元提升性能表现。经实验验证,在小型化输入样本条件下平均响应时间不超过半秒钟,而面对复杂度较高的实例也能保持在一两秒之内完成整个流程[^4]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值