与其他组件比较

Google OCR 和 IronOCR 比较

发布 2023年五月16日
分享:

OCR 是光学字符识别的缩写。它提供将图像文件转换为机器编码文本的功能。扫描文件总是被计算机保存为图像文件。这些图像文件中的数据无法使用普通文本编辑器或文字处理程序进行搜索、编辑或保存为文本格式。OCR 处理有助于将这些图像转换为机器可读文本,供用户进一步处理。

在当今时代,通过 int.NET 共享的扫描文件都是数字格式,而且大多是 PDF 或图像形式。有很多在线资源可以将图像转换为文本。然而,大多数企业都需要在其软件应用程序中实现这一功能。考虑到这一点,有许多库提供 OCR 处理技术,可嵌入到软件应用程序中。

在本文中,我们将讨论两个最流行的 C# OCR 库。它们是

  • IronOCR
  • 谷歌云视觉 OCR (视觉应用程序接口)

介绍

IronOCR - C# 库

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

IronOCR 是一个用户友好型 API,C# 开发人员只需使用 "IronTesseract "类和 API 密钥,就能将图像自动转换为文本。它将速度、准确性和易用性放在首位。它还辅助计算机视觉 API 使用训练有素的模型集查找文本。

IronOCR 的另一个强大功能是,它可以扫描所有图像文件中的条形码和 QR 码,并读取其文本。IronOCR 的其他重要功能如下。

功能

  • 国际语言: 支持 125 种以上语言和自定义语言,具有高质量和快速的性能
  • 文本和条形码读取: 一次读取多种语言的文本和数字
  • 专业文档: 专门读取收据、支票和发票中的文本
  • 从多种格式读取: 图像 (png、jpg、gif、tiff、bmp)系统.绘图对象"、数据流、PDF 文档 (优化的目标 DPI)
  • 滤镜: 滤镜向导、图像校正、修正图像方向、修正图像颜色
  • 简单数据输出: .NET 文本字符串、条形码和 QR 数据、图像

现在,让我们来看看 Google Cloud Vision API。

谷歌云视觉 OCR

谷歌云视觉应用程序接口 是一个支持 C# 语言的谷歌云 OCR 客户端库。它允许 C# 开发人员在软件应用程序中轻松集成计算机视觉检测功能。它可从图像文件、图像标签、人脸检测和地标检测中执行 OCR 和文本检测。

谷歌云视觉应用程序接口使用 REST 和 RPC 应用程序接口提供强大的预训练 ML (机器学习) 模型。通过云导入视觉 API,您可以快速将图像归类到数百万个已预定义的类别中。它还能检测物体、读取打印文档中的文本和手写文本。

功能

  • 图像文本检测:OCR 图像文本识别,转换为机器语言代码
  • 文件文本检测:OCR 文件 (PDF/TIFF)文字密集
  • 地标检测:返回检测对象的坐标
  • 徽标检测返回文字描述

  • 标签检测返回图像的通用标签

文章其余部分如下:

1.创建 Visual Studio 项目

2.安装 IronOCR

3.安装 Google OCR

4.图像到文本

5.条形码和 QR 文本转换

6.PDF 转文本

7.许可证发放

8.结论

1.创建 Visual Studio 项目

在本教程中,我们将使用 Visual Studio 2022 的最新版本。因此,我假设你已经下载并安装了 C# 版本。如果没有,可以从 Visual Studio 网站.

现在,我们需要创建一个 Console 项目,以便开始使用这两个库。请按照以下步骤创建项目:

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

    如何在 C# Windows 应用程序中打印条形码 图 1 - 创建新项目

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

    如何在 C# Windows 应用程序中打印条形码 图 2 - 控制台应用程序

  • 配置新项目的名称和位置。例如 "OCRProject"。
  • 单击下一步。

    如何在 C# Windows 应用程序中打印条形码 图 3 - 配置项目

  • 从其他信息中选择 .NET 6.0 Framework,因为它是最稳定的版本。

    如何在 C# Windows 应用程序中打印条形码 图 4 - 附加信息

  • 现在,单击 "创建",项目将在指定位置创建。

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

2.安装 IronOCR

安装 IronOCR 库有多种方法。让我们逐一了解一下。

2.1.使用 Visual Studio NuGet 包管理器

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

  • 单击 "工具 "选项卡
  • 扩展 NuGet 包管理器选项

  • 单击管理解决方案的 NuGet 包

    如何在 C# Windows 应用程序中打印条形码 图 5 - NuGet 软件包管理器

  • 或右键单击解决方案资源管理器
  • 单击管理 NuGet 包

    如何在 C# Windows 应用程序中打印条形码 图 6 - 解决方案资源管理器

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

如何在 C# Windows 应用程序中打印条形码 图 7 - IronOCR

2.2.从 NuGet 网站下载

可直接从 NuGet 官方网站下载。按照给出的步骤操作:

1.点击链接:"".

2.点击页面右侧的 "下载软件包 "选项。

3.打开下载的软件包并开始安装。

4.最后,重新加载解决方案就大功告成了。

2.3.使用 IronOCR 网页下载

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

如何在 C# Windows 应用程序中打印条形码 图 8 - Iron Software Website

将下载一个 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 命名空间

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


    using IronOCR;

    using IronOCR;
Imports IronOCR
VB   C#

现在,让我们安装 Google Vision OCR。

3.安装谷歌 OCR

要在 C# 项目中使用视觉 API,必须满足以下前提条件

1.创建 Google 账户

2.从 Google 云控制台创建新项目

3.启用计费

4.启用 Vision API

5.创建服务账户并设置证书

6.下载 JSON 文件格式的服务账户密钥凭证

您可以从官方文档中详细了解使用 Google Cloud Vision 的设置和要求 这里.

现在,要在 Visual Studio 中安装用于执行 OCR 处理的 Google Cloud 客户端库,我们需要使用 NuGet 包管理器。

3.1.使用 NuGet 软件包管理器

使用以下方法访问

  • 单击 "工具 "选项卡
  • 扩展 NuGet 包管理器选项

  • 单击管理解决方案的 NuGet 包

    如何在 C# Windows 应用程序中打印条形码 图 9 - 工具选项卡

  • 或右键单击解决方案资源管理器
  • 单击管理 NuGet 包

    如何在 C# Windows 应用程序中打印条形码 图 10 - 管理 NuGet 软件包

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

如何在 C# Windows 应用程序中打印条形码 图 11 - Google Cloud Vision OCR

3.2.添加谷歌视觉应用程序接口命名空间

包含以下命名空间以使用 Google OCR Vision API:


    using Google.Cloud.Vision.V1;

    using Google.Cloud.Vision.V1;
Imports Google.Cloud.Vision.V1
VB   C#

还可使用 JSON 文件中下载的密钥凭证设置环境变量。


    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");

    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
VB   C#

现在,一切准备就绪,随时可以使用。

4.图像到文本

从图像中读取数据是一项相当繁琐的工作。图像的分辨率和质量在提取内容时起着重要作用。两个图书馆都提供光学字符识别功能 (光学字符识别) 从图像中提取文本的功能。

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
VB   C#

输入图像

如何在 C# Windows 应用程序中打印条形码 图 12 - 使用边界框输入

输出端

如何在 C# Windows 应用程序中打印条形码 图 13 - 带单个字的图像输出

IronOCR 的输出结果与提供给它的原始图像一致。代码简洁易懂,没有任何技术含量。

4.2.使用谷歌 OCR

Google Cloud Vision OCR 还能将图像转换成带有不同字体的文本。首先,我们需要使用凭据文件创建一个客户端。然后,我们可以使用该客户端对象调用 "DetectText "方法来获取注释形式的响应。代码如下:


    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
    var client = ImageAnnotatorClient.Create();
    var image = Image.FromFile("test-files/employmentapp.png");
    var response = client.DetectText(image);
    foreach (var annotation in response)
    {
        if (annotation.Description != null)
        {
            Console.WriteLine(annotation.Description);
        }
    }

    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
    var client = ImageAnnotatorClient.Create();
    var image = Image.FromFile("test-files/employmentapp.png");
    var response = client.DetectText(image);
    foreach (var annotation in response)
    {
        if (annotation.Description != null)
        {
            Console.WriteLine(annotation.Description);
        }
    }
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
	Dim client = ImageAnnotatorClient.Create()
	Dim image As System.Drawing.Image = System.Drawing.Image.FromFile("test-files/employmentapp.png")
	Dim response = client.DetectText(image)
	For Each annotation In response
		If annotation.Description IsNot Nothing Then
			Console.WriteLine(annotation.Description)
		End If
	Next annotation
VB   C#

输入相同的图像,以比较两个库的输出结果。

如何在 C# Windows 应用程序中打印条形码 图 14 - 输出

从上面的输出结果可以清楚地看到,IronOCR 保留了图像输出格式。虽然 Google OCR 能准确输出文本,但表格的格式却没有保留下来。IronOCR 则完全保留了给定图像中的表格格式。

5.将条形码和 QR 码转换为文本

5.1.使用 IronOCR

IronOCR 在读取图像时提供了一项独特而实用的功能,即可以读取条形码和 QR 码。它可以轻松检测条形码并显示其值。首先,将 "ReadBarCodes "配置设为 true,然后遍历 OCR 结果中的每个条形码。读取条形码的代码如下:


    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
VB   C#

输入图像

如何在 C# Windows 应用程序中打印条形码 图 15 - 输入

输出端

如何在 C# Windows 应用程序中打印条形码 图 16 - 图像输出

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

5.2.使用谷歌 OCR

谷歌视觉应用程序接口还不支持此功能。在软件应用程序中,读取条形码非常方便。不过,谷歌 OCR 可以提取手写文本,并将扫描文档中的文本提取为图像文件。标签检测代码如下:


    var client = ImageAnnotatorClient.Create();
    var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
    var labels = client.DetectLabels(image);

    Console.WriteLine("Labels (and confidence score):");
    Console.WriteLine(new String('=', 30));

    foreach (var label in labels)
    {
        Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
    }

    var client = ImageAnnotatorClient.Create();
    var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
    var labels = client.DetectLabels(image);

    Console.WriteLine("Labels (and confidence score):");
    Console.WriteLine(new String('=', 30));

    foreach (var label in labels)
    {
        Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
    }
Imports System

Dim client = ImageAnnotatorClient.Create()
	Dim image = System.Drawing.Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg")
	Dim labels = client.DetectLabels(image)

	Console.WriteLine("Labels (and confidence score):")
	Console.WriteLine(New String("="c, 30))

	For Each label In labels
		Console.WriteLine($"{label.Description} ({CInt(Math.Truncate(label.Score * 100))}%)")
	Next label
VB   C#

输出端

如何在 C# Windows 应用程序中打印条形码 图 17 - 标签检测输出

6.将 PDF 转换为文本

6.1.使用 IronOCR

在 IronOCR 中,读取 PDF 文件与读取图像文件一样简单。您只需将图像阅读代码中的 "AddImage "方法更改为 "AddPdf "即可。代码如下


    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
VB   C#

输出端

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

如何在 C# Windows 应用程序中打印条形码 图 18 - PDF 至文本输出

6.2.使用谷歌 OCR

Google OCR 还提供从 PDF/TIFF 文档中提取文本的功能。不过,只有当文件在谷歌云存储中时,它才能检测到文本。为此,您需要创建一个 Google 存储桶。这里的 C# 代码并不简单,实现起来也相当费时。目前还没有用于检测文件中文本的 C# 示例。您可以查看 Java 代码 作为尝试的参考。

7.许可证发放

IronOCR 用于开发目的是免费的,但用于商业用途需要获得许可。它还提供免费试用版,以测试其满足您需求的所有潜力。精简版软件包从 $749 开始,包含一个 免费试用.IronOCR 免费提供 1 年的产品支持和更新,之后每年的费用为 399 美元。所有许可证都是永久性的,这意味着只需一次性购买,没有隐藏费用。您还可以为 SaaS 和 OEM 产品选择免版税的再分发服务,单次购买只需 1999 美元。有关许可证套餐和定价计划的更多信息,请访问 这里.

如何在 C# Windows 应用程序中打印条形码 图 19 - IronOCR 许可证

Google Cloud Vision 的定价计划基于应用程序对图像执行的操作次数。对于有多页的 PDF 等文件,每一页都被视为一幅图像。此外,应用于图像的每个功能都是一个单独的计费单位。例如,如果您对同一图像应用文本检测和标签检测,每项功能都将单独收费。定价方案如下,如需了解更多信息,请访问此处 链接.

如何在 C# Windows 应用程序中打印条形码 图 20 - Google Cloud Vision OCR 许可

8.结论

IronOCR 为 C# 开发人员提供了我们所知的任何平台上最先进的 Tesseract API。IronOCR 可部署在 Windows、Linux、Mac、Azure、AWS 和 Lambda 上,并支持 .NET Framework 项目以及 .NET Standard 和 .NET Core_。我们还可以读取 OCR 扫描中的条形码,甚至可以将 OCR 导出为 HTML 和可搜索的 PDF。

Google Cloud Vision API 是一款先进的人工智能内置 API。它提供各种图像分析功能,对构建 ML 应用程序非常有帮助。它允许开发人员使用 API 密钥直接与谷歌云通信,这意味着无需在本地存储文件。

IronOCR 的许可证是基于用户的,这意味着你应该根据使用该产品的开发人员数量来购买许可证。Google Cloud Vision 的许可证是根据要从中提取信息和分析数据的图片数量来确定的。许可证是按月发放的,与 IronOCR 许可证相比,大量图片的价格会变得很高。此外,IronOCR 许可证是一次性购买,可终身使用,支持 OEM 和 SaaS 分发。

总之,这两个库都具有机器学习功能。与谷歌 OCR 相比,IronOCR 略胜一筹,因为它是专门为 C# .NET 框架开发的,既快速又省时。它只需几行代码就能提供所有功能,从而减轻了开发人员编写冗长代码的负担。它基于最流行的 Tesseract 5 API 构建,可以轻松集成和分析图像以及其他文件格式,并提供准确的输出。另一方面,Google Vision OCR 基于人工智能构建,更侧重于 Java、Python 和 REST,并且只能在连接到 Google Cloud 时运行。由于响应来自服务器端,这可能会比较耗时。您可以根据自己的具体需求选择库。

现在,您只需支付 2 个产品的价格,即可获得 5 个 Iron 产品:

  • IronBarcode
  • IronXL
  • IronOCR
  • IronPDF

  • IronWebscraper

访问 链接 探索更多。

您可以从以下网址下载 IronOCR 这里.

< 前一页
AWS 与 Google Vision(OCR 功能比较)
下一步 >
Iris与IronOCR之间的OCR软件比较

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 2,319,721 查看许可证 >