本人环境如下
ubuntu 18.04
cuda 11.4
cudnn 8.6.0
gcc 9.4.0 (8版本之后的应该都行)
cmake-3.26.5-linux-x86_64 (这个版本之间区别应该不大,新点的版本就好)
opencv(这个我一会教程里面会写)

本人主要参考官网的教程
官网链接如下
https://github.com/PaddlePaddle/PaddleOCR/blob/main/deploy/cpp_infer/readme_ch.md

第一步,下载或者编译Paddle预测库

有两种方式

第一种方法是去官网下载官方已经编译好的预测库,找好对应的版本即可

第二种方法是自己编译适合自己版本的预测库,这个官网下面也有教程,但是我没有编译成功。

下载安装 Linux 推理库-PaddlePaddle深度学习平台

下载预测库的链接如上,我选的是cuda11.6的,虽然我是cuda11.4,但是亲测下载这个也可以用

下载好的文件内容入下图

第二步,下载PaddleOCR源码

首先,在终端输入下面的命令

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

git checkout release/2.2

然后,要安装opencv。

原来自己有opencv也没事,也要按照我下面的流程安一遍,不影响你以前的opencv。

PaddleOCR文件夹内按右键打开终端,输入下面的命令

cd deploy/cpp_infer

wget https://paddleocr.bj.bcebos.com/libs/opencv/opencv-3.4.7.tar.gz

tar -xf opencv-3.4.7.tar.gz

可以在当前目录下看到opencv-3.4.7/的文件夹

然后编译opencv,设置opencv源码路径(root_path)以及安装路径(install_path)

进入opencv-3.4.7文件夹内,按右键打开终端,输入下面的命令

root_path=/home/yuanzebin/PaddleOCR/deploy/cpp_infer/opencv-3.4.7/
然后回车,然后输入下面的命令
install_path=${root_path}/opencv3
然后回车,然后输入下面的命令
build_dir=${root_path}/build
然后回车,然后输入下面的命令
rm -rf ${build_dir}
然后回车,然后输入下面的命令
mkdir ${build_dir}
然后回车,然后输入下面的命令
cd ${build_dir}
然后回车,然后输入下面的命令
cmake .. \
    -DCMAKE_INSTALL_PREFIX=${install_path} \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_SHARED_LIBS=OFF \
    -DWITH_IPP=OFF \
    -DBUILD_IPP_IW=OFF \
    -DWITH_LAPACK=OFF \
    -DWITH_EIGEN=OFF \
    -DCMAKE_INSTALL_LIBDIR=lib64 \
    -DWITH_ZLIB=ON \
    -DBUILD_ZLIB=ON \
    -DWITH_JPEG=ON \
    -DBUILD_JPEG=ON \
    -DWITH_PNG=ON \
    -DBUILD_PNG=ON \
    -DWITH_TIFF=ON \
    -DBUILD_TIFF=ON
然后回车

cmake结束后,输入右侧的命令make -j8

然后输入make install

opencv编译完成,最终在安装路径下的文件结构如下所示

第三步,开始运行(准备模型)

首先在PaddleOCR/deploy/cpp_infer/内创建inference文件夹,如下图所示

然后点击下面的链接

GitHub - PaddlePaddle/PaddleOCR: Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices) - PaddlePaddle/PaddleOCRicon-default.png?t=N7T8https://github.com/PaddlePaddle/PaddleOCR

进入链接后,选择2.2版本,如上图,然后点击readme文件,如下图

进入readme文件后,往下滑,下载下图红圈的文件

把这三个文件解压,然后放在PaddleOCR/deploy/cpp_infer/的inference文件夹里面

文件结构如下:

第四步,开始运行(编译PaddleOCR C++预测demo)

打开下图高亮的文档

 修改文档内容,改下图红色圈里的,改成模型文件名字

保存/config.txt文档

然后在/home/yuanzebin/PaddleOCR/deploy/cpp_infer文件夹下,右键鼠标打开终端

输入下面的命令,注意修改为自己的路径

cmake .. \
    -DPADDLE_LIB=/home/yuanzebin/paddle_inference/ \
    -DWITH_MKL=OFF \
    -DWITH_GPU=OFF \
    -DWITH_STATIC_LIB=OFF \
    -DWITH_TENSORRT=OFF \
    -DOPENCV_DIR=/home/yuanzebin/PaddleOCR/deploy/cpp_infer/opencv-3.4.7/opencv3/

cmake结束后,输入右侧的命令make -j8

第五步,开始运行(运行demo)

在/home/yuanzebin/PaddleOCR/deploy/cpp_infer文件夹下,右键鼠标打开终端

输入下面的命令

./build/ocr_system ./tools/config.txt /home/yuanzebin/PaddleOCR/doc/imgs/12.jpg

可能会出现如下报错

这个报错意思是找不到libpaddle2onnx.so.1.0.0rc2

首先你要手动取搜索这个文件在哪里

然后在终端中输入下面的命令

export LD_LIBRARY_PATH=/home/yuanzebin/paddle_inference/third_party/install/paddle2onnx/lib:$LD_LIBRARY_PATH

然后继续执行下面的命令

还会遇到类似的报错,都找不到某一个文件

也是手动找一下这个文件,然后输入下面的类似命令,改成这个文件所在的路径。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐