零基础CentOS部署PaddleOCR全流程指南
2025.09.26 19:55浏览量:0简介:本文面向零基础用户,提供在CentOS系统下从环境配置到PaddleOCR部署的完整操作指南,包含依赖安装、代码下载、模型下载及测试验证全流程。
前言
PaddleOCR是百度开源的一款基于深度学习的OCR工具库,支持多种语言的文本检测与识别。对于需要在CentOS服务器上部署OCR服务的开发者来说,掌握完整的安装与部署流程至关重要。本文将详细介绍在CentOS系统下从零开始安装和部署PaddleOCR的全过程,帮助读者快速上手。
一、环境准备
1.1 系统要求
- CentOS 7或更高版本(推荐CentOS 7.6+)
- 至少4GB内存(推荐8GB+)
- 至少20GB可用磁盘空间
- 具备root权限或sudo权限
1.2 安装必要工具
# 更新系统软件包sudo yum update -y# 安装开发工具组sudo yum groupinstall "Development Tools" -y# 安装wget和curlsudo yum install wget curl -y
1.3 安装Python环境
PaddleOCR推荐使用Python 3.7或更高版本。CentOS 7默认Python版本较低,建议通过以下方式安装新版Python:
# 安装依赖库sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel -y# 下载Python 3.8安装包wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tar.xz# 解压并安装tar -xf Python-3.8.12.tar.xzcd Python-3.8.12./configure --enable-optimizationsmake -j$(nproc)sudo make altinstall# 验证安装python3.8 --version
1.4 安装pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pypython3.8 get-pip.py
二、安装PaddlePaddle框架
PaddleOCR基于PaddlePaddle深度学习框架,需要先安装PaddlePaddle。
2.1 确定安装版本
访问PaddlePaddle安装指南,根据您的系统环境选择合适的安装命令。
2.2 CPU版本安装(推荐测试环境)
python3.8 -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
2.3 GPU版本安装(如需GPU支持)
如果您的服务器有NVIDIA GPU,可以安装GPU版本以获得更好性能:
# 首先安装CUDA和cuDNN(需根据GPU型号选择版本)# 这里以CUDA 10.2和cuDNN 8.0为例sudo yum install -y gcc-c++ makewget https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-10.2.89-1.x86_64.rpmsudo rpm -ivh cuda-repo-rhel7-10.2.89-1.x86_64.rpmsudo yum clean allsudo yum install -y cuda-10-2# 安装cuDNN# 需要从NVIDIA官网下载cuDNN包后上传到服务器# 假设已下载cudnn-10.2-linux-x64-v8.0.5.39.tgztar -xzvf cudnn-10.2-linux-x64-v8.0.5.39.tgzsudo cp cuda/include/cudnn*.h /usr/local/cuda/includesudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*# 安装GPU版PaddlePaddlepython3.8 -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple
2.4 验证安装
python3.8 -c "import paddle; paddle.utils.run_check()"
如果看到”PaddlePaddle is installed successfully!”的提示,说明安装成功。
三、安装PaddleOCR
3.1 克隆PaddleOCR仓库
git clone https://github.com/PaddlePaddle/PaddleOCR.gitcd PaddleOCR
3.2 安装依赖库
python3.8 -m pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
3.3 下载预训练模型
PaddleOCR提供了多种预训练模型,可以根据需求下载:
# 下载中文OCR模型(检测+识别)mkdir -p inferencecd inferencewget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tarwget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tarwget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar# 解压模型for file in *.tar; do tar -xf $file; donecd ..
四、运行PaddleOCR
4.1 测试图片识别
# 使用默认配置运行python3.8 tools/infer_rec.py -c configs/rec/rec_chinese_lite_train.yml \-o Global.pretrained_model=inference/ch_ppocr_mobile_v2.0_rec_infer/model \Global.infer_img=doc/imgs_words/ch/word_1.jpg
4.2 完整OCR流程(检测+识别)
# 复制示例配置文件cp configs/ppocr/ppocr_mobile_v2.0_det_rec.yml ./my_config.yml# 修改配置文件中的模型路径(可选)# 使用vim或nano编辑my_config.yml# 修改以下部分:# DetModelDir: ./inference/ch_ppocr_mobile_v2.0_det_infer# RecModelDir: ./inference/ch_ppocr_mobile_v2.0_rec_infer# 运行完整OCRpython3.8 tools/infer_ppocr.py -c my_config.yml \--image_dir=doc/imgs_words/ch/word_1.jpg \--det_model_dir=inference/ch_ppocr_mobile_v2.0_det_infer \--rec_model_dir=inference/ch_ppocr_mobile_v2.0_rec_infer
五、部署为Web服务
5.1 安装FastAPI和Uvicorn
python3.8 -m pip install fastapi uvicorn python-multipart -i https://mirror.baidu.com/pypi/simple
5.2 创建Web服务
在PaddleOCR目录下创建app.py文件:
from fastapi import FastAPI, UploadFile, Filefrom paddleocr import PaddleOCRimport cv2import numpy as npimport ioapp = FastAPI()ocr = PaddleOCR(use_angle_cls=True, lang="ch")@app.post("/ocr/")async def ocr_endpoint(file: UploadFile = File(...)):# 读取上传的图片contents = await file.read()nparr = np.frombuffer(contents, np.uint8)img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)# 执行OCRresult = ocr.ocr(img, cls=True)# 格式化结果output = []for line in result:for word_info in line:word = word_info[1][0]confidence = word_info[1][1]output.append({"word": word, "confidence": float(confidence)})return {"result": output}
5.3 启动Web服务
uvicorn app:app --host 0.0.0.0 --port 8000
5.4 测试Web服务
使用curl测试:
curl -X POST -F "file=@doc/imgs_words/ch/word_1.jpg" http://localhost:8000/ocr/
六、常见问题解决
6.1 内存不足问题
如果遇到内存不足错误,可以:
- 减少batch size(修改配置文件中的
Global.batch_size_per_card) - 使用更小的模型(如
ch_ppocr_mobile_v2.0) - 增加服务器内存
6.2 依赖冲突问题
如果遇到依赖冲突,可以:
# 创建虚拟环境(推荐)python3.8 -m venv paddle_envsource paddle_env/bin/activatepip install -r requirements.txt
6.3 GPU不可用问题
确保:
- 已正确安装CUDA和cuDNN
- NVIDIA驱动已安装
- 使用
nvidia-smi命令可以查看GPU状态 - 安装的是GPU版本的PaddlePaddle
七、性能优化建议
模型选择:根据需求选择合适的模型
- 移动端/轻量级:
ch_ppocr_mobile_v2.0 - 服务器端/高精度:
ch_ppocr_server_v2.0
- 移动端/轻量级:
批量处理:对于大量图片,可以实现批量处理接口
多进程处理:使用Gunicorn启动多个Uvicorn进程
模型量化:考虑使用量化后的模型减少内存占用
八、总结
通过以上步骤,您已经成功在CentOS系统上完成了PaddleOCR的安装与部署。从环境准备、框架安装到模型下载和Web服务部署,本文提供了完整的操作指南。对于生产环境部署,建议进一步考虑:
- 使用Nginx作为反向代理
- 实现日志记录和监控
- 添加认证和限流机制
- 考虑容器化部署(如Docker)
PaddleOCR作为一款优秀的开源OCR工具,其丰富的功能和良好的性能可以满足大多数OCR场景的需求。希望本文能帮助您快速上手PaddleOCR的部署工作。

发表评论
登录后可评论,请前往 登录 或 注册