OCR 工具

Android OCR Library 列表:找到合適的工具

Kannaopat Udonpant
坎納帕特·烏頓潘
2024年6月6日
分享:

在充滿活力的Android應用程式開發環境中,整合光學字符識別(OCR)功能變得越來越重要。 Android OCR 函式庫讓開發者能夠在其應用程式中捕捉圖像,並提供處理圖像和從中提取文本的能力,從而開啟了改善用戶體驗的無限可能性。

在本文中,我們研究了Android OCR 庫的現狀、其功能以及它們如何革新移動應用開發。

理解 Android OCR 庫

Android OCR 庫是專門設計用來識別和提取由 Android 設備拍攝的圖像中的文字的工具。 利用先進的機器學習算法和計算機視覺技術,這些庫分析圖像以識別文本元素並將其轉換為可編輯和可搜索的文本。 通過整合 OCR 功能,開發人員可以創建具備掃描文件、翻譯文本和從圖像中提取信息等任務能力的應用程式。

Android OCR 庫的主要功能

  1. 準確性和語言支持:領先的 Android OCR 庫在多種語言和字體中提供高精度的文本識別。 他們利用先進的算法從影像中準確識別和提取文本,確保在不同的語言環境中獲得可靠的結果。

  2. 即時處理:一些 Android OCR 庫支援即時處理,使應用程式能夠在即時相機影像上執行文字識別。 此功能對於需要即時分析由設備相機捕捉到的文本的應用程式而言,是非常有價值的,例如翻譯應用程式和增強現實體驗。

  3. 易於整合:Android OCR庫被設計為能夠與Android應用程序順利整合。 他們為開發人員提供 SDK 和 API,簡化整合流程,允許快速高效地將 OCR 功能納入移動應用程式。

  4. 自訂選項:Android OCR 庫提供自訂選項,以根據特定的使用案例調整文字識別參數。 開發人員可以調整如圖像預處理、文本分割和語言模型等設置,以優化OCR的性能和準確性。

Android OCR 庫

在 Android 開發中有多個 OCR 庫可供選擇,每個庫都有其獨特的功能、能力和授權模式。 讓我們探索一些最受歡迎的選擇:

1. Tesseract OCR

Tesseract OCR,由 Google 開發,是最廣泛使用的開源 OCR 引擎之一,支持超過 100 種語言。 將 Tesseract OCR 整合到 Android 應用程式中,通常需要使用像 'tess-two' 這樣的封裝庫來簡化過程。 借助其強大的文字識別功能,Tesseract OCR 使開發者能有效地從單一圖像中提取文字。

Tesseract 的多功能性不僅限於語言支持; 它還提供了部署選項的靈活性。 開發者可以選擇在裝置上本地使用 Tesseract 數據,或根據應用程式的需求利用雲端服務。 這種靈活性使 Tesseract OCR 適合多種用例,從行動應用程式中的離線文字識別到雲端解決方案中的大規模文字提取。

2. Google Mobile Vision API

作為 Google Play 服務的一部分,移動視覺 API 提供設備上的文字識別功能。 它提供了一個簡單的界面來檢測和提取圖像中的文字,使其適用於如文件掃描和翻譯的實時應用。 透過其無縫整合,Mobile Vision API 能夠幫助開發人員精確地處理圖像和識別文字。

然而,這現在已被棄用,因此建議開發者遷移到 ML Kit SDK,以獲得最佳性能、最新功能和穩定性。 如下進一步討論。

3. Microsoft Azure 計算機視覺

Azure Computer Vision API 提供基於雲端的OCR服務,支持各種影像分析任務,包括文字識別。 雖然需要網路連線進行處理,但它提供高準確性並支持多種語言。 利用 Azure Computer Vision,開發人員可以以無與倫比的準確性從圖像中提取文字。

除此之外,Azure Computer Vision API 還提供多種其他電腦視覺功能,例如影像標籤、物件偵測和影像審核。 這種多樣性使開發人員能夠構建超越簡單 OCR 功能的複雜應用程序。 藉由利用 Azure Computer Vision 的強大功能,開發人員可以創建利用先進單圖像分析技術的創新解決方案。

4. ABBYY Mobile Web Capture

ABBYY Mobile Web Capture 通過將文件捕捉功能無縫嵌入基於網頁的應用程序,革新了移動端登錄流程。 利用基於 JavaScript 的 SDK,這個創新解決方案允許用戶在網頁中直接使用他們的行動裝置相機輕鬆捕捉文件圖片。 使用 ABBYY Mobile Web Capture,不需要手動點擊或調整—客戶只需將設備的相機對準文件,SDK 就會處理其他部分,確保為轉換成商務就緒數據提供最佳質量的圖像。

這種無摩擦的流程不僅透過簡化文件提交來提升客戶體驗,還通過降低初期階段的放棄率來加速上線旅程。 此外,ABBYY Mobile Web Capture 消除了自定义开发的需求,提供了一种预先构建的、全面的基于网页的捕捉解决方案,可无缝集成到现有应用程序中。 透過自動化文件擷取和提高數據準確性,組織可以簡化操作、提升效率,並為客戶提供無縫的上線體驗。

5. ML Kit

由 Google 開發的ML Kit提供了設備端的文字識別功能,簡化了在 Android 應用中整合 OCR 功能的過程。使用 ML Kit,開發者可以從單一圖像中識別文本,而無需廣泛的機器學習專業知識。通過利用針對 Firebase 的 ML Kit,開發者可以在其應用程序中與基於文本的內容互動解鎖新的可能性。

ML Kit 的一大特色是其強調裝置上的處理,讓應用程式能夠直接在使用者的裝置上執行複雜的機器學習任務。這種方法不僅保證了快速和回應迅速的性能,還通過將敏感數據保留在本地來尊重使用者的隱私。 通過利用ML Kit直觀的API和全面的文檔,開發人員可以快速實現強大的機器學習功能到他們的Android應用中,同時增強用戶參與度和功能性,保持流暢的用戶體驗。

現在讓我們來探索創新的Tesseract4Android函式庫,該函式庫提供專為Android開發量身打造的先進OCR功能。

介紹 Tesseract4Android

Tesseract4Android 代表了一個受歡迎的 tess-two 庫的分支,從頭開始精心重寫,以與現代開發環境無縫集成,例如 CMake 和最新版本的 Android Studio。 此程式庫利用著名的Google Tesseract OCR引擎的功能,以其準確性和廣泛的語言支持而聞名。 透過利用 Java 和 JNI 包裝器,Tesseract4Android 為開發者提供了一個簡單易用的介面,將先進的文本識別功能整合到他們的 Android 應用程序中。

Android OCR 庫(開發者清單):圖1 - Tesseract4Android

主要功能和依賴項

Tesseract4Android 建立在強大的依賴基礎上,確保最佳的性能和可靠性。 主要功能和依賴項包括:

  • Tesseract OCR 5.3.4:利用 OCR 技術的最新進展,Tesseract4Android 提供最先進的文字識別功能。
  • Leptonica 1.83.1:此基本庫提供影像處理功能,透過優化輸入影像提高文字識別的準確性。
  • libjpeg v9elibpng 1.6.40:這些程式庫支持高效的影像處理操作,是 OCR 應用程式中預處理任務的關鍵。

開始使用Tesseract4Android

將 Tesseract4Android 集成到您的 Android 應用程序中是一個簡單的過程。 按照以下步驟開始您的 OCR 之旅:

  1. 新增 JitPack 代碼庫:通過在專案的根目錄 build.gradle 文件中新增 JitPack 代碼庫,將 Tesseract4Android 庫納入您的專案中。
allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
allprojects
If True Then
		repositories
		If True Then
			'...
			maven
			If True Then
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'				url 'https: } }
$vbLabelText   $csharpLabel
  1. 包含相依性:在您的應用程式模組的build.gradle檔案中指定Tesseract4Android相依性,根據您的效能需求選擇標準或OpenMP變體。
dependencies {
        // Standard variant
        implementation 'cz.adaptech.tesseract4android:tesseract4android:4.7.0'
        // OpenMP variant
        implementation 'cz.adaptech.tesseract4android:tesseract4android-openmp:4.7.0'
    }
dependencies {
        // Standard variant
        implementation 'cz.adaptech.tesseract4android:tesseract4android:4.7.0'
        // OpenMP variant
        implementation 'cz.adaptech.tesseract4android:tesseract4android-openmp:4.7.0'
    }
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. 利用 TessBaseAPI:在您的代碼中利用 TessBaseAPI 類來啟動文字識別流程。 使用所需的語言檔案和圖像輸入配置 API,並高效地獲取識別的文本。

使用 Tesseract 的 Android 範例程式碼

以下是使用 Tesseract 在 Android 上對圖像執行 OCR 的基本範例:

import com.googlecode.tesseract.android.TessBaseAPI;
import android.graphics.Bitmap;
public class OCRManager {
    private TessBaseAPI tessBaseAPI;
    public OCRManager(String dataPath, String language) {
        tessBaseAPI = new TessBaseAPI();
        tessBaseAPI.init(dataPath, language);
    }
    public String recognizeText(Bitmap bitmap) {
        tessBaseAPI.setImage(bitmap);
        return tessBaseAPI.getUTF8Text();
    }
    public void onDestroy() {
        if (tessBaseAPI != null) {
            tessBaseAPI.end();
        }
    }
}
import com.googlecode.tesseract.android.TessBaseAPI;
import android.graphics.Bitmap;
public class OCRManager {
    private TessBaseAPI tessBaseAPI;
    public OCRManager(String dataPath, String language) {
        tessBaseAPI = new TessBaseAPI();
        tessBaseAPI.init(dataPath, language);
    }
    public String recognizeText(Bitmap bitmap) {
        tessBaseAPI.setImage(bitmap);
        return tessBaseAPI.getUTF8Text();
    }
    public void onDestroy() {
        if (tessBaseAPI != null) {
            tessBaseAPI.end();
        }
    }
}
Private com As import
Private android As import
Public Class OCRManager
	Private tessBaseAPI As TessBaseAPI
	Public Sub New(ByVal dataPath As String, ByVal language As String)
		tessBaseAPI = New TessBaseAPI()
		tessBaseAPI.init(dataPath, language)
	End Sub
	Public Function recognizeText(ByVal bitmap As Bitmap) As String
		tessBaseAPI.setImage(bitmap)
		Return tessBaseAPI.getUTF8Text()
	End Function
	Public Sub onDestroy()
		If tessBaseAPI IsNot Nothing Then
			tessBaseAPI.end()
		End If
	End Sub
End Class
$vbLabelText   $csharpLabel

IronOCR 介紹:提升 .NET 文本識別能力

IronOCR 成為 .NET 開發人員尋求可靠且高效的 OCR 解決方案的首選。 憑藉其無與倫比的準確性、語言支持及易於整合,IronOCR 使開發人員能在其 .NET 應用程序中解鎖文本識別的新可能性。 無論是處理掃描文件、從圖像中提取資訊,或是自動化數據輸入任務,IronOCR 提供所需的工具和能力,以提升生產力並推動創新。

Android OCR Library(開發人員清單):圖 2 - IronOCR

IronOCR的主要功能

  1. 準確性和可靠性:IronOCR 在文本識別方面提供了卓越的準確性,確保在各種圖像和文本類型上獲得可靠的結果。其先進的算法被訓練來準確識別並提取圖像中的文本,即使在低解析度或傾斜視角等具有挑戰性的條件下也是如此。

  2. 語言和字型支援:IronOCR 支援多種語言和字型,適合針對全球受眾的應用程式。 無論是處理拉丁語系的語言、亞洲文字還是西里爾字母,IronOCR 都能為各種多樣的語言環境提供強大的支援。

  3. 多功能性和靈活性:IronOCR 提供多功能性和靈活性,使開發人員能夠將 OCR 功能集成到各種類型的 .NET 應用程式中。 無論是桌面軟體、網路應用程式,還是雲端解決方案,IronOCR 都能無縫整合到 .NET 生態系中,使開發人員能夠在不同平台和環境中充分利用其功能。

  4. 易於整合:由於其直觀的 API 和詳盡的文檔,將 IronOCR 整合到 .NET 應用程式中非常簡單。 由於對 .NET 框架(如 .NET Core 和 .NET Framework)的全面支持,開發人員可以迅速將 IronOCR 集成到他們的項目中,並以最小的努力從圖像中提取文本。

安裝 IronOCR for .NET

要將 IronOCR 整合到您的 .NET 專案中,請遵循以下步驟:

  1. 透過 NuGet 套件管理器或套件管理器控制台安裝 IronOCR NuGet 套件:
Install-Package IronOcr
Install-Package IronOcr
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr
$vbLabelText   $csharpLabel
  1. 或者,使用 NuGet 套件管理器下載它以用於解決方案。 瀏覽 IronOCR 並安裝。

    Android OCR 庫(給開發者的清單):圖 3 - 安裝 IronOCR

  1. 在你的 .NET 應用程式中開始使用 IronOCR,通過導入 IronOCR 命名空間並利用其 API 來執行 OCR 任務。

使用 IronOCR for .NET 的範例代碼

以下是一個基本範例,演示如何在 .NET 應用程式中使用 IronOCR 對圖像進行 OCR:

using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        string imageText = new IronTesseract().Read(@"images\image.png").Text;
    Console.WriteLine("Recognized Text:");
        Console.WriteLine(imageText);
    }
}
using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        string imageText = new IronTesseract().Read(@"images\image.png").Text;
    Console.WriteLine("Recognized Text:");
        Console.WriteLine(imageText);
    }
}
Imports IronOcr
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim imageText As String = (New IronTesseract()).Read("images\image.png").Text
	Console.WriteLine("Recognized Text:")
		Console.WriteLine(imageText)
	End Sub
End Class
$vbLabelText   $csharpLabel

查看這篇教程,以獲得在.NET MAUI應用程序中實施OCR的全面指南,該應用程序也可以在Android上運行:NET MAUI OCR 教程

輸入圖片

Android OCR 函式庫(開發者列表):圖 4 - 訓練數據輸入

輸出

Android OCR 庫(開發者列表):圖 5 - OCR 輸出

欲獲取更詳細的資訊和更多OCR功能,請造訪文件程式碼範例頁面。

結論

Android OCR 庫利用多語種的訓練數據,例如 Tesseract 數據,從單一圖像中提取文字。 這些庫以人工智慧為核心,例如針對 Android 的 Tesseract,可以讓開發者精確地識別文字。 整合通常包括共享菜單等功能,提供跨各種應用程式和語言的無縫使用者體驗。

在 .NET 生態系統中,IronOCR 以其先進的功能、無縫整合和無與倫比的準確性而脫穎而出。 使用 IronOCR,.NET 開發人員可以輕鬆地從影像中擷取文字,從而為增強用戶體驗、自動化工作流程和推動各行業的數位轉型創造機會。

使用 IronOCR,.NET 應用程式中的文字識別可能性是無限的,為開發人員提供了一個免費試用,以測試推動文字識別和分析可能性邊界所需的工具和功能。

其Lite 許可證起價為$749,無需任何重複費用。 從這裡下載庫並試用一下。

Kannaopat Udonpant
坎納帕特·烏頓潘
軟體工程師
在成為軟體工程師之前,Kannapat 在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat 也成為了車輛機器人實驗室的成員,該實驗室隸屬於生物生產工程學系。2022 年,他利用自己的 C# 技能,加入了 Iron Software 的工程團隊,專注於 IronPDF 的開發。Kannapat 珍視這份工作,因為他可以直接向負責撰寫大部分 IronPDF 程式碼的開發人員學習。除了同儕學習外,Kannapat 還享受在 Iron Software 工作的社交方面。當他不在撰寫程式碼或文件時,Kannapat 通常會在 PS5 上玩遊戲或重看《最後生還者》。
< 上一頁
收據OCR庫(開發人員清單)
下一個 >
最佳光學字符識別軟體