首页 > 编程语言 >C++ | PaddleOCR+OpenCV实现文字识别步骤与代码演示

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

时间:2022-10-18 13:02:45浏览次数:69  
标签:ocr PaddleOCR 模型 system C++ OpenCV 识别


导读

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

介绍

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

让OCR更简单 | PaddleOCR+OpenCV实现文字识别步骤与代码演示 

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

效果展示

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


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



实现步骤

(1) 下载PaddleOCR 2.0源码:

​https://github.com/PaddlePaddle/PaddleOCR​

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

解压后:

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

(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实现文字识别步骤与代码演示_github_03

解压后:

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

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

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

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

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

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

(6) 下载识别模型(轻量级和通用型模型),下载地址:

​https://github.com/PaddlePaddle/PaddleOCR​

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

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

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

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

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


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


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

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

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

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

所需文件如下:

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

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

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

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

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

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

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

标签:ocr,PaddleOCR,模型,system,C++,OpenCV,识别
From: https://blog.51cto.com/stq054188/5765856

相关文章

  • 实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)
    导读本文将使用Python、OpenCV和MediaPipe搭建一个老人跌倒智能监测系统。(公众号:OpenCV与AI深度学习)背景介绍   老人监测系统是一种智能检测系统,可以检测老人是否躺在床......
  • OpenCV图像拼接函数vconcat()&hconcat()
        OpenCV图像直接拼接方法下面链接已做介绍,​​OpenCV常用图像拼接方法(一):直接拼接​​,只是这次我们将使用现成的函数实现,它们是vconcat()和hconcat(),当然也有一些......
  • Halcon实例转OpenCV:计算回形针方向
       Halcon中有一个计算回形针方向的实例clip.hdev,可以在例程中找到。原图如下:    处理后的结果图:    代码整理之后,核心部分如下:dev_close_window()dev_open_wi......
  • OpenCV加载图片显示对应类型(位深度)方法
     对于部分初学者,偶尔会想在代码中查看图片的位深度,一般我们会用Mat.type()来获得类型,但是默认输出的是整型数字,不便于理解,可能还需要自己对照宏定义去查看,这里有一段代码......
  • OpenCV4.2使用viz模块显示3D图像
        在OpenCV3D视觉中如果需要显示三维数据或图像就需要用到viz模块,viz是OpenCV的3D显示模块,OpenCV官方release版本不包含此模块,需要我们自己cmake编译。  Cmake步......
  • OpenCV绘制标记函数drawMarker()
       OpenCV绘制标记函数drawMarker(),作用是在给定位置绘制一个标记,以OpenCV4.4.0为例:​​https://docs.opencv.org/4.4.0/d6/d6e/group__imgproc__draw.html#ga644c4a170......
  • OpenCV常用图像拼接方法(一) :直接拼接
      OpenCV常用图像拼接方法将分为四部分与大家分享,这里是第一种方法,欢迎关注后续。  OpenCV常用图像拼接方法(一):直接拼接,俗称硬拼,就是简单的将两张图片合并成一张......
  • OpenCV常用图像拼接方法(二) :基于模板匹配拼接
      OpenCV常用图像拼接方法将分为四部分与大家分享,这里是第二种方法,欢迎关注后续,本文源码与素材链接位于文章末尾。  OpenCV常用图像拼接方法(二):基于模板匹配的图......
  • 解决 VS Code C/C++ 代码补全间歇性失效的问题
    最近一个月我的vscode突然开始发癫,正常情况下,在编辑器中输入一段字符应该会弹出自动补全的框框:但是不知道从何时起,我的vscode弹出的框里会出现只有C++关键字,没有任何库函......
  • C++代码模板
    #include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<cmath>#include<map>#include<vector>#definelllonglong......