डेटा एग्रीगेटर
समय-आधारित आँकड़े बनाने के लिए workflow डेटा को समेकित करें।
विन्यासयोग्य समय-आधारित या रन-आधारित अंतरालों पर वर्कफ़्लो चरणों से डेटा एकत्र करें और प्रोसेस करें, ताकि सांख्यिकीय सारांश और विश्लेषण रिपोर्ट तैयार की जा सकें, तथा कई एग्रीगेशन ऑपरेशनों (sum, average, max, min, count, distinct values, value counts) को वैकल्पिक UQL-आधारित डेटा रूपांतरणों के साथ समर्थन मिले, जिससे व्यापक डेटा स्ट्रीम विश्लेषण संभव हो।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक सांख्यिकीय सारांश तैयार करने के लिए निर्दिष्ट अंतरालों पर वर्कफ़्लो चरणों से डेटा एकत्र करता है और उसे समेकित करता है। अधिकांश ब्लॉकों के विपरीत, जो हर इनपुट के लिए डेटा आउटपुट करते हैं, यह ब्लॉक आंतरिक स्थिति बनाए रखता है और केवल तब समेकित परिणाम आउटपुट करता है जब विन्यस्त अंतराल पूरा हो जाता है। ब्लॉक:
अन्य वर्कफ़्लो चरणों से डेटा इनपुट प्राप्त करता है (के माध्यम से
डेटाफ़ील्ड मैपिंग जो वर्कफ़्लो चरण आउटपुट के लिए चर नामों को मैप करती है)आवश्यकतानुसार UQL (Query Language) ऑपरेशनों को लागू करता है ताकि समेकन से पहले डेटा को रूपांतरित किया जा सके (जैसे, डिटेक्शनों से क्लास नाम निकालना, अनुक्रम लंबाई की गणना करना, मानों को फ़िल्टर या रूपांतरित करना)
data_operationsप्रत्येक इनपुट चर के लिएनिर्दिष्ट
aggregation_modeके आधार पर डेटा को आंतरिक एग्रीगेशन अवस्थाओं में संचित करता हैइसके आधार पर बीता हुआ समय या रन की संख्या ट्रैक करता है
interval_unit(seconds, minutes, hours, या runs)अधिकांश समय, आंतरिक रूप से डेटा एकत्र करते समय खाली आउटपुट लौटाता है (जिससे डाउनस्ट्रीम प्रोसेसिंग समाप्त हो जाती है)
जब अंतराल सीमा पूरी हो जाती है (बीते समय या रन गिनती के आधार पर), समेकित सांख्यिकी की गणना करता है और आउटपुट करता है
समेकित परिणाम आउटपुट करने के बाद आंतरिक स्थिति को साफ़ करता है और अगले अंतराल के लिए डेटा एकत्र करना शुरू करता है
आउटपुट फ़ील्ड्स को गतिशील रूप से इस प्रकार नामित करता है
{variable_name}_{aggregation_mode}(उदाहरण के लिए,predictions_avg,classes_distinct,count_values_counts)
यह ब्लॉक संख्यात्मक डेटा के लिए कई एग्रीगेशन मोड्स का समर्थन करता है (sum, avg, max, min, values_difference), गणना ऑपरेशनों (count, count_distinct), और मान विश्लेषण (distinct, values_counts). सूची-जैसे डेटा के लिए, ऑपरेशन स्वचालित रूप से प्रत्येक तत्व को प्रोसेस करते हैं (उदाहरण के लिए, count सूची की लंबाई जोड़ता है, distinct प्रत्येक तत्व को distinct सेट में जोड़ता है)। अंतराल समय-आधारित हो सकता है (वीडियो स्ट्रीम्स के लिए उपयोगी, जहाँ wall-clock time महत्वपूर्ण होता है) या run-आधारित (वीडियो फ़ाइल प्रोसेसिंग के लिए उपयोगी, जहाँ elapsed time की तुलना में frame count अधिक महत्वपूर्ण होता है)।
सामान्य उपयोग के मामले
वीडियो स्ट्रीम विश्लेषण: लाइव वीडियो स्ट्रीम्स से समय अंतरालों पर डिटेक्शन परिणामों को समेकित करें (उदाहरण के लिए, प्रति मिनट औसत ऑब्जेक्ट संख्या की गणना करें, प्रति घंटे देखी गई distinct क्लासों को ट्रैक करें, 30-सेकंड विंडो में min/max डिटेक्शन गणना निकालें), जिससे सतत वीडियो प्रोसेसिंग वर्कफ़्लो के लिए वास्तविक-समय विश्लेषण और मॉनिटरिंग संभव हो
बैच वीडियो प्रोसेसिंग: रन-आधारित अंतरालों का उपयोग करके वीडियो फ़्रेमों के across सांख्यिकी को समेकित करें (उदाहरण के लिए, प्रति 100 फ़्रेम औसत डिटेक्शन की गणना करें, 500-फ़्रेम विंडो में distinct ऑब्जेक्ट्स गिनें, प्रति बैच कुल डिटेक्शन जोड़ें), जिससे पूर्व-रिकॉर्डेड वीडियो फ़ाइलों के लिए सार्थक विश्लेषण संभव हो, जहाँ elapsed time की तुलना में frame count अधिक महत्वपूर्ण होता है
समय-श्रृंखला मेट्रिक्स संग्रह: समय के साथ वर्कफ़्लो मेट्रिक्स एकत्र और सारांशित करें (उदाहरण के लिए, डिटेक्शन काउंट्स को समेकित करें, औसत confidence scores की गणना करें, distinct क्लास occurrences को ट्रैक करें, value distributions निकालें), जिससे प्रोडक्शन वर्कफ़्लो के लिए सांख्यिकीय विश्लेषण और रिपोर्टिंग संभव हो
मॉडल प्रदर्शन विश्लेषण: कई इनपुट्स के across मॉडल predictions का विश्लेषण करें (उदाहरण के लिए, औसत prediction counts की गणना करें, distinct predicted classes को ट्रैक करें, min/max confidence scores निकालें, प्रत्येक class की occurrences गिनें), जिससे व्यापक मॉडल प्रदर्शन मूल्यांकन और insights संभव हों
डेटा स्ट्रीम सारांशण: उच्च-आवृत्ति डेटा स्ट्रीम्स को आवधिक रिपोर्टों में सारांशित करें (उदाहरण के लिए, हर 60 सेकंड के डिटेक्शन को summary statistics में समेकित करें, प्रति घंटे औसत निकालें, प्रति-रन सारांश जनरेट करें), जिससे उच्च-आयतन वर्कफ़्लो के लिए कुशल डेटा कमी और विश्लेषण संभव हो
बहु-मॉडल तुलना: तुलना के लिए कई मॉडलों से परिणामों को समेकित करें (उदाहरण के लिए, मॉडलों के बीच औसत डिटेक्शन काउंट्स की तुलना करें, प्रति मॉडल distinct क्लासों को ट्रैक करें, मॉडल ensembles के लिए समेकित सांख्यिकी निकालें), जिससे विभिन्न inference pipelines के across तुलनात्मक विश्लेषण संभव हो
अन्य ब्लॉक्स से कनेक्ट करना
यह ब्लॉक वर्कफ़्लो चरणों से डेटा प्राप्त करता है और आवधिक रूप से समेकित सांख्यिकी आउटपुट करता है:
detection या analysis ब्लॉकों के बाद (उदाहरण के लिए, Object Detection, Instance Segmentation, Classification) ताकि समय के साथ या फ़्रेमों के across prediction परिणामों को समेकित किया जा सके, जिससे मॉडल आउटपुट और डिटेक्शन पैटर्न का सांख्यिकीय विश्लेषण संभव हो
डेटा प्रोसेसिंग ब्लॉकों के बाद (उदाहरण के लिए, Expression, Property Definition, Detections Filter) जो संख्यात्मक या सूची आउटपुट उत्पन्न करते हैं, ताकि अंतरालों के across गणना किए गए मानों, मेट्रिक्स, या रूपांतरित डेटा को समेकित किया जा सके
सिंक ब्लॉकों से पहले (उदाहरण के लिए, CSV Formatter, Local File Sink, Webhook Sink) ताकि आवधिक समेकित रिपोर्टों को सहेजा जा सके, जिससे व्यक्तिगत डेटा बिंदुओं के बजाय सारांशित विश्लेषण डेटा का कुशल भंडारण और निर्यात संभव हो
वीडियो प्रोसेसिंग workflows में समय-आधारित या फ़्रेम-आधारित विश्लेषण रिपोर्ट जनरेट करने के लिए, जिससे प्रति-फ़्रेम आउटपुट के बजाय आवधिक सांख्यिकीय सारांशों के साथ व्यापक वीडियो विश्लेषण संभव हो
विज़ुअलाइज़ेशन या रिपोर्टिंग ब्लॉकों से पहले जिन्हें डैशबोर्ड, चार्ट या समय-श्रृंखला डेटा से सारांश बनाने के लिए समेकित डेटा की आवश्यकता होती है, जिससे रुझानों और सांख्यिकी का विज़ुअलाइज़ेशन संभव हो
विश्लेषण पाइपलाइनों में जहाँ उच्च-आवृत्ति डेटा को आवधिक सारांशों में घटाने की आवश्यकता होती है, जिससे कच्चे उच्च-आयतन डेटा स्ट्रीम्स के बजाय सांख्यिकीय अंतर्दृष्टियों का कुशल डाउनस्ट्रीम प्रोसेसिंग और भंडारण संभव हो
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/data_aggregator@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
data_operations
Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]]
वैकल्पिक डिक्शनरी जो चर नामों (डेटा से) को UQL (Query Language) ऑपरेशन चेन से मैप करती है, जो समेकन से पहले डेटा को रूपांतरित करती हैं। ऑपरेशनों को क्रम में लागू किया जाता है ताकि मानों को निकाला, फ़िल्टर, या रूपांतरित किया जा सके (उदाहरण के लिए, DetectionsPropertyExtract का उपयोग करके detections से class names निकालना, SequenceLength का उपयोग करके sequence length की गणना करना, values को फ़िल्टर करना, calculations करना)। keys को डेटा में चर नामों से मेल खाना चाहिए। खाली छोड़ें या उन variables को शामिल न करें जिन्हें रूपांतरण की आवश्यकता नहीं है। उदाहरण: {'predictions': [{'type': 'DetectionsPropertyExtract', 'property_name': 'class_name'}]}..
❌
aggregation_mode
Dict[str, List[str]]
चर नामों (डेटा से) को गणना किए जाने वाले एग्रीगेशन ऑपरेशनों की सूचियों से मैप करने वाली डिक्शनरी। प्रत्येक एग्रीगेशन '{variable_name}_{aggregation_mode}' नामक एक आउटपुट फ़ील्ड उत्पन्न करता है। समर्थित ऑपरेशन: 'sum' (संख्यात्मक मानों का योग), 'avg' (संख्यात्मक मानों का औसत), 'max'/'min' (अधिकतम/न्यूनतम संख्यात्मक मान), 'count' (मानों की गिनती, सूचियों के लिए सूची लंबाई जोड़ता है), 'distinct' (अद्वितीय मानों की सूची), 'count_distinct' (अद्वितीय मानों की संख्या), 'values_counts' (मान आने की गिनती वाली डिक्शनरी), 'values_difference' (अधिकतम और न्यूनतम संख्यात्मक मानों के बीच का अंतर)। सूचियों के लिए, ऑपरेशन प्रत्येक तत्व को प्रोसेस करते हैं। प्रत्येक चर के लिए कई एग्रीगेशन समर्थित हैं। उदाहरण: {'predictions': ['distinct', 'count_distinct', 'avg']}..
❌
interval_unit
str
एग्रीगेशन अंतराल को मापने की इकाई: 'seconds', 'minutes', 'hours' (समय-आधारित, अंतिम आउटपुट के बाद बीता wall-clock time उपयोग करता है - वीडियो स्ट्रीम्स के लिए उपयोगी), या 'runs' (run-आधारित, वर्कफ़्लो निष्पादन की संख्या गिनता है - वीडियो फ़ाइल प्रोसेसिंग के लिए उपयोगी, जहाँ frame count समय से अधिक महत्वपूर्ण होता है)। समय-आधारित अंतराल समेकित आउटपुट के बीच बीता समय ट्रैक करते हैं। रन-आधारित अंतराल उस संख्या को गिनते हैं कि ब्लॉक कितनी बार डेटा प्राप्त करता है। अंतराल सीमा पूरी होने पर ब्लॉक समेकित परिणाम आउटपुट करता है और स्थिति साफ़ करता है..
❌
अंतराल
int
interval_unit द्वारा निर्दिष्ट इकाइयों में एग्रीगेशन अंतराल की लंबाई। यह 0 से अधिक होनी चाहिए। ब्लॉक आंतरिक रूप से डेटा संचित करता है और जब यह अंतराल सीमा पूरी हो जाती है तब समेकित परिणाम आउटपुट करता है। समय-आधारित इकाइयों (seconds, minutes, hours) के लिए, यह अंतिम आउटपुट के बाद बीता हुआ समय है। 'runs' के लिए, यह अंतिम आउटपुट के बाद वर्कफ़्लो निष्पादनों की संख्या है (उदाहरण के लिए, प्रोसेस किए गए फ़्रेम)। परिणाम आउटपुट करने के बाद, ब्लॉक अपनी आंतरिक स्थिति रीसेट करता है और एक नया एग्रीगेशन विंडो शुरू करता है। अधिकांश समय, डेटा एकत्र करते समय ब्लॉक खाली आउटपुट लौटाता है..
❌
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
रनटाइम संगतता
सॉफ्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन दूरस्थ; इनपुट वीडियो : ब्लॉक प्रति-वीडियो स्थिति को प्रक्रिया मेमोरी में बनाए रखता है (video_metadata.video_identifier द्वारा कुंजीबद्ध)। स्टेटलेस या मल्टी-रिप्लिका HTTP रनटाइम्स पर दूरस्थ स्टेप निष्पादन के साथ, क्रमिक अनुरोधों को अलग-अलग वर्कर प्रक्रियाएँ सर्व कर सकती हैं, इसलिए कॉल्स के बीच स्थिति रीसेट हो जाती है और आउटपुट ट्रैकिंग / काउंटिंग / एग्रीगेशन के लिए अर्थहीन हो जाता है। स्थिर फ़्रेम-से-फ़्रेम परिणामों के लिए एक स्थायी WebRTC सत्र में स्थानीय स्टेप निष्पादन का उपयोग करें।
सॉफ्ट - इनपुट छवि : ब्लॉक वीडियो या दोहराए गए-फ़्रेम वर्कफ़्लो से समयगत संदर्भ पर निर्भर करता है। एक स्थिर छवि/फ़ोटो के साथ, ट्रैक करने, तुलना करने, समेकित करने या दृश्यीकृत करने के लिए कोई अर्थपूर्ण इतिहास नहीं होता, इसलिए ब्लॉक बहुत कम या कोई लाभ नहीं देता।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार डेटा एग्रीगेटर संस्करण v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
डेटा(*): चर नामों को वर्कफ़्लो चरणों से डेटा स्रोतों से मैप करने वाली डिक्शनरी। प्रत्येक key एग्रीगेशन के लिए एक चर नाम बन जाती है, और प्रत्येक value एक selector होती है जो वर्कफ़्लो चरण आउटपुट को संदर्भित करती है (उदाहरण के लिए, predictions, metrics, computed values)। इन variables का उपयोग aggregation_mode में यह निर्दिष्ट करने के लिए किया जाता है कि कौन से aggregations की गणना करनी है। उदाहरण: {'predictions': '$steps.model.predictions', 'count': '$steps.counter.total'}..
आउटपुट
*(*): किसी भी तत्व का समतुल्य।
अंतिम अपडेट
क्या यह उपयोगी था?