Szybki start: korzystanie z biblioteki klienta read lub interfejsu API REST

Wprowadzenie do interfejsu API REST odczytu lub bibliotek klienckich. Usługa Odczytu udostępnia algorytmy sztucznej inteligencji do wyodrębniania widocznego 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 OCR, aby odczytać z obrazu tekst drukowany i odręczny.

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

Wymagania wstępne

  • Subskrypcja platformy Azure — bezpłatne tworzenie subskrypcji
  • Program Visual Studio IDE lub bieżącą wersję programu .NET Core.
  • Po utworzeniu subskrypcji platformy Azure utwórz zasób przetwarzanie obrazów zasobów przetwarzanie obrazów w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Po wdrożeniu kliknij pozycję Przejdź do zasobu.
    • Klucz i punkt końcowy będą potrzebne z zasobu, który utworzysz, aby połączyć aplikację z przetwarzanie obrazów usługą. Klucz i punkt końcowy wkleisz do poniższego kodu w dalszej części tego przewodnika Szybki start.
    • Możesz użyć bezpłatnej warstwy cenowej ( ), aby wypróbować usługę, a następnie przejść na warstwę płatną w F0 środowisku produkcyjnym.

Konfigurowanie

Tworzenie nowej aplikacji w języku C#

Za Visual Studio utwórz nową aplikację .NET Core.

Instalowanie biblioteki klienta

Po utworzeniu nowego projektu zainstaluj bibliotekę klienta, klikając prawym przyciskiem myszy rozwiązanie projektu w Eksplorator rozwiązań i wybierając pozycję Zarządzaj pakietami NuGet. W menedżerze pakietów, który zostanie otwarty, wybierz pozycję Przeglądaj, zaznacz pole wyboru Uwzględnij wstępną publikację i Microsoft.Azure.CognitiveServices.Vision.ComputerVision wyszukaj . Wybierz wersję 7.0.0 , a następnie pozycję Zainstaluj.

Porada

Chcesz wyświetlić cały plik kodu szybkiego startu jednocześnie? Można go znaleźć w witrynie GitHub,która zawiera przykłady kodu w tym przewodniku Szybki start.

W katalogu projektu otwórz plik Program.cs w preferowanym edytorze lub w preferowanym idee.

Znajdowanie klucza subskrypcji i punktu końcowego

Przejdź do witryny Azure Portal. Jeśli zasób przetwarzanie obrazów utworzony w sekcji Wymagania wstępne został pomyślnie wdrożony, kliknij przycisk Przejdź do zasobu w obszarze Następne kroki. Klucz subskrypcji i punkt końcowy można znaleźć na stronie klucza i punktu końcowego zasobu w obszarze zarządzanie zasobami.

W klasie Program aplikacji utwórz zmienne dla klucza przetwarzanie obrazów i punktu końcowego. Wklej klucz subskrypcji i punkt końcowy do poniższego kodu tam, gdzie jest to wskazane. Punkt przetwarzanie obrazów ma postać https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/ .

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

Ważne

Pamiętaj, aby usunąć klucz subskrypcji z kodu, gdy wszystko będzie gotowe, i nigdy nie publikować go publicznie. W środowisku produkcyjnym rozważ użycie bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. Na przykład usługa Azure Key Vault.

W metodzie aplikacji dodaj wywołania metod używanych Main w tym przewodniku Szybki start. Utworzysz je później.

ComputerVisionClient client = Authenticate(endpoint, subscriptionKey);

// Extract text (OCR) from a URL image using the Read API
ReadFileUrl(client, READ_TEXT_URL_IMAGE).Wait();

Model obiektu

Poniższe klasy i interfejsy obsługują niektóre główne funkcje zestawu SDK OCR .NET.

Nazwa Opis
ComputerVisionClient Ta klasa jest potrzebna dla wszystkich przetwarzanie obrazów funkcjonalności. Należy utworzyć jego wystąpienia z informacjami o subskrypcji i używać ich do większości operacji na obrazach.
ComputerVisionClientExtensions Ta klasa zawiera dodatkowe metody klasy ComputerVisionClient.

Przykłady kodu

Te fragmenty kodu pokazują, jak wykonać następujące zadania za pomocą biblioteki klienta OCR dla programu .NET:

Uwierzytelnianie klienta

W nowej metodzie w klasie Program należy utworzyć wystąpienia klienta z punktem końcowym i kluczem subskrypcji. Utwórz obiekt ApiKeyServiceClientCredentials przy użyciu klucza subskrypcji i użyj go z punktem końcowym, aby utworzyć obiekt ComputerVisionClient.

/*
 * AUTHENTICATE
 * Creates a Computer Vision client used by each example.
 */
public static ComputerVisionClient Authenticate(string endpoint, string key)
{
    ComputerVisionClient client =
      new ComputerVisionClient(new ApiKeyServiceClientCredentials(key))
      { Endpoint = endpoint };
    return client;
}

Odczytywanie tekstu drukowanego i odręcznego

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 optycznego rozpoznawania znaków (OCR). Kod w tej sekcji używa najnowszej wersji zestawu PRZETWARZANIE OBRAZÓW SDK dla wersji Read 3.0 i definiuje metodę , która używa obiektu klienta do wykrywania i wyodrębniania tekstu na BatchReadFileUrl obrazie.

Porada

Można również wyodrębnić tekst z obrazu lokalnego. Zobacz metody ComputerVisionClient, takie jak ReadInStreamAsync. Możesz też zobaczyć przykładowy kod w usłudze GitHub, aby uzyskać scenariusze obejmujące obrazy lokalne.

Konfigurowanie obrazu testowego

W klasie Program zapisz odwołanie do adresu URL obrazu, z którego chcesz wyodrębnić tekst. Ten fragment kodu zawiera przykładowe obrazy dla tekstu drukowanego i odręcznego.

private const string READ_TEXT_URL_IMAGE = "https://intelligentkioskstore.blob.core.windows.net/visionapi/suggestedphotos/3.png";

Wywołanie interfejsu API odczytu

Zdefiniuj nową metodę odczytywania tekstu. Dodaj poniższy kod, który wywołuje metodę ReadAsync dla danego obrazu. Zwraca identyfikator operacji i uruchamia asynchroniczny proces odczytu zawartości obrazu.

/*
 * READ FILE - URL 
 * Extracts text. 
 */
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);

Uzyskiwanie wyników odczytu

Następnie pobierz identyfikator operacji zwrócony z wywołania ReadAsync i użyj go do wykonywania zapytań o wyniki operacji w usłudze. Poniższy kod sprawdza operację do momentu zwrócenia wyników. Następnie wypisuje wyodrębnione dane tekstowe w konsoli.

// 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));

Wyświetlanie wyników odczytu

Dodaj następujący kod w celu analizowania i wyświetlania pobranych danych tekstowych, a następnie zakończ definicję metody.

    // 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();
}

Uruchamianie aplikacji

Uruchom aplikację, klikając przycisk Debug (Debuguj) w górnej części okna środowiska IDE.

Czyszczenie zasobów

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

Następne kroki

W tym przewodniku Szybki start opisano sposób instalowania biblioteki klienta OCR i używania interfejsu API odczytu. Następnie dowiedz się więcej o funkcjach interfejsu API Read.

Biblioteka klienta optycznego rozpoznawania znaków umożliwia odczytywanie tekstu drukowanego i odręcznego za pomocą interfejsu API odczytywania.

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

Wymagania wstępne

  • Subskrypcja platformy Azure — bezpłatne tworzenie subskrypcji

  • Python 3.x

    • Instalacja języka Python powinna zawierać pip. Możesz sprawdzić, czy masz zainstalowany program pip, pip --version uruchamiając polecenie w wierszu polecenia. Pobierz program pip, instalując najnowszą wersję języka Python.
  • Po utworzeniu subskrypcji platformy Azure utwórz zasób przetwarzanie obrazów zasobów przetwarzanie obrazów w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Po wdrożeniu kliknij pozycję Przejdź do zasobu.

    • Klucz i punkt końcowy będą potrzebne z zasobu, który utworzysz, aby połączyć aplikację z przetwarzanie obrazów usługą. Klucz i punkt końcowy wkleisz do poniższego kodu w dalszej części tego przewodnika Szybki start.
    • Możesz użyć bezpłatnej warstwy cenowej ( ), aby wypróbować usługę, a następnie przejść na warstwę płatną w F0 środowisku produkcyjnym.

Konfigurowanie

Instalowanie biblioteki klienta

Bibliotekę klienta można zainstalować za pomocą:

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

Zainstaluj również bibliotekę Pillow.

pip install pillow

Tworzenie nowej aplikacji w języku Python

Porada

Chcesz wyświetlić cały plik kodu szybkiego startu jednocześnie? Można go znaleźć w witrynie GitHub,która zawiera przykłady kodu w tym przewodniku Szybki start.

Utwórz nowy plik w — języku Python quickstart-file.py , na przykład . Następnie otwórz go w preferowanym edytorze lub w preferowanym edytorze środowiska IDE.

Znajdowanie klucza subskrypcji i punktu końcowego

Przejdź do witryny Azure Portal. Jeśli zasób przetwarzanie obrazów utworzony w sekcji Wymagania wstępne został pomyślnie wdrożony, kliknij przycisk Przejdź do zasobu w obszarze Następne kroki. Klucz subskrypcji i punkt końcowy można znaleźć na stronie klucza i punktu końcowego zasobu w obszarze zarządzanie zasobami.

Utwórz zmienne dla klucza przetwarzanie obrazów subskrypcji i punktu końcowego. Wklej klucz subskrypcji i punkt końcowy do poniższego kodu tam, gdzie jest to wskazane. Punkt przetwarzanie obrazów ma postać https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/ .

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"

Ważne

Pamiętaj, aby usunąć klucz subskrypcji z kodu, gdy wszystko będzie gotowe, i nigdy nie publikować go publicznie. W środowisku produkcyjnym rozważ użycie bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. Na przykład usługa Azure Key Vault.

Model obiektów

Poniższe klasy i interfejsy obsługują niektóre główne funkcje zestawu OCR Python SDK.

Nazwa Opis
ComputerVisionClientOperationsMixin Ta klasa bezpośrednio obsługuje wszystkie operacje obrazu, takie jak analiza obrazu, wykrywanie tekstu i generowanie miniatur.
ComputerVisionClient Ta klasa jest potrzebna dla wszystkich przetwarzanie obrazów funkcjonalności. Należy utworzyć jego wystąpienie z informacjami o subskrypcji i użyć ich do tworzenia wystąpień innych klas. Implementuje ona computerVisionClientOperationsMixin.
VisualFeatureTypes To wylinie definiuje różne typy analizy obrazów, które można wykonać w standardowej operacji analizy. W zależności od potrzeb należy określić zestaw wartości VisualFeatureTypes.

Przykłady kodu

Te fragmenty kodu pokazują, jak wykonać następujące zadania za pomocą biblioteki klienta OCR dla języka Python:

Uwierzytelnianie klienta

Należy utworzyć wystąpienia klienta z punktem końcowym i kluczem. Utwórz obiekt CognitiveServicesCredentials przy użyciu klucza i użyj go z punktem końcowym, aby utworzyć obiekt ComputerVisionClient.

computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))

Odczytywanie tekstu drukowanego i odręcznego

Usługa OCR może odczytywać widoczny tekst na obrazie i konwertować go na strumień znaków. Można to zrobić w dwóch częściach.

Wywołanie interfejsu API odczytu

Najpierw użyj poniższego kodu, aby wywołać metodę read dla danego obrazu. Zwraca identyfikator operacji i uruchamia asynchroniczny proces odczytu zawartości obrazu.

'''
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)

Porada

Możesz również odczytywać tekst z obrazu lokalnego. Zobacz metody ComputerVisionClientOperationsMixin, takie jak read_in_stream. Możesz też zobaczyć przykładowy kod w usłudze GitHub, aby uzyskać scenariusze obejmujące obrazy lokalne.

Uzyskiwanie wyników odczytu

Następnie pobierz identyfikator operacji zwrócony z wywołania odczytu i użyj go do wykonywania zapytań o wyniki operacji w usłudze. Poniższy kod sprawdza operację w odstępach sekund do momentu zwrócenia wyników. Następnie wypisuje wyodrębnione dane tekstowe w konsoli.

# 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()

Uruchamianie aplikacji

Uruchom aplikację za pomocą python polecenia w pliku szybkiego startu.

python quickstart-file.py

Czyszczenie zasobów

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

Następne kroki

W tym przewodniku Szybki start opisano sposób instalowania biblioteki klienta OCR i używania interfejsu API odczytu. Następnie dowiedz się więcej o funkcjach interfejsu API Read.

Biblioteka klienta optycznego rozpoznawania znaków do odczytywania tekstu drukowanego i odręcznego na obrazach.

Dokumentacja referencyjna | Kod źródłowy biblioteki | Artefakt (Maven) | Przykłady

Wymagania wstępne

  • Subskrypcja platformy Azure — utwórz subskrypcję bezpłatnie
  • Bieżąca wersja zestawu Java Development Kit (JDK)
  • Narzędzie kompilacji Gradlelub inny menedżer zależności.
  • Po utworzeniu subskrypcji platformy Azure utwórz zasób przetwarzanie obrazów zasobów przetwarzanie obrazów witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Po wdrożeniu kliknij pozycję Przejdź do zasobu.
    • Klucz i punkt końcowy z zasobu, który utworzysz, będą potrzebne do połączenia aplikacji z przetwarzanie obrazów usługą. Klucz i punkt końcowy wkleisz do poniższego kodu w dalszej części tego przewodnika Szybki start.
    • Możesz użyć warstwy cenowej Bezpłatna ( ), aby wypróbować usługę, i przejść później na warstwę płatną F0 na użytek produkcji.

Konfigurowanie

Tworzenie nowego projektu gradle

W oknie konsoli (takim jak cmd, PowerShell lub Bash) utwórz nowy katalog dla aplikacji i przejdź do niego.

mkdir myapp && cd myapp

Uruchom polecenie gradle init z katalogu roboczego. To polecenie spowoduje utworzenie podstawowych plików kompilacji dla programu Gradle, w tym pliku build.gradle.kts, który jest używany w czasie wykonywania do tworzenia i konfigurowania aplikacji.

gradle init --type basic

Po wyświetleniu monitu wybierz pozycję Język DSL, a następnie Kotlin.

Instalowanie biblioteki klienta

W tym przewodniku Szybki start jest używany menedżer zależności gradle. Bibliotekę klienta i informacje dla innych menedżerów zależności można znaleźć w centralnym repozytorium maven.

Znajdź plik build.gradle.kts i otwórz go za pomocą preferowanego środowiska IDE lub edytora tekstów. Następnie skopiuj następującą konfigurację kompilacji. Ta konfiguracja definiuje projekt jako aplikację Java, której punktem wejścia jest klasa ComputerVisionQuickstart. Importuje przetwarzanie obrazów bibliotekę.

plugins {
    java
    application
}
application { 
    mainClass.set("ComputerVisionQuickstart")
}
repositories {
    mavenCentral()
}
dependencies {
    implementation(group = "com.microsoft.azure.cognitiveservices", name = "azure-cognitiveservices-computervision", version = "1.0.6-beta")
}

Tworzenie pliku języka Java

Z katalogu roboczego uruchom następujące polecenie, aby utworzyć folder źródłowy projektu:

mkdir -p src/main/java

Porada

Chcesz wyświetlić cały plik kodu szybkiego startu jednocześnie? Znajdziesz go w witrynie GitHub,która zawiera przykłady kodu z tego przewodnika Szybki start.

Przejdź do nowego folderu i utwórz plik o nazwie ComputerVisionQuickstart.java. Otwórz go w preferowanym edytorze lub w środowiskach IDE.

Znajdowanie klucza subskrypcji i punktu końcowego

Przejdź do witryny Azure Portal. Jeśli zasób przetwarzanie obrazów utworzony w sekcji Wymagania wstępne został pomyślnie wdrożony, kliknij przycisk Przejdź do zasobu w obszarze Następne kroki. Klucz subskrypcji i punkt końcowy można znaleźć na stronie klucza i punktu końcowego zasobu w obszarze zarządzania zasobami.

Zdefiniuj klasę ComputerVisionQuickstart. Utwórz zmienne dla klucza przetwarzanie obrazów subskrypcji i punktu końcowego. Wklej klucz subskrypcji i punkt końcowy do poniższego kodu tam, gdzie jest to wskazane. Twój przetwarzanie obrazów końcowy ma postać https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/ .

import com.microsoft.azure.cognitiveservices.vision.computervision.*;
import com.microsoft.azure.cognitiveservices.vision.computervision.implementation.ComputerVisionImpl;
import com.microsoft.azure.cognitiveservices.vision.computervision.models.*;

import java.io.*;
import java.nio.file.Files;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

public class ComputerVisionQuickstart {

    static String subscriptionKey = "PASTE_YOUR_COMPUTER_VISION_SUBSCRIPTION_KEY_HERE";
    static String endpoint = "PASTE_YOUR_COMPUTER_VISION_ENDPOINT_HERE";

Ważne

Pamiętaj, aby usunąć klucz subskrypcji z kodu, gdy wszystko będzie gotowe, i nigdy nie publikować go publicznie. W środowisku produkcyjnym rozważ użycie bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. Na przykład Azure Key Vault.

W metodzie głównej aplikacji dodaj wywołania metod używanych w tym przewodniku Szybki start. Te wartości zdefiniuje się później.

public static void main(String[] args) {
    
    System.out.println("\nAzure Cognitive Services Computer Vision - Java Quickstart Sample");

    // Create an authenticated Computer Vision client.
    ComputerVisionClient compVisClient = Authenticate(subscriptionKey, endpoint); 

    // Read from local file
    ReadFromFile(compVisClient);
}

Model obiektów

Poniższe klasy i interfejsy obsługują niektóre główne funkcje zestawu OCR Java SDK.

Nazwa Opis
ComputerVisionClient Ta klasa jest potrzebna dla wszystkich przetwarzanie obrazów funkcjonalności. Należy utworzyć jego wystąpienie z informacjami o subskrypcji i użyć ich do tworzenia wystąpień innych klas.

Przykłady kodu

Te fragmenty kodu pokazują, jak wykonać następujące zadania za pomocą biblioteki klienta OCR dla języka Java:

Uwierzytelnianie klienta

W nowej metodzie należy utworzyć wystąpienia obiektu ComputerVisionClient z punktem końcowym i kluczem.

public static ComputerVisionClient Authenticate(String subscriptionKey, String endpoint){
    return ComputerVisionManager.authenticate(subscriptionKey).withEndpoint(endpoint);
}

Odczytywanie tekstu drukowanego i odręcznego

Usługa OCR może odczytywać widoczny tekst na obrazie i konwertować go na strumień znaków. W tej sekcji zdefiniowano metodę , która pobiera lokalną ścieżkę pliku i drukuje tekst obrazu ReadFromFile w konsoli.

Porada

Możesz również odczytać tekst na obrazie zdalnym, do których odwołuje się adres URL. Zobacz metody ComputerVision, takie jak read. Możesz też zobaczyć przykładowy kod w witrynie GitHub, aby uzyskać scenariusze dotyczące obrazów zdalnych.

Konfigurowanie obrazu testowego

Utwórz folder resources/folder w folderze src/main/ projektu i dodaj obraz, z którym chcesz odczytać tekst. Przykładowy obraz można pobrać tutaj.

Następnie dodaj następującą definicję metody do klasy ComputerVisionQuickstart. Zmień wartość , aby localFilePath dopasować plik obrazu.

/**
 * OCR with READ : Performs a Read Operation on a local image
 * @param client instantiated vision client
 * @param localFilePath local file path from which to perform the read operation against
 */
private static void ReadFromFile(ComputerVisionClient client) {
    System.out.println("-----------------------------------------------");
    
    String localFilePath = "src\\main\\resources\\myImage.png";
    System.out.println("Read with local file: " + localFilePath);

Wywołanie interfejsu API odczytu

Następnie dodaj następujący kod, aby wywołać metodę readInStreamWithServiceResponseAsync dla danego obrazu.


try {
    File rawImage = new File(localFilePath);
    byte[] localImageBytes = Files.readAllBytes(rawImage.toPath());

    // Cast Computer Vision to its implementation to expose the required methods
    ComputerVisionImpl vision = (ComputerVisionImpl) client.computerVision();

    // Read in remote image and response header
    ReadInStreamHeaders responseHeader =
            vision.readInStreamWithServiceResponseAsync(localImageBytes, null, null)
                .toBlocking()
                .single()
                .headers();

Poniższy blok kodu wyodrębnia identyfikator operacji z odpowiedzi wywołania Read. Używa tego identyfikatora z metodą pomocnika, aby wydrukować tekst odczytanych wyników w konsoli.

// Extract the operationLocation from the response header
String operationLocation = responseHeader.operationLocation();
System.out.println("Operation Location:" + operationLocation);

getAndPrintReadResult(vision, operationLocation);

Zamknij blok try/catch i definicję metody.


    } catch (Exception e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
}

Uzyskiwanie wyników odczytu

Następnie dodaj definicję dla metody pomocnika. Ta metoda używa identyfikatora operacji z poprzedniego kroku, aby odpytać operację odczytu i uzyskać wyniki OCR, gdy są dostępne.

/**
 * Polls for Read result and prints results to console
 * @param vision Computer Vision instance
 * @return operationLocation returned in the POST Read response header
 */
private static void getAndPrintReadResult(ComputerVision vision, String operationLocation) throws InterruptedException {
    System.out.println("Polling for Read results ...");

    // Extract OperationId from Operation Location
    String operationId = extractOperationIdFromOpLocation(operationLocation);

    boolean pollForResult = true;
    ReadOperationResult readResults = null;

    while (pollForResult) {
        // Poll for result every second
        Thread.sleep(1000);
        readResults = vision.getReadResult(UUID.fromString(operationId));

        // The results will no longer be null when the service has finished processing the request.
        if (readResults != null) {
            // Get request status
            OperationStatusCodes status = readResults.status();

            if (status == OperationStatusCodes.FAILED || status == OperationStatusCodes.SUCCEEDED) {
                pollForResult = false;
            }
        }
    }

Pozostała część metody analizuje wyniki OCR i drukuje je w konsoli.

    // Print read results, page per page
    for (ReadResult pageResult : readResults.analyzeResult().readResults()) {
        System.out.println("");
        System.out.println("Printing Read results for page " + pageResult.page());
        StringBuilder builder = new StringBuilder();

        for (Line line : pageResult.lines()) {
            builder.append(line.text());
            builder.append("\n");
        }

        System.out.println(builder.toString());
    }
}

Na koniec dodaj inną metodę pomocnika używaną powyżej, która wyodrębnia identyfikator operacji z początkowej odpowiedzi.

/**
 * Extracts the OperationId from a Operation-Location returned by the POST Read operation
 * @param operationLocation
 * @return operationId
 */
private static String extractOperationIdFromOpLocation(String operationLocation) {
    if (operationLocation != null && !operationLocation.isEmpty()) {
        String[] splits = operationLocation.split("/");

        if (splits != null && splits.length > 0) {
            return splits[splits.length - 1];
        }
    }
    throw new IllegalStateException("Something went wrong: Couldn't extract the operation id from the operation location");
}

Uruchamianie aplikacji

Aplikację można skompilować za pomocą:

gradle build

Uruchom aplikację za pomocą gradle run polecenia :

gradle run

Czyszczenie zasobów

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

Następne kroki

W tym przewodniku Szybki start opisano sposób instalowania biblioteki klienta OCR i korzystania z interfejsu API odczytu. Następnie dowiedz się więcej o funkcjach interfejsu API odczytywania.

Biblioteka klienta optycznego rozpoznawania znaków umożliwia odczytywanie tekstu drukowanego i odręcznego za pomocą interfejsu API odczytywania.

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

Wymagania wstępne

  • Subskrypcja platformy Azure — bezpłatne tworzenie subskrypcji
  • Bieżąca wersja Node.js
  • Po utworzeniu subskrypcji platformy Azure utwórz zasób przetwarzanie obrazów zasobów przetwarzanie obrazów w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Po wdrożeniu kliknij pozycję Przejdź do zasobu.
    • Klucz i punkt końcowy będą potrzebne z zasobu, który utworzysz, aby połączyć aplikację z przetwarzanie obrazów usługą. Klucz i punkt końcowy wkleisz do poniższego kodu w dalszej części tego przewodnika Szybki start.
    • Możesz użyć bezpłatnej warstwy cenowej ( ), aby wypróbować usługę, a następnie przejść na warstwę płatną w F0 środowisku produkcyjnym.

Konfigurowanie

Tworzenie nowej aplikacji Node.js

W oknie konsoli (takim jak cmd, PowerShell lub Bash) utwórz nowy katalog dla aplikacji i przejdź do niego.

mkdir myapp && cd myapp

Uruchom polecenie npm init , aby utworzyć aplikację node z package.json plikiem .

npm init

Instalowanie biblioteki klienta

Zainstaluj pakiet ms-rest-azure @azure/cognitiveservices-computervision NPM i :

npm install @azure/cognitiveservices-computervision

Zainstaluj również moduł asynchroniczny:

npm install async

Plik aplikacji package.json zostanie zaktualizowany o zależności.

Porada

Chcesz wyświetlić cały plik kodu szybkiego startu jednocześnie? Można go znaleźć w witrynie GitHub,która zawiera przykłady kodu w tym przewodniku Szybki start.

Utwórz nowy plik, index.js, i otwórz go w edytorze tekstów.

Znajdowanie klucza subskrypcji i punktu końcowego

Przejdź do witryny Azure Portal. Jeśli zasób przetwarzanie obrazów utworzony w sekcji Wymagania wstępne został pomyślnie wdrożony, kliknij przycisk Przejdź do zasobu w obszarze Następne kroki. Klucz subskrypcji i punkt końcowy można znaleźć na stronie klucza i punktu końcowego zasobu w obszarze zarządzanie zasobami.

Utwórz zmienne dla klucza przetwarzanie obrazów subskrypcji i punktu końcowego. Wklej klucz subskrypcji i punkt końcowy do poniższego kodu tam, gdzie jest to wskazane. Punkt przetwarzanie obrazów ma postać https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/ .

'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';

Ważne

Pamiętaj, aby usunąć klucz subskrypcji z kodu, gdy wszystko będzie gotowe, i nigdy nie publikować go publicznie. W środowisku produkcyjnym rozważ użycie bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. Na przykład usługa Azure Key Vault.

Model obiektów

Poniższe klasy i interfejsy obsługują niektóre główne funkcje zestawu OCR Node.js SDK.

Nazwa Opis
ComputerVisionClient Ta klasa jest potrzebna dla wszystkich przetwarzanie obrazów funkcjonalności. Należy utworzyć jego wystąpienia z informacjami o subskrypcji i używać ich do większości operacji na obrazach.

Przykłady kodu

Te fragmenty kodu pokazują, jak wykonać następujące zadania za pomocą biblioteki klienta OCR dla Node.js:

Uwierzytelnianie klienta

Należy utworzyć wystąpienia klienta z punktem końcowym i kluczem. Utwórz obiekt ApiKeyCredentials z kluczem i punktem końcowym, a następnie użyj go do utworzenia obiektu ComputerVisionClient.

const computerVisionClient = new ComputerVisionClient(
  new ApiKeyCredentials({ inHeader: { 'Ocp-Apim-Subscription-Key': key } }), endpoint);

Następnie zdefiniuj funkcję computerVision i zadeklaruj serię asynchroniczną za pomocą funkcji podstawowej i funkcji wywołania zwrotnego. Na końcu skryptu ukończysz tę definicję funkcji i wywołasz ją.

function computerVision() {
  async.series([
    async function () {

Odczytywanie tekstu drukowanego i odręcznego

Usługa OCR może wyodrębnić widoczny tekst na obrazie i przekonwertować go na strumień znaków. W tym przykładzie użyto operacji Odczytu.

Konfigurowanie obrazów testowych

Zapisz odwołanie do adresu URL obrazów, z których chcesz wyodrębnić tekst.

// 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://moderatorsampleimages.blob.core.windows.net/samples/sample2.jpg';
const multiLingualTextURL = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/MultiLingual.png';
const mixedMultiPagePDFURL = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/MultiPageHandwrittenForm.pdf';

Uwaga

Możesz również odczytywać tekst z obrazu lokalnego. Zobacz metody ComputerVisionClient, takie jak readInStream. Możesz też zobaczyć przykładowy kod w usłudze GitHub, aby uzyskać scenariusze obejmujące obrazy lokalne.

Wywołanie interfejsu API odczytu

Zdefiniuj następujące pola w funkcji, aby określić wartości stanu wywołania odczytu.

// Status strings returned from Read API. NOTE: CASING IS SIGNIFICANT.
// Before Read 3.0, these are "Succeeded" and "Failed"
const STATUS_SUCCEEDED = "succeeded";
const STATUS_FAILED = "failed"

Dodaj poniższy kod, który wywołuje readTextFromURL funkcję dla danych obrazów.

// 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);

// Recognize multi-lingual text in a PNG from a URL
console.log('\nRead printed multi-lingual text in a PNG from URL...', multiLingualTextURL.split('/').pop());
const multiLingualResult = await readTextFromURL(computerVisionClient, multiLingualTextURL);
printRecText(multiLingualResult);

// Recognize printed text and handwritten text in a PDF from a URL
console.log('\nRead printed and handwritten text from a PDF from URL...', mixedMultiPagePDFURL.split('/').pop());
const mixedPdfResult = await readTextFromURL(computerVisionClient, mixedMultiPagePDFURL);
printRecText(mixedPdfResult);

Zdefiniuj readTextFromURL funkcję. Wywołuje to metodę read obiektu klienta, która zwraca identyfikator operacji i uruchamia proces asynchroniczny odczytu zawartości obrazu. Następnie używa identyfikatora operacji do sprawdzania stanu operacji do momentu zwrócenia wyników. Zwraca wyodrębnione wyniki.

// 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 !== 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.
}

Następnie zdefiniuj funkcję pomocnika , która drukuje wyniki operacji printRecText Odczytu w konsoli.

// 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.'); }
  }
}

Zamykanie funkcji

Zamknij funkcję computerVision i wywołaj ją.


    },
    function () {
      return new Promise((resolve) => {
        resolve();
      })
    }
  ], (err) => {
    throw (err);
  });
}

computerVision();

Uruchamianie aplikacji

Uruchom aplikację za pomocą node polecenia w pliku szybkiego startu.

node index.js

Czyszczenie zasobów

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

Następne kroki

W tym przewodniku Szybki start opisano sposób instalowania biblioteki klienta OCR i używania interfejsu API odczytu. Następnie dowiedz się więcej o funkcjach interfejsu API Read.

Użyj biblioteki klienta OCR, aby odczytać z obrazów tekst drukowany i odręczny.

Dokumentacja referencyjna | Kod źródłowy biblioteki | Pakiet

Wymagania wstępne

  • Subskrypcja platformy Azure — utwórz subskrypcję bezpłatnie
  • Najnowsza wersja go
  • Po utworzeniu subskrypcji platformy Azure utwórz zasób przetwarzanie obrazów zasobów przetwarzanie obrazów usłudze Azure Portal, aby uzyskać klucz i punkt końcowy. Po wdrożeniu kliknij pozycję Przejdź do zasobu.
    • Klucz i punkt końcowy z zasobu, który utworzysz, będą potrzebne do połączenia aplikacji z przetwarzanie obrazów usługą. Klucz i punkt końcowy wkleisz do poniższego kodu w dalszej części tego przewodnika Szybki start.
    • Możesz użyć bezpłatnej warstwy cenowej ( ), aby wypróbować usługę, a następnie uaktualnić ją do warstwy F0 płatnej w środowisku produkcyjnym.

Konfigurowanie

Tworzenie katalogu projektu Go

W oknie konsoli (cmd, PowerShell, Terminal, Bash) utwórz nowy obszar roboczy dla projektu go o nazwie my-app i przejdź do niego.

mkdir -p my-app/{src, bin, pkg}  
cd my-app

Obszar roboczy będzie zawierać trzy foldery:

  • src — ten katalog będzie zawierać kod źródłowy i pakiety. Wszystkie pakiety zainstalowane za pomocą go get polecenia zostaną w tym katalogu.
  • pkg — ten katalog będzie zawierać skompilowane obiekty pakietu go. Wszystkie te pliki mają .a rozszerzenie .
  • bin — ten katalog będzie zawierać binarne pliki wykonywalne tworzone po uruchomieniu pliku go install .

Porada

Aby dowiedzieć się więcej na temat struktury obszaru roboczego języka Go, zobacz dokumentację języka Go. Ten przewodnik zawiera informacje dotyczące ustawiania $GOPATH i $GOROOT .

Instalowanie biblioteki klienta dla programu Go

Następnie zainstaluj bibliotekę klienta dla go:

go get -u https://github.com/Azure/azure-sdk-for-go/tree/master/services/cognitiveservices/v2.1/computervision

a jeśli używasz programu dep, w ramach repozytorium uruchom:

dep ensure -add https://github.com/Azure/azure-sdk-for-go/tree/master/services/cognitiveservices/v2.1/computervision

Tworzenie aplikacji w go

Następnie utwórz plik w katalogu src o nazwie sample-app.go :

cd src
touch sample-app.go

Porada

Chcesz wyświetlić cały plik kodu szybkiego startu jednocześnie? Znajdziesz go w witrynie GitHub,która zawiera przykłady kodu z tego przewodnika Szybki start.

Otwórz sample-app.go plik w preferowanym edytorze IDE lub edytorze tekstów.

Zadeklaruj kontekst w katalogu głównym skryptu. Ten obiekt będzie potrzebny do wykonania większości wywołań przetwarzanie obrazów funkcji.

Znajdowanie klucza subskrypcji i punktu końcowego

Przejdź do witryny Azure Portal. Jeśli zasób przetwarzanie obrazów utworzony w sekcji Wymagania wstępne został pomyślnie wdrożony, kliknij przycisk Przejdź do zasobu w obszarze Następne kroki. Klucz subskrypcji i punkt końcowy można znaleźć na stronie klucza i punktu końcowego zasobu w obszarze zarządzania zasobami.

Utwórz zmienne dla klucza przetwarzanie obrazów subskrypcji i punktu końcowego. Wklej klucz subskrypcji i punkt końcowy do poniższego kodu tam, gdzie jest to wskazane. Twój przetwarzanie obrazów końcowy ma postać https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/ .

package main

import (
    "context"
    "encoding/json"
    "fmt"
    "github.com/Azure/azure-sdk-for-go/services/cognitiveservices/v2.0/computervision"
    "github.com/Azure/go-autorest/autorest"
    "io"
    "log"
    "os"
    "strings"
    "time"
)

// Declare global so don't have to pass it to all of the tasks.
var computerVisionContext context.Context

func main() {
    computerVisionKey := "PASTE_YOUR_COMPUTER_VISION_SUBSCRIPTION_KEY_HERE"
    endpointURL := "PASTE_YOUR_COMPUTER_VISION_ENDPOINT_HERE"

Ważne

Pamiętaj, aby usunąć klucz subskrypcji z kodu, gdy wszystko będzie gotowe, i nigdy nie publikować go publicznie. W środowisku produkcyjnym rozważ użycie bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. Na przykład azure key vault.

Następnie rozpoczniesz dodawanie kodu w celu wykonywania różnych operacji OCR.

Model obiektu

Poniższe klasy i interfejsy obsługują niektóre główne funkcje zestawu SDK OCR Go.

Nazwa Opis
BaseClient Ta klasa jest potrzebna dla wszystkich przetwarzanie obrazów, takich jak analiza obrazów i odczytywanie tekstu. Należy utworzyć jego wystąpienia z informacjami o subskrypcji i używać ich do większości operacji na obrazach.
ReadOperationResult Ten typ zawiera wyniki operacji odczytu wsadowego.

Przykłady kodu

Te fragmenty kodu pokazują, jak wykonać następujące zadania za pomocą biblioteki klienta OCR dla go:

Uwierzytelnianie klienta

Uwaga

W tym kroku przyjęto założenie, że utworzono zmienne środowiskowe dla klucza przetwarzanie obrazów punktu końcowego o nazwach COMPUTER_VISION_SUBSCRIPTION_KEY i COMPUTER_VISION_ENDPOINT .

Utwórz funkcję i dodaj do niego następujący kod, aby utworzyć wystąpienia klienta main z punktem końcowym i kluczem.

/*  
 * Configure the Computer Vision client
 */
computerVisionClient := computervision.New(endpointURL);
computerVisionClient.Authorizer = autorest.NewCognitiveServicesAuthorizer(computerVisionKey)

computerVisionContext = context.Background()
/*
 * END - Configure the Computer Vision client
 */

Odczytywanie tekstu drukowanego i odręcznego

Usługa OCR może odczytywać widoczny tekst na obrazie i konwertować go na strumień znaków. Kod w tej sekcji definiuje funkcję , która używa obiektu klienta do wykrywania i wyodrębniania tekstu drukowanego lub odręcznego RecognizeTextReadAPIRemoteImage na obrazie.

Dodaj przykładowe odwołanie do obrazu i wywołanie funkcji w main funkcji.

// Analyze text in an image, remote
BatchReadFileRemoteImage(computerVisionClient, printedImageURL)

Porada

Można również wyodrębnić tekst z obrazu lokalnego. Zobacz metody BaseClient, takie jak BatchReadFileInStream. Możesz też zobaczyć przykładowy kod w usłudze GitHub, aby uzyskać scenariusze obejmujące obrazy lokalne.

Wywołanie interfejsu API odczytu

Zdefiniuj nową funkcję do odczytywania tekstu, RecognizeTextReadAPIRemoteImage . Dodaj poniższy kod, który wywołuje metodę BatchReadFile dla danego obrazu. Ta metoda zwraca identyfikator operacji i uruchamia asynchroniczny proces odczytu zawartości obrazu.

func BatchReadFileRemoteImage(client computervision.BaseClient, remoteImageURL string) {
    fmt.Println("-----------------------------------------")
    fmt.Println("BATCH READ FILE - remote")
    fmt.Println()
    var remoteImage computervision.ImageURL
    remoteImage.URL = &remoteImageURL

    // The response contains a field called "Operation-Location", 
    // which is a URL with an ID that you'll use for GetReadOperationResult to access OCR results.
    textHeaders, err := client.BatchReadFile(computerVisionContext, remoteImage)
    if err != nil { log.Fatal(err) }

    // Use ExtractHeader from the autorest library to get the Operation-Location URL
    operationLocation := autorest.ExtractHeaderValue("Operation-Location", textHeaders.Response)

    numberOfCharsInOperationId := 36
    operationId := string(operationLocation[len(operationLocation)-numberOfCharsInOperationId : len(operationLocation)])

Uzyskiwanie wyników odczytu

Następnie pobierz identyfikator operacji zwrócony z wywołania BatchReadFile i użyj go z metodą GetReadOperationResult, aby odpytać usługę o wyniki operacji. Poniższy kod sprawdza operację w odstępach jednej sekundy do momentu zwrócenia wyników. Następnie wypisuje wyodrębnione dane tekstowe do konsoli.

readOperationResult, err := client.GetReadOperationResult(computerVisionContext, operationId)
if err != nil { log.Fatal(err) }

// Wait for the operation to complete.
i := 0
maxRetries := 10

fmt.Println("Recognizing text in a remote image with the batch Read API ...")
for readOperationResult.Status != computervision.Failed &&
        readOperationResult.Status != computervision.Succeeded {
    if i >= maxRetries {
        break
    }
    i++

    fmt.Printf("Server status: %v, waiting %v seconds...\n", readOperationResult.Status, i)
    time.Sleep(1 * time.Second)

    readOperationResult, err = client.GetReadOperationResult(computerVisionContext, operationId)
    if err != nil { log.Fatal(err) }
}

Wyświetlanie wyników odczytu

Dodaj następujący kod w celu analizowania i wyświetlania pobranych danych tekstowych oraz zakończenia definicji funkcji.

// Display the results.
fmt.Println()
for _, recResult := range *(readOperationResult.RecognitionResults) {
    for _, line := range *recResult.Lines {
        fmt.Println(*line.Text)
    }
}

Uruchamianie aplikacji

Uruchom aplikację z katalogu aplikacji za pomocą go run polecenia .

go run sample-app.go

Czyszczenie zasobów

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

Następne kroki

W tym przewodniku Szybki start opisano sposób instalowania biblioteki klienta OCR i korzystania z interfejsu API odczytu. Następnie dowiedz się więcej o funkcjach interfejsu API odczytywania.

Interfejs API REST optycznego rozpoznawania znaków umożliwia odczytywanie tekstu drukowanego i odręcznego.

Uwaga

W tym przewodniku Szybki start do wywołania interfejsu API REST są używane polecenia cURL. Interfejs API REST można również wywołać przy użyciu języka programowania. Przykłady można znaleźć w przykładach w języku C#, Python, Java, JavaScripti Go.

Wymagania wstępne

  • Subskrypcja platformy Azure — bezpłatne tworzenie subskrypcji
  • Po utworzeniu subskrypcji platformy Azure utwórz zasób przetwarzanie obrazów zasobów przetwarzanie obrazów w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Po wdrożeniu kliknij pozycję Przejdź do zasobu.
    • Klucz i punkt końcowy będą potrzebne z zasobu, który utworzysz, aby połączyć aplikację z przetwarzanie obrazów usługą. Klucz i punkt końcowy wkleisz do poniższego kodu w dalszej części tego przewodnika Szybki start.
    • Możesz użyć bezpłatnej warstwy cenowej ( ), aby wypróbować usługę, a następnie uaktualnić ją do warstwy F0 płatnej w środowisku produkcyjnym.
  • Zainstalowany program cURL

Odczytywanie tekstu drukowanego i odręcznego

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 optycznego rozpoznawania znaków (OCR).

Wywołanie interfejsu API odczytu

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

  1. Skopiuj następujące polecenie do edytora tekstów.
  2. W razie potrzeby wprowadź w poleceniu następujące zmiany:
    1. Zastąp wartość <subscriptionKey> kluczem subskrypcji.
    2. Zastąp pierwszą część adresu URL żądania ( westcentralus ) tekstem we własnym adresie URL punktu końcowego.

      Uwaga

      Nowe zasoby utworzone po 1 lipca 2019 będą używać niestandardowych nazw domen. Aby uzyskać więcej informacji i pełną listę regionalnych punktów końcowych, zobacz niestandardowe nazwy domen poddomen dla Cognitive Services.

    3. Opcjonalnie zmień adres URL obrazu w treści żądania (https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png\) na adres URL innego obrazu do analizy.
  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://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png\"}"

Odpowiedź będzie zawierać Operation-Location nagłówek, którego wartość jest unikatowym adresem URL. Ten adres URL umożliwia wykonywanie zapytań o wyniki operacji Odczytu. Adres URL wygasa po 48 godzinach.

Uzyskiwanie wyników odczytu

  1. Skopiuj następujące polecenie do edytora tekstów.
  2. Zastąp adres URL Operation-Location wartością skopiowaną w poprzednim kroku.
  3. W razie potrzeby wprowadź w poleceniu następujące zmiany:
    1. Zastąp wartość <subscriptionKey> kluczem subskrypcji.
  4. Otwórz okno wiersza polecenia.
  5. Wklej polecenie z edytora tekstów w oknie wiersza polecenia, 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: {subscription key}" --data-ascii "{body}" 

Sprawdzanie odpowiedzi

Po pomyślnym przetworzeniu żądania zostanie zwrócona odpowiedź w formacie JSON. Przykładowa aplikacja analizuje i wyświetla pomyślną odpowiedź w oknie wiersza polecenia, 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
              }
            ]
          }
        ]
      }
    ]
  }
}

Następne kroki

W tym przewodniku Szybki start opisano sposób wywołania interfejsu API REST odczytywania. Następnie dowiedz się więcej o funkcjach interfejsu API odczytywania.