Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wersje OCR (czytanie)
Ważne
Wybierz wersję do odczytu, która najlepiej odpowiada Twoim wymaganiom.
| Wejście | Przykłady | Wydanie do czytania | Korzyści |
|---|---|---|---|
| Obrazy: Ogólne, obrazy ze środowiska naturalnego | etykiety, znaki uliczne i plakaty | OCR dla obrazów (wersja 4.0) | Zoptymalizowany pod kątem ogólnych, niebędących dokumentami obrazów z usprawnionym synchronicznym interfejsem API, który zwiększa wydajność i ułatwia osadzanie OCR w scenariuszach doświadczeń użytkownika. |
| Dokumenty: cyfrowe i zeskanowane, w tym obrazy | książki, artykuły i raporty | Model odczytu analizy dokumentów | Zoptymalizowany pod kątem dokumentów skanowanych z dużą liczbą tekstu i dokumentów cyfrowych za pomocą asynchronicznego interfejsu API w celu zautomatyzowania inteligentnego przetwarzania dokumentów na dużą skalę. |
About Azure Vision v3.2 GA Read
Szukasz najnowszej wersji Azure Vision w wersji 3.2 (ogólna dostępność)? Wszystkie przyszłe ulepszenia OCR odczytu są częścią dwóch wymienionych wcześniej usług. Nie ma dalszych aktualizacji usługi Azure Vision w wersji 3.2. Aby uzyskać więcej informacji, zobacz Call Azure Vision 3.2 GA Read API and Quickstart: Azure Vision v3.2 GA Read.
Rozpocznij pracę z usługą Azure Vision w narzędziach Foundry Tools, korzystając z interfejsu API REST lub bibliotek klienckich. Interfejs API odczytu udostępnia algorytmy sztucznej inteligencji do wyodrębniania tekstu z obrazów i zwracania go jako ciągów strukturalnych. Wykonaj następujące kroki, aby zainstalować pakiet w aplikacji i wypróbować przykładowy kod dla podstawowych zadań.
Użyj biblioteki klienta optycznego rozpoznawania znaków (OCR) do odczytywania tekstu drukowanego i odręcznego z obrazu. Usługa OCR może odczytywać widoczny tekst na obrazie i konwertować go na strumień znaków. Aby uzyskać więcej informacji na temat rozpoznawania tekstu, zobacz omówienie OCR. Kod w tej sekcji używa najnowszego pakietu Azure Vision w narzędziach Foundry Tools.
Wskazówka
Możesz również wyodrębnić tekst z obrazu lokalnego. Zobacz metody ComputerVisionClient , takie jak ReadInStreamAsync. Lub, zobacz przykładowy kod na GitHub dla scenariuszy z lokalnymi obrazami.
Dokumentacja referencyjna | Kod źródłowy biblioteki | Pakiet (NuGet) | Przykłady
Wymagania wstępne
- Subskrypcja Azure — Utwórz ją bezpłatnie.
- Visual Studio IDE lub bieżąca wersja .NET Core.
-
Zasób Vision w Azure. Możesz użyć warstwy cenowej bezpłatna (
F0), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego. - Klucz i punkt końcowy z utworzonego zasobu w celu połączenia aplikacji z usługą Azure Vision.
- Po wdrożeniu zasobu usługi Azure Vision wybierz pozycję Przejdź do zasobu.
- W okienku po lewej stronie wybierz pozycję Klucze i punkt końcowy.
- Skopiuj jeden z kluczy i punkt końcowy do wykorzystania w dalszej części szybkiego startu.
Tworzenie zmiennych środowiskowych
W tym przykładzie zapisz swoje poświadczenia w zmiennych środowiskowych na komputerze lokalnym, na których jest uruchamiana aplikacja.
Przejdź do portalu Azure. Jeśli zasób utworzony w sekcji Wymagania wstępne został pomyślnie wdrożony, wybierz pozycję Przejdź do zasobu w obszarze Następne kroki. Klucz i punkt końcowy można znaleźć w obszarze Zarządzanie zasobami na stronie Klucze i punkt końcowy zasobu rozpoznawania twarzy. Klucz zasobu nie jest taki sam jak identyfikator subskrypcji Azure.
Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.
- Aby ustawić zmienną
VISION_KEYśrodowiskową, zastąp<your_key>jednym z kluczy zasobu. - Aby ustawić zmienną
VISION_ENDPOINTśrodowiskową, zastąp<your_endpoint>element punktem końcowym zasobu.
Ważne
Zalecamy uwierzytelnianie przy użyciu Microsoft Entra ID i zarządzanych tożsamości dla zasobów Azure aby uniknąć przechowywania poświadczeń w aplikacjach działających w chmurze.
Używaj kluczy interfejsu API z ostrożnością. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie. Jeśli używasz kluczy interfejsu API, przechowuj je bezpiecznie w Azure Key Vault, regularnie obracaj klucze i ograniczaj dostęp do Azure Key Vault przy użyciu kontroli dostępu opartej na rolach i ograniczeń dostępu do sieci. Aby uzyskać więcej informacji na temat bezpiecznego używania kluczy interfejsu API w aplikacjach, zobacz
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań do usług Azure AI.
setx VISION_KEY <your_key>
setx VISION_ENDPOINT <your_endpoint>
Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.
Odczytywanie tekstu drukowanego i odręcznego
Utwórz nową aplikację w języku C#.
Za pomocą Visual Studio utwórz projekt Console App (.NET Framework) dla C#, Windows, Console.
Po utworzeniu nowego projektu zainstaluj bibliotekę klienta:
- Kliknij prawym przyciskiem myszy rozwiązanie projektu w Eksplorator rozwiązań i wybierz pozycję Zarządzaj pakietami NuGet dla rozwiązania.
- W wyświetlonym menedżerze pakietów wybierz pozycję Przeglądaj. Wybierz pozycję Uwzględnij wersję wstępną.
- Wyszukaj i wybierz element
Microsoft.Azure.CognitiveServices.Vision.ComputerVision. - W oknie dialogowym szczegółów wybierz projekt i wybierz najnowszą stabilną wersję. Następnie wybierz pozycję Zainstaluj.
W katalogu projektu otwórz plik Program.cs w preferowanym edytorze lub środowisku IDE. Zastąp zawartość Program.cs następującym kodem.
using System; using System.Collections.Generic; using Microsoft.Azure.CognitiveServices.Vision.ComputerVision; using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models; using System.Threading.Tasks; using System.IO; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Threading; using System.Linq; namespace ComputerVisionQuickstart { class Program { // Add your Computer Vision key and endpoint static string key = Environment.GetEnvironmentVariable("VISION_KEY"); static string endpoint = Environment.GetEnvironmentVariable("VISION_ENDPOINT"); private const string READ_TEXT_URL_IMAGE = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/printed_text.jpg"; static void Main(string[] args) { Console.WriteLine("Azure Cognitive Services Computer Vision - .NET quickstart example"); Console.WriteLine(); ComputerVisionClient client = Authenticate(endpoint, key); // Extract text (OCR) from a URL image using the Read API ReadFileUrl(client, READ_TEXT_URL_IMAGE).Wait(); } public static ComputerVisionClient Authenticate(string endpoint, string key) { ComputerVisionClient client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(key)) { Endpoint = endpoint }; return client; } public static async Task ReadFileUrl(ComputerVisionClient client, string urlFile) { Console.WriteLine("----------------------------------------------------------"); Console.WriteLine("READ FILE FROM URL"); Console.WriteLine(); // Read text from URL var textHeaders = await client.ReadAsync(urlFile); // After the request, get the operation location (operation ID) string operationLocation = textHeaders.OperationLocation; Thread.Sleep(2000); // Retrieve the URI where the extracted text will be stored from the Operation-Location header. // We only need the ID and not the full URL const int numberOfCharsInOperationId = 36; string operationId = operationLocation.Substring(operationLocation.Length - numberOfCharsInOperationId); // Extract the text ReadOperationResult results; Console.WriteLine($"Extracting text from URL file {Path.GetFileName(urlFile)}..."); Console.WriteLine(); do { results = await client.GetReadResultAsync(Guid.Parse(operationId)); } while ((results.Status == OperationStatusCodes.Running || results.Status == OperationStatusCodes.NotStarted)); // Display the found text. Console.WriteLine(); var textUrlFileResults = results.AnalyzeResult.ReadResults; foreach (ReadResult page in textUrlFileResults) { foreach (Line line in page.Lines) { Console.WriteLine(line.Text); } } Console.WriteLine(); } } }Opcjonalnie zobacz Określanie sposobu przetwarzania danych. Aby na przykład jawnie określić najnowszy model GA, zmodyfikuj wywołanie
ReadAsynczgodnie z instrukcją. Pomiń parametr lub użyj polecenia"latest", aby użyć najnowszego modelu ogólnie dostępnego.// Read text from URL with a specific model version var textHeaders = await client.ReadAsync(urlFile,null,null,"2022-04-30");Uruchom aplikację.
- Z menu Debugowanie wybierz pozycję Rozpocznij debugowanie.
Wyjście
Azure Vision - .NET quickstart example
----------------------------------------------------------
READ FILE FROM URL
Extracting text from URL file printed_text.jpg...
Nutrition Facts Amount Per Serving
Serving size: 1 bar (40g)
Serving Per Package: 4
Total Fat 13g
Saturated Fat 1.5g
Amount Per Serving
Trans Fat 0g
Calories 190
Cholesterol 0mg
Calories from Fat 110
Sodium 20mg
nt Daily Values are based on Vitamin A 50%
calorie diet.
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć subskrypcję narzędzi Foundry Tools, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Następne kroki
W tym krótkim przewodniku startowym dowiesz się, jak zainstalować bibliotekę klienta OCR i korzystać z interfejsu API Read. Następnie dowiedz się więcej o funkcjach API do odczytu.
- Omówienie OCR
- Kod źródłowy dla tego przykładu można znaleźć w GitHub.
Użyj biblioteki klienta optycznego rozpoznawania znaków (OCR) do odczytywania tekstu drukowanego i odręcznego z obrazu zdalnego. Usługa OCR może odczytywać widoczny tekst na obrazie i konwertować go na strumień znaków. Aby uzyskać więcej informacji na temat rozpoznawania tekstu, zobacz omówienie OCR.
Wskazówka
Możesz również odczytywać tekst z obrazu lokalnego. Zobacz metody ComputerVisionClientOperationsMixin , takie jak read_in_stream. Lub, zobacz przykładowy kod na GitHub dla scenariuszy z lokalnymi obrazami.
Dokumentacja referencyjna | Kod źródłowy biblioteki | Pakiet (PyPi) | Przykłady
Wymagania wstępne
- Subskrypcja Azure — Utwórz ją bezpłatnie.
- Python 3.x.
- Instalacja Python powinna obejmować pip. Możesz sprawdzić, czy masz zainstalowane narzędzie pip, uruchom polecenie
pip --versionw wierszu polecenia. Pobierz narzędzie pip, instalując najnowszą wersję Python. -
An Azure Vision w zasobie narzędzi Foundry Tools. Możesz użyć warstwy cenowej bezpłatna (
F0), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego. - Klucz i punkt końcowy z utworzonego zasobu w celu połączenia aplikacji z usługą Azure Vision.
- Po wdrożeniu zasobu usługi Azure Vision wybierz pozycję Przejdź do zasobu.
- W okienku po lewej stronie wybierz pozycję Klucze i punkt końcowy.
- Skopiuj jeden z kluczy i punkt końcowy do wykorzystania w dalszej części szybkiego startu.
Tworzenie zmiennych środowiskowych
W tym przykładzie zapisz swoje poświadczenia w zmiennych środowiskowych na komputerze lokalnym, na których jest uruchamiana aplikacja.
Przejdź do portalu Azure. Jeśli zasób utworzony w sekcji Wymagania wstępne został pomyślnie wdrożony, wybierz pozycję Przejdź do zasobu w obszarze Następne kroki. Klucz i punkt końcowy można znaleźć w obszarze Zarządzanie zasobami na stronie Klucze i punkt końcowy zasobu rozpoznawania twarzy. Klucz zasobu nie jest taki sam jak identyfikator subskrypcji Azure.
Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.
- Aby ustawić zmienną
VISION_KEYśrodowiskową, zastąp<your_key>jednym z kluczy zasobu. - Aby ustawić zmienną
VISION_ENDPOINTśrodowiskową, zastąp<your_endpoint>element punktem końcowym zasobu.
Ważne
Zalecamy uwierzytelnianie przy użyciu Microsoft Entra ID i zarządzanych tożsamości dla zasobów Azure aby uniknąć przechowywania poświadczeń w aplikacjach działających w chmurze.
Używaj kluczy interfejsu API z ostrożnością. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie. Jeśli używasz kluczy interfejsu API, przechowuj je bezpiecznie w Azure Key Vault, regularnie obracaj klucze i ograniczaj dostęp do Azure Key Vault przy użyciu kontroli dostępu opartej na rolach i ograniczeń dostępu do sieci. Aby uzyskać więcej informacji na temat bezpiecznego używania kluczy interfejsu API w aplikacjach, zobacz
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań do usług Azure AI.
setx VISION_KEY <your_key>
setx VISION_ENDPOINT <your_endpoint>
Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.
Odczytywanie tekstu drukowanego i odręcznego
Zainstaluj bibliotekę klienta.
W oknie konsoli uruchom następujące polecenie:
pip install --upgrade azure-cognitiveservices-vision-computervisionZainstaluj bibliotekę Pillow.
pip install pillowUtwórz nowy plik aplikacji Python quickstart-file.py. Następnie otwórz go w preferowanym edytorze lub środowisku IDE.
Zastąp zawartość quickstart-file.py następującym kodem.
from azure.cognitiveservices.vision.computervision import ComputerVisionClient from azure.cognitiveservices.vision.computervision.models import OperationStatusCodes from azure.cognitiveservices.vision.computervision.models import VisualFeatureTypes from msrest.authentication import CognitiveServicesCredentials from array import array import os from PIL import Image import sys import time ''' Authenticate Authenticates your credentials and creates a client. ''' subscription_key = os.environ["VISION_KEY"] endpoint = os.environ["VISION_ENDPOINT"] computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key)) ''' END - Authenticate ''' ''' OCR: Read File using the Read API, extract text - remote This example will extract text in an image, then print results, line by line. This API call can also extract handwriting style text (not shown). ''' print("===== Read File - remote =====") # Get an image with text read_image_url = "https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png" # Call API with URL and raw response (allows you to get the operation location) read_response = computervision_client.read(read_image_url, raw=True) # Get the operation location (URL with an ID at the end) from the response read_operation_location = read_response.headers["Operation-Location"] # Grab the ID from the URL operation_id = read_operation_location.split("/")[-1] # Call the "GET" API and wait for it to retrieve the results while True: read_result = computervision_client.get_read_result(operation_id) if read_result.status not in ['notStarted', 'running']: break time.sleep(1) # Print the detected text, line by line if read_result.status == OperationStatusCodes.succeeded: for text_result in read_result.analyze_result.read_results: for line in text_result.lines: print(line.text) print(line.bounding_box) print() ''' END - Read File - remote ''' print("End of Computer Vision quickstart.")Opcjonalnie zobacz Określanie sposobu przetwarzania danych. Aby na przykład jawnie określić najnowszy model ga, zmodyfikuj instrukcję
read, jak pokazano. Pominięcie parametru lub użycie"latest"automatycznie stosuje najnowszy model GA.# Call API with URL and raw response (allows you to get the operation location) read_response = computervision_client.read(read_image_url, raw=True, model_version="2022-04-30")Uruchom aplikację za pomocą
pythonpolecenia w pliku Szybki start.python quickstart-file.py
Wyjście
===== Read File - remote =====
The quick brown fox jumps
[38.0, 650.0, 2572.0, 699.0, 2570.0, 854.0, 37.0, 815.0]
Over
[184.0, 1053.0, 508.0, 1044.0, 510.0, 1123.0, 184.0, 1128.0]
the lazy dog!
[639.0, 1011.0, 1976.0, 1026.0, 1974.0, 1158.0, 637.0, 1141.0]
End of Azure Vision quickstart.
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć subskrypcję narzędzi Foundry Tools, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Następne kroki
W tym krótkim przewodniku startowym dowiesz się, jak zainstalować bibliotekę klienta OCR i korzystać z interfejsu API Read. Następnie dowiedz się więcej o funkcjach API do odczytu.
- Omówienie OCR
- Kod źródłowy dla tego przykładu można znaleźć w GitHub.
Użyj biblioteki klienta optycznego rozpoznawania znaków (OCR), aby odczytywać tekst drukowany i odręczny przy użyciu interfejsu API odczytu. Usługa OCR może odczytywać widoczny tekst na obrazie i konwertować go na strumień znaków. Aby uzyskać więcej informacji na temat rozpoznawania tekstu, zobacz omówienie OCR.
Wskazówka
Możesz również odczytywać tekst z obrazu lokalnego. Zobacz metody ComputerVisionClient , takie jak readInStream. Lub, zobacz przykładowy kod na GitHub dla scenariuszy z lokalnymi obrazami.
Dokumentacja referencyjna | Pakiet (npm) | Próbki
Wymagania wstępne
- Subskrypcja Azure — Utwórz ją bezpłatnie.
- Bieżąca wersja Node.js.
-
An Azure Vision w zasobie narzędzi Foundry Tools. Możesz użyć warstwy cenowej bezpłatna (
F0), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego. - Klucz i punkt końcowy z utworzonego zasobu w celu połączenia aplikacji z usługą Azure Vision.
- Po wdrożeniu zasobu usługi Azure Vision wybierz pozycję Przejdź do zasobu.
- W okienku po lewej stronie wybierz pozycję Klucze i punkt końcowy.
- Skopiuj jeden z kluczy i punkt końcowy do wykorzystania w dalszej części szybkiego startu.
Tworzenie zmiennych środowiskowych
W tym przykładzie zapisz swoje poświadczenia w zmiennych środowiskowych na komputerze lokalnym, na których jest uruchamiana aplikacja.
Przejdź do portalu Azure. Jeśli zasób utworzony w sekcji Wymagania wstępne został pomyślnie wdrożony, wybierz pozycję Przejdź do zasobu w obszarze Następne kroki. Klucz i punkt końcowy można znaleźć w obszarze Zarządzanie zasobami na stronie Klucze i punkt końcowy zasobu rozpoznawania twarzy. Klucz zasobu nie jest taki sam jak identyfikator subskrypcji Azure.
Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.
- Aby ustawić zmienną
VISION_KEYśrodowiskową, zastąp<your_key>jednym z kluczy zasobu. - Aby ustawić zmienną
VISION_ENDPOINTśrodowiskową, zastąp<your_endpoint>element punktem końcowym zasobu.
Ważne
Zalecamy uwierzytelnianie przy użyciu Microsoft Entra ID i zarządzanych tożsamości dla zasobów Azure aby uniknąć przechowywania poświadczeń w aplikacjach działających w chmurze.
Używaj kluczy interfejsu API z ostrożnością. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie. Jeśli używasz kluczy interfejsu API, przechowuj je bezpiecznie w Azure Key Vault, regularnie obracaj klucze i ograniczaj dostęp do Azure Key Vault przy użyciu kontroli dostępu opartej na rolach i ograniczeń dostępu do sieci. Aby uzyskać więcej informacji na temat bezpiecznego używania kluczy interfejsu API w aplikacjach, zobacz
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań do usług Azure AI.
setx VISION_KEY <your_key>
setx VISION_ENDPOINT <your_endpoint>
Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.
Odczytywanie tekstu drukowanego i odręcznego
Utwórz nową aplikację Node.js.
W oknie konsoli utwórz nowy katalog dla aplikacji i przejdź do niego.
mkdir myapp cd myappUruchom polecenie
npm init, aby utworzyć aplikację Node.js z plikiempackage.json. Wybierz klawisz Enter przy dowolnym monicie.npm initAby zainstalować bibliotekę klienta, zainstaluj pakiety npm
ms-rest-azurei@azure/cognitiveservices-computervision.npm install ms-rest-azure npm install @azure/cognitiveservices-computervisionZainstaluj moduł asynchroniczny:
npm install asyncPlik aplikacji
package.jsonjest aktualizowany przy użyciu zależności.Utwórz nowy plik, index.jsi otwórz go w edytorze tekstów.
Wklej następujący kod do pliku index.js .
'use strict'; const async = require('async'); const fs = require('fs'); const https = require('https'); const path = require("path"); const createReadStream = require('fs').createReadStream const sleep = require('util').promisify(setTimeout); const ComputerVisionClient = require('@azure/cognitiveservices-computervision').ComputerVisionClient; const ApiKeyCredentials = require('@azure/ms-rest-js').ApiKeyCredentials; /** * AUTHENTICATE * This single client is used for all examples. */ const key = process.env.VISION_KEY; const endpoint = process.env.VISION_ENDPOINT; const computerVisionClient = new ComputerVisionClient( new ApiKeyCredentials({ inHeader: { 'Ocp-Apim-Subscription-Key': key } }), endpoint); /** * END - Authenticate */ function computerVision() { async.series([ async function () { /** * OCR: READ PRINTED & HANDWRITTEN TEXT WITH THE READ API * Extracts text from images using OCR (optical character recognition). */ console.log('-------------------------------------------------'); console.log('READ PRINTED, HANDWRITTEN TEXT AND PDF'); console.log(); // URL images containing printed and/or handwritten text. // The URL can point to image files (.jpg/.png/.bmp) or multi-page files (.pdf, .tiff). const printedTextSampleURL = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/printed_text.jpg'; // Recognize text in printed image from a URL console.log('Read printed text from URL...', printedTextSampleURL.split('/').pop()); const printedResult = await readTextFromURL(computerVisionClient, printedTextSampleURL); printRecText(printedResult); // Perform read and await the result from URL async function readTextFromURL(client, url) { // To recognize text in a local image, replace client.read() with readTextInStream() as shown: let result = await client.read(url); // Operation ID is last path segment of operationLocation (a URL) let operation = result.operationLocation.split('/').slice(-1)[0]; // Wait for read recognition to complete // result.status is initially undefined, since it's the result of read while (result.status !== "succeeded") { await sleep(1000); result = await client.getReadResult(operation); } return result.analyzeResult.readResults; // Return the first page of result. Replace [0] with the desired page if this is a multi-page file such as .pdf or .tiff. } // Prints all text from Read result function printRecText(readResults) { console.log('Recognized text:'); for (const page in readResults) { if (readResults.length > 1) { console.log(`==== Page: ${page}`); } const result = readResults[page]; if (result.lines.length) { for (const line of result.lines) { console.log(line.words.map(w => w.text).join(' ')); } } else { console.log('No recognized text.'); } } } /** * * Download the specified file in the URL to the current local folder * */ function downloadFilesToLocal(url, localFileName) { return new Promise((resolve, reject) => { console.log('--- Downloading file to local directory from: ' + url); const request = https.request(url, (res) => { if (res.statusCode !== 200) { console.log(`Download sample file failed. Status code: ${res.statusCode}, Message: ${res.statusMessage}`); reject(); } var data = []; res.on('data', (chunk) => { data.push(chunk); }); res.on('end', () => { console.log(' ... Downloaded successfully'); fs.writeFileSync(localFileName, Buffer.concat(data)); resolve(); }); }); request.on('error', function (e) { console.log(e.message); reject(); }); request.end(); }); } /** * END - Recognize Printed & Handwritten Text */ console.log(); console.log('-------------------------------------------------'); console.log('End of quickstart.'); }, function () { return new Promise((resolve) => { resolve(); }) } ], (err) => { throw (err); }); } computerVision();Opcjonalnie zobacz Określanie sposobu przetwarzania danych. Aby na przykład jawnie określić najnowszy model ga, zmodyfikuj instrukcję
read, jak pokazano. Pominięcie parametru lub użycie"latest"automatycznie stosuje najnowszy model GA.let result = await client.read(url,{modelVersion:"2022-04-30"});Uruchom aplikację za pomocą
nodepolecenia w pliku Szybki start.node index.js
Wyjście
-------------------------------------------------
READ PRINTED, HANDWRITTEN TEXT AND PDF
Read printed text from URL... printed_text.jpg
Recognized text:
Nutrition Facts Amount Per Serving
Serving size: 1 bar (40g)
Serving Per Package: 4
Total Fat 13g
Saturated Fat 1.5g
Amount Per Serving
Trans Fat 0g
Calories 190
Cholesterol 0mg
ories from Fat 110
Sodium 20mg
nt Daily Values are based on Vitamin A 50%
calorie diet.
-------------------------------------------------
End of quickstart.
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć subskrypcję narzędzi Foundry Tools, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Następne kroki
W tym krótkim przewodniku startowym dowiesz się, jak zainstalować bibliotekę klienta OCR i korzystać z interfejsu API Read. Następnie dowiedz się więcej o funkcjach API do odczytu.
- Omówienie OCR
- Kod źródłowy dla tego przykładu można znaleźć w GitHub.
REST API OCR pozwala na odczytywanie tekstu drukowanego i odręcznego.
Uwaga
Ten przewodnik szybkiego startu używa poleceń cURL do wywoływania REST API. Interfejs API REST można również wywołać przy użyciu języka programowania. Zobacz przykłady GitHub, aby zapoznać się z przykładami C#, Python, Java i JavaScript.
Wymagania wstępne
- Subskrypcja Azure — Utwórz ją bezpłatnie.
- Zainstalowano bibliotekę cURL.
-
An Azure Vision w zasobie narzędzi Foundry Tools. Możesz użyć warstwy cenowej bezpłatna (
F0), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego. - Klucz i punkt końcowy z utworzonego zasobu w celu połączenia aplikacji z usługą Azure Vision.
- Po wdrożeniu zasobu usługi Azure Vision wybierz pozycję Przejdź do zasobu.
- W okienku po lewej stronie wybierz pozycję Klucze i punkt końcowy.
- Skopiuj jeden z kluczy i punkt końcowy do wykorzystania w dalszej części szybkiego startu.
Odczytywanie tekstu drukowanego i odręcznego
Usługa optycznego rozpoznawania znaków (OCR) może wyodrębniać widoczny tekst na obrazie lub dokumencie i konwertować go na strumień znaków. Aby uzyskać więcej informacji na temat wyodrębniania tekstu, zobacz omówienie OCR.
Wywołaj interfejs API odczytu
Aby utworzyć i uruchomić przykład, wykonaj następujące czynności:
Skopiuj następujące polecenie do edytora tekstów.
W razie potrzeby wprowadź następujące zmiany w poleceniu:
- Zastąp wartość
<key>kluczem. - Zastąp pierwszą część adresu URL żądania (
https://westcentralus.api.cognitive.microsoft.com/) tekstem we własnym adresie URL punktu końcowego.Uwaga
Nowe zasoby utworzone po 1 lipca 2019 r. będą używać niestandardowych nazw domen podrzędnych. Aby uzyskać więcej informacji i pełną listę regionalnych punktów końcowych, zobacz Niestandardowe nazwy poddomeny dla narzędzi Foundry Tools.
- Opcjonalnie zmień adres URL obrazu w treści żądania (
https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png) na adres URL innego obrazu do przeanalizowania.
- Zastąp wartość
Otwórz okno wiersza polecenia.
Wklej polecenie z edytora tekstów w oknie wiersza polecenia, a następnie uruchom polecenie.
curl -v -X POST "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyze" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription key>" --data-ascii "{'url':'https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'}"
Odpowiedź zawiera Operation-Location nagłówek, którego wartość jest unikatowym adresem URL. Ten adres URL służy do wykonywania zapytań dotyczących wyników operacji Odczyt. Adres URL wygasa w ciągu 48 godzin.
Opcjonalnie określ wersję modelu
Opcjonalnie zobacz Określanie sposobu przetwarzania danych. Aby na przykład jawnie określić najnowszy model ga, użyj model-version=2022-04-30 parametru jako parametru. Pominięcie parametru lub użycie model-version=latest automatycznie stosuje najnowszy model GA.
curl -v -X POST "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyze?model-version=2022-04-30" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription key>" --data-ascii "{'url':'https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'}"
Pobieranie wyników odczytu
Skopiuj następujące polecenie do edytora tekstów.
Zastąp adres URL wartością
Operation-Locationskopiowaną w poprzedniej procedurze.Zastąp wartość
<key>kluczem.Otwórz okno konsoli.
Wklej polecenie z edytora tekstów w oknie konsoli, a następnie uruchom polecenie.
curl -v -X GET "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyzeResults/{operationId}" -H "Ocp-Apim-Subscription-Key: {key}" --data-ascii "{body}"
Sprawdzenie odpowiedzi
Pomyślna odpowiedź jest zwracana w formacie JSON. Przykładowa aplikacja analizuje i wyświetla pomyślną odpowiedź w oknie konsoli, podobnie jak w poniższym przykładzie:
{
"status": "succeeded",
"createdDateTime": "2021-04-08T21:56:17.6819115+00:00",
"lastUpdatedDateTime": "2021-04-08T21:56:18.4161316+00:00",
"analyzeResult": {
"version": "3.2",
"readResults": [
{
"page": 1,
"angle": 0,
"width": 338,
"height": 479,
"unit": "pixel",
"lines": [
{
"boundingBox": [
25,
14,
318,
14,
318,
59,
25,
59
],
"text": "NOTHING",
"appearance": {
"style": {
"name": "other",
"confidence": 0.971
}
},
"words": [
{
"boundingBox": [
27,
15,
294,
15,
294,
60,
27,
60
],
"text": "NOTHING",
"confidence": 0.994
}
]
}
]
}
]
}
}
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć subskrypcję narzędzi Foundry Tools, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Następne kroki
W tym przewodniku wprowadzającym dowiedziałeś się, jak wywoływać interfejs REST API Read. Następnie dowiedz się więcej o funkcjach API do odczytu.