与其他组件比较

Paddle OCR 与 Tesseract:详细 OCR 对比

Kannaopat Udonpant
坎那帕·乌东攀
2024年四月29日
分享:

选择合适的光学字符识别 (OCR) 工具对于任何希望将文本图像转化为可编辑和可搜索数据的人来说都至关重要。 在该领域,两个受欢迎的选项是Paddle OCRTesseract。 两者都利用了不同的 OCR 技术,满足了不同的需求。 本比较侧重于评估不同的 OCR 引擎,以帮助您找到最适合您需求的选项。

无论您是在执行简单的任务还是处理复杂的文档,了解 Paddle OCR 和 Tesseract 的功能都将是您迈向更高效数据处理的第一步。 我们还将从一系列 OCR 库中引入一个库,IronOCR,提供更广泛的比较,帮助您了解哪种工具可能最适合您的需求。

桨式 OCR

Paddle OCR 作为一个值得注意的解决方案出现,具备为多语言文本识别设计的先进文本识别模型,利用PaddlePaddle深度学习框架的能力。 PaddlePaddle 开发的 OCR 系统专为高性能和广泛的语言支持而定制。 该系统支持 50 多种语言,提供一整套工具,用于在服务器、移动设备、嵌入式系统和物联网设备等各种平台上进行数据注释、合成和模型部署。

主要功能

Paddle OCR 具有多种 OCR 功能,其用户友好型 API 适用于各种应用。 以下是其突出特点:

  1. 多语言支持:Paddle OCR 能够处理多种语言的文本,支持超过50种语言。

  2. 高级算法:它结合了先进的光学字符识别方法和算法,用于文本检测、识别和分类。 这些包括最新的深度学习研究,比如连接时序分类(CTC)损失,其在准确预测和对齐文本序列方面发挥着关键作用。

  3. 效率和速度:Paddle OCR经过优化,兼顾速度和准确性,能够快速处理大量图像,使其适合高吞吐量的应用。

许可证

Paddle OCR 根据 Apache License 2.0 发布,确保可自由使用、修改和分发。 安装非常简单,通常使用软件包管理器,如 Python 的 pip。 用户只需几条命令就能快速安装 Paddle OCR 及其依赖项,从而方便项目集成。

安装 PaddleSharp

使用 PaddleSharp(Paddle Inference C# API 的.NET 封装器)可以简化在 Visual Studio 中将 PaddleOCR 集成到 C# 项目中的过程。 这样就可以在 .NET 环境中直接使用 PaddlePaddle 的深度学习功能。 以下是在项目中设置 PaddleSharp 的分步指南:

先决条件

  • 确保您的系统已安装 Visual Studio,并根据项目要求支持 .NET Framework 或 .NET Core。
  • 了解 C# 和熟悉 Visual Studio 中的 NuGet 软件包管理也是必不可少的。

    安装 PaddleSharp 包

  • 在 Visual Studio 中打开项目。
  • 右键单击解决方案资源管理器中的项目,导航至 "管理 NuGet 包 "选项。

    • 搜索Sdcb.PaddleInference并安装该软件包。 这是允许 .NET 应用程序利用 Paddle Inference 引擎的核心绑定。

    Paddle OCR与Tesseract (OCR功能比较):图1 - 在NuGet包管理器中浏览Sdcb.PaddleInference

    • 然后安装以下软件包:

      • Scdb.PaddleOCR

      • OpenCvSharp4

      • Scdb.PaddleOCR.Models.Online
    • OpenCvSharp4.runtime.win

    添加原生和基础架构包

  • 根据您的目标平台(Windows/Linux)和需求(CPU/GPU),可能需要额外的包。 对于 Windows,您可能需要像 Sdcb.PaddleInference.runtime.win64.mkl 这样的包来支持 MKL,或者 **Sdcb.PaddleInference.runtime.win64.cuda*** 来支持 GPU。
  • 同时通过 NuGet 软件包管理器安装这些工具,确保与您的开发环境和目标执行环境兼容。

代码示例

using System;
FullOcrModel model = await OnlineFullModels.EnglishV3.DownloadAsync();
using (PaddleOcrAll all = new(model)
{
    AllowRotateDetection = true,
    Enable180Classification = false,
})
using (Mat imgSrc = Cv2.ImRead(@"read.jpg"))
{
    Stopwatch stopWatch = Stopwatch.StartNew();
    PaddleOcrResult result = all.Run(imgSrc);
    Console.WriteLine($"lapsed={sw.ElapsedMilliseconds} ms");
    Console.WriteLine(result.Text);
}
using System;
FullOcrModel model = await OnlineFullModels.EnglishV3.DownloadAsync();
using (PaddleOcrAll all = new(model)
{
    AllowRotateDetection = true,
    Enable180Classification = false,
})
using (Mat imgSrc = Cv2.ImRead(@"read.jpg"))
{
    Stopwatch stopWatch = Stopwatch.StartNew();
    PaddleOcrResult result = all.Run(imgSrc);
    Console.WriteLine($"lapsed={sw.ElapsedMilliseconds} ms");
    Console.WriteLine(result.Text);
}
Imports System
Private model As FullOcrModel = await OnlineFullModels.EnglishV3.DownloadAsync()
Using all As New PaddleOcrAll(model) With {
	.AllowRotateDetection = True,
	.Enable180Classification = False
}
Using imgSrc As Mat = Cv2.ImRead("read.jpg")
	Dim stopWatch As Stopwatch = Stopwatch.StartNew()
	Dim result As PaddleOcrResult = all.Run(imgSrc)
	Console.WriteLine($"lapsed={sw.ElapsedMilliseconds} ms")
	Console.WriteLine(result.Text)
End Using
End Using
$vbLabelText   $csharpLabel

Paddle OCR与Tesseract(OCR功能比较):图2 - 上一段代码的控制台输出。

魔方 OCR

Tesseract 是一个广泛认可的开源OCR引擎,并在Apache 2.0许可证下授权。 它的开发历程始于惠普实验室,在谷歌的管理下一直持续到 2018 年,之后被开源。 现在,它由一个贡献者社区负责维护。 该引擎能够读取 100 多种语言,并支持包括 PNG、JPEG 和 TIFF 在内的各种图像格式,因而备受赞誉。 它可以输出多种格式,如纯文本、hOCR(HTML)、PDF等。

主要功能

以下是其主要功能概述:

  1. 广泛的语言支持:Tesseract 能够识别超过 100 种语言,满足全球用户的需求。 该引擎支持Unicode(UTF-8),可以处理多语言文档。

  2. 基于神经网络的识别:4.0及以上版本的Tesseract引入了基于神经网络(LSTM)的OCR引擎,提升了其在文本行识别中的准确性,相较于其传统的字符模式识别方法。

  3. 多种输出格式:Tesseract 支持多种输出格式,包括纯文本、hOCR(HTML)、PDF 和 TSV,使其适用于不同的用例。

许可证

Tesseract OCR 根据 Apache License 2.0 发布。该许可证是最具许可性和开放性的许可证之一,允许几乎不受限制地自由使用、修改和分发软件,即使在专有软件项目中也是如此。

安装Tesseract

要使用 NuGet 在 Visual Studio 项目中安装 Tesseract OCR,请按照以下步骤操作:

  1. 打开 Visual Studio:启动 Visual Studio 并打开您的项目或创建一个新项目。

  2. 在解决方案资源管理器中右键单击您的项目,然后选择管理 NuGet 包...。3. 在 NuGet 包管理器中,切换到浏览选项卡,搜索Tesseract

    1. 安装 Tesseract NuGet 软件包管理器。

    Paddle OCR vs Tesseract (OCR功能比较): 图3 - 使用NuGet包管理器安装Tesseract

  3. 从这个链接下载Tessdata。 必须使用 Tesseract OCR。

代码示例

using Tesseract;
using (var engine = new TesseractEngine(@".\tessdata-main", "eng", EngineMode.Default))
{
    using (var img = Pix.LoadFromFile(@"read.jpg"))
    {
        using (var page = engine.Process(img))
        {
            var text = page.GetText();
            Console.WriteLine(text);
        }
    }
}
using Tesseract;
using (var engine = new TesseractEngine(@".\tessdata-main", "eng", EngineMode.Default))
{
    using (var img = Pix.LoadFromFile(@"read.jpg"))
    {
        using (var page = engine.Process(img))
        {
            var text = page.GetText();
            Console.WriteLine(text);
        }
    }
}
Imports Tesseract
Using engine = New TesseractEngine(".\tessdata-main", "eng", EngineMode.Default)
	Using img = Pix.LoadFromFile("read.jpg")
		Using page = engine.Process(img)
			Dim text = page.GetText()
			Console.WriteLine(text)
		End Using
	End Using
End Using
$vbLabelText   $csharpLabel

Paddle OCR vs Tesseract(OCR 功能比较):图 4 - 上一个代码示例的控制台输出

IronOCR

IronOCR 是一个高级的OCR(光学字符识别)库,显著增强了.NET开发者从图像和PDF中提取文本的能力。 基于Tesseract OCR引擎的基础,IronOCR提供了一种原生C#体验,其稳定性和准确性优于基础Tesseract库。 它的设计目的是无缝集成到 .NET 应用程序和网站中,允许将文本提取为纯文本或结构化数据格式,并且能够理解多种外语。 利用深度学习算法,IronOCR 在文本识别任务中实现了无与伦比的准确性。

该库不仅在简单的 OCR 任务中表现出色,还将其功能扩展到了广泛的应用领域。 它支持各种平台,包括从 5 到 8 的 .NET 版本、.NET Core 2x 和 3x,以及 .NET Framework 4.6.2 及以上版本。

主要功能

以下是 IronOCR 脱颖而出的一些关键属性和功能:

高级OCR引擎:IronOCR利用Tesseract 5提供高级OCR引擎,支持125+种语言。 这种能力对于需要多语言支持的全球应用程序至关重要。 该库为大多数语言(包括自定义语言和字体训练)提供了高质量、中等质量和快速质量选项,确保了文本识别的灵活性和高准确性。

全面的文档处理:IronOCR 能够处理多种文档类型和格式,包括图像(JPG、PNG、GIF、TIFF、BMP)、System.Drawing 对象、流和 PDF。

强大的图像处理:该库包括一套功能强大的滤镜和图像处理工具,例如锐化、分辨率增强、降噪和色彩校正(包括二值化、灰度、反转)。

结构化和简单的数据输出:IronOCR 提供结构化数据输出(页面、块、段落、行、单词、字符)和简单数据输出(.NET 文本字符串、条形码和二维码数据、图像)。

并发处理和计算机视觉:该库支持单线程和多线程操作、异步操作,并提供计算机视觉功能以识别图像中的文本区域,从而提高复杂或噪声图像中文本识别的准确性和效率。

要在 .NET 项目中安装 IronOCR,您可以根据自己的开发环境和偏好使用多种方法。 以下是一份简化指南,供您参考:

许可证

IronOCR 为满足不同项目和开发人员的需求量身定制了各种许可选项,确保用户的灵活性和可扩展性。 许可条款是永久性的,这意味着一旦您购买了许可证,就不会再有经常性费用。 此外,每个许可证都包含 30 天退款保证、一年的产品支持和更新,并适用于开发、暂存和生产环境。 许可证价格开始于$749。 您可以在购买许可证之前获取免费试用

安装 IronOCR

  1. 导航到工具 -> NuGet 包管理器 -> 包管理器控制台

    1. 输入命令Install-Package IronOcr并执行它。 该命令将 IronOCR 抓取并安装到您的项目中,使其可以随时使用。

    Paddle OCR vs Tesseract (OCR 特性比较):图 5 - 使用包管理器控制台安装 IronOCR

代码示例

下面是如何使用 IronOCR 从图像中提取文本的代码示例:

using IronOcr;
IronOcr.License.LicenseKey = "License-Key";
var ocrMode = new IronTesseract();
var resultText = ocrMode.Read("read.jpg");
Console.WriteLine(resultText.Text);
using IronOcr;
IronOcr.License.LicenseKey = "License-Key";
var ocrMode = new IronTesseract();
var resultText = ocrMode.Read("read.jpg");
Console.WriteLine(resultText.Text);
Imports IronOcr
IronOcr.License.LicenseKey = "License-Key"
Dim ocrMode = New IronTesseract()
Dim resultText = ocrMode.Read("read.jpg")
Console.WriteLine(resultText.Text)
$vbLabelText   $csharpLabel

Paddle OCR 与 Tesseract(OCR 功能比较):图 6 - 来自上一个代码示例的控制台输出

比较

在评估IronOCR、PaddleOCR和Tesseract时,针对光学字符识别(OCR)应用的重要因素,如准确性、速度、语言支持、定制选项和社区支持,每个工具在这些方面的优势是至关重要的。

准确性

PaddleOCR 和 Tesseract 在基准测试中都显示出很高的准确性,但 IronOCR 能够微调和调整预处理步骤,这使其在不同文档类型中提供卓越的结果方面具有优势。

速度

在处理速度方面,IronOCR 因其在 .NET 环境中高效处理文档而脱颖而出,为快速文本识别提供了优化的性能。 PaddleOCR 和 Tesseract 也因其实时处理功能而闻名。

语言支持

Tesseract 支持 100 多种语言,是语言覆盖面最广的 OCR 工具之一。 PaddleOCR 还提供了令人印象深刻的语言支持,尤其是对亚洲语言的支持。 IronOCR 采用 Tesseract 引擎,继承了广泛的语言支持,并结合了额外的增强和优化功能。 这种组合不仅扩大了有效处理的语言范围,还提高了 IronOCR 增强功能直接支持的语言的准确性和速度。

定制选项

IronOCR 在这种定制方面表现出色,它提供了大量选项,允许开发人员对 OCR 过程进行微调,包括图像预处理、文本过滤和自定义字典。 这种定制水平在复杂的 OCR 场景中尤为重要,因为默认设置可能无法满足要求。虽然 PaddleOCR 和 Tesseract 提供了一些定制功能,但 IronOCR 专注于 .NET 生态系统中的开发人员需求,确保了更高程度的灵活性。

社区支持

Tesseract 因其悠久的历史和开源性而拥有一个庞大而成熟的社区,PaddleOCR 的社区也在迅速发展,而 IronOCR 则受益于一个由 .NET 开发人员组成的专注社区。

结论

总之,Tesseract 凭借其广泛的自定义功能和广泛的社区支持为 OCR 项目奠定了坚实的基础,PaddleOCR 则带来了前沿的深度学习技术,实现了高精度和高速度,而 IronOCR 则成为 .NET 开发人员和企业的一个引人注目的选择。 IronOCR 注重内部部署、全面的语言支持和经济高效的许可模式,这使其成为那些优先考虑数据安全性、财务可预测性以及与 .NET 应用程序集成的用户的一个极具吸引力的选择。

对于企业而言,IronOCR 特别具有吸引力,因为其灵活的许可选项包括用于初步评估的免费试用,以及起价为$749的许可证,适合各类规模的组织寻找性能与成本之间的平衡。

Kannaopat Udonpant
坎那帕·乌东攀
软件工程师
在成为软件工程师之前,Kannapat 从日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了生物生产工程系车辆机器人实验室的成员。2022年,他利用自己的 C# 技能加入了 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他能直接向编写 IronPDF 大部分代码的开发者学习。除了同伴学习,Kannapat 还享受在 Iron Software 工作的社交方面。不写代码或文档时,Kannapat 通常在 PS5 上玩游戏或重看《最后生还者》。
< 前一页
iOS OCR库(免费和付费工具比较)
下一步 >
ABBYY FineReader 与 Tesseract:OCR 对比