微信公众号“dotNET跨平台 ”上看到一篇介绍PaddleOCRSharp的文章,通过调用该模块可以从图片中识别文字。文章在百度中也可以搜到,地址见参考文献1.
PaddleOCRSharp是基于PaddleOCR的C++代码修改并封装的.NET工具类库,支持文本识别、文本检测、基于文本检测结果的统计分析的表格识别功能。
在百度中搜索PaddleOCRSharp,除了该模块外,还能看到另外一个模块PaddleSharp(参考文献2),这个也是用.net 封装的PaddleOCR工具类库,后者在GitHub中的得到的☆还要更多一些。从Visual Studio2019的NuGet管理器中可以搜到PaddleOCRSharp,但是搜索不到PaddleSharp,后者需通过Sdcb.PaddleOCR关键字搜索相应的NuGet包。
本文主要学习并仿照参考文献1学习PaddleOCRSharp的基本用法,后续文章中再测试PaddleSharp。
在Visual Studio中通过NuGet管理器添加PaddleOCRSharp包后,会在项目下增加多个文件,如下图所示。
设计下面的界面进行功能测试。
测试代码使用的参考文献1中的代码,PaddleOCRSharp的调用也比较方便,如下图所示(OCRModelConfig和OCRParameter 对应的应该是跟文字识别相关的参数,这里都是用的null和默认值):
OCRModelConfig config = null;
OCRParameter oCRParameter = new OCRParameter();
OCRResult ocrResult = new OCRResult();
using (PaddleOCREngine engine = new PaddleOCREngine(config, oCRParameter))
{
ocrResult = engine.DetectText(picSrcImage.Image);
if (ocrResult != null)
{
txtOcrResult.Text = ocrResult.Text;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
在网上找了几张图片进行测试(1张参考文献1中的身份证图片,3张带车牌的图片),其中车牌中文字的识别效果一般,身份证和有很多字的带车牌的图片大部分文字都能识别出来。效果图如下所示。识别不出来的内容不清楚是不是跟OCRModelConfig和OCRParameter的设置有关。
参考文献:
[1]http://news.sohu.com/a/524033869_121124363
[2]https://github.com/sdcb/PaddleSharp
[3]https://github.com/raoyutian/PaddleOCRSharp
[4]https://github.com/paddlepaddle/PaddleOCR
测试图片来源
[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
————————————————
版权声明:本文为CSDN博主「gc_2299」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gc_2299/article/details/124110569