نشر تطبيق ويب Spatial Analysis

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

في هذا البرنامج التعليمي، ستتعلم كيفية:

  • قم بتوزيع حاوية التحليل المكاني
  • تكوين العملية والكاميرا
  • تكوين اتصال IoT Hub في تطبيق الويب
  • نشر واختبار تطبيق الويب

سيعرض التطبيق السيناريوهات التالية:

  • عدد الأشخاص الذين يدخلون ويخرجون من مساحة/مخزن
  • عدد الأشخاص الذين يدخلون ويخرجون من منطقة/منطقة تسجيل الخروج والوقت الذي يقضيه في خط الخروج (وقت الإقامة)
  • عدد الأشخاص الذين يرتدون أقنعة الوجه
  • عدد الأشخاص الذين ينتهكون إرشادات التباعد الاجتماعي

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

قم بتوزيع حاوية التحليل المكاني

اتبع إعداد الكمبيوتر المضيف لتكوين الكمبيوتر المضيف وتوصيل جهاز IoT Edge بـ Azure IoT Hub.

قم بتوزيع خدمة Azure IoT Hub في اشتراكك

أولاً، قم بإنشاء مثيل لخدمة Azure IoT Hub إما مع مستوى الأسعار القياسي (S1) أو المستوى المجاني (S0). اتبع هذه الإرشادات لإنشاء هذا المثيل باستخدام Azure CLI.

املأ المعلمات المطلوبة:

  • Subscription: اسم أو معرف اشتراك Azure الخاص بك
  • Resource group: أنشئ اسماً لمجموعة الموارد الخاصة بك
  • Iot Hub Name: أنشئ اسماً لمركز IoT الخاص بك
  • IoTHub Name: اسم IoT Hub الذي أنشأته
  • Edge Device Name: أنشئ اسماً لجهاز Edge الخاص بك
az login
az account set --subscription <name or ID of Azure Subscription>
az group create --name "<Resource Group Name>" --location "WestUS"

az iot hub create --name "<IoT Hub Name>" --sku S1 --resource-group "test-resource-group"

az iot hub device-identity create --hub-name "<IoT Hub Name>" --device-id "<Edge Device Name>" --edge-enabled

قم بتوزيع الحاوية على Azure IoT Edge على الكمبيوتر المضيف

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

تعيين متغيرات البيئة

تم بالفعل تعيين معظم متغيرات البيئة لوحدة IoT Edge في نموذج ملفات DeploymentManifest.json المرتبط أعلاه. في الملف، ابحث عن متغيري البيئة ENDPOINT وAPIKEY الموضحين أدناه. استبدل القيم بـ Endpoint URI ومفتاح API الذي أنشأته سابقاً. تأكد من تعيين قيمة اتفاقية ترخيص المستخدم النهائي على "قبول".

"EULA": { 
    "value": "accept"
},
"BILLING":{ 
    "value": "<Use the endpoint from your Vision resource>"
},
"APIKEY":{
    "value": "<Use a key from your Vision resource>"
}

تكوين معلمات العملية

إذا كنت تستخدم نموذج DeploymentManifest.json الذي يحتوي بالفعل على جميع التكوينات المطلوبة (العمليات وعناوين url لملف الفيديو المسجل والمناطق وما إلى ذلك)، يمكنك التخطي إلى تنفيذ التوزيع الجزء.

الآن وبعد اكتمال التكوين الأولي لحاوية التحليل المكاني، فإن الخطوة التالية هي تكوين معلمات العمليات وإضافتها إلى التوزيع.

تتمثل الخطوة الأولى في تحديث نموذج DeploymentManifest.json وتكوين العملية المطلوبة. على سبيل المثال، يتم عرض تكوين cognitiveservices.vision.spatialanalysis-personcount أدناه:

"personcount": {
    "operationId": "cognitiveservices.vision.spatialanalysis-personcount",
    "version": 1,
    "enabled": true,
    "parameters": {
        "VIDEO_URL": "<Replace RTSP URL here>",
        "VIDEO_SOURCE_ID": "<Replace with friendly name>",
        "VIDEO_IS_LIVE":true,
        "DETECTOR_NODE_CONFIG": "{ \"gpu_index\": 0 }",
        "SPACEANALYTICS_CONFIG": "{\"zones\":[{\"name\":\"queue\",\"polygon\":[<Replace with your values>], \"events\": [{\"type\":\"count\"}], \"threshold\":<use 0 for no threshold.}]}"
    }
},

بعد تحديث بيان التوزيع، اتبع إرشادات الشركة المصنعة للكاميرا لتثبيت الكاميرا وتكوين عنوان url للكاميرا وتكوين اسم المستخدم وكلمة المرور.

بعد ذلك، قم بتعيين VIDEO_URL على عنوان URL الخاص بـ RTSP للكاميرا، ومعلومات تسجيل الدخول للاتصال بالكاميرا.

إذا كان جهاز الحافة يحتوي على أكثر من GPU، فحدد GPU الذي تريد تشغيل هذه العملية عليه. تأكد من موازنة تحميل العمليات حيث لا يوجد أكثر من 8 عمليات تعمل على GPU واحدة في المرة الواحدة.

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

هذا نموذج لإطار فيديو يوضح كيفية حساب إحداثيات الرأس لإطار بحجم 1920/1080. Sample video frame

يمكنك أيضاً تحديد حد الثقة عند حساب الأشخاص المكتشفين وإنشاء الأحداث. عيّن الحد على 0 إذا كنت تريد إخراج جميع الأحداث.

تنفيذ التوزيع

الآن وقد اكتمل بيان التوزيع، استخدم هذا الأمر في Azure CLI لتوزيع الحاوية على الكمبيوتر المضيف كوحدة IoT Edge.

az login
az extension add --name azure-iot
az iot edge set-modules --hub-name "<IoT Hub name>" --device-id "<IoT Edge device name>" --content DeploymentManifest.json -–subscription "<subscriptionId>"

املأ المعلمات المطلوبة:

  • اسم مركز IoT: اسم مركز Azure IoT الخاص بك
  • DeploymentManifest.json: اسم ملف التوزيع الخاص بك
  • اسم جهاز IoT Edge: اسم جهاز IoT Edge للكمبيوتر المضيف
  • الاشتراك: معرف اشتراكك أو اسمك

سيبدأ هذا الأمر التوزيع، ويمكنك عرض حالة التوزيع في مثيل Azure IoT Hub في مدخل Microsoft Azure. قد تظهر الحالة كـ 417 - لم يتم تعيين تكوين توزيع الجهاز حتى ينتهي الجهاز من تنزيل صور الحاوية ويبدأ التشغيل.

تحقق من أن التوزيع كان ناجحاً

حدد موقع Runtime Status في إعدادات وحدة IoT Edge النمطية لوحدة التحليل المكاني في مثيل IoT Hub على مدخل Microsoft Azure. يجب أن تذكر القيمة المطلوبة والقيمة المسجلةلحالة وقت التشغيلRunning. انظر أدناه لمعرفة الشكل الذي سيبدو عليه هذا في مدخل Microsoft Azure.

Example deployment verification

في هذه المرحلة، تقوم حاوية التحليل المكاني بتشغيل العملية. إنها ترسل نتائج تحليلات AI للعمليات وتوجه هذه النتائج المعرفية كقياس عن بعد إلى مثيل Azure IoT Hub. لتكوين كاميرات إضافية، يمكنك تحديث ملف بيان التوزيع وتنفيذ التوزيع مرة أخرى.

إنشاء تطبيق الويب

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

إنشاء صورة Docker

اتبع الدليل لإنشاء الصورة ودفعها إلى Azure Container Registry في اشتراكك.

إعداد حاوية docker

لتثبيت الحاوية، أنشئ خدمة تطبيقات Azure جديدة واملأ المعلمات المطلوبة. ثم انتقل إلى علامة التبويب Docker وحدد Single Container، ثم Azure Container Registry. استخدم مثيل Azure Container Registry حيث دفعت الصورة أعلاه.

Enter image details

بعد إدخال المعلمات أعلاه، حدد Review+Create وأنشئ التطبيق.

تكوين التطبيق

انتظر حتى يكتمل الإعداد، وانتقل إلى المورد الخاص بك في مدخل Microsoft Azure. انتقل إلى قسم configuration وأضف application settingsالتالية.

  • EventHubConsumerGroup - اسم السلسلة لمجموعة المستهلكين من Azure IoT Hub، يمكنك إنشاء مجموعة مستهلكين جديدة في IoT Hub أو استخدام المجموعة الافتراضية.
  • IotHubConnectionString– يمكن استرداد سلسلة الاتصال إلى Azure IoT Hub من قسم المفاتيح في مورد Azure IoT HubConfigure Parameters

بمجرد إضافة هذين الإعدادين، حدد Save. ثم حدد Authentication/Authorization في قائمة التنقل اليسرى، وقم بتحديثها بالمستوى المطلوب من المصادقة. نوصي Microsoft Entra ID express.

اختبار التطبيق

انتقل إلى خدمة Azure وتحقق من نجاح التوزيع وتشغيل تطبيق الويب. انتقل إلى عنوان url الذي تمت تهيئته: <yourapp>.azurewebsites.net لعرض التطبيق قيد التشغيل.

Test the deployment

احصل على تعليمة برمجية مصدر PersonCount

إذا كنت ترغب في عرض أو تعديل التعليمة البرمجية المصدر لهذا التطبيق، يمكنك العثور عليها على GitHub.

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