フッターコンテンツにスキップ
OCRツール

Android用OCRライブラリリスト: 適切なツールを見つける

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によって開発され、100以上の言語をサポートする最も広く使用されているオープンソースのOCRエンジンの一つです。 AndroidアプリにTesseract OCRを統合する際、多くの場合、プロセスを簡素化するために 'tess-two' のようなラッパーライブラリを使用します。 Tesseractの堅牢なテキスト認識能力により、開発者は単一の画像から効率的にテキストを抽出できます。

Tesseractの多様性は、その言語サポートにとどまらず、 展開オプションの柔軟性も提供します。 開発者は、アプリケーションの要件に応じて、Tesseractデータをデバイス上にローカルに配置するか、クラウドベースのサービスを活用するかを選択できます。 この柔軟性により、Tesseract OCRは、モバイルアプリのオフラインテキスト認識からクラウドベースのソリューションでの大規模テキスト抽出に至るまで、幅広い使用ケースに適しています。

2. Google Mobile Vision API

Google Playサービスの一部であるMobile Vision APIは、デバイス上のテキスト認識能力を提供します。 画像からテキストを検出し抽出するための単純なインターフェースを提供し、文書のスキャンや翻訳のようなリアルタイムアプリケーションに適しています。 シームレスなインテグレーションにより、Mobile Vision APIは、開発者が正確に画像を処理しテキストを認識する力を与えます。

しかし、これは現在非推奨であり、開発者はML Kit SDKへの移行を求められています。この移行により、最高のパフォーマンス、最新の機能、および安定性が確保されます。 詳しくは下で説明されます。

3. Microsoft Azure Computer Vision

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は、Webベースのアプリケーションに文書キャプチャ機能をシームレスに埋め込むことでモバイルオンボーディングプロセスを革新します。 JavaScriptベースのSDKを活用するこの革新的なソリューションにより、ユーザーはWebページ内でモバイルデバイスのカメラを直接使用して文書の画像を簡単にキャプチャできます。 ABBYY Mobile Web Captureを使用すると、手動でのクリックや調整は不要で、お客様はデバイスのカメラを文書に向けるだけでSDKが処理を行い、業務準備されたデータへの変換に最適な画像を確保します。

この摩擦のないプロセスは、文書の提出を簡素化することで顧客体験を向上させるだけでなく、初期段階での放棄率を減少させることでオンボーディングジャーニーを加速します。 さらに、ABBYY Mobile Web Captureはカスタム開発の必要性を排除し、既存のアプリケーションとシームレスに統合する事前構築型の包括的なWebベースキャプチャソリューションを提供します。 文書キャプチャの自動化とデータの正確さの向上により、組織は運用を合理化し、効率を向上させ、顧客のオンボーディング体験をシームレスに提供することができます。

5. ML Kit

Googleが開発したML Kitは、AndroidアプリへのOCR機能の統合を簡素化するオンデバイステキスト認識機能を提供します。ML Kitを使用することで、開発者は機械学習の専門知識を必要とせずに単一の画像からテキストを認識できます。Firebase用ML Kitを活用することで、開発者はアプリケーション内のテキストベースのコンテンツとの新しいインタラクションの可能性を解き放つことができます。

ML Kitの目立った特徴は、オンデバイス処理に重点を置いている点です。これによりアプリケーションはユーザーのデバイス上で複雑な機械学習タスクを直接実行できます。このアプローチは、高速で応答性のあるパフォーマンスを保証するだけでなく、ユーザープライバシーを尊重し、機密データをローカルに保ちます。 ML Kitの直感的なAPIと包括的なドキュメントを活用して、開発者はAndroidアプリに強力な機械学習機能を迅速に実装でき、ユーザーエンゲージメントと機能を強化しながらシームレスなユーザー体験を維持できます。

では、特にAndroid開発向けに最先端のOCR機能を提供する革新的なTesseract4Androidライブラリを探りましょう。

Tesseract4Androidの紹介

Tesseract4Androidは、CMakeや最新のAndroid Studioバージョンなどの最新の開発環境とシームレスに統合するために一から慎重に再構築されたtess-twoライブラリのフォークです。 このライブラリは、その正確さと幅広い言語サポートで知られる有名なGoogle Tesseract OCRエンジンの能力を利用しています。 JavaとJNIラッパーを活用することで、Tesseract4AndroidはAndroidアプリケーションに高度なテキスト認識機能を簡単に組み込むための簡潔なインターフェースを開発者に提供します。

Android OCRライブラリ(開発者向けリスト):図1 - Tesseract4Android

主な機能と依存関係

Tesseract4Androidは、最適なパフォーマンスと信頼性を保証する堅牢な依存関係の基盤の上に構築されています。 主な機能と依存関係には以下が含まれます:

  • Tesseract OCR 5.3.4: 最新のOCR技術の進歩を活用し、Tesseract4Androidは最先端のテキスト認識機能を提供します。
  • Leptonica 1.83.1: この重要なライブラリは画像処理機能を提供し、入力画像を最適化してテキスト認識の精度を向上させます。
  • libjpeg v9e および libpng 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' }
        }
    }
    JAVA
  2. 依存関係を含める: パフォーマンス要件に応じて、StandardまたはOpenMPバリアントを選んで、アプリモジュールのbuild.gradleファイルにTesseract4Androidの依存関係を指定します。

    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'
    }
    JAVA
  3. TessBaseAPIを利用する: コード内でTessBaseAPIクラスを利用してテキスト認識プロセスを開始してください。 APIを構成して、目的の言語ファイルと画像入力を設定し、効率的に認識されたテキストを取得します。

Tesseract for Androidを使用したサンプルコード

Tesseract for 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();
        }
    }
}
JAVA

IronOCRの紹介:.NETテキスト認識を高める

IronOCRは、信頼性と効率性を求める.NET開発者にとって、最上のOCRソリューションとして台頭しています。 比類のない精度、言語サポート、統合のしやすさを誇るIronOCRは、.NETアプリケーションでのテキスト認識の新しい可能性を開発者に開かせます。 スキャンされたドキュメントの処理、画像からの情報抽出、データ入力タスクの自動化など、IronOCRは生産性を高め、革新を推進するために必要なツールと機能を提供します。

Android OCRライブラリ(開発者向けリスト):図2 - IronOCR

IronOCRの主な特徴

  1. 精度と信頼性: IronOCRはテキスト認識において卓越した精度を提供し、幅広い画像とテキストタイプで信頼性のある結果を保証します。その高度なアルゴリズムは、低解像度や傾いた視点などの困難な条件下でも画像からテキストを正確に識別し抽出するように訓練されています。
  2. 言語およびフォントサポート: IronOCRは多くの言語とフォントをサポートしており、グローバルなオーディエンスをターゲットとするアプリケーションに適しています。 ラテン系の言語やアジアの文字、キリル文字など、IronOCRは多様な言語環境を強力にサポートしています。
  3. 多様性と柔軟性: IronOCRは多様性と柔軟性を提供し、開発者がさまざまな種類の.NETアプリケーションにOCR機能を統合できるようにします。 デスクトップソフトウェア、Webアプリケーション、クラウドベースのソリューションであっても、IronOCRは.NETエコシステムとシームレスに統合され、開発者は異なるプラットフォームや環境でその機能を活用できます。
  4. 統合の容易さ: IronOCRを.NETアプリケーションに統合するプロセスは、直感的なAPIと広範なドキュメン테ーションのおかげでわかりやすいものです。 .NET Coreや.NET Frameworkなどの.NETフレームワークを幅広くサポートしているため、開発者は最小限の労力でプロジェクトにIronOCRを迅速に組み込み、画像からテキストを抽出し始めることができます。

IronOCR for .NETのインストール

IronOCRを.NETプロジェクトに統合するには、次のステップに従ってください:

  1. NuGetパッケージマネージャーまたはパッケージマネージャーコンソールでIronOCR NuGetパッケージをインストールします:

    Install-Package IronOcr
  2. IronOCR名前空間をインポートし、そのAPIを利用して.NETアプリケーションでOCRタスクを実行します。

IronOCR for .NETを使用したサンプルコード

IronOCRを使用して.NETアプリケーションで画像の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データなどの複数言語に対応したトレーニングデータを利用して、単一の画像からテキストを抽出します。 Tesseract for Androidのようなライブラリは、その中心に人工知能を持ち、高精度でテキストを認識できるようにしています。 統合には、シェアメニューのような機能が含まれることが多く、さまざまなアプリケーションと言語でシームレスなユーザー体験を提供します。

.NETエコシステムでは、IronOCRはその高度な機能、シームレスな統合、比類のない精度で際立っています。 IronOCRを使用することで、.NET開発者は簡単に画像からテキストを抽出でき、ユーザー体験の向上、ワークフローの自動化、さまざまな業界でのデジタルトランスフォーメーションの推進の機会を解き放つことができます。

IronOCRを使用することで、.NETアプリケーションでのテキスト認識の可能性は無限大となり、テキスト認識および分析の可能性を広げるために必要なツールと機能をテストするための無料トライアルを提供します。

それの軽量ライセンスは繰り返しの料金なしで$799から始まります。 こちらからライブラリをダウンロードして試してみてください。

Kannaopat Udonpant
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。