翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
イメージ内のテキストの検出
入力イメージとして、イメージのバイト配列 (base64 エンコードされたイメージのバイト) を指定するか、Amazon S3 オブジェクトを指定できます。以下の手順では、JPEG イメージまたは PNG イメージを S3 バケットにアップロードし、そのファイル名を指定します。
イメージ内のテキストを検出するには (API)
-
まだの場合、以下の前提条件を完了します。
-
AmazonRekognitionFullAccess
とAmazonS3ReadOnlyAccess
のアクセス権限を持つユーザーを作成または更新します。詳細については、「ステップ 1: AWSアカウントを設定し、ユーザーを作成する」を参照してください。 -
と AWS SDKsをインストール AWS Command Line Interface して設定します。詳細については、「ステップ 2: をセットアップする AWS CLI また、 AWS SDKs」を参照してください。
-
-
テキストが含まれているイメージを S3 バケットにアップロードします。
手順については、Amazon Simple Storage Service ユーザーガイド の「Amazon S3 へのオブジェクトのアップロード」を参照してください。
-
以下の例を使用して、
DetectText
オペレーションを呼び出します。
DetectText オペレーションリクエスト
DetectText
オペレーションでは、入力イメージを base64 でエンコードされたバイト配列、または Amazon S3 バケットに保存されたイメージとして指定します。以下の JSON リクエストの例では、 Amazon S3 バケットからロードしたイメージを表示します。
{ "Image": { "S3Object": { "Bucket": "bucket", "Name": "inputtext.jpg" } } }
フィルター
テキスト領域、サイズ、信頼スコアに基づくフィルタ処理により、テキスト検出出力をさらに柔軟に制御できるようになります。関心領域を使用することで、テキスト検出を関連する領域に簡単に制限できます。例えば、機械のイメージから部品番号を読み取るとき、この領域はプロフィール写真の右上や基準点からの相対位置などです。単語の境界ボックスサイズフィルタを使用すると、ノイズの多いテキストや無関係な小さな背景テキストを回避できます。単語信頼性フィルターを使用すると、ぼやけているか不鮮明であるために信頼できない結果を取り除けます。
フィルターの値については、「DetectTextFilters
」を参照してください。
以下のフィルタを使用できます。
-
MinConfidence - 単語検出の信頼度を設定します。検出の信頼性がこのレベルより低い単語は、結果から除外されます。値は 0 から 100 の間で指定する必要があります。
-
MinBoundingBoxWidth – 単語境界ボックスの最小幅を設定します。境界ボックスの幅がこの値より小さい単語は、結果から除外されます。値はイメージフレームの幅に対する相対値です。
-
MinBoundingBoxHeight – 単語境界ボックスの最小の高さを設定します。境界ボックスの高さがこの値より小さい単語は、結果から除外されます。値はイメージフレームの高さに対する相対値です。
-
RegionsOfInterest – 検出をイメージフレームの特定のリージョンに制限します。値はフレームの寸法に対する相対値です。領域内に部分的にしか含まれていないテキストの場合、レスポンスは不明となります。
DetectText オペレーションレスポンス
DetectText
オペレーションはイメージを分析し、配列 を返します。各要素 (TextDetection
) は TextDetections、イメージ内で検出された行または単語を表します。DetectText
により、要素ごとに以下の情報が返されます。
-
検出されたテキスト (
DetectedText
) -
単語と行の関係 (
Id
とParentId
) -
イメージ上のテキストの位置 (
Geometry
) -
検出されたテキストの精度を示す Amazon Rekognition の信頼度と境界ボックス (
Confidence
) -
検出されたテキストのタイプ (
Type
)
検出されたテキスト
各 TextDetection
要素には、DetectedText
フィールドで認識されたテキスト (単語または行) が含まれます。単語とは、スペースで区切られていない、1 個以上のスクリプト文字です。DetectText
は、イメージ内に最大 100 個の単語を検出できます。返されたテキストに含まれる文字によっては、単語が認識できない場合があります。例えば、Cat の代わりに C@t が返される場合があります。TextDetection
要素がテキスト行または単語のいずれであるかを確認するには、Type
フィールドを使用します。
各 TextDetection
要素には、検出されたテキストおよびそのテキストを囲む境界ボックスの精度を示す Amazon Rekognition の信頼度 (%) が含まれます。
単語と行の関係
TextDetection
要素ごとに ID フィールド (Id
) があります。Id
は、行内での単語の位置を示します。要素が単語である場合、親識別子フィールド (ParentId
) は単語が検出された行を識別します。行の ParentId
は null です。例えば、例のイメージで「but keep」行の Id
値と ParentId
値は以下のとおりです。
テキスト |
ID |
親 ID |
---|---|---|
but keep |
3 |
|
but |
8 |
3 |
keep |
9 |
3 |
イメージ上のテキストの位置
イメージ上で認識されたテキストの位置を確認するには、DetectText
から返される境界ボックス (ジオメトリ) 情報を使用します。Geometry
オブジェクトには、検出された行と単語に関する次の 2 種類の境界ボックス情報が含まれます。
-
BoundingBox オブジェクト内の軸に沿った粗い長方形のアウトライン
-
ポイント配列の複数の X 座標と Y 座標で構成された精細な多角形
境界ボックスと多角形の座標は、ソースイメージ上のテキストの位置を示します。座標値は、イメージサイズ全体の比率です。詳細については、「」を参照してくださいBoundingBox。
次の DetectText
オペレーションからの JSON レスポンスは、次のイメージで検出された単語と行を示しています。
{ 'TextDetections': [{'Confidence': 99.35693359375, 'DetectedText': "IT'S", 'Geometry': {'BoundingBox': {'Height': 0.09988046437501907, 'Left': 0.6684935688972473, 'Top': 0.18226495385169983, 'Width': 0.1461552083492279}, 'Polygon': [{'X': 0.6684935688972473, 'Y': 0.1838926374912262}, {'X': 0.8141663074493408, 'Y': 0.18226495385169983}, {'X': 0.8146487474441528, 'Y': 0.28051772713661194}, {'X': 0.6689760088920593, 'Y': 0.2821454107761383}]}, 'Id': 0, 'Type': 'LINE'}, {'Confidence': 99.6207275390625, 'DetectedText': 'MONDAY', 'Geometry': {'BoundingBox': {'Height': 0.11442459374666214, 'Left': 0.5566731691360474, 'Top': 0.3525116443634033, 'Width': 0.39574965834617615}, 'Polygon': [{'X': 0.5566731691360474, 'Y': 0.353712260723114}, {'X': 0.9522717595100403, 'Y': 0.3525116443634033}, {'X': 0.9524227976799011, 'Y': 0.4657355844974518}, {'X': 0.5568241477012634, 'Y': 0.46693623065948486}]}, 'Id': 1, 'Type': 'LINE'}, {'Confidence': 99.6160888671875, 'DetectedText': 'but keep', 'Geometry': {'BoundingBox': {'Height': 0.08314694464206696, 'Left': 0.6398131847381592, 'Top': 0.5267938375473022, 'Width': 0.2021435648202896}, 'Polygon': [{'X': 0.640289306640625, 'Y': 0.5267938375473022}, {'X': 0.8419567942619324, 'Y': 0.5295097827911377}, {'X': 0.8414806723594666, 'Y': 0.609940767288208}, {'X': 0.6398131847381592, 'Y': 0.6072247624397278}]}, 'Id': 2, 'Type': 'LINE'}, {'Confidence': 88.95134735107422, 'DetectedText': 'Smiling', 'Geometry': {'BoundingBox': {'Height': 0.4326171875, 'Left': 0.46289217472076416, 'Top': 0.5634765625, 'Width': 0.5371078252792358}, 'Polygon': [{'X': 0.46289217472076416, 'Y': 0.5634765625}, {'X': 1.0, 'Y': 0.5634765625}, {'X': 1.0, 'Y': 0.99609375}, {'X': 0.46289217472076416, 'Y': 0.99609375}]}, 'Id': 3, 'Type': 'LINE'}, {'Confidence': 99.35693359375, 'DetectedText': "IT'S", 'Geometry': {'BoundingBox': {'Height': 0.09988046437501907, 'Left': 0.6684935688972473, 'Top': 0.18226495385169983, 'Width': 0.1461552083492279}, 'Polygon': [{'X': 0.6684935688972473, 'Y': 0.1838926374912262}, {'X': 0.8141663074493408, 'Y': 0.18226495385169983}, {'X': 0.8146487474441528, 'Y': 0.28051772713661194}, {'X': 0.6689760088920593, 'Y': 0.2821454107761383}]}, 'Id': 4, 'ParentId': 0, 'Type': 'WORD'}, {'Confidence': 99.6207275390625, 'DetectedText': 'MONDAY', 'Geometry': {'BoundingBox': {'Height': 0.11442466825246811, 'Left': 0.5566731691360474, 'Top': 0.35251158475875854, 'Width': 0.39574965834617615}, 'Polygon': [{'X': 0.5566731691360474, 'Y': 0.3537122905254364}, {'X': 0.9522718787193298, 'Y': 0.35251158475875854}, {'X': 0.9524227976799011, 'Y': 0.4657355546951294}, {'X': 0.5568241477012634, 'Y': 0.46693626046180725}]}, 'Id': 5, 'ParentId': 1, 'Type': 'WORD'}, {'Confidence': 99.96778869628906, 'DetectedText': 'but', 'Geometry': {'BoundingBox': {'Height': 0.0625, 'Left': 0.6402802467346191, 'Top': 0.5283203125, 'Width': 0.08027780801057816}, 'Polygon': [{'X': 0.6402802467346191, 'Y': 0.5283203125}, {'X': 0.7205580472946167, 'Y': 0.5283203125}, {'X': 0.7205580472946167, 'Y': 0.5908203125}, {'X': 0.6402802467346191, 'Y': 0.5908203125}]}, 'Id': 6, 'ParentId': 2, 'Type': 'WORD'}, {'Confidence': 99.26438903808594, 'DetectedText': 'keep', 'Geometry': {'BoundingBox': {'Height': 0.0818721204996109, 'Left': 0.7344760298728943, 'Top': 0.5280686020851135, 'Width': 0.10748066753149033}, 'Polygon': [{'X': 0.7349520921707153, 'Y': 0.5280686020851135}, {'X': 0.8419566750526428, 'Y': 0.5295097827911377}, {'X': 0.8414806127548218, 'Y': 0.6099407076835632}, {'X': 0.7344760298728943, 'Y': 0.6084995269775391}]}, 'Id': 7, 'ParentId': 2, 'Type': 'WORD'}, {'Confidence': 88.95134735107422, 'DetectedText': 'Smiling', 'Geometry': {'BoundingBox': {'Height': 0.4326171875, 'Left': 0.46289217472076416, 'Top': 0.5634765625, 'Width': 0.5371078252792358}, 'Polygon': [{'X': 0.46289217472076416, 'Y': 0.5634765625}, {'X': 1.0, 'Y': 0.5634765625}, {'X': 1.0, 'Y': 0.99609375}, {'X': 0.46289217472076416, 'Y': 0.99609375}]}, 'Id': 8, 'ParentId': 3, 'Type': 'WORD'}], 'TextModelVersion': '3.0'}