跳至页脚内容
OCR 工具
如何使用开源库在C#中实现OCR

C# 开源 OCR(开发者列表)

OCR(光学字符识别)是一项改变游戏规则的技术,彻底改变了今天数字化世界中扫描的文档的使用方式。 它使计算机能够识别和提取各种来源(包括扫描的 PDF 文档)中的文本,从而使我们能够有效地编辑 PDF 文档并与之交互。 Adobe Acrobat 是一款光学字符识别 (OCR) 程序,它可以快速从扫描文档中提取文本,并将其转换为可编辑的 PDF 和可搜索的图像 PDF。

开发者可以通过使用 Tesseract 和 IronOCR 等 OCR 库,访问利用尖端算法和机器学习方法的强大工具和 API。 这些库能够实现精确的文本识别,从而更轻松地管理和检索先前扫描的文档和全新文档中的有用信息。 OCR技术能够实现无缝的内容分析,帮助企业和个人充分利用扫描的文档和页面图像,从而最大限度地提高工作效率。 OCR 是当前技术中一项至关重要的工具,无论是用于将纸质记录数字化、从发票中提取数据,还是仅仅增强文档的可访问性。

超立方体

最著名的开源 OCR 引擎名为 Tesseract,它最初是由惠普公司开发的。 自 2006 年以来,谷歌一直支持这个以 Apache 许可证发布的自由软件项目。

Tesseract OCR引擎是目前最精准的开源免费系统之一。Tesseract最新稳定版本4.1.1基于LSTM,支持116种语言。

Tesseract 在命令行界面运行时需要单独的 GUI(图形用户界面)支持,因为它没有自己的内置界面。 它能够利用神经网络学习新信息,并拥有先进的图像预处理流程。将 OCR 功能添加到 .NET 应用程序的最有效方法是使用 Tesseract .NET SDK,它是提供文本识别功能的最佳解决方案之一。 尽管 Tesseract 无疑是目前市场上最好的 OCR 库。

GOCR

GNU 通用公共许可证被用于创建名为 GOCR 的 OCR(光学字符识别)程序。 它可以将文本文件转换回文档的扫描图像。 在启动该项目并管理 SF 开发团队之后,Joerg Schulenburg 如今仍然以(非常)低的开发进度处理该项目。

由于 GOCR 可以与多个前端一起使用,因此将其移植到其他操作系统、网络应用程序和架构相对简单。 它可以读取多种图片文件类型,而且直到 2010 年,其质量一直在不断提高。

根据 GOCR 的说法,它可以处理高度为 20-60 像素的单列无衬线字体。 它报告称,对于非拉丁字母书写的文本、衬线字体、重叠字母、各种字体、噪点照片以及过大的倾斜角度,都会出现阅读困难。 GOCR 还能够翻译条形码。

楔形体

CuneiForm 是一种免费开源技术,现在也称为"认知开放式 OCR"。它具有内置输出功能和数据库。 它涵盖 23 种不同的语言,还可以执行文本格式扫描、文档布局分析和识别等任务。

Cognitive Technologies 开发了 OpenOCR 的许可证,该许可证是免费软件和 BSD 许可证。 虽然它支持跨平台使用,但 Linux 用户无法使用图形界面。

为了简化任何 Dot NET Framework 2.0 或更高版本应用程序中的字符识别工作,使用了包装库 Puma Dot NET。 它在处理数据时运行字典检查,以提高识别质量。

CuneiForm 是一种旨在自动或半自动地将纸质文档和图像文件的电子副本转换为可编辑形式的技术,而不会影响文档的结构和原始字体。 该系统由两部分组成,分别用于批量处理电子文档和逐个处理文档。此外,该系统支持俄语和英语混合使用。 只有 Andrei Borovsky 在 2009 年创建的分支支持识别其他混合语言。 教会系统识别其他语言是一项挑战,因为每种语言都与一个数据文件相关联,而开发人员并未公开数据文件的结构和创建过程。

海怪

Kraken 的开发是为了解决 Ocropus 的问题,同时又不影响其其他功能。 它利用其 CLSTM 神经网络库,并借鉴以往项目中积累的宝贵经验,处理最新数据。 它需要使用某些外部库才能在不同平台上有效运行。 借助存储的信息,它可以对潜在的数据验证问题做出更准确的预测。 此外,其工作方法便于新模型的部署和培训。

style=";text-align:left;direction:ltr">A9T9

A9T9 是一款免费的 OCR 软件,可用于从图片文件中提取文本以及转换图像和 PDF 文档。 它为 Tesseract OCR 引擎提供图形用户界面 (GUI)。

该程序设置简单。最重要的是,它是完全免费且开源的。 它不含间谍软件和广告软件。

您可以打开 PDF 文件或图像,源文件的内容将显示在左侧窗口中。 如果您的文档有多页或本身就是多页文档,您可以使用页面底部的箭头在页面之间导航。

要启动 OCR 过程,只需单击绿色的 OCR 按钮,输出结果将显示在右侧第二个窗格中。 您可以选择将输出文本保存为文本文件或 Word 文档。

IronOCR。

与标准的 Tesseract 库相比,IronOCR 扩展了 Tesseract,并提供了一个具有更高精度、更佳性能和更强稳定性的原生 C# OCR 库。 IronOCR 可用于 .NET 程序和网站,从 PDF 和图像中提取文本。 它支持多种外语,并可生成纯文本或结构化数据输出。 它可以扫描条形码和带有嵌入式文本的图像。 该库可用于使用 .NET 开发的控制台、Web、MVC 和桌面应用程序。开发团队可为商业部署提供许可流程方面的直接协助。 IronOCR 与最新版本的 Visual Studio 兼容。

IronOCR。的优势

IronOCR 使用最新的 Tesseract 5 引擎,能够读取各种图片或 PDF 文件中的纸质文档、条形码和二维码。 该软件包简化了将 OCR 集成到桌面、控制台和 Web 应用程序中的过程。 IronOCR 使我们能够执行 OCR 功能,从而可以将扫描的 PDF 文件转换为可搜索的 PDF 文件。 除了词表和自定义语言外,IronOCR 还支持全球 125 种不同的语言。 IronOCR 可以扫描 20 多种不同类型的条形码和二维码。 IronOCR 可以提供纯文本和条形码数据两种输出格式。 开发人员可以使用另一种结构化数据对象范式,检索所有内容并直接将其输入系统。 这包括 Web 应用程序中的结构化标题、段落、行、单词和字符。

下面的示例代码将用于识别给定图像中的文本内容并将其转换为文本。

using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
Imports IronOcr

' Instantiate an IronTesseract object to utilize its OCR capabilities
Private Ocr = New IronTesseract()

' Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest

' Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5

' Create an OcrInput object to add images for OCR processing
Using Input = New OcrInput()
	' Add the image to be processed; specify the image's path
	Input.AddImage("Demo.png")

	' Perform the OCR and store the result
	Dim Result = Ocr.Read(Input)

	' Output the extracted text to the console
	Console.WriteLine(Result.Text)

	' Pause the console to keep it open
	Console.ReadKey()
End Using
$vbLabelText   $csharpLabel

在上面的代码片段中,我们正在使用IronTesseract开发一个功能。 首先,我们实例化一个新的OcrInput对象,以便添加一个或多个图像文件。 您可以使用AddImage方法指定每张图片的路径,从而添加任意数量的图片。 添加图像后,将调用IronTesseract对象的Read方法来对提供的输入执行 OCR。 然后提取生成的文本并通过控制台显示。

下面的输出显示了从先前提供的图像中提取的文本,证明已成功从图像中提取文本。

! OCR C# 开源(开发者列表)图 1 - 输出

请参阅此帖子以获取完整的 IronOCR 使用说明。

结论

OCR开源工具允许我们使用其源代码构建我们自己的程序。 然而,有些工具没有官方库或专门的团队来提供支持,以解决编码问题。 Tesseract 的文档也缺乏常见使用场景的示例代码或教程,这使得初学者很难理解代码和库。

IronOCR 支持各种 .NET 项目,例如 .NET Framework Standard 2、.NET Framework 4.5 和 .NET Core 2、3 和 5。它还可以与 Mono、Xamarin 和 Azure 等较新的技术一起使用。 通过利用 IronOCR 技术,我们可以增强 Tesseract 的扫描结果,并纠正扫描不准确的文档或图像。 复杂的 Tesseract 字典系统是通过 NuGet 包进行管理的。 我们利用 Iron OCR 库开发 OCR 工具。

使用 IronOCR,无需任何额外配置即可使用该程序,它支持 PDF 文件、多帧 TIFF 和所有常见图像格式。 它还具备条形码识别功能,使我们能够从图像中提取条形码数据并读取条形码值。 IronOCR 提供经济实惠的开发版本,并提供免费试用;终身许可证包含在 IronOCR 套装中,无需额外付费。IronOCR 套装只需一次付款即可覆盖多个平台。 有关 IronOCR 定价的更多信息,请参阅此页面

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