C++调用PaddleV3模型,GPU模式下实现字符识别配置流程
PaddleOCR在Windows下的C++部署记录,支持CPU和GPU模式
由于最近项目需要对产品上字符进行识别,采用paddle的模型,进行了部署,将配置过程记录如下:
流程可参考官方文档:https://www.paddleocr.ai/latest/version3.x/deployment/cpp/OCR_windows.html#112
- 环境准备
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;
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)