今天在visual上配置了百度PaddleOCR,踩了一天的坑,今天记录一下,以便后人
一、项目所需依赖:
(1)OpenCV 4.2.0
(2)Cmake-gui 3.22.0
(3)Visual Studio2022
(4)下载PaddleOCR项目、模型以及预测库
(1)OpenCV安装
OpenCV教程比较完整,可以参考这篇:VisualStudio2019配置OpenCV4.1.0_Rustone的博客-CSDN博客()
(2)Cmake-gui下载安装
大家可以参考这篇:win10下Cmake(make-gui)下载与安装【详细】_小庄同学的博客-CSDN博客
(3)Visual Studio就不说了
(4.1)PaddleOCR项目
下载地址:https://github.com/PaddlePaddle/PaddleOCR
点击Code 下载ZIP文件
下载解压后长这样:
(4.2)PaddleOCR模型
下载地址:PaddleOCR/README_ch.md at release/2.0 · PaddlePaddle/PaddleOCR · GitHub
这里我选择的是下载三个轻量化推理模型,注意:不要下载预训练。
下载解压后长这样:
(4.3)下载paddle——reference预测库:
下载地址:Paddle Lite
可能直接进去看不到,大家好好找找。
这里直接选择预测库cpu_avx_mkl 2.1.1版本的zip文件。
下载解压后长这样:
二、使用Cmake-gui编译PaddleOCR
在刚刚解压的PaddleOCR的***\PaddleOCR\PaddleOCR-release-2.3\deploy\cpp_infer路径下建一个build文件夹用于存储编译后的文件。
记得第一次点击Congure时,要选择visuall Studio 2022,以及x64平台。
在Cmake的 source code输入***\PaddleOCR\PaddleOCR-release-2.3\deploy\cpp_infer路径,在binaries中输入刚刚创建的build路径。点击Configure
点击Configure后会报错,需要把OpenCV以及刚刚下载的paddle_inference预测库路径信息完善;
在这里我遇到了一个坑,提示找不到Git
error: git version 1.6.5 or later required for --recursive flag with 'git
submodule ...': GIT_VERSION_STRING=
这里没有下载Git的同学需要把Git配置一下,之后把build文件夹内容删除,重新编译一次,即可。
Configure done后在点击Generate,这里可能出现超时time out的报错,多点几次就好了。
到这里就会在***\PaddleOCR\PaddleOCR-release-2.3\deploy\cpp_infe\build文件夹下生成一个ppocr.sln文件,使用Visual Studio打开。
三、Visual Stidio中配置文件
3.1 在红框里选择Release和X64平台
3.2 在解决方案中右键点击ppocr文件,选择生成。
3.3报错:无法打开头文件“dirent.h”:No such file or directory
原因是visual里没有配置这个头文件,可以通过以下连接下载对应头文件:https://github.com/tronkko/dirent
解压后长这样,在include里有dirent.h文件。
双击刚刚报错的信息,到头文件处将头文件改成,注意自己的路径
#include"E:\C++sources\dirent-master\include\dirent.h"
之后再次点击生成。
3.4 报错C3861“lstat”: 找不到标识符
双击错误,找到对应行将Istat改成stat
之后再次点击生成,生成成功!!!!!
3.5 修改配置参数
点击main文件,修改其中三个路径,从上往下,第一个是待测图片路径,后面三个则是刚才下载的检测、分类、识别三个模型的绝对位置,(注意路径不能存在中文,需要用双斜杠)
再次右键ppocr工程,点击生成,这时会在刚刚建立的build文件中的Release文件夹中产生一个.exe文件。
四、测试程序
4.1 在exe文件夹上方地址栏输入cmd回车开启命令提示符
4.2 输入ppocr.exe rec(rec 表示调用识别模型,剩下的是det以及system),可以根据自己需要选择
测试结果:
识别出了数字0144(经过二值化后识别准确率更高)
乱码情况:如果出现乱码则通过修改ppocr_keys_v1.txt文件的编码格式,由utf-8改为ANSI即可,通过记事本另存即可实现
如果选择的是det模式 则会在E:\C++sources\PaddleOCR\PaddleOCR-release-2.3\deploy\cpp_infer\build\Release路径下生成一个结果图片。
剩下了由各位好汉慢慢探索了!!!
有侵权请联系