Azure AI 비전 3.2 GA Read API 호츨

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

OCR(읽기) 버전

Important

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

입력 예제 Read 버전 장점
이미지: 일반적인 야생 이미지 레이블, 거리 표지판 및 포스터 이미지용 OCR(버전 4.0) 사용자 환경 시나리오에 OCR을 더 쉽게 포함할 수 있도록 하는 성능이 향상된 동기식 API를 사용하여 일반적인 비문서 이미지에 최적화되었습니다.
문서: 이미지를 포함한 디지털 및 검사 문서 책, 문서 및 보고서 문서 인텔리전스 읽기 모델 대규모로 지능적인 문서 처리를 자동화할 수 있도록 하는 비동기 API를 사용하여 텍스트가 많은 검사 및 디지털 문서에 최적화되었습니다.

Azure AI 비전 v3.2 GA 정보 읽기

최신 Azure AI 비전 v3.2 GA 읽기를 찾고 계시나요? 향후의 모든 읽기 OCR 개선 사항은 이전에 나열된 두 가지 서비스의 일부입니다. Azure AI 비전 v3.2에 대한 추가 업데이트는 없습니다. 자세한 내용은 Azure AI Vision 3.2 GA 읽기 API 호출빠른 시작: Azure AI Vision v3.2 GA 읽기를 참조하세요.

입력 요구 사항

Read API 호출은 이미지와 문서를 입력으로 사용합니다. 다음과 같은 요구 사항이 있습니다.

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

참고 항목

텍스트 선에서 이미지를 자르지 않아도 됩니다. 전체 이미지를 Read API로 보내면 모든 텍스트가 인식됩니다.

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

OCR 모델 지정

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

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

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

입력 언어

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

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

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

OCR Reading order example

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

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

Selected pages output

서비스에 데이터 제출

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

읽기 API의 읽기 호출 은 이미지 또는 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

Azure AI 비전 가격 책정 페이지에는 Read에 대한 가격 책정 계층이 포함되어 있습니다. 분석된 각 이미지 또는 페이지는 하나의 트랜잭션입니다. 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 작업이 성공했습니다.

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

참고 항목

무료 계층은 요청 속도를 분당 20개의 호출로 제한합니다. 유료 계층은 요청 시 늘릴 수 있는 RPS(초당 30개 요청)를 허용합니다. Azure 리소스 identfier 및 지역을 확인하고 Azure 지원 티켓을 열거나 계정 팀에 문의하여 RPS(초당 더 높은 요청 수) 속도를 요청합니다.

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

참고 항목

읽기 작업에 제출된 데이터는 잠시 동안 일시적으로 암호화되어 저장되고 삭제됩니다. 이렇게 하면 애플리케이션이 서비스 응답의 일부로 추출된 텍스트를 검색할 수 있습니다.

샘플 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 handwriting classification example

다음 단계