Linux 中使用 Docker 安装 PaddleOCR

本文将介绍如何在 Ubuntu 的 Docker 中安装 PaddleOCR,并启用 Cuda 进行加速。

使用 Docker 安装 PaddlePaddle 环境

1
2
3
4
5
6
# 进入到用户目录,创建一个目录新目录
cd ~ && mkdir dockerMount/paddleOCR && cd ./dockerMount/paddleOCR

# 创建一个容器,使用CUDA12+CUDNN8.9
# 设置docker容器共享内存shm-size为32G,建议设置32G以上
sudo docker run --gpus all --name ppocr -v $PWD:/paddle --shm-size=32G --network=host -it registry.baidubce.com/paddlepaddle/paddle:2.6.0-gpu-cuda12.0-cudnn8.9-trt8.6 /bin/bash

可使用 exit 退出容器。

可以通过下列命令重新进入容器:

1
2
3
4
# 完整方式
sudo docker container exec -it ppocr /bin/bash
# 简化方式
sudo docker exec -it ppocr bash

至此,PaddlePaddle 环境就安装成功了

特别说明:

官方教程使用的是 nvidia-docker 来安装的,NVIDIA/nvidia-docker: 目前被 NVIDIA/nvidia-container-toolkit 代替,因此,在使用时,将 nvidia-docker 换成 docker --gpu all 即可。

测试 paddlepaddle 安装结果

进入 python shell,然后执行 paddle.utils.run_check() 查看状态

1
2
3
python
import paddle
paddle.utils.run_check()

正常的输出结果如下:

1
2
3
4
5
6
7
Running verify PaddlePaddle program ...
I0108 07:52:51.569307 893 program_interpreter.cc:212] New Executor is Running.
W0108 07:52:51.569667 893 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 8.9, Driver API Version: 12.2, Runtime API Version: 12.0
W0108 07:52:51.570616 893 gpu_resources.cc:164] device: 0, cuDNN Version: 8.8.
I0108 07:52:51.671880 893 interpreter_util.cc:624] Standalone Executor is Used.
PaddlePaddle works well on 1 GPU.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.

安装PaddleOCR whl包

1
pip install "paddleocr>=2.0.1" # 推荐使用2.0.1+版本

使用 paddleocr -h 可以查看 paddleocr 是否安装成功

测试

  1. 准备测试图片

    从 Windows 中复制

    1
    scp D:\Develop\TestTemp\invoice\test-invoice\电子发票.png username@host:/home/username/today

    此步骤非必须,可以直接使用 Linux 从网络中下载

    1
    2
    wget https://paddleocr.bj.bcebos.com/dygraph_v2.1/ppocr_img.zip
    unzip ppocr_image.zip
  2. 将图片复制到 docker 容器中

    1
    sudo docker cp image.png containername:/home/target-path
  3. 执行测试

    1
    paddleocr --image_dir ./imgs/11.jpg --use_angle_cls true --use_gpu true

参考

本文参考以下文章,在此致以诚挚谢意!

PaddleOCR/doc/doc_ch/environment.md at release/2.6 · PaddlePaddle/PaddleOCR (github.com)

run_check-API文档-PaddlePaddle深度学习平台

开始使用_飞桨-源于产业实践的开源深度学习平台 (paddlepaddle.org.cn)

飞桨PaddlePaddle-源于产业实践的开源深度学习平台