يعد استخدام الخوارزميات التحليلية في تدفق البيانات الآن إحدى المهام الأكثر إلحاحًا في مجال بناء الأنظمة التحليلية. العديد من النماذج التنبؤية عالية الدقة ، على سبيل المثال ، التي تم تطويرها استنادًا إلى قراءات من أجهزة استشعار المنشآت الصناعية ، جاهزة للوقاية من الحوادث الصناعية الخطيرة ، ولكن لهذا السبب يجب إجراؤها على الأجهزة النهائية ("الأجهزة المتطورة") ، حيث تأتي قراءات من أجهزة الاستشعار في الوقت الحقيقي. يتم استدعاء منتج SAS Event Stream Processing لحل هذه المشكلة ونقل التحليلات إلى "عبر الإنترنت". في هذا المنشور ، أود أن أشارك تجربة تكوينه باستخدام مثال على مشكلة تطبيقية - تحليل الصور من كاميرات الفيديو.

التكنولوجيا
كانت SAS موجودة في خط منتجات SAS لسنوات عديدة وتقوم بتطوير حل معالجة التدفق الخاص بها ، SAS Event Stream Processing (المشار إليه فيما يلي باسم ESP). كانت المهمة الرئيسية للمطورين هي تحقيق أداء عالي ، أوامر أكبر من الحلول الموجودة في السوق. لهذا ، أثناء تطوير ESP ، تخلوا تمامًا عن تخزين الحسابات والفهارس المتوسطة على القرص. يتم تنفيذ جميع تحويلات الدفق في ذاكرة الوصول العشوائي ، ويتم الاحتفاظ بإعادة الحساب الخاصة بالحدث.
العمل مع الذاكرة في SAS ESP. يخزن مستودع الأحداث في ذاكرة الوصول العشوائي نتائج وسيطة ولا يتم حظره في حالة الوصول المتوازي للعمليات الداخلية أو الخارجية بسبب فهارس إضافية.يمكن للمحرك التعامل مع تدفقات البيانات الكبيرة - في عدة ملايين من الأحداث في الثانية. في الوقت نفسه ، مع الحفاظ على الكمون المنخفض ، الذي سرعان ما أخذ مكانه في حلول التسويق عبر الإنترنت ومكافحة الاحتيال المصرفي. هناك ، هو مرشح ذكي لعمليات العملاء ويكتشف على الفور نشاطًا غير قياسي على الحسابات ، ويعزل العمليات الاحتيالية عن تدفق البيانات.
ولكن لا تزال هذه ميزة ثانوية لـ ESP. تم تصميم المحرك كآلية للاستخدام المستمر للنماذج التحليلية (SAS و C و Python وغيرها) في دفق البيانات.
مبدأ دفق معالجة الحدث.كمثال توضيحي
لمنتدى SAS Viya Business Breakfast ، قررنا في SAS إنشاء منصة عرض توضيحي ، مع أخذ مهمة تحليل الصور كأساس. وهذه هي الطريقة التي قمنا بإعدادها وما واجهناه في العملية.
تحليل دفق الفيديو
كان لدينا تحت تصرفنا نموذج تحليلي بناه زملاء من قسم التحليلات المتعمقة على منصة SAS Viya. كان جوهرها هو أنه ، عند تلقي صورة إدخال للسائق في داخل السيارة ، قامت خوارزمية (في هذه الحالة ، شبكة عصبية تلافيفية مدربة) بتصنيف سلوك السائق وفقًا للفصول: "القيادة العادية" ، "مشتت من محادثة مع أحد الركاب" ، "التحدث عن هاتف "،" يكتب رسائل SMS "، إلخ.
مثال على النموذج: تم تصنيف الصورة المدخلة على أنها "تكتب SMS" ، استنادًا إلى جزء الصورة الذي ضربت فيه اليد بالهاتف.نشأ السؤال حول كيفية تشغيل هذه الخوارزمية في الوقت الحقيقي من أجل أن تكون قادرًا على الاستجابة للسلوك غير المرغوب فيه. وفقًا للسيناريو ، فإن الصور من الكاميرا في وضع الاتصال قد تراجعت بالفعل في شكل ملفات في دليل الشبكة على القرص.
كل ما تبقى هو الاتصال بالبيانات ، وتحويل الصور إلى التنسيق المطلوب ، وتطبيق النموذج ، وفي جميع احتمالات الانتماء إلى فئة من السلوكيات ، عرض التحذيرات في الوقت الفعلي على لوحات المعلومات عبر الإنترنت. وتبين أنه يمكن تكوين كل هذا في SAS ESP GUI ، بدون سطر واحد من رمز البرنامج (!).
معالجة دفق الأحداث SAS
مشروع الكشف عن المخاطر في الواجهة الرسومية SAS ESP Studio.في محرر الرسوميات ESP ، أضفنا تحويلات تدفق البيانات التالية:
- كمدخل ، لدينا عقدتان من نوع المصدر: model_source و input_image. في model_source ننشر نموذج التصنيف الخاص بنا. للقيام بذلك ، قم بتكوين موصل الملف ، الذي يقرأ أمرًا من ملف نصي يحتوي على ثلاث معلمات: اسم العملية ، ونوع تنسيق النموذج ، والمسار المادي للملف الثنائي. ESP يتخلف وراء كل مصدر بيانات القدرة على أن يكون ثابتًا وبثًا ، وبالتالي ، في أي وقت ، يمكننا نشر أوامر جديدة لتنزيل النماذج إلى هذه العقدة ، وهو أمر ملائم في التشغيل الصناعي - لا نحتاج إلى إيقاف المشروع لتحديث إصدار الخوارزميات.

إعداد أوامر النشر إلى model_source
محتويات ملف نموذج الإدخال:
I,N,1,action,load
I,N,2,type,astore
I,N,3,reference,/opt/sas/demo/image_processing/d.astore
- المصدر الثاني ، input_image ، هو صور من الكاميرا. لنشر البيانات ، نستخدم محولًا قياسيًا - وهو برنامج ينشر البيانات من مصدر في ESP. في هذه الحالة ، استخدمنا محول ملفات ، ولكن يمكنك أيضًا الاتصال بالكاميرا مباشرة ، على سبيل المثال ، من خلال محول UVC الذي يأتي مع الحل.

تكوين موصل UVC للأنواع الشائعة من كاميرات الفيديو. - قد تأتي الصور بتنسيق مختلف عن الشكل الذي تم فيه تدريب النموذج ، وقد يؤثر ذلك على جودة التصنيف. لذلك ، بعد input_image ، نضيف على الفور عقدة resize_image ونصف التنسيق المطلوب في إعداداته. في هذه الحالة ، اضغط على مربع 100/100 بكسل.
إعداد معالجة الصور
- تم تكوين تنفيذ النموذج في CNN_score_code. ستقوم الواجهة تلقائيًا باستخراج سمات الإخراج من الوصف التعريفي للنموذج - P__label_c0 و P__label_c1 و P__label_c2 و P__label_c9 - احتمالات كل فئة سلوك. بعد ذلك ، في عقدة max_class ، سنحدد حقلًا محسوبًا جديدًا سيحدد الفئة بأقصى احتمال.
- الآن ، من خلال إطلاق المشروع ، سنتمكن من الحصول على تصنيف في الوقت الفعلي لكل صورة إدخال. في تاريخنا ، يصرف السائق عديم الضمير بشكل دوري عن الطريق. ولكن من المهم فصل تلك الحالات عندما كان مشتتًا لمدة ثانية عن حالات القيادة الخطرة الطويلة. للقيام بذلك ، نضيف 3 عقد: تخزين الأحداث في اللحظة الأخيرة (copy_1_min) ، والتجميع حسب فئات السلوك (aggr_for_alert) ومرشح حقائق "القيادة الخطرة" (filter_alert).
تكوين إعدادات تخزين الحدث - في الدقيقة الأخيرة 1.

إعداد عد الأحداث لكل فئة سلوك.

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

.
لسهولة عرض تدفقات البيانات ، يتم توفير مصمم تقارير عبر الإنترنت ، SAS ESP Stream Viewer ، مع ESP. في وضع الإعداد ، نرى جميع المشاريع قيد التشغيل على الخوادم ، ويمكننا الاتصال بها واختيار تصور ملائم.
لوحات المعلومات على الإنترنت في SAS ESP Stream Viewerهذا كل شيء. حصلنا على فرصة لأتمتة رد الفعل في الوقت الحقيقي لإشارة الفيديو. في هذه الحالة ، قمنا بإعداد المراقبة عبر الإنترنت ، ولكن باستخدام نفس المحولات / الموصلات ، يمكننا إرسال رسالة لكل حالة من الانتهاكات المكتشفة ، أو تشكيل إجراء تحكم إلى نظام خارجي.
أم بايثون؟
من الناحية الفنية ، تم الانتهاء من القضية ، ولكن لغرض التظاهر في المنتدى ، بدا غير تفاعلي بما فيه الكفاية. كان غير مريح ، وغير آمن تمامًا (!) للعرض في الوقت الفعلي ، لذلك تم التقاط الصور مقدمًا وكانت السيارة في موقف السيارات.
يدعم SAS ESP دفق تنفيذ النماذج المصنوعة في Python. للتأكيد ، قمنا بإعداد تحليل الصور ، أي البحث عن كائنات في الصورة ، باستخدام مكتبات OpenCV.
نموذج ESP لإيجاد قبعة صلبة في دفق إدخال الصورةفي مخطط ESP ، لدينا مصدران للبيانات: إطارات من كاميرا الكمبيوتر المحمول على الإنترنت وصورة للكائن الذي نبحث عنه. في هذه الحالة ، نحدد ما إذا كان العامل المحتمل في موقع البناء قد نسي قواعد السلامة: هل توجد خوذة عليه. في عقدة proc_detection ، ننفذ شفرة Python التالية:
def compute_total(Image,image_template): "Output: score_point" import sys import cv2 import numpy as np import os import base64 import io from imageio import imread MIN_MATCH_COUNT = 10
تحديد وجود خوذة في الصورة من كاميرا الويب في منتدى SAS Viya Business Breakfast (زميل ، maxxts يختبر الحامل)التعلم الآلي
إذا تحدثنا عن مزيد من التطوير لمعالجة الدفق ، فمن المحتمل أن يتحول التركيز إلى تدريب النماذج التحليلية على الدفق. على سبيل المثال على عكس الأمثلة السابقة ، لن يتم تنفيذ النماذج فحسب ، بل ستتدرب أيضًا داخل SAS ESP. سيتطلب هذا دفق بيانات إضافيًا لإجراء عملية القطار للخوارزمية المحددة حسب الحدث (على سبيل المثال ، للمبتدئين ، تجميع بسيط للوسائل الأساسية). ثم ستتاح الفرصة للسيارة التي تحتوي على ESP على متن الطائرة لتحليل الموقف باستخدام أجهزة استشعار جديدة تم توصيلها للتو. هذا سيجعل من الممكن تشغيل وأتمتة الأجهزة الجديدة بسرعة في مفهوم الصناعة 4.0.
يرجى كتابة التعليقات في المهام التي تواجه في تدفق التحليلات ، وبالطبع ، يسعدني أن أجيب على أسئلة حول
معالجة دفق أحداث SAS .