.NET MAUI OCRを使用したIronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

イントロダクション

マイクロソフトが.NET MAUIを公開しました (マルチプラットフォームアプリUI)であり、.NET Framework を使用してクロスプラットフォームのアプリケーションを構築するためのフレームワークです。 コードベースを共通にして、Android、iOS、Windowsで動作するコードを書けるようになり、時間、リソース、労力を節約できます。 .NET MAUIはオープンソースです。 以下のリンクから、例を含む .NET MAUI プロジェクトのソースコードを入手できます。 GitHub(ギットハブ).

このハウツーガイドでは、IronOCRライブラリを使用した例を通じて、.NET MAUIでOCRプロセッサアプリを作成する方法を学びます。

IronOCR: .NET OCRライブラリ

IronOCR は、開発者が簡単に光学文字認識(OCR)を統合できる .NET OCR NuGet ライブラリです。 (OCR (光学式文字認識)) 自分のプロジェクトに機能を統合する。 IronOCRを使用すると、PDFドキュメントをスキャンして、データ品質を損なうことなく検索可能および編集可能なテキスト/データに変換できます。 これにより、ユーザーはPDFドキュメントから必要な情報を簡単に見つけたり、必要に応じて変更や修正を加えたりすることができます。

IronOCRは、あらゆるプラットフォームで利用可能なTesseractバイナリの中で最も高度なビルドです。 速度と精度が向上し、すべてのバージョンのTesseractをサポートするネイティブなDLL/APIを提供します。 (Tesseract 3 から Tesseract 5 まで) 簡単なインストール/ダウンロードで。

IronOCR の言語サポートは非常に充実しており、125 の国際的な言語が利用可能です。 ツール/DLLにはデフォルトで英語がインストールされています。 ただし、NuGetを介して言語をインストールするか、DLLをダウンロードすることで、簡単に言語を追加できます。

Tesseractとの比較

IronOCRは、特にC#開発者向けに設計されており、.NETアプリケーションとシームレスに統合されます。 対照的に、Tesseractは汎用のOCRライブラリであり、C#で使用するには開発者が独自のラッパーを書く必要があります。 さらに、IronOCRは革新的な人工知能アルゴリズムのおかげで、他のライブラリと比較して優れた精度と速度を提供します。

IronOCRは包括的なドキュメントと技術サポートが付属しており、初心者の開発者でも迅速に立ち上げることができます。

IronOCRはTesseractよりも遥かに高精度です。 実際、正確率は99%以上であり、Tesseractの正確率は70.2%から92.9%程度に過ぎません。 IronOCRとTesseractの比較に関する詳細情報とサポートは次をご覧ください YouTube (ユーチューブ) ビデオ

OCR MAUIアプリを作成する手順

次の手順に従って、IronOCRを使用して .NET MAUI フレームワークでOCRアプリを作成します。

前提条件

.NET MAUIでOCRアプリを作成するには、いくつかの前提条件があります。

Visual Studio 2022 (最新バージョン)

  1. .NET 6 または 7

  2. Visual StudioにインストールされたMAUIパッケージ

  3. Visual Studioで実行されている.NET MAUIプロジェクト

IronOCRをインストールする

最初のステップは、NuGet パッケージ マネージャー コンソールを使用して IronOCR ライブラリをインストールすることです。 ソリューションエクスプローラーを右クリックしてNuGet パッケージ コンソールを開き、以下のコマンドを入力してIronOCRライブラリをインストールしてください。

Install-Package IronOcr

フロントエンドデザイン

このセクションでは、アプリケーションのフロントエンドを設計します。 MainPage.xaml ファイルを開きます。

.NET MAUI OCRチュートリアル IronOCRの使用 - 図1: MainPage.xaml

MainPage.xaml

OCRのために画像やPDFドキュメントを選択するためのボタンを指定します。 ボタンのclickedプロパティはIOCR関数を実行するように設定されています。 次のセクションでこの関数を定義します。

<Button
    x:Name="OCR"
    Text="Click to OCR"
    Clicked="IOCR"
    HorizontalOptions="Center" />
XML

ここでは、OCRImageという名前のImageボックスを作成します。 この画像ボックスは、選択したファイルを表示するのに役立ちます。

<Image
    x:Name="OCRImage"
    SemanticProperties.Description="Selected Image"
    HeightRequest="300"
    HorizontalOptions="Center" />
XML

次に、Editorコントロールを作成します。 それは画像またはPDFドキュメントから抽出されたテキストを表示するために使用されます。

<Editor
    x:Name="outputText"
    HorizontalOptions="Center"
    WidthRequest="600"
    HeightRequest="300"
    />
XML

以下は完成したXAMLユーザーインターフェースのマークアップです。

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="IronOCR_MAUI_Test.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">
            <Button
                x:Name="OCR"
                Text="Click to OCR"
                Clicked="IOCR"
                HorizontalOptions="Center" />
            <Image
                x:Name="OCRImage"
                SemanticProperties.Description="Selected Image"
                HeightRequest="300"
                HorizontalOptions="Center" />

            <Editor
                x:Name="outputText"
                HorizontalOptions="Center"
                WidthRequest="600"
                HeightRequest="300"
                />
        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

さて、OCR機能のコードを記述する時が来ました。

IronOCRを使用したOCRのコード

「MainPage.xaml.cs」クラスファイルを開き、以下の関数を記述します。

.NET MAUI OCR Tutorial Using IronOCR - Figure 2: MainPage.xaml.cs  メインページ.xaml.cs

MainPage.xaml.cs メインページ.xaml.cs

private async void IOCR(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });
    var path = images.FullPath.ToString();
    OCRImage.Source = path;

    var ocr = new IronTesseract();
    using (var input = new OcrInput())
    {
        input.AddImage(path);
        OcrResult result = ocr.Read(input);
        string text = result.Text;
        outputText.Text = text; 
    }
}
private async void IOCR(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });
    var path = images.FullPath.ToString();
    OCRImage.Source = path;

    var ocr = new IronTesseract();
    using (var input = new OcrInput())
    {
        input.AddImage(path);
        OcrResult result = ocr.Read(input);
        string text = result.Text;
        outputText.Text = text; 
    }
}
Private Async Sub IOCR(ByVal sender As Object, ByVal e As EventArgs)
	Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
		.PickerTitle = "Pick image",
		.FileTypes = FilePickerFileType.Images
	})
	Dim path = images.FullPath.ToString()
	OCRImage.Source = path

	Dim ocr = New IronTesseract()
	Using input = New OcrInput()
		input.AddImage(path)
		Dim result As OcrResult = ocr.Read(input)
		Dim text As String = result.Text
		outputText.Text = text
	End Using
End Sub
VB   C#

上記のコードを分解してみましょう。

以下のコードは、C# の FilePicker オブジェクトを使用して画像を選択するのに役立ちます。 FilePickerのタイトルとFilePickerのファイルタイプは両方とも指定された値に設定され、画像のパスも指定されます。

var images = await FilePicker.Default.PickAsync(new PickOptions
{
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
var images = await FilePicker.Default.PickAsync(new PickOptions
{
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
	.PickerTitle = "Pick image",
	.FileTypes = FilePickerFileType.Images
})
Dim path = images.FullPath.ToString()
VB   C#

以下の変数 path に指定された画像を使用するように Image ボックスコントロールを次に設定します。

OCRImage.Source = path;
OCRImage.Source = path;
OCRImage.Source = path
VB   C#

その後、IronTesseract クラスの新しいインスタンスを作成して、IronOCR を使用し始めます。 選択した画像からテキストを抽出し、その内容をエディタコントロールに表示するために使用します。

var ocr = new IronTesseract();
    using (var input = new OcrInput())
    {
        input.AddImage(path);
        OcrResult result = ocr.Read(input);
        string text = result.Text;
        outputText.Text = text; 
    }
var ocr = new IronTesseract();
    using (var input = new OcrInput())
    {
        input.AddImage(path);
        OcrResult result = ocr.Read(input);
        string text = result.Text;
        outputText.Text = text; 
    }
Dim ocr = New IronTesseract()
	Using input = New OcrInput()
		input.AddImage(path)
		Dim result As OcrResult = ocr.Read(input)
		Dim text As String = result.Text
		outputText.Text = text
	End Using
VB   C#

出力

プロジェクトを実行すると、以下のUIが表示されます。ボタンをクリックすると、任意の場所から画像/PDFを選択するよう促されます。

.NET MAUI OCR Tutorial Using IronOCR - Figure 3: OCR出力

OCR出力

画像を選択すると、IronOCRは画像を処理し、認識された単語をエディターコントロールに表示します。 エディターコントロールからテキストをコピーすることができます。

.NET MAUI OCR Tutorial Using IronOCR - Figure 4: OCR画像

OCR画像

結果によると、IronOCRはパターンを伴う複雑な画像を処理する際に素晴らしい仕事を行い、正確な結果を示しています。 IronOCRは、事前にトレーニングされたモデルを使用して文字の赤い点を検出し、必要な正確な文字を選択することができます。

結論

詳細については、こちらをご参照ください チュートリアル IronOCRの使用方法に関する追加情報を提供します 画像からテキストを読み取る.

IronOCRは開発目的で無料です。 非常に低価格で購入できます、価格はわずか $599 からです。 料金プランをご確認ください これ.