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

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

يمكنك أيضا استخدام تخزين Azure لتخزين نسخ احتياطية من النماذج المنشورة.

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

إشعار

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

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

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

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

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

  • إذا كنت تخطط لاستخدام ميزة النسخ الاحتياطي للنموذج، فحدد دور Storage Blob Data Contributor، وأضف مورد تدريب Custom Vision كعضو. حدد Review + assign للإكمال.
  • إذا كنت تخطط لاستخدام ميزة قائمة انتظار الإعلامات، فحدد دور مساهم بيانات قائمة انتظار التخزين، وأضف مورد تدريب Custom Vision كعضو. حدد Review + assign للإكمال.

للمساعدة في تعيينات الأدوار، راجع تعيين أدوار Azure باستخدام مدخل Microsoft Azure.

الحصول على عناوين محدد مواقع الويب للتكامل

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

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

صفحة قائمة انتظار تخزين Azure

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

صفحة خصائص حاوية التخزين Azure

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

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

عند استدعاء CreateProject API، أضف المعلمات الاختيارية exportModelContainerUri وnotificationQueueUri. قم بتعيين قيم محدد مواقع الويب التي حصلت عليها في القسم السابق.

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

إذا تلقيت استجابة 200/OK، فهذا يعني أنه تم إعداد عناوين محدد مواقع الويب بنجاح. يجب أن تشاهد قيم محدد مواقع الويب الخاصة بك في استجابة 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 الخاص بك.

في الحاوية المعينة، يجب أن يكون هناك كائن ثنائي كبير الحجم للاختبار داخل مجلد 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" على عنوان محدد مواقع الويب لنموذج النسخ الاحتياطي المخزن في حاويتك، بافتراض أنك قمت بدمج إعلامات قائمة الانتظار في البداية. إذا لم تقم بذلك، فسيعرض الحقل "modelUri" عنوان محدد مواقع الويب لـ SAS للكائن الثنائي كبير الحجم لنموذج Custom Vision.

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

في هذا الدليل، تعلمت كيفية نسخ مشروع ونسخه احتياطيًا بين موارد Custom Vision. بعد ذلك، استكشف الوثائق المرجعية لواجهة برمجة التطبيقات لمعرفة ما يمكنك فعله باستخدام ميزة Custom Vision.