Windows アプリ SDKの AI ベースのテキスト認識 (OCR) の API リファレンス
重要
この機能はまだ使用できません。 Windows アプリ SDKの今後の体験チャネルリリースで出荷される予定です。
Windows アプリ SDK の実験的チャネルには、開発の初期段階にある API と機能が含まれています。 実験用チャネル内のすべての API は、広範な変更と破壊的変更の対象となり、今後のリリースからいつでも削除される可能性があります。 これらは運用環境での使用ではサポートされていません。また、実験的機能を使用するアプリを Microsoft Store に公開することはできません。
画像内のテキスト (文字、単語、線、多角形のテキスト境界、各一致の信頼度) を検出して抽出し、コンピューターで読み取り可能な文字ストリームに変換できる、人工知能 (AI) によってサポートされるWindows アプリ SDK API について説明します。
詳細については、Windows アプリ SDKの「Get Started with Text Recognition (OCR)」を参照してください。
ヒント
Windows アプリ SDK GitHub リポジトリに新しい Issue を作成して、これらの API とその機能に関するフィードバックを提供します。 (タイトルに OCR を含めるようにしてください!)
Microsoft.Windows.Vision namespace
画像のテキスト コンテンツを分析する機械学習モデルの API を提供します。
Microsoft.Windows.Vision.TextRecognition.BoundingBox struct
public struct BoundingBox
認識された単語とテキスト行の境界に使用される 4 つのポイントを持つ多角形。
フィールド
BottomLeft
境界ボックスの左下隅。
BottomRight
境界ボックスの右下隅。
TopLeft
境界ボックスの左上のポイント。
TopRight
境界ボックスの右上のポイント。
解説
単語または行の境界として返された場合、TopLeft、TopRight、BottomRight、および BottomLeft ポイントは、画像内で認識されたテキストの回転と傾斜を基準とします。 次の図は、0 が TopLeft、1 が TopRight、2 が BottomRight、3 が BottomLeft (すべてテキストを基準とする) であるさまざまなテキスト回転のポイント レイアウトを示しています。
Microsoft.Windows.Vision.DetectedLineStyle enum
public enum DetectedLineStyle
認識できる行のスタイルを指定します。
列挙型フィールド
Handwritten: 0
テキスト行は手書きです。
Other: 1
テキスト行は手書きではありません。
Microsoft.Windows.Vision.OrientationDetectionOptions enum
public enum OrientationDetectionOptions
認識できるテキストの向きを指定します。
列挙型フィールド
None: 0
向きが認識されません。
DetectOrientation: 1
向きが認識されます。
Microsoft.Windows.Vision.RecognizedLine class
public sealed class RecognizedLine
認識されたテキストの 一行を表します。
Microsoft.Windows.Vision.RecognizedLine.Style property
public Microsoft.Windows.Vision.RecognizedLineStyle Style { get; }
認識された行のスタイルを取得します。
プロパティ値
認識された行のスタイル。
解説
テキスト行が手書きであったかどうか、および認識の信頼度が含まれます。
Microsoft.Windows.Vision.RecognizedLine.Text property
public string Text { get; }
認識された行のテキストを取得します。
プロパティ値
認識された行のテキスト。
解説
すべての単語がスペースで連結されています。
Microsoft.Windows.Vision.RecognizedLine.Words property
public Microsoft.Windows.Vision.RecognizedWord[] Words { get; }
認識された行の単語。
プロパティ値
認識された行の単語。
Microsoft.Windows.Vision.RecognizedLineStyle struct
public struct RecognizedLineStyle
認識された行のスタイルを表します。
構造体のフィールド
信頼度
行スタイル認識の信頼度レベル。
Name
行のスタイル名。
Microsoft.Windows.Vision.RecognizedText class
public sealed class RecognizedText
画像からテキストへの認識操作の結果を表します。
Microsoft.Windows.Vision.RecognizedText.ImageAngle property
public float ImageAngle { get; }
認識されたテキストの時計回りの回転角度を度単位で取得します。
プロパティ値
認識されたテキストの時計回りの回転角度 (度単位)。
Microsoft.Windows.Vision.RecognizedText.Lines property
public Microsoft.Windows.Vision.RecognizedLine[] Lines { get; }
認識された行のコレクションを取得します。
プロパティ値
認識された行のコレクション。
Microsoft.Windows.Vision.RecognizedWord class
public sealed class RecognizedWord
認識された ひとつの単語を表します。
Microsoft.Windows.Vision.RecognizedWord.BoundingBox property
public Microsoft.Windows.Vision.BoundingBox BoundingBox { get; }
認識された単語の四角形境界を取得します。
プロパティ値
認識された単語の四角形境界。 TopLeft は、単語の回転を基準にしています。
Microsoft.Windows.Vision.RecognizedWord.Confidence property
public float Confidence { get; }
この単語が正しく認識された可能性を取得します。
プロパティ値
この単語が正しく認識された可能性。 値の範囲は 0.0 から 1.0 (両端の値を含む) です。
Microsoft.Windows.Vision.RecognizedWord.Text property
public string Text { get; }
認識された単語のテキストを取得します。
プロパティ値
認識された単語のテキスト。
Microsoft.Windows.Vision.TextRecognition.TextRecognizer class
public sealed class TextRecognizer : System.IDisposable
ソース画像内の単語と行、およびその四角形の境界を認識します。
Microsoft.Windows.Vision.TextRecognizer.Close method
オブジェクトと関連付けられているリソースを破棄します。
解説
C# では実装されていません。
Microsoft.Windows.Vision.TextRecognizer.CreateAsync method
public static Windows.Foundation.IAsyncOperation<Microsoft.Windows.Vision.TextRecognizer> CreateAsync ();
TextRecognizer クラスの新しいインスタンスを非同期的に作成します。
返品
TextRecognizer クラスの新しいインスタンス。
GetModelReadyStatus が Ready でない場合、エラーが返されます。
Microsoft.Windows.Vision.TextRecognizer.IsAvailable method
public static bool IsAvailable ();
基になる言語モデルがインストールされているかどうかを取得します。
返品
基になる言語モデルがインストールされている場合は True。 それ以外の場合は、 falseです。
Microsoft.Windows.Vision.TextRecognizer.MakeAvailableAsync method
public static Windows.Foundation.IAsyncOperationWithProgress<Microsoft.Windows.Management.Deployment.PackageDeploymentResult,
Microsoft.Windows.Management.Deployment.PackageDeploymentProgress> MakeAvailableAsync ();
基になる言語モデルがインストールされ、使用できることを確認します。
返品
完了時に PackageDeploymentResult を返す進行状況を含む非同期アクション。
Microsoft.Windows.Vision.TextRecognizer.RecognizeTextFromImage(Microsoft.Windows.Imaging.ImageBuffer, Microsoft.Windows.Vision.TextRecognizerOptions) method
public Microsoft.Windows.Vision.RecognizedText RecognizeTextFromImage (Microsoft.Windows.Imaging.ImageBuffer imageBuffer,
Microsoft.Windows.Vision.TextRecognizerOptions options);
指定された画像内のテキストを認識します。
パラメーター
imageBuffer
圧縮されていないビットマップ。
options
TextRecognizer のテキスト認識モデルを構成するためのオプション。
返品
認識されたテキスト。
Microsoft.Windows.Vision.TextRecognizer.RecognizeTextFromImageAsync(Microsoft.Windows.Imaging.ImageBuffer, Microsoft.Windows.Vision.TextRecognizerOptions) method
public Windows.Foundation.IAsyncOperation<Microsoft.Windows.Vision.RecognizedText> RecognizeTextFromImageAsync (Microsoft.Windows.Imaging.ImageBuffer imageBuffer,
Microsoft.Windows.Vision.TextRecognizerOptions options);
指定された画像内のテキストを非同期的に認識します。
パラメーター
imageBuffer
圧縮されていないビットマップ。
options
TextRecognizer のテキスト認識モデルを構成するためのオプション。
返品
認識されたテキスト。
Microsoft.Windows.Vision.TextRecognizerOptions class
public sealed class TextRecognizerOptions
TextRecognizer のテキスト認識モデルを構成するためのオプションを提供します。
Microsoft.Windows.Vision.TextRecognizerOptions.MaxAnalysisSize property
public Windows.Graphics.SizeInt32 MaxAnalysisSize { get; set; }
最大画像サイズを取得または設定します。
プロパティ値
最大画像サイズ。 既定値は、幅 1152、高さ 768 です。
解説
このサイズは提案であり、常に優先されるとは限りません。
ソース画像が最大サイズより大きい場合は、自動的にサイズの上限に縮小されます。
Microsoft.Windows.Vision.TextRecognizerOptions.MaxLineCount property
public uint MaxLineCount { get; set; }
認識操作から返される行の最大数を取得または設定します。
プロパティ値
認識操作から返される行の最大数。
解説
既定値は MaxLineCountSupported です。 指定した場合、返される最大行数は、この値と MaxLineCountSupported の小さい方になります。
Microsoft.Windows.Vision.TextRecognizerOptions.OrientationDetection property
public Microsoft.Windows.Vision.OrientationDetectionOptions OrientationDetection { get; set; }
テキストの向きを検出するかどうかを取得または設定します。
プロパティ値
テキストの向きを検出するかどうか。 既定値は None です。
Microsoft.Windows.Vision.TextRecognizerOptions.#ctor constructor
public TextRecognizerOptions ();
TextRecognizerOptions クラスの新しいインスタンスを初期化します。
Microsoft.Windows.Imaging namespace
画像を操作する機械学習モデルの API を提供します。
Microsoft.Windows.Imaging.ImageBuffer class
public sealed class ImageBuffer : System.IDisposable
効率的なクロスプロセス マーシャリングのための圧縮されていないビットマップを表します。
解説
ImageBuffer は、画像データを必要とする TextRecognizer などの AI モデル API で使用できます。 一般的な使用法には、既存の SoftwareBitmap から ImageBuffer を作成することが含まれます。
Microsoft.Windows.Imaging.ImageBuffer.Buffer property
public Windows.Storage.Streams.IBuffer Buffer { get; }
現在の画像バッファーを取得します。
プロパティ値
現在の画像バッファー。
Microsoft.Windows.Imaging.ImageBuffer.BufferLength property
public uint BufferLength { get; }
画像バッファーの長さを取得します。
プロパティ値
画像バッファーの長さ。
Microsoft.Windows.Imaging.ImageBuffer.Close method
オブジェクトと関連付けられているリソースを破棄します。
解説
C# では実装されていません。
Microsoft.Windows.Imaging.ImageBuffer.CopyToBuffer(System.Byte[]) method
public void CopyToBuffer (byte[] values);
指定されたターゲット バッファーに現在のバッファーをコピーします。
パラメーター
値
バッファー内のバイトのベクトル。
Microsoft.Windows.Imaging.ImageBuffer.CreateBufferAttachedToBitmap(Windows.Graphics.Imaging.SoftwareBitmap) method
public static Microsoft.Windows.Imaging.ImageBuffer CreateBufferAttachedToBitmap (Windows.Graphics.Imaging.SoftwareBitmap softwareBitmap);
ビットマップ オブジェクトから IMemoryBufferReference を取得して、既存の SotftwareBitmap から新しい ImageBuffer を作成します。
パラメーター
softwareBitmap
ImageBuffer の作成に使用する SotftwareBitmap。
返品
ImageBuffer、またはサポートされていない形式の場合は null。
解説
SoftwareBitmap は、非同期操作が完了し、新しい ImageBuffer が破棄されるまでロックされます。
Microsoft.Windows.Imaging.ImageBuffer.CreateCopyFromBitmap(Windows.Graphics.Imaging.SoftwareBitmap) method
public static Microsoft.Windows.Imaging.ImageBuffer CreateCopyFromBitmap (Windows.Graphics.Imaging.SoftwareBitmap softwareBitmap);
基になるビットマップ データをコピーして、既存の SotftwareBitmap から新しい ImageBuffer を作成します。
パラメーター
softwareBitmap
ImageBuffer の作成に使用する SotftwareBitmap。
返品
ImageBuffer、またはサポートされていない形式の場合は null。
解説
SoftwareBitmap は、非同期操作が完了し、新しい ImageBuffer が破棄されるまでロックされます。
Microsoft.Windows.Imaging.ImageBuffer.CreateSoftwareBitmap method
public Windows.Graphics.Imaging.SoftwareBitmap CreateSoftwareBitmap ();
ImageBuffer に格納されているピクセル データから、ピクセル タイプ BGRA32 の新しい SoftwareBitmap を作成します。
返品
ピクセル タイプ BGRA32 の新しい SoftwareBitmap。
Microsoft.Windows.Imaging.ImageBuffer.Height property
public uint Height { get; }
画像の高さをピクセル単位で取得します。
プロパティ値
画像の高さ (ピクセル単位)。
Microsoft.Windows.Imaging.ImageBuffer.#ctor(Windows.Storage.Streams.IBuffer, Microsoft.Windows.Imaging.PixelFormat, System.UInt32, System.UInt32) constructor
public ImageBuffer (Windows.Storage.Streams.IBuffer buffer,
Microsoft.Windows.Imaging.PixelFormat pixelFormat, uint width, uint height);
ImageBuffer クラスの新しいインスタンスを初期化します。
パラメーター
buffer
ImageBuffer。
pixelFormat
画像のピクセル形式。
width
画像の幅 (ピクセル単位)。
height
画像の高さ (ピクセル単位)。
Microsoft.Windows.Imaging.ImageBuffer.PixelFormat property
public Microsoft.Windows.Imaging.PixelFormat PixelFormat { get; }
画像のピクセル形式を取得します。
プロパティ値
画像のピクセル形式。
Microsoft.Windows.Imaging.ImageBuffer.Width property
public uint Width { get; }
画像の幅をピクセル単位で取得します。
プロパティ値
画像の幅 (ピクセル単位)。
Microsoft.Windows.Imaging.PixelFormat enum
public enum PixelFormat
基になるビットマップ データのバイナリ レイアウトの種類を指定します。
列挙型フィールド
Undefined: 0
バイナリ形式は未定義です。
Rgb24: 1
バイナリ形式はピクセルあたり 24 ビットです。赤、緑、青のコンポーネントにそれぞれ 8 ビットが使用されます。
Argb32: 2
バイナリ形式はピクセルあたり 32 ビットです。アルファ、赤、緑、青のコンポーネントにそれぞれ 8 ビットが使用されます。
Rgba32: 3
バイナリ形式はピクセルあたり 32 ビットです。赤、緑、青、アルファのコンポーネントにそれぞれ 8 ビットが使用されます。 カラー コンポーネントは、赤、緑、青、アルファの順に格納されます。
Bgra32: 4
バイナリ形式はピクセルあたり 32 ビットです。青、緑、赤、アルファ のコンポーネントにそれぞれ 8 ビットが使用されます。 カラー コンポーネントは、青、緑、赤、アルファの順に格納されます。
Gray8: 5
バイナリ形式は、ピクセルあたり 16 ビットです。 このカラー情報は 65536 種類の灰色の濃淡を指定します。