手把手0基础Centos下安装与部署paddleOcr教程
2025.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 基础依赖安装
执行以下命令安装编译环境与工具链:
sudo yum install -y epel-release
sudo yum groupinstall -y "Development Tools"
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-9
和python36
。
二、Python虚拟环境配置
2.1 虚拟环境创建
使用python3 -m venv paddle_env
创建独立环境,激活命令如下:
source paddle_env/bin/activate
虚拟环境可隔离项目依赖,避免系统Python库冲突。
2.2 依赖库安装
通过pip安装核心依赖:
pip install --upgrade pip
pip install paddlepaddle==2.4.0 # 根据GPU/CPU选择版本
pip install paddleocr opencv-python
GPU版本安装需提前安装CUDA和cuDNN,可通过nvidia-smi
验证GPU环境。
三、PaddleOCR代码获取与配置
3.1 代码仓库克隆
使用git获取最新代码:
git clone https://github.com/PaddlePaddle/PaddleOCR.git
cd PaddleOCR
建议定期执行git pull
获取更新,修复已知问题。
3.2 配置文件修改
进入configs
目录,根据需求修改配置文件:
det_db_icdar15_train.yml
:检测模型配置rec_chinese_common_train.yml
:识别模型配置ppocr_utils.py
:路径与参数设置
关键参数说明:
Global:
use_gpu: True # 根据硬件配置调整
epoch_num: 500
log_smooth_window: 20
四、模型与权重下载
4.1 预训练模型获取
官方提供三种模型下载方式:
- 命令行下载:
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar
tar -xf ch_ppocr_mobile_v2.0_det_infer.tar
- Python脚本下载:
from paddleocr import PaddleOCR
ocr = PaddleOCR(det_model_dir='./inference/ch_ppocr_mobile_v2.0_det_infer')
- 手动下载:从PaddleOCR Release页面获取模型包
4.2 模型放置路径
解压后的模型文件需放置在inference
目录下,结构示例:
inference/
├── ch_ppocr_mobile_v2.0_det_infer/
│ ├── inference.pdmodel
│ └── inference.pdiparams
└── ch_ppocr_mobile_v2.0_rec_infer/
五、运行与测试
5.1 基础命令测试
执行以下命令进行图片识别:
python3 tools/infer_rec.py -c configs/rec/rec_chinese_common_train.yml \
--image_dir="./doc/imgs_words/ch/word_1.jpg" \
--rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" \
--rec_char_dict_path="./ppocr/utils/ppocr_keys_v1.txt"
参数说明:
-c
:指定配置文件--image_dir
:测试图片路径--rec_model_dir
:识别模型路径
5.2 服务化部署
使用Flask构建API服务:
from flask import Flask, request, jsonify
from paddleocr import PaddleOCR
app = Flask(__name__)
ocr = PaddleOCR(use_angle_cls=True, lang="ch")
@app.route('/predict', methods=['POST'])
def predict():
file = request.files['image']
img_path = "./temp.jpg"
file.save(img_path)
result = ocr.ocr(img_path, cls=True)
return jsonify(result)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
启动命令:python3 app.py
六、常见问题解决方案
6.1 内存不足错误
现象:CUDA out of memory
解决方案:
- 减小batch_size参数
- 使用
export FLAGS_fraction_of_gpu_memory_to_use=0.5
限制显存使用 - 升级GPU或使用CPU模式(
use_gpu=False
)
6.2 依赖冲突问题
现象:ModuleNotFoundError
或版本冲突
解决方案:
- 创建全新虚拟环境
- 使用
pip check
检测依赖冲突 - 指定版本安装:
pip install paddlepaddle==2.4.0 paddleocr==2.6.0
6.3 模型加载失败
现象:Cannot load inference model
解决方案:
- 检查模型文件是否完整
- 确认模型路径配置正确
- 重新下载模型文件
七、性能优化建议
7.1 硬件加速配置
- GPU部署:安装对应版本的CUDA(10.2/11.2)和cuDNN
- CPU部署:启用MKL优化(
export USE_MKLDNN=TRUE
)
7.2 模型量化
使用动态图量化减少模型体积:
from paddle.vision.models import resnet50
model = resnet50(pretrained=True)
paddle.jit.save(model, './quant_model')
7.3 多进程处理
通过multiprocessing
实现并行预测:
from multiprocessing import Pool
def process_image(img_path):
result = ocr.ocr(img_path)
return result
if __name__ == '__main__':
img_list = ["img1.jpg", "img2.jpg"]
with Pool(4) as p:
results = p.map(process_image, img_list)
八、扩展功能实现
8.1 自定义字典训练
- 准备标注数据(JSON格式)
- 修改
ppocr/utils/dict
目录下的字典文件 - 调整配置文件中的
character_dict_path
参数
8.2 多语言支持
通过lang
参数切换语言模型:
ocr = PaddleOCR(use_angle_cls=True, lang="fr") # 法语模型
需下载对应语言的预训练模型。
8.3 分布式训练
使用paddle.distributed.launch
启动多卡训练:
python3 -m paddle.distributed.launch --gpus="0,1" tools/train.py \
-c configs/det/det_mv3_db.yml
九、维护与更新
9.1 版本升级
通过git pull
获取代码更新后,需重新安装依赖:
pip install --upgrade -r requirements.txt
9.2 日志分析
训练日志存储在output/
目录下,关键指标包括:
acc
: 识别准确率loss
: 损失值fps
: 处理速度
9.3 备份策略
建议定期备份:
- 模型权重文件
- 自定义配置文件
- 训练日志数据
本教程完整覆盖了从环境搭建到服务部署的全流程,特别针对0基础用户设计了分步操作指南。实际部署时建议先在测试环境验证,再迁移到生产环境。遇到具体问题时,可参考PaddleOCR官方GitHub的Issues板块获取解决方案。
发表评论
登录后可评论,请前往 登录 或 注册