Docker部署PaddleX实现PaddleOcr
一、版本说明
- PaddleX 3.0
- Ubuntu20.04.1
- Docker version 26.1.3, build 26.1.3-0ubuntu1~20.04.1
二、安装PaddleX
-
查看服务器信息
-
docker安装PaddleX
根据 官方教程,我的 Docker 版本 >= 19.03 , GPU 版本,显卡驱动程序版本 ≥450.80.02(Linux) 使用下面的命令:docker run --gpus all --name paddlex -v $PWD:/paddle --shm-size=8g --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.1-paddlepaddle3.0.0-gpu-cuda11.8-cudnn8.9-trt8.6 /bin/bash
-
运行容器报错 :error response from daemon: could not select device driver “” with capabilities: [[gpu]]
通常是由于 Docker 没有正确识别到 GPU,或者 NVIDIA Docker 配置不正确。安装NVIDIA 容器工具包:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt update sudo apt install -y nvidia-container-toolkit sudo systemctl restart docker
-
重启docker后,运行容器成功
三、基础服务化部署
-
进入容器安装serving
paddlex --install serving
-
进入容器安装高性能推理插件
paddlex --install hpi-gpu
安装成功显示: -
运行服务,选择通用表格识别 v2
PaddleOCR 产线与 PaddleX 产线注册名的对应关系:PaddleOCR 产线 PaddleX 产线注册名 通用 OCR OCR PP-StructureV3 PP-StructureV3 PP-ChatOCRv4 PP-ChatOCRv4-doc 通用表格识别 v2 table_recognition_v2 公式识别 formula_recognition 印章文本识别 seal_recognition 文档图像预处理 doc_preprocessor 文档理解 doc_understanding PP-DocTranslation PP-DocTranslation 通过 PaddleX CLI 运行服务器:
paddlex --serve --pipeline table_recognition_v2
运行成功最终可以看到类似以下展示的信息:
四、接口调用实现表格识别
参考 通用表格识别v2产线使用教程,直接看 3. 开发集成/部署
我是通过node.js方式测试的效果,如图所示:
后端服务如图所示:
注意报错 405 Method Not Allowed。 是因为浏览器在发送跨域 POST 请求前,会自动先发送一次 OPTIONS 预检(preflight)请求,确认服务器是否允许本次跨域操作。
五、调参优化
效果不是很好,根据 4. 二次开发 调参优化