与其他组件比较

IronOCR与Abbyy Finereader的比较

发布 2022年四月24日
分享:

光学字符识别 (光学字符识别) 是一种将照片、手写文件、印刷文本和扫描文件转换为机器可读文本的技术。它是一种将印刷文本数字化的常用方法,这样就可以对文本进行电子编辑、搜索、更紧凑地存储、在线显示,并用于认知计算、机器翻译等机器处理过程。 (提取的) 文本到电子表格的转换。它被广泛用作从打印的纸质数据记录中输入数据的一种形式--无论是护照文件、发票、银行对账单、电脑收据、名片、邮件、静态数据的打印输出,还是任何合适的文档。模式识别、人工智能和计算机视觉都属于 OCR 研究的范畴。

在本文中,我们将比较两个常见的用于 PDF 文档和图像 OCR 的库和应用程序。它们是

  • ABBYY FineReader PDF 软件
  • IronOCR

1.导言

1.1 ABBYY FineReader PDF - 简介和功能

ABBYY FineReader PDF 是一款光学字符识别软件。 (光学字符识别) 由 ABBYY 创建的应用程序。它允许我们转换图像文件 (图片、扫描件、PDF 文件)屏幕截图可转换为 Microsoft Word、Microsoft Excel、Microsoft PowerPoint、富文本格式、HTML、PDF/A、可搜索 PDF、CSV 和文本等可编辑文件格式。 (纯文本).

ABBYY FineReader 是一款桌面应用程序,适用于 Windows、Linux 和 macOS。它还可以创建可编辑的 PDF 文件格式。我们也可以像使用 Adobe Acrobat 一样阅读 PDF 文件。ABBYY FineReader 可将扫描文档整合到数字工作流程中。

以简单高效的方式管理和完成文档,省时省力。以同样的方法处理任何文档,无论它是以数字方式创建还是从纸质文档转换而来。您可以更改 PDF 的文本、表格和完整布局,而无需先进行转换。

ABBYY FineReader PDF 可以从超过 25 种不同的文件格式创建 PDF,也可以直接从纸质文档创建 PDF,或者从几乎任何应用程序打印到 PDF 打印机。支持从 PDF/A-1 到 PDF/A-3 的长期存档,而 PDF/UA 可确保在使用屏幕阅读器等辅助软件时可访问内容。它还使专业人员能够最大限度地提高数字工作场所的效率。

使用ABBYY FineReader创建和更新您自己的交互式PDF表单,成功地收集信息和规范文档。通过组合各种类型的交互式字段、设置操作、编辑现有的 PDF 表单或向传统 PDF 添加表单元素来创建表格。

ABBYY FineReader可以立即将纸质文件、扫描件和扫描的PDF文件转换为可搜索的PDF文件,让您可以从数字档案中检索文件并访问其中包含的信息。FineReader PDF 支持从 PDF/A-1 到 PDF/A-3 的 PDF/A 格式的所有合规级别和变体,PDF/A 格式是长期存档的行业标准。

ABBYY 最新的基于人工智能的 OCR 技术 FineReader PDF 使数字化、检索、编辑、保护、共享和在同一工作流程中协作处理各种文档变得更加容易。FineReader 还包括文档对比功能,可帮助我们对比原始文档以及转换后的 PDF 和图像文件。

1.2 IronOCR - 简介和功能

IronOCR 为使用 IronOCR for .NET 从 .NET 应用程序和 Web 站点中的照片和 PDF 中读取文本内容的工程师提供软件。它可以扫描照片中的文本和条形码,并支持全球多种语言;然后可以提供纯文本或结构化数据输出。Iron Software 的 OCR 库可用于 MVC、Web、控制台和桌面 .NET 应用程序。对于商业部署,在开发团队的直接协助下提供许可。

  • IronOCR 使用最新的 Tesseract 5 引擎,可从任何图片或 PDF 格式中读取文本、条形码和 QR 码。该库可快速将 OCR 添加到桌面、控制台和网络应用程序中。
  • IronOCR 支持 127 种国际语言。它还支持自定义语言和单词列表。
  • IronOCR 能够读取 20 多种条形码格式和 QR 码。
  • IronOCR 支持多页 gif 和 tiff 图像格式。
  • IronOCR 可对低质量扫描图像进行校正。
  • IronOCR 支持多线程--一次执行一个或多个进程。
  • IronOCR 可提供页面、段落、行、字、字符等结构化数据输出。
  • IronOCR 支持 Windows、Linux、macOS 等多种操作系统。

2.在 Visual Studio 中创建新项目

打开 Visual Studio 软件,进入 "文件菜单"。选择 "新建项目",然后选择 "控制台应用程序"。

在相应的文本框中输入项目名称并选择文件路径。然后,点击创建按钮并选择所需的 Dot net 框架,如下图所示。

Visual Studio 项目现在将为所选应用程序生成结构,如果您选择了控制台、Windows 和 Web 应用程序,它现在将打开 program.cs 文件,您可以在其中输入代码并构建/运行应用程序。

接下来,我们可以添加库来测试代码。

3.安装

3.1 安装 ABBYY FineReader PDF

我们可以在这里下载 ABBYY FineReader。

上图显示有两个版本:个人版和企业版,您可以根据自己的要求下载。选择 "下载免费试用版 "选项。它将把你重定向到下图所示的表格:

我们需要填写表格以获取 EXE 文件的位置。点击下载选项下载文件。

文件下载完成后,我们可以双击 EXE 文件开始安装。安装完成后,系统会弹出提示信息,这时就可以使用了。

3.2 安装 IronOCR

IronOCR 库可通过四种方式下载和安装。

它们是

  • 使用 Visual Studio
  • 使用 Visual Studio 命令行
  • 从 NuGet 网站直接下载。
  • 从 IronPDF 网站直接下载。

3.2.1 使用 Visual Studio

Visual Studio 软件提供了 NuGet 包管理器选项,可直接将软件包安装到解决方案中。下面的截图显示了如何打开 NuGet 包管理器。

它提供了一个搜索框,显示 NuGet 网站上的软件包列表。在软件包管理器中,我们需要搜索关键字 IronOCR,如下图所示:

从上图中,我们将看到相关搜索项的列表。我们需要选择所需的选项,将软件包安装到解决方案中。

3.2.2 使用 Visual Studio 命令行

在 Visual Studio 中,转到工具-> NuGet 包管理器-> 包管理器控制台

在 "软件包管理器控制台 "选项卡中输入以下一行:

Install-Package IronOcr

接下来,软件包将下载/安装到当前项目中,并可随时使用。

3.2.3 直接从 NuGet 网站下载

第三种方法是直接从网站下载 NuGet 软件包。

  • 导航至 链接.
  • 从右侧菜单中选择下载软件包选项。
  • 双击下载的软件包。软件包将自动安装。
  • 接下来,重新加载解决方案并开始在项目中使用。

3.2.4 直接从 IronOCR 网站下载

点击 链接 此处直接从网站下载最新软件包。下载完成后,按照以下步骤将软件包添加到项目中。

  • 在解决方案窗口中右键单击项目。
  • 然后,选择参考选项并浏览下载参考的位置。

  • 然后,单击 "确定 "添加引用。

4.OCR 图像

IronOCR 和 Abbyy Finereader 都有 OCR 技术,可以将图像转换为文本搜索。

4.1 使用 ABBYY FineReader PDF

接下来,打开 ABBYY FineReader PDF 应用程序,如下图所示,该程序将提供多个选项。

接下来,从 OCR 编辑器选项中选择 "打开 "选项。这将提示选择图像文件的选项:

选择文件后,它会自动开始将图像扫描为可编辑文本,然后在窗口中显示结果,如下图所示:

上图显示的是转换成可编辑文本的源图像。不过,结果不太准确。ABBYY FineReader PDF 应用程序无法识别某些数字。这在对比窗口中可以清楚地看到--左侧是源图像,右侧是 OCR 转换后的文本。

4.2 使用 IronOCR

var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;                                     
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;            
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"3.png");         
    var Result = Ocr.Read(Input);       
    Console.WriteLine(Result.Text);        
    Console.ReadKey();          
}
var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;                                     
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;            
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"3.png");         
    var Result = Ocr.Read(Input);       
    Console.WriteLine(Result.Text);        
    Console.ReadKey();          
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
	Input.AddImage("3.png")
	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
	Console.ReadKey()
End Using
VB   C#

上面演示了 Tesseract 5 API,它允许我们将图像文件转换为文本。在上述代码中,我们为 Iron Tesseract 制作了一个对象。我们还将创建一个 OcrInput 对象,该对象允许我们添加一个或多个图片文件。在使用 OcrInput 对象的添加方法时,我们可能需要在代码中给出可用图片的路径。可以添加任意数量的图片。我们之前构建的对象 IronTesseract 中的 "读取 "函数可用于通过解析图片文件获取图片,并将结果提取到 OCR 结果中。它能够从照片中提取文本并将其转换为字符串。

我们还可以使用 Tesseract 添加多帧图像。"AddMultiFrameTiff "是实现这一操作的另一种方法。Tesseract 库会读取图像中的每一帧,每一帧都被视为一个独立的页面。该过程将读取图像的第一帧,然后读取下一帧,依此类推,直到扫描完图像的所有帧。此方法仅支持 tiff 图像格式。

上图是 IronOCR 的输出结果,准确无误,数据已正确转换为可编辑文本。

5.OCR PDF 文件

IronOCR 和 ABBYY FineReader PDF 可帮助将 PDF 文件转换为可编辑文本。ABBYY FineReader PDF 为用户提供了一系列选项,如保存页面、编辑图像、识别页面等。它还提供 txt、文档、HTML 格式等保存选项。IronOCR 还允许我们将转换后的 OCR 文件保存为 HTML、txt、pdf 等格式。

5.1 使用 ABBYY FineReader PDF

打开 ABBYY FineReader PDF 软件。这将打开一个类似下图的页面,提供多个选项。

接下来,从 OCR 编辑器选项中选择 "打开 "选项。这将提示选择图像/PDF 的选项。我们可以选择 PDF 或图像,也可以同时选择两个文件。

选择文件后,点击确定按钮。它会自动开始将图像扫描为可编辑文本,并在如下截图所示的窗口中显示扫描结果。

上图显示的是转换成可编辑文本的 PDF 源文件。不过,结果并不完全准确。ABBYY FineReader PDF 应用程序无法识别某些数字。这在对比窗口中可以清楚地看到--左侧是源 PDF,右侧是 OCR 转换后的文本。

5.2 使用 IronOCR

我们还可以使用 OCRInput 管理 PDF 文件。论文的每一页都将被 Iron Tesseract 类读取。然后从页面中提取文本。我们还可以使用第二个名为 "AddPdf "的函数打开受保护的文件,该函数允许我们将 PDF 文件添加到我们的文件列表中 (如果密码受到保护).以下代码演示了如何打开受密码保护的 PDF 文档:

var Ocr = new IronTesseract(); // nothing to configure
using (var Input = new OcrInput())
{
      Input.AddPdf("example.pdf", "password");
      var Result = Ocr.Read(Input);
      Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract(); // nothing to configure
using (var Input = new OcrInput())
{
      Input.AddPdf("example.pdf", "password");
      var Result = Ocr.Read(Input);
      Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract() ' nothing to configure
Using Input = New OcrInput()
	  Input.AddPdf("example.pdf", "password")
	  Dim Result = Ocr.Read(Input)
	  Console.WriteLine(Result.Text)
End Using
VB   C#

铁魔方还提供以下方法:

  • 添加PDF页面
  • AddPdfPages

我们可以使用 "Addpdfpage "读取和提取 PDF 文档中单页的内容。只需指定我们希望从中提取文本的页码。"AddPdfPage "允许我们从指定的多个页面中提取文本。在 IEnumerable因此,我们只需指定页数。我们还必须包含文件位置和文件扩展名。下面的代码示例对此进行了演示:

IEnumerable<int> numbers = new List<int> {2,8,10 };
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
     //single pageInput.AddPdfPage("example.pdf",10);
    //Multiple pageInput.AddPdfPages("example.pdf", numbers);
     var Result = Ocr.Read(Input);
     Console.WriteLine(Result.Text);
     Result.SaveAsTextFile("ocrtext.txt");
}
IEnumerable<int> numbers = new List<int> {2,8,10 };
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
     //single pageInput.AddPdfPage("example.pdf",10);
    //Multiple pageInput.AddPdfPages("example.pdf", numbers);
     var Result = Ocr.Read(Input);
     Console.WriteLine(Result.Text);
     Result.SaveAsTextFile("ocrtext.txt");
}
Dim numbers As IEnumerable(Of Integer) = New List(Of Integer) From {2, 8, 10}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
	 'single pageInput.AddPdfPage("example.pdf",10);
	'Multiple pageInput.AddPdfPages("example.pdf", numbers);
	 Dim Result = Ocr.Read(Input)
	 Console.WriteLine(Result.Text)
	 Result.SaveAsTextFile("ocrtext.txt")
End Using
VB   C#

使用 SaveAsTextFile 函数,我们可以将结果存储为文本文件,这样就可以将文件下载到输出目录路径。此外,我们还可以使用 SaveAsHocrFile 将文件保存为 HTML 文件。

6.其他功能

6.1 使用 ABBYY FineReader PDF

FineReader 有一些附加选项,例如Draw Text Area(绘制文本区域)、Draw Picture Area(绘制图片区域)、Draw Table Area(绘制表格区域)、Draw Recognize Area(绘制识别区域)等。这些选项可以帮助用户提高 OCR 的性能。此外,除了执行 OCR 外,应用程序还能让用户完成合并 PDF、分割 PDF 和编辑 PDF 等操作。

6.2 使用 IronOCR

IronOCR 具有独特的功能,允许我们从扫描的文档中读取条形码和 QR 码。下面的代码展示了我们如何从给定图像或文档中读取条形码。

var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
   Input.AddImage("barcode.gif");
   var Result = Ocr.Read(Input);
   foreach (var Barcode in Result.Barcodes)
   {
      Console.WriteLine(Barcode.Value);
   }
}
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
   Input.AddImage("barcode.gif");
   var Result = Ocr.Read(Input);
   foreach (var Barcode in Result.Barcodes)
   {
      Console.WriteLine(Barcode.Value);
   }
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.ReadBarCodes = True
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
   Input.AddImage("barcode.gif")
   Dim Result = Ocr.Read(Input)
   For Each Barcode In Result.Barcodes
	  Console.WriteLine(Barcode.Value)
   Next Barcode
End Using
VB   C#

上述代码有助于从给定图像或 PDF 文档中读取条形码。它可以从一个页面/图像中读取多个条形码。要读取条形码,IronOCR 有一个独特的设置 Ocr.Configuration.ReadBarCodes,可帮助读取条形码;默认值设置为 false。

读取输入数据后,数据将保存到名为 OCRResult 的对象中;该对象有一个名为 Barcodes 的属性,可将所有可用的条形码数据汇总到一个列表中。通过使用 for-each 循环,我们可以逐一获取所有条形码的详细信息。此外,它还将扫描条形码并读取条形码的值--两个操作在一个过程中完成!

此外,IronOCR 还支持线程选项,这意味着我们可以同时执行多个 OCR 进程。IronOCR 还能识别指定区域中的特定区域。

var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
      var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
      Input.Add("document.png", ContentArea);
      var Result = Ocr.Read(Input);
      Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
      var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
      Input.Add("document.png", ContentArea);
      var Result = Ocr.Read(Input);
      Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
	  Dim ContentArea = New System.Drawing.Rectangle() With {
		  .X = 215,
		  .Y = 1250,
		  .Height = 280,
		  .Width = 1335
	  }
	  Input.Add("document.png", ContentArea)
	  Dim Result = Ocr.Read(Input)
	  Console.WriteLine(Result.Text)
End Using
VB   C#

以上是对特定区域执行 OCR 的示例代码。我们只需指定图像或 PDF 上的矩形区域,IronOCR 中的 Tesseract 引擎就能识别文本。

7.结论

在 .NET Framework 环境中使用 IronOCR 时,Tesseract 简单易用。它以多种方式支持照片和 PDF 文档。它还提供了许多设置来提高 Tesseract OCR 库的性能。它支持多种语言,并可在一次操作中识别多种语言。要了解有关 Tesseract OCR 的更多信息,请访问其网站。

ABBYY FineReader PDF 是一款使用人工智能引擎识别图像/PDF 文档的软件应用程序。它还提供各种设置,以提高 OCR 过程的性能。此外,它还提供了选择多种语言的选项。ABBYY FineReader PDF 在页面转换的使用上确实有一些限制。不同的操作系统有不同的价格。要了解更多有关 ABBYY FineReader PDF 价格的详情,请点击 这里.

IronOCR 优于 ABBYY FineReader PDF。比较结果表明,FineReader 无法识别某些低质量图像,也无法识别图像中的某些字符,并将其报告为未知字符。而 IronOCR 则显示出完整而准确的结果。它还允许我们识别条形码数据,并从图像中读取条形码的值。IronOCR 软件包提供终身许可,这里没有持续性费用。IronOCR 软件包支持多种平台,价格统一。要了解有关 IronOCR 价格详情的更多信息,请单击 这里.

< 前一页
IronOCR和Dynamsoft OCR之间的对比
下一步 >
IronOCR与Leadtools OCR的比较

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

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