استدعاء واجهة برمجة تطبيقات التنبؤ

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

إشعار

يوضح هذا المستند استخدام مكتبة عميل .NET لـ C# لإرسال صورة إلى واجهة برمجة تطبيقات التنبؤ. لمزيد من المعلومات والأمثلة، راجع مرجع Prediction API.

الإعداد

نشر التكرار المدرب

من صفحة ويب Custom Vision، حدد مشروعك ثم حدد علامة التبويب Performance.

لإرسال الصور إلى Prediction API، ستحتاج أولًا إلى نشر التكرار الخاص بك للتنبؤ، والذي يمكن القيام به عن طريق تحديد Publish وتحديد اسم للتكرار المنشور. سيجعل هذا النموذج الخاص بك قابلا للوصول إلى واجهة برمجة تطبيقات التنبؤ لمورد Custom Vision Azure الخاص بك.

The performance tab is shown, with a red rectangle surrounding the Publish button.

بمجرد نشر النموذج بنجاح، سترى تسمية "منشورة" تظهر بجوار التكرار في الشريط الجانبي الأيسر، وسيظهر اسمه في وصف التكرار.

The performance tab is shown, with a red rectangle surrounding the Published label and the name of the published iteration.

الحصول على عنوان URL ومفتاح التنبؤ

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

The performance tab is shown with a red rectangle surrounding the Prediction URL button.

The performance tab is shown with a red rectangle surrounding the Prediction URL value for using an image file and the Prediction-Key value.

إرسال البيانات إلى الخدمة

يفترض هذا الدليل أنك قمت بالفعل بإنشاء كائن CustomVisionPredictionClient، المسمى predictionClient، مع مفتاح توقع الرؤية المخصصة وعنوان URL لنقطة النهاية. للحصول على إرشادات حول كيفية إعداد هذه الميزة، اتبع إحدى عمليات التشغيل السريع.

في هذا الدليل، ستستخدم صورة محلية، لذا قم بتنزيل صورة تريد إرسالها إلى النموذج المدرب. تطالب التعليمات البرمجية التالية المستخدم بتحديد مسار محلي ويحصل على bytestream للملف في هذا المسار.

Console.Write("Enter image file path: ");
string imageFilePath = Console.ReadLine();
byte[] byteData = GetImageAsByteArray(imageFilePath);

قم بتضمين أسلوب المساعد التالي:

private static byte[] GetImageAsByteArray(string imageFilePath)
{
    FileStream fileStream = new FileStream(imageFilePath, FileMode.Open, FileAccess.Read);
    BinaryReader binaryReader = new BinaryReader(fileStream);
    return binaryReader.ReadBytes((int)fileStream.Length);
}

يأخذ الأسلوب ClassifyImageAsync معرف المشروع والصورة المخزنة محليا، ويسجل الصورة مقابل النموذج المحدد.

// Make a prediction against the new project
Console.WriteLine("Making a prediction:");
var result = predictionApi.ClassifyImageAsync(project.Id, publishedModelName, byteData);

تحديد كيفية معالجة البيانات

يمكنك تكوين كيفية أداء الخدمة لعملية التسجيل اختياريا عن طريق اختيار أساليب بديلة (راجع أساليب فئة CustomVisionPredictionClient ).

يمكنك استخدام إصدار غير متزامن من الأسلوب أعلاه للتبسيط، ولكنه قد يتسبب في تأمين البرنامج لفترة زمنية ملحوظة.

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

ترجع أساليب -WithHttpMessages استجابة HTTP الأولية لاستدعاء واجهة برمجة التطبيقات.

الحصول على نتائج من الخدمة

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

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

في هذا الدليل، تعلمت كيفية إرسال الصور إلى مصنف/كاشف الصور المخصص وتلقي استجابة برمجيًا باستخدام C# SDK. بعد ذلك، تعرف على كيفية إكمال السيناريوهات الشاملة باستخدام C#، أو البدء في استخدام SDK بلغة مختلفة.