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 — utwórz subskrypcję bezpłatnie
  • 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 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 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 na stronie Eksplorator rozwiązań 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 wyewidencjonuj 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.

// Create a client
ComputerVisionClient client = Authenticate(endpoint, subscriptionKey);
// Extract text (OCR) from a URL image using the Read API
ReadFileUrl(client, READ_TEXT_URL_IMAGE).Wait();

Model obiektów

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

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 za pomocą 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, language: "en");
    // 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 rozpoznawania znaków optycznych umożliwia odczytywanie wydrukowanych i odręcznych tekstu za pomocą interfejsu API odczytu.

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

Wymagania wstępne

  • Subskrypcja platformy Azure — Utwórz ją bezpłatnie

  • Python 3.x

    • Instalacja języka Python powinna obejmować PIP. Aby sprawdzić, czy jest zainstalowany program PIP, należy uruchomić pip --version polecenie w wierszu polecenia. Pobierz narzędzie PIP, instalując najnowszą wersję środowiska Python.
  • Gdy masz subskrypcję platformy Azure, utwórz zasób przetwarzanie obrazów w Azure Portal, aby uzyskać klucz i punkt końcowy. Po wdrożeniu programu kliknij pozycję Przejdź do zasobu.

    • Będziesz potrzebować klucza i punktu końcowego z zasobu, który utworzysz, aby połączyć aplikację z usługą przetwarzanie obrazów. Klucz i punkt końcowy zostaną wklejone do poniższego kodu w dalszej części przewodnika Szybki Start.
    • Możesz użyć warstwy cenowej bezpłatna ( F0 ) w celu wypróbowania usługi i później przeprowadzić uaktualnienie do warstwy płatnej dla środowiska produkcyjnego.

Konfigurowanie

Zainstaluj bibliotekę kliencką

Bibliotekę kliencką można zainstalować za pomocą programu:

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 je znaleźć w usłudze GitHub, która zawiera przykłady kodu w tym przewodniku Szybki Start.

Utwórz nowy plik Python — QuickStart-File.py, na przykład. Następnie otwórz go w preferowanym edytorze lub w środowisku IDE.

Znajdowanie klucza subskrypcji i punktu końcowego

Przejdź do witryny Azure Portal. Jeśli pomyślnie wdrożono zasób przetwarzanie obrazów w sekcji wymagania wstępne , kliknij przycisk Przejdź do zasobu w obszarze następne kroki. Klucz subskrypcji i punkt końcowy można znaleźć na stronie klucz zasobu i punkt końcowy w obszarze Zarządzanie zasobami.

Utwórz zmienne dla klucza subskrypcji przetwarzanie obrazów i punktu końcowego. Wklej swój klucz subskrypcji i punkt końcowy do poniższego kodu, gdzie zostało wskazane. Twój punkt końcowy przetwarzanie obrazów ma formularz 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 skończysz, i nigdy nie Publikuj go publicznie. W przypadku produkcji należy rozważyć użycie bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. Na przykład Magazyn kluczy platformy Azure.

Model obiektów

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

Nazwa Opis
ComputerVisionClientOperationsMixin Ta klasa bezpośrednio obsługuje wszystkie operacje na obrazach, takie jak analiza obrazu, wykrywanie tekstu i generowanie miniatury.
ComputerVisionClient Ta klasa jest wymagana dla wszystkich funkcji przetwarzanie obrazów. Tworzysz wystąpienie z informacjami o subskrypcji i używasz ich do tworzenia wystąpień innych klas. Implementuje ComputerVisionClientOperationsMixin.
VisualFeatureTypes To Wyliczenie definiuje różne typy analizy obrazów, które można wykonać przy użyciu standardowej operacji analizy. Należy określić zestaw wartości VisualFeatureTypes w zależności od potrzeb.

Przykłady kodu

Te fragmenty kodu przedstawiają sposób wykonywania następujących zadań przy użyciu biblioteki klienckiej OCR dla języka Python:

Uwierzytelnianie klienta

Utwórz wystąpienie klienta z punktem końcowym i kluczem. Utwórz obiekt CognitiveServicesCredentials z kluczem i użyj go w punkcie końcowym, aby utworzyć obiekt ComputerVisionClient .

computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))

Odczytaj tekst drukowany i odręczny

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

Wywoływanie interfejsu API odczytu

Najpierw użyj następującego kodu, aby wywołać metodę Read dla danego obrazu. Zwraca identyfikator operacji i uruchamia proces asynchroniczny w celu odczytania zawartości obrazu.

'''
Read File, recognize handwritten text - remote
This example will extract handwritten text in an image, then print results, line by line.
This API call can also recognize handwriting (not shown).
'''
print("===== Read File - remote =====")
# Get an image with handwritten text
remote_image_handw_text_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)
recognize_handw_results = computervision_client.read(remote_image_handw_text_url,  raw=True)

Porada

Możesz również odczytać tekst z lokalnego obrazu. Zobacz metody ComputerVisionClientOperationsMixin , takie jak read_in_stream. Lub zapoznaj się z przykładowym kodem w witrynie GitHub , aby poznać scenariusze dotyczące obrazów lokalnych.

Pobierz wyniki odczytu

Następnie Pobierz identyfikator operacji zwrócony z wywołania odczytu i użyj go do wysyłania zapytań do usługi w celu uzyskania wyników operacji. Poniższy kod sprawdza operacje w okresach jednego sekundy do momentu zwrócenia wyników. Następnie program drukuje wyodrębnione dane tekstowe do konsoli programu.

# Get the operation location (URL with an ID at the end) from the response
operation_location_remote = recognize_handw_results.headers["Operation-Location"]
# Grab the ID from the URL
operation_id = operation_location_remote.split("/")[-1]

# Call the "GET" API and wait for it to retrieve the results 
while True:
    get_handw_text_results = computervision_client.get_read_result(operation_id)
    if get_handw_text_results.status not in ['notStarted', 'running']:
        break
    time.sleep(1)

# Print the detected text, line by line
if get_handw_text_results.status == OperationStatusCodes.succeeded:
    for text_result in get_handw_text_results.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, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów spowoduje również usunięcie wszystkich skojarzonych z nią zasobów.

Następne kroki

W tym przewodniku szybki start przedstawiono sposób instalowania biblioteki klienta OCR i używania interfejsu API odczytu. Następnie Dowiedz się więcej o funkcjach odczytu interfejsu API.

Biblioteka klienta rozpoznawania znaków optycznych umożliwia odczytywanie wydrukowanych i odręcznych tekstu w obrazach.

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

Wymagania wstępne

  • Subskrypcja platformy Azure — Utwórz ją bezpłatnie
  • Bieżąca wersja zestawu Java Development Kit (JDK)
  • Narzędzie kompilacji Gradlelub inny Menedżer zależności.
  • Gdy masz subskrypcję platformy Azure, utwórz zasób przetwarzanie obrazów w Azure Portal, aby uzyskać klucz i punkt końcowy. Po wdrożeniu programu kliknij pozycję Przejdź do zasobu.
    • Będziesz potrzebować klucza i punktu końcowego z zasobu, który utworzysz, aby połączyć aplikację z usługą przetwarzanie obrazów. Klucz i punkt końcowy zostaną wklejone do poniższego kodu w dalszej części przewodnika Szybki Start.
    • Możesz użyć warstwy cenowej bezpłatna ( F0 ) w celu wypróbowania usługi i później przeprowadzić uaktualnienie do warstwy płatnej dla środowiska produkcyjnego.

Konfigurowanie

Utwórz nowy projekt Gradle

W oknie konsoli (na przykład cmd, PowerShell lub bash) Utwórz nowy katalog dla aplikacji i przejdź do niego.

mkdir myapp && cd myapp

Uruchom gradle init polecenie z katalogu roboczego. To polecenie spowoduje utworzenie podstawowych plików kompilacji dla Gradle, w tym Build. Gradle. KTS, który jest używany w środowisku uruchomieniowym do tworzenia i konfigurowania aplikacji.

gradle init --type basic

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

Zainstaluj bibliotekę kliencką

Ten przewodnik Szybki Start używa Menedżera zależności Gradle. Bibliotekę i informacje o kliencie można znaleźć dla innych menedżerów zależności w repozytorium centralnym Maven.

Znajdź element Build. Gradle. KTS i otwórz go za pomocą PREFEROWANEGO środowiska IDE lub edytora tekstu. Następnie skopiuj w poniższej konfiguracji kompilacji. Ta konfiguracja definiuje projekt jako aplikację Java, której punkt wejścia to Klasa ComputerVisionQuickstarts. Importuje bibliotekę przetwarzanie obrazów.

plugins {
    java
    application
}
application { 
    mainClassName = "ComputerVisionQuickstarts"
}
repositories {
    mavenCentral()
}
dependencies {
    compile(group = "com.microsoft.azure.cognitiveservices", name = "azure-cognitiveservices-computervision", version = "1.0.4-beta")
}

Tworzenie pliku języka Java

W katalogu roboczym 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? Można je znaleźć w usłudze GitHub, która zawiera przykłady kodu w tym przewodniku Szybki Start.

Przejdź do nowego folderu i Utwórz plik o nazwie ComputerVisionQuickstarts. Java. Otwórz go w preferowanym edytorze lub w środowisku IDE.

Znajdowanie klucza subskrypcji i punktu końcowego

Przejdź do witryny Azure Portal. Jeśli pomyślnie wdrożono zasób przetwarzanie obrazów w sekcji wymagania wstępne , kliknij przycisk Przejdź do zasobu w obszarze następne kroki. Klucz subskrypcji i punkt końcowy można znaleźć na stronie klucz zasobu i punkt końcowy w obszarze Zarządzanie zasobami.

Zdefiniuj klasę ComputerVisionQuickstarts. Utwórz zmienne dla klucza subskrypcji przetwarzanie obrazów i punktu końcowego. Wklej swój klucz subskrypcji i punkt końcowy do poniższego kodu, gdzie zostało wskazane. Twój punkt końcowy przetwarzanie obrazów ma formularz 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 skończysz, i nigdy nie Publikuj go publicznie. W przypadku produkcji należy rozważyć użycie bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. Na przykład Magazyn kluczy platformy Azure.

W metodzie głównej aplikacji Dodaj wywołania metod używanych w tym przewodniku Szybki Start. Zdefiniujesz je 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 Java SDK OCR.

Nazwa Opis
ComputerVisionClient Ta klasa jest wymagana dla wszystkich funkcji przetwarzanie obrazów. Tworzysz wystąpienie z informacjami o subskrypcji i używasz ich do tworzenia wystąpień innych klas.

Przykłady kodu

Te fragmenty kodu przedstawiają sposób wykonywania następujących zadań przy użyciu biblioteki klienckiej OCR dla języka Java:

Uwierzytelnianie klienta

W nowej metodzie Utwórz wystąpienie obiektu ComputerVisionClient z punktem końcowym i kluczem.

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

Odczytaj tekst drukowany i odręczny

Usługa OCR może odczytać widoczny tekst w obrazie i przekonwertować go na strumień znaków. Ta sekcja definiuje metodę, ReadFromFile która pobiera ścieżkę do pliku lokalnego i drukuje tekst obrazu do konsoli programu.

Porada

Możesz również odczytać tekst w obrazie zdalnym, do którego odwołuje się adres URL. Zobacz metody ComputerVision , takie jak Read. Lub zapoznaj się z przykładowym kodem w witrynie GitHub , aby poznać scenariusze dotyczące obrazów zdalnych.

Konfigurowanie obrazu testu

Utwórz zasoby/ folder w folderze src/Main/ folder projektu, a następnie Dodaj obraz, z którego chcesz odczytywać tekst. Możesz pobrać Przykładowy obraz do użycia w tym miejscu.

Następnie Dodaj następującą definicję metody do klasy ComputerVisionQuickstarts . Zmień wartość, localFilePath aby była zgodna z plikiem obrazu.

/**
 * 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ływanie 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, OcrDetectionLanguage.FR, null)
                .toBlocking()
                .single()
                .headers();

Poniższy blok kodu wyodrębnia Identyfikator operacji z odpowiedzi na wywołanie odczytu. Używa tego identyfikatora z użyciem metody pomocnika do drukowania wyników odczytu tekstu do 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();
    }
}

Pobierz wyniki odczytu

Następnie Dodaj definicję dla metody pomocnika. Ta metoda używa identyfikatora operacji z poprzedniego kroku, aby wykonać zapytanie dotyczące operacji odczytu i uzyskać wyniki OCR, gdy są one 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 programu.

    // 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ą stosowaną metodę pomocnika, 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ć przy użyciu:

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 spowoduje również usunięcie wszystkich skojarzonych z nią zasobów.

Następne kroki

W tym przewodniku szybki start przedstawiono sposób instalowania biblioteki klienta OCR i używania interfejsu API odczytu. Następnie Dowiedz się więcej o funkcjach odczytu interfejsu API.

Biblioteka klienta rozpoznawania znaków optycznych umożliwia odczytywanie wydrukowanych i odręcznych tekstu za pomocą interfejsu API odczytu.

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

Wymagania wstępne

  • Subskrypcja platformy Azure — Utwórz ją bezpłatnie
  • Bieżąca wersja Node.js
  • Gdy masz subskrypcję platformy Azure, utwórz zasób przetwarzanie obrazów w Azure Portal, aby uzyskać klucz i punkt końcowy. Po wdrożeniu programu kliknij pozycję Przejdź do zasobu.
    • Będziesz potrzebować klucza i punktu końcowego z zasobu, który utworzysz, aby połączyć aplikację z usługą przetwarzanie obrazów. Klucz i punkt końcowy zostaną wklejone do poniższego kodu w dalszej części przewodnika Szybki Start.
    • Możesz użyć warstwy cenowej bezpłatna ( F0 ) w celu wypróbowania usługi i później przeprowadzić uaktualnienie do warstwy płatnej dla środowiska produkcyjnego.

Konfigurowanie

Tworzenie nowej aplikacji Node.js

W oknie konsoli (na przykład cmd, PowerShell lub bash) Utwórz nowy katalog dla aplikacji i przejdź do niego.

mkdir myapp && cd myapp

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

npm init

Zainstaluj bibliotekę kliencką

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

npm install @azure/cognitiveservices-computervision

Zainstaluj również moduł Async:

npm install async

package.jsonPlik aplikacji zostanie zaktualizowany z zależnościami.

Porada

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

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

Znajdowanie klucza subskrypcji i punktu końcowego

Przejdź do witryny Azure Portal. Jeśli pomyślnie wdrożono zasób przetwarzanie obrazów w sekcji wymagania wstępne , kliknij przycisk Przejdź do zasobu w obszarze następne kroki. Klucz subskrypcji i punkt końcowy można znaleźć na stronie klucz zasobu i punkt końcowy w obszarze Zarządzanie zasobami.

Utwórz zmienne dla klucza subskrypcji przetwarzanie obrazów i punktu końcowego. Wklej swój klucz subskrypcji i punkt końcowy do poniższego kodu, gdzie zostało wskazane. Twój punkt końcowy przetwarzanie obrazów ma formularz 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 skończysz, i nigdy nie Publikuj go publicznie. W przypadku produkcji należy rozważyć użycie bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. Na przykład Magazyn kluczy platformy Azure.

Model obiektów

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

Nazwa Opis
ComputerVisionClient Ta klasa jest wymagana dla wszystkich funkcji przetwarzanie obrazów. Utwórz wystąpienie go przy użyciu informacji o subskrypcji i użyj go do wykonania większości operacji na obrazie.

Przykłady kodu

Te fragmenty kodu przedstawiają sposób wykonywania następujących zadań z biblioteką kliencką OCR dla Node.js:

Uwierzytelnianie klienta

Utwórz wystąpienie 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ą z funkcją podstawową i funkcją wywołania zwrotnego. Kod szybkiego startu zostanie dodany do funkcji podstawowej i zostanie wywołana computerVision w dolnej części skryptu. Pozostała część kodu w tym przewodniku Szybki Start jest wbudowana w computerVision funkcję.

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

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

computerVision();

Odczytaj tekst drukowany i odręczny

Usługa OCR może wyodrębnić widoczny tekst w obrazie i przekonwertować go na strumień znaków. Ten przykład używa operacji odczytu.

Konfigurowanie obrazów testowych

Zapisz odwołanie do adresu URL obrazów, z których ma zostać wyodrębniony 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ż odczytać tekst z lokalnego obrazu. Zobacz metody ComputerVisionClient , takie jak readInStream. Lub zapoznaj się z przykładowym kodem w witrynie GitHub , aby poznać scenariusze dotyczące obrazów lokalnych.

Wywoływanie interfejsu API odczytu

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

// 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 danego obrazu.

// 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 metodę Read w obiekcie Client, która zwraca identyfikator operacji i uruchamia proces asynchroniczny w celu odczytania zawartości obrazu. Następnie używa identyfikatora operacji do sprawdzenia 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 printRecText , która drukuje wyniki operacji odczytu w konsoli programu.

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

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, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów spowoduje również usunięcie wszystkich skojarzonych z nią zasobów.

Następne kroki

W tym przewodniku szybki start przedstawiono sposób instalowania biblioteki klienta OCR i używania interfejsu API odczytu. Następnie Dowiedz się więcej o funkcjach odczytu interfejsu API.

Użyj biblioteki klienta OCR do odczytywania wydrukowanych i odręcznych tekstu z obrazów.

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

Wymagania wstępne

  • Subskrypcja platformy Azure — Utwórz ją bezpłatnie
  • Najnowsza wersja języka go
  • Gdy masz subskrypcję platformy Azure, utwórz zasób przetwarzanie obrazów w Azure Portal, aby uzyskać klucz i punkt końcowy. Po wdrożeniu programu kliknij pozycję Przejdź do zasobu.
    • Będziesz potrzebować klucza i punktu końcowego z zasobu, który utworzysz, aby połączyć aplikację z usługą przetwarzanie obrazów. Klucz i punkt końcowy zostaną wklejone do poniższego kodu w dalszej części przewodnika Szybki Start.
    • Możesz użyć warstwy cenowej bezpłatna ( F0 ) w celu wypróbowania usługi i później przeprowadzić uaktualnienie do warstwy płatnej dla środowiska produkcyjnego.

Konfigurowanie

Utwórz katalog projektu języka go

W oknie konsoli (cmd, PowerShell, Terminal, bash) Utwórz nowy obszar roboczy dla projektu go, nazwanego 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 z go get poleceniem zostaną umieszczone w tym katalogu.
  • pkg — ten katalog będzie zawierać skompilowane obiekty pakietu języka go. Wszystkie te pliki mają .a rozszerzenie.
  • bin — ten katalog będzie zawierać binarne pliki wykonywalne, które są tworzone podczas uruchamiania programu go install .

Porada

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

Zainstaluj bibliotekę kliencką dla języka go

Następnie zainstaluj bibliotekę kliencką dla języka 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 języka 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? Można je znaleźć w usłudze GitHub, która zawiera przykłady kodu w tym przewodniku Szybki Start.

Otwórz sample-app.go w preferowanym środowisku IDE lub edytorze tekstu.

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

Znajdowanie klucza subskrypcji i punktu końcowego

Przejdź do witryny Azure Portal. Jeśli pomyślnie wdrożono zasób przetwarzanie obrazów w sekcji wymagania wstępne , kliknij przycisk Przejdź do zasobu w obszarze następne kroki. Klucz subskrypcji i punkt końcowy można znaleźć na stronie klucz zasobu i punkt końcowy w obszarze Zarządzanie zasobami.

Utwórz zmienne dla klucza subskrypcji przetwarzanie obrazów i punktu końcowego. Wklej swój klucz subskrypcji i punkt końcowy do poniższego kodu, gdzie zostało wskazane. Twój punkt końcowy przetwarzanie obrazów ma formularz 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 skończysz, i nigdy nie Publikuj go publicznie. W przypadku produkcji należy rozważyć użycie bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. Na przykład Magazyn kluczy platformy Azure.

Następnie dowiesz się, jak dodać kod, aby wykonać różne operacje OCR.

Model obiektów

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

Nazwa Opis
BaseClient Ta klasa jest wymagana dla wszystkich funkcji przetwarzanie obrazów, takich jak analiza obrazów i odczytywanie tekstu. Utwórz wystąpienie go przy użyciu informacji o subskrypcji i użyj go do wykonania większości operacji na obrazie.
ReadOperationResult Ten typ zawiera wyniki operacji odczytu partii.

Przykłady kodu

Te fragmenty kodu przedstawiają sposób wykonywania następujących zadań przy użyciu biblioteki klienckiej OCR dla języka go:

Uwierzytelnianie klienta

Uwaga

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

Utwórz main funkcję i Dodaj do niej następujący kod, aby utworzyć wystąpienie klienta 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
 */

Odczytaj tekst drukowany i odręczny

Usługa OCR może odczytać widoczny tekst w obrazie i przekonwertować go na strumień znaków. Kod w tej sekcji definiuje funkcję, RecognizeTextReadAPIRemoteImage która używa obiektu klienta do wykrywania i wyodrębniania wydrukowanych lub odręcznych tekstu w 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żesz również wyodrębnić tekst z obrazu lokalnego. Zobacz metody BaseClient , takie jak BatchReadFileInStream. Lub zapoznaj się z przykładowym kodem w witrynie GitHub , aby poznać scenariusze dotyczące obrazów lokalnych.

Wywoływanie interfejsu API odczytu

Zdefiniuj nową funkcję do odczytu tekstu, RecognizeTextReadAPIRemoteImage . Dodaj poniższy kod, który wywołuje metodę BatchReadFile dla danego obrazu. Ta metoda zwraca identyfikator operacji i uruchamia proces asynchroniczny w celu odczytania 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)])

Pobierz wyniki odczytu

Następnie Pobierz identyfikator operacji zwrócony z wywołania BatchReadFile i użyj go z metodą GetReadOperationResult w celu wysyłania zapytań do usługi w celu uzyskania wyników operacji. Poniższy kod sprawdza operacje w okresach jednego sekundy do momentu zwrócenia wyników. Następnie program drukuje wyodrębnione dane tekstowe do konsoli programu.

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świetl wyniki odczytu

Dodaj następujący kod, aby przeanalizować i wyświetlić pobrane dane tekstowe, a następnie Zakończ definicję 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 spowoduje również usunięcie wszystkich skojarzonych z nią zasobów.

Następne kroki

W tym przewodniku szybki start przedstawiono sposób instalowania biblioteki klienta OCR i używania interfejsu API odczytu. Następnie Dowiedz się więcej o funkcjach odczytu interfejsu API.

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.