與其他組件比較

IronOCR與Abbyy Finereader的比較

發佈 2022年4月24日
分享:

光學字元識別 (光學字符識別) 是一種將照片、手寫文件、印刷文本和掃描文件轉換為機器可讀文本的技術。這是一種數位化印刷文本的常見方法,使其可以電子編輯、搜索、緊湊存儲、在線顯示,並用於認知計算、機器翻譯等機器處理。 (提取) 文字轉換為試算表。這是一種從印刷的紙質數據記錄進行數據輸入的廣泛使用的形式——無論是護照文件、發票、銀行對賬單、計算機化收據、名片、郵件、靜態數據的列印件或任何適合的文檔。模式識別、人工智慧和計算機視覺都屬於OCR研究的範疇。

在本文中,我們將比較兩個常用的庫和應用程序,這些應用程序用於識別PDF文檔和圖像中的文字。它們是:

  • ABBYY FineReader PDF Software
  • 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/A-1 到 PDF/A-3 的長期存檔,並且 PDF/UA 確保在使用輔助軟體(如屏幕閱讀器)時內容是可訪問的。它還使專業人士能夠在數位工作場所中最大程度地提高效率。

使用 ABBYY FineReader 創建和更新自己的互動 PDF 表單,以成功收集信息和標準化文件。通過結合各種類型的互動字段、設置操作、編輯現有 PDF 表單或向傳統 PDF 添加表單元素來創建表單。

ABBYY FineReader 可以立即將紙質文件、掃描件和掃描的 PDF 轉換為可搜索的 PDF,讓您從數位檔案中檢索文件並訪問其中包含的信息。FineReader PDF 支持所有 PDF/A 格式的合規級別和變體,這是行業標準的長期存檔格式,從 PDF/A-1 到 PDF/A-3。

ABBYY 最新的基於 AI 的 OCR 技術 FineReader PDF 使您可以更輕鬆地對所有類型的文件進行數位化、檢索、編輯、保護、共享和協作。FineReader 還包括文件比較功能,這有助於我們比較原始文件以及轉換后的 PDF 和圖像文件。

1.2 IronOCR — 介紹及功能

IronOCR 提供軟體給使用 IronOCR for .NET 的工程師,在 .NET 應用程式和網站中從照片和PDF中讀取文字內容。它掃描照片中的文字和條碼,並支持多種世界語言;之後它可以提供純文字或結構化數據的輸出。來自 Iron Software 的 OCR 庫可用於 MVC、Web、控制台和桌面 .NET 應用程式。對於商業部署,提供由開發團隊直接協助的許可。

  • 使用最新的 Tesseract 5 引擎,IronOCR 可以讀取任何圖片或 PDF 格式中的文字、條碼和 QR 碼。此庫能快速將 OCR 增加到桌面、控制台和網頁應用程式中。
  • IronOCR 支持 127 種國際語言。它也支持自定義語言和單詞列表。
  • IronOCR 能讀取超過 20 種條碼格式和 QR 碼。
  • IronOCR 支持多頁面的 GIFs 和 TIFF 圖像格式。
  • IronOCR 提供低品質掃描圖像的校正功能。
  • IronOCR 支持多線程 — 它可以同時執行一個或多個進程。
  • IronOCR 可以為頁面、段落、行、單詞、字符等提供結構化數據輸出。
  • IronOCR 支持多種操作系統,如 Windows、Linux、macOS 等。

2. 在 Visual Studio 中創建新專案

打開 Visual Studio 軟體,然後前往「文件」選單。選擇「新專案」,然後選擇「控制台應用程式」。

在相應的文本框中輸入專案名稱並選擇文件路徑。然後,點擊創建按鈕並選擇所需的 Dot net Framework,如下圖所示。

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 對象方法 add 時,可能需要在代碼中提供可用的圖片路徑,可以添加任意數量的圖像。我們之前構建的 IronTesseract 對象中的 "Read" 函數可以通過解析圖像文件並將結果提取到 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文件或圖像,或者我們可以選擇兩種文件。

選擇文件後,點擊“OK”按鈕。系統會自動開始將圖片掃描成可編輯的文字,並在一個類似下圖的窗口顯示結果。

上圖顯示了將來源 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#

Iron Tesseract 也提供以下方法:

  • AddPdfPage
  • 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 有一些附加選項,如:繪製文字區域繪製圖片區域繪製表格區域繪製識別區域 等。這些選項能幫助用戶提升 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 循環,我們可以一一獲取所有條碼的詳細信息。此外,它將掃描條碼並讀取條碼的值——在一個過程中完成兩個操作。!

此外,還支持執行緒選項,這意味著我們可以同時執行多個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 框架中使用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.10 剛剛發布

免費 NuGet 下載 總下載次數: 2,433,305 查看許可證 >