دمج تخزين Azure للإعلامات والنسخ الاحتياطي

يمكنك دمج مشروع Custom Vision مع قائمة انتظار مخزن البيانات الثنائية كبيرة الحجم لـAzure blob من أجل الحصول على إشعارات دفع لنشاط تدريب/تصدير المشروع ونسخ احتياطية من النماذج المنشورة. تُعد هذه الميزة مفيدة لتجنب التحقق باستمرار من الخدمة للحصول على نتائج عند تشغيل عمليات طويلة. وبدلاً من ذلك، يمكنك دمج إعلامات قائمة انتظار التخزين في سير العمل.

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

ملاحظة

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

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

إعداد تكامل تخزين Azure

انتقل إلى مورد التدريب على الرؤية المخصصة على مدخل Azure، وحدد صفحة الهوية، وقم بتمكين الهوية المدارة المعينة للنظام .

بعد ذلك، انتقل إلى مورد التخزين في مدخل Azure. انتقل إلى صفحة التحكم في الوصول (IAM ) وحدد إضافة تعيين دور (معاينة). ثم أضف تعيين دور لميزة التكامل أو كليهما:

  • إذا كنت تخطط لاستخدام ميزة النسخ الاحتياطي للطراز، فحدد دور المساهم في بيانات كتلة التخزين ، وأضف مورد تدريب الرؤية المخصصة كعضو. حدد مراجعة + تعيين لإكمال.
  • إذا كنت تخطط لاستخدام ميزة قائمة انتظار الإشعارات، فحدد دور المساهم في بيانات قائمة انتظار التخزين ، وأضف مورد تدريب الرؤية المخصصة كعضو. حدد مراجعة + تعيين لإكمال.

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

الحصول على عناوين URL للتكامل

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

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

Azure storage queue page

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

Azure storage container properties page

دمج مشروع الرؤية المخصصة

الآن بعد أن أصبح لديك عناوين URL للتكامل، يمكنك إنشاء مشروع Custom Vision جديد يدمج ميزات Azure Storage. يمكنك أيضا تحديث مشروع موجود لإضافة الميزات.

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

عند استدعاء واجهة برمجة تطبيقات CreateProject ، أضف المعلمات الاختيارية exportModelContainerUriوالإعلامQueueUri. عين قيم عناوين URL التي حصلت عليها في القسم السابق.

curl -v -X POST "{endpoint}/customvision/v3.3/Training/projects?exportModelContainerUri={inputUri}&notificationQueueUri={inputUri}&name={inputName}"
-H "Training-key: {subscription key}"

إذا تلقيت ردا 200/OK ، فهذا يعني أنه تم إعداد عناوين URL بنجاح. من المفترض أن ترى قيم عناوين URL في استجابة JSON أيضا:

{
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "string",
  "description": "string",
  "settings": {
    "domainId": "00000000-0000-0000-0000-000000000000",
    "classificationType": "Multiclass",
    "targetExportPlatforms": [
      "CoreML"
    ],
    "useNegativeSet": true,
    "detectionParameters": "string",
    "imageProcessingSettings": {
      "augmentationMethods": {}
},
"exportModelContainerUri": {url}
"notificationQueueUri": {url}
  },
  "created": "string",
  "lastModified": "string",
  "thumbnailUri": "string",
  "drModeEnabled": true,
  "status": "Succeeded"
}

تحديث المشروع الحالي

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

curl -v -X PATCH "{endpoint}/customvision/v3.3/Training/projects/{projectId}"
-H "Content-Type: application/json"
-H "Training-key: {subscription key}"

--data-ascii "{body}" 

قم بتعيين نص الطلب (body) إلى تنسيق JSON التالي ، وملء القيم المناسبة ل exportModelContainerUriوالإخطارQueueUri:

{
  "name": "string",
  "description": "string",
  "settings": {
    "domainId": "00000000-0000-0000-0000-000000000000",
    "classificationType": "Multiclass",
    "targetExportPlatforms": [
      "CoreML"
    ],
    "imageProcessingSettings": {
      "augmentationMethods": {}
},
"exportModelContainerUri": {url}
"notificationQueueUri": {url}

  },
  "status": "Succeeded"
}

إذا تلقيت ردا 200/OK ، فهذا يعني أنه تم إعداد عناوين URL بنجاح.

تحقق من الاتصال

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

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

في قائمة انتظار الإشعارات، من المفترض أن ترى إعلام اختبار بالتنسيق التالي:

{
"version": "1.0" ,
"type": "ConnectionTest",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000"
    }
}

الحصول على إشعارات الأحداث

عندما تكون مستعدا، اتصل بواجهة برمجة تطبيقات TrainProject في مشروعك للقيام بعملية تدريب عادية.

في قائمة انتظار إشعارات مساحة التخزين، ستتلقى إشعارا بمجرد انتهاء التدريب:

{
"version": "1.0" ,
"type": "Training",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000",
    "iterationId": "00000000-0000-0000-0000-000000000000",
    "trainingStatus": "TrainingCompleted"
    }
}

قد يكون الحقل "trainingStatus" إما "TrainingCompleted" أو "TrainingFailed". الحقل "iterationId" هو معرف النموذج المدرب.

الحصول على نسخ احتياطية لتصدير النموذج

عندما تكون مستعدا، اتصل بواجهة برمجة تطبيقات ExportIteration لتصدير نموذج مدرب إلى نظام أساسي محدد.

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

{projectId} - {iterationId}.{platformType}

أيضا، ستتلقى إشعارا في قائمة الانتظار عند انتهاء التصدير.

{
"version": "1.0" ,
"type": "Export",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000",
    "iterationId": "00000000-0000-0000-0000-000000000000",
    "exportStatus": "ExportCompleted",
    "modelUri": {url}
    }
}

قد يكون الحقل "exportStatus" إما "ExportCompleted" أو "ExportFailed". سيحتوي "modelUri" الحقل على عنوان URL لنموذج النسخ الاحتياطي المخزن في الحاوية الخاصة بك ، على افتراض أنك قمت بدمج إشعارات قائمة الانتظار في البداية. إذا لم تقم بذلك، فسيعرض الحقل "modelUri" عنوان URL ل SAS لنقطة نموذج الرؤية المخصصة.

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

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