General OCR
    • PDF

    General OCR

    • PDF

    記事の要約

    Classic/VPC環境で利用できます。

    画像全域のテキストを認識・抽出します。

    リクエスト

    リクエスト形式を説明します。リクエスト形式は次の通りです。

    メソッドURI
    POST/general

    リクエストヘッダ

    CLOVA OCR APIで共通して使用されるヘッダの詳細は、CLOVA OCRのリクエストヘッダをご参照ください。

    リクエストボディ

    リクエストボディの説明は次の通りです。

    Content-Type: application/jsonの場合

    リクエストヘッダのContent-Typeapplication/jsonの場合のリクエストボディの説明は次の通りです。

    フィールドタイプ必須の有無説明
    versionStringRequiredバージョン情報
    • V1 | V2(推奨)
      • V1: V1エンジンを呼び出す
      • V2: V2エンジンを呼び出す
    requestIdStringRequired任意の API呼び出し UUID
    timestampIntegerRequired任意の API呼び出し時刻(Timestamp)
    langStringOptionalOCR認識リクエストの言語情報
    • ko | en | ja | zh-TW
      • ko: 韓国語
      • en: 英語
      • ja: 日本語
      • zh-TW: 中国語(繁体字)
    • 入力しないとドメインの言語設定値に自動設定
    • コンマ「,」を利用すると複数の言語の同時呼び出しができる
      • <例> "ko, ja, zh-TW"
    imagesArrayRequiredimagesの詳細情報
    • JSON Arrayで作成
    • 呼び出し1件につき1つの画像 Arrayを作成可能
    • 画像サイズ: 最大50MB
    enableTableDetectionBooleanOptional文書画像内の表(Table)領域を認識して構造化された形で提供するかどうか
    • true | false(デフォルト)
      • true: 表を認識し、その構造を提供
      • false: 表を認識せず、構造を提供しない
    • NAVERクラウドプラットフォームで作成した Domainで「表を抽出するかどうか」トグルボタンをオン(ON)にすると使用可能

    Content-Type: multipart/form-dataの場合

    リクエストヘッダContent-Typemultipart/form-dataの場合のリクエストボディの説明は次の通りです。

    フィールドタイプ必須の有無説明
    messageObjectRequiredリクエストデータ情報
    fileFileRequiredOCR認識画像ファイル
    message.versionStringRequiredバージョン情報
    • V1 | V2(推奨)
      • V1: V1エンジンを呼び出す
      • V2: V2エンジンを呼び出す
    message.requestIdStringRequired任意の API呼び出し UUID
    message.timestampIntegerRequired任意の API呼び出し時刻(Timestamp)
    message.langStringOptionalOCR認識リクエストの言語情報
    • ko | en | ja | zh-TW
      • ko: 韓国語
      • en: 英語
      • ja: 日本語
      • zh-TW: 中国語(繁体字)
    • 入力しないとドメインの言語設定値に自動設定
    • コンマ「,」を利用すると複数の言語の同時呼び出しができる
      • <例> "ko, ja, zh-TW"
    message.imagesArrayRequiredimagesの詳細情報
    • JSON Arrayで作成
    • 呼び出し1件につき1つの画像 Arrayを作成可能
    • 画像サイズ: 最大50MB
    message.enableTableDetectionBooleanOptional文書画像内の表(Table)領域を認識して構造化された形で提供するかどうか
    • true | false(デフォルト)
      • true: 表を認識し、その構造を提供
      • false: 表を認識せず、構造を提供しない
    • NAVERクラウドプラットフォームで作成した Domainで「表を抽出するかどうか」トグルボタンをオン(ON)にすると使用可能

    images

    imagesの説明は次の通りです。

    フィールドタイプ必須の有無説明
    formatStringRequired画像形式
    • jpg | jpeg | png | pdf | tif | tiff
      • pdf: 最大10ページまで認識可能
    nameStringRequired画像名
    • 画像の識別とレスポンス結果の確認に使用
    urlStringConditional画像の URLアドレス
    • 画像が取得可能な公開された URL
    • images.urlまたはimages.dataのうちどちらかは必ず入力
      • 両方入力するとimages.dataが優先
    dataStringConditionalBase64でエンコードされた画像データ
    • images.urlまたはimages.dataのうちどちらかは必ず入力
      • 両方入力するとimages.dataが優先

    リクエスト例

    リクエストのサンプルコードは次の通りです。

    Content-Type: application/jsonの場合

    リクエストヘッダContent-Typeapplication/jsonの場合のリクエストのサンプルコードは次の通りです。

    curl --location --request POST 'https://*****.apigw.ntruss.com/custom/v1/33675/8f694ccb00dbd8001e9b0fcbac****************/general' \
    --header 'Content-Type: application/json' \
    --header 'X-OCR-SECRET: {アプリの登録時に発行された Secret Key}' \
    --data '{
        "version": "V2",
        "requestId": "1234",
        "timestamp": "1722225600000",
        "lang": "ko",
        "images": [
            {
            "format": "jpg",
            "name": "demo_2",
            "url": "https://www.ncloud.com/file-img/vol02/000/614/********/********_0001.jpg"
            }
        ],
        "enableTableDetection": false
    }'
    

    Content-Type: multipart/form-dataの場合

    リクエストヘッダContent-Typemultipart/form-dataの場合のリクエストのサンプルコードは次の通りです。

    curl --location --request POST 'https://*****.apigw.ntruss.com/custom/v1/33675/8f694ccb00dbd8001e9b0fcbac**********************/general' \
    --header 'Content-Type: multipart/form-data' \
    --header 'X-OCR-SECRET: {アプリの登録時に発行された Secret Key}' \
    --form 'file=@"{file}.pdf"' \
    --form 'message="{\"version\": \"v1\", \"requestId\": \"1234\", \"timestamp\": 1722225600000, \"lang\": \"ko\", \"images\": [{\"format\": \"pdf\", \"name\": \"covid_sample\"}]}"'
    

    レスポンス

    レスポンス形式を説明します。

    参考

    V2バージョンでリクエストするとレスポンス結果にboundingboundingPolyの情報が表示されます。

    レスポンスボディ

    レスポンスボディの説明は次の通りです。

    フィールドタイプ必須の有無説明
    versionString-バージョン情報
    • V1 | V2
      • V1: V1エンジンを呼び出す
      • V2: V2エンジンを呼び出す
    requestIdString-API呼び出し UUID
    timestampInteger-API呼び出し時刻(Timestamp)
    imagesArray-imagesの詳細情報

    images

    imagesの説明は次の通りです。

    フィールドタイプ必須の有無説明
    uidString-画像の UID
    • API有効性検査とリクエストのトレース時に使用
    nameString-画像名
    • 画像の識別とレスポンス結果の確認に使用
    inferResultString-画像の認識結果
    • SUCCESS | FAILURE | ERROR
      • SUCCESS: 認識成功
      • FAILURE: 認識失敗
      • ERROR: 認識処理例外
    messageString-結果メッセージ
    validationResultObject-有効性検査の結果情報
    validationResult.resultString-有効性検査の結果コード
    • NO_REQUESTED | UNCHECKED | ERROR | VALID | INVALID
      • NO_REQUESTED: 検証をリクエストしていない
      • UNCHECKED: 動作レスポンスを確認しなかったか、レスポンスを受諾していない
      • ERROR: 検証中にエラーが発生
      • VALID: 検証結果は有効
      • INVALID: 検証結果は有効ではない
    validationResult.messageString-有効性検査結果の詳細メッセージ
    • 必ずしも返される値ではない
    convertedImageInfoObject-変換後の画像情報
    • formatpdfまたはtiffの場合
    • 座標は呼び出し画像ファイルを基準に設定
    convertedImageInfo.widthInteger-変換後画像の横長
    convertedImageInfo.heightInteger-変換後画像の縦長
    convertedImageInfo.pageIndexInteger-変換後画像ページインデックス
    convertedImageInfo.longImageBoolean-変換後画像は長さが Longかどうか
    • true | false
      • true: 長い(Long)画像
      • false: 長い(Long)画像ではない
    combineResultObject-画像認識結果の都合情報
    combineResult.nameString-画像結合フィールド名
    combineResult.textString-各画像フィールドごとの出力値と固定テキスト
    tablesArray-Tablesの詳細情報
    fieldsArray-Fieldsの詳細情報

    tables

    tablesの説明は次の通りです。

    フィールドタイプ必須の有無説明
    cellsArray-Cellsの詳細情報
    inferTextString-認識されたテキスト
    inferConfidenceFloat-認識結果テキストの信頼度
    • 0~1
    • 信頼度が高いほどテキストの精度が高い
    boundingPolyObject-Bounding Poly情報
    • versionV2の場合にのみ提供
    boundingPoly.verticesArray-Bounding Poly Verticesの詳細情報

    fields

    fieldsの説明は次の通りです。

    フィールドタイプ必須の有無説明
    nameString-画像名
    • 画像の識別とレスポンス結果の確認に使用
    • APIの呼び出し時にのみ動作
    valueTypeString-入力値のタイプ
    • ALL | NUMERIC
      • ALL: テキストと数字
      • NUMERIC: 数字
    boundingPolyObject-Bounding Poly情報
    • versionV2の場合にのみ提供
    boundingPoly.verticesArray-Bounding Poly Verticesの詳細情報
    inferTextString-認識結果テキスト
    • typeCHECKBOXの場合、設定で指定したレスポンスに置換
    inferConfidenceFloat-認識結果テキストの信頼度
    • 0~1
    • 信頼度が高いほどテキストの精度が高い
    typeString-認識結果画像タイプ
    • NORMAL | MULTI_BOX | CHECKBOX
      • NORMAL: 一般
      • MULTI_BOX: マルチボックス
      • CHECKBOX: チェックボックス
    lineBreakBoolean-認識結果テキストの最終行であるかどうかを表示
    • true | false
      • true: 最後のテキスト
      • false: 最後のテキストではない
    checkedBoolean-チェックボックスは選択されているかどうか
    • true | false
      • true: 選択されている
      • false: 選択されていない

    cells

    cellsの説明は次の通りです。

    フィールドタイプ必須の有無説明
    boundingPolyObject-Bounding Poly情報
    • versionV2の場合にのみ提供
    boundingPoly.verticesArray-Bounding Poly Verticesの詳細情報
    cellTextLinesArray-セルのラインの詳細情報
    inferConfidenceFloat-認識結果テキストの信頼度
    • 0~1
    • 信頼度が高いほどテキストの精度が高い
    rowSpanInteger-表のセルが占める(Span)横列の数
    rowIndexInteger-表内のその横列の位置値
    columnSpanInteger-表のセルが占める(Span)縦行の数
    columnIndexInteger-表内のその縦行の位置値

    cellTextLines

    cellTextLinesの説明は次の通りです。

    フィールドタイプ必須の有無説明
    boundingPolyObject-Bounding Poly情報
    • versionV2の場合にのみ提供
    boundingPoly.verticesArray-Bounding Poly Verticesの詳細情報
    inferConfidenceFloat-認識結果テキストの信頼度
    • 0~1
    • 信頼度が高いほどテキストの精度が高い
    cellWordsArray-セルのテキストの詳細情報

    cellWords

    cellWordsの説明は次の通りです。

    フィールドタイプ必須の有無説明
    boundingPolyObject-Bounding Poly情報
    • versionV2の場合にのみ提供
    boundingPoly.verticesArray-Bounding Poly Verticesの詳細情報
    inferConfidenceFloat-認識結果テキストの信頼度
    • 0~1
    • 信頼度が高いほどテキストの精度が高い
    inferTextString-認識されたテキスト

    vertices

    verticesの説明は次の通りです。

    フィールドタイプ必須の有無説明
    xFloat-Bounding Poly X軸の座標
    yFloat-Bounding Poly Y軸の座標

    レスポンスステータスコード

    CLOVA OCR APIで共通して使用されるレスポンスステータスコードの詳細は、CLOVA OCRの共通レスポンスステータスコードをご参照ください。

    レスポンス例

    レスポンスのサンプルコードは次の通りです。

    versionV2の場合

    versionV2の場合のレスポンスのサンプルコードは次の通りです。

    {
        "version": "V2",
        "requestId": "string",
        "timestamp": 1576569034247,
        "images": [{
            "uid": "9fd73a6aacad4025b3099a36ee55aacd",
            "name": "medium",
            "inferResult": "SUCCESS",
            "message": "SUCCESS",
            "validationResult": {
                    "result": "NO_REQUESTED"
                },
                "convertedImageInfo": {
                    "width": 1224,
                    "height": 1584,
                    "pageIndex": 0,
                    "longImage": false
                },
            "fields": [{
                    "valueType": "ALL",
                    "inferText": "美しき",
                    "inferConfidence": 0.99992156,
                    "type": "NORMAL",
                    "lineBreak": true,
                    "boundingPoly": {
                        "vertices": [{
                            "x": 2713.7295,
                            "y": 1277.0492
                        }, {
                            "x": 2713.7295,
                            "y": 977.7408
                        }, {
                            "x": 2841.4343,
                            "y": 977.7408
                        }, {
                            "x": 2841.4343,
                            "y": 1277.0492
                        }]
                    }
                },
                {
                    "valueType": "ALL",
                    "inferText": "この",
                    "inferConfidence": 0.99958915,
                    "type": "NORMAL",
                    "lineBreak": false,
                    "boundingPoly": {
                        "vertices": [{
                            "x": 2314.6516,
                            "y": 1468.6066
                        }, {
                            "x": 2314.6516,
                            "y": 1328.9293
                        }, {
                            "x": 2426.3936,
                            "y": 1328.9293
                        }, {
                            "x": 2426.3936,
                            "y": 1468.6066
                        }]
                    }
                },
                {
                    "valueType": "ALL",
                    "inferText": "世界を",
                    "inferConfidence": 0.9998707,
                    "type": "NORMAL",
                    "lineBreak": false,
                    "boundingPoly": {
                        "vertices": [{
                            "x": 2314.6516,
                            "y": 1604.2931
                        }, {
                            "x": 2314.6516,
                            "y": 1460.625
                        }, {
                            "x": 2430.3843,
                            "y": 1460.625
                        }, {
                            "x": 2430.3843,
                            "y": 1604.2931
                        }]
                    }
                }
            ]
        }]
    }
    

    versionV1の場合

    versionV1の場合のレスポンスのサンプルコードは次の通りです。

    {
        "version": "v1",
        "requestId": "1234",
        "timestamp": 1724821610657,
        "images": [
            {
                "uid": "{uid}",
                "name": "covid_demo",
                "inferResult": "SUCCESS",
                "message": "SUCCESS",
                "validationResult": {
                    "result": "NO_REQUESTED"
                },
                "fields": [
                    {
                        "valueType": "ALL",
                        "boundingPoly": {
                            "vertices": [
                                {
                                    "x": 581.0,
                                    "y": 123.0
                                },
                                {
                                    "x": 650.0,
                                    "y": 123.0
                                },
                                {
                                    "x": 650.0,
                                    "y": 149.0
                                },
                                {
                                    "x": 581.0,
                                    "y": 149.0
                                }
                            ]
                        },
                        "inferText": "育てていく",
                        "inferConfidence": 0.9985
                    },
                    {
                        "valueType": "ALL",
                        "boundingPoly": {
                            "vertices": [
                                {
                                    "x": 399.0,
                                    "y": 1168.0
                                },
                                {
                                    "x": 790.0,
                                    "y": 1168.0
                                },
                                {
                                    "x": 790.0,
                                    "y": 1215.0
                                },
                                {
                                    "x": 399.0,
                                    "y": 1215.0
                                }
                            ]
                        },
                        "inferText": "ソウル特別市小学校長",
                        "inferConfidence": 0.9997
                    }
                ]
            }
        ]
    }
    

    この記事は役に立ちましたか?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.