手把手0基础Centos下安装与部署paddleOcr 教程

作者:4042025.10.11 19:06浏览量:0

简介:本文为零基础用户提供CentOS系统下PaddleOCR的完整安装部署指南,涵盖环境准备、依赖安装、源码编译、模型下载及基础使用全流程,帮助开发者快速搭建OCR服务。

手把手0基础CentOS下安装与部署PaddleOCR教程

一、环境准备与系统检查

1.1 确认CentOS版本

PaddleOCR官方推荐使用CentOS 7及以上版本,执行cat /etc/redhat-release查看系统版本。若版本过低,建议升级或使用Docker容器化部署。

1.2 更新系统软件包

  1. sudo yum update -y
  2. sudo yum install -y epel-release # 启用EPEL仓库

此操作确保系统基础库为最新版本,避免兼容性问题。

1.3 安装开发工具链

  1. sudo yum groupinstall -y "Development Tools"
  2. sudo yum install -y cmake wget git

CMake(≥3.10)是PaddleOCR编译的核心依赖,Git用于代码管理。

二、Python环境配置

2.1 安装Miniconda

推荐使用Miniconda管理Python环境,避免系统Python冲突:

  1. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
  2. bash Miniconda3-latest-Linux-x86_64.sh -b -p ~/miniconda
  3. echo 'export PATH=~/miniconda/bin:$PATH' >> ~/.bashrc
  4. source ~/.bashrc

2.2 创建虚拟环境

  1. conda create -n paddle_env python=3.8
  2. conda activate paddle_env

Python 3.8在性能与兼容性间取得最佳平衡。

三、PaddlePaddle框架安装

3.1 选择安装版本

根据硬件配置选择:

  • CPU版(无GPU时):
    1. pip install paddlepaddle==2.5.0 -i https://mirror.baidu.com/pypi/simple
  • GPU版(需NVIDIA显卡):
    1. # 先安装CUDA 11.2和cuDNN 8.1
    2. sudo yum install -y cuda-11-2 cudnn-devel-8.1
    3. pip install paddlepaddle-gpu==2.5.0.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

3.2 验证安装

  1. python -c "import paddle; paddle.utils.run_check()"

输出PaddlePaddle is installed successfully!表示成功。

四、PaddleOCR源码部署

4.1 克隆仓库

  1. git clone https://github.com/PaddlePaddle/PaddleOCR.git
  2. cd PaddleOCR

建议使用git checkout release/2.7切换到稳定版本。

4.2 安装Python依赖

  1. pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple

关键依赖说明:

  • shapely:几何图形处理
  • pyclipper:多边形裁剪
  • opencv-python:图像处理

4.3 编译可选模块

若需使用C++推理或PP-Structure模块:

  1. mkdir build && cd build
  2. cmake .. && make -j$(nproc)

五、模型与配置准备

5.1 下载预训练模型

  1. mkdir inference && cd inference
  2. wget https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tar
  3. wget https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tar
  4. wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar
  5. tar xf *.tar && rm *.tar

5.2 配置文件修改

编辑configs/inference/det_db_icdar15.yml,修改:

  1. Global:
  2. infer_img: ./doc/imgs/11.jpg # 默认测试图片
  3. rec_char_dict_path: ./ppocr/utils/dict/chinese_cht_dict.txt # 字符集文件

六、基础功能测试

6.1 命令行推理

  1. python tools/infer_rec.py \
  2. -c configs/rec/ch_PP-OCRv4_rec.yml \
  3. -o Global.pretrained_model=./inference/ch_PP-OCRv4_rec_infer/model \
  4. Global.infer_img=./doc/imgs_words/ch/word_1.jpg

预期输出包含识别文本和置信度。

6.2 Web服务部署

使用FastAPI快速搭建API:

  1. # 创建app.py
  2. from fastapi import FastAPI
  3. from paddleocr import PaddleOCR
  4. ocr = PaddleOCR(use_angle_cls=True, lang="ch")
  5. app = FastAPI()
  6. @app.post("/ocr")
  7. async def ocr_api(img_base64: str):
  8. import base64
  9. from io import BytesIO
  10. from PIL import Image
  11. img_data = base64.b64decode(img_base64)
  12. img = Image.open(BytesIO(img_data))
  13. result = ocr.ocr(img, cls=True)
  14. return {"result": result}

启动服务:

  1. pip install fastapi uvicorn
  2. uvicorn app:app --host 0.0.0.0 --port 8000

七、性能优化建议

7.1 模型量化

将FP32模型转为INT8:

  1. python tools/export_model.py \
  2. -c configs/rec/ch_PP-OCRv4_rec.yml \
  3. -o Global.pretrained_model=./inference/ch_PP-OCRv4_rec_infer/model \
  4. Global.save_inference_dir=./quant_model \
  5. Global.quant=True

7.2 多进程加速

修改tools/infer/predict_system.py,在main函数前添加:

  1. import multiprocessing
  2. multiprocessing.set_start_method('spawn') # 避免GPU内存冲突

八、常见问题解决

8.1 CUDA内存不足

错误现象:CUDA out of memory
解决方案:

  • 降低batch_size参数
  • 使用export CUDA_VISIBLE_DEVICES=0限制GPU使用
  • 升级GPU驱动至最新版

8.2 中文识别乱码

原因:未正确加载字符集文件
检查:

  1. from paddleocr import PaddleOCR
  2. ocr = PaddleOCR(lang="ch") # 确保lang参数为ch
  3. print(ocr.get_params()["rec_char_dict_path"]) # 验证路径

九、进阶部署方案

9.1 Docker容器化

创建Dockerfile

  1. FROM nvidia/cuda:11.2.2-cudnn8-runtime-ubuntu20.04
  2. RUN apt update && apt install -y python3-pip git
  3. COPY . /PaddleOCR
  4. WORKDIR /PaddleOCR
  5. RUN pip install -r requirements.txt
  6. CMD ["python", "tools/infer_rec.py", "-c", "configs/rec/ch_PP-OCRv4_rec.yml"]

构建并运行:

  1. docker build -t paddleocr .
  2. docker run --gpus all -v $(pwd)/inference:/PaddleOCR/inference paddleocr

9.2 Kubernetes集群部署

通过Helm Chart实现水平扩展,关键配置:

  1. # values.yaml
  2. replicaCount: 3
  3. resources:
  4. limits:
  5. nvidia.com/gpu: 1
  6. requests:
  7. cpu: "500m"
  8. memory: "2Gi"

十、总结与资源推荐

本教程完整覆盖了从环境搭建到服务部署的全流程,关键步骤验证点包括:

  1. Python环境隔离性
  2. PaddlePaddle版本匹配
  3. 模型文件完整性
  4. 硬件资源分配合理性

推荐学习资源:

通过系统化的部署实践,开发者可快速构建满足生产需求的OCR服务,后续可探索模型蒸馏、分布式推理等高级特性。