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.
- OCR'ye genel bakış
- Bu örneğin kaynak kodu GitHub'da bulunabilir.
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 yüklemeniz pip içermeli. Komut satırına komutunu çalıştırarak pip'in yüklü
pip --versionolup olduğunu kontrol edin. Python'ın en son sürümünü yükleyerek pip'i elde edin.
- Python yüklemeniz pip içermeli. Komut satırına komutunu çalıştırarak pip'in yüklü
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.
- OCR'ye genel bakış
- Bu örneğin kaynak kodu GitHub.
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.
- OCR'ye genel bakış
- Bu örneğin kaynak kodu GitHub'da bulunabilir.
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.
- OCR'ye genel bakış
- Bu örneğin kaynak kodu GitHub.
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 getBu dizine gider. - pkg -bu dizin, derlenmiş go paketi nesnelerini içerir. Bu dosyaların hepsi bir
.auzantı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.
- OCR genel bakış
- Bu örneğin kaynak kodu GitHubbulunabilir.
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:
- Aşağıdaki komutu bir metin düzenleyicisine kopyalayın.
- Gerektiğinde komutta aşağıdaki değişiklikleri yapın:
<subscriptionKey>değerini abonelik anahtarınızla değiştirin.- İ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ı.
- İ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.
- Bir komut istemi penceresi açın.
- 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
- Aşağıdaki komutu metin düzenleyicinize kopyalayın.
- URL'yi önceki
Operation-Locationadımda kopyalanan değerle değiştirin. - Gerektiğinde komutta aşağıdaki değişiklikleri yapın:
<subscriptionKey>değerini abonelik anahtarınızla değiştirin.
- Bir komut istemi penceresi açın.
- 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.