この短いチュートリアルでは、WinForms 用 の Windows AI API サンプル に含まれているテキスト認識機能について説明します。 具体的には、Windows AI API を使用して画像に対してテキスト認識を実行し、認識されたテキストを要約する方法を示します。
[前提条件]
WinForms の [ 作業の開始] ページ の手順を完了します。
イントロダクション
MainForm.csの MainForm クラスは、次の機能を実装する Windows AI API サンプル アプリのメイン ユーザー インターフェイスです。
- [ファイルの選択]: ユーザーがファイル システムからイメージ ファイルを選択し、その画像を PictureBox に表示できるようにします。
- 画像の処理: 選択した画像を処理し、光学式文字認識 (OCR) を使用してテキストを抽出し、抽出されたテキストを要約します。
主要な関数とイベント ハンドラー
WinForms 用の Windows AI API サンプル のより重要な関数とイベント ハンドラーには、次のようなものがあります。
-
SelectFile_Click: ユーザーがイメージ ファイルを選択するためのファイル ダイアログを開き、選択したイメージを表示します。 -
ProcessButton_Click:AI モデルの読み込み、テキスト認識の実行、テキストの要約など、選択した画像の処理を処理します。 -
LoadAIModels: テキストの認識と要約に必要な AI モデル (TextRecognizer と LanguageModel) を読み込みます。 -
PerformTextRecognition: TextRecognizer を使用して、選択した画像に対して OCR を実行し、テキストを抽出します。 この関数は、次の テキスト認識の例に含まれています。 -
SummarizeImageText: LanguageModel を使用して、プロンプトに基づいた抽出されたテキストの概要を生成します。
テキスト認識の例
この例の PerformTextRecognition 関数
private async Task<string> PerformTextRecognition()
{
using TextRecognizer textRecognizer = await TextRecognizer.CreateAsync();
ImageBuffer? imageBuffer = await LoadImageBufferFromFileAsync(pathToImage);
if (imageBuffer == null)
{
throw new Exception("Failed to load image buffer.");
}
RecognizedText recognizedText =
textRecognizer!.RecognizeTextFromImage(imageBuffer);
var recognizedTextLines = recognizedText.Lines.Select(line => line.Text);
string text = string.Join(Environment.NewLine, recognizedTextLines);
richTextBoxForImageText.Text = text;
return text;
}
サンプルの構築と実行
- WindowsAppSDK-Samples リポジトリを複製します。
- "release/experimental" ブランチに切り替えます。
- Samples/WindowsAIFoundry/cs-winforms-pckg フォルダーに移動します。
- Visual Studio 2022 でWindowsAISample.slnを開きます。
- Copilot+ PC のアーキテクチャに合わせてソリューション プラットフォームを変更します。
- ソリューション エクスプローラーでソリューションを右クリックし、[ビルド] を選択してソリューションをビルドします。
- ビルドが成功したら、ソリューション エクスプローラーでプロジェクトを右クリックし、[スタートアップ プロジェクトとして設定] を選択します。
- F5 キーを押すか、[デバッグ] メニューから [デバッグの開始] を選択してサンプルを実行します (デバッグ メニューまたは Ctrl + F5 キーを押して [デバッグなしで開始] を選択して、デバッグなしでサンプルを実行することもできます)。