logo

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

作者:公子世无双2025.09.26 19:55浏览量:0

简介:零基础CentOS用户必看:从环境配置到PaddleOCR部署的全流程指南,附详细代码示例与故障排查

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

一、环境准备:CentOS系统基础配置

1.1 系统版本选择与更新

CentOS 7/8均为稳定选择,推荐使用CentOS 7(x86_64)以兼容更多旧版依赖。执行以下命令更新系统:

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

1.2 依赖库安装

PaddleOCR依赖Python 3.7+、CUDA 10.1/11.2(GPU版)、cuDNN等组件。按以下步骤安装:

  1. # 基础开发工具
  2. sudo yum groupinstall -y "Development Tools"
  3. sudo yum install -y wget curl git
  4. # Python 3.8安装(CentOS 7默认Python 2.7)
  5. sudo yum install -y centos-release-scl
  6. sudo yum install -y rh-python38
  7. scl enable rh-python38 bash # 临时启用Python 3.8
  8. # 永久生效(添加到~/.bashrc)
  9. echo "source /opt/rh/rh-python38/enable" >> ~/.bashrc
  10. source ~/.bashrc

二、PaddlePaddle框架安装

2.1 CPU版本安装

  1. python3 -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

验证安装:

  1. import paddle
  2. paddle.utils.run_check() # 应输出"PaddlePaddle is installed successfully!"

2.2 GPU版本安装(可选)

  1. 确认NVIDIA驱动
    1. nvidia-smi # 查看GPU型号与驱动版本
  2. 安装CUDA 11.2
    1. wget https://developer.download.nvidia.com/compute/cuda/repos/centos7/x86_64/cuda-repo-centos7-11.2.2-1.x86_64.rpm
    2. sudo rpm -ivh cuda-repo-centos7-11.2.2-1.x86_64.rpm
    3. sudo yum clean all
    4. sudo yum install -y cuda-11-2
  3. 安装cuDNN 8.1
    从NVIDIA官网下载cuDNN的.rpm包,执行:
    1. sudo rpm -ivh cudnn-11.3-linux-x64-v8.2.1.32.rpm
  4. 安装GPU版PaddlePaddle
    1. python3 -m pip install paddlepaddle-gpu==2.4.0.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

三、PaddleOCR安装与配置

3.1 克隆仓库与安装依赖

  1. git clone https://github.com/PaddlePaddle/PaddleOCR.git
  2. cd PaddleOCR
  3. python3 -m pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple

3.2 下载预训练模型

PaddleOCR提供中英文、多语言等模型,以中文OCR为例:

  1. mkdir -p inference/ch_PP-OCRv4_det
  2. mkdir -p inference/ch_PP-OCRv4_rec
  3. mkdir -p inference/ch_PP-OCRv4_cls
  4. # 下载检测模型
  5. wget https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tar --no-check-certificate
  6. tar -xf ch_PP-OCRv4_det_infer.tar -C inference/ch_PP-OCRv4_det
  7. # 下载识别模型(类似步骤下载rec和cls模型)

3.3 配置文件修改

编辑configs/det/ch_PP-OCRv4/ch_PP-OCRv4_det.yml,修改模型路径:

  1. Global:
  2. infer_img: ./doc/imgs/12.jpg
  3. det_model_dir: ./inference/ch_PP-OCRv4_det/
  4. rec_model_dir: ./inference/ch_PP-OCRv4_rec/
  5. cls_model_dir: ./inference/ch_PP-OCRv4_cls/

四、运行与测试

4.1 单张图片预测

  1. python3 tools/infer_ocr.py -c configs/det/ch_PP-OCRv4/ch_PP-OCRv4_det.yml -o Global.infer_img=./doc/imgs/12.jpg

输出示例:

  1. Detect Result: [[[67.0, 118.0], [347.0, 102.0], [352.0, 136.0], [72.0, 152.0]], ...]
  2. Recognize Result: {'text': '欢迎使用PaddleOCR', 'confidence': 0.99}

4.2 批量处理与可视化

使用tools/infer_rec.py进行批量识别,并通过tools/plot_result.py生成可视化结果:

  1. python3 tools/infer_rec.py -c configs/rec/ch_PP-OCRv4/ch_PP-OCRv4_rec.yml -o Global.infer_img=./doc/imgs_words/
  2. python3 tools/plot_result.py --det_dir=./output/det/ --rec_dir=./output/rec/ --output_dir=./output/vis/

五、常见问题与解决方案

5.1 依赖冲突

现象pip install时报版本冲突。
解决:使用虚拟环境隔离:

  1. python3 -m venv paddle_env
  2. source paddle_env/bin/activate
  3. pip install -r requirements.txt

5.2 GPU不可用

现象paddle.is_compiled_with_cuda()返回False
检查步骤

  1. 确认nvidia-smi正常显示GPU。
  2. 检查CUDA路径:
    1. echo $LD_LIBRARY_PATH # 应包含/usr/local/cuda/lib64
  3. 重新安装GPU版PaddlePaddle。

5.3 模型下载失败

解决:使用国内镜像源或手动下载后放置到对应目录:

  1. # 手动下载模型后
  2. mv ch_PP-OCRv4_det_infer/* ./inference/ch_PP-OCRv4_det/

六、性能优化建议

  1. 批量处理:修改Global.batch_size参数(默认1,可调至4-8)。
  2. 模型量化:使用TensorRT加速:
    1. python3 tools/export_model.py -c configs/rec/ch_PP-OCRv4/ch_PP-OCRv4_rec.yml -o Global.save_inference_dir=./inference_quant/
  3. 多线程处理:在infer_ocr.py中设置num_workers=4

七、扩展应用场景

  1. 服务化部署:使用FastAPI封装API:
    ```python
    from fastapi import FastAPI
    from paddleocr import PaddleOCR

app = FastAPI()
ocr = PaddleOCR(use_angle_cls=True, lang=”ch”)

@app.post(“/ocr”)
async def ocr_api(img_base64: str):
import base64
from io import BytesIO
from PIL import Image
img_data = base64.b64decode(img_base64)
img = Image.open(BytesIO(img_data))
result = ocr.ocr(img, cls=True)
return {“result”: result}

  1. 2. **定时任务**:结合`crontab`实现每日图片识别:
  2. ```bash
  3. 0 2 * * * /usr/bin/python3 /path/to/PaddleOCR/tools/batch_ocr.py >> /var/log/ocr.log 2>&1

通过以上步骤,即使是0基础的CentOS用户也能完成PaddleOCR的安装与部署。实际生产环境中,建议结合Docker容器化部署以提升环境一致性,并定期更新模型以获得更好的识别效果。

相关文章推荐

发表评论

活动