简介:本文详细介绍百度开源的PaddleOCR在Windows系统下的本地部署方法,涵盖环境配置、模型下载、服务启动及API调用全流程,助力开发者快速构建高效文字识别服务。
PaddleOCR是百度飞桨(PaddlePaddle)深度学习框架下的开源OCR工具库,支持中英文、多语言、复杂版面识别等场景,其核心优势在于:
在Windows环境下部署PaddleOCR,可满足企业内网文档数字化、个人开发者离线OCR工具开发等需求,避免依赖云端服务带来的延迟与数据安全风险。
通过Anaconda创建独立环境以避免依赖冲突:
conda create -n paddleocr python=3.8conda activate paddleocrpip install paddlepaddle -i https://mirror.baidu.com/pypi/simple # CPU版本# 或GPU版本(需匹配CUDA版本)# pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple
pip install paddleocr -i https://mirror.baidu.com/pypi/simple
验证安装:
from paddleocr import PaddleOCRocr = PaddleOCR(use_angle_cls=True, lang="ch") # 中文模型print("PaddleOCR安装成功")
PaddleOCR提供多种预训练模型,推荐使用以下组合:
ch_PP-OCRv4_det_infer(中文检测);ch_PP-OCRv4_rec_infer(中文识别);ch_ppocr_mobile_v2.0_cls_infer(文本方向分类)。访问PaddleOCR模型库,下载对应模型并解压至./inference目录。
编辑config.yml(或通过代码参数指定):
Global:use_gpu: False # 根据硬件配置ir_optim: Trueuse_tensorrt: FalseOCR:det_model_dir: "./inference/ch_PP-OCRv4_det_infer/"rec_model_dir: "./inference/ch_PP-OCRv4_rec_infer/"cls_model_dir: "./inference/ch_ppocr_mobile_v2.0_cls_infer/"lang: "ch"
PaddleOCR支持通过FastAPI启动RESTful服务,创建app.py:
from fastapi import FastAPIfrom paddleocr import PaddleOCRimport uvicornapp = FastAPI()ocr = PaddleOCR(use_angle_cls=True, lang="ch")@app.post("/ocr")async def ocr_api(img_base64: str):import base64from io import BytesIOfrom PIL import Imageimg_data = base64.b64decode(img_base64)img = Image.open(BytesIO(img_data))result = ocr.ocr(img, cls=True)return {"result": result}if __name__ == "__main__":uvicorn.run(app, host="0.0.0.0", port=8866)
pip install fastapi uvicorn pillowpython app.py
服务默认监听http://127.0.0.1:8866/ocr,可通过Postman或代码调用。
import requestsimport base64def ocr_request(image_path):with open(image_path, "rb") as f:img_base64 = base64.b64encode(f.read()).decode()response = requests.post("http://127.0.0.1:8866/ocr",json={"img_base64": img_base64})return response.json()result = ocr_request("test.jpg")print(result)
use_gpu=True;ppocr_keys_v1.txt字典文件压缩模型;worker_num参数提升并发能力。错误1:ModuleNotFoundError: No module named 'paddle'
解决:检查Python环境是否激活,或重新安装paddlepaddle。
错误2:CUDA out of memory
解决:降低batch_size参数,或使用CPU模式。
错误3:中文识别乱码
解决:确认模型路径正确,且lang="ch"参数已设置。
PaddleOCR在Windows下的本地部署兼具灵活性与高性能,尤其适合对数据隐私敏感的场景。建议开发者:
通过本文指南,读者可快速完成从环境搭建到服务上线的全流程,构建属于自己的高效OCR系统。