最近发现一个开源的OCR项目,PaddleOCR,支持通过离线部署Hub Serving服务来识别和本地程序包识别。

运行环境 :Windows 10

开发工具: Visual Studio 2022

NET版本:NET6

需要安装的程序包:PaddleOCR,版本:0.0.5 。以及PaddleOCRUtf8,版本:0.0.5

刚刚开始时候使用PaddleOCR来识别,发现英文和数字可以成功识别,准确率还很高。后面发现识别中文的时候,出现中文乱码(识别模型都是用的同一个)。后面用PaddleOCRUtf8包识别,发现可以解决中文乱码的问题,如下图:

识别图片:

识别的基础代码如下:

using System.Text;
using System.Text.Json;namespace JuCheap_Demo_OCR
{internal class PaddleOCRService{//基础路径private readonly static string _basePath = AppDomain.CurrentDomain.BaseDirectory;//识别图片的路径private readonly static string _imagePath = $"{_basePath}\\id_card.jpg";private readonly string _detPath = $"{_basePath}\\PaddleModel\\ch_ppocr_server_v2.0_det_infer";private readonly string _recPath = $"{_basePath}\\PaddleModel\\ch_ppocr_server_v2.0_rec_infer";private readonly string _clsPath = $"{_basePath}\\PaddleModel\\ch_ppocr_mobile_v2.0_cls_infer";private readonly string _charListFileListPath = $"{_basePath}\\PaddleModel\\chinese_zh_dict.txt";private readonly string _fileBase64 = Convert.ToBase64String(File.ReadAllBytes(_imagePath), Base64FormattingOptions.None);/// <summary>/// PaddleOCR包本地识别/// </summary>public async Task RecognizeByPaddleOCR(){WriteOneLine();//通过本地程序包识别(英文和数字可以。中文会出现乱码)PaddleOCR.PaddleOCR.Initialize(_detPath, _recPath, _clsPath, _charListFileListPath, 4, true);var result = await PaddleOCR.PaddleOCR.Recognize(_imagePath);foreach (var box in result.Boxes){Console.WriteLine($"PaddleOCR本地包识别结果={box.Text},信任度={box.Score}");}}/// <summary>/// PaddleOCRUtf8本地识别/// </summary>public async Task RecognizeByPaddleOCRUtf8(){WriteOneLine();//解决中文乱码问题PaddleOCRUtf8.PaddleOCR.Initialize(_detPath, _recPath, _clsPath, _charListFileListPath, 4, true);var resultUtf8 = await PaddleOCRUtf8.PaddleOCR.Recognize(_imagePath);foreach (var box in resultUtf8.Boxes){Console.WriteLine($"PaddleOCRUtf8本地包识别结果={box.Text},信任度={box.Score}");}}/// <summary>/// 使用python搭建的HubServing解析服务识别/// </summary>public async Task RecognizeByHubServing(){WriteOneLine();try{//通过hub ocr_system识别var client = new HttpClient();client.BaseAddress = new Uri("http://127.0.0.1:8866/");var postData = new{images = new string[] { _fileBase64 }};var content = new StringContent(JsonSerializer.Serialize(postData), Encoding.UTF8, "application/json");var response = await client.PostAsync("predict/ocr_system", content);var responseContent = await response.Content.ReadAsStringAsync();var responseResult = JsonSerializer.Deserialize<OCRResponseDTO>(responseContent);if (responseResult != null && responseResult.Data != null){foreach (var items in responseResult.Data){foreach (var box in items){Console.WriteLine($"HubServing识别结果={box.Text},信任度={box.Confidence}");}}}}catch (Exception ex){Console.WriteLine($"Hub Serving识别异常:{ex.Message}");}WriteOneLine();}private void WriteOneLine(){Console.WriteLine($"--------------------------------------------------------------------------------------------------");}}
}

识别结果:

源代码:

https://gitee.com/jucheap/demo

里面的JuCheap-Demo-OCR项目,直接运行,可以看到效果。

总结:本地包的识别,多少会有点问题,比如:【公民身份证】没有识别完整。推荐使用Hub Serving来搭建服务识别。准确率更高。

NET6使用PaddleOCR识别图片中的文字信息相关推荐

  1. python怎么识别图片里面的文字并合成语音_几行代码搞定识别图片中的文字信息,同时转换成语音...

    image前几天想把一篇不错的文章保存下来,无奈是图片的,于是想利用python把图片中的文字识别出来 实现的方式还是挺多的,这里介绍下百度的AI开放平台,毕竟大公司,感觉识别的精度会高点,同时相信他 ...

  2. C# pdf 转图片 and 创建百度AI文字识别应用(识别图片中的文字和数字)

    /// <summary>/// pdf 转图片/// </summary>public static void Turnpicture(){string str = &quo ...

  3. python图片识别是否p过_python 基于百度aip库 实现识别图片中的文字

    最终效果 1. 实现环境 win10系统 + pycharm社区版 + anaconda3 2. 实现步骤 step 1. 安装baidu-aip库 step 2. 进入百度ai官网 http://a ...

  4. 怎样识别图片中的文字?手机电脑都可以的

    普通人过普通的生活就好,简单而平淡.而平淡的生活常常可以看到各种图片文字,毕竟遇到要记录重要的信息拍一拍就可以解决问题了,很简单的.通常情况下,我们都会再次检查相册中的关键信息,甚至有时我们还要整理出 ...

  5. 识别图片文字怎么弄?我来教大家怎么识别图片中的文字

    有时,我们需要从图片中提取文本以进行编辑或搜索.虽然手动转录是一种选项,但这是费时费力的工作,而且容易出错.为了解决这个问题,出现了各种各样的技术和工具,可以帮助我们自动识别图片中的文字.在本文中,我 ...

  6. pytesseract提取识别图片中的文字

    目录 1.获取tesseract版本号 2.获取语言包列表 3.识别图片中的文字 4.获取图片中文字的详细信息 5.识别图片中的文字和位置 6.识别osd信息 7.识别并生成xml文件 避坑指南: p ...

  7. 使用百度云识别图片中的文字(二):获取图片中的文字

    使用百度云识别图片中的文字(二):获取图片中的文字 上一篇文章中提到怎样获取access_token.此篇文章就是通过access_token来识别图片中的文字. 先来看看:官方的介绍吧: 本文档主要 ...

  8. ai图像识别python的项目_Python3调用百度AI识别图片中的文字功能示例【测试可用】...

    本文实例讲述了Python3调用百度AI识别图片中的文字功能.分享给大家供大家参考,具体如下: 首先pip install命令安装baidu-aip模块,如下图所示(这里使用pip3 install ...

  9. 不懂怎么识别图片中的文字?在线教你识别文字方法

    我们在学习和工作中经常会遇到许多电子版.纸质版的资料和文件,但当我们需要复制这些资料的文本内容时,如果不借助识别软件,是很难快速地将它们复制粘贴出来.今天,我就来告诉大家几个简单的方法,教大家怎么识别 ...

最新文章

  1. Flask实战2问答平台-发布问答界面完成
  2. uva5984(简单计算几何)
  3. ubuntu linux安装控制面板,在Ubuntu 20.04上安装Ajenti控制面板的方法
  4. 计算机图形学真实感显示代码,计算机图形学实验 - 真实感图形场景的生成
  5. https://enhancer.io
  6. STM32那点事(4)_DMA(下)
  7. 对于计算机维护的,关于计算机的硬件维护
  8. 一:ActiveMQ知识整理
  9. ndk 编译 ffmpeg
  10. python多继承顺序及分配,python多继承的查找顺序是什么?
  11. 【转】阿里去IOE运动
  12. 浅谈C语言字符串结束符'\0'
  13. office+visio2016版本一同安装说明
  14. (2)香橙派+apache2与php+天猫精灵=自建平台语音支持--香橙派操作系统安装
  15. 二极管的工作原理,什么是二极管?
  16. python——金融商品多种均线指标综合运用模拟实现(MACD模型)
  17. windows下 apache配置rewrite错误解决
  18. 一部《再忆王家沱》讲述百年重庆历史,堪称中国版《百年孤独》
  19. 别把项目成功当目标!——项目经理的误区(1)(转)
  20. AFN的简单介绍及使用

热门文章

  1. 初级测试小宝典 测试流程,不能复现bug,开发不认为是bug级2020测试点的热点提问的回答
  2. missing Change-Id in message footer
  3. 红米5双清_红米手机双清方法
  4. python 成长笔记 序章
  5. Java24小时制和12小时制转换
  6. 移动设备IP地址的获取
  7. 转黄老师的“告别信狮”书
  8. Java基础-程序基础
  9. 事务的隔离级别(附Redis的简述)
  10. 线性空间,度量空间,赋范空间,线性赋范空间,内积空间,巴拿赫空间以及希尔伯特空间、拓扑空间