PaddleOCRSharp 4.4.0.2

dotnet add package PaddleOCRSharp --version 4.4.0.2                
NuGet\Install-Package PaddleOCRSharp -Version 4.4.0.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PaddleOCRSharp" Version="4.4.0.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PaddleOCRSharp --version 4.4.0.2                
#r "nuget: PaddleOCRSharp, 4.4.0.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PaddleOCRSharp as a Cake Addin
#addin nuget:?package=PaddleOCRSharp&version=4.4.0.2

// Install PaddleOCRSharp as a Cake Tool
#tool nuget:?package=PaddleOCRSharp&version=4.4.0.2                

简体中文 | English |更新记录

如果项目对你有用或者喜欢,那就点个赞★ 。谢谢!

介绍


PaddleOCRSharp 是一个基于百度飞桨PaddleOCR的开源代码修改并优化的.NET版本OCR可离线使用类库。项目核心组件PaddleOCR.dll,由C++编写,根据百度飞桨PaddleOCR的C++代码修改并优化而成。目前已经支持C++、.NET、Python、Golang、Rust等众多开发语言的直接API接口调用。项目包含文本识别、文本检测、表格识别功能。本项目针对小图识别不准的情况下做了优化,同时做了其他优化,比飞桨原代码识别准确率有所提高,速度更快。包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持中英文、纯英文以及多种语言文本检测识别。

PaddleOCRSharp封装极其简化,实际调用仅几行代码,极大的方便了中下游开发者的使用和降低了PaddleOCR的使用入门级别,同时提供不同的.NET框架使用,方便各个行业应用开发与部署。Nuget包即装即用,可以离线部署,不需要网络就可以识别的高精度中英文OCR。

本项目支持官方所有公开的通用OCR模型,PPOCRV2、PPOCRV3、PPOCRV4。 如果使用v2模型,请设置OCR识别参数OCRParameter对象的属性rec_img_h=32 ,最新版本默认使用V4模型,默认rec_img_h=48

本项目支持在x86的CPU上使用,CPU指令集需要包含avx指令集。

★windows系统支持:win7SP1、win10、win11、winserver2012R2、winserver2016、winserver2019、winserver2022等

★linux系统支持:统信UOS、麒麟、ubuntu等。

本项目目前支持以下.NET框架:

net35;net40;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;net481;
netstandard2.0;netcoreapp3.1;
net5.0;net6.0;net7.0;net8.0

特点

★ $\color{#0000FF}{高度集成}$:PaddleOCRSharp将百度飞桨PaddleOCR的核心功能完美集成到.NET平台,让开发者无需关心底层实现,只需调用相应接口即可实现OCR功能。

★ $\color{#0000FF}{性能卓越}$:得益于百度飞桨PaddleOCR的高效算法和C++代码的优化,PaddleOCRSharp在保持高度集成的同时,也保证了卓越的性能表现。

★ $\color{#0000FF}{易于使用}$:PaddleOCRSharp提供了丰富的API接口和详细的文档说明,让开发者能够轻松上手,快速实现OCR功能。

★ $\color{#0000FF}{扩展性强}$:PaddleOCRSharp支持自定义模型加载和训练,开发者可以根据自己的需求进行模型扩展和优化。

★ $\color{#FF0000}{离线免费}$:PaddleOCRSharp支持离线绿色部署,无其他依赖需要安装,关键普通版还免费,满足了众多开发者的福音。

应用场景

PaddleOCRSharp适用于各种需要OCR技术的.NET开发场景,如文档数字化处理、自动识别表单数据、车牌识别等。无论是企业级应用还是个人开发者,PaddleOCRSharp都能提供强大的OCR支持。

如何使用

本项目提供了两个SDK,一个是C++版本,一个是.net版本,.net版本是对C++版本的二次封装,其他语言开发亦是调用C++版本。同时也提供了Go、Python、C++的调用示例代码

1.文件夹结构
PaddleOCRSharp      //该文件夹包含.NET对PaddleOCR封装类库项目
Demo                //该文件夹包含OCR示例Demo文件夹
|--Cpp              //C++调用示例项目
|--CSharp           //.NET调用示例项目
|--python           //python调用示例项目
|--Go               ///Golang调用示例项目

2. .NET版编译

.NET版编译

使用与部署


1. C++使用PaddleOCR
2. .NET使用PaddleOCRSharp
3. python使用PaddleOCR
4. Go使用PaddleOCR
5. Rust使用PaddleOCR

OCR模型


OCR识别模型库支持官方所有的模型,也支持自己训练的模型。完全按照飞桨OCR接口搭桥。 本项目部署自带的一种轻量版8.6M模型库、服务器版模型库(更准确,需要自行下载),可以自行更改模型库适用实际需求。

模型名称 模型大小 下载地址 备注
ch_PP-OCRv2 10M 中英文轻量v2
en_PP-OCRv2 4M 英文数字v2
ch_PP-OCRv3 12M 中英文轻量v3
en_PP-OCRv3 10M 英文数字v3
ch_PP-OCRv4 14M 中英文轻量v4
en_PP-OCRv4 12M 英文数字v4

更多PaddleOCR模型可以去飞桨官方下载

如果需要修改成服务器版模型库,参考代码如下:(假设服务器版模型库在运行目录的文件夹inferenceserver下)


 //自带轻量版中英文模型PP-OCRv4
  OCRModelConfig config = null;
 OCRParameter oCRParameter = new OCRParameter();

 //服务器中英文模型v2
 OCRModelConfig config = new OCRModelConfig();
 string modelPathroot = "你的模型绝对路径文件夹";
 config.det_infer = modelPathroot + @"\ch_ppocr_server_v2.0_det_infer";
 config.cls_infer = modelPathroot + @"\ch_ppocr_mobile_v2.0_cls_infer";
 config.rec_infer = modelPathroot + @"\ch_ppocr_server_v2.0_rec_infer";
 config.keys = modelPathroot + @"\ppocr_keys.txt";

 //英文和数字模型v3
 OCRModelConfig config = new OCRModelConfig();
string modelPathroot = "你的模型绝对路径文件夹";
config.det_infer = modelPathroot + @"\en_PP-OCRv3_det_infer";
config.cls_infer = modelPathroot + @"\ch_ppocr_mobile_v2.0_cls_infer";
config.rec_infer = modelPathroot + @"\en_PP-OCRv3_rec_infer";
config.keys = modelPathroot + @"\en_dict.txt";

  //中英文模型V4
  config = new OCRModelConfig();
   string modelPathroot = "你的模型绝对路径文件夹";
  config.det_infer = modelPathroot + @"\ch_PP-OCRv4_det_infer";
  config.cls_infer = modelPathroot + @"\ch_ppocr_mobile_v2.0_cls_infer";
  config.rec_infer = modelPathroot + @"\ch_PP-OCRv4_rec_infer";
  config.keys = modelPathroot + @"\ppocr_keys.txt";

  //服务器中英文模型V4
   config = new OCRModelConfig();
   string modelPathroot = "你的模型绝对路径文件夹";
   config.det_infer = modelPathroot + @"\ch_PP-OCRv4_det_server_infer";
   config.cls_infer = modelPathroot + @"\ch_ppocr_mobile_v2.0_cls_infer";
   config.rec_infer = modelPathroot + @"\ch_PP-OCRv4_rec_server_infer";
   config.keys = modelPathroot + @"\ppocr_keys.txt";

   engine = new PaddleOCREngine(config, oCRParameter);

常见问题与解决方案

常见问题与解决方案

技术交流方式


QQ技术交流群:318860399
微信公众号:明月心技术学堂。

输入图片说明 输入图片说明

个人博客地址: https://www.cnblogs.com/raoyutian/

定制开发QQ:277784829

致谢

  • 感谢ZHao提供Rust版本。

如果您在工作中受益于该项目,请考虑下支持我的工作。

输入图片说明

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net35 is compatible.  net40 is compatible.  net403 was computed.  net45 is compatible.  net451 was computed.  net452 was computed.  net46 was computed.  net461 is compatible.  net462 was computed.  net463 was computed.  net47 is compatible.  net471 was computed.  net472 was computed.  net48 is compatible.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (8)

Showing the top 5 NuGet packages that depend on PaddleOCRSharp:

Package Downloads
Starxcjy.DataAccess.CodeReader

图像处理库

Docimax.OCR.Core

Package Description

RG3.PF.MklPaddleOCR

1、【RG3.PF.MklPaddleOCR】(数学计算函数和方法等) 5、使用请到github获取 RG3.PF.WebApp.Host 6、6.0.0.77开始,nodeserice迁移到RG3.PF.PinYinScriptEngineCliWrap 7、https://github.com/MKL-NET/MKL.NET 8、https://gitee.com/raoyutian/paddle-ocrsharp 9、https://gitee.com/paddlepaddle/PaddleOCR

PaddleOcrCutPic

兼容4.7

MHCV

对常用CV(计算机视觉)库的进一步封装,简化操作,集成常用方法。 目前包含:PaddleOCRSharp

GitHub repositories (4)

Showing the top 4 popular GitHub repositories that depend on PaddleOCRSharp:

Repository Stars
ZGGSONG/STranslate
A ready-to-use, ready-to-go translation ocr tool developed by WPF/WPF 开发的一款即开即用、即用即走的翻译、OCR工具
raoyutian/PaddleOCRSharp
PaddleOCRSharp是一个基于百度飞桨PaddleOCR的C++代码修改并封装的.NET的OCR工具类库。包含文本识别、文本检测、表格识别功能。本项目针对小图识别不准的情况下做了优化,比飞桨原代码识别准确率有所提高。 包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持多种文本检测。
xksoft/OcrHelper
桌面图像实时转文字工具
laosanyuan/HuoHuan
互联网微信群聊二维码获取工具
Version Downloads Last updated
4.4.0.2 1,922 10/30/2024
4.4.0.1 4,977 8/14/2024
4.3.0 7,730 5/23/2024
4.2.0 4,570 3/26/2024
4.1.0 5,978 1/10/2024
4.0.2 10,782 11/2/2023
3.1.1 3,577 9/15/2023
3.1.0 13,688 5/17/2023
3.0.0 7,234 4/3/2023