التشغيل السريع: قراءة Azure الذكاء الاصطناعي Vision v3.2 GA

إصدارات التعرف البصري على الحروف (قراءة)

هام

حدد إصدار Read الذي يناسب متطلباتك بشكل أفضل.

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

نبذة عن Azure الذكاء الاصطناعي Vision v3.2 GA Read

هل تبحث عن أحدث إصدار من Azure الذكاء الاصطناعي Vision v3.2 GA Read؟ تعد جميع تحسينات التعرف البصري على الحروف للقراءة المستقبلية جزءا من الخدمتين المذكورتين سابقا. لا توجد تحديثات أخرى على Azure الذكاء الاصطناعي Vision v3.2. لمزيد من المعلومات، راجع استدعاء واجهة برمجة تطبيقات قراءة Azure الذكاء الاصطناعي Vision 3.2 GA و Quickstart: Azure الذكاء الاصطناعي Vision v3.2 GA Read.

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

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

تلميح

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

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

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

  • اشتراك Azure - أنشئ اشتراكاً مجاناً.

  • إصدار Visual Studio IDE أو الإصدار الحالي من .NET Core.

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

  • المفتاح ونقطة النهاية من المورد الذي تقوم بإنشائه لتوصيل التطبيق الخاص بك بخدمة Azure الذكاء الاصطناعي Vision.

    1. بعد نشر مورد Azure Vision، حدد Go to resource.
    2. في قائمة التنقل اليسرى، حدد المفاتيح ونقطة النهاية.
    3. انسخ أحد المفاتيح ونقطة النهاية لاستخدامها لاحقا في التشغيل السريع.

إنشاء متغيرات البيئة

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

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

تلميح

لا تقم بتضمين المفتاح مباشرة في التعليمات البرمجية الخاصة بك، ولا تنشره بشكل عام. راجع مقالة أمان خدمات Azure الذكاء الاصطناعي لمزيد من خيارات المصادقة مثل Azure Key Vault.

لتعيين متغير البيئة للمفتاح ونقطة النهاية، افتح نافذة وحدة التحكم واتبع الإرشادات الخاصة بنظام التشغيل وبيئة التطوير.

  1. لتعيين VISION_KEY متغير البيئة، استبدل your-key بأحد مفاتيح المورد الخاص بك.
  2. لتعيين VISION_ENDPOINT متغير البيئة، استبدل your-endpoint بنقطة النهاية للمورد الخاص بك.
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint

بعد إضافة متغيرات البيئة، قد تحتاج إلى إعادة تشغيل أي برامج قيد التشغيل ستقرأ متغيرات البيئة، بما في ذلك نافذة وحدة التحكم.

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

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

    باستخدام Visual Studio، قم بإنشاء مشروع تطبيق وحدة التحكم (.NET Framework) ل C# وWindows و Console.

    بعد إنشاء مشروع جديد، قم بتثبيت مكتبة العميل:

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

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

    • من قائمة Debug ، حدد Start Debugging.

الإخراج

Azure AI 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.

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

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

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

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

استدعاء Read API

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

تلميح

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

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

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

  • اشتراك Azure - أنشئ اشتراكاً مجاناً.

  • Python 3.x.

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

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

  • المفتاح ونقطة النهاية من المورد الذي تقوم بإنشائه لتوصيل التطبيق الخاص بك بخدمة Azure الذكاء الاصطناعي Vision.

    1. بعد نشر مورد Azure Vision، حدد Go to resource.
    2. في قائمة التنقل اليسرى، حدد المفاتيح ونقطة النهاية.
    3. انسخ أحد المفاتيح ونقطة النهاية لاستخدامها لاحقا في التشغيل السريع.

إنشاء متغيرات البيئة

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

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

تلميح

لا تقم بتضمين المفتاح مباشرة في التعليمات البرمجية الخاصة بك، ولا تنشره بشكل عام. راجع مقالة أمان خدمات Azure الذكاء الاصطناعي لمزيد من خيارات المصادقة مثل Azure Key Vault.

لتعيين متغير البيئة للمفتاح ونقطة النهاية، افتح نافذة وحدة التحكم واتبع الإرشادات الخاصة بنظام التشغيل وبيئة التطوير.

  1. لتعيين VISION_KEY متغير البيئة، استبدل your-key بأحد مفاتيح المورد الخاص بك.
  2. لتعيين VISION_ENDPOINT متغير البيئة، استبدل your-endpoint بنقطة النهاية للمورد الخاص بك.
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint

بعد إضافة متغيرات البيئة، قد تحتاج إلى إعادة تشغيل أي برامج قيد التشغيل ستقرأ متغيرات البيئة، بما في ذلك نافذة وحدة التحكم.

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

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

    في نافذة وحدة التحكم، قم بتشغيل الأمر التالي:

    pip install --upgrade azure-cognitiveservices-vision-computervision
    
  2. تثبيت مكتبة الوسادة.

    pip install pillow
    
  3. إنشاء ملف تطبيق Python جديد، quickstart-file.py. ثم افتحه في المحرر أو IDE المفضل لديك.

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

       # 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")
    
  6. شغّل التطبيق باستخدام الأمر 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 Azure AI Vision quickstart.

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

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

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

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

استدعاء Read API

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

تلميح

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

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

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

  • اشتراك Azure - أنشئ اشتراكاً مجاناً.

  • الإصدار الحالي من Node.js.

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

  • المفتاح ونقطة النهاية من المورد الذي تقوم بإنشائه لتوصيل التطبيق الخاص بك بخدمة Azure الذكاء الاصطناعي Vision.

    1. بعد نشر مورد Azure Vision، حدد Go to resource.
    2. في قائمة التنقل اليسرى، حدد المفاتيح ونقطة النهاية.
    3. انسخ أحد المفاتيح ونقطة النهاية لاستخدامها لاحقا في التشغيل السريع.

إنشاء متغيرات البيئة

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

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

تلميح

لا تقم بتضمين المفتاح مباشرة في التعليمات البرمجية الخاصة بك، ولا تنشره بشكل عام. راجع مقالة أمان خدمات Azure الذكاء الاصطناعي لمزيد من خيارات المصادقة مثل Azure Key Vault.

لتعيين متغير البيئة للمفتاح ونقطة النهاية، افتح نافذة وحدة التحكم واتبع الإرشادات الخاصة بنظام التشغيل وبيئة التطوير.

  1. لتعيين VISION_KEY متغير البيئة، استبدل your-key بأحد مفاتيح المورد الخاص بك.
  2. لتعيين VISION_ENDPOINT متغير البيئة، استبدل your-endpoint بنقطة النهاية للمورد الخاص بك.
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint

بعد إضافة متغيرات البيئة، قد تحتاج إلى إعادة تشغيل أي برامج قيد التشغيل ستقرأ متغيرات البيئة، بما في ذلك نافذة وحدة التحكم.

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

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

  1. في نافذة وحدة التحكم، قم بإنشاء دليل جديد لتطبيقك، وانتقل إليه.

    mkdir myapp
    cd myapp
    
  2. شغّل الأمر npm init لإنشاء تطبيق node باستخدام ملف package.json. حدد Enter لأي مطالبات.

    npm init
    
  3. لتثبيت مكتبة العميل، قم بتثبيت حزمة ms-rest-azure و @azure/cognitiveservices-computervision npm:

    npm install ms-rest-azure
    npm install @azure/cognitiveservices-computervision
    
  4. تثبيت الوحدة النمطية غير المتزامنة:

    npm install async
    

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

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

  6. انسخ التعليمة البرمجية التالية إلى ملف index.js الخاص بك.

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

      let result = await client.read(url,{modelVersion:"2022-04-30"});
    
  8. شغّل التطبيق باستخدام الأمر 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.

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

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

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

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

استدعاء Read API

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

إشعار

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

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

  • اشتراك Azure - أنشئ اشتراكاً مجاناً.

  • تم تثبيت cURL.

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

  • المفتاح ونقطة النهاية من المورد الذي تقوم بإنشائه لتوصيل التطبيق الخاص بك بخدمة Azure الذكاء الاصطناعي Vision.

    1. بعد نشر مورد Azure Vision، حدد Go to resource.
    2. في قائمة التنقل اليسرى، حدد المفاتيح ونقطة النهاية.
    3. انسخ أحد المفاتيح ونقطة النهاية لاستخدامها لاحقا في التشغيل السريع.

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

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

استدعاء Read API

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

  1. نسخ الأمر التالي إلى محرر نص.

  2. قم بإجراء التغييرات التالية في الأمر عند الحاجة:

    1. استبدل القيمة <key> بمفتاحك.
    2. استبدال الجزء الأول من عنوان URL للطلب (https://westcentralus.api.cognitive.microsoft.com/) بالنص في عنوان URL لنقطة النهاية الخاص بك.

      إشعار

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

    3. اختياريًا، تغيير عنوان URL الصورة في نص الطلب (https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.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://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'}"

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

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

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

curl -v -X POST "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyze?model-version=2022-04-30" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription key>" --data-ascii "{'url':'https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'}"

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

  1. انسخ الأمر التالي إلى محرر النص الخاص بك.

  2. استبدل عنوان URL بالقيمة التي Operation-Location نسختها في الإجراء السابق.

  3. استبدل القيمة <key> بمفتاحك.

  4. افتح نافذة وحدة التحكم.

  5. الصق الأمر من محرر النص في نافذة وحدة التحكم، ثم قم بتشغيل الأمر.

    curl -v -X GET "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyzeResults/{operationId}" -H "Ocp-Apim-Subscription-Key: {key}" --data-ascii "{body}" 
    

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

تعود الاستجابة الناجحة في 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
              }
            ]
          }
        ]
      }
    ]
  }
}

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

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

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

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

استدعاء Read API

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

  • اشتراك Azure - أنشئ اشتراكاً مجاناً.

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

  • الاتصال إلى Vision Studio.

    • قد تحتاج إلى تسجيل الدخول.
    • بعد تسجيل الدخول، حدد عرض جميع الموارد. إذا لزم الأمر، فحدد Refresh. تحقق من توفر المورد الخاص بك.

    لمزيد من المعلومات، راجع بدء استخدام Vision Studio.

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

  1. ضمن التعرف البصري على الأحرف، حدد استخراج النص من الصور.

  2. ضمن جربه، أقر بأن هذا العرض التوضيحي يتحمل الاستخدام إلى حساب Azure الخاص بك. لمزيد من المعلومات، راجع تسعير Azure الذكاء الاصطناعي Vision.

  3. اختر صورة من المجموعة المتوفرة، أو حمل صورتك.

  4. إذا لزم الأمر، حدد Please select a resource to select your resource.

    بعد تحديد الصورة، يظهر النص المستخرج في نافذة الإخراج. يُمكنك أيضا تحديد علامة التبويب JSON لمشاهدة إخراج JSON الذي ترجعه استدعاء واجهة برمجة التطبيقات.

أسفل try-it-out experience توجد الخطوات الآتية لبدء استخدامها في تطبيقك.

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

في هذا التشغيل السريع، استخدمت Vision Studio للوصول إلـى واجهة برمجة تطبيقات القراءة. من ثم، التعرف على المزيد حول ميزات Read API.

استدعاء Read API