由于最近项目需要对产品上字符进行识别,采用paddle的模型,进行了部署,将配置过程记录如下:

流程可参考官方文档:https://www.paddleocr.ai/latest/version3.x/deployment/cpp/OCR_windows.html#112

  1. 环境准备

Opencv:4.5.3

CUDA:12.0

Cudnn:8.9.1

TenrorRT:8.6.1

 2.下载paddle推理库:

https://www.paddlepaddle.org.cn/inference/v3.0/guides/install/download_lib.html

使用GPU版本可下载2.6;

3.下载demo源码:

https://github.com/PaddlePaddle/PaddleOCR/releases

           需要注意源码需要与预测库版本一致,如预测库选择2.6,源码也要下载2.6版本

4.编译源码:

需要安装Cmake和Vs,VS推荐2022;源码位于PaddleOCR\deploy\cpp_infer路径下,在CMake里需要配置opencv路径,如选择GPU版本需要配置Cuda和Cudnn路径;

在进行编译前先将 Debug 改为 Release,然后下载dirent.h,并拷贝到 Visual Studio 的 include 文件夹下,如 C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include

5.编译后会在eploy/cpp_infer/build/Release路径下生成ppocr.exe文件

   将以下几个库拷贝至ppocr.exe所在文件夹,即可通过该执行程序进行测试

  1.paddle_inference\paddle\lib\paddle_inference.dll

  2.paddle_inference\paddle\lib\common.dll

  3.deploy\cpp_infer\build\bin\Release\abseil_dll.dll

  4.deploy\cpp_infer\build\third_party\clipper_ver6.4.2\cpp\Release\polyclipping.dll

  5.opencv-4.7.0\build\install\x64\vc16\bin\opencv_world470.dll

可以通过命令行形式进行调用测试:

ppocr.exe --det_model_dir=./ch_PP-OCRv3_det_infer/ --rec_model_dir=./ch_PP-OCRv3_rec_infer/ --image_dir=./OCR.png

6.通过项目调用

   在项目中按照demo源码中的配置,引用相关的头文件和lib,调用方法可参考demo中main函数里用法,运行时需要将相关dll放置在当前路径下,或者配置环境变量,用到的dll如下:

common.dll  ControlLib.dll cublas64_12.dll cublasLt64_12.dll cudnn_cnn_infer64_8.dll cudnn_ops_infer64_8.dll cudnn64_8.dll

libiomp5md.dll  mkldnn.dll mklml.dll  opencv_world453.dll paddle_inference.dll zlibwapi.dll

实际使用中可以根据硬件情况,通过参数设置是否启用GPU模式,当不适用GPU时不需要Cuda相关dll;

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐