logo

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

作者:暴富20212025.09.19 14:16浏览量:0

简介:本文为0基础开发者提供CentOS系统下PaddleOCR的完整安装部署指南,涵盖环境准备、依赖安装、代码下载、模型下载及运行测试全流程,附带常见问题解决方案。

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

一、环境准备与系统检查

1.1 系统版本确认

CentOS系统需满足7.x或8.x版本要求,通过cat /etc/redhat-release命令可查看系统版本。若版本低于7.x,建议升级系统或使用Docker容器化部署。

1.2 基础依赖安装

执行以下命令安装编译环境与工具链:

  1. sudo yum install -y epel-release
  2. sudo yum groupinstall -y "Development Tools"
  3. sudo yum install -y wget curl git python3 python3-devel cmake

特别说明:PaddleOCR需要Python3.6+环境,CentOS 7默认Python版本较低,需通过sudo yum install -y centos-release-scl后安装devtoolset-9python36

二、Python虚拟环境配置

2.1 虚拟环境创建

使用python3 -m venv paddle_env创建独立环境,激活命令如下:

  1. source paddle_env/bin/activate

虚拟环境可隔离项目依赖,避免系统Python库冲突。

2.2 依赖库安装

通过pip安装核心依赖:

  1. pip install --upgrade pip
  2. pip install paddlepaddle==2.4.0 # 根据GPU/CPU选择版本
  3. pip install paddleocr opencv-python

GPU版本安装需提前安装CUDA和cuDNN,可通过nvidia-smi验证GPU环境。

三、PaddleOCR代码获取与配置

3.1 代码仓库克隆

使用git获取最新代码:

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

建议定期执行git pull获取更新,修复已知问题。

3.2 配置文件修改

进入configs目录,根据需求修改配置文件:

  • det_db_icdar15_train.yml:检测模型配置
  • rec_chinese_common_train.yml:识别模型配置
  • ppocr_utils.py:路径与参数设置

关键参数说明:

  1. Global:
  2. use_gpu: True # 根据硬件配置调整
  3. epoch_num: 500
  4. log_smooth_window: 20

四、模型与权重下载

4.1 预训练模型获取

官方提供三种模型下载方式:

  1. 命令行下载
    1. wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar
    2. tar -xf ch_ppocr_mobile_v2.0_det_infer.tar
  2. Python脚本下载
    1. from paddleocr import PaddleOCR
    2. ocr = PaddleOCR(det_model_dir='./inference/ch_ppocr_mobile_v2.0_det_infer')
  3. 手动下载:从PaddleOCR Release页面获取模型包

4.2 模型放置路径

解压后的模型文件需放置在inference目录下,结构示例:

  1. inference/
  2. ├── ch_ppocr_mobile_v2.0_det_infer/
  3. ├── inference.pdmodel
  4. └── inference.pdiparams
  5. └── ch_ppocr_mobile_v2.0_rec_infer/

五、运行与测试

5.1 基础命令测试

执行以下命令进行图片识别:

  1. python3 tools/infer_rec.py -c configs/rec/rec_chinese_common_train.yml \
  2. --image_dir="./doc/imgs_words/ch/word_1.jpg" \
  3. --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" \
  4. --rec_char_dict_path="./ppocr/utils/ppocr_keys_v1.txt"

参数说明:

  • -c:指定配置文件
  • --image_dir:测试图片路径
  • --rec_model_dir:识别模型路径

5.2 服务化部署

使用Flask构建API服务:

  1. from flask import Flask, request, jsonify
  2. from paddleocr import PaddleOCR
  3. app = Flask(__name__)
  4. ocr = PaddleOCR(use_angle_cls=True, lang="ch")
  5. @app.route('/predict', methods=['POST'])
  6. def predict():
  7. file = request.files['image']
  8. img_path = "./temp.jpg"
  9. file.save(img_path)
  10. result = ocr.ocr(img_path, cls=True)
  11. return jsonify(result)
  12. if __name__ == '__main__':
  13. app.run(host='0.0.0.0', port=5000)

启动命令:python3 app.py

六、常见问题解决方案

6.1 内存不足错误

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

  1. 减小batch_size参数
  2. 使用export FLAGS_fraction_of_gpu_memory_to_use=0.5限制显存使用
  3. 升级GPU或使用CPU模式(use_gpu=False

6.2 依赖冲突问题

现象:ModuleNotFoundError或版本冲突
解决方案:

  1. 创建全新虚拟环境
  2. 使用pip check检测依赖冲突
  3. 指定版本安装:pip install paddlepaddle==2.4.0 paddleocr==2.6.0

6.3 模型加载失败

现象:Cannot load inference model
解决方案:

  1. 检查模型文件是否完整
  2. 确认模型路径配置正确
  3. 重新下载模型文件

七、性能优化建议

7.1 硬件加速配置

  • GPU部署:安装对应版本的CUDA(10.2/11.2)和cuDNN
  • CPU部署:启用MKL优化(export USE_MKLDNN=TRUE

7.2 模型量化

使用动态图量化减少模型体积:

  1. from paddle.vision.models import resnet50
  2. model = resnet50(pretrained=True)
  3. paddle.jit.save(model, './quant_model')

7.3 多进程处理

通过multiprocessing实现并行预测:

  1. from multiprocessing import Pool
  2. def process_image(img_path):
  3. result = ocr.ocr(img_path)
  4. return result
  5. if __name__ == '__main__':
  6. img_list = ["img1.jpg", "img2.jpg"]
  7. with Pool(4) as p:
  8. results = p.map(process_image, img_list)

八、扩展功能实现

8.1 自定义字典训练

  1. 准备标注数据(JSON格式)
  2. 修改ppocr/utils/dict目录下的字典文件
  3. 调整配置文件中的character_dict_path参数

8.2 多语言支持

通过lang参数切换语言模型:

  1. ocr = PaddleOCR(use_angle_cls=True, lang="fr") # 法语模型

需下载对应语言的预训练模型。

8.3 分布式训练

使用paddle.distributed.launch启动多卡训练:

  1. python3 -m paddle.distributed.launch --gpus="0,1" tools/train.py \
  2. -c configs/det/det_mv3_db.yml

九、维护与更新

9.1 版本升级

通过git pull获取代码更新后,需重新安装依赖:

  1. pip install --upgrade -r requirements.txt

9.2 日志分析

训练日志存储output/目录下,关键指标包括:

  • acc: 识别准确率
  • loss: 损失值
  • fps: 处理速度

9.3 备份策略

建议定期备份:

  1. 模型权重文件
  2. 自定义配置文件
  3. 训练日志数据

本教程完整覆盖了从环境搭建到服务部署的全流程,特别针对0基础用户设计了分步操作指南。实际部署时建议先在测试环境验证,再迁移到生产环境。遇到具体问题时,可参考PaddleOCR官方GitHub的Issues板块获取解决方案。

相关文章推荐

发表评论