PaddleOCR C++本地部署
实现PaddleOCR C++部署(CPU)版本
环境
CMake 2.6.3
OpenCV 4.7.0
VS2019(VC16) VS2022(VC17)
参考B站大佬视频学习总结: BV1Eo4y1t7SG
0.安装git CMake 版本没关系 能用就行
1.下载源码,三个模型文件,C++推理库(CPU),OPenCV
1-1 官方源码地址:PaddleOCR: 基于飞桨的OCR工具库,包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持多种文本检测、文本识别的训练算法。
1-2 三个模型文件PP-OCRv3_基础模型_OCR_文字检测-飞桨AI Studio星河社区

检测模型 识别模型 分类模型 都下载推理模型即可
1-3 C++推理库
1-4 下载OPenCV Releases - OpenCV
1-5 准备就绪~ 共6个文件
1-6添加dirent.h
https://paddleocr.bj.bcebos.com/deploy/cpp_infer/cpp_files/dirent.h
到这已经成功一半啦!
2. CMake 编译 源码
2-1 打开CMake 添加源码路径
生成路径(新建build文件夹)
2-2 Configure
根据安装的VS版本进行选择
2-3提示文件无效 ,
2-4填写 三个路径(OPENCV_DIR ,OpenCV_DIR,PADDLE_DIR)
文件夹解压后对应的文件
确认下OpenCV 文件夹内是不是这样的
2-5 点击Generate 生成
失败了重新Configure ,确保能访问gitHub喔;
出现Generating done !
2-6打开目录下ALL_BUILD.vcxproj.
3.编译ppocr.exe
3-1切换至Release X64
Debug 下编译会报错;
Paddle暂不支持X86编译;
3-2 复制模型文件至生成exe路径下
解压三个模型文件 放入models文件夹
粘贴!
3-3设置相关参数 args.cpp
这里按照exe的目录进行填写,贴出对比方便对照
修改后一共是5处路径
确认无误后,重新生成ppocr.exe
4运行ppocr.exe
4-1 复制dll到exe目录下,所有dll都找的到!我们都下载好了!
一共7个dll 仔细查看 确保没有遗漏;
4-2 复制 ppocr_keys_v1.txt 到 /models/
4-3 cmd运行ppocr.exe
4-4 识别结果乱码
VsCode 修改ppocr_keys_v1.txt编码格式
保存后重新cmd运行~即可
大功告成!
常见报错总结
1.网络通畅 能访问gitHub
2.确保需要的文件都下载完成(源码,3模型文件,OpenCV, C++推理库)
3.Generate失败:确认三个路径填写正确,build下为空;(中途失败了删掉build重来)
4.PaddleOCR暂时没看到支持X86的编译 Debug下编译会报错,用Release X64
5.运行失败,学会看报错,都会有提示,排查下路径对不对
试试加上参数调用!
ppocr.exe --image_dir=./images --type=ocr --det_model_dir=./models/ch_PP-OCRv3_det_infer --rec_model_dir=./models/ch_PP-OCRv3_rec_infer --rec_batch_num=6 --rec_img_h=48 --rec_img_w=320 --precision=fp16 --limit_side_len=960 --enable_mkldnn=true