Hướng dẫn build lib Paddle và chạy demo inference trên Ubuntu 22.04

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 /var
    sudo git clone https://github.com/PaddlePaddle/Paddle.git
  • Add safe derectory: cd Paddle
    sudo 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 build
    cd 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!

Leave a Reply