Windows10下PP-OCRv4部署指南
一、环境准备
安装Visual Studio 2022
下载并安装 C++桌面开发组件,确保支持MSVC编译环境。
配置系统环境变量,确保cl.exe等编译工具可用。
Python环境配置
推荐使用Conda创建虚拟环境:
bash
Copy Code
conda create -n PaddleOCR python=3.8
conda activate PaddleOCR
安装PaddlePaddle CPU/GPU版本:
bash
Copy Code
pip install paddlepaddle==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple # CPU版本:ml-citation{ref=“8” data=“citationList”}
安装PaddleOCR依赖:
bash
Copy Code
pip install -r requirements.txt # 从PaddleOCR源码目录安装:ml-citation{ref=“1,6” data=“citationList”}
二、模型下载与转换
下载预训练模型
直接通过命令行或手动下载模型文件:
bash
Copy Code
wget https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tar
wget https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tar
解压后得到.pdmodel和.pdiparams文件。
模型转换(可选)
转ONNX格式(适用于NCNN/OpenVINO部署):
bash
Copy Code
paddle2onnx --model_dir ch_PP-OCRv4_det_infer --model_filename inference.pdmodel --params_filename inference.pdiparams --save_file ch_PP-OCRv4_det.onnx
优化ONNX模型(减少计算冗余):
bash
Copy Code
onnxsim ch_PP-OCRv4_det.onnx ch_PP-OCRv4_det_sim.onnx --overwrite-input-shape 1,3,48,320 # 固定输入尺寸:ml-citation{ref=“4,6” data=“citationList”}
三、C++项目配置(VS2022)
项目目录结构
从PaddleOCR源码复制deploy/cpp_infer目录下的include和src文件夹。
添加以下依赖文件:
OpenCV库(需提前编译或下载预编译版本)
Paddle Inference库(从官网下载Windows版)
模型文件(检测、分类、识别模型)。
Visual Studio配置
包含目录:添加OpenCV头文件路径、Paddle Inference头文件路径。
库目录:添加OpenCV .lib文件路径、Paddle Inference库路径。
附加依赖项:添加opencv_world455.lib、paddle_inference.lib等。
四、模型部署验证
Python端推理测试
运行PaddleOCR官方脚本:
bash
Copy Code
python tools/infer/predict_system.py --image_dir=./test_img.jpg
检查输出结果是否包含正确文本检测和识别信息。
C++端部署
编译生成可执行文件,加载模型并输入测试图像:
cpp
Copy Code
// 示例代码片段(加载模型)
Detector detector(“ch_PP-OCRv4_det_sim.onnx”);
cv::Mat img = cv::imread(“test_img.jpg”);
std::vector boxes = detector.detect(img);
确保输出框坐标与文本内容准确。
五、常见问题解决
依赖库冲突
若安装lanms-neo或polygon3失败,需确保已安装Visual Studio C++编译环境。
模型输入尺寸不匹配
转换模型时通过–input_shape_dict固定输入尺寸(如[1,3,48,320])。
OpenCV路径配置错误
检查环境变量Path是否包含OpenCV的bin目录路径。
部署流程图
plaintext
Copy Code
环境准备(VS2022 + Conda) → 模型下载与转换 → C++项目配置 → 编译与测试 → 部署完成
通过以上步骤,可在Windows 10环境下完成PP-OCRv4的本地化部署。