百度PaddleOCR字符识别推理部署(C++)

百度PaddleOCR字符识别推理部署(C++)

因工作项目需要用到PaddleOCR字符识别,踩过的一些坑,在此记录,便于后面的人少踩些坑

一、前期准备工作

(1)OpenCV4.2.0(可以使用其他版本,一定要先把CV库配置好,不然会出错)

(2)下载Cmake 3.17.5(可以使用其他Cmake版本)

(3)Visual Studio 2017(可以使用其他vs版本,根据自己的情况来定)

(4)分别下载PaddleOCR项目、PaddleOCR模型、PaddleOCR预测库

      a.下载PaddleOCR推理项目https://github.com/PaddlePaddle/PaddleOCR  如图:

       b.下载 PaddleOCR模型:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.0/README_ch.md 如图:

   c.下载paddle_reference预测库:https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/05_inference_deployment/inference/windows_cpp_inference.html 如图:

(5)步骤(4)下载的文件分别为:

PaddleOCR推理项目:PaddleOCR-release-2.0;

PaddleOCR模型:总共有三个文件夹(ch_ppocr_mobile_v2.0_cls_infer、 ch_ppocr_mobile_v2.0_det_infer、ch_ppocr_server_v2.0_rec_infer),为了方便,可以分别命名为cls、det、rec,将三个文件放在同一个文件夹下models

(三个文件下都有文件inference.pdiparams、inference.pdiparams.info、inference.pdmodel

                                文件名更新为:    

 

下载好之后的文件如下,放在E盘符根目录下OCR文件夹:

二、使用Cmake进行编译PaddleOCR

在E:\OCR\PaddleOCR-release-2.0\deploy\cpp_infer文件路径下创建一个空文件夹build,用于编译。

cmake配置如下(读者可以参考我自己的,因为我没有使用到GPU,所以就没有设置CUDA_LIB和CUDNN_LIB的路径,有需要的可以自己试一下):

注意这里有个小坑:箭头所指的地方要选择x64,否则会出现“LNK1112 模块计算机类型“X64”与目标计算机类型“X86”冲突,就算你改为x64还是出错,所以一定要小心这里(如下图)

解决的办法:config时弹出Optional platform for generator,选中x64即可 ,cmake会默认win32(其实后面小括号已经提示了,容易忽略的地方)

点击configure和generate,弹出configuring done, generating done!,说明cmake编译这步成功完成

然后在E:\OCR\PaddleOCR-release-2.0\deploy\cpp_infer\build文件夹下生产ocr_system.sln项目工程(如图所示):

三、ocr_system.sln项目工程配置

在文件路径 E:\OCR\PaddleOCR-release-2.0\deploy\cpp_infer\build,打开ocr_system.sln,配置和平台分别选择release和x64位平台(与cmake对应起来),如下图所示:

右击项目ocr_system,属性中配置工程,C/C++附件包含目录:

链接器->输入->附加依赖项:(注意这里有个坑:依赖项第一行自动配置出错,应该将paddle_fluid.lib改为paddle_inference.lib,因为E:\OCR\paddle_inference_install_dir\paddle\lib路径下没有paddle_fluid.lib,不改否则会出错,弹出错误“LNK1107 文件无效或损坏:无法在0x398处读取”)

     

 

配置完成之后就可以生成解决方案了:右击ocr_system->仅用于项目->仅生成ocr_system(B),生成ok,如下图:

在 E:\OCR\PaddleOCR-release-2.0\deploy\cpp_infer\build\Release下生成exe可执行文件(ocr_system.exe):

(注意需要把E:\OCR\paddle_inference_install_dir\paddle\lib文件路径下的paddle_fluid.dll 文件拷贝过来)

四、运行配置的程序

在运行ocr_system.exe之前需要修改一下config.txt文件内容:

修改配置E:\OCR\PaddleOCR-release-2.0\deploy\cpp_infer\tools

文件修改的参数:

det_model_dir(检测模型路径)  E:\OCR\models\ch_ppocr_server_v2.0_det_infer  这里修改成 E:\OCR\models\det

cls_model_dir (角度模型路径) E:\OCR\models\ch_ppocr_mobile_v2.0_cls_infer 这里修改成 E:\OCR\models\cls

rec_model_dir (识别模型路径) E:\OCR\models\ch_ppocr_mobile_v2.0_rec_infer 这里修改成 E:\OCR\models\rec
char_list_file(字典路径) E:\OCR\PaddleOCR-release-2.0\ppocr\utils\ppocr_keys_v1.txt (路径可以不修改,根据自己的实际情况定,也可以放在models路径下)

配置到此就结束了

五、测试一下是否配置成功

1、运行cmd,命令行cd 到可执行文件目录下:E:\OCR\PaddleOCR-release-2.0\deploy\cpp_infer\build\Release

2、执行:ocr_system.exe E:\OCR\PaddleOCR-release-2.0\doc\imgs\1.jpg

结果如下,说明配置成功:

注意:1、如果识别中文时出现乱码的话,需要对ppocr_keys_v1.txt的编码格式由utf-8修改成ANSI格式即可,具体方法可以直接使用记事本修改,如图:

2、出现如下图的问题:一般是项目属性没配对,找不到dll文件,一定要核对好路径

 

  • 10
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值