C++ 编译 PaddleOCR(CPU版)
下载文件
- PaddleOCR 项目文件 需要登录!
- paddle推理预测库 选择 cpu_avx_mkl 版
- opencv 3.4.5 开始下载后,复制下载链接用迅雷下载,会快很多!
- 模型文件:一般自己不再训练模型的话,就选择
inference模型。 链接见下方
| 模型名称 | 模型简介 | 检测模型地址 | 识别模型地址 | 支持空格的识别模型地址 |
|---|---|---|---|---|
| chinese_db_crnn_mobile | 超轻量级中文OCR模型 | inference模型 / 预训练模型 | inference模型 / 预训练模型 | inference模型 / 预训练模型 |
| chinese_db_crnn_server | 通用中文OCR模型 | inference模型 / 预训练模型 | inference模型 / 预训练模型 | inference模型 / 预训练模型 |
这里,我只下载了轻量级的模型,现在我们有这些文件:

解压后(opencv.exe双击后,也是解压)目录如下:
添加opencv环境变量:

使用Visual Studio 2019直接编译CMake
- 打开Visual Studio 2019 Community,点击
继续但无需代码
- 点击:
文件->打开->CMake
选择项目代码所在路径,并打开CMakeList.txt:

- 点击:
项目->CMake设置

- 稍等片刻,在下方的CMake变量和缓存中指定
OpenCV_DIR、PADDLE_LIB的路径
OPENCV_DIR: E:/OCR/opencv/build/x64/vc15/lib
OpenCV_DIR: E:/OCR/opencv/build/x64/vc15/lib
PADDLE_LIB: E:/OCR/fluid_inference_cpu_avx_mkl

设置完成后, 点击上图中保存并生成CMake缓存以加载变量,前面都没问题的话,应该会得到以下输出:

点击生成->全部生成

不出意外,还会遇到错误,如下:

双击错误,定位到main.cpp 文件中,这个错误产生的原因是cout输出了中文,所以,我们可以用英文来替换这几个汉字!
还有一种奇怪的解决办事,就是要在中文字符串的最后边加上一个空格即可 ?
std::cout << "花费了 "
<< double(duration.count()) *
std::chrono::microseconds::period::num /
std::chrono::microseconds::period::den
<< "秒 " << std::endl;
重新生成,就没问题了!!!
在运行程序之前,还要先修改一下配置文件,在E:\OCR\PaddleOCR\deploy\cpp_infer\tools 中,

生成的可执行文件在E:\OCR\PaddleOCR\deploy\cpp_infer\out\build\x64-Debug 中,在文件管理器中打开相应的文件夹,在地址栏输入cmd,即可定位到当前文件夹。
先输入CHCP 65001 回车,不然程序运行输出会乱码!
E:\OCR\PaddleOCR\deploy\cpp_infer\out\build\x64-Debug>ocr_system.exe E:\OCR\PaddleOCR\deploy\cpp_infer\tools\config.txt E:\OCR\PaddleOCR\doc\imgs\10.jpg
第一个参数是 配置文件的路径,第二个参数是检测的图片路径
运行还会遇到一个错误 T_T

解决办法就是将 E:\OCR\opencv\build\x64\vc15\bin 目录下的 opencv_world346.dll、opencv_world346d.dll 复制到 C:\Windows\System32中
再运行即可!结果如下:


对比可以看到,轻量级的检测模型还是有一定的错误,可以下载更大的模型自行测试!!完结撒花 !!!
版权声明:本文为qq_37735796原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。