跳至頁尾內容
OCR 工具
如何使用開源庫在C#中實施OCR

C# 開源的 OCR(開發者列表)

光學字元識別(OCR)是一種改變遊戲規則的技術,徹底改變了掃描文件在當今數位世界中的使用方式。 它使電腦能夠識別和提取來自各種來源的文字,包括掃描的PDF文件,讓我們能夠有效地編輯和互動PDF文件。 光學字元識別(OCR)程式之一是Adobe Acrobat,它可讓您快速從掃描文件中提取文字並將其轉換為可編輯的PDF和可搜尋的圖像PDF。

開發人員可以通過使用Tesseract和IronOCR等OCR程式庫,存取使用先進算法和機器學習方法的強大工具和API。 這些程式庫能夠精確地識別文字,讓您更輕鬆地管理和檢索有用的資訊,無論是以前的掃描文件還是全新的文件。 OCR提供了無縫的內容分析,通過充分利用掃描的文件和頁面圖像,幫助企業和個人最大化其生產力。 OCR是當前技術中的一個重要工具,無論是用於將紙質記錄數位化、從發票中提取資料,還是僅僅增強文件的可存取性。

Tesseract

最著名的開源OCR引擎名為Tesseract,最初由Hewlett-Packard建立。 自2006年以來,Google一直支持這個釋出的免費軟體專案,並且根據Apache授權發佈。

目前市場上可用的最準確的開源和免費系統之一是Tesseract OCR引擎。Tesseract現在支持116種語言,其最新穩定版本4.1.1是基於LSTM的。

當從命令行介面運行時,因為Tesseract没有自己的內建介面,所以需要來自其他GUI(圖形使用者介面)的支持。 它能夠利用其神經網路學習新資訊,並且具有一條先進的圖像預處理管道。將OCR功能新增到您的.NET應用程式的最有效技術是Tesseract .NET SDK,這是提供文字識別功能的最佳解決方案之一。 即便如此,Tesseract毫無疑問仍是目前市場上最佳的OCR程式庫。

GOCR

OCR(光學字元識別)程式GOCR是根據GNU公共許可證建立的。 它將文字文件轉回文件的掃描圖像。 在啟動該程式並管理SF上的開發團隊後,Joerg Schulenburg今天仍然以(非常)低的時間基數處理該包。

由於GOCR可以與多個前端配合使用,將其移植到其他作業系統、網路應用程式和架構相對簡單。 它可以讀取各種圖像檔案型別,且直到2010年,其質量持續改善。

根據GOCR,它可以處理高度為20-60像素的單列無襯線字體。 它報告了用非拉丁字母、襯線字體、重疊字母、不同字體、噪聲照片和過度斜傾角書寫的文字的困難。 GOCR也能翻譯條碼。

CuneiForm

CuneiForm是現在也被稱為"Cognitive OpenOCR"的免費開源技術。它具有內建輸出和資料庫。 它支持23種不同的語言,還執行文字格式掃描、文件佈局分析和識別等任務。

Cognitive Technologies開發了OpenOCR的許可證,這些許可證是免費軟體和BSD。 儘管它支持跨平台使用,但Linux使用者並未提供圖形介面。

為了簡化任何.NET Framework 2.0或更高版本應用程式中的字元識別工作,使用了封裝庫Puma .NET。 它在處理資料時進行字典檢查,以提高識別的質量。

CuneiForm是一種技術,旨在自動或半自動將紙制文件和圖像文件的電子副本轉換為可編輯的形式,而不影響結構和原始文件字體。 該系統包含兩個部分,用於批量和單個文件的電子處理。此外,該系統支持俄文和英文的組合。 只有Andrei Borovsky在2009年建立的分支支持其他混合語言的識別。 教導該系統識別其他語言充滿挑戰,因為每種語言都與一個dat文件相關,其結構和建立過程並未由開發者揭露。

Kraken

Kraken是為了解決Ocropus的問題而開發的,但不影響其其他功能。 它使用其CLSTM神經網路庫,並充分利用先前專案中獲得的新資料的寶貴經驗。 它需要使用某些外部程式庫才能在不同平台上有效運行。 在儲存資訊的幫助下,它可以對潛在資料驗證問題做出更準確的預測。 此外,其工作方法促進了新模組的輕鬆部署和訓練。

A9T9

A9T9是一款免費的OCR軟體,可用於提取圖片文件中的文字並轉換圖像和PDF文件。 它提供了Tesseract OCR引擎的圖形使用者介面(GUI)。

該程式易於設置。最重要的是,它完全免費且開源。 它沒有間諜軟體和廣告軟體。

您可以打開PDF文件或圖像,源文件的內容將顯示在左側窗口中。 如果您的文件有多頁或是多頁文件,您可以使用頁面底部的箭頭在頁面間導航。

要啟動OCR過程,只需點擊綠色的OCR按鈕,輸出將顯示在右側的第二個窗格中。 您可以選擇將輸出文字儲存為文字文件和Word文件。

IronOCR

與標準Tesseract程式庫相比,IronOCR擴展了Tesseract,提供了本機C# OCR程式庫,具有更高的準確性、改進的性能和增強的穩定性。 IronOCR可以在.NET程式和網站中使用,從PDF和圖像中提取文字。 它支持廣泛的外語,並且可以生成純文字或結構化資料輸出。 它能夠掃描具有內嵌文字的條碼和圖像。 該程式庫可用於在.NET開發的應用程式中,包括控制台、網路、MVC和桌面。開發團隊提供商業部署的授權過程的直接支持。 IronOCR與最新版本的Visual Studio相容。

IronOCR的優點

  • 使用最新的Tesseract 5引擎,IronOCR能夠從各種圖像或PDF文件中讀取紙質文件、條碼和QR碼。 這個軟體包簡化了將OCR新增到桌面、控制台和網路應用程式中的過程。
  • IronOCR可讓我們執行OCR,這使我們能夠將掃描的PDF轉換為可搜索的PDF。
  • 除了單詞列表和自定義語言外,IronOCR支持全球125種不同的語言。
  • IronOCR能夠掃描20種不同型別的條碼和QR碼。
  • IronOCR能夠以純文字和條碼資料形式提供輸出。 開發人員可以使用替代的結構化資料物件範式檢索所有內容,以直接進入系統。 這包括網路應用程式中的結構化標題、段落、行、單詞和字元。

以下是用於識別給定圖像中的文字內容並將其轉換為文字的範例程式碼。

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方法指定每個圖像的路徑,以新增任意多的圖片。 在新增圖像後,會在Read方法,以對提供的輸入進行OCR。 然後將提取的文字通過控制台顯示出來。

下方的輸出顯示了從先前提供的圖像中提取的文字,證明成功從圖像中提取了文字。

OCR C#開源(供開發者使用的列表)圖1-輸出

請查看這篇文章以獲得IronOCR的詳盡指導。

結論

OCR開源工具允許我們使用其源程式碼構建我們自己的程式。 然而,某些工具並沒有官方程式庫或專門的團隊,以在程式碼問題出現時提供支持。 Tesseract的文件也缺乏範例程式碼或常見使用情況的教程,使得初學者難以理解程式碼和程式庫。

IronOCR支持各種.NET專案,如.NET Framework標準2、.NET Framework 4.5和.NET Core 2、3和5。它也可以與新的技術如Mono、Xamarin和Azure一起使用。 通過利用IronOCR技術,我們可以提升Tesseract的效果並糾正錯誤掃描的文件或圖像。 複雜的Tesseract字典系統通過NuGet包進行管理。 我們使用IronOCR程式庫來開發一個OCR工具。

使用IronOCR,我們可以在無需其他配置的情況下使用程式,並且它支持PDF文件、多幀TIFF以及所有常見的圖像格式。 它還提供條碼識別功能,使我們能夠提取條碼資料並從圖像中讀取條碼值。 IronOCR提供具有免費試用的性價比高的開發版,終身許可證包含在IronOCR套件中,無需額外費用。IronOCR套件為多個平台提供覆蓋,只需一次性支付。 有關IronOCR價格的更多資訊,請參閱此頁面

Kannaopat Udonpant
軟體工程師
在成為軟體工程師之前,Kannapat在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat還成為車輛機器人實驗室的一員,該實驗室隸屬於生產工程系。在2022年,他憑藉C#技能加入了Iron Software的工程團隊,專注於IronPDF。Kannapat珍視他的工作,因為他能直接向撰寫大部分IronPDF程式碼的開發者學習。除了同儕學習,Kannapat還喜歡在Iron Software工作的社交方面。不寫程式碼或文件時,Kannapat通常在他的PS5上玩遊戲或重看The Last of Us。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話