前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >飞桨PaddleOCR C++预测库布署

飞桨PaddleOCR C++预测库布署

作者头像
Vaccae
发布2021-07-07 19:13:28
2.5K0
发布2021-07-07 19:13:28
举报
文章被收录于专栏:微卡智享

本文长度为2669,预计阅读7分钟

前言

关于OCR这块以前《Android通过OpenCV和TesserartOCR实时进行识别》中用过TesserartOCR,原来用的模型库也挺大,最近也研究了下别的OCR,最终决定采用百度飞桨PaddleOCR,本篇就是基于百度飞桨的PaddleOCR在Window版下C++的布署。

Q1

为什么使用飞桨PaddleOCR?

其实也是想了很久,如果继续使用原来的TesserartOCR对我来说应该学习成本更低一些,最终选了PaddleOCR也有几个原因:

1.中文教程的开源框架。(完全因为英文水平太烂)

2.推理模型库文件小,用超轻量的模型库总共才9.4M,而原来的TesserartOCR中文模型要50M左右。

3.想学深度学习框架,所以Anacanda全家桶早就装了,在这上面可以直接装PaddlePaddle,后面方便学习。

实现效果

识别的图片

识别效果

安装布署

微卡智享

系统环境

  • 操作系统:Win10
  • IDE:Visual Studio 2019
  • CMake Version:3.19.3
  • OpenCV Version: 4.5.1

使用PaddleOCR编译时用到了OpenCV,我本身就装过也编译了,想了解编译的可以看《OpenCV源码Android端编译,用时三天,我编了个寂寞。。。》,在Windows下编译是正常的,我这里是Android下的扩展库有问题。不想编译的可以直接在OpenCV下载编译好的。

PaddleOCR下载

1.PaddleOCR源码下载

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

国内码云应该也有相关地址,上不去GitHub可以从Gitee中下。

2.推理模型下载

地址也是上面的源码地址,点开里面的README_ch.md说明中,找到上图下载的连接

  • 检测模型:https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar
  • 方向分类器:https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar
  • 识别模型:https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar

注:开始我用的迅雷下载的,结果解压有问题,后来改为右键另存为后,解压正常了。

3.下载PaddleOCR Windows预测库

链接地址:https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html#windows

源码下载的是最新版本的,所以预测库就是下的2.1版本,而版本说明里选择的cpu_avx_mkl,还是主要为了通用,如果是GPU的还要考虑cuda和cudnn等相关的东西。

01

解压PaddleOCR源码

将PaddleOCR2.1版本解压后

C++相关的在deploy目录下cpp_infer的目录下

02

解压并拷贝预测库

下载的预测库解压出来的文件夹

复制里面的所有文件

拷贝到PaddleOCR的源码下

03

使用VS编译PaddleOCR源码

打开VS2019选择继续但无需代码

打开CPP相关的CmakeLists.txt

点击文件---打开---CMake,找到上面说的PaddleOCR源码目录---deploy---cpp_infer---CMakelists.txt文件。

点击项目中的CMake设置

配置名称和类型改为Release

配置OpenCV_DIR和PADDLE_LIB

OpenCV_DIR就是我们安装的OpenCV库里面带有OpenCVConfig.cmake目录的位置。

PADDLE_LIB就是我们前面一步拷贝到PaddleOCR源码中Paddle下Lib的目录。

因为用的是CPU版本,所以下面WITH_GPU要注意一下是否打勾了,如果打勾了要去掉。修改完后点击 面的保存并生成CMake缓存。

前面我们把预测库已经拷贝到源码路径一下,所以CMakeLists.txt里面这一段包含路径可以不用考虑了,这些完成后直接点击项目----全部重新生成即可编译完成。编译完成的文件在源码目录---deploy---cpp_infer_out---build---x64-Release下,如下图:

04

拷贝相关文件

将编译好的目录整个复制出来后,删除多余的目录和文件,只保留相关的exe和dll文件。

然后将预测库---lib目录下的paddle_inference.dll拷贝到当前目录下

接下来再拷贝配置文件config.txt,配置文件在源码目录---deploy---cpp_infer---tools目录下。

然后是下载的三个模型文件,解压后都拷贝到程序目录下,我拷过来后改了个名,如下图

解压后的每个目录下都是相同的模型文件。

最后还有就是源码目录下---ppocr---utils---ppocr_keys_v1.txt文件也拷贝到当前程序目录下。

05

配置Config.txt

打开目录下的config.txt文件

将det_model_dir、cls_model_dir、rec_model_dir里面目录改为上面我们已经改过名的inference的目录文件夹,然后ppocr_keys_v1.txt在前面我们已经拷贝到当前目录下了,所以这里直接前面加上./即可。

到这里全部配置就完成了,接下来运行看看效果。

程序运行

打开CMD,目录指定到我们程序的目录下,然后运行

代码语言:javascript
复制
.\ocr_system.exe D:\PersonalStudio\PaddlePaddle\PaddleOCRReleaseFinal\config.txt E:\DCIM\ts3.jpg

ocr_system.exe后的第一个参数为配置文件的路径,第二个参数为要OCR识别的图片路径。

上面即为检测并识别的结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 程序运行
相关产品与服务
文字识别
文字识别(Optical Character Recognition,OCR)基于腾讯优图实验室的深度学习技术,将图片上的文字内容,智能识别成为可编辑的文本。OCR 支持身份证、名片等卡证类和票据类的印刷体识别,也支持运单等手写体识别,支持提供定制化服务,可以有效地代替人工录入信息。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档