导读
本文主要介绍PaddleOCR v2.6 C++ GPU版的编译详细步骤与踩坑记录,方便大家快速上手。(公众号:OpenCV与AI深度学习)
PaddleOCR 2.6
8月24日PaddleOCR更新了2.6版本,下面是主要更新内容:
详细介绍请查看对应github:
https://github.com/PaddlePaddle/PaddleOCR
往前相关PaddleOCR内容:
- OCR文字识别利器--PaddleOCR识别效果演示
- 让OCR更简单 | PaddleOCR+OpenCV实现文字识别步骤与代码演示
- C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示
- C++ | PaddleOCR GPU版使用步骤与测试时间对比(相对CPU)
C++ GPU编译
C++ CPU版的编译与推理详细步骤前几天已介绍过,详见下面链接:
PaddleOCR v2.6新特征与C++编译推理详细步骤演示
下面来介绍GPU版本的编译与使用:
【1】安装CUDA和cuDNN环境,这里以CUDA10.1和cuDnn7.6.5为例:
安装CUDA10.1并将cuDnn7.6.5解压后复制到CUDA安装目录:
【2】下载PaddleOCR-release-2.6,与前面一样创建build文件夹deploy\cpp_infer\build
【3】下载paddle_inference推理库文件,这里下载avx_mkl_cuda10.1_cudnn7.6.5_avx_mkl-trt6.0.1.5这一版,包含TensorRT,没有TensorRT的版本不要下,里面的头文件不全,后续编译会报错,下载地址:
https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html#windows
【4】安装上面图片对应版本下载TensorRT-6.0.1.5.Windows10.x86_64.cuda-10.1.cudnn7.6,然后解压即可。
【5】CMake编译,注意勾选相关选项、设置对应目录如下:
然后config、generate,完成后打开ppocr.sln,本文使用VS2017编译。
【6】VS2017编译,先生成ALL_BUILD,然后生成ppocr。同样会报错,内容与上篇文章一样:
(1) 无法打开包括文件: “dirent.h”: No such file or directory
(2) mkdir找不到标识符
解决方法:
PaddleOCR v2.6新特征与C++编译推理详细步骤演示
【7】下载推理库,复制对应的dll到ppocr.exe同目录,命令行运行即可。
英文识别cmd命令行指令:
输出log信息与识别结果:
中文识别类似,参考前面文章即可。
【8】VS2017 + RTX3060编译遇到的问题(因为另外一台电脑GPU是RTX3060)
(1) 按照下图版本下载对应文件:
(2) CMake编译按照上面步骤不会出错,在编译ppocr.sln的时候会有两个新错误:
这里需要改一下cudnn.lib的路径,因为它跟另外两个lib不在同一个文件夹下:
另一个报错如下(如果你本身用的VS2019,此问题忽略):
报错原因是这里面的gflags_static.lib和glog.lib是VS2019编译的
我们在前面avx_mkl_cuda10.1_cudnn7.6.5_avx_mkl-trt6.0.1.5里面找到对应的lib替换当前对应两个的lib,重新编译ppocr即可。
觉得有用,记得点个赞