LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#测试调用PaddleSharp模块识别图片文字

admin
2023年9月4日 12:36 本文热度 1040

  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


该文章在 2023/9/4 12:41:21 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved