PaddleSharp是PaddleInference C API的C#封装版本,支持在 Windows(x64)、NVIDIA GPU和Linux(Ubuntu-20.04 x64)中使用。PaddleShare主要包括PaddleOCR 和PaddleDetection,其中PaddleOCR 支持14种语言的文字,支持识别多种旋转角度的文字,PaddleDetection支持PPYolo检测模型和PicoDet模型(关于PaddleSharp的详细介绍见参考文献1)。
  可以通过NuGet管理器下载PaddleSharp相关的包,最开始以为包名是以PaddleSharp开头,结果在NuGet管理器中什么都搜不到,在GitHub的PaddleSharp主页中,列出了PaddleSharp相关的包清单(如下图所示),其都以Sdcb开头,这些包在NuGet管理器中都可以搜索安装。

  本文主要测试用C#调用PaddleSharp的PaddleOCR进行图片文字识别,参考文献2的PaddleOCR使用说明中列出了要安装的包清单,在VS中安装以下包(最初不想装这么多,就只安装了Sdcb.PaddleOCR,虽然程序可以编译通过,也可以运行,但是识别图片文字过程中会一直提示缺少下拉包清单中的某些,最终要想正常识别图片文字,还是需要把下面这些包都装全)。

Sdcb.PaddleInference
Sdcb.PaddleInference.runtime.win64.mkl
Sdcb.PaddleOCR
Sdcb.PaddleOCR.KnownModels
OpenCvSharp4
OpenCvSharp4.runtime.win

  参照参考文献2中的示例代码进行功能测试(详细代码请到文献中查看,这里就不贴出来了),其代码顺序主要是加载模型->加载图片->识别文字->显示结果。这里主要说一下跟使用PaddleOCRSharp的不同点,由于都是简单测试,说的都是比较简单的。
  PaddleOCRSharp和PaddleSharp都是其它语言编写的ocr功能的C#封装版本,相比之下PaddleOCRSharp封装的更简单一些。通过NuGet安装PaddleOCRSharp,会把依赖文件自动下载并关联到项目上,而PaddleSharp需要手动安装所有需要的包。
  PaddleOCRSharp执行所需的模型在安装包时同步下载并关联到项目上,而PaddleSharp,从测试代码来看,其默认从C:\Users\HP\AppData\Roaming\paddleocr-models\ppocr-v2文件夹中读取所需的模型,如果不存在,则实时从网上下载的,OCRModel对象中记录了各类模型的下载路径(实际执行过程中,由于下载速度一般,直接用迅雷手动下载并复制到对应文件夹中)。

OCRModel model = KnownOCRModel.PPOcrV2;
await model.EnsureAll();


  还有就是识别图片文字时,PaddleOCRSharp封装了一下,只需在程序中指定图片路径、图片字节数组或Image对象即可,而PaddleSharp识别图片的函数,PaddleOcrAll.Run,需要将图片转成指定的Mat对象。
  PaddleSharp识别的结果包括两类,PaddleOcrResult.Text中将识别出的所有文字合并为一个字符串,PaddleOcrResult.Regions中保存识别出的每个文本块。
  文本块类型为PaddleOcrResultRegion,其中Rect(类型为RotatedRect)保存包含文本的矩形位置信息(该矩形可能是非水平或垂直的)。RotatedRect类的定义如下图所示,其中BoundingRect函数返回包含旋转矩形的矩形。以下面的图片为例PaddleOcrResultRegion.Rect为红色矩形,而BoundingRect()返回的是紫色矩形。同时RotatedRect类的Points函数返回旋转矩形的四个角的点位置信息,可以通过绘制线条方式绘制包含文本的旋转矩形,这样简单一些。


  最后列出测试图片的识别效果(使用参考文献中的示例代码,文本块基本都圈出来了,但其中的内容有部分没有正确识别)。


参考文献
[1]https://github.com/sdcb/PaddleSharp
[2]https://github.com/sdcb/PaddleSharp/blob/master/docs/ocr.md

测试图片来源
[1]https://baijiahao.baidu.com/s?id=1676249081188736513&wfr=spider&for=pc
[2]https://www.xjauto.net/html/cheping/202105/69508.html
[3]https://item.jd.com/10041422363991.html?openbpab=dontwritecookie&uabt=92_16_21&cu=true&utm_source=image.baidu.com&utm_medium=tuiguang&utm_campaign=t_1003608409_&utm_term=1a1dd3a2f0b24eaab2325b16b12d3d8d
[4]http://news.sohu.com/a/524033869_121124363

C#测试调用PaddleSharp模块识别图片文字相关推荐

  1. C#测试调用PaddleOCRSharp模块识别图片文字

      微信公众号"dotNET跨平台 "上看到一篇介绍PaddleOCRSharp的文章,通过调用该模块可以从图片中识别文字.文章在百度中也可以搜到,地址见参考文献1.   Padd ...

  2. C#-调用OCR组件识别图片文字

    C#调用OCR组件识别图片文字 图片识别的技术到几天已经很成熟了,只是相关的资料很少,为了方便在此汇总一下(C#实现),方便需要的朋友查阅,也给自己做个记号. 图片识别的用途:很多人用它去破解网站的验 ...

  3. python调用百度接口实现ocr识别_Python调用百度OCR实现图片文字识别的示例代码

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '* ...

  4. python 百度ocr安装_Python调用百度OCR实现图片文字识别的示例代码

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '* ...

  5. python学习使用easyocr识别图片文字

      测试了C#中调用PaddleOCRSharp和PaddleSharp进行图片文字识别,由于正在学习python,也就同时学习使用python进行图片文字识别的方法.   百度关键词"py ...

  6. 批量识别图片文字并存为Excel,几行Python轻松实现!

    今天给大家分享批量识别图片的方法. 一.背景 也许你还记得,前不久复旦大学一博士生写了130行Python代码,批量识别核酸截图内容的故事.当时还被人民日报公众号报道出来,夸赞用所学贡献青春力量! 其 ...

  7. Python自动化办公:批量识别图片文字并存为Excel

    来源:菜J学Python 一.背景 也许你还记得,前不久复旦大学一博士生写了130行Python代码,批量识别核酸截图内容的故事.当时还被人民日报公众号报道出来,夸赞用所学贡献青春力量! 其实,批量文 ...

  8. python 图片识别_python识别图片文字

    滑稽研究所 python识别图片文字 哈喽,大家好呀,我是滑稽君.大家在写论文时可能经常碰到无法复制文字的文章.明明找到了需要的内容却无法直接复制使用,这让我们十分苦恼.那么本期滑稽君就告诉大家如何使 ...

  9. java 获取百度云盘图片_java 利用百度云识别图片文字

    一.百度云使用步骤 1.进入https://console.bce.baidu.com/#/index/overview 登录百度云账号.百度所有账号都是通用的,可以直接利用百度的其他账号(百度网盘. ...

最新文章

  1. 从 Gzip 压缩 SVG 说起 — 论如何减小资源文件的大小
  2. Python语言学习之lambda:lambda函数的简介、使用方法、案例大全之详细攻略
  3. SAP Intelligent Robotic Process Automation权限控制
  4. Supporting Python 3(支持python3)——为Python 3做准备
  5. 我是一个来自泰兴的程序员,我喜欢C++
  6. 多路平衡归并和败者树
  7. 《GDAL源码剖析与开发指南》导读
  8. 【水果识别】基于matlab GUI阈值分类器草莓识别【含Matlab源码 653期】
  9. epoll原理详解及epoll反应堆模型
  10. php5.2 zend解密,狐灵科技分享几款zend解密工具,可以解密zend5.2
  11. Android-更改字体(LED液晶数字字体)
  12. webrtc中的码率控制
  13. Windows权限维持1:账号隐藏
  14. 微信邮箱是什么?微信如何绑定邮箱收发邮件?
  15. 七成知识分子走在过劳死边缘
  16. 查题公众号搭建详细教程,提供永久免费接口
  17. 利用photoprism搭建私有云相册
  18. xp下彻底删除oracle
  19. Http跨站点请求伪造解决方案
  20. 2019年11月中国大陆编程语言排行榜

热门文章

  1. Ransomware的斗士——云备份系统
  2. 单片机红绿灯加强版(kile仿真程序和protues硬件仿真)
  3. 10019---CSS Grouping Selectors(分组和嵌套)
  4. iOS小技巧21-MacOS 苹果系统下Outlook打不开,显示“您需要最新版本的Outlook才能使用此数据库”
  5. html5教程源码使用方法,HTML初级教程(一)所有的代码和操作方法
  6. C# *未能找到类型“ * ”,请确保已引用包含此类型的程序集。如果此类型为开发项目的一部分,请确保已使用针对当前平台或任意 CPU 的设置成功生成该项目
  7. Linux——万字总结用户与组相关知识!建议收藏!
  8. azkaban上传zip报错:Error Chunking during uploading files to db
  9. ubuntu激活pycharm
  10. 王欣复出后的第一款产品