- 前言
- 一.模型解读
- 二.模型训练
- 三.VS2019运行C++预测
- Step0: 搭建环境
- Step1: 下载PaddlePaddle C++ 预测库 fluid_inference
- Step2: 相关配置安装
- Step3: 使用Visual Studio 2019直接编译CMake
- Step4: 运行
个人认为百度在OCR这方面一直处于业界领先地位,我在上家公司工作的时候,由于市场部几个小姐姐有文档/表格识别的需要,我就顺手调用了百度的API,自己集成了一下做了个应用出来。有需要的可以自行去注册百度开发者账号后,按照样例代码自行开发,如果读者中对这需求的多的话我就将我的代码整理下公布出来。
这次主要是在VS2019跑PaddleOCR这个开源项目,因为搭建工程中有些小错误,估计主要是因为写代码的和维护这个rep的不是同一个人,所以教程里面有些许出入,所以我顺带记录一下。
我的环境:
- Visual Studio 2019
- CUDA 11.0,cudnn 8.0 (仅在使用GPU版本的预测库时需要)
- CMake 3.17.1
官方的文档教程写的非常详细。
二.模型训练详见一。
三.VS2019运行C++预测主要参照:
官方参考教程:
博客教程:
可参考搭建python的工程环境,在最后一步安装PaddlePaddle的时候,建议到官网找合适的命令安装。然后克隆PaddleOCR repo代码到本地,
git clone https://github.com/PaddlePaddle/PaddleOCR
如果因为网络问题无法pull成功,也可选择使用码云上的托管:
git clone https://gitee.com/paddlepaddle/PaddleOCR
注:码云托管代码可能无法实时同步本github项目更新,存在3~5天延时,请优先使用推荐方式。
Step1: 下载PaddlePaddle C++ 预测库 fluid_inference参考
主要是下述库:
opencv
dirent (https://github.com/tronkko/dirent, 下载解压:https://codeload.github.com/tronkko/dirent/zip/refs/heads/master)
tensorrt(可选)
主要看博客教程:里面对应的第三步,其中有部分内容我自己有改动。
- CMakeLists.txt
第7行 OFF改成ON, 如果不用trt可以忽略。
添加两行:
SET(Dirent_INCLUDE_DIRS “pathtoyour direntinclude”)
include_directories(${Dirent_INCLUDE_DIRS}) - CMakeSettings.json
- 报错C3861“lstat”: 找不到标识符
将lstat中的l去掉, 变为stat
提前下载模型,
我将这三个模型按大中小/lms下了下来,然后配置main.cpp:
- 第51、60、63行, 改成对应模型所在的文件夹.
- 第65行,将ppocr/utils/ppocr_keys_v1.txt里的这个中文字典的文本文档复制过来,然后直接改为这个文本文档
上述Visual Studio 2019编译产出的可执行文件在outbuildx64-Release目录下,打开cmd,并切换到该目录(如果代码有更改,建议删除exe后再重新生成执行):
cd D:projectsPaddleOCRdeploycpp_inferoutbuildx64-Release ppocr.exe system --image_dir=Crop_20210321210136296.jpg --max_side_len=1920



