C#实现图片文字识别

这几年的AI的发展,使得文字识别难度大大降低、精度大大的提高。百度飞浆就是一个非常好的AI框架,而且是开源的。

我们利用百度飞浆就能快速简单的实现文字识别功能,几行代码就可以集成。

其中百度飞浆的PaddleOCR,就是专门针对文本识别的开发套件,包含的功能有:文本失败、文本检测、表格识别,支持中英文数字组合的识别、竖排、长文本识别,而且还针对小图做了优化,大大提升准确率。

下面我们一起来看看,如何使用百度飞浆实现文字识别:

一、新建项目

新建一个控制台项目。

二、安装依赖包

通过NuGet,安装依赖包:PaddleOCRSharp。

PaddleOCRSharp是Github的开源项目,是基于百度飞浆C++代码封装的.Net类库,其中支持PaddleOCR版本是**release2.5。**如果大家需要最新版本,或者其他模型,也可以自行封装。

项目地址:https://github.com/raoyutian/PaddleOCRSharp

安装依赖后,我们就可以看到很多dll库。

三、编写识别代码

识别图片的文字,并打印,代码如下:

复制代码
using PaddleOCRSharp;

PaddleOCREngine engine;

//中英文模型V3模型
OCRModelConfig config = null;

//OCR参数
OCRParameter oCRParameter = new OCRParameter();
oCRParameter.cpu_math_library_num_threads = 6;//预测并发线程数
oCRParameter.enable_mkldnn = true;//是否使用mkldnn模型
oCRParameter.cls = false; //是否执行文字方向分类
oCRParameter.use_angle_cls = false;//是否开启方向检测
oCRParameter.det_db_score_mode = true;//是否使用多段线,即文字区域是用多段线还是用矩形,
oCRParameter.det_db_unclip_ratio = 1.6f;
oCRParameter.max_side_len = 2000;

//初始化OCR引擎
engine = new PaddleOCREngine(config, oCRParameter);


var imagebyte = File.ReadAllBytes("1.png");
OCRResult ocrResult = engine.DetectText(imagebyte);
Console.WriteLine(ocrResult.Text);

四、执行效果如下

识别速度、效果还是非常好的。

  • End -

推荐阅读

推荐一个支持低代码开发的OA开源系统

一个基于.Net Core+Vue+Element Ui开发的OA系统

一个基于NetCore模块化、多租户CMS系统

一个基于EntityFrameworkCore+Lucene实现的全文搜索引擎库

盘点6个.NetCore+Vue前后端分离的开源项目

相关推荐
nnerddboy13 小时前
Rust教程04:引用、借用与切片
开发语言·后端·rust
jerryinwuhan13 小时前
《Python数据预处理》第四章
开发语言·python
长江&后浪13 小时前
防火墙的描述
开发语言·网络·php
观无13 小时前
若依EasyExcel实现单元格合并
开发语言·前端·javascript
雨晨源码(同名B站)14 小时前
基于Python的网易云音乐评论数据情感化分析系统 音乐爬虫信息可视化 |SnowNLP评论情感分析
开发语言·hadoop·爬虫·python·信息可视化·毕业设计
我不是疯子是傻子14 小时前
串口通信数据帧粘包拆包再进化:基于 Qt 的滑动窗口与 CRC 校验实战
开发语言·qt
程序员老陆14 小时前
Qt中实现窗口真全屏(覆盖Windows任务栏)
开发语言·windows·qt
霸道流氓气质14 小时前
Java中信号量(Semaphore):从本地到分布式
java·开发语言·分布式
Patrick在香港15 小时前
Python正则表达式实战:解析和验证香港身份证、车牌、电话格式
开发语言·python·正则表达式
路溪非溪15 小时前
Python语言的执行流程总结
开发语言·python