QQ登录

只需一步,快速开始

PaddleOCR在WINDOWS下用VS2019零基础编译与使用

[ 复制链接 ]
开源的好东西很多,能找到相关的帖子也多,但基础与专注领域不同。
看的总不尽人意,文章涉及的软件等相互间还有版本不一问题,
按部就班也是一堆问题,很是浪费时间。

这里记录下自己从0编译运行测试PaddleOCR的过程。
涉及到的压缩包,软件等都统一打包到网盘供下载。
与之相同功能的产品还有很多,如EasyOCR、Chineseocr、Chineseocr_lite。
功能性能都有好坏,建议有时间都自己亲自测试。
网络软文很多,都说自家的好,别家的烂,你懂的。

实在不想亲自测试,建议找到它们各自提供的图片测试网址,
准备多张自己要识别的图片,一一测试,识别效果满意后再进一步学习库或购买产品。
商用的再了解PAI调用限制,比如每天可调用API接口几次?每秒可调用1次还是几次等。
如果需求不多,各大商用厂家提供的免费API调用额度也够用的话,建议使用天若OCR。
这是国人搞的开源项目,就是调用乱七八糟商用API的,比如百度OCR的.

记住看帖子说哪个好,哪个不好的,多半别有用心。
比如有说PaddleOCR好,EasyOCR不好。
你拿PaddleOCR提供的图片
1.jpg
都去它们各自提供的效果测试网站测试一下,
EasyOCR能够很好的识别出来,PaddleOCR只能识别部分内容。
测试单个文字的EasyOCR能够识别,PaddleOCR也不能识别。
程序会说你可以自己训练啊,也可以修改函数参数啊。
好吧,

废话说多,这里以这个领域小白记录一下,
我从0编译出PaddleOCR程序,测试效果的过程。
虽然EasyOCR识别我需求图片的效果很满意,我最终选择学习它。
但我听信了别人写的文章在先,事先搞了两天PaddleOCR,记录下坑,仅供参考。

首先下载一箩筐的压缩包或安装包。
下面是包下载的地址,及我参考过的帖子。
下载包时自己注意每个包的版本号要相互匹配,
不然编译时一堆问题,小白基本无解。
  1. https://blog.csdn.net/stq054188/article/details/114002913?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_v2~rank_aggregation-18-114002913.pc_agg_rank_aggregation&utm_term=paddleocr+%E6%95%88%E6%9E%9C&spm=1000.2123.3001.4430
  2. https://paddle-inference.readthedocs.io/en/latest/user_guides/download_lib.html#windows
  3. https://www.bookstack.cn/read/PaddleOCR/quickstart.md
  4. https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/quickstart_en.md
  5. https://gitee.com/paddlepaddle/PaddleOCR/blob/release/2.0/doc/doc_ch/models_list.md#%E6%96%87%E6%9C%AC%E6%A3%80%E6%B5%8B%E6%A8%A1%E5%9E%8B
  6. https://sourceforge.net/projects/opencvlibrary/files/
复制代码
包配错了一切白搭。
还有PaddleOCR每个版本文件命名不一样,
看别人写的帖子,真的一头雾水,抓狂。
为了自己以后回来继续PaddleOCR,或小白省时省力。
我在附件统一打包到网盘供论坛会员使用。
文件有:
PaddleOCR-2.0.0
paddle_inference_install_dir
opencv-4.5.2-vc14_vc15
ch_ppocr_server_v2.0_rec_infer (1)
ch_ppocr_server_v2.0_det_infer (1)
ch_ppocr_mobile_v2.0_cls_infer (1)
cmake
下面开始搭建WINDOWS下,可以用VS2019编译运行的PaddleOCR测试程序。

0.自行下载VS2019并安装。
使用这个版本主要是网络各种开源库的要求,一会要2015的,一会要2017的,一会2010不支持。
所以我就搞个最新版本的,发现真好,就是太大,40多个GB。
这是微软自家的产品,下载也好安装也罢,那是相当有省事。
这个得自己下载,太大没打包压缩到附件。
下面涉及的压缩包都在附件内,配置时注意我使用的路径。

1.解压cmake。
解压后,内有文件夹BIN,双击cmake-gui.exe,这工具可以将跨平台的项目工程提取生成指定平台的。
如把PaddleOCR搞成WINDOW的VS可打开编译的项目工程,当然VS2019也集成有CMake功能。
先放着,下边都解压完成后再用。

2.解压PaddleOCR。
如我解压到了G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR
依次打开文件夹如G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\deploy\cpp_infer
可以看到一个文件CMakeLists.txt,等会会用到。

3.解压opencv。
这个以exe形式压缩的压缩包,双击运行程序,执行解压。
这是一个很有名的视觉开源库,是PaddleOCR的依赖项。
我解压到了其根目录
如G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\opencv

4.解压paddle_inference_install_dir。
也是解压到PaddleOCR根目录
如G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\paddle_inference_install_dir

5.开始用cmake-gui.exe生成VS2019项目。
2021-05-26_135151.jpg
第一次用这软件,不熟悉也没关系。
主要功能就是生成指定类型项目文件。
上图中1,2是指定跨平台项目目录,及生成指定类型项目的目录。
图中是我做演示用的目录。
设置好后,就可以点击Configure按钮,保存设置,如标识3处。
会弹出版本确认窗口,会弹出生成build文件夹窗口,都确定。
一般保存过程出现问题都会在信息框以红色文字提示,在图中框选的区域也会以红色提示。
如上图,点击Configure按钮后还得进一步设置PaddleOCR所依赖项目的目录,共三处。
Configure按钮可以多次重复点击保存,提示文本框出现configuring done后,
点击Generate按钮(标识4处)生成项目代码。

6.用VS2019打开PaddleOCR工程。
打开上国中项目生成的位置。
G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\deploy\cpp_infer\build
可以看到文件ocr_system.sln,双击打开项目,这就是window下的VS项目了。
如何编译生成熟悉软件Windows下编程的朋友那是轻车熟路了。
我选择生成64位,Release版本编译。
编译正常生成程序,在目录如
G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\deploy\cpp_infer\build\Release
生成ocr_system.exe为控件台程序。
就是通过win+r,输入cmd,弹出黑色窗口来调用的。

7.额外配置。
G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\deploy\cpp_infer\tools
下的config.txt。
G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\ppocr\utils
下的ppocr_keys_v1.txt。
G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\paddle_inference_install_dir\paddle\lib
下的paddle_inference.dll。
复制到ocr_system.exe同级目录。
G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\deploy\cpp_infer\build\Release

再创建inference文件夹,
将ch_ppocr_mobile_v2.0_cls_infer (1),ch_ppocr_server_v2.0_det_infer (1),ch_ppocr_server_v2.0_rec_infer (1)
解压进去,路径如下,都会有三个文件供ocr_system.exe调用。
G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\deploy\cpp_infer\build\Release\inference\ch_ppocr_mobile_v2.0_cls_infer
G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\deploy\cpp_infer\build\Release\inference\ch_ppocr_mobile_v2.0_det_infer
G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\deploy\cpp_infer\build\Release\inference\ch_ppocr_mobile_v2.0_rec_infer
但这此文件ocr_system.exe如何知道就在这些文件夹的呢?
是通过刚才复制进来的config.txt读取,打开此文件进行设置。
上边我们建立的三个文件夹及一个文件ppocr_keys_v1.txt,所以共人4处要修改。
如下图
2021-05-26_142119.jpg
使用的是.\表示相对于ocr_system.exe的路径。

8.测试,以上都搞好好,就可以运行ocr_system.exe进行效果测试。
ocr_system.exe同级目录准备几张测试用图片如1.jpg。
运行CMD ,运行ocr_system.exe。
在CMD命令框中输入G:回车
输入G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\deploy\cpp_infer\build\Release回车。
输入CHCP 65001回车。
打开ocr_system.exe所以目录及设置CMD显示语言。
在目录G:\BackupFiles\Softwares\TesseractBaiduOCR\PaddleOCR\deploy\cpp_infer\docs
有个文档windows_vs2019_build.md,可能你也会用到,可看看。
CMD窗口再输入ocr_system.exe config.txt 1.jpg
注意输入内容是三个文件名ocr_system.exe,config.txt,1.jpg,中间有空格。
都是我们先前准备好的文件。
1.jpg是PaddleOCR提供的图片(文章开始的第一张图)。
识别结果如下图。
2021-05-26_143327.jpg
可以看到上图底部几行中文为识别结果,并不理想。
用PaddleOCR自家的代码识别它自家的图片。
ocr_vis.png
按理应该正常才对。
应该参数在哪可以修改吧,作为小白我也不清楚。
我只是想效果满意直接用,所以没有继续学习,
写下帖子,后续有需要再回头。

附件包含帖子
tesseract与百度OCR环境搭建编译的附件https://www.gkbc8.com/forum.php?mod=viewthread&tid=15931

游客,为过滤非法行为,全站隐藏资源仅对充值会员开放进入升级

回复

使用道具 举报

大神点评(2)

2345 2021-5-26 16:04:32 显示全部楼层
好东西,我折腾了好久,下载了附件直接编译运行了。

这种折磨只有折腾过的人才懂。
我再给站长补充一些。
PaddleOCR包根目录下doc内有一些文档可仅阅读,可直接用notepad打开。
在根目录deploy/cpp_infer/src下是例程源代码,可以参考着使用库。
EasyOCR在线效果测试地址:
https://www.jaided.ai/easyocr/
PaddleOCR 在线测试地址:
https://www.paddlepaddle.org.cn/hub/scene/ocr
回复

使用道具 举报

qq263946146 楼主 2021-5-26 16:05:12 显示全部楼层
2345 发表于 2021-5-26 16:04
好东西,我折腾了好久,下载了附件直接编译运行了。

这种折磨只有折腾过的人才懂。

同是天涯苦命人握手

回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索