C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

Posted OpenCV与AI深度学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示相关的知识,希望对你有一定的参考价值。

导读
本期将介绍并演示C++ OpenCV使用PaddleOCR做文字识别的步骤与效果。

介绍

百度深度学习框架PaddlePaddle开源的OCR项目PaddleOCR近期霸榜github。使用测试后发现识别效果很好,对于简单的应用(车票车牌身份证等),直接用项目提供的模型即可使用。特殊应用,可自己训练后使用。上篇文章已介绍了Python OpenCV使用步骤,文章链接如下:

 

本文将介绍C++ OpenCV使用PaddleOCR做文字识别步骤。

效果展示

第一部分使用Halcon OCR实例中的部分图片验证,测试效果如下视频:

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

第二部分使用车牌识别图片验证,测试效果如下视频

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

实现步骤

(1) 下载PaddleOCR 2.0源码:

https://github.com/PaddlePaddle/PaddleOCR

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

解压后:

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

(2) 下载paddle_inference_install_dir文件并解压:

https://www.paddlepaddle.org.cn/documentation/docs/en/guides/05_inference_deployment/inference/windows_cpp_inference_en.html

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

解压后:

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

(3) 下载OpenCV Release版并解压,这里使用4.4.0版本

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

(4) CMake编译PaddleOCR源码使用版本我选择现成的VS2017 x64,CMake 3.16,注意下面蓝色部分中3个目录配置,然后依次Config和Generate,生成ocr_system.sln。

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

(5) 打开ocr_system.sln,选择x64 Release模式,生成ALL_BUILD,生成成功后,Release文件夹会生成ocr_system.exe。

https://github.com/PaddlePaddle/PaddleOCR

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

轻量级模型(模型文件小约9.4M,识别速度快,时间约为通用型模型一半,识别效果一般情况够用,相较通用型模型差一些):

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

通用型模型(模型文件大约155M,识别速度慢,识别效果相较轻量级模型更好)

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

(7) 将其他所需文件复制到ocr_system.exe同目录,包括config.txt(配置文件)、ppocr_keys_v1.txt(字库文件)

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

config.txt配置如下,注意修改下面红色部分路径为自己的

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

所需文件如下:

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

(8) cmd运行测试:ocr_system.exe config.txt 1.png

C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

(9) 如果想将功能添加到自己项目中,可以查看main.cpp做参考

上面效果预览中的2个视频效果就是我加了MFC界面的简单应用,大家也可以自己尝试。视频中的MFC Demo源码与素材均已上传至知识星球中,需要的朋友可以加入获取。

喜欢的话请给个赞个在看吧↓↓↓

以上是关于C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示的主要内容,如果未能解决你的问题,请参考以下文章

PaddleOCR C++学习笔记

我做的百度飞桨PaddleOCR .NET调用库

PaddleOCR在 windows下的webAPI部署方案

PaddleOCR在 Linux下的webAPI部署方案

我做的百度飞桨PaddleOCR .NET调用库

C++笔记-Centos7搭建OpenCV3.4开发环境