简介:本文详细介绍Paddle OCR的安装、配置及实战使用方法,涵盖环境准备、安装步骤、模型下载、API调用及常见问题解决,助力开发者快速上手。
Paddle OCR是百度飞桨(PaddlePaddle)推出的开源OCR工具库,支持中英文识别、版面分析、表格识别等全流程功能。其核心优势包括:
conda create -n paddle_ocr python=3.8conda activate paddle_ocr
根据硬件选择安装命令:
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install paddlepaddle-gpu==2.4.2.post116 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
import paddlepaddle.utils.run_check()
输出PaddlePaddle is installed successfully!表示成功。
pip install paddleocr -i https://mirror.baidu.com/pypi/simple
git clone https://github.com/PaddlePaddle/PaddleOCR.gitcd PaddleOCRpip install -r requirements.txtpython setup.py install
paddleocr --version
应显示类似2.7.0.3的版本号。
Paddle OCR提供三类模型:
首次运行时,Paddle OCR会自动下载默认模型(中英文PP-OCRv3):
from paddleocr import PaddleOCRocr = PaddleOCR() # 自动下载模型到~/.paddleocr/
如需自定义模型路径:
mkdir -p inference/cd inference/wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tartar -xf ch_PP-OCRv3_det_infer.tar
编辑config.yml(或通过参数传递):
Global:use_gpu: Truerec_algorithm: "SVTR_LCNet"det_db_thresh: 0.3
from paddleocr import PaddleOCRocr = PaddleOCR(use_angle_cls=True, lang="ch") # 中文识别+角度分类result = ocr.ocr("test.jpg", cls=True)for line in result:print(line[0][0], line[1][0]) # 输出坐标和文本
import osfrom paddleocr import PaddleOCRocr = PaddleOCR(use_gpu=True, batch_size=32) # 启用GPU批量处理img_dir = "images/"for img in os.listdir(img_dir):if img.endswith((".jpg", ".png")):result = ocr.ocr(f"{img_dir}{img}")# 处理结果...
ocr = PaddleOCR(output="json")result = ocr.ocr("document.png")with open("result.json", "w") as f:f.write(str(result))
from paddleocr import PPStructure, draw_structure_resulttable_engine = PPStructure(show_log=True)img_path = "table.png"result = table_engine(img_path)save_path = "table_result.jpg"draw_structure_result(img_path, result, save_path)
from flask import Flask, request, jsonifyfrom paddleocr import PaddleOCRapp = Flask(__name__)ocr = PaddleOCR()@app.route("/ocr", methods=["POST"])def ocr_api():file = request.files["image"]img_path = "temp.jpg"file.save(img_path)result = ocr.ocr(img_path)return jsonify(result)if __name__ == "__main__":app.run(host="0.0.0.0", port=5000)
FROM python:3.8-slimRUN pip install paddlepaddle paddleocr flaskCOPY app.py /app/WORKDIR /appCMD ["python", "app.py"]
构建命令:
docker build -t paddleocr-service .docker run -p 5000:5000 paddleocr-service
现象:CUDA out of memory或CUDA not found
解决:
# 检查CUDA版本nvcc --version# 重新安装对应版本的paddlepaddle-gpupip uninstall paddlepaddle-gpupip install paddlepaddle-gpu==2.4.2.post117 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
原因:未正确指定语言包
解决:
ocr = PaddleOCR(lang="ch") # 显式指定中文# 或通过命令行paddleocr --image_dir test.jpg --lang ch
方案:
batch_size参数use_gpu=False)
from paddleocr import PaddleOCRocr = PaddleOCR(quantization_model=True)
nvidia-smi监控利用率
ocr = PaddleOCR(det_db_thresh=0.3, # 检测阈值rec_char_dict_path="ppocr/utils/dict/chinese_cht_dict.txt", # 自定义字典drop_score=0.5 # 过滤低置信度结果)
通过本文的系统指导,开发者可快速完成Paddle OCR的环境搭建、功能实现及性能优化。实际部署时建议结合具体场景测试不同模型组合,并利用Paddle Inference进行深度优化。