التشغيل السريع: استخدام مكتبة عميل التعرف البصري على الأحرف (OCR) أو واجهة برمجة تطبيقات REST

ابدأ باستخدام واجهة برمجة تطبيقات REST للقراءة في Computer Vision أو مكتبات العميل. توفر لك خدمة Read خوارزميات الذكاء الاصطناعي لاستخراج النص من الصور وإعادته كسلاسل منظمة. قم باتباع هذه الخطوات لتثبيت حزمة للتطبيق الخاص بك وتجربة نموذج التعليمات البرمجية للمهام الأساسية.

استخدم مكتبة عميل التعرف البصري على الحروف لقراءة النص المطبوع والمكتوب بخط اليد من صورة بعيدة. يمكن لخدمة التعرف الضوئي على الحروف قراءة النص المرئي في صورة وتحويله إلى دفق حرفي. لمزيد من المعلومات حول التعرف على النص، راجع نظرة عامة عن التعرف البصري على الأحرف (OCR). تستخدم التعليمات البرمجية في هذا القسم أحدث إصدار من Computer Vision SDK ل Read 3.0.

تلميح

يمكنك أيضاً استخراج نص من صورة محلية. راجع أساليب ComputerVisionClient مثل ReadInStreamAsync. أو راجع نموذج التعليمات البرمجية على GitHub لمعرفة السيناريوهات التي تتضمن صوراً محلية.

⁩الوثائق المرجعية⁧⁩⁧ | ⁩⁧⁩لحزمة كود المصدر للمكتبة⁧⁩⁧ | ⁩⁧⁩نماذج⁧⁩⁧ | ⁩⁧⁩(NuGet)⁧

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجاناً
  • إصدار Visual Studio IDE أو الإصدار الحالي من .NET Core.
  • بمجرد حصولك على اشتراك Azure، قم بإنشاء مورد Computer Vision في مدخل Microsoft Azure للحصول على المفتاح ونقطة النهاية. بعد توزيعه، انقر فوق انتقل إلى المورد.
    • تحتاج المفتاح ونقطة النهاية من المورد الذي تقوم بإنشائه لتوصيل التطبيق الخاص بك إلى خدمة Computer Vision. تلصق المفتاح ونقطة النهاية في التعليمات البرمجية أدناه لاحقًا في بداية سريعة.
    • يمكنك استخدام مستوى التسعير الحر (F0) لتجربة الخدمة، والترقية لاحقًا إلى مستوى مدفوع للإنتاج.

اقرأ النص المطبوع والمكتوب بخط اليد

  1. إنشاء تطبيق C# جديد.

    باستخدام Visual Studio، قم بإنشاء تطبيق .NET Core جديد.

    تثبيت مكتبة العميل

    بمجرد إنشاء مشروع جديد، ثبّت مكتبة العميل بالنقر بزر الماوس الأيمن فوق حل المشروع في مستكشف الحلول وتحديد Manage NuGet Packages. في مدير الحزم الذي يفتح، حدد Browse، وحدد Include prerelease، وابحث عن Microsoft.Azure.CognitiveServices.Vision.ComputerVision. حدد الإصدار 7.0.0، ثم قم بتثبيت.

  2. ابحث عن مفتاح الاشتراك ونقطة النهاية.

    انتقل إلى مدخل Azure. حالة توزيع مورد Computer Vision الذي أنشأته في قسم Prerequisites بنجاح، فانقر فوق الزر Go to Resource ضمن Next Steps. يمكنك العثور على مفتاحك ونقطة النهاية في صفحة مفتاح المورد ونقطة النهاية ضمن إدارة الموارد.

  3. من دليل المشروع، افتح الملف ⁧⁧Program.cs في المحرر المفضل لديك أو IDE. استبدال محتويات ItemController.cs بالتعليمات البرمجية التالية.

    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";
    
            private const string READ_TEXT_URL_IMAGE = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/printed_text.jpg";
    
            static void Main(string[] args)
            {
                Console.WriteLine("Azure Cognitive Services Computer Vision - .NET quickstart example");
                Console.WriteLine();
    
                ComputerVisionClient client = Authenticate(endpoint, subscriptionKey);
    
                // Extract text (OCR) from a URL image using the Read API
                ReadFileUrl(client, READ_TEXT_URL_IMAGE).Wait();
            }
    
            public static ComputerVisionClient Authenticate(string endpoint, string key)
            {
                ComputerVisionClient client =
                  new ComputerVisionClient(new ApiKeyServiceClientCredentials(key))
                  { Endpoint = endpoint };
                return client;
            }
    
            public static async Task ReadFileUrl(ComputerVisionClient client, string urlFile)
            {
                Console.WriteLine("----------------------------------------------------------");
                Console.WriteLine("READ FILE FROM URL");
                Console.WriteLine();
    
                // Read text from URL
                var textHeaders = await client.ReadAsync(urlFile);
                // After the request, get the operation location (operation ID)
                string operationLocation = textHeaders.OperationLocation;
                Thread.Sleep(2000);
    
                // Retrieve the URI where the extracted text will be stored from the Operation-Location header.
                // We only need the ID and not the full URL
                const int numberOfCharsInOperationId = 36;
                string operationId = operationLocation.Substring(operationLocation.Length - numberOfCharsInOperationId);
    
                // Extract the text
                ReadOperationResult results;
                Console.WriteLine($"Extracting text from URL file {Path.GetFileName(urlFile)}...");
                Console.WriteLine();
                do
                {
                    results = await client.GetReadResultAsync(Guid.Parse(operationId));
                }
                while ((results.Status == OperationStatusCodes.Running ||
                    results.Status == OperationStatusCodes.NotStarted));
    
                // Display the found text.
                Console.WriteLine();
                var textUrlFileResults = results.AnalyzeResult.ReadResults;
                foreach (ReadResult page in textUrlFileResults)
                {
                    foreach (Line line in page.Lines)
                    {
                        Console.WriteLine(line.Text);
                    }
                }
                Console.WriteLine();
            }
    
        }
    }
    
  4. الصق مفتاح الاشتراك ونقطة النهاية في التعليمات البرمجية حيث يشار إليها. تحتوي نقطة نهاية Computer Vision خاصتك على النموذج https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/.

    هام

    تذكر إزالة مفتاح الاشتراك من تعليمتك البرمجية عند الانتهاء، ولا تنشره على الملأ مطلقاً. للإنتاج، ضَع في اعتبارك استخدام طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها. على سبيل المثال، Azure key vault.

  5. كخطوة اختيارية، راجع كيفية تحديد إصدار النموذج. على سبيل المثال، لتحديد أحدث نموذج GA بشكل صريح، قم بتحرير ReadAsync المكالمة كما هو موضح. يستخدم تخطي المعلمة أو استخدام "latest" نموذج GA الأحدث تلقائيا.

      // Read text from URL with a specific model version
      var textHeaders = await client.ReadAsync(urlFile,null,null,"2022-04-30");
    
  6. شغّل التطبيق.

    انقر فوق الزر Debug في أعلى نافذة IDE.


المخرجات

Azure Cognitive Services Computer Vision - .NET quickstart example

----------------------------------------------------------
READ FILE FROM URL

Extracting text from URL file printed_text.jpg...


Nutrition Facts Amount Per Serving
Serving size: 1 bar (40g)
Serving Per Package: 4
Total Fat 13g
Saturated Fat 1.5g
Amount Per Serving
Trans Fat 0g
Calories 190
Cholesterol 0mg
ories from Fat 110
Sodium 20mg
nt Daily Values are based on Vitamin A 50%
calorie diet.

تنظيف الموارد

إذا كنت تريد تنظيف وإلغاء اشتراك الخدمات المعرفية، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا.

الخطوات التالية

في هذا التشغيل السريع، تعلمت كيفية تثبيت مكتبة عميل التعرف البصري على الحروف (OCR) واستخدام واجهة برمجة تطبيقات Read. بعد ذلك، التعرف على المزيد عن ميزات واجهة برمجة تطبيقات Read.

استخدم مكتبة عميل التعرف البصري على الحروف لقراءة النص المطبوع والمكتوب بخط اليد من صورة بعيدة. يمكن لخدمة التعرف الضوئي على الحروف قراءة النص المرئي في صورة وتحويله إلى دفق حرفي. لمزيد من المعلومات حول التعرف على النص، راجع نظرة عامة عن التعرف البصري على الأحرف (OCR).

تلميح

يمكنك أيضاً قراءة نص من صورة محلية. راجع أساليب ComputerVisionClientOperationsMixin مثل read_in_stream. أو راجع نموذج التعليمات البرمجية على GitHub لمعرفة السيناريوهات التي تتضمن صورًا محلية.

Reference documentation | Library source code | Package (PiPy) | Samples

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجانًا

  • Python 3.x

    • يجب أن يتضمن تثبيت Python خاصتك pip. يمكنك التحقق مما إذا كانت لديك نقطة مثبتة عن طريق تشغيل pip --version على سطر الأوامر. الحصول على نقطة عن طريق تثبيت أحدث إصدار من Python.
  • بمجرد حصولك على اشتراك Azure، قم بإنشاء مورد Computer Vision في مدخل Microsoft Azure للحصول على المفتاح ونقطة النهاية. بعد توزيعه، انقر فوق انتقل إلى المورد.

    • تحتاج المفتاح ونقطة النهاية من المورد الذي تقوم بإنشائه لتوصيل التطبيق الخاص بك إلى خدمة Computer Vision. تلصق المفتاح ونقطة النهاية في التعليمات البرمجية أدناه لاحقًا في بداية سريعة.
    • يمكنك استخدام مستوى التسعير الحر (F0) لتجربة الخدمة، والترقية لاحقًا إلى مستوى مدفوع للإنتاج.

اقرأ النص المطبوع والمكتوب بخط اليد

  1. ثبت مكتبة العميل.

    يمكنك تثبيت مكتبة العميل مع:

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

    أيضًا تثبيت مكتبة Pillow.

    pip install pillow
    
  2. إنشاء تطبيق Python جديد

    إنشاء ملف Python جديد — quickstart-file.py، على سبيل المثال. ثم افتحه في المحرر أو IDE المفضل لديك.

  3. ابحث عن مفتاح الاشتراك ونقطة النهاية.

    انتقل إلى مدخل Azure. حالة توزيع مورد Computer Vision الذي أنشأته في قسم Prerequisites بنجاح، فانقر فوق الزر Go to Resource ضمن Next Steps. يمكنك العثور على مفتاحك ونقطة النهاية في صفحة مفتاح المورد ونقطة النهاية ضمن إدارة الموارد.

  4. استبدل محتويات quickstart-file.py بالتعليمات البرمجية التالية.

    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"
    
    computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))
    '''
    END - Authenticate
    '''
    
    '''
    OCR: Read File using the Read API, extract text - remote
    This example will extract text in an image, then print results, line by line.
    This API call can also extract handwriting style text (not shown).
    '''
    print("===== Read File - remote =====")
    # Get an image with text
    read_image_url = "https://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)
    
    # Get the operation location (URL with an ID at the end) from the response
    read_operation_location = read_response.headers["Operation-Location"]
    # Grab the ID from the URL
    operation_id = read_operation_location.split("/")[-1]
    
    # Call the "GET" API and wait for it to retrieve the results 
    while True:
        read_result = computervision_client.get_read_result(operation_id)
        if read_result.status not in ['notStarted', 'running']:
            break
        time.sleep(1)
    
    # Print the detected text, line by line
    if read_result.status == OperationStatusCodes.succeeded:
        for text_result in read_result.analyze_result.read_results:
            for line in text_result.lines:
                print(line.text)
                print(line.bounding_box)
    print()
    '''
    END - Read File - remote
    '''
    
    print("End of Computer Vision quickstart.")
    
    
  5. الصق مفتاح الاشتراك ونقطة النهاية في التعليمات البرمجية حيث يشار إليها. تحتوي نقطة نهاية Computer Vision خاصتك على النموذج https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/.

    هام

    تذكر إزالة مفتاح الاشتراك من تعليمتك البرمجية عند الانتهاء، ولا تنشره على الملأ مطلقاً. للإنتاج، ضَع في اعتبارك استخدام طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها. على سبيل المثال، Azure key vault.

  6. كخطوة اختيارية، راجع كيفية تحديد إصدار النموذج. على سبيل المثال، لتحديد أحدث نموذج GA بشكل صريح، قم بتحرير العبارة read كما هو موضح. يستخدم تخطي المعلمة أو استخدام "latest" تلقائيا أحدث نموذج GA.

       # Call API with URL and raw response (allows you to get the operation location)
       read_response = computervision_client.read(read_image_url,  raw=True, model_version="2022-04-30")
    
  7. شغّل التطبيق باستخدام الأمر python المُتاح على ملف بدء التشغيل السريع خاصتك.

    python quickstart-file.py
    

المخرجات

===== Read File - remote =====
The quick brown fox jumps
[38.0, 650.0, 2572.0, 699.0, 2570.0, 854.0, 37.0, 815.0]
Over
[184.0, 1053.0, 508.0, 1044.0, 510.0, 1123.0, 184.0, 1128.0]
the lazy dog!
[639.0, 1011.0, 1976.0, 1026.0, 1974.0, 1158.0, 637.0, 1141.0]

End of Computer Vision quickstart.

تنظيف الموارد

إذا كنت تريد تنظيف وإلغاء اشتراك الخدمات المعرفية، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا.

الخطوات التالية

في هذا التشغيل السريع، تعلمت كيفية تثبيت مكتبة عميل التعرف البصري على الحروف (OCR) واستخدام واجهة برمجة تطبيقات Read. بعد ذلك، التعرف على المزيد عن ميزات واجهة برمجة تطبيقات Read.

استخدم مكتبة عميل التعرف البصري على الحروف لقراءة النص المطبوع والمكتوب بخط اليد من صورة بعيدة. يمكن لخدمة التعرف الضوئي على الحروف قراءة النص المرئي في صورة وتحويله إلى دفق حرفي. لمزيد من المعلومات حول التعرف على النص، راجع نظرة عامة عن التعرف البصري على الأحرف (OCR).

تلميح

يمكنك أيضا قراءة النص في صورة محلية. راجع أساليب ComputerVision، مثل قراءة. أو راجع نموذج التعليمات البرمجية على GitHub لمعرفة السيناريوهات التي تتضمن صوراً محلية.

وثائق مرجعية | التعليمة البرمجية المصدر للمكتبة |البيانات الاصطناعية (Maven) | نماذج

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجاني
  • الإصدار الحالي من مجموعة موادJava Development (JDK)
  • أداة إنشاء Gradleأو مدير تبعية آخر.
  • بمجرد أن يكون لديك اشتراك Azure، قم بإنشاء مورد Computer Vision في مدخل Microsoft Azure للحصول على المفتاح ونقطة النهاية. بعد توزيعه، انقر فوق انتقل إلى المورد.
    • تحتاج المفتاح ونقطة النهاية من المورد الذي تقوم بإنشائه لتوصيل التطبيق الخاص بك إلى خدمة Computer Vision. تلصق المفتاح ونقطة النهاية في التعليمات البرمجية أدناه لاحقًا في بداية سريعة.
    • يمكنك استخدام مستوى التسعير الحر (F0) لتجربة الخدمة، والترقية لاحقًا إلى مستوى مدفوع للإنتاج.

اقرأ النص المطبوع والمكتوب بخط اليد

  1. إنشاء مشروع Gradle جديد.

    في نافذة وحدة التحكم (مثل cmd أو PowerShell أو Bash)، أنشئ دليلاً جديداً لتطبيقك وانتقل إليه.

    mkdir myapp && cd myapp
    

    بادر بتشغيل الأمر gradle init من دليل العمل خاصتك. سينشئ هذا الأمر ملفات بناء أساسية لـ Gradle، بما في ذلك build.gradle.kts، والذي يجري استخدامه في وقت التشغيل لإنشاء تطبيقك وتكوينه.

    gradle init --type basic
    

    عند مطالبتك باختيار DSL، حدِّد Kotlin.

  2. ثبت مكتبة العميل.

    يستخدم هذا التشغيل السريع مدير تبعية Gradle. يمكنك العثور على مكتبة العميل ومعلومات مديري التبعية الآخرين على Maven Central Repository.

    حدد build.gradle.kts وافتحه باستخدام IDE أو محرر النص المفضل لديك. ثم انسخ في تكوين البنية التالية. يُعرِّف هذا التكوين المشروع على أنه تطبيق Java الذي تُعد نقطة دخوله مُمثلة في فئة ComputerVisionQuickstart. تستورد مكتبة رؤية الكمبيوتر.

    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")
    }
    
  3. إعداد صورة اختبار.

    إنشاء مجلد الموارد / في مجلد src/main/ من مشروعك، وإضافة صورة ترغب في قراءة النص منها. يمكنك تحميل صورة عينة لاستخدامها هنا.

  4. إنشاء ملف Java.

    من دليل العمل خاصتك، بادر بتشغيل الأمر التالي لإنشاء مجلد مصدر المشروع:

    mkdir -p src/main/java
    

    انتقِل إلى المجلد الجديد وأنشِئ ملفًا باسم ComputerVisionQuickstart.java. افتحه في المحرر المفضل أو IDE.

  5. ابحث عن مفتاح الاشتراك ونقطة النهاية.

    انتقل إلى مدخل Azure. حالة توزيع مورد Computer Vision الذي أنشأته في قسم Prerequisites بنجاح، فانقر فوق الزر Go to Resource ضمن Next Steps. يمكنك العثور على مفتاحك ونقطة النهاية في صفحة مفتاح المورد ونقطة النهاية ضمن إدارة الموارد.

  6. استبدل محتويات الملف بالتعليمات البرمجية التالية. تحدد هذه التعليمة البرمجية أسلوبا، ReadFromFile، يأخذ مسار ملف محلي ويطبع نص الصورة إلى وحدة التحكم.

    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";
    
        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 remote image
            ReadFromUrl(compVisClient);
        }
    
        public static ComputerVisionClient Authenticate(String subscriptionKey, String endpoint){
            return ComputerVisionManager.authenticate(subscriptionKey).withEndpoint(endpoint);
        }
        
        /**
         * OCR with READ : Performs a Read Operation
         * @param client instantiated vision client
         */
        private static void ReadFromUrl(ComputerVisionClient client) {
            System.out.println("-----------------------------------------------");
            
            String remoteTextImageURL = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/printed_text.jpg";
            System.out.println("Read with URL: " + remoteTextImageURL);
    
            try {
                // Cast Computer Vision to its implementation to expose the required methods
                ComputerVisionImpl vision = (ComputerVisionImpl) client.computerVision();
    
                // Read in remote image and response header
                ReadHeaders responseHeader = vision.readWithServiceResponseAsync(remoteTextImageURL, null)
                .toBlocking()
                .single()
                .headers();
    
                // Extract the operation Id from the operationLocation header
                String operationLocation = responseHeader.operationLocation();
                System.out.println("Operation Location:" + operationLocation);
    
                getAndPrintReadResult(vision, operationLocation);
    
            } catch (Exception e) {
                System.out.println(e.getMessage());
                e.printStackTrace();
            }
        }
    
        /**
         * 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");
        }
    
        /**
         * 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;
                    }
                }
            }
    
            // 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());
            }
        }
    }
    
  7. الصق مفتاح الاشتراك ونقطة النهاية في التعليمات البرمجية أعلاه حيث يشار إليها. تحتوي نقطة نهاية Computer Vision خاصتك على النموذج https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/.

    هام

    تذكر إزالة مفتاح الاشتراك من تعليمتك البرمجية عند الانتهاء، ولا تنشره على الملأ مطلقاً. للإنتاج، ضَع في اعتبارك استخدام طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها. على سبيل المثال، Azure key vault.

  8. قم بتغيير قيمة localFilePath لمطابقة ملف الصورة الذي قمت بتنزيله.

  9. بناء التطبيق مع الأمر التالي:

    gradle build
    

    ثم قم بتشغيل التطبيق باستخدام gradle run الأمر :

    gradle run
    

تنظيف الموارد

إذا كنت تريد تنظيف وإلغاء اشتراك الخدمات المعرفية، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا.

الخطوات التالية

في هذا التشغيل السريع، تعلمت كيفية تثبيت مكتبة عميل التعرف البصري على الحروف (OCR) واستخدام واجهة برمجة تطبيقات Read. بعد ذلك، التعرف على المزيد عن ميزات واجهة برمجة تطبيقات Read.

استخدم مكتبة عميل التعرف البصري على الحروف (OCR) لقراءة النص المطبوع والمكتوب بخط اليد باستخدام واجهة برمجة تطبيقات Read. يمكن لخدمة التعرف الضوئي على الحروف قراءة النص المرئي في صورة وتحويله إلى دفق حرفي. لمزيد من المعلومات حول التعرف على النص، راجع نظرة عامة عن التعرف البصري على الأحرف (OCR).

تلميح

يمكنك أيضاً قراءة نص من صورة محلية. راجع أساليب ComputerVisionClient مثل readInStream. أو راجع نموذج التعليمات البرمجية على GitHub لمعرفة السيناريوهات التي تتضمن صوراً محلية.

الوثائق المرجعية | التعليمات البرمجية لمصدر المكتبة | الحزمة (npm) | العينات

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجانًا
  • الإصدار الحالي من Node.js
  • بمجرد أن يكون لديك اشتراك Azure، قم بإنشاء مورد Computer Vision في مدخل Microsoft Azure للحصول على المفتاح ونقطة النهاية. بعد توزيعه، انقر فوق انتقل إلى المورد.
    • تحتاج المفتاح ونقطة النهاية من المورد الذي تقوم بإنشائه لتوصيل التطبيق الخاص بك إلى خدمة Computer Vision. تلصق المفتاح ونقطة النهاية في التعليمات البرمجية أدناه لاحقًا في بداية سريعة.
    • يمكنك استخدام مستوى التسعير الحر (F0) لتجربة الخدمة، والترقية لاحقًا إلى مستوى مدفوع للإنتاج.

اقرأ النص المطبوع والمكتوب بخط اليد

  1. قم بإنشاء تطبيق Node.js جديد.

    في نافذة وحدة التحكم (مثل cmd، أو PowerShell، أو Bash)، أنشئ دليلاً جديدًا لتطبيقك، وانتقل إليه.

    mkdir myapp && cd myapp
    

    شغل npm initالأمر لإنشاء تطبيق node باستخدام ملف package.json.

    npm init
    

    تثبيت مكتبة العميل

    تثبيت حزم ms-rest-azure و @azure/cognitiveservices-computervision حزمة NPM:

    npm install @azure/cognitiveservices-computervision
    

    بادر أيضاً بتثبيت الوحدة غير المتزامنة:

    npm install async
    

    تحديث ملف package.json لتطبيقك باستخدام التبعيات.

    إنشاء ملف جديد index.js، وفتحه في محرر النصوص.

  2. ابحث عن مفتاح الاشتراك ونقطة النهاية.

    انتقل إلى مدخل Azure. حالة توزيع مورد Computer Vision الذي أنشأته في قسم Prerequisites بنجاح، فانقر فوق الزر Go to Resource ضمن Next Steps. يمكنك العثور على مفتاحك ونقطة النهاية في صفحة مفتاح المورد ونقطة النهاية ضمن إدارة الموارد.

  3. الصق التعليمات البرمجية التالية في ملف index.js .

    'use strict';
    
    const async = require('async');
    const fs = require('fs');
    const https = require('https');
    const path = require("path");
    const createReadStream = require('fs').createReadStream
    const sleep = require('util').promisify(setTimeout);
    const ComputerVisionClient = require('@azure/cognitiveservices-computervision').ComputerVisionClient;
    const ApiKeyCredentials = require('@azure/ms-rest-js').ApiKeyCredentials;
    /**
     * AUTHENTICATE
     * This single client is used for all examples.
     */
    const key = 'PASTE_YOUR_COMPUTER_VISION_SUBSCRIPTION_KEY_HERE';
    const endpoint = 'PASTE_YOUR_COMPUTER_VISION_ENDPOINT_HERE';
    
    const computerVisionClient = new ComputerVisionClient(
      new ApiKeyCredentials({ inHeader: { 'Ocp-Apim-Subscription-Key': key } }), endpoint);
    /**
     * END - Authenticate
     */
    
    function computerVision() {
      async.series([
        async function () {
    
          /**
           * OCR: READ PRINTED & HANDWRITTEN TEXT WITH THE READ API
           * Extracts text from images using OCR (optical character recognition).
           */
          console.log('-------------------------------------------------');
          console.log('READ PRINTED, HANDWRITTEN TEXT AND PDF');
          console.log();
    
          // URL images containing printed and/or handwritten text. 
          // The URL can point to image files (.jpg/.png/.bmp) or multi-page files (.pdf, .tiff).
          const printedTextSampleURL = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/printed_text.jpg';
    
          // Recognize text in printed image from a URL
          console.log('Read printed text from URL...', printedTextSampleURL.split('/').pop());
          const printedResult = await readTextFromURL(computerVisionClient, printedTextSampleURL);
          printRecText(printedResult);
    
          // Perform read and await the result from URL
          async function readTextFromURL(client, url) {
            // To recognize text in a local image, replace client.read() with readTextInStream() as shown:
            let result = await client.read(url);
            // Operation ID is last path segment of operationLocation (a URL)
            let operation = result.operationLocation.split('/').slice(-1)[0];
    
            // Wait for read recognition to complete
            // result.status is initially undefined, since it's the result of read
            while (result.status !== "succeeded") { await sleep(1000); result = await client.getReadResult(operation); }
            return result.analyzeResult.readResults; // Return the first page of result. Replace [0] with the desired page if this is a multi-page file such as .pdf or .tiff.
          }
    
          // Prints all text from Read result
          function printRecText(readResults) {
            console.log('Recognized text:');
            for (const page in readResults) {
              if (readResults.length > 1) {
                console.log(`==== Page: ${page}`);
              }
              const result = readResults[page];
              if (result.lines.length) {
                for (const line of result.lines) {
                  console.log(line.words.map(w => w.text).join(' '));
                }
              }
              else { console.log('No recognized text.'); }
            }
          }
    
          /**
           * 
           * Download the specified file in the URL to the current local folder
           * 
           */
          function downloadFilesToLocal(url, localFileName) {
            return new Promise((resolve, reject) => {
              console.log('--- Downloading file to local directory from: ' + url);
              const request = https.request(url, (res) => {
                if (res.statusCode !== 200) {
                  console.log(`Download sample file failed. Status code: ${res.statusCode}, Message: ${res.statusMessage}`);
                  reject();
                }
                var data = [];
                res.on('data', (chunk) => {
                  data.push(chunk);
                });
                res.on('end', () => {
                  console.log('   ... Downloaded successfully');
                  fs.writeFileSync(localFileName, Buffer.concat(data));
                  resolve();
                });
              });
              request.on('error', function (e) {
                console.log(e.message);
                reject();
              });
              request.end();
            });
          }
    
          /**
           * END - Recognize Printed & Handwritten Text
           */
          console.log();
          console.log('-------------------------------------------------');
          console.log('End of quickstart.');
    
        },
        function () {
          return new Promise((resolve) => {
            resolve();
          })
        }
      ], (err) => {
        throw (err);
      });
    }
    
    computerVision();
    
  4. الصق مفتاح الاشتراك ونقطة النهاية في التعليمات البرمجية أعلاه حيث يشار إليها. تحتوي نقطة نهاية Computer Vision خاصتك على النموذج https://<your_computer_vision_resource_name>.cognitiveservices.azure.com/.

    هام

    تذكر إزالة مفتاح الاشتراك من تعليمتك البرمجية عند الانتهاء، ولا تنشره على الملأ مطلقاً. للإنتاج، ضَع في اعتبارك استخدام طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها. على سبيل المثال، Azure key vault.

  5. كخطوة اختيارية، راجع كيفية تحديد إصدار النموذج. على سبيل المثال، لتحديد أحدث نموذج GA بشكل صريح، قم بتحرير العبارة read كما هو موضح. يستخدم تخطي المعلمة أو استخدام "latest" نموذج GA الأحدث تلقائيا.

      let result = await client.read(url,{modelVersion:"2022-04-30"});
    
  6. شغّل التطبيق باستخدام الأمر node المُتاح على ملف بدء التشغيل السريع خاصتك.

    node index.js
    

المخرجات

-------------------------------------------------
READ PRINTED, HANDWRITTEN TEXT AND PDF

Read printed text from URL... printed_text.jpg
Recognized text:
Nutrition Facts Amount Per Serving
Serving size: 1 bar (40g)
Serving Per Package: 4
Total Fat 13g
Saturated Fat 1.5g
Amount Per Serving
Trans Fat 0g
Calories 190
Cholesterol 0mg
ories from Fat 110
Sodium 20mg
nt Daily Values are based on Vitamin A 50%
calorie diet.

-------------------------------------------------
End of quickstart.

تنظيف الموارد

إذا كنت تريد تنظيف وإلغاء اشتراك الخدمات المعرفية، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا.

الخطوات التالية

في هذا التشغيل السريع، تعلمت كيفية تثبيت مكتبة عميل التعرف البصري على الحروف (OCR) واستخدام واجهة برمجة تطبيقات Read. بعد ذلك، التعرف على المزيد عن ميزات واجهة برمجة تطبيقات Read.

استخدم واجهة برمجة تطبيقات REST للتعرف الضوئي على الأحرف لقراءة النص المطبوع والمكتوب بخط اليد.

ملاحظة

يستخدم بداية سريعة هذا أوامر cURL لاستدعاء واجهة برمجة تطبيقات REST. يمكنك أيضاً استدعاء REST API باستخدام لغة برمجة. راجع نماذج GitHub للحصول على أمثلة في C#‎وPythonوJavaوJavaScript.

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجانًا
  • بمجرد حصولك على اشتراك Azure، قم بإنشاء مورد Computer Vision في مدخل Microsoft Azure للحصول على المفتاح ونقطة النهاية. بعد توزيعه، انقر فوق انتقل إلى المورد.
    • تحتاج المفتاح ونقطة النهاية من المورد الذي تقوم بإنشائه لتوصيل التطبيق الخاص بك إلى خدمة Computer Vision. تلصق المفتاح ونقطة النهاية في التعليمات البرمجية أدناه لاحقًا في بداية سريعة.
    • يمكنك استخدام مستوى التسعير الحر (F0) لتجربة الخدمة، والترقية لاحقًا إلى مستوى مدفوع للإنتاج.
  • cURL مُثبت

استخراج النص المطبوع والمكتوب بخط اليد

يمكن لخدمة التعرف البصري على الحروف استخراج نص مرئي في صورة أو مستند وتحويله إلى دفق أحرف. لمزيد من المعلومات حول استخراج النص، راجع Optical character recognition (OCR) overview.

استدعاء Read API

لإنشاء النموذج وتشغيله، قم بالخطوات التالية:

  1. نسخ الأمر التالي إلى محرر نص.
  2. قم بإجراء التغييرات التالية في الأمر عند الحاجة:
    1. استبدال قيمة <subscriptionKey> بمفتاح الاشتراك الخاص بك.
    2. استبدال الجزء الأول من عنوان URL للطلب (westcentralus) بالنص في عنوان URL لنقطة النهاية الخاص بك.

      ملاحظة

      الموارد الجديدة التي تم إنشاؤها بعد 1 يوليو 2019 ستستخدم أسماء النطاقات الفرعية المخصصة. لمزيد من المعلومات وقائمة كاملة بنقاط الانتهاء الإقليمية، راجع أسماء النطاقات الفرعية المخصصة للخدمات المعرفية.

    3. اختياريًا، تغيير عنوان URL الصورة في نص الطلب (https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png\) إلى URL صورة مختلفة لتحليلها.
  3. افتح نافذة موجه الأوامر.
  4. الصق الأمر من محرر النص في إطار موجه الأوامر ثم قم بتشغيل الأمر.
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\"}"

تتضمن الاستجابة Operation-Location رأس الصفحة، والتي تكون قيمته ذات عنوان URL مميز. يمكنك استخدام URL هذا للاستعلام عن نتائج عملية القراءة. ينتهي عنوان URL في غضون 48 ساعة.

اختياريا، حدد إصدار النموذج

كخطوة اختيارية، راجع كيفية تحديد إصدار النموذج. على سبيل المثال، لتحديد أحدث نموذج GA بشكل صريح، استخدم model-version=2022-04-30 كمعلمة. يستخدم تخطي المعلمة أو استخدام model-version=latest نموذج GA الأحدث تلقائيا.

curl -v -X POST "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyze?model-version=2022-04-30" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription key>" --data-ascii "{\"url\":\"https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png\"}"

احصل على نتائج القراءة

  1. انسخ الأمر التالي إلى محرر النص الخاص بك.
  2. استبدل عنوان URL بالقيمة التي Operation-Location قمت بنسخها في الخطوة السابقة.
  3. قم بإجراء التغييرات التالية في الأمر عند الحاجة:
    1. استبدل قيمة <subscriptionKey> بمفتاح الاشتراك الخاص بك.
  4. افتح نافذة موجه الأوامر.
  5. الصق الأمر من محرر النص في إطار موجه الأوامر ثم قم بتشغيل الأمر.
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}" 

فحص الاستجابة

تعود الاستجابة الناجحة في JSON. يحلل نموذج التطبيق ويعرض استجابة ناجحة في إطار موجه الأوامر، مشابهة للمثال التالي:

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

الخطوات التالية

في بداية سريعة هذا، تعلمت كيفية استدعاء واجهة برمجة تطبيقات Read REST. من ثم، التعرف على المزيد حول ميزات Read API.