Hızlı başlangıç: optik karakter tanıma (OCR) istemci kitaplığı veya REST API kullanın

Görüntü İşleme okuma REST API veya istemci kitaplıkları ile çalışmaya başlayın. Okuma hizmeti, görüntülerden görünür metinlerin ayıklanması ve yapılandırılmış dizeler olarak döndürülmesi için AI algoritmaları sağlar. Uygulamanıza bir paket yüklemek ve temel görevler için örnek kodu denemek için bu adımları izleyin.

Bir görüntüden yazdırılan ve el yazısı metni okumak için OCR istemci kitaplığını kullanın.

Başvuru belgeleri | Kitaplık kaynak kodu | Paket (NuGet) | Örnekler

Önkoşullar

  • Azure aboneliği - Ücretsiz abonelik oluşturma
  • Visual Studio IDE veya .NET Core'un geçerli sürümü.
  • Azure aboneliğinize sahip olduktan sonra, Görüntü İşleme ve uç Görüntü İşleme almak için Azure portal kaynak oluşturun. Dağıtımdan sonra Kaynağa git'e tıklayın.
    • Uygulamanıza hizmet kaynağına bağlanmak için, oluşturmakta olduğu kaynakta yer alan anahtara ve uç Görüntü İşleme gerekir. Hızlı başlangıçta anahtarınızı ve uç noktanızı aşağıdaki koda yapıştırabilirsiniz.
    • Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek üzere ücretsiz fiyatlandırma katmanını ( F0 ) kullanabilirsiniz.

Ayarlama

Yeni bir C# uygulaması oluşturma

Visual Studio kullanarak yeni bir .NET Core uygulaması oluşturun.

İstemci kitaplığını yükleme

Yeni bir proje oluşturduktan sonra, proje çözümünde proje çözümüne sağ tıklar ve NuGet Paketlerini Yönet'Çözüm Gezgini istemci kitaplığını yükleyin. Açılan paket yöneticisinde Gözat'ı seçin, Önserim dahil'i seçin ve araması için öğesini Microsoft.Azure.CognitiveServices.Vision.ComputerVision seçin. sürümünü seçin 7.0.0 ve ardından Yükle'yi seçin.

İpucu

Hızlı başlangıç kod dosyasının tamamını aynı anda görüntülemek ister misiniz? Bu hızlı başlangıçtaki kod örneklerini içeren GitHub'dabulabilirsiniz.

Proje dizininden Program.cs dosyasını tercih ettiğiniz düzenleyicide veya IDE'de açın.

Abonelik anahtarını ve uç noktayı bulma

Azure portala gidin. Önkoşullar Görüntü İşleme oluşturduğunuz kaynak başarıyla dağıtılırsa, Sonraki Adımlar'ın altındaki Kaynağa Git düğmesine tıklayın. Abonelik anahtarınızı ve uç noktanızı kaynağın anahtar ve uç nokta sayfasında, kaynak yönetimi altında bulabilirsiniz.

Uygulamanın Program sınıfında, abonelik anahtarınız ve uç noktanız Görüntü İşleme değişkenler oluşturun. Abonelik anahtarınızı ve uç noktanızı aşağıda belirtilen koda yapıştırın. Görüntü İşleme uç noktanız https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/ şeklindedir.

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

Önemli

Bitirilen abonelik anahtarını kodunuzdan kaldırmayı ve hiçbir zaman herkese açık bir şekilde gönderileyemini unutmayın. Üretim için kimlik bilgilerinizi depolamak ve erişmek için güvenli bir yol kullanmayı göz önünde bulundurarak. Örneğin, Azure Key Vault.

Uygulamanın Main yönteminde, bu hızlı başlangıçta kullanılan yöntemler için çağrılar ekleyin. Bunları daha sonra oluşturacağız.

ComputerVisionClient client = Authenticate(endpoint, subscriptionKey);

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

Nesne modeli

Aşağıdaki sınıflar ve arabirimler, OCR .NET SDK'sı temel özelliklerinden bazılarına sahiptir.

Ad Açıklama
ComputerVisionClient Bu sınıf, tüm Görüntü İşleme gereklidir. Abonelik bilgileriyle örneğinizi hazırlar ve görüntü işlemlerinin çoğunu yapmak için kullanırsınız.
ComputerVisionClientExtensions Bu sınıf ComputerVisionClient için ek yöntemler içerir.

Kod örnekleri

Bu kod parçacıkları. .NET için OCR istemci kitaplığıyla aşağıdaki görevleri nasıl gerçekleştirebilirsiniz?

İstemcinin kimliğini doğrulama

Program sınıfındaki yeni bir yöntemde, uç noktanız ve abonelik anahtarınız ile bir istemci örneği. Abonelik anahtarınız ile bir ApiKeyServiceClientCredentials nesnesi oluşturun ve bunu uç noktanız ile birlikte kullanarak bir ComputerVisionClient nesnesi oluşturun.

/*
 * 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;
}

Yazdırılan ve el yazısı metinleri okuma

OCR hizmeti bir görüntüdeki görünür metni okuyabilir ve bir karakter akışına dönüştürebilirsiniz. Metin tanıma hakkında daha fazla bilgi için bkz. Optik karakter tanımaya (OCR) genel bakış. Bu bölümdeki kod, Okuma 3.0 için en son Görüntü İşleme SDK sürümünü kullanır ve görüntüde metin algılamak ve ayıklamak için istemci nesnesini kullanan yöntemini BatchReadFileUrl tanımlar.

İpucu

Ayrıca yerel görüntüden metin ayıkabilirsiniz. ReadInStreamAsync gibi ComputerVisionClient yöntemlerine bakın. Veya yerel görüntüleri içeren senaryolar için GitHub'daki örnek koda bakın.

Test görüntüsünü ayarlama

Program sınıfınıza, metin ayıklamak istediğiniz görüntünün URL'sinin başvurularını kaydedin. Bu kod parçacığı hem yazdırılan hem de el yazısı metin için örnek görüntüler içerir.

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

Okuma API'sini çağırma

Metin okumak için yeni yöntemi tanımlayın. Verilen görüntü için ReadAsync yöntemini çağıran kodu aşağıya ekleyin. Bu işlem kimliği döndürür ve görüntünün içeriğini okumak için zaman uyumsuz bir işlem başlatır.

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

Okuma sonuçlarını al

Ardından ReadAsync çağrısından döndürülen işlem kimliğini al ve bunu kullanarak hizmeti işlem sonuçlarını sorgula. Aşağıdaki kod, sonuçlar döndürülene kadar işlemi denetler. Ardından ayıklanan metin verilerini konsola yazdırır.

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

Okuma sonuçlarını görüntüleme

Alınan metin verilerini ayrıştırmak ve görüntülemek ve yöntem tanımını tamamlamak için aşağıdaki kodu ekleyin.

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

Uygulamayı çalıştırma

IDE penceresinin üst kısmında yer alan Hata Ayıkla düğmesine tıklayarak uygulamayı çalıştırın.

Kaynakları temizleme

Bilişsel Hizmetler aboneliğini temizlemek ve kaldırmak için kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkilendirilmiş diğer tüm kaynakları da siler.

Sonraki adımlar

Bu hızlı başlangıçta, OCR istemci kitaplığını yükleme ve Okuma API'sini kullanmayı öğrendiniz. Ardından Okuma API'si özellikleri hakkında daha fazla bilgi edinin.

Okuma API'si ile yazdırılan ve el yazısı metni okumak için Optik karakter tanıma istemci kitaplığını kullanın.

Başvuru belgeleri | Kitaplık kaynak kodu | Paket (PiPy) | Örnekler

Önkoşullar

  • Azure aboneliği - Ücretsiz bir abonelik oluşturun

  • Python 3.x

    • Python yüklemeniz pip içermeli. Komut satırına komutunu çalıştırarak pip'in yüklü pip --version olup olduğunu kontrol edin. Python'ın en son sürümünü yükleyerek pip'i elde edin.
  • Azure aboneliğinize sahip olduktan sonra, Görüntü İşleme uç noktanızı almak için Görüntü İşleme kaynak Azure portal kaynak oluşturun. Dağıtımdan sonra Kaynağa git'e tıklayın.

    • Uygulamalarınızı Görüntü İşleme hizmetine bağlamak için, oluşturmakta olduğu kaynakta yer alan anahtara ve uç Görüntü İşleme gerekir. Hızlı başlangıçta anahtarınızı ve uç noktanızı aşağıdaki koda yapıştırabilirsiniz.
    • Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek üzere ücretsiz fiyatlandırma katmanını ( F0 ) kullanabilirsiniz.

Ayarlama

İstemci kitaplığını yükleme

İstemci kitaplığını şu şekilde yükleyebilirsiniz:

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

Ayrıca, Library kitaplığını da yükleyin.

pip install pillow

Yeni Python uygulaması oluşturma

İpucu

Hızlı başlangıç kod dosyasının tamamını aynı anda görüntülemek ister misiniz? Bu hızlı başlangıçtaki kod GitHubiçeren , üzerinde bulabilirsiniz.

örneğin, yeni bir Python — quickstart-file.py oluşturun. Ardından tercih ettiğiniz düzenleyicide veya IDE'de açın.

Abonelik anahtarını ve uç noktayı bulma

Azure portala gidin. Önkoşullar Görüntü İşleme oluşturduğunuz kaynak başarıyla dağıtılırsa, Sonraki Adımlar'ın altındaki Kaynağa Git düğmesine tıklayın. Abonelik anahtarınızı ve uç noktanızı kaynak yönetimi altında kaynağın anahtarı ve uç noktası sayfasında bulabilirsiniz.

Abonelik anahtarınız ve Görüntü İşleme için değişkenler oluşturun. Abonelik anahtarınızı ve uç noktanızı aşağıda belirtilen koda yapıştırın. Görüntü İşleme uç noktanız https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/ şeklindedir.

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"

Önemli

Bitirilen abonelik anahtarını kodunuzdan kaldırmayı ve hiçbir zaman herkese açık bir şekilde gönderileyemini unutmayın. Üretim için kimlik bilgilerinizi depolamak ve bu kimlik bilgilerine erişmek için güvenli bir yol kullanmayı göz önünde bulundurarak. Örneğin, Azure Key Vault.

Nesne modeli

Aşağıdaki sınıflar ve arabirimler, OCR Python SDK'sı'nın bazı önemli özelliklerini ele almaktadır.

Ad Açıklama
ComputerVisionClientOperationsMixin Bu sınıf görüntü analizi, metin algılama ve küçük resim oluşturma gibi tüm görüntü işlemlerini doğrudan ele almaktadır.
ComputerVisionClient Bu sınıf, tüm Görüntü İşleme gereklidir. Abonelik bilgileriyle örneğinizi hazırlar ve bunu kullanarak diğer sınıfların örneklerini üretirsiniz. ComputerVisionClientOperationsMixin'i uygulamaya almaktadır.
VisualFeatureTypes Bu enum, standart Bir Analiz işlemiyle yap 10 farklı görüntü analizi türlerini tanımlar. Gereksinimlerinize bağlı olarak bir dizi VisualFeatureTypes değeri belirtirsiniz.

Kod örnekleri

Bu kod parçacıkları, Python için OCR istemci kitaplığıyla aşağıdaki görevleri nasıl gerçekleştirebilirsiniz?

İstemcinin kimliğini doğrulama

Uç noktanız ve anahtarınız ile bir istemci örneği. Anahtarınız ile bir CognitiveServicesCredentials nesnesi oluşturun ve bunu uç noktanız ile birlikte kullanarak bir ComputerVisionClient nesnesi oluşturun.

computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))

Yazdırılan ve el yazısı metinleri okuma

OCR hizmeti bir görüntüdeki görünür metni okuyabilir ve bir karakter akışına dönüştürür. Bunu iki parçalı olarak yapacaktır.

Okuma API'sini çağırma

İlk olarak, verilen görüntü için read yöntemini çağıran aşağıdaki kodu kullanın. Bu işlem kimliği döndürür ve görüntünün içeriğini okumak için zaman uyumsuz bir işlem başlatır.

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

İpucu

Yerel görüntüden metin de okuyabilirsiniz. Bkz. read_in_stream gibi ComputerVisionClientOperationsMixin yöntemleri. Veya yerel görüntüleri içeren senaryolar için GitHub örnek koda bakın.

Okuma sonuçlarını al

Ardından okuma çağrısından döndürülen işlem kimliğini al ve bunu kullanarak hizmeti işlem sonuçlarını sorgula. Aşağıdaki kod, sonuçlar döndürülene kadar işlemi bir saniyelik aralıklarla denetler. Ardından ayıklanan metin verilerini konsola yazdırır.

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

Uygulamayı çalıştırma

Hızlı başlangıç dosyanız python üzerinde komutunu kullanarak uygulamayı çalıştırın.

python quickstart-file.py

Kaynakları temizleme

Bilişsel Hizmetler aboneliğini temizlemek ve kaldırmak için kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkilendirilmiş diğer tüm kaynakları da siler.

Sonraki adımlar

Bu hızlı başlangıçta, OCR istemci kitaplığını yükleme ve Okuma API'sini kullanmayı öğrendiniz. Ardından Okuma API'si özellikleri hakkında daha fazla bilgi edinin.

Optik karakter tanıma istemci kitaplığını kullanarak görüntülerdeki basılı ve el yazısı metinleri okuyun.

Başvuru belgeleri | Kitaplık kaynak kodu | Yapıt (Maven) | Örnekler

Önkoşullar

  • Azure aboneliği - Ücretsiz abonelik oluşturma
  • Java Development Kit'in (JDK) geçerli sürümü
  • Gradle derleme aracıveya başka bir bağımlılık yöneticisi.
  • Azure aboneliğinize sahip olduktan sonra, Görüntü İşleme uç noktanızı almak için Görüntü İşleme kaynak oluşturun Azure portal kaynak oluşturun. Dağıtımdan sonra Kaynağa git'e tıklayın.
    • Uygulamalarınızı Görüntü İşleme hizmetine bağlamak için, oluşturmakta olduğu kaynakta yer alan anahtara ve uç Görüntü İşleme gerekir. Hızlı başlangıçta anahtarınızı ve uç noktanızı aşağıdaki koda yapıştırabilirsiniz.
    • Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek üzere ücretsiz fiyatlandırma katmanını ( F0 ) kullanabilirsiniz.

Ayarlama

Yeni bir Gradle projesi oluşturma

Konsol penceresinde (cmd, PowerShell veya Bash gibi) uygulama için yeni bir dizin oluşturun ve bu dizine gidin.

mkdir myapp && cd myapp

Komutunu gradle init çalışma dizinden çalıştırın. Bu komut, çalışma zamanında uygulama oluşturmak ve yapılandırmak için kullanılan build.gradle.kts dahil olmak üzere Gradle için temel derleme dosyaları oluşturacak.

gradle init --type basic

DSL seçmeniz istendiğinde Kotlin'i seçin.

İstemci kitaplığını yükleme

Bu hızlı başlangıçta Gradle bağımlılık yöneticisi 2. İstemci kitaplığını ve diğer bağımlılık yöneticilerine ilişkin bilgileri Maven Merkezi Deposu'nda bulabilirsiniz.

build.gradle.kts'yi bulun ve tercih ettiğiniz IDE veya metin düzenleyicisiyle açın. Ardından aşağıdaki derleme yapılandırmasına kopyalayın. Bu yapılandırma, projeyi giriş noktası ComputerVisionQuickstart sınıfı olan bir Java uygulaması olarak tanımlar. Görüntü İşleme kitaplığını içeri aktarıyor.

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

Java dosyası oluşturma

Çalışma dizininizi kullanarak aşağıdaki komutu çalıştırarak bir proje kaynak klasörü oluşturun:

mkdir -p src/main/java

İpucu

Hızlı başlangıç kod dosyasının tamamını aynı anda görüntülemek ister misiniz? Bu hızlı başlangıçtaki kod örneklerini içeren GitHub'dabulabilirsiniz.

Yeni klasöre gidin ve ComputerVisionQuickstart.java adlı bir dosya oluşturun. Tercih ettiğiniz düzenleyicide veya IDE'de açın.

Abonelik anahtarını ve uç noktayı bulma

Azure portala gidin. Önkoşullar Görüntü İşleme oluşturduğunuz kaynak başarıyla dağıtılırsa, Sonraki Adımlar'ın altındaki Kaynağa Git düğmesine tıklayın. Abonelik anahtarınızı ve uç noktanızı kaynağın anahtar ve uç nokta sayfasında, kaynak yönetimi altında bulabilirsiniz.

ComputerVisionQuickstart sınıfını tanımlayın. Abonelik anahtarınız ve Görüntü İşleme için değişkenler oluşturun. Abonelik anahtarınızı ve uç noktanızı aşağıda belirtilen koda yapıştırın. Görüntü İşleme uç noktanız https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/ şeklindedir.

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

Önemli

Bitirilen abonelik anahtarını kodunuzdan kaldırmayı ve hiçbir zaman herkese açık bir şekilde gönderileyemini unutmayın. Üretim için kimlik bilgilerinizi depolamak ve erişmek için güvenli bir yol kullanmayı göz önünde bulundurarak. Örneğin, Azure Key Vault.

Uygulamanın ana yönteminde, bu hızlı başlangıçta kullanılan yöntemler için çağrılar ekleyin. Bunları daha sonra tanımlayabilirsiniz.

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

Nesne modeli

Aşağıdaki sınıflar ve arabirimler, OCR Java SDK'sı'nın bazı önemli özelliklerini ele almaktadır.

Ad Açıklama
ComputerVisionClient Bu sınıf, tüm Görüntü İşleme gereklidir. Abonelik bilgileriyle örneğinizi hazırlar ve bunu kullanarak diğer sınıfların örneklerini üretirsiniz.

Kod örnekleri

Bu kod parçacıkları, Java için OCR istemci kitaplığıyla aşağıdaki görevleri nasıl gerçekleştirebilirsiniz?

İstemcinin kimliğini doğrulama

Yeni bir yöntemde, uç noktanız ve anahtarınız ile bir ComputerVisionClient nesnesi örneği başlatın.

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

Yazdırılan ve el yazısı metinleri okuma

OCR hizmeti bir görüntüdeki görünür metni okuyabilir ve bir karakter akışına dönüştürebilirsiniz. Bu bölüm, yerel dosya ReadFromFile yolunu alan ve görüntünün metnini konsola yazdıran yöntemini tanımlar.

İpucu

URL tarafından başvurulan uzak görüntüdeki metni de okuyabilirsiniz. Read gibi ComputerVision yöntemlerine bakın. Veya uzak görüntüleri içeren senaryolar için GitHub'daki örnek koda bakın.

Test görüntüsünü ayarlama

Projenizin src/main/ klasöründe resources/ klasörü oluşturun ve metin okumak istediğiniz bir görüntü ekleyin. Burada kullanmak üzere örnek bir görüntü indirebilirsiniz.

Ardından aşağıdaki yöntem tanımını ComputerVisionQuickstart sınıfınıza ekleyin. değerini görüntü localFilePath dosyanız ile eş olacak şekilde değiştirebilirsiniz.

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

Okuma API'sini çağırma

Ardından, verilen görüntü için readInStreamWithServiceResponseAsync yöntemini çağıran aşağıdaki kodu ekleyin.


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

Aşağıdaki kod bloğu, Okuma çağrısının yanıtını kullanarak işlem kimliğini ayıklar. Konsolda metin okuma sonuçlarını yazdırmak için bu kimliği yardımcı bir yöntemle kullanır.

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

getAndPrintReadResult(vision, operationLocation);

try/catch bloğu ve yöntem tanımını kapatın.


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

Okuma sonuçlarını al

Ardından yardımcı yöntemi için bir tanım ekleyin. Bu yöntem, okuma işlemi sorgulamak ve kullanılabilir olduğunda OCR sonuçlarını almak için önceki adımdan işlem kimliğini kullanır.

/**
 * 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;
            }
        }
    }

Yöntemin geri kalanı OCR sonuçlarını ayrıştırıyor ve konsola yazdırıyor.

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

Son olarak, yukarıda kullanılan ve ilk yanıttan işlem kimliğini ayıklanan diğer yardımcı yöntemi ekleyin.

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

Uygulamayı çalıştırma

Uygulamayı şu şekilde derlemek için:

gradle build

Uygulamayı komutuyla gradle run çalıştırın:

gradle run

Kaynakları temizleme

Bilişsel Hizmetler aboneliğini temizlemek ve kaldırmak için kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkilendirilmiş diğer tüm kaynakları da siler.

Sonraki adımlar

Bu hızlı başlangıçta, OCR istemci kitaplığını yükleme ve Okuma API'sini kullanmayı öğrendiniz. Ardından Okuma API'si özellikleri hakkında daha fazla bilgi edinin.

Okuma API'si ile yazdırılan ve el yazısı metni okumak için Optik karakter tanıma istemci kitaplığını kullanın.

Başvuru belgeleri | Kitaplık kaynak kodu | Paket (npm) | Örnekler

Önkoşullar

  • Azure aboneliği - Ücretsiz bir abonelik oluşturun
  • Node.js'nin geçerli sürümü
  • Azure aboneliğinize sahip olduktan sonra, Görüntü İşleme uç noktanızı almak için Görüntü İşleme kaynağı oluşturun. Dağıtımdan sonra Kaynağa git'e tıklayın.
    • Uygulamalarınızı Görüntü İşleme hizmetine bağlamak için, oluşturmakta olduğu kaynakta yer alan anahtara ve uç Görüntü İşleme gerekir. Hızlı başlangıçta anahtarınızı ve uç noktanızı aşağıdaki koda yapıştırabilirsiniz.
    • Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek üzere ücretsiz fiyatlandırma katmanını ( F0 ) kullanabilirsiniz.

Ayarlama

Yeni bir Node.js uygulaması oluşturma

Konsol penceresinde (cmd, PowerShell veya Bash gibi) uygulama için yeni bir dizin oluşturun ve bu dizine gidin.

mkdir myapp && cd myapp

komutunu npm init çalıştırarak bir dosya ile düğüm uygulaması package.json oluşturun.

npm init

İstemci kitaplığını yükleme

ve ms-rest-azure @azure/cognitiveservices-computervision NPM paketini yükleyin:

npm install @azure/cognitiveservices-computervision

Zaman uyumsuz modülü de yükleyin:

npm install async

Uygulamanın package.json dosyası bağımlılıklarla güncelleştirilir.

İpucu

Hızlı başlangıç kod dosyasının tamamını aynı anda görüntülemek ister misiniz? Bu hızlı başlangıçtaki kod GitHubiçeren dosyada bulabilirsiniz.

yeni bir dosya oluşturun index.js ve bir metin düzenleyicisinde açın.

Abonelik anahtarını ve uç noktayı bulma

Azure portala gidin. Önkoşullar Görüntü İşleme oluşturduğunuz kaynak başarıyla dağıtılırsa, Sonraki Adımlar'ın altındaki Kaynağa Git düğmesine tıklayın. Abonelik anahtarınızı ve uç noktanızı kaynağın anahtarı ve uç noktası sayfasında, kaynak yönetimi altında bulabilirsiniz.

Abonelik anahtarınız ve Görüntü İşleme için değişkenler oluşturun. Abonelik anahtarınızı ve uç noktanızı aşağıda belirtilen koda yapıştırın. Görüntü İşleme uç noktanız https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/ şeklindedir.

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

Önemli

Bitirilen abonelik anahtarını kodunuzdan kaldırmayı ve hiçbir zaman herkese açık bir şekilde gönderileyemini unutmayın. Üretim için kimlik bilgilerinizi depolamak ve erişmek için güvenli bir yol kullanmayı göz önünde bulundurarak. Örneğin, Azure Key Vault.

Nesne modeli

Aşağıdaki sınıflar ve arabirimler, OCR Node.js SDK'sı'nın başlıca özelliklerinden Node.js ele almaktadır.

Ad Açıklama
ComputerVisionClient Bu sınıf, tüm Görüntü İşleme gereklidir. Abonelik bilgileriyle örneğinizi hazırlar ve görüntü işlemlerinin çoğunu yapmak için kullanırsınız.

Kod örnekleri

Bu kod parçacıkları, aşağıdaki görevleri aşağıdaki görevler için OCR istemci kitaplığıyla nasıl Node.js:

İstemcinin kimliğini doğrulama

Uç noktanız ve anahtarınız ile bir istemci örneği. Anahtarınız ve uç noktanız ile bir ApiKeyCredentials nesnesi oluşturun ve bunu kullanarak bir ComputerVisionClient nesnesi oluşturun.

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

Ardından, bir işlev tanımlayın computerVision ve birincil işlev ve geri çağırma işlevi ile zaman uyumsuz bir seri tanımlayın. Betiğin sonunda bu işlev tanımını tamamlar ve çağrır.

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

Yazdırılan ve el yazısı metinleri okuma

OCR hizmeti, bir görüntüdeki görünür metni ayıklar ve bir karakter akışına dönüştürür. Bu örnek Okuma işlemlerini kullanır.

Test görüntülerini ayarlama

Metin ayıklamak istediğiniz görüntülerin URL'sinin başvurularını kaydedin.

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

Not

Yerel görüntüden metin de okuyabilirsiniz. readInStream gibi ComputerVisionClient yöntemlerine bakın. Veya yerel görüntüleri içeren senaryolar için GitHub örnek koda bakın.

Okuma API'sini çağırma

Okuma çağrısı durum değerlerini ifade etmek için işlevinize aşağıdaki alanları tanımlayın.

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

Verilen görüntüler için işlevini çağıran readTextFromURL kodu aşağıya ekleyin.

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

İşlevi readTextFromURL tanımlayın. Bu, istemci nesnesinde okuma yöntemini çağırarak işlem kimliğini döndürür ve görüntünün içeriğini okumak için zaman uyumsuz bir işlem başlatır. Ardından, sonuçlar döndürülene kadar işlem durumunu kontrol etmek için işlem kimliğini kullanır. Ayıklanan sonuçları döndürür.

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

Ardından, Okuma işlemlerinin sonuçlarını printRecText konsola yazdıran yardımcı işlevini tanımlayın.

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

İşlevi kapatma

İşlevi computerVision kapatın ve çağırarak.


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

computerVision();

Uygulamayı çalıştırma

Hızlı başlangıç dosyanız node üzerinde komutunu kullanarak uygulamayı çalıştırın.

node index.js

Kaynakları temizleme

Bilişsel Hizmetler aboneliğini temizlemek ve kaldırmak için kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkilendirilmiş diğer tüm kaynakları da siler.

Sonraki adımlar

Bu hızlı başlangıçta, OCR istemci kitaplığını yükleme ve Okuma API'sini kullanmayı öğrendiniz. Ardından Okuma API'si özellikleri hakkında daha fazla bilgi edinin.

Görüntülerden yazdırılmış ve el yazısı metinleri okumak için OCR istemci kitaplığını kullanın.

Başvuru belgeleri | Kitaplık kaynak kodu | Paket

Önkoşullar

  • Azure aboneliği- ücretsiz olarak bir tane oluşturun
  • En son Go sürümü
  • Azure aboneliğiniz olduktan sonra, anahtarınızı ve uç noktanızı almak için Azure Portal bir Görüntü İşleme kaynağı oluşturun görüntü işleme bir kaynak oluşturun. Dağıtıldıktan sonra Kaynağa Git ' e tıklayın.
    • Uygulamanızı Görüntü İşleme hizmetine bağlamak için oluşturduğunuz kaynaktaki anahtar ve uç nokta gerekir. Anahtarınızı ve uç noktanızı daha sonra hızlı başlangıçta aşağıdaki koda yapıştırabilirsiniz.
    • F0Hizmeti denemek ve daha sonra üretime yönelik ücretli bir katmana yükseltmek için ücretsiz fiyatlandırma katmanını () kullanabilirsiniz.

Ayarlanıyor

Go proje dizini oluştur

Konsol penceresinde (cmd, PowerShell, Terminal, Bash), go projeniz için adlı yeni bir çalışma alanı oluşturun my-app ve buna gidin.

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

Çalışma alanınız üç klasör içerir:

  • src -bu dizin, kaynak kodu ve paketleri içerir. Komutuyla yüklenen tüm paketler go get Bu dizine gider.
  • pkg -bu dizin, derlenmiş go paketi nesnelerini içerir. Bu dosyaların hepsi bir .a uzantısı vardır.
  • bin -bu dizin, çalıştırdığınızda oluşturulan ikili yürütülebilir dosyaları içerir go install .

İpucu

Go çalışma alanının yapısı hakkında daha fazla bilgi edinmek için Go Language belgelerinebakın. Bu kılavuz, ve ayarları hakkında bilgi içerir $GOPATH $GOROOT .

Go için istemci kitaplığını yükler

Ardından, Go için istemci kitaplığını yükleyeceksiniz:

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

ya da DEP kullanıyorsanız, deponuzda çalıştırın:

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

Go uygulaması oluşturma

Sonra, src dizininde adlı bir dosya oluşturun sample-app.go :

cd src
touch sample-app.go

İpucu

Tüm hızlı başlangıç kodu dosyasını aynı anda görüntülemek mi istiyorsunuz? bu hızlı başlangıçta kod örneklerini içeren GitHubüzerinde bulabilirsiniz.

sample-app.goTercih ETTIĞINIZ IDE veya metin düzenleyicide açın.

Betiğinizin kökünde bir bağlam bildirin. Görüntü İşleme işlev çağrılarının çoğunu yürütmek için bu nesne gerekir.

Abonelik anahtarını ve uç noktayı bulma

Azure portala gidin. Önkoşullar bölümünde oluşturduğunuz görüntü işleme kaynak başarıyla dağıtılırsa, sonraki adımlar altında Kaynağa Git düğmesine tıklayın. Kaynak yönetimi altında, kaynağın anahtar ve uç nokta sayfasında abonelik anahtarınızı ve uç noktanızı bulabilirsiniz.

Görüntü İşleme abonelik anahtarınız ve uç noktanız için değişkenler oluşturun. Abonelik anahtarınızı ve uç noktanızı, belirtilen yerde aşağıdaki koda yapıştırın. Görüntü İşleme uç noktanız formu vardır 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"

Önemli

İşiniz bittiğinde kodunuzda abonelik anahtarını kaldırmayı unutmayın ve hiçbir zaman herkese açık bir şekilde nakletmeyin. Üretim için, kimlik bilgilerinizi depolamak ve bunlara erişmek için güvenli bir yol kullanmayı düşünün. Örneğin, Azure Anahtar Kasası.

Daha sonra, farklı OCR işlemlerini gerçekleştirmek için kod eklemeye başlayacaksınız.

Nesne modeli

Aşağıdaki sınıflar ve arabirimler, OCR git SDK 'sının bazı önemli özelliklerini işler.

Ad Açıklama
BaseClient Bu sınıf, görüntü analizi ve metin okuma gibi tüm Görüntü İşleme işlevleri için gereklidir. Bunu Abonelik bilgileriniz ile birlikte başlatır ve birçok görüntü işlemini yapmak için kullanırsınız.
ReadOperationResult Bu tür, toplu okuma işleminin sonuçlarını içerir.

Kod örnekleri

Bu kod parçacıkları, Go için OCR istemci kitaplığı ile aşağıdaki görevlerin nasıl yapılacağını gösterir:

İstemcinin kimliğini doğrulama

Not

Bu adım, ve sırasıyla adlı Görüntü İşleme anahtarınız ve uç noktanız için ortam değişkenleri oluşturduğunuzu varsayar COMPUTER_VISION_SUBSCRIPTION_KEY COMPUTER_VISION_ENDPOINT .

Bir main işlev oluşturun ve uç noktanıza ve anahtarınıza sahip bir istemci örneği oluşturmak için aşağıdaki kodu ekleyin.

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

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

Yazdırılmış ve el yazısı metin oku

OCR hizmeti görüntüdeki görünür metni okuyabilir ve bunu bir karakter akışına dönüştürebilir. Bu bölümdeki kod, RecognizeTextReadAPIRemoteImage görüntüde yazdırılmış veya el yazısı metinleri algılamak ve ayıklamak için istemci nesnesini kullanan bir işlevi tanımlar.

İşlevinizdeki örnek resim başvurusunu ve işlev çağrısını ekleyin main .

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

İpucu

Ayrıca, yerel görüntüden metin de ayıklayabilirsiniz. BatchReadFileInStream gibi baseclient yöntemlerine bakın. veya, yerel görüntüleri ilgilendiren senaryolar için GitHub örnek koda bakın.

Okuma API 'sini çağırma

Metni okumak için yeni işlevi tanımlayın, RecognizeTextReadAPIRemoteImage . Belirtilen görüntü için Batchreadfile yöntemini çağıran aşağıdaki kodu ekleyin. Bu yöntem bir işlem KIMLIĞI döndürür ve görüntünün içeriğini okumak için zaman uyumsuz bir işlem başlatır.

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

Okuma sonuçları al

Sonra, Batchreadfile çağrısından döndürülen işlem kimliğini alın ve bunu işlem sonuçları için hizmeti sorgulamak üzere Getreadoperationresult yöntemiyle birlikte kullanın. Aşağıdaki kod, sonuçlar döndürülünceye kadar işlemi tek saniyelik aralıklarla denetler. Daha sonra ayıklanan metin verilerini konsola yazdırır.

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

Okuma sonuçlarını görüntüle

Alınan metin verilerini ayrıştırmak ve göstermek için aşağıdaki kodu ekleyin ve işlev tanımını sona erdirin.

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

Uygulamayı çalıştırma

Uygulamayı komut ile uygulama dizininizden çalıştırın go run .

go run sample-app.go

Kaynakları temizleme

Bilişsel hizmetler aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, onunla ilişkili diğer tüm kaynakları da siler.

Sonraki adımlar

Bu hızlı başlangıçta, OCR istemci kitaplığını yüklemeyi ve okuma API 'sini kullanmayı öğrendiniz. Ardından, okuma API 'SI özellikleri hakkında daha fazla bilgi edinin.

Yazdırılmış ve el yazısı REST API optik karakter tanıma özelliğini kullanın.

Not

Bu hızlı başlangıçta, cURL komutları kullanarak REST API. Programlama dilini kullanarak REST API çağırarak da çağrıda bulundurarak. C#GitHub, Java, JavaScriptve Go'daki örnekler için aşağıdaki örneklere bakın.

Önkoşullar

  • Azure aboneliği - Ücretsiz abonelik oluşturma
  • Azure aboneliğinize sahip olduktan sonra, Görüntü İşleme uç noktanızı almak için Görüntü İşleme kaynak oluşturmak Azure portal kaynak oluşturun. Dağıtımdan sonra Kaynağa git'e tıklayın.
    • Uygulamanıza Görüntü İşleme hizmetine bağlanmak için, oluşturmakta olduğu kaynakta yer alan anahtara ve uç Görüntü İşleme gerekir. Hızlı başlangıçta anahtarınızı ve uç noktanızı aşağıdaki koda yapıştırabilirsiniz.
    • Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek üzere ücretsiz fiyatlandırma katmanını ( F0 ) kullanabilirsiniz.
  • cURL yüklü

Yazdırılan ve el yazısı metni ayıklama

OCR hizmeti, bir görüntü veya belgedeki görünür metni ayıklar ve bir karakter akışına dönüştürür. Metin ayıklama hakkında daha fazla bilgi için bkz. Optik karakter tanımaya (OCR) genel bakış.

Okuma API'sini çağırma

Örneği oluşturup çalıştırmak için aşağıdaki adımları uygulayın:

  1. Aşağıdaki komutu bir metin düzenleyicisine kopyalayın.
  2. Gerektiğinde komutta aşağıdaki değişiklikleri yapın:
    1. <subscriptionKey> değerini abonelik anahtarınızla değiştirin.
    2. İstek URL'sinin ilk bölümünü ( westcentralus ) kendi uç nokta URL'nizin metniyle değiştirin.

      Not

      1 Temmuz 2019 ' den sonra oluşturulan yeni kaynaklar özel alt etki alanı adları kullanır. Daha fazla bilgi ve bölgesel uç noktaların tamamen listesi için bkz. bilişsel Hizmetler Için özel alt etki alanı adları.

    3. İsteğe bağlı olarak, istek gövdesindeki görüntü URL’sini (https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png\), analiz edilecek farklı bir görüntünün URL’si ile değiştirin.
  3. Bir komut istemi penceresi açın.
  4. Metin düzenleyicisindeki komutu komut istemi penceresine yapıştırın ve komutu çalıştırın.
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\"}"

Yanıt, değeri benzersiz Operation-Location bir URL olan bir üst bilgi içerir. Okuma işlemi sonuçlarını sorgulamak için bu URL'yi kullanırsiniz. URL'nin süresi 48 saat içinde dolar.

Önizleme özelliklerini kullanma

Önizleme dilleri ve özellikleri için bkz. En son önizlemeyi kullanmak için model sürümünü belirtme. Önizleme modeli, şu anda ga dillerinde ve özelliklerinde yapılan tüm geliştirmeleri içerir.

Okuma sonuçlarını al

  1. Aşağıdaki komutu metin düzenleyicinize kopyalayın.
  2. URL'yi önceki Operation-Location adımda kopyalanan değerle değiştirin.
  3. Gerektiğinde komutta aşağıdaki değişiklikleri yapın:
    1. <subscriptionKey> değerini abonelik anahtarınızla değiştirin.
  4. Bir komut istemi penceresi açın.
  5. Metin düzenleyicisindeki komutu komut istemi penceresine yapıştırın ve komutu çalıştırın.
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}" 

Yanıtı inceleme

Başarılı bir yanıt JSON biçiminde döndürülür. Örnek uygulama, aşağıdaki örneğe benzer şekilde başarılı bir yanıtı ayrıştırıp komut istemi penceresinde görüntüler:

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

Sonraki adımlar

Bu hızlı başlangıçta Read REST API. Ardından Okuma API'si özellikleri hakkında daha fazla bilgi edinin.