빠른 시작: OCR(광학 인식)

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

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

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

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

필수 구성 요소

  • Azure 구독 - 체험 구독 만들기
  • Visual Studio IDE 또는 현재 버전의 .NET Core.
  • Azure 구독을 만든 후에는 Azure Portal에서 Computer Vision 리소스를 만들어 키와 엔드포인트를 가져옵니다. 배포 후 리소스로 이동을 클릭합니다.
    • 애플리케이션을 Computer Vision 서비스에 연결하려면 만든 리소스의 키와 엔드포인트가 필요합니다. 이 빠른 시작의 뒷부분에 나오는 코드에 키와 엔드포인트를 붙여넣습니다.
    • 평가판 가격 책정 계층(F0)을 통해 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드할 수 있습니다.

인쇄 텍스트 및 필기 텍스트 읽기

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

    Visual Studio를 사용하여 새 .NET Core 애플리케이션을 만듭니다.

    클라이언트 라이브러리 설치

    새 프로젝트를 만든 후 솔루션 탐색기에서 프로젝트 솔루션을 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택하여 클라이언트 라이브러리를 설치합니다. 열리는 패키지 관리자에서 찾아보기를 선택하고, 시험판 포함을 선택하고, Microsoft.Azure.CognitiveServices.Vision.ComputerVision를 검색합니다. 7.0.0 버전, 설치를 차례로 선택합니다.

  2. 키 및 엔드포인트를 찾습니다.

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

  3. 선호하는 편집기 또는 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 subscription key and endpoint
            static string subscriptionKey = "PASTE_YOUR_COMPUTER_VISION_SUBSCRIPTION_KEY_HERE";
            static string endpoint = "PASTE_YOUR_COMPUTER_VISION_ENDPOINT_HERE";
    
            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, subscriptionKey);
    
                // 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();
            }
    
        }
    }
    
  4. 표시된 곳에 키와 엔드포인트를 코드에 붙여넣습니다. Computer Vision 엔트포인트의 형식은 https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/입니다.

    중요

    완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 Azure Key Vault와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 Cognitive Services 보안 문서를 참조하세요.

  5. 선택적 단계로 모델 버전 지정 방법을 참조하세요. 예를 들어 최신 GA 모델을 명시적으로 지정하려면 표시된 대로 ReadAsync 호출을 편집합니다. 매개 변수를 건너뛰거나 "latest"를 사용하면 가장 최근의 GA 모델이 자동으로 사용됩니다.

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

    IDE 창 상단의 디버그 단추를 클릭합니다.


출력

Azure Cognitive Services Computer 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.

리소스 정리

Cognitive Services 구독을 정리하고 제거하려면 리소스나 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.

다음 단계

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

  • OCR 개요
  • 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다.

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

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

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

필수 구성 요소

  • Azure 구독 - 체험 구독 만들기

  • Python 3.x

    • Python 설치에 pip가 포함되어야 합니다. 명령줄에서 pip --version을 실행하여 pip가 설치되어 있는지 확인할 수 있습니다. 최신 버전의 Python을 설치하여 pip를 받으세요.
  • Azure 구독을 만든 후에는 Azure Portal에서 Computer Vision 리소스를 만들어 키와 엔드포인트를 가져옵니다. 배포 후 리소스로 이동을 클릭합니다.

    • 애플리케이션을 Computer Vision 서비스에 연결하려면 만든 리소스의 키와 엔드포인트가 필요합니다. 이 빠른 시작의 뒷부분에 나오는 코드에 키와 엔드포인트를 붙여넣습니다.
    • 평가판 가격 책정 계층(F0)을 통해 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드할 수 있습니다.

인쇄 텍스트 및 필기 텍스트 읽기

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

    다음을 사용하여 클라이언트 라이브러리를 설치할 수 있습니다.

    pip install --upgrade azure-cognitiveservices-vision-computervision
    

    Pillow 라이브러리도 설치합니다.

    pip install pillow
    
  2. 새 Python 애플리케이션 만들기

    예를 들어 새 Python 파일(quickstart-file.py)을 만듭니다. 그런 다음, 선호하는 편집기 또는 IDE에서 엽니다.

  3. 키와 엔드포인트를 찾습니다.

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

  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 = "PASTE_YOUR_COMPUTER_VISION_SUBSCRIPTION_KEY_HERE"
    endpoint = "PASTE_YOUR_COMPUTER_VISION_ENDPOINT_HERE"
    
    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://raw.githubusercontent.com/MicrosoftDocs/azure-docs/master/articles/cognitive-services/Computer-vision/Images/readsample.jpg"
    
    # 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. 표시된 곳에 키와 엔드포인트를 코드에 붙여넣습니다. Computer Vision 엔트포인트의 형식은 https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/입니다.

    중요

    완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 Azure Key Vault와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 Cognitive Services 보안 문서를 참조하세요.

  6. 선택적 단계로 모델 버전 지정 방법을 참조하세요. 예를 들어 최신 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")
    
  7. quickstart 파일의 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 Computer Vision quickstart.

리소스 정리

Cognitive Services 구독을 정리하고 제거하려면 리소스나 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.

다음 단계

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

  • OCR 개요
  • 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다.

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

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

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

필수 구성 요소

  • Azure 구독 - 체험 구독 만들기
  • 현재 버전의 Node.js
  • Azure 구독을 만든 후에는 Azure Portal에서 Computer Vision 리소스를 만들어 키와 엔드포인트를 가져옵니다. 배포 후 리소스로 이동을 클릭합니다.
    • 애플리케이션을 Computer Vision 서비스에 연결하려면 만든 리소스의 키와 엔드포인트가 필요합니다. 이 빠른 시작의 뒷부분에 나오는 코드에 키와 엔드포인트를 붙여넣습니다.
    • 평가판 가격 책정 계층(F0)을 통해 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드할 수 있습니다.

인쇄 텍스트 및 필기 텍스트 읽기

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

    콘솔 창(예: cmd, PowerShell 또는 Bash)에서 앱에 대한 새 디렉터리를 만들고 이 디렉터리로 이동합니다.

    mkdir myapp && cd myapp
    

    package.json 파일을 사용하여 노드 애플리케이션을 만들려면 npm init 명령을 실행합니다.

    npm init
    

    클라이언트 라이브러리 설치

    ms-rest-azure@azure/cognitiveservices-computervision NPM 패키지를 설치합니다.

    npm install @azure/cognitiveservices-computervision
    

    비동기 모듈도 설치합니다.

    npm install async
    

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

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

  2. 키와 엔드포인트를 찾습니다.

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

  3. 다음 코드를 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 = 'PASTE_YOUR_COMPUTER_VISION_SUBSCRIPTION_KEY_HERE';
    const endpoint = 'PASTE_YOUR_COMPUTER_VISION_ENDPOINT_HERE';
    
    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();
    
  4. 표시된 위치에 위의 코드에 키와 엔드포인트를 붙여넣습니다. Computer Vision 엔트포인트의 형식은 https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/입니다.

    중요

    완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 Azure Key Vault와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 Cognitive Services 보안 문서를 참조하세요.

  5. 선택적 단계로 모델 버전 지정 방법을 참조하세요. 예를 들어 최신 GA 모델을 명시적으로 지정하려면 표시된 대로 read 문을 편집합니다. 매개 변수를 건너뛰거나 "latest"를 사용하면 가장 최근의 GA 모델이 자동으로 사용됩니다.

      let result = await client.read(url,{modelVersion:"2022-04-30"});
    
  6. quickstart 파일의 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.

리소스 정리

Cognitive Services 구독을 정리하고 제거하려면 리소스나 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.

다음 단계

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

  • OCR 개요
  • 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다.

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

참고

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

필수 구성 요소

  • Azure 구독 - 체험 구독 만들기
  • Azure 구독을 만든 후에는 Azure Portal에서 Computer Vision 리소스를 만들어 키와 엔드포인트를 가져옵니다. 배포 후 리소스로 이동을 클릭합니다.
    • 애플리케이션을 Computer Vision 서비스에 연결하려면 만든 리소스의 키와 엔드포인트가 필요합니다. 이 빠른 시작의 뒷부분에 나오는 코드에 키와 엔드포인트를 붙여넣습니다.
    • 평가판 가격 책정 계층(F0)을 통해 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드할 수 있습니다.
  • cURL 설치

인쇄 텍스트 및 필기 텍스트 읽기

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

읽기 API 호출

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

  1. 다음 명령을 텍스트 편집기에 복사합니다.
  2. 필요한 경우 명령에서 다음 내용을 변경합니다.
    1. <subscriptionKey> 값을 키로 바꿉니다.
    2. 요청 URL(westcentralus)의 첫 번째 부분을 고유한 엔드포인트 URL의 텍스트로 바꿉니다.

      참고

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

    3. 필요한 경우 요청 본문의 이미지 URL(https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png\)을 분석할 다른 이미지의 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://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.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://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png\"}"

읽기 결과 가져오기

  1. 다음 명령을 텍스트 편집기에 복사합니다.
  2. URL을 이전 단계에서 복사한 Operation-Location 값으로 바꿉니다.
  3. 필요한 경우 명령에서 다음 내용을 변경합니다.
    1. <subscriptionKey>의 값을 구독 키로 바꿉니다.
  4. 명령 프롬프트 창을 엽니다.
  5. 텍스트 편집기에서 명령 프롬프트 창으로 명령을 붙여넣은 후 명령을 실행합니다.
curl -v -X GET "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyzeResults/{operationId}" -H "Ocp-Apim-Subscription-Key: {subscription 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
              }
            ]
          }
        ]
      }
    ]
  }
}

다음 단계

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

필수 구성 요소

  • Azure 구독 및 Cognitive Services 리소스로 Vision Studio에 로그인합니다. 이 단계에서 도움이 필요하면 개요의 시작 섹션을 참조하세요.

인쇄 텍스트 및 필기 텍스트 읽기

  1. 텍스트 추출 탭을 선택하고 이미지에서 텍스트 추출이라는 패널을 선택합니다.
  2. 시험 사용 환경을 사용하려면 리소스를 선택하고 가격 책정 계층에 따라 사용량이 발생함을 인정해야 합니다.
  3. 사용 가능한 집합에서 이미지를 선택하거나 고유의 이미지를 업로드합니다.
  4. 이미지를 선택하면 추출된 텍스트가 출력 창에 표시됩니다. JSON 탭을 선택하여 API 호출이 반환하는 JSON 출력을 볼 수도 있습니다.
  5. 시험 사용 환경 아래에는 고유의 애플리케이션에서 이 기능을 사용하기 시작하는 다음 단계가 나와 있습니다.

다음 단계

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