Win10 下 PaddleOCR C++ 安装

1,639 阅读3分钟

一、我的环境

  1. 操作系统,如下图:

os.png

  1. Visual Studio 2022、SDK;

image.png

  1. CMakeGit

image.png

  1. Python

image.png

正式开始前,先装好上面2、3、4。

二、相关包及源码

  1. PaddleOCR,2.5版;

image.png

  1. paddle_inference,2.3版;

image.png

  1. PP-OCR模型源码(检测、识别、方向分类),打开后往下拉,我选择的是下图,也可以根据自己需求及语言选择其他的;

image.png

  1. OpenCV,4.6.0版;

image.png

  1. dirent,在github上,仅需下面的文件

image.png

将步骤5获得的文件置于文件夹Visual Studio下\2022\Community\VC\Auxiliary\VS\include

image.png

三、文件组织及整理

  1. D盘根目录新建文件夹projects,内容如下

image.png

* 前三个文件夹为2.3下载后解压文件形成;
* 第四个文件夹为2.2下载后重命名的文件夹;
* 第五个文件夹为Paddle-OCR源码;
* 第六个放置了2.4下完完的OpenCV解压文件夹;
------

2. 配置OpenCV环境变量,Path新增如右D:\projects\tools\opencv-4.6.0-vc14_vc15\opencv\build\x64\vc15\bin,请根据自己实际地址添加环境变量。

四、CMake配置生成、Viaual Studio编译

CMake配置生成

  1. 打开CMake,标1的地方填入PaddleOCR源码deploy下的cpp文件,即D:/projects/PaddleOCR-release-2.5/deploy/cpp_infer

  2. 标2的地方填入PaddleOCR源码deploy下的cpp文件,即D:/projects/PaddleOCR-release-2.5/deploy/cpp_infer/build,build文件夹下是CMake运行后生成的配置

  3. 点击Configure

image.png

  1. 选择Yes

image.png

  1. 选择Visual Studio 17 2022,其他依据自己实际填写(如果你和我的配置相同、默认即可)

image.png

  1. 出现报错并飘红,不要紧张,需要填一下OpenCV路径及paddle_inference路径

image.png

  1. 下图三行分别填入,

    • D:/projects/tools/opencv-4.6.0-vc14_vc15/opencv/build
    • D:/projects/tools/opencv-4.6.0-vc14_vc15/opencv/build
    • D:/projects/paddle_inference2.3_cpu

image.png

  1. 点击Configure,执行完后在点一次,出现下图,点击generate

image.png

  1. 确保无报错,如下图

image.png

编译

  1. 打开文件夹D:/projects/PaddleOCR-release-2.5/deploy/cpp_infer/build,然后visual studio 2022打开文件ppocr.sln

image.png

  1. 重新生成Release项目
    • 选择Release image.png
    • 重新生成

image.png

  1. 编译成功

image.png

五、运行测试

软件安装成功

  1. 编译后的文件位置,如下图

image.png

  1. 双击ppocr.exe,报错如下

image.png

image.png

  1. 缺少上面两个文件,利用everything本地搜索,找到上述文件后放于Release文件夹

image.png

image.png

  1. 同理,继续找到paddle2onnx.dll并移入Release文件夹;

  2. 此时报错如下,需要移入onnxruntime.dll

image.png

  1. 双击即可退出,无报错,说明运行成功。

测试图片

  1. 执行命令ppocr --det_model_dir=D:/projects/ch_PP-OCRv3_det_infer --rec_model_dir=D:\projects\ch_PP-OCRv3_rec_infer --image_dir=imgs,报错如下,原来是缺少文件,everything继续走一遍,直接将ppocr文件夹复制过来放到相应位置。

image.png

  1. 重复上一步命令,无报错,且可以看到结果放在output文件夹中。

image.png

  1. 仔细一看,我去居然有乱码,执行chcp 65001,接着敲上面的命令ppocr --det_model_dir=D:/projects/ch_PP-OCRv3_det_infer --rec_model_dir=D:\projects\ch_PP-OCRv3_rec_infer --image_dir=imgs,结果如下:

image.png

PERFECT,乱码消失。

六、小结

  1. 刚开始CMake配置生成的时候一直出错,原来是SDK版本不合适,visual studio中重新安装了较高版本后解决;

  2. 编译成功后各种错误,缺什么文件就用everything扫一遍,然后贴入响应位置;

  3. 记得使用help功能,即ppocr --help

  4. 仔细观看报错日志,依据日志解决,常见问题有缺少文件、文件名不正确等;

  5. 参考资料:

  1. 官网文章:Windows:Paddledetection的C++预测部署
  2. B站Up主:Win10系统CPU版PaddleOCR的C++部署攻略(cmake-gui法)