빠른 시작: Azure AI 비전 v3.2 GA 읽기

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 비전 3.2 GA 읽기 API 호출빠른 시작: Azure AI 비전 v3.2 GA 읽기를 참조하세요.

Azure AI 비전 Read REST API 또는 클라이언트 라이브러리를 시작합니다. Read API는 이미지에서 텍스트를 추출하고 구조화된 문자열로 반환하기 위한 AI 알고리즘을 제공합니다. 다음 단계에 따라 애플리케이션에 패키지를 설치하고 기본 작업에 대한 샘플 코드를 사용해 보세요.

OCR(광학 인식) 클라이언트 라이브러리를 사용하여 이미지에서 인쇄된 텍스트 및 필기한 텍스트를 읽을 수 있습니다. OCR 서비스는 이미지 속의 시각적 텍스트를 읽고 문자 스트림으로 변환할 수 있습니다. 문자 인식에 대한 자세한 내용은 OCR 개요를 참조하세요. 이 섹션의 코드는 최신 Azure AI Vision 패키지를 사용합니다.

로컬 이미지에서 텍스트를 추출할 수도 있습니다. ComputerVisionClient 메서드(예: ReadInStreamAsync)를 참조하세요. 또는 로컬 이미지와 관련된 시나리오는 GitHub의 샘플 코드를 참조하세요.

참조 설명서 | 라이브러리 소스 코드 | 패키지(NuGet)샘플 |

필수 조건

  • Azure 구독 – 체험 구독을 만듭니다.

  • Visual Studio IDE 또는 .NET Core현재 버전입니다.

  • Azure AI 비전 리소스. 평가판 가격 책정 계층(F0)을 통해 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드할 수 있습니다.

  • 애플리케이션을 Azure AI 비전 서비스에 연결하려면 만든 리소스의 키와 엔드포인트가 필요합니다.

    1. Azure 비전 리소스를 배포한 후 리소스로 이동을 선택합니다.
    2. 왼쪽 탐색 메뉴에서 키 및 엔드포인트를 선택합니다.
    3. 나중에 빠른 시작에서 사용할 키와 엔드포인트 중 하나를 복사합니다.

환경 변수 만들기

이 예제에서는 애플리케이션을 실행하는 로컬 컴퓨터의 환경 변수에 자격 증명을 작성합니다.

Azure Portal로 이동합니다. 필수 구성 요소 섹션에서 만든 리소스가 성공적으로 배포된 경우 다음 단계 아래에서 리소스로 이동을 선택합니다. 리소스 관리 아래에 있는 리소스의 키 및 엔드포인트 페이지에서 키 및 엔드포인트를 찾을 수 있습니다. 리소스 키는 Azure 구독 ID와 동일하지 않습니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안 문서를 참조하세요.

키 및 엔드포인트에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  1. VISION_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  2. VISION_ENDPOINT 환경 변수를 설정하려면 your-endpoint를 리소스에 대한 엔드포인트로 바꿉니다.
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint

환경 변수가 추가되면 콘솔 창을 포함하여 환경 변수를 읽는 실행 중인 프로그램을 다시 시작해야 할 수 있습니다.

인쇄 및 필기 텍스트 읽기

  1. 새 C# 애플리케이션을 만듭니다.

    Visual Studio를 사용하여 C#, Windows, 콘솔콘솔 앱(.NET Framework) 프로젝트를 만듭니다.

    새 프로젝트를 만든 후 클라이언트 라이브러리를 설치합니다.

    1. 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 솔루션에 대한 NuGet 패키지 관리를 선택합니다.
    2. 열리는 패키지 관리자에서 찾아보기를 선택합니다. 시험판 포함을 선택합니다.
    3. Microsoft.Azure.CognitiveServices.Vision.ComputerVision을 검색하고 선택합니다.
    4. 세부 정보 대화 상자에서 프로젝트를 선택하고 최신 안정 버전을 선택합니다. 설치를 선택합니다.
  2. 프로젝트 디렉터리에서 기본 설정 편집기 또는 IDE에서 Program.cs 파일을 엽니다. Program.cs 내용을 다음 코드로 바꿉니다.

    using System;
    using System.Collections.Generic;
    using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
    using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
    using System.Threading.Tasks;
    using System.IO;
    using Newtonsoft.Json;
    using Newtonsoft.Json.Linq;
    using System.Threading;
    using System.Linq;
    
    namespace ComputerVisionQuickstart
    {
        class Program
        {
            // Add your Computer Vision key and endpoint
            static string key = Environment.GetEnvironmentVariable("VISION_KEY");
            static string endpoint = Environment.GetEnvironmentVariable("VISION_ENDPOINT");
    
            private const string READ_TEXT_URL_IMAGE = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/printed_text.jpg";
    
            static void Main(string[] args)
            {
                Console.WriteLine("Azure Cognitive Services Computer Vision - .NET quickstart example");
                Console.WriteLine();
    
                ComputerVisionClient client = Authenticate(endpoint, key);
    
                // Extract text (OCR) from a URL image using the Read API
                ReadFileUrl(client, READ_TEXT_URL_IMAGE).Wait();
            }
    
            public static ComputerVisionClient Authenticate(string endpoint, string key)
            {
                ComputerVisionClient client =
                  new ComputerVisionClient(new ApiKeyServiceClientCredentials(key))
                  { Endpoint = endpoint };
                return client;
            }
    
            public static async Task ReadFileUrl(ComputerVisionClient client, string urlFile)
            {
                Console.WriteLine("----------------------------------------------------------");
                Console.WriteLine("READ FILE FROM URL");
                Console.WriteLine();
    
                // Read text from URL
                var textHeaders = await client.ReadAsync(urlFile);
                // After the request, get the operation location (operation ID)
                string operationLocation = textHeaders.OperationLocation;
                Thread.Sleep(2000);
    
                // Retrieve the URI where the extracted text will be stored from the Operation-Location header.
                // We only need the ID and not the full URL
                const int numberOfCharsInOperationId = 36;
                string operationId = operationLocation.Substring(operationLocation.Length - numberOfCharsInOperationId);
    
                // Extract the text
                ReadOperationResult results;
                Console.WriteLine($"Extracting text from URL file {Path.GetFileName(urlFile)}...");
                Console.WriteLine();
                do
                {
                    results = await client.GetReadResultAsync(Guid.Parse(operationId));
                }
                while ((results.Status == OperationStatusCodes.Running ||
                    results.Status == OperationStatusCodes.NotStarted));
    
                // Display the found text.
                Console.WriteLine();
                var textUrlFileResults = results.AnalyzeResult.ReadResults;
                foreach (ReadResult page in textUrlFileResults)
                {
                    foreach (Line line in page.Lines)
                    {
                        Console.WriteLine(line.Text);
                    }
                }
                Console.WriteLine();
            }
    
        }
    }
    
  3. 선택적 단계로 데이터 처리 방법 결정을 참조하세요. 예를 들어 최신 GA 모델을 명시적으로 지정하려면 표시된 대로 ReadAsync 호출을 편집합니다. 매개 변수를 건너뛰거나 "latest"를 사용하여 최신 GA 모델을 사용합니다.

      // Read text from URL with a specific model version
      var textHeaders = await client.ReadAsync(urlFile,null,null,"2022-04-30");
    
  4. 애플리케이션을 실행합니다.

    • 디버그 메뉴에서 디버깅 시작을 선택합니다.

출력

Azure AI Vision - .NET quickstart example

----------------------------------------------------------
READ FILE FROM URL

Extracting text from URL file printed_text.jpg...


Nutrition Facts Amount Per Serving
Serving size: 1 bar (40g)
Serving Per Package: 4
Total Fat 13g
Saturated Fat 1.5g
Amount Per Serving
Trans Fat 0g
Calories 190
Cholesterol 0mg
ories from Fat 110
Sodium 20mg
nt Daily Values are based on Vitamin A 50%
calorie diet.

리소스 정리

Azure AI 서비스 구독을 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제할 수 있습니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.

다음 단계

이 빠른 시작에서는 OCR 클라이언트 라이브러리를 설치하고 Read API를 사용하는 방법을 알아보았습니다. 다음으로 읽기 API 기능에 대해 자세히 알아봅니다.

OCR(광학 인식) 클라이언트 라이브러리를 사용하여 원격 이미지에서 인쇄된 텍스트 및 필기한 텍스트를 읽습니다. OCR 서비스는 이미지 속의 시각적 텍스트를 읽고 문자 스트림으로 변환할 수 있습니다. 문자 인식에 대한 자세한 내용은 OCR 개요를 참조하세요.

로컬 이미지에서 텍스트를 읽을 수도 있습니다. ComputerVisionClientOperationsMixin 메서드(예: read_in_stream)를 참조하세요. 또는 로컬 이미지와 관련된 시나리오는 GitHub의 샘플 코드를 참조하세요.

참조 설명서 | 라이브러리 PiPy(소스 코드 | 패키지) 샘플 |

필수 조건

  • Azure 구독 – 체험 구독을 만듭니다.

  • Python 3.x.

  • Python 설치에 pip가 포함되어야 합니다. 명령줄에서 pip --version을 실행하여 pip가 설치되어 있는지 확인할 수 있습니다. 최신 버전의 Python을 설치하여 pip를 받으세요.

  • Azure AI 비전 리소스. 평가판 가격 책정 계층(F0)을 통해 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드할 수 있습니다.

  • 애플리케이션을 Azure AI 비전 서비스에 연결하려면 만든 리소스의 키와 엔드포인트가 필요합니다.

    1. Azure 비전 리소스를 배포한 후 리소스로 이동을 선택합니다.
    2. 왼쪽 탐색 메뉴에서 키 및 엔드포인트를 선택합니다.
    3. 나중에 빠른 시작에서 사용할 키와 엔드포인트 중 하나를 복사합니다.

환경 변수 만들기

이 예제에서는 애플리케이션을 실행하는 로컬 컴퓨터의 환경 변수에 자격 증명을 작성합니다.

Azure Portal로 이동합니다. 필수 구성 요소 섹션에서 만든 리소스가 성공적으로 배포된 경우 다음 단계 아래에서 리소스로 이동을 선택합니다. 리소스 관리 아래에 있는 리소스의 키 및 엔드포인트 페이지에서 키 및 엔드포인트를 찾을 수 있습니다. 리소스 키는 Azure 구독 ID와 동일하지 않습니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안 문서를 참조하세요.

키 및 엔드포인트에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  1. VISION_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  2. VISION_ENDPOINT 환경 변수를 설정하려면 your-endpoint를 리소스에 대한 엔드포인트로 바꿉니다.
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint

환경 변수가 추가되면 콘솔 창을 포함하여 환경 변수를 읽는 실행 중인 프로그램을 다시 시작해야 할 수 있습니다.

인쇄 및 필기 텍스트 읽기

  1. 클라이언트 라이브러리를 설치합니다.

    콘솔 창에서 다음 명령을 실행합니다.

    pip install --upgrade azure-cognitiveservices-vision-computervision
    
  2. Pillow 라이브러리를 설치합니다.

    pip install pillow
    
  3. 예를 들어 새 Python 애플리케이션 파일(quickstart-file.py)을 만듭니다. 그런 다음, 선호하는 편집기 또는 IDE에서 엽니다.

  4. quickstart-file.py의 내용을 다음 코드로 바꿉니다.

    from azure.cognitiveservices.vision.computervision import ComputerVisionClient
    from azure.cognitiveservices.vision.computervision.models import OperationStatusCodes
    from azure.cognitiveservices.vision.computervision.models import VisualFeatureTypes
    from msrest.authentication import CognitiveServicesCredentials
    
    from array import array
    import os
    from PIL import Image
    import sys
    import time
    
    '''
    Authenticate
    Authenticates your credentials and creates a client.
    '''
    subscription_key = os.environ["VISION_KEY"]
    endpoint = os.environ["VISION_ENDPOINT"]
    
    computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))
    '''
    END - Authenticate
    '''
    
    '''
    OCR: Read File using the Read API, extract text - remote
    This example will extract text in an image, then print results, line by line.
    This API call can also extract handwriting style text (not shown).
    '''
    print("===== Read File - remote =====")
    # Get an image with text
    read_image_url = "https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png"
    
    # Call API with URL and raw response (allows you to get the operation location)
    read_response = computervision_client.read(read_image_url,  raw=True)
    
    # Get the operation location (URL with an ID at the end) from the response
    read_operation_location = read_response.headers["Operation-Location"]
    # Grab the ID from the URL
    operation_id = read_operation_location.split("/")[-1]
    
    # Call the "GET" API and wait for it to retrieve the results 
    while True:
        read_result = computervision_client.get_read_result(operation_id)
        if read_result.status not in ['notStarted', 'running']:
            break
        time.sleep(1)
    
    # Print the detected text, line by line
    if read_result.status == OperationStatusCodes.succeeded:
        for text_result in read_result.analyze_result.read_results:
            for line in text_result.lines:
                print(line.text)
                print(line.bounding_box)
    print()
    '''
    END - Read File - remote
    '''
    
    print("End of Computer Vision quickstart.")
    
    
  5. 선택적 단계로 데이터 처리 방법 결정을 참조하세요. 예를 들어 최신 GA 모델을 명시적으로 지정하려면 표시된 대로 read 문을 편집합니다. 매개 변수를 건너뛰거나 "latest"를 사용하면 가장 최근의 GA 모델이 자동으로 사용됩니다.

       # Call API with URL and raw response (allows you to get the operation location)
       read_response = computervision_client.read(read_image_url,  raw=True, model_version="2022-04-30")
    
  6. 빠른 시작 파일에서 명령을 사용하여 python 애플리케이션을 실행합니다.

    python quickstart-file.py
    

출력

===== Read File - remote =====
The quick brown fox jumps
[38.0, 650.0, 2572.0, 699.0, 2570.0, 854.0, 37.0, 815.0]
Over
[184.0, 1053.0, 508.0, 1044.0, 510.0, 1123.0, 184.0, 1128.0]
the lazy dog!
[639.0, 1011.0, 1976.0, 1026.0, 1974.0, 1158.0, 637.0, 1141.0]

End of Azure AI Vision quickstart.

리소스 정리

Azure AI 서비스 구독을 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제할 수 있습니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.

다음 단계

이 빠른 시작에서는 OCR 클라이언트 라이브러리를 설치하고 Read API를 사용하는 방법을 알아보았습니다. 다음으로 읽기 API 기능에 대해 자세히 알아봅니다.

OCR(광학 인식) 클라이언트 라이브러리를 사용하여 Read API를 통해 인쇄된 텍스트 및 필기한 텍스트를 읽을 수 있습니다. OCR 서비스는 이미지 속의 시각적 텍스트를 읽고 문자 스트림으로 변환할 수 있습니다. 문자 인식에 대한 자세한 내용은 OCR 개요를 참조하세요.

로컬 이미지에서 텍스트를 읽을 수도 있습니다. readInStream과 같은 ComputerVisionClient 메서드를 참조하세요. 또는 로컬 이미지와 관련된 시나리오는 GitHub의 샘플 코드를 참조하세요.

참조 설명서 | 라이브러리 소스 코드 | 패키지(npm) | 샘플

필수 조건

  • Azure 구독 – 체험 구독을 만듭니다.

  • Node.js 현재 버전입니다.

  • Azure AI 비전 리소스. 평가판 가격 책정 계층(F0)을 통해 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드할 수 있습니다.

  • 애플리케이션을 Azure AI 비전 서비스에 연결하려면 만든 리소스의 키와 엔드포인트가 필요합니다.

    1. Azure 비전 리소스를 배포한 후 리소스로 이동을 선택합니다.
    2. 왼쪽 탐색 메뉴에서 키 및 엔드포인트를 선택합니다.
    3. 나중에 빠른 시작에서 사용할 키와 엔드포인트 중 하나를 복사합니다.

환경 변수 만들기

이 예제에서는 애플리케이션을 실행하는 로컬 컴퓨터의 환경 변수에 자격 증명을 작성합니다.

Azure Portal로 이동합니다. 필수 구성 요소 섹션에서 만든 리소스가 성공적으로 배포된 경우 다음 단계 아래에서 리소스로 이동을 선택합니다. 리소스 관리 아래에 있는 리소스의 키 및 엔드포인트 페이지에서 키 및 엔드포인트를 찾을 수 있습니다. 리소스 키는 Azure 구독 ID와 동일하지 않습니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안 문서를 참조하세요.

키 및 엔드포인트에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  1. VISION_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  2. VISION_ENDPOINT 환경 변수를 설정하려면 your-endpoint를 리소스에 대한 엔드포인트로 바꿉니다.
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint

환경 변수가 추가되면 콘솔 창을 포함하여 환경 변수를 읽는 실행 중인 프로그램을 다시 시작해야 할 수 있습니다.

인쇄 및 필기 텍스트 읽기

새 Node.js 애플리케이션 만들기

  1. 콘솔 창에서 앱에 대한 새 디렉터리를 만들고 해당 디렉터리로 이동합니다.

    mkdir myapp
    cd myapp
    
  2. package.json 파일을 사용하여 노드 애플리케이션을 만들려면 npm init 명령을 실행합니다. 프롬프트가 나타나면 Enter 키를 선택합니다.

    npm init
    
  3. 클라이언트 라이브러리를 설치하려면 ms-rest-azure@azure/cognitiveservices-computervision npm 패키지를 설치합니다.

    npm install ms-rest-azure
    npm install @azure/cognitiveservices-computervision
    
  4. 비동기 모듈을 설치합니다.

    npm install async
    

    앱의 package.json 파일이 종속성으로 업데이트됩니다.

  5. 새 파일을 만들고 index.js 텍스트 편집기에서 엽니다.

  6. 다음 코드를 index.js 파일에 붙여넣습니다.

    'use strict';
    
    const async = require('async');
    const fs = require('fs');
    const https = require('https');
    const path = require("path");
    const createReadStream = require('fs').createReadStream
    const sleep = require('util').promisify(setTimeout);
    const ComputerVisionClient = require('@azure/cognitiveservices-computervision').ComputerVisionClient;
    const ApiKeyCredentials = require('@azure/ms-rest-js').ApiKeyCredentials;
    /**
     * AUTHENTICATE
     * This single client is used for all examples.
     */
    const key = process.env.VISION_KEY;
    const endpoint = process.env.VISION_ENDPOINT;
    
    const computerVisionClient = new ComputerVisionClient(
      new ApiKeyCredentials({ inHeader: { 'Ocp-Apim-Subscription-Key': key } }), endpoint);
    /**
     * END - Authenticate
     */
    
    function computerVision() {
      async.series([
        async function () {
    
          /**
           * OCR: READ PRINTED & HANDWRITTEN TEXT WITH THE READ API
           * Extracts text from images using OCR (optical character recognition).
           */
          console.log('-------------------------------------------------');
          console.log('READ PRINTED, HANDWRITTEN TEXT AND PDF');
          console.log();
    
          // URL images containing printed and/or handwritten text. 
          // The URL can point to image files (.jpg/.png/.bmp) or multi-page files (.pdf, .tiff).
          const printedTextSampleURL = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/printed_text.jpg';
    
          // Recognize text in printed image from a URL
          console.log('Read printed text from URL...', printedTextSampleURL.split('/').pop());
          const printedResult = await readTextFromURL(computerVisionClient, printedTextSampleURL);
          printRecText(printedResult);
    
          // Perform read and await the result from URL
          async function readTextFromURL(client, url) {
            // To recognize text in a local image, replace client.read() with readTextInStream() as shown:
            let result = await client.read(url);
            // Operation ID is last path segment of operationLocation (a URL)
            let operation = result.operationLocation.split('/').slice(-1)[0];
    
            // Wait for read recognition to complete
            // result.status is initially undefined, since it's the result of read
            while (result.status !== "succeeded") { await sleep(1000); result = await client.getReadResult(operation); }
            return result.analyzeResult.readResults; // Return the first page of result. Replace [0] with the desired page if this is a multi-page file such as .pdf or .tiff.
          }
    
          // Prints all text from Read result
          function printRecText(readResults) {
            console.log('Recognized text:');
            for (const page in readResults) {
              if (readResults.length > 1) {
                console.log(`==== Page: ${page}`);
              }
              const result = readResults[page];
              if (result.lines.length) {
                for (const line of result.lines) {
                  console.log(line.words.map(w => w.text).join(' '));
                }
              }
              else { console.log('No recognized text.'); }
            }
          }
    
          /**
           * 
           * Download the specified file in the URL to the current local folder
           * 
           */
          function downloadFilesToLocal(url, localFileName) {
            return new Promise((resolve, reject) => {
              console.log('--- Downloading file to local directory from: ' + url);
              const request = https.request(url, (res) => {
                if (res.statusCode !== 200) {
                  console.log(`Download sample file failed. Status code: ${res.statusCode}, Message: ${res.statusMessage}`);
                  reject();
                }
                var data = [];
                res.on('data', (chunk) => {
                  data.push(chunk);
                });
                res.on('end', () => {
                  console.log('   ... Downloaded successfully');
                  fs.writeFileSync(localFileName, Buffer.concat(data));
                  resolve();
                });
              });
              request.on('error', function (e) {
                console.log(e.message);
                reject();
              });
              request.end();
            });
          }
    
          /**
           * END - Recognize Printed & Handwritten Text
           */
          console.log();
          console.log('-------------------------------------------------');
          console.log('End of quickstart.');
    
        },
        function () {
          return new Promise((resolve) => {
            resolve();
          })
        }
      ], (err) => {
        throw (err);
      });
    }
    
    computerVision();
    
  7. 선택적 단계로 데이터 처리 방법 결정을 참조하세요. 예를 들어 최신 GA 모델을 명시적으로 지정하려면 표시된 대로 read 문을 편집합니다. 매개 변수를 건너뛰거나 "latest"를 사용하면 가장 최근의 GA 모델이 자동으로 사용됩니다.

      let result = await client.read(url,{modelVersion:"2022-04-30"});
    
  8. 빠른 시작 파일에서 명령을 사용하여 node 애플리케이션을 실행합니다.

    node index.js
    

출력

-------------------------------------------------
READ PRINTED, HANDWRITTEN TEXT AND PDF

Read printed text from URL... printed_text.jpg
Recognized text:
Nutrition Facts Amount Per Serving
Serving size: 1 bar (40g)
Serving Per Package: 4
Total Fat 13g
Saturated Fat 1.5g
Amount Per Serving
Trans Fat 0g
Calories 190
Cholesterol 0mg
ories from Fat 110
Sodium 20mg
nt Daily Values are based on Vitamin A 50%
calorie diet.

-------------------------------------------------
End of quickstart.

리소스 정리

Azure AI 서비스 구독을 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제할 수 있습니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.

다음 단계

이 빠른 시작에서는 OCR 클라이언트 라이브러리를 설치하고 Read API를 사용하는 방법을 알아보았습니다. 다음으로 읽기 API 기능에 대해 자세히 알아봅니다.

OCR(광학 인식) REST API를 사용하여 인쇄된 텍스트 및 필기한 텍스트를 읽을 수 있습니다.

참고 항목

이 빠른 시작에서는 cURL 명령을 사용하여 REST API를 호출합니다. 프로그래밍 언어를 사용하여 REST API를 호출할 수도 있습니다. C#, Python, JavaJavaScript의 예는 GitHub 샘플을 참조하세요.

필수 조건

  • Azure 구독 – 체험 구독을 만듭니다.

  • cURL 이 설치되었습니다.

  • Azure AI 비전 리소스. 평가판 가격 책정 계층(F0)을 통해 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드할 수 있습니다.

  • 애플리케이션을 Azure AI 비전 서비스에 연결하려면 만든 리소스의 키와 엔드포인트가 필요합니다.

    1. Azure 비전 리소스를 배포한 후 리소스로 이동을 선택합니다.
    2. 왼쪽 탐색 메뉴에서 키 및 엔드포인트를 선택합니다.
    3. 나중에 빠른 시작에서 사용할 키와 엔드포인트 중 하나를 복사합니다.

인쇄 및 필기 텍스트 읽기

OCR(광학 인식) 서비스는 이미지나 문서에서 보이는 텍스트를 추출하여 문자 스트림으로 변환할 수 있습니다. 문자 추출에 대한 자세한 내용은 OCR 개요를 참조하세요.

읽기 API 호출

샘플을 만들고 실행하려면 다음 단계를 수행합니다.

  1. 다음 명령을 텍스트 편집기에 복사합니다.

  2. 필요한 경우 명령에서 다음 내용을 변경합니다.

    1. <key> 값을 키로 바꿉니다.
    2. 요청 URL(https://westcentralus.api.cognitive.microsoft.com/)의 첫 번째 부분을 고유한 엔드포인트 URL의 텍스트로 바꿉니다.

      참고 항목

      2019년 7월 1일 이후에 만들어진 새 리소스는 사용자 지정 하위 도메인 이름을 사용합니다. 자세한 내용과 지역 엔드포인트의 전체 목록은 Azure AI 서비스에 대한 사용자 지정 하위 도메인 이름을 참조하세요.

    3. 필요에 따라 요청 본문(https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png)의 이미지 URL을 분석할 다른 이미지의 URL로 변경합니다.
  3. 명령 프롬프트 창을 엽니다.

  4. 텍스트 편집기에서 명령을 명령 프롬프트 창에 붙여넣은 다음 명령을 실행합니다.

curl -v -X POST "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyze" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription key>" --data-ascii "{'url':'https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'}"

응답에는 값이 고유한 URL인 Operation-Location 헤더가 포함됩니다. 이 URL을 사용하여 읽기 작업의 결과를 쿼리합니다. URL은 48시간 후에 만료됩니다.

선택적으로 모델 버전을 지정합니다.

선택적 단계로 데이터 처리 방법 결정을 참조하세요. 예를 들어 최신 GA 모델을 명시적으로 지정하려면 model-version=2022-04-30을 매개 변수로 사용합니다. 매개 변수를 건너뛰거나 model-version=latest를 사용하면 가장 최근의 GA 모델이 자동으로 사용됩니다.

curl -v -X POST "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyze?model-version=2022-04-30" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription key>" --data-ascii "{'url':'https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'}"

읽기 결과 가져오기

  1. 텍스트 편집기에 다음 명령을 복사합니다.

  2. URL을 이전 단계에서 복사한 Operation-Location 값으로 바꿉니다.

  3. <key> 값을 키로 바꿉니다.

  4. 콘솔 창이 열립니다.

  5. 텍스트 편집기에서 콘솔 창으로 명령을 붙여넣은 후, 명령을 실행합니다.

    curl -v -X GET "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyzeResults/{operationId}" -H "Ocp-Apim-Subscription-Key: {key}" --data-ascii "{body}" 
    

응답 검사

성공적인 응답이 JSON을 통해 반환됩니다. 애플리케이션 예제는 다음 예제와 유사하게 콘솔 창에서 성공한 응답을 구문 분석하고 표시합니다.

{
  "status": "succeeded",
  "createdDateTime": "2021-04-08T21:56:17.6819115+00:00",
  "lastUpdatedDateTime": "2021-04-08T21:56:18.4161316+00:00",
  "analyzeResult": {
    "version": "3.2",
    "readResults": [
      {
        "page": 1,
        "angle": 0,
        "width": 338,
        "height": 479,
        "unit": "pixel",
        "lines": [
          {
            "boundingBox": [
              25,
              14,
              318,
              14,
              318,
              59,
              25,
              59
            ],
            "text": "NOTHING",
            "appearance": {
              "style": {
                "name": "other",
                "confidence": 0.971
              }
            },
            "words": [
              {
                "boundingBox": [
                  27,
                  15,
                  294,
                  15,
                  294,
                  60,
                  27,
                  60
                ],
                "text": "NOTHING",
                "confidence": 0.994
              }
            ]
          }
        ]
      }
    ]
  }
}

리소스 정리

Azure AI 서비스 구독을 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제할 수 있습니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.

다음 단계

이 빠른 시작에서는 Read REST API를 호출하는 방법을 알아보았습니다. 다음으로 읽기 API 기능에 대해 자세히 알아봅니다.

필수 조건

  • Azure 구독 – 체험 구독을 만듭니다.

  • Azure AI 비전 리소스. 평가판 가격 책정 계층(F0)을 통해 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드할 수 있습니다.

  • Vision Studio에 연결합니다.

    • 다시 로그인해야 합니다.
    • 로그인한 후 모든 리소스 보기를 선택합니다. 필요한 경우 새로 고침을 선택합니다. 리소스를 사용할 수 있는지 확인하세요.

    자세한 내용은 Vision Studio 시작을 참조하세요.

인쇄 및 필기 텍스트 읽기

  1. 광학 인식아래에서 이미지에서 텍스트 추출을 선택합니다.

  2. 사용해 보기에서 이 데모에서 Azure 계정에 사용량이 발생한다는 것을 인정합니다. 자세한 내용은 Azure AI 비전 가격 책정을 참조하세요.

  3. 사용 가능한 집합에서 이미지를 선택하거나 고유의 이미지를 업로드합니다.

  4. 필요한 경우 리소스를 선택해 주세요를 선택하여 리소스를 선택합니다.

    이미지를 선택하면 추출된 텍스트가 출력 창에 표시됩니다. JSON 탭을 선택하여 API 호출이 반환하는 JSON 출력을 볼 수도 있습니다.

시험 사용 환경 아래에는 고유의 애플리케이션에서 이 기능을 사용하기 시작하는 다음 단계가 나와 있습니다.

다음 단계

이 빠른 시작에서는 Vision Studio를 사용하여 읽기 API에 액세스했습니다. 다음으로 읽기 API 기능에 대해 자세히 알아봅니다.