一、我的环境
- 操作系统,如下图:
- Visual Studio 2022、SDK;
正式开始前,先装好上面2、3、4。
二、相关包及源码
- PaddleOCR,2.5版;
- paddle_inference,2.3版;
- PP-OCR模型源码(检测、识别、方向分类),打开后往下拉,我选择的是下图,也可以根据自己需求及语言选择其他的;
- OpenCV,4.6.0版;
- dirent,在github上,仅需下面的文件
将步骤5获得的文件置于文件夹Visual Studio下\2022\Community\VC\Auxiliary\VS\include
三、文件组织及整理
- D盘根目录新建文件夹
projects,内容如下
* 前三个文件夹为2.3下载后解压文件形成;
* 第四个文件夹为2.2下载后重命名的文件夹;
* 第五个文件夹为Paddle-OCR源码;
* 第六个放置了2.4下完完的OpenCV解压文件夹;
------
2. 配置OpenCV环境变量,Path新增如右D:\projects\tools\opencv-4.6.0-vc14_vc15\opencv\build\x64\vc15\bin,请根据自己实际地址添加环境变量。
四、CMake配置生成、Viaual Studio编译
CMake配置生成
-
打开CMake,标1的地方填入PaddleOCR源码deploy下的cpp文件,即
D:/projects/PaddleOCR-release-2.5/deploy/cpp_infer -
标2的地方填入PaddleOCR源码deploy下的cpp文件,即
D:/projects/PaddleOCR-release-2.5/deploy/cpp_infer/build,build文件夹下是CMake运行后生成的配置 -
点击
Configure
- 选择
Yes
- 选择
Visual Studio 17 2022,其他依据自己实际填写(如果你和我的配置相同、默认即可)
- 出现报错并飘红,不要紧张,需要填一下OpenCV路径及paddle_inference路径
-
下图三行分别填入,
D:/projects/tools/opencv-4.6.0-vc14_vc15/opencv/buildD:/projects/tools/opencv-4.6.0-vc14_vc15/opencv/buildD:/projects/paddle_inference2.3_cpu
- 点击Configure,执行完后在点一次,出现下图,点击generate
- 确保无报错,如下图
编译
- 打开文件夹
D:/projects/PaddleOCR-release-2.5/deploy/cpp_infer/build,然后visual studio 2022打开文件ppocr.sln
- 重新生成Release项目
- 选择Release
- 重新生成
- 选择Release
- 编译成功
五、运行测试
软件安装成功
- 编译后的文件位置,如下图
- 双击
ppocr.exe,报错如下
- 缺少上面两个文件,利用everything本地搜索,找到上述文件后放于Release文件夹
-
同理,继续找到
paddle2onnx.dll并移入Release文件夹; -
此时报错如下,需要移入
onnxruntime.dll
- 双击即可退出,无报错,说明运行成功。
测试图片
- 执行命令
ppocr --det_model_dir=D:/projects/ch_PP-OCRv3_det_infer --rec_model_dir=D:\projects\ch_PP-OCRv3_rec_infer --image_dir=imgs,报错如下,原来是缺少文件,everything继续走一遍,直接将ppocr文件夹复制过来放到相应位置。
- 重复上一步命令,无报错,且可以看到结果放在output文件夹中。
- 仔细一看,我去居然有乱码,执行
chcp 65001,接着敲上面的命令ppocr --det_model_dir=D:/projects/ch_PP-OCRv3_det_infer --rec_model_dir=D:\projects\ch_PP-OCRv3_rec_infer --image_dir=imgs,结果如下:
PERFECT,乱码消失。
六、小结
-
刚开始CMake配置生成的时候一直出错,原来是SDK版本不合适,visual studio中重新安装了较高版本后解决;
-
编译成功后各种错误,缺什么文件就用everything扫一遍,然后贴入响应位置;
-
记得使用help功能,即
ppocr --help; -
仔细观看报错日志,依据日志解决,常见问题有缺少文件、文件名不正确等;
-
参考资料: