跳至页脚内容
与其他组件比较

IronOCR 和 Nanonets OCR 之间的比较

光学字符识别(OCR)提供了将图像文件转换为机器编码文本的能力。 考虑到扫描文档是以图像文件的形式保存的,而这些图像文件中的数据无法使用普通文本编辑器甚至文字处理应用程序来搜索、编辑或以文本格式保存,这是非常有用的。 OCR 处理帮助将这些图像转换为机器可读文本,以便用户进一步处理。

在这个现代时代,通过互联网共享的文档通常是数字格式,主要是 PDF 或图像格式。 有许多在线资源可以将图像转换为文本。 然而,大多数企业需要在其软件应用程序中具备此功能。 考虑到这一点,有许多库提供 OCR 处理技术以嵌入到软件应用程序中。

在本文中,我们将讨论两个最受欢迎的 C# OCR 库。 这些是:

  • IronOCR
  • Nanonets OCR API

IronOCR - C# 库

IronOCR for .NET 是一个 C# 库,使用户能够扫描、搜索和读取图像和 PDF。 它以图像或 PDF 文件为输入,并使用最新的 Tesseract 5 定制 .NET OCR 引擎输出文本、结构化数据或可搜索的 PDF 文档。 Tesseract 提供 125 多种语言,而 IronOCR 在 .NET Core、Standard(从 2.0 到 7)中提供跨平台支持。

IronOCR 是一个用户友好的 API,允许 C# 开发人员使用 IronTesseract 类自动将图像转换为文本。 该库优先考虑速度、准确性和易用性。

IronOCR 的另一个强大功能是能够扫描条形码和二维码,并从所有图像文件中读取其文本。 IronOCR 的其他重要功能列举如下。

功能

  • 国际语言: 支持 125 多种语言和定制语言。
  • 文本和条形码读取: 可以同时从多种语言中读取文本和数字。
  • 专业文档: 从收据、支票、发票等专业文档中读取文本。
  • 从多种格式读取: 可以从图像(PNG、JPG、GIF、TIFF、BMP)、System.Drawing 对象、流、PDF 文档等中读取。
  • 预处理功能: 包括预处理功能,如过滤器向导、图像校正、方向校正、颜色校正。
  • 简单数据输出: 可输出为 .NET 文本字符串、条形码、QR 和图像格式。

现在,让我们来看看 Nanonets OCR API。

Nanonets OCR API

Nanonets OCR API 是一个 REST API,提供实时数据提取,针对您的业务需求进行自动化工作流程。 OCR API 由 AI 驱动,能够在几秒钟内安全地捕获、分类和提取非结构化文档中的数据。 使用 Nanonets,您可以自动化手动数据输入,从而减少所需的人工工作量。

Nanonets 使用机器学习理解文档,即使那些不符合标准模板的也是如此。 您可以上传任何非结构化文档,并根据不同字段捕获所需的信息。 与传统 OCR 不同,Nanonets OCR 模型可以通过训练获得更好的结果。 随着您的业务发展,Nanonets 智能文档处理 OCR 模型也会随着每个新文档一起增长和学习,提供快速准确的结果。

此外,Nanonets 提供一个 Python 包,使其能够轻松集成到 Python 应用程序中并进行数据捕获,无需 API 请求。 其他功能包括:

  • GDPR 合规
  • 自动数据捕获
  • 提取数据的验证
  • 模型训练和再训练功能
  • 快速 API 响应时间
  • 提供多种语言的本地部署
  • 持续的 AI 学习模型
  • 无需模板设置
  • 提供多种导出选项

文章的其余部分如下:

  1. 创建 Visual Studio 项目
  2. 安装AWS OCR Textract
  3. 安装 Nanonets OCR API
  4. 图像到文本
  5. 条形码和二维码转文本
  6. PDF 到文本
  7. 结论
  8. 结论

1. 创建 Visual Studio 项目

在本教程中,我们将使用最新版本的 Visual Studio 2022。如果您尚未下载和安装,可以从 Visual Studio 网站下载。

现在,我们需要创建一个控制台项目以开始使用两个库。 按照以下步骤创建一个项目:

  • 打开 Visual Studio 2022。
  • 点击创建新项目。

IronOCR 和 Nanonets OCR 比较:图 1

  • 从给定选项中选择 C# 控制台应用程序。

IronOCR 和 Nanonets OCR 比较:图 2

  • 配置您的新项目的名称和位置。 例如,将其命名为 "OCRProject"。
  • 点击下一步。

IronOCR 和 Nanonets OCR 比较:图 3

  • 在附加信息下选择 .NET 6.0 框架,因为它是最稳定的版本。

IronOCR 和 Nanonets OCR 比较:图 4

  • 现在点击创建,项目将被创建在您指定的位置。

接下来,我们将在项目中安装库进行比较。

  1. 使用Visual Studio NuGet包管理器。

有多种方法可以安装 IronOCR 库。 让我们逐一查看。

2.1. 使用 Visual Studio NuGet 包管理器

NuGet 是一个用于在您的项目中下载和安装依赖项的包管理器。 其包包含编译代码和(DLL)和清单文件。使用以下方法访问:

  • 点击工具标签。
  • 扩展 NuGet 包管理器选项。
  • 点击为解决方案管理 NuGet 包。

IronOCR 和 Nanonets OCR 比较:图 5

或者:

  • 右键单击解决方案资源管理器。
  • 单击"管理 NuGet 程序包"。

IronOCR 和 Nanonets OCR 比较:图 6

现在,NuGet 包管理器窗口将打开。 浏览 IronOCR 并点击安装。

IronOCR 和 Nanonets OCR 比较:图 7

2.2. 从 NuGet 网站下载

IronOCR 也可以直接从 NuGet 官方网站下载。请按照以下步骤操作:

  1. 访问 NuGet 网站。
  2. 点击页面右侧的"下载包"选项。
  3. 打开下载的包以开始安装。
  4. 最后,重新加载解决方案,完成。

2.3. 使用 IronOCR 网页下载

访问 Iron Software 网站,导航到 IronOCR for .NET 网页。 向下滚动并点击下载 DLL 或下载 Windows 安装程序。

IronOCR 和 Nanonets OCR 比较:图 8

将下载一个 zip 文件。 提取项目文件或运行 Windows 安装程序。 按照以下步骤将其添加到您的项目中。

  1. 在 Visual Studio 信息资源管理器中右键单击项目的依赖项。
  2. 选择添加项目引用选项。
  3. 浏览到下载的 DLL 文件位置。
  4. 最后,点击确定以添加项目引用。

2.4. 用 Visual Studio 中的命令提示符

  1. 在 Visual Studio 中导航到工具选项卡。
  2. 扩展 NuGet 包管理器选项。
  3. 选择包管理器控制台并输入以下命令:
Install-Package IronOcr

这将自动下载并安装 IronOCR 到您的项目中。

现在,我们已经准备好在我们的项目中使用 IronOCR。

2.5. 添加必要的 IronOCR 命名空间

只需要一个命名空间,需要添加到我们需要访问 IronOCR 功能的源代码文件顶部。

using IronOcr;
using IronOcr;
Imports IronOcr
$vbLabelText   $csharpLabel

现在,让我们安装 Nanonets OCR API。

3. 安装 Nanonets OCR

Nanonets 可以通过多种方式用于捕获数据。 它提供可用于即时数据提取的在线 OCR 设施,从而减少周转时间。 作为一个 REST API,它可以集成到多种编程语言中。 在这里,我们将演示如何将其集成到 C# 编程语言中。

要在 C# 中使用 Nanonets OCR API 自动捕获数据,您需要以下内容:

  1. 注册 Nanonets - 您可以通过 Gmail 账号或在 Nanonets 注册的电子邮件注册免费试用。
  2. 创建 OCR 模型 - 这将生成一个模型 ID,在稍后进行 API 调用时会使用。
  3. 获取免费 API 密钥 - 移至账户信息选项卡并点击API 密钥。 在这里,您可以添加新密钥或使用现有密钥。

3.1. 添加 RestSharp 命名空间

RestSharp 是一个简单的 Rest 和 HTTP 客户端库,适用于 .NET。 它用于发送和接收 API 请求,并处理响应。 该库是执行 Nanonets API 代码所需的,因为它也是一个 REST API。

要安装 RestSharp,请打开您的解决方案的 NuGet 包管理器,浏览 RestSharp 并安装它。 或者,您可以打开包管理器控制台并键入以下命令:

Install-Package RestSharp

现在,一切设置完毕,准备使用。

4. 图片转文字

从图像读取数据可能是一个相当繁琐的任务。 图像分辨率和质量在提取内容时起着重要作用。 IronOCR 和 Nanonets 都提供光学字符识别功能,以从图像中提取文本。

4.1. 使用IronOCR

IronOCR 的强大 IronTesseract 类让开发人员可以非常轻松地 读取图像文件的内容。 我们将使用以下代码从 PNG 图像文件中读取文本:

var Ocr = new IronTesseract();
using (var Input = new OcrInput()){
  Input.AddImage("test-files/employmentapp.png");
  var Result = Ocr.Read(Input);
  Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
using (var Input = new OcrInput()){
  Input.AddImage("test-files/employmentapp.png");
  var Result = Ocr.Read(Input);
  Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
  Input.AddImage("test-files/employmentapp.png")
  Dim Result = Ocr.Read(Input)
  Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

输入图像

IronOCR 和 Nanonets OCR 比较:图 9

输出

IronOCR 和 Nanonets OCR 比较:图 10

IronOCR 的输出与给定图像的原始图像匹配。 代码简洁易懂,没有任何技术性。

4.2. 使用 Nanonets OCR

Nanonets 还提供从图像中提取文本的功能。 为此,您需要进行一个包含身份验证密钥的 API 调用,然后将图像上传到 Nanonets 服务器。 快速的 OCR 工具将返回提取的文本作为应用程序的响应。 以下是代码示例:

var client = new RestClient("https://app.nanonets.com/api/v2/OCR/FullText");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddFile("file", "FILE_PATH");
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/FullText");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddFile("file", "FILE_PATH");
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Dim client = New RestClient("https://app.nanonets.com/api/v2/OCR/FullText")
client.Timeout = -1
Dim request = New RestRequest(Method.POST)
request.AddHeader("Authorization", "Basic " & Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")))
request.AddFile("file", "FILE_PATH")
Dim response As RestResponse = client.Execute(request)
Console.WriteLine(response.Content)
$vbLabelText   $csharpLabel

IronOCR 和 Nanonets OCR 比较:图 11

输出并不完美。 图像包含结构化数据,只有一部分被正确获取。 对于另一个简单的文本图像,输出正常。请注意,该模型可以进行训练以获得更准确的结果。

5. 条形码和二维码转文本

代码几乎与之前的代码相似。

IronOCR 提供了一个非常有用的功能来读取图像,包括检测和读取条形码和二维码的能力。 要启用此功能,请在处理图像之前将 ReadBarcodes 配置属性设置为 true。 一旦 OCR 处理完成,遍历 OCR 结果以提取每个检测到的条形码的值。 以下是使用 IronOCR 读取条形码的示例代码片段:

var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()) {    
    input.AddImage("test-files/Barcode.png");    
    var Result = Ocr.Read(input);    
    foreach (var Barcode in Result.Barcodes){
        Console.WriteLine(Barcode.Value);
    }
}
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()) {    
    input.AddImage("test-files/Barcode.png");    
    var Result = Ocr.Read(input);    
    foreach (var Barcode in Result.Barcodes){
        Console.WriteLine(Barcode.Value);
    }
}
Dim Ocr = New IronTesseract()
Ocr.Configuration.ReadBarCodes = True
Using input = New OcrInput()
	input.AddImage("test-files/Barcode.png")
	Dim Result = Ocr.Read(input)
	For Each Barcode In Result.Barcodes
		Console.WriteLine(Barcode.Value)
	Next Barcode
End Using
$vbLabelText   $csharpLabel

输入图像

Nanonets Ocr Api Csharp Alternatives 12 related to 输入图像

输出

Nanonets Ocr Api Csharp Alternatives 13 related to 输出

输入图像中的所有三个条形码都已成功读取,并显示其隐藏文本。

5.2. 使用 Nanonets OCR

Nanonets OCR API 提供检测二维码的功能。 然而,此功能仅在企业计划中可用,您需要联系销售以使用它。 此外,Nanonets 允许您检测文档或收据的特定部分。它还提供其他功能,如应付账款、发票处理和会计自动化。

6. PDF 到文本

6.1. 使用 IronOCR

使用 IronOCR 读取 PDF 文件与读取图像文件一样简单。 所需的唯一更改是在读取图像的代码中使用 AddPdf 方法替代 AddImage。 代码如下:

var Ocr = new IronTesseract();
using (var Input = new OcrInput()) {
    Input.AddPdf("test-files/example.pdf");
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
using (var Input = new OcrInput()) {
    Input.AddPdf("test-files/example.pdf");
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
	Input.AddPdf("test-files/example.pdf")
	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

提取的文本格式与 PDF 文件相同。

Nanonets Ocr Api Csharp Alternatives 14 related to 6.1. 使用 IronOCR

6.2. 使用 Nanonets OCR

在 Nanonets OCR API 中也可以从 PDF 文件中读取数据。 代码几乎与图像文本检测代码相同,只是在请求中使用的 URL 略有不同。让我们看看代码:

var client = new RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddHeader("Accept", "Multipart/form-data");
request.AddFile("file", "test-files/example.pdf");
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddHeader("Accept", "Multipart/form-data");
request.AddFile("file", "test-files/example.pdf");
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Dim client = New RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false")
Dim request = New RestRequest(Method.POST)
request.AddHeader("Authorization", "Basic " & Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")))
request.AddHeader("Accept", "Multipart/form-data")
request.AddFile("file", "test-files/example.pdf")
Dim response As RestResponse = client.Execute(request)
Console.WriteLine(response.Content)
$vbLabelText   $csharpLabel

在上面的代码中,将 model_id 换成您的 OCR 模型 ID。 同时,将 API 密钥替换为您自己的 API 密钥。 然后,将 PDF 文件路径替换为您自己的文件路径。

Nanonets Ocr Api Csharp Alternatives 15 related to 6.2. 使用 Nanonets OCR

输出与 IronOCR 类似,但 Nanonets OCR 的输出中包含额外的空格和换行。

IronOCR是一个提供开发者免费许可证的库。

IronOCR用于开发目的是免费的,但商业用途需要授权。 它还提供免费试用以测试所有潜在需求。 lite 包起价为 $799,并提供 30 天退款保证。 IronOCR 提供一年免费的产品支持和更新,此后每年 399 美元。 所有许可证都是永久性的,这意味着只需一次性购买,没有隐藏费用。 您还可以选择无版权的 SaaS 和 OEM 产品再发行覆盖,仅需 1999 美元的一次性购买。 有关许可证包和定价计划的更多信息,请访问以下链接

Aws Ocr Alternatives 14 related to 6.2. 使用 Nanonets OCR

Nanonets OCR API 提供三种不同的套餐。 您可以免费注册其入门套餐。 前 500 页免费,此后每页收费 0.3 美元。 您只需为使用的服务付费。 有关详细的定价信息,您可以访问此链接

Nanonets Ocr Api Csharp Alternatives 17 related to 6.2. 使用 Nanonets OCR

8. 结论

Nanonets Ocr Api Csharp Alternatives 18 related to 8. 结论

IronOCR 为 C# 开发者提供 Tesseract 高级 API,适用于大多数平台。 它可以部署在 Windows、Linux、Mac、Azure、AWS 和 Lambda 上,支持 .NET Framework 项目以及 .NET Standard 和 .NET Core。 IronOCR 还支持在 OCR 扫描中读取条形码,甚至可以以 HTML 和可搜索的 PDF 形式导出 OCR。 有关 C# Tesseract OCR 的更多信息,请点击这里

Nanonets OCR API 提供多种 OCR 工具。 它提供的 OCR 解决方案可用于多种文档类型,如发票、收据、账单、表单和身份证,以自动化数据捕获。 无需模板设置,没有隐藏费用,并且使用 Nanonets OCR API 节省 90% 的时间,提高 10 倍的生产力。

IronOCR 许可证是基于开发人员的,这意味着您应该根据使用该产品的开发人员人数购买许可证。 Nanonets 的定价计划基于要提取信息和分析数据的图像或 PDF 页数。 Pro 和 Enterprise 计划是基于每个模型的月度计费,随着模型和页面数量的增加,价格相比 IronOCR 许可证会增加。 此外,IronOCR 许可证是一次性购买,可以终身使用,并支持 OEM 和 SaaS 发布。

总体比较,两种 API 都提供了基于 AI 和 ML 的 OCR 功能。 IronOCR 相比 Nanonets 略占优势,因为它可以离线使用,并且即使对于非结构化文档也能提供更可靠的结果。 IronOCR 提供使用定制训练数据的功能,集成速度快,结果更加准确。 Nanonets OCR 提供根据关键字段训练模型的功能,如果没有正确训练,可能难以检测。 此外,IronOCR 提供多语言支持,支持多达 125 多种国际语言。

现在,您可以以两个产品的价格获得五款 Iron 产品,作为完整 Iron Suite 的一部分。访问这个链接了解更多。

IronOCR 还提供一个免费试用,并附带退款保证。 您可以从这个链接下载 IronOCR。

请注意Nanonets OCR API 是其各自所有者的注册商标。 本网站与 Nanonets OCR API 无任何关联、认可或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映的是撰写时的公开信息。

常见问题解答

对于C#应用程序,Nanonets OCR API 的最佳替代方案是什么?

IronOCR 是 Nanonets OCR API 在 C# 应用程序中的强烈推荐替代品。它提供了一个强大的 .NET 库,支持超过 125 种语言、条形码和二维码扫描,并且可以离线使用。

如何将OCR功能集成到C#应用程序中?

您可以使用IronOCR将OCR功能集成到C#应用程序中。它允许您使用其定制的Tesseract 5引擎将图像和PDF转换为机器可读文本。

使用IronOCR相对于Nanonets OCR API有什么优势?

IronOCR相对于Nanonets OCR API的几大优势包括离线功能、一次购买许可模式、广泛的语言支持以及对非结构化文档的高准确性。

IronOCR如何处理多语言 OCR 处理?

IronOCR通过支持超过125种语言处理多语言OCR处理,允许在同一文档中跨多种语言进行准确的文本识别。

IronOCR可以识别图像中的条形码和二维码吗?

是的,IronOCR可以从图像文件中检测和读取条形码和二维码,使其成为需要文本和代码识别的应用程序的多功能工具。

IronOCR 提供哪些授权选项?

IronOCR提供了一个免费试用版用于开发目的。对于商业用途,需要一次性购买许可证,这允许永久使用而无需定期付费。

IronOCR的定价模式与Nanonets相比如何?

IronOCR使用一次性购买模式进行许可,使用户避免持续费用,而Nanonets根据使用量收费,提供免费的起始套餐然后按每页收费。

在C#项目中使用IronOCR需要哪些安装步骤?

要在C#项目中使用IronOCR,您需要在开发环境中安装IronOCR NuGet包,之后您可以立即开始实现OCR功能。

OCR如何改进业务工作流程?

OCR通过将图像和 PDF 转换为可搜索和可编辑的文本来改进业务工作流程,从而自动化数据录入过程并提高各类业务运营的效率。

是什么使得IronOCR适合离线使用?

IronOCR适合离线使用,因为它无需持续的互联网连接即可执行OCR任务,非常适合需要在连接受限的环境中可靠性能的应用程序。

Kannaopat Udonpant
软件工程师
在成为软件工程师之前,Kannapat 在日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了车辆机器人实验室的成员,隶属于生物生产工程系。2022 年,他利用自己的 C# 技能加入 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他可以直接从编写大多数 IronPDF 代码的开发者那里学习。除了同行学习外,Kannapat 还喜欢在 Iron Software 工作的社交方面。不撰写代码或文档时,Kannapat 通常可以在他的 PS5 上玩游戏或重温《最后生还者》。