Computer Vision 3.2 GA 읽기 API 호출

이 가이드에서는 v3.2 GA 읽기 API를 호출하여 이미지에서 텍스트를 추출하는 방법을 알아봅니다. 사용자 요구에 맞게 이 API의 동작을 구성할 수 있는 다양한 방법을 알아봅니다. 이 가이드에서는 를 만들고 키 및 엔드포인트 URL을 얻었다고 가정합니다. 아직 시작하지 않았다면 빠른 시작을 따라 시작하세요.

OCR(읽기) 버전

중요

요구 사항에 가장 적합한 읽기 버전을 선택합니다.

입력 예제 버전 읽기 이점
이미지: 일반, 야생 이미지 레이블, 도로 표지판 및 포스터 Computer Vision v4.0 미리 보기 사용자 환경 시나리오에 OCR을 더 쉽게 포함할 수 있도록 성능이 향상된 동기 API를 사용하여 일반 문서가 아닌 이미지에 최적화되었습니다.
문서: 이미지를 포함하여 디지털 및 스캔 책, 기사 및 보고서 Form Recognizer 비동기 API를 사용하여 텍스트가 많은 스캔 및 디지털 문서에 최적화되어 지능형 문서 처리를 대규모로 자동화할 수 있습니다.

Computer Vision v3.2 GA 읽기 정보

최신 Computer Vision v3.2 GA 읽기를 찾고 계신가요? 향후 모든 읽기 OCR 개선 사항이 위에 나열된 두 개의 새로운 서비스의 일부가 될 것입니다. Computer Vision v3.2에 대한 추가 업데이트는 없습니다. 계속하려면 Computer Vision v3.2 GA 읽기 개요빠른 시작을 참조하세요.

입력 요구 사항

Read 호출에서는 이미지와 문서를 입력으로 사용합니다. 다음과 같은 요구 사항이 적용됩니다.

  • 지원되는 파일 형식: JPEG, PNG, BMP, PDF 및 TIFF
  • PDF 및 TIFF 파일의 경우 최대 2000페이지(무료 계층의 경우 처음 두 페이지만)가 처리됩니다.
  • 이미지 파일 크기는 500MB(무료 계층의 경우 4MB) 미만이어야 하며 크기는 최소 50 x 50픽셀 및 최대 10000 x 10000픽셀이어야 합니다. PDF 파일에는 크기 제한이 없습니다.
  • 추출할 텍스트의 최소 높이는 1024 x 768 이미지의 경우 12픽셀입니다. 이는 150DPI에서 약 8 폰트 포인트 텍스트에 해당합니다.

데이터 처리 방법 결정(선택 사항)

OCR 모델 지정

기본적으로 서비스는 최신 GA(일반 사용 가능) 모델을 사용하여 텍스트를 추출합니다. Read 3.2부터 model-version 매개 변수를 사용하면 주어진 API 버전에 대한 GA 및 미리 보기 모델 중에서 선택할 수 있습니다. 지정한 모델은 읽기 작업으로 텍스트를 추출하는 데 사용됩니다.

읽기 작업을 사용할 때 선택적 model-version 매개 변수에 다음 값을 사용합니다.

사용된 모델
제공되지 않음 최신 GA 모델
최신 최신 GA 모델
2022-04-30 최신 GA 모델. 인쇄 텍스트용 164개 언어 및 필기 텍스트용 9개 언어와 함께 품질 및 성능에 대한 몇 가지 개선 사항
2022-01-30-preview 미리 보기 모델은 힌디어, 아랍어 및 관련 언어에 대한 인쇄 텍스트 지원을 추가합니다. 필기 텍스트의 경우 일본어 및 한국어에 대한 지원을 추가합니다.
2021-09-30-preview 미리 보기 모델은 러시아어 및 기타 키릴 자모 언어에 대한 인쇄 텍스트 지원을 추가합니다. 필기 텍스트의 경우 중국어 간체, 프랑스어, 독일어, 이탈리아어, 포르투갈어 및 스페인어에 대한 지원을 추가합니다.
2021-04-12 2021년 GA 모델

입력 언어

기본적으로 이 서비스는 혼합 언어를 포함하여 이미지 또는 문서에서 모든 텍스트를 추출합니다. 읽기 작업에는 언어에 대한 선택적 요청 매개 변수가 있습니다. 문서를 특정 언어로 처리하도록 하려면 언어 코드만 제공합니다. 그렇지 않으면 서비스에서 불완전하고 잘못된 텍스트를 반환할 수 있습니다.

자연스러운 읽기 순서 출력(라틴어만 해당)

기본적으로 서비스는 왼쪽에서 오른쪽 순서로 텍스트 줄을 출력합니다. 선택적으로 readingOrder 요청 매개 변수와 함께 natural를 사용하여 다음 예와 같이 보다 사용자 친화적인 읽는 순서 출력을 수행합니다. 이 기능은 라틴어에 대해서만 지원됩니다.

OCR 읽기 순서 예

텍스트 추출을 위한 페이지 또는 페이지 범위 선택

기본적으로 서비스는 문서의 모든 페이지에서 텍스트를 추출합니다. 선택적으로 pages 요청 매개 변수를 사용하여 페이지 번호 또는 페이지 범위를 지정하여 해당 페이지에서만 텍스트를 추출합니다. 다음 예제에서는 모든 페이지(1-10) 및 선택한 페이지(3-6) 모두에 대한 텍스트를 포함하는 10개의 페이지가 있는 문서를 보여 줍니다.

선택한 페이지 출력

서비스에 데이터 제출

읽기 API에 로컬 이미지 또는 원격 이미지를 제출합니다. 로컬의 경우 HTTP 요청 본문에 이진 이미지 데이터를 저장합니다. 원격의 경우 {"url":"http://example.com/images/test.jpg"} 같이 요청 본문의 형식을 지정하여 이미지의 URL을 지정합니다.

Read API의 Read 호출은 이미지 또는 PDF 문서를 입력으로 사용하고 텍스트를 비동기적으로 추출합니다.

https://{endpoint}/vision/v3.2/read/analyze[?language][&pages][&readingOrder]

호출은 Operation-Location이라는 응답 헤더 필드와 함께 반환됩니다. Operation-Location 값은 다음 단계에서 사용할 작업 ID가 포함된 URL입니다.

응답 헤더 예제 값
Operation-Location https://cognitiveservice/vision/v3.2/read/analyzeResults/49a36324-fc4b-4387-aa06-090cfbf0064f

참고

Billing

Computer Vision 가격 책정 페이지에는 읽기에 대한 가격 책정 계층이 포함되어 있습니다. 분석된 각 이미지 또는 페이지는 하나의 트랜잭션입니다. 100페이지가 포함된 PDF 또는 TIFF 문서를 사용하여 작업을 호출하면 읽기 작업은 100개의 트랜잭션으로 계산되며 100개의 트랜잭션에 대해 요금이 청구됩니다. 작업을 50번 호출하고 각 호출에서 100페이지의 문서를 제출한 경우 50 X 100 = 5000 트랜잭션에 대한 요금이 청구됩니다.

서비스에서 결과 가져오기

두 번째 단계는 읽기 결과 가져오기 작업을 호출하는 것입니다. 이 작업은 읽기 작업에서 만든 작업 ID를 입력으로 사용합니다.

https://{endpoint}/vision/v3.2/read/analyzeResults/{operationId}

다음과 같은 가능한 값을 가진 상태 필드가 포함된 JSON 응답을 반환합니다.

의미
notStarted 작업이 시작되지 않았습니다.
running 작업이 처리 중입니다.
failed 작업이 실패했습니다.
succeeded 작업이 성공했습니다.

성공한 값이 반환될 때까지 이 작업을 반복적으로 호출합니다. 1~2초의 간격을 사용하여 RPS(초당 요청) 속도를 초과하지 않도록 합니다.

참고

체험 계층은 요청 속도를 분당 20개의 호출로 제한합니다. 유료 계층은 요청에 따라 증가할 수 있는 10개의 RPS(초당 요청)를 허용합니다. Azure 리소스 식별자 및 지역을 확인하고 Azure 지원 티켓을 열거나 계정 팀에 문의하여 더 높은 RPS(초당 요청 수) 요금을 요청합니다.

상태 필드에 succeeded 값이 있는 경우 JSON 응답에는 이미지 또는 문서에서 추출된 텍스트 콘텐츠가 포함됩니다. JSON 응답은 인식된 단어의 원래 줄 그룹을 유지 관리합니다. 추출된 텍스트 줄과 해당 경계 상자 좌표가 포함됩니다. 각 텍스트 줄에는 해당 좌표와 신뢰도 점수가 있는 추출된 모든 단어가 포함됩니다.

참고

Read 작업에 제출된 데이터는 일시적으로 암호화되어 짧은 기간 동안 저장된 후 삭제됩니다. 이를 통해 애플리케이션은 서비스 응답의 일부로 추출된 텍스트를 검색할 수 있습니다.

샘플 JSON 출력

성공적인 JSON 응답의 다음 예제를 참조하세요.

{
  "status": "succeeded",
  "createdDateTime": "2021-02-04T06:32:08.2752706+00:00",
  "lastUpdatedDateTime": "2021-02-04T06:32:08.7706172+00:00",
  "analyzeResult": {
    "version": "3.2",
    "readResults": [
      {
        "page": 1,
        "angle": 2.1243,
        "width": 502,
        "height": 252,
        "unit": "pixel",
        "lines": [
          {
            "boundingBox": [
              58,
              42,
              314,
              59,
              311,
              123,
              56,
              121
            ],
            "text": "Tabs vs",
            "appearance": {
              "style": {
                "name": "handwriting",
                "confidence": 0.96
              }
            },
            "words": [
              {
                "boundingBox": [
                  68,
                  44,
                  225,
                  59,
                  224,
                  122,
                  66,
                  123
                ],
                "text": "Tabs",
                "confidence": 0.933
              },
              {
                "boundingBox": [
                  241,
                  61,
                  314,
                  72,
                  314,
                  123,
                  239,
                  122
                ],
                "text": "vs",
                "confidence": 0.977
              }
            ]
          }
        ]
      }
    ]
  }
}

텍스트 줄에 대한 필기 분류(라틴어에만 해당)

응답에는 신뢰도 점수와 함께 각 텍스트 줄이 필기 스타일인지 여부를 분류하는 것이 포함됩니다. 이 기능은 라틴어에 대해서만 지원됩니다. 다음 예제에서는 이미지의 텍스트에 대한 필기 분류를 보여 줍니다.

OCR 필기 분류 예

다음 단계