PaddleOCR文字识别C#部署-升级V2

这里写自定义目录标题

    • 1. 版本对应表
    • 2. 源码编译
      • 2.1 拉取PaddleOCR
      • 2.2 源码编译部署
      • 2.3 *ppocr.exe*测试
    • 3. 修改源码,生成`c#` 调用 `dll`
    • 4.FAQ

PaddleOCR文字识别C#部署-1版本后续升级,本次采用PaddleOCR release/2.5版本,支持GPU、CPU 推理;

1. 版本对应表

Cuda cuDNN TensorRT Paddle Inference OpenCV Visual Studio PaddleOCR
11.2 8.2 8.0.1.6 v2.3 3.4.6以上 VS 2019 2.5(推理库对应)
11.0 8.0 7.2.1.6 v2.3、 v2.1.1、v2.2.2、v2.0.1 3.4.6以上 VS 2019 2.0 以上(推理库对应)
10.2 7.6.5 7.0.0.11 v2.3、 v2.1.1、v2.2.2、 v2.0.1 3.4.6以上 VS 2019 2.0 以上(推理库对应)
10.1 7.6.5 6.0.1.5 v2.3、 v2.1.1、v2.2.2、 v2.0.1 3.4.6以上 VS 2019 2.0 以上(推理库对应)
10.1 7.6.5 no v2.3、 v2.0.1 3.4.6以上 VS 2019 2.0 以上(推理库对应)
10.0 7 6 v2.0.1 3.4.6以上 VS 2019 2.0 以上(推理库对应)
9.0 7 no v2.0.1 3.4.6以上 VS 2019 2.0 以上(推理库对应)
9.0 7 no v2.0.1 3.4.6以上 VS 2019 2.0 以上(推理库对应)

2. 源码编译

2.1 拉取PaddleOCR

PaddlePaddle/PaddleOCR Release/2.5拉取到本地,切换版本分支。

git clone https://github.com/PaddlePaddle/PaddleOCR.git
git branch -a # 查询所有分支
git checkout release/2.5 # 切换分支 release/2.5

2.2 源码编译部署

  • cpu版本,仅需考虑OPENCV_DIR、OpenCV_DIR、PADDLE_LIB三个参数

    • OPENCV_DIR:填写opencv lib文件夹所在位置 D:/PaddlePaddle/opencv4.5.2/build
    • OpenCV_DIR:同填写opencv lib文件夹所在位置 D:/PaddlePaddle/opencv4.5.2/build
    • PADDLE_LIB:paddle_inference文件夹所在位置 D:/PaddlePaddle/paddle_inference_2.3_cpu
  • GPU版本,在cpu版本的基础上,还需填写以下变量 CUDA_LIB、CUDNN_LIB、TENSORRT_DIR、WITH_GPU、WITH_TENSORRT(注意版本对应,参考 版本对应表 )

  • CUDA_LIB: CUDA地址,如 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib\x64

  • CUDNN_LIB: 和CUDA_LIB一致

  • TENSORRT_DIR:TRT下载后解压缩的位置,如 D:\TensorRT-8.0.1.6

  • WITH_GPU: 打钩

  • WITH_TENSORRT:打勾

PaddleOCR文字识别C#部署-升级V2_第1张图片
点击Generate按钮即可生成Visual Studio 项目的sln文件。

在开始生成解决方案之前,执行下面步骤:在这里插入图片描述

  1. Debug改为Release
  2. 下载dirent.h,并拷贝到 Visual Studio 的 include 文件夹下,如C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\VS\include

点击生成->生成解决方案,即可在build/Release/文件夹下看见ppocr.exe文件。

运行之前,将下面文件拷贝到build/Release/文件夹下

  1. paddle_inference/paddle/lib/paddle_inference.dll
  2. opencv/build/x64/vc15/bin/opencv_world452.dll
  3. 如果使用openblas版本的预测库还需要拷贝 paddle_inference/third_party/install/openblas/lib/openblas.dll

2.3 ppocr.exe测试

# 切换终端编码为utf8
CHCP 65001
# 执行预测
ppocr.exe system --det_model_dir=D:\PaddlePaddle\inference\ch_PP-OCRv2_det_infer --rec_model_dir=D:\PaddlePaddle\inference\ch_PP-OCRv2_rec_infer --image_dir=D:\PaddlePaddle\PaddleOCR\doc\imgs\11.jpg --use_gpu=true

3. 修改源码,生成c# 调用 dll

默认开启GPU、mkldnn
PaddleOCR文字识别C#部署-升级V2_第2张图片
PaddleOCR文字识别C#部署-升级V2_第3张图片

4.FAQ

  1. TRT预测报错:InvalidArgumentError: some trt inputs dynamic shape info not set, check the INFO log above for more details.

PaddleOCR文字识别C#部署-升级V2_第4张图片

你可能感兴趣的:(Paddle,c#,人工智能)