Szybki przewodnik: Azure Vision v3.2 GA Read

Wersje OCR (czytanie)

Ważne

Wybierz wersję do odczytu, która najlepiej odpowiada Twoim wymaganiom.

Wejście Przykłady Wydanie do czytania Korzyści
Obrazy: Ogólne, obrazy ze środowiska naturalnego etykiety, znaki uliczne i plakaty OCR dla obrazów (wersja 4.0) Zoptymalizowany pod kątem ogólnych, niebędących dokumentami obrazów z usprawnionym synchronicznym interfejsem API, który zwiększa wydajność i ułatwia osadzanie OCR w scenariuszach doświadczeń użytkownika.
Dokumenty: cyfrowe i zeskanowane, w tym obrazy książki, artykuły i raporty Model odczytu analizy dokumentów Zoptymalizowany pod kątem dokumentów skanowanych z dużą liczbą tekstu i dokumentów cyfrowych za pomocą asynchronicznego interfejsu API w celu zautomatyzowania inteligentnego przetwarzania dokumentów na dużą skalę.

About Azure Vision v3.2 GA Read

Szukasz najnowszej wersji Azure Vision w wersji 3.2 (ogólna dostępność)? Wszystkie przyszłe ulepszenia OCR odczytu są częścią dwóch wymienionych wcześniej usług. Nie ma dalszych aktualizacji usługi Azure Vision w wersji 3.2. Aby uzyskać więcej informacji, zobacz Call Azure Vision 3.2 GA Read API and Quickstart: Azure Vision v3.2 GA Read.

Rozpocznij pracę z usługą Azure Vision w narzędziach Foundry Tools, korzystając z interfejsu API REST lub bibliotek klienckich. Interfejs API odczytu udostępnia algorytmy sztucznej inteligencji do wyodrębniania tekstu z obrazów i zwracania go jako ciągów strukturalnych. Wykonaj następujące kroki, aby zainstalować pakiet w aplikacji i wypróbować przykładowy kod dla podstawowych zadań.

Użyj biblioteki klienta optycznego rozpoznawania znaków (OCR) do odczytywania tekstu drukowanego i odręcznego z obrazu. Usługa OCR może odczytywać widoczny tekst na obrazie i konwertować go na strumień znaków. Aby uzyskać więcej informacji na temat rozpoznawania tekstu, zobacz omówienie OCR. Kod w tej sekcji używa najnowszego pakietu Azure Vision w narzędziach Foundry Tools.

Wskazówka

Możesz również wyodrębnić tekst z obrazu lokalnego. Zobacz metody ComputerVisionClient , takie jak ReadInStreamAsync. Lub, zobacz przykładowy kod na GitHub dla scenariuszy z lokalnymi obrazami.

Dokumentacja referencyjna | Kod źródłowy biblioteki | Pakiet (NuGet) | Przykłady

Wymagania wstępne

  • Subskrypcja Azure — Utwórz ją bezpłatnie.
  • Visual Studio IDE lub bieżąca wersja .NET Core.
  • Zasób Vision w Azure. Możesz użyć warstwy cenowej bezpłatna (F0), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
  • Klucz i punkt końcowy z utworzonego zasobu w celu połączenia aplikacji z usługą Azure Vision.
    1. Po wdrożeniu zasobu usługi Azure Vision wybierz pozycję Przejdź do zasobu.
    2. W okienku po lewej stronie wybierz pozycję Klucze i punkt końcowy.
    3. Skopiuj jeden z kluczy i punkt końcowy do wykorzystania w dalszej części szybkiego startu.

Tworzenie zmiennych środowiskowych

W tym przykładzie zapisz swoje poświadczenia w zmiennych środowiskowych na komputerze lokalnym, na których jest uruchamiana aplikacja.

Przejdź do portalu Azure. Jeśli zasób utworzony w sekcji Wymagania wstępne został pomyślnie wdrożony, wybierz pozycję Przejdź do zasobu w obszarze Następne kroki. Klucz i punkt końcowy można znaleźć w obszarze Zarządzanie zasobami na stronie Klucze i punkt końcowy zasobu rozpoznawania twarzy. Klucz zasobu nie jest taki sam jak identyfikator subskrypcji Azure.

Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.

  • Aby ustawić zmienną VISION_KEY środowiskową, zastąp <your_key> jednym z kluczy zasobu.
  • Aby ustawić zmienną VISION_ENDPOINT środowiskową, zastąp <your_endpoint> element punktem końcowym zasobu.

Ważne

Zalecamy uwierzytelnianie przy użyciu Microsoft Entra ID i zarządzanych tożsamości dla zasobów Azure aby uniknąć przechowywania poświadczeń w aplikacjach działających w chmurze.

Używaj kluczy interfejsu API z ostrożnością. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie. Jeśli używasz kluczy interfejsu API, przechowuj je bezpiecznie w Azure Key Vault, regularnie obracaj klucze i ograniczaj dostęp do Azure Key Vault przy użyciu kontroli dostępu opartej na rolach i ograniczeń dostępu do sieci. Aby uzyskać więcej informacji na temat bezpiecznego używania kluczy interfejsu API w aplikacjach, zobacz API keys with Azure Key Vault (Klucze interfejsu API Azure Key Vault

Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań do usług Azure AI.

setx VISION_KEY <your_key>
setx VISION_ENDPOINT <your_endpoint>

Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.

Odczytywanie tekstu drukowanego i odręcznego

  1. Utwórz nową aplikację w języku C#.

    Za pomocą Visual Studio utwórz projekt Console App (.NET Framework) dla C#, Windows, Console.

    Po utworzeniu nowego projektu zainstaluj bibliotekę klienta:

    1. Kliknij prawym przyciskiem myszy rozwiązanie projektu w Eksplorator rozwiązań i wybierz pozycję Zarządzaj pakietami NuGet dla rozwiązania.
    2. W wyświetlonym menedżerze pakietów wybierz pozycję Przeglądaj. Wybierz pozycję Uwzględnij wersję wstępną.
    3. Wyszukaj i wybierz element Microsoft.Azure.CognitiveServices.Vision.ComputerVision.
    4. W oknie dialogowym szczegółów wybierz projekt i wybierz najnowszą stabilną wersję. Następnie wybierz pozycję Zainstaluj.
  2. W katalogu projektu otwórz plik Program.cs w preferowanym edytorze lub środowisku IDE. Zastąp zawartość Program.cs następującym kodem.

    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. Opcjonalnie zobacz Określanie sposobu przetwarzania danych. Aby na przykład jawnie określić najnowszy model GA, zmodyfikuj wywołanie ReadAsync zgodnie z instrukcją. Pomiń parametr lub użyj polecenia "latest" , aby użyć najnowszego modelu ogólnie dostępnego.

      // Read text from URL with a specific model version
      var textHeaders = await client.ReadAsync(urlFile,null,null,"2022-04-30");
    
  4. Uruchom aplikację.

    • Z menu Debugowanie wybierz pozycję Rozpocznij debugowanie.

Wyjście

Azure 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
Calories from Fat 110
Sodium 20mg
nt Daily Values are based on Vitamin A 50%
calorie diet.

Czyszczenie zasobów

Jeśli chcesz wyczyścić i usunąć subskrypcję narzędzi Foundry Tools, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.

Następne kroki

W tym krótkim przewodniku startowym dowiesz się, jak zainstalować bibliotekę klienta OCR i korzystać z interfejsu API Read. Następnie dowiedz się więcej o funkcjach API do odczytu.

Użyj biblioteki klienta optycznego rozpoznawania znaków (OCR) do odczytywania tekstu drukowanego i odręcznego z obrazu zdalnego. Usługa OCR może odczytywać widoczny tekst na obrazie i konwertować go na strumień znaków. Aby uzyskać więcej informacji na temat rozpoznawania tekstu, zobacz omówienie OCR.

Wskazówka

Możesz również odczytywać tekst z obrazu lokalnego. Zobacz metody ComputerVisionClientOperationsMixin , takie jak read_in_stream. Lub, zobacz przykładowy kod na GitHub dla scenariuszy z lokalnymi obrazami.

Dokumentacja referencyjna | Kod źródłowy biblioteki | Pakiet (PyPi) | Przykłady

Wymagania wstępne

  • Subskrypcja Azure — Utwórz ją bezpłatnie.
  • Python 3.x.
  • Instalacja Python powinna obejmować pip. Możesz sprawdzić, czy masz zainstalowane narzędzie pip, uruchom polecenie pip --version w wierszu polecenia. Pobierz narzędzie pip, instalując najnowszą wersję Python.
  • An Azure Vision w zasobie narzędzi Foundry Tools. Możesz użyć warstwy cenowej bezpłatna (F0), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
  • Klucz i punkt końcowy z utworzonego zasobu w celu połączenia aplikacji z usługą Azure Vision.
    1. Po wdrożeniu zasobu usługi Azure Vision wybierz pozycję Przejdź do zasobu.
    2. W okienku po lewej stronie wybierz pozycję Klucze i punkt końcowy.
    3. Skopiuj jeden z kluczy i punkt końcowy do wykorzystania w dalszej części szybkiego startu.

Tworzenie zmiennych środowiskowych

W tym przykładzie zapisz swoje poświadczenia w zmiennych środowiskowych na komputerze lokalnym, na których jest uruchamiana aplikacja.

Przejdź do portalu Azure. Jeśli zasób utworzony w sekcji Wymagania wstępne został pomyślnie wdrożony, wybierz pozycję Przejdź do zasobu w obszarze Następne kroki. Klucz i punkt końcowy można znaleźć w obszarze Zarządzanie zasobami na stronie Klucze i punkt końcowy zasobu rozpoznawania twarzy. Klucz zasobu nie jest taki sam jak identyfikator subskrypcji Azure.

Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.

  • Aby ustawić zmienną VISION_KEY środowiskową, zastąp <your_key> jednym z kluczy zasobu.
  • Aby ustawić zmienną VISION_ENDPOINT środowiskową, zastąp <your_endpoint> element punktem końcowym zasobu.

Ważne

Zalecamy uwierzytelnianie przy użyciu Microsoft Entra ID i zarządzanych tożsamości dla zasobów Azure aby uniknąć przechowywania poświadczeń w aplikacjach działających w chmurze.

Używaj kluczy interfejsu API z ostrożnością. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie. Jeśli używasz kluczy interfejsu API, przechowuj je bezpiecznie w Azure Key Vault, regularnie obracaj klucze i ograniczaj dostęp do Azure Key Vault przy użyciu kontroli dostępu opartej na rolach i ograniczeń dostępu do sieci. Aby uzyskać więcej informacji na temat bezpiecznego używania kluczy interfejsu API w aplikacjach, zobacz API keys with Azure Key Vault (Klucze interfejsu API Azure Key Vault

Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań do usług Azure AI.

setx VISION_KEY <your_key>
setx VISION_ENDPOINT <your_endpoint>

Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.

Odczytywanie tekstu drukowanego i odręcznego

  1. Zainstaluj bibliotekę klienta.

    W oknie konsoli uruchom następujące polecenie:

    pip install --upgrade azure-cognitiveservices-vision-computervision
    
  2. Zainstaluj bibliotekę Pillow.

    pip install pillow
    
  3. Utwórz nowy plik aplikacji Python quickstart-file.py. Następnie otwórz go w preferowanym edytorze lub środowisku IDE.

  4. Zastąp zawartość quickstart-file.py następującym kodem.

    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. Opcjonalnie zobacz Określanie sposobu przetwarzania danych. Aby na przykład jawnie określić najnowszy model ga, zmodyfikuj instrukcję read , jak pokazano. Pominięcie parametru lub użycie "latest" automatycznie stosuje najnowszy model 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. Uruchom aplikację za pomocą python polecenia w pliku Szybki start.

    python quickstart-file.py
    

Wyjście

===== 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 Vision quickstart.

Czyszczenie zasobów

Jeśli chcesz wyczyścić i usunąć subskrypcję narzędzi Foundry Tools, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.

Następne kroki

W tym krótkim przewodniku startowym dowiesz się, jak zainstalować bibliotekę klienta OCR i korzystać z interfejsu API Read. Następnie dowiedz się więcej o funkcjach API do odczytu.

Użyj biblioteki klienta optycznego rozpoznawania znaków (OCR), aby odczytywać tekst drukowany i odręczny przy użyciu interfejsu API odczytu. Usługa OCR może odczytywać widoczny tekst na obrazie i konwertować go na strumień znaków. Aby uzyskać więcej informacji na temat rozpoznawania tekstu, zobacz omówienie OCR.

Wskazówka

Możesz również odczytywać tekst z obrazu lokalnego. Zobacz metody ComputerVisionClient , takie jak readInStream. Lub, zobacz przykładowy kod na GitHub dla scenariuszy z lokalnymi obrazami.

Dokumentacja referencyjna | Pakiet (npm) | Próbki

Wymagania wstępne

  • Subskrypcja Azure — Utwórz ją bezpłatnie.
  • Bieżąca wersja Node.js.
  • An Azure Vision w zasobie narzędzi Foundry Tools. Możesz użyć warstwy cenowej bezpłatna (F0), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
  • Klucz i punkt końcowy z utworzonego zasobu w celu połączenia aplikacji z usługą Azure Vision.
    1. Po wdrożeniu zasobu usługi Azure Vision wybierz pozycję Przejdź do zasobu.
    2. W okienku po lewej stronie wybierz pozycję Klucze i punkt końcowy.
    3. Skopiuj jeden z kluczy i punkt końcowy do wykorzystania w dalszej części szybkiego startu.

Tworzenie zmiennych środowiskowych

W tym przykładzie zapisz swoje poświadczenia w zmiennych środowiskowych na komputerze lokalnym, na których jest uruchamiana aplikacja.

Przejdź do portalu Azure. Jeśli zasób utworzony w sekcji Wymagania wstępne został pomyślnie wdrożony, wybierz pozycję Przejdź do zasobu w obszarze Następne kroki. Klucz i punkt końcowy można znaleźć w obszarze Zarządzanie zasobami na stronie Klucze i punkt końcowy zasobu rozpoznawania twarzy. Klucz zasobu nie jest taki sam jak identyfikator subskrypcji Azure.

Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.

  • Aby ustawić zmienną VISION_KEY środowiskową, zastąp <your_key> jednym z kluczy zasobu.
  • Aby ustawić zmienną VISION_ENDPOINT środowiskową, zastąp <your_endpoint> element punktem końcowym zasobu.

Ważne

Zalecamy uwierzytelnianie przy użyciu Microsoft Entra ID i zarządzanych tożsamości dla zasobów Azure aby uniknąć przechowywania poświadczeń w aplikacjach działających w chmurze.

Używaj kluczy interfejsu API z ostrożnością. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie. Jeśli używasz kluczy interfejsu API, przechowuj je bezpiecznie w Azure Key Vault, regularnie obracaj klucze i ograniczaj dostęp do Azure Key Vault przy użyciu kontroli dostępu opartej na rolach i ograniczeń dostępu do sieci. Aby uzyskać więcej informacji na temat bezpiecznego używania kluczy interfejsu API w aplikacjach, zobacz API keys with Azure Key Vault (Klucze interfejsu API Azure Key Vault

Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań do usług Azure AI.

setx VISION_KEY <your_key>
setx VISION_ENDPOINT <your_endpoint>

Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.

Odczytywanie tekstu drukowanego i odręcznego

Utwórz nową aplikację Node.js.

  1. W oknie konsoli utwórz nowy katalog dla aplikacji i przejdź do niego.

    mkdir myapp
    cd myapp
    
  2. Uruchom polecenie npm init, aby utworzyć aplikację Node.js z plikiem package.json. Wybierz klawisz Enter przy dowolnym monicie.

    npm init
    
  3. Aby zainstalować bibliotekę klienta, zainstaluj pakiety npm ms-rest-azure i @azure/cognitiveservices-computervision.

    npm install ms-rest-azure
    npm install @azure/cognitiveservices-computervision
    
  4. Zainstaluj moduł asynchroniczny:

    npm install async
    

    Plik aplikacji package.json jest aktualizowany przy użyciu zależności.

  5. Utwórz nowy plik, index.jsi otwórz go w edytorze tekstów.

  6. Wklej następujący kod do pliku 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. Opcjonalnie zobacz Określanie sposobu przetwarzania danych. Aby na przykład jawnie określić najnowszy model ga, zmodyfikuj instrukcję read , jak pokazano. Pominięcie parametru lub użycie "latest" automatycznie stosuje najnowszy model GA.

      let result = await client.read(url,{modelVersion:"2022-04-30"});
    
  8. Uruchom aplikację za pomocą node polecenia w pliku Szybki start.

    node index.js
    

Wyjście

-------------------------------------------------
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.

Czyszczenie zasobów

Jeśli chcesz wyczyścić i usunąć subskrypcję narzędzi Foundry Tools, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.

Następne kroki

W tym krótkim przewodniku startowym dowiesz się, jak zainstalować bibliotekę klienta OCR i korzystać z interfejsu API Read. Następnie dowiedz się więcej o funkcjach API do odczytu.

REST API OCR pozwala na odczytywanie tekstu drukowanego i odręcznego.

Uwaga

Ten przewodnik szybkiego startu używa poleceń cURL do wywoływania REST API. Interfejs API REST można również wywołać przy użyciu języka programowania. Zobacz przykłady GitHub, aby zapoznać się z przykładami C#, Python, Java i JavaScript.

Wymagania wstępne

  • Subskrypcja Azure — Utwórz ją bezpłatnie.
  • Zainstalowano bibliotekę cURL.
  • An Azure Vision w zasobie narzędzi Foundry Tools. Możesz użyć warstwy cenowej bezpłatna (F0), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
  • Klucz i punkt końcowy z utworzonego zasobu w celu połączenia aplikacji z usługą Azure Vision.
    1. Po wdrożeniu zasobu usługi Azure Vision wybierz pozycję Przejdź do zasobu.
    2. W okienku po lewej stronie wybierz pozycję Klucze i punkt końcowy.
    3. Skopiuj jeden z kluczy i punkt końcowy do wykorzystania w dalszej części szybkiego startu.

Odczytywanie tekstu drukowanego i odręcznego

Usługa optycznego rozpoznawania znaków (OCR) może wyodrębniać widoczny tekst na obrazie lub dokumencie i konwertować go na strumień znaków. Aby uzyskać więcej informacji na temat wyodrębniania tekstu, zobacz omówienie OCR.

Wywołaj interfejs API odczytu

Aby utworzyć i uruchomić przykład, wykonaj następujące czynności:

  1. Skopiuj następujące polecenie do edytora tekstów.

  2. W razie potrzeby wprowadź następujące zmiany w poleceniu:

    1. Zastąp wartość <key> kluczem.
    2. Zastąp pierwszą część adresu URL żądania (https://westcentralus.api.cognitive.microsoft.com/) tekstem we własnym adresie URL punktu końcowego.

      Uwaga

      Nowe zasoby utworzone po 1 lipca 2019 r. będą używać niestandardowych nazw domen podrzędnych. Aby uzyskać więcej informacji i pełną listę regionalnych punktów końcowych, zobacz Niestandardowe nazwy poddomeny dla narzędzi Foundry Tools.

    3. Opcjonalnie zmień adres URL obrazu w treści żądania (https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png) na adres URL innego obrazu do przeanalizowania.
  3. Otwórz okno wiersza polecenia.

  4. Wklej polecenie z edytora tekstów w oknie wiersza polecenia, a następnie uruchom polecenie.

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'}"

Odpowiedź zawiera Operation-Location nagłówek, którego wartość jest unikatowym adresem URL. Ten adres URL służy do wykonywania zapytań dotyczących wyników operacji Odczyt. Adres URL wygasa w ciągu 48 godzin.

Opcjonalnie określ wersję modelu

Opcjonalnie zobacz Określanie sposobu przetwarzania danych. Aby na przykład jawnie określić najnowszy model ga, użyj model-version=2022-04-30 parametru jako parametru. Pominięcie parametru lub użycie model-version=latest automatycznie stosuje najnowszy model 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'}"

Pobieranie wyników odczytu

  1. Skopiuj następujące polecenie do edytora tekstów.

  2. Zastąp adres URL wartością Operation-Location skopiowaną w poprzedniej procedurze.

  3. Zastąp wartość <key> kluczem.

  4. Otwórz okno konsoli.

  5. Wklej polecenie z edytora tekstów w oknie konsoli, a następnie uruchom polecenie.

    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}" 
    

Sprawdzenie odpowiedzi

Pomyślna odpowiedź jest zwracana w formacie JSON. Przykładowa aplikacja analizuje i wyświetla pomyślną odpowiedź w oknie konsoli, podobnie jak w poniższym przykładzie:

{
  "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
              }
            ]
          }
        ]
      }
    ]
  }
}

Czyszczenie zasobów

Jeśli chcesz wyczyścić i usunąć subskrypcję narzędzi Foundry Tools, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.

Następne kroki

W tym przewodniku wprowadzającym dowiedziałeś się, jak wywoływać interfejs REST API Read. Następnie dowiedz się więcej o funkcjach API do odczytu.