1. 准备工作
1.1 运行环境
操作系统建议用Linux。我使用的Ubuntu 16.04.6,处理器是4核 Intel® Core™ i5-7500 CPU @ 3.40GHz。
1.2 编译依赖库
本demo主要使用了第三方库opencv和paddle预测库。
1.2.1 编译Opencv
推荐使用opencv 3.0以上版本(以opencv3.4.7为例)。
1)下载和解压
wget https://github.com/opencv/opencv/archive/3.4.7.tar.gz
tar xvf 3.4.7.tar.gz
2)编译
cd opencv-3.4.7
mkdir build
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX= {设定的opencv要install的目录} \
-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
make -j4
make install
make install完成之后,会在opencv install的目录下生成opencv头文件和库文件,用于后面的OCR代码编译。最终在安装路径下的文件结构如下所示:
opencv3/
|-- bin
|-- include
|-- lib
|-- lib64
|-- share
1.2.2 编译Paddle预测库
1)下载代码
git clone https://github.com/PaddlePaddle/Paddle.git
2)编译
mkdir build
cd build
cmake .. \
-DWITH_CONTRIB=OFF \
-DWITH_MKL=OFF \
-DWITH_MKLDNN=OFF \
-DWITH_TESTING=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_INFERENCE_API_TEST=OFF \
-DON_INFER=ON \
-DWITH_PYTHON=ON
make -j4
make inference_lib_dist
编译完成之后,可以在build/paddle_inference_install_dir/文件下看到生成了以下文件及文件夹。
build/paddle_inference_install_dir/
|-- CMakeCache.txt
|-- paddle
|-- third_party
|-- version.txt
- 注: 如果编译的时候报too many files open的错误,设置一下 ulimit -n 63356
更多编译参数选项可以参考Paddle C++预测库官网:
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/05_inference_deployment/inference/build_and_install_lib_cn.html#congyuanmabianyi
2. 运行
2.1 将模型导出为inference model
可以参考模型预测章节(https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/inference.md),导出inference model,用于模型预测。模型导出之后,假设放在inference目录下,则目录结构如下。
inference/
|-- det_db
| |--inference.pdparams
| |--inference.pdimodel
|-- rec_rcnn
| |--inference.pdparams
| |--inference.pdparams
2.2 编译PaddleOCR C++预测demo
2.2.1 下载PaddleOCR
git clone https://github.com/PaddlePaddle/PaddleOCR.git
cd PaddleOCR/deploy/cpp_infer
vi tools/build.sh
将build.sh中的OPENCV_DIR设置成自己编译opencv的install path(1.2.1),LIB_DIR设置成Paddle预测库编译的路径,参考下图:
sh tools/build.sh
编译完成之后,会在build文件夹下生成一个名为ocr_system的可执行文件。
运行程序:
sh tools/run.sh
程序运行效果如下图:
当前目录下会生成ocr_vis.png的结果图片。效果如下: