OCR :PaddleOCR项目(vs2017 C++)

参考:
C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示
百度PaddleOCR字符识别推理部署(C++)
C++ 编译 PaddleOCR(CPU版)

Github源码下载

2.0版本:PaddleOCR-release-2.0
在这里插入图片描述

Install and Compile C++ Inference Library on Windows

paddle_inference.zip
在这里插入图片描述
与源码文件夹放在同一主目录下。

Cmake编译

cmake版本:cmake3.17
opencv版本:opencv3.4.1
cmake配置如下:(build文件夹需要自己新建)
在这里插入图片描述
依次点击Configure和Generate,在deploy/cpp_infer/build文件夹下会生成ocr_system.sln

打开项目ocr_system.sln(vs2017)

检查项目属性:
在这里插入图片描述
配置管理器修改为:Release、x64,生成ALL_BUILD。

报错:找不到‘lstat’
将 ‘lstat’ 修改为 ‘stat’

生成解决方案后,deploy/cpp_infer/build/Release文件夹下生成ocr_system.exe

下载模型

models
在这里插入图片描述
上面是轻量型模型,下面是通用型模型,我下载的是后者。
将模型解压后放在deploy/cpp_infer/build/Release/models文件夹下
在这里插入图片描述

copy所需文件

配置文件:config.txt(deploy/cpp_infer/tools文件夹下
在这里插入图片描述
字库文件:ppocr_keys_v1.txt(ppocr/utils文件夹下
在这里插入图片描述
dll文件:paddle_inference.dll(paddle_inference\paddle\lib文件夹下
在这里插入图片描述

将以上三个文件copy到deploy\cpp_infer\build\Release文件夹下
在这里插入图片描述

修改配置文件

将以下路径修改为自己的路径:
在这里插入图片描述

cmd测试

cd 你的路径\PaddleOCR-release-2.0\deploy\cpp_infer\build\Release
ocr_system.exe config.txt 3.png

原图:
在这里插入图片描述
检测结果图:
在这里插入图片描述
识别结果:
在这里插入图片描述
批量识别:
将图片都放在同一文件夹img下
在这里插入图片描述

ocr_system.exe config.txt img/

# 结果:
I0902 15:43:47.210139 16912 main.cpp:79] The predict img: img//1.png
The detection visualized image saved in ./ocr_vis.png
The predicted text is :
5#      score: 0.834904
350Q2300        score: 0.985711
Cost  2.83206s
I0902 15:43:50.045914 16912 main.cpp:79] The predict img: img//2.png
The detection visualized image saved in ./ocr_vis.png
The predicted text is :
DQ03-29-S       score: 0.995695
Cost  5.80838s
I0902 15:43:53.023207 16912 main.cpp:79] The predict img: img//3.png
The detection visualized image saved in ./ocr_vis.png
The predicted text is :
1a2b3c  score: 0.988216
1226kmo score: 0.964284
台      score: 0.0557826
漂亮宝贝不干啦  score: 0.973924
Cost  8.28684s
# 检测结果图片会一直更新 需要修改源代码

PaddleOCR-release-2.5 版面分析模块

基于Python预测引擎推理

下载模型解压至inference文件夹下:

cd PaddleOCR-release-2.5\ppstructure
mkdir inference
# PP-OCRv2文本检测模型
https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_slim_quant_infer.tar
# PP-OCRv2文本识别模型
https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_rec_slim_quant_infer.tar
# 超轻量级英文表格预测模型
https://paddleocr.bj.bcebos.com/dygraph_v2.0/table/en_ppocr_mobile_v2.0_table_structure_infer.tar
# 注意paddle版本
# 版本过低会报错:No module named 'paddle.distributed'
pip install paddle==2.1.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

# 过程中还会出现很多 No module named 'XXX' 
# 请自行安装                                                             

cd ..
python3 predict_system.py --det_model_dir=inference/ch_PP-OCRv2_det_slim_quant_infer \
                          --rec_model_dir=inference/ch_PP-OCRv2_rec_slim_quant_infer \
                          --table_model_dir=inference/en_ppocr_mobile_v2.0_table_structure_infer \
                          --image_dir=./docs/table/1.png \
                          --rec_char_dict_path=../ppocr/utils/ppocr_keys_v1.txt \
                          --table_char_dict_path=../ppocr/utils/dict/table_structure_dict.txt \
                          --output=../output \
                          --vis_font_path=../doc/fonts/simfang.ttf

# error:__init__() got an unexpected keyword argument 'threshold'
# layoutparse版本下载错误
pip3 install -U https://paddleocr.bj.bcebos.com/whl/layoutparser-0.0.0-py3-none-any.whl

输出:
在这里插入图片描述
在这里插入图片描述

DocVQA模块

cd ppstructure
mkdir inference && cd inference
# 下载SER xfun模型并解压
https://paddleocr.bj.bcebos.com/pplayout/PP-Layout_v1.0_ser_pretrained.tar
cd ..

predict_system_vqa.py --layout_path_model=inference/PP-Layout_v1.0_ser_pretrained/ \
					  --mode=vqa \
					  --image_dir=docs/vqa/input/zh_val_0.jpg \
					  --vis_font_path=../doc/fonts/simfang.ttf

# 报错记录

# predict_system.py: error: unrecognized arguments: --model_name_or_path=inference/PP-Layout_v1.0_ser_pretrained/
>- model_name_or_path 改为 layout_path_model

# NotImplementedError
# ModuleNotFoundError: No module named 'ppstructure.vqa.infer_ser_e2e'
>- 复制2.4版本下的predict_system.py和vqa文件夹

# ImportError: cannot import name 'einsum' from 'paddle'
pip install paddlepaddle-gpu==2.2.2 -i https://mirror.baidu.com/pypi/simple

# AttributeError: 'Namespace' object has no attribute 'max_seq_length'
# 2.5版本删除了vqa部分,待分析前期版本进行修改

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
PaddleOCRC++版本在VS2015编译环境下可能会出现报错。根据引用[1]提供的解决方法,您可以参考该GitHub链接中的讨论,以找到解决方案。同时,引用提供了PaddleOCR模型的C部署方法,其中介绍了如何在Windows(CPU)环境下配置C环境并完成PaddleOCR模型部署。此外,引用是PaddleOCR官网提供的教程链接,其中包含了在Windows下使用VS2019编译PaddleOCR的具体步骤。您可以参考这些资料来解决在VS2015环境下使用PaddleOCR C版的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [paddleOCR vs2015编译运行 基于c++引擎推理 CPU版本](https://blog.csdn.net/weixin_41597991/article/details/109723850)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [OCR:C++ PaddleOCR C++ PaddleOCR vs2019 (CPU版)保姆教程](https://blog.csdn.net/zhulong1984/article/details/126793898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值