Bài viết này hướng dẫn build lib Paddle phiên bản Release 2.6 để inference trên Ubuntu 22.04.
1. Chuẩn bị
- Môi trường thực thi: Ubuntu 22.04
- Python 3.10
- Link python3 to python để chạy các command bên trong project:
sudo ln -s /usr/bin/python3 /usr/local/bin/python
- Cài đặt Python3-pip:
sudo apt install python3-pip
- Cài đặt cmake:
sudo apt install cmake
- Cài đặt git:
sudo apt install git
- Cài đặt thư viện jinja2, pyyaml:
sudo pip install jinja2 pyyaml
2. Chuẩn bị source code Paddle
- Clone source code:
cd /varsudo git clone https://github.com/PaddlePaddle/Paddle.git
- Add safe derectory:
cd Paddlesudo git config --global --add safe.directory /var/Paddle
- Checkout release 2.6 version:
sudo git checkout release/2.6
- Tạo folder build:
sudo mkdir buildcd build
- Make file:
PADDLE_ROOT=/var/Paddle/
sudo cmake -DFLUID_INFERENCE_INSTALL_DIR=$PADDLE_ROOT \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_PYTHON=OFF \
-DWITH_MKL=ON \
-DWITH_GPU=OFF \
-DON_INFER=ON \
-DWITH_NCCL=OFF \
..
sudo make -j$(nproc)
sudo make inference_lib_dist -j$(nproc)
3. Build chương trình demo
Sử dụng repo PaddleOCR
cd /var/
sudo git clone https://github.com/PaddlePaddle/PaddleOCR.git
cd PaddleOCR/deploy/cpp_infer
Tiếp đến cần build opencv.
wget https://paddleocr.bj.bcebos.com/libs/opencv/opencv-3.4.7.tar.gz
tar -xf opencv-3.4.7.tar.gz
Mở file tools/build_opencv.sh bằng Text Editor và thay đường dẫn opencv root path thành
/var/PaddleOCR/deploy/cpp_infer/opencv-3.4.7
Sau đó dùng script build_opencv.sh để bắt đầu make file và build:
sudo ./tools/build_opencv.sh
Tương tự với file build.sh, thay opencv path và paddle path tương ứng, sau đó bật flag with_mkl thành ON để run infer không bị lỗi
/var/PaddleOCR/deploy/cpp_infer/opencv-3.4.7/opencv3//var/Paddle/build/paddle_inference_install_dir/
Sau đó dùng script build.sh để bắt đầu make file và build:
sudo ./tools/build.sh
4. Chạy demo
Cài đặt lib iomp:
sudo apt install libomp-dev
copy file libmklml_intel.so vào usr/local/lib
sudo cp libmklml_intel.so usr/local/lib
sudo ldconfig
Chạy app demo bằng script:
./build/ppocr --det_model_dir=model/en_PP-OCRv3_det_infer \
--rec_model_dir=model/en_PP-OCRv3_rec_infer \
--image_dir=xe/2023_12_14-02_22_02_2.jpg \
--use_angle_cls=false \
--det=true \
--rec=true \
--cls=false \
--rec_char_dict_path=./dict/en_dict.txt
Thay các đường dẫn det_model_dir, rec_model_dir, image_dir, rec_char_dict_path tương ứng.
5. Source code
Paddle: https://github.com/PaddlePaddle/Paddle.git
PaddleOCR: https://github.com/PaddlePaddle/PaddleOCR.git
Chúc các bạn thành công!