ज़ोन में समय
ज़ोन में वस्तु का समय ट्रैक करें।
v3
ट्रैक किए गए ऑब्जेक्ट्स द्वारा एक या अधिक परिभाषित बहुभुज ज़ोन के भीतर बिताए गए समय की गणना और ट्रैक करें, विशिष्ट क्षेत्रों में ऑब्जेक्ट की उपस्थिति की अवधि मापें (कई ज़ोन का समर्थन करते हुए, जहाँ ऑब्जेक्ट किसी भी ज़ोन में उपस्थित होने पर 'ज़ोन में' माने जाते हैं), ज़ोन सदस्यता के आधार पर डिटेक्शनों को फ़िल्टर करें, जब ऑब्जेक्ट ज़ोन छोड़ते हैं तो समय ट्रैकिंग रीसेट करें, और ज़ोन-आधारित एनालिटिक्स, ठहराव समय विश्लेषण, तथा उपस्थिति निगरानी वर्कफ़्लो सक्षम करें।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक प्रत्येक अद्वितीय track ID के लिए प्रवेश और निकास समय ट्रैक करके यह मापता है कि प्रत्येक ट्रैक किया गया ऑब्जेक्ट एक या अधिक परिभाषित बहुभुज ज़ोन के भीतर कितनी देर से है। यह ब्लॉक कई ज़ोन का समर्थन करता है, और यदि ऑब्जेक्ट परिभाषित किसी भी ज़ोन में उपस्थित हैं तो उन्हें 'ज़ोन में' मानता है। ब्लॉक:
track IDs के साथ ट्रैक किए गए डिटेक्शन प्रेडिक्शंस, एम्बेडेड वीडियो मेटाडेटा वाली एक इमेज, और बहुभुज ज़ोन परिभाषा(एँ) (एकल ज़ोन या ज़ोन की सूची) प्राप्त करता है
छवि से वीडियो मेटाडेटा निकालता है:
WorkflowImageData ऑब्जेक्ट से video_metadata तक पहुँचता है
fps, frame_number, frame_timestamp, video_identifier, और वीडियो स्रोत जानकारी निकालता है
विभिन्न वीडियो के लिए अलग ट्रैकिंग स्थिति बनाए रखने हेतु video_identifier का उपयोग करता है
सत्यापित करता है कि डिटेक्शनों में track IDs हैं (tracker_id उपस्थित होना चाहिए):
डिटेक्शनों के किसी ट्रैकिंग ब्लॉक (जैसे Byte Tracker) से आने की आवश्यकता होती है
प्रत्येक ऑब्जेक्ट के पास एक अद्वितीय tracker_id होना चाहिए जो फ्रेमों के बीच बना रहे
यदि tracker_id गायब है तो त्रुटि उत्पन्न करता है
ज़ोन इनपुट को बहुभुजों की एक सूची में सामान्यीकृत करता है:
एकल बहुभुज ज़ोन या बहुभुज ज़ोन की सूची स्वीकार करता है
सुसंगत प्रोसेसिंग के लिए एकल बहुभुजों को स्वतः सूची में लपेट देता है
सभी ज़ोनों के लिए नेस्टिंग गहराई और कोऑर्डिनेट प्रारूप सत्यापित करता है
लचीले ज़ोन इनपुट प्रारूप सक्षम करता है (एकल ज़ोन या कई ज़ोन)
वीडियो के लिए बहुभुज ज़ोनों को आरंभ करता है या पुनः प्राप्त करता है:
प्रत्येक अद्वितीय ज़ोन संयोजन के लिए ज़ोन कोऑर्डिनेट्स से PolygonZone ऑब्जेक्ट्स की एक सूची बनाता है
ज़ोन कोऑर्डिनेट्स सत्यापित करता है (प्रत्येक ज़ोन कम से कम 3 बिंदुओं की सूची होना चाहिए, जिनमें से प्रत्येक में 2 कोऑर्डिनेट होने चाहिए)
ज़ोन कैश के साथ OrderedDict में ज़ोन कॉन्फ़िगरेशन संग्रहीत करता है (अधिकतम 100 ज़ोन संयोजन)
कैश लुकअप के लिए video_identifier और ज़ोन कोऑर्डिनेट्स को जोड़ने वाली ज़ोन कुंजी का उपयोग करता है
जब कैश 100 ज़ोन संयोजनों से अधिक हो जाता है, FIFO eviction लागू करता है
ज़ोन डिटेक्शन के लिए ट्रिगरिंग एंकर बिंदु (जैसे CENTER, BOTTOM_CENTER) कॉन्फ़िगर करता है
वीडियो के लिए समय ट्रैकिंग स्थिति आरंभ करता है या पुनः प्राप्त करता है:
यह ट्रैक करने वाला एक dictionary बनाए रखता है कि प्रत्येक track_id किसी भी ज़ोन में कब प्रवेश करता है
video_identifier का उपयोग करके प्रति वीडियो प्रवेश टाइमस्टैम्प संग्रहीत करता है
प्रत्येक वीडियो के लिए अलग ट्रैकिंग स्थिति बनाए रखता है
समय मापन के लिए वर्तमान टाइमस्टैम्प की गणना करता है:
वीडियो फ़ाइलों के लिए: frame_number / fps के रूप में टाइमस्टैम्प की गणना करता है
स्ट्रीम किए गए वीडियो के लिए: metadata से frame_timestamp का उपयोग करता है
अवधि गणना के लिए सटीक समय मापन प्रदान करता है
जाँचता है कि कौन-से डिटेक्शन किसी भी ज़ोन में हैं:
polygon zone triggers का उपयोग करके प्रत्येक डिटेक्शन को सभी बहुभुज ज़ोनों के विरुद्ध परीक्षण करता है
ज़ोन सदस्यता का एक मैट्रिक्स बनाता है (zones x detections)
लॉजिकल OR ऑपरेशन का उपयोग करता है: यदि ऑब्जेक्ट किसी भी ज़ोन में हैं तो उन्हें 'ज़ोन में' माना जाता है
triggering_anchor निर्धारित करता है कि बाउंडिंग बॉक्स का कौन-सा बिंदु जाँचा जाएगा (CENTER, BOTTOM_CENTER, आदि)
प्रत्येक डिटेक्शन के लिए एक boolean लौटाता है जो किसी भी ज़ोन में सदस्यता दर्शाता है
प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए समय ट्रैकिंग अपडेट करता है:
किसी भी ज़ोन में प्रवेश करने वाले ऑब्जेक्ट्स के लिए: यदि पहले से ट्रैक नहीं है तो प्रवेश टाइमस्टैम्प रिकॉर्ड करता है
किसी भी ज़ोन में मौजूद ऑब्जेक्ट्स के लिए: बिताया गया समय current_timestamp - entry_timestamp के रूप में गणना करता है
सभी ज़ोनों को छोड़ने वाले ऑब्जेक्ट्स के लिए:
: यदि reset_out_of_zone_detections True है: प्रवेश टाइमस्टैम्प हटाता है (0 पर रीसेट करता है)
: यदि reset_out_of_zone_detections False है: प्रवेश टाइमस्टैम्प बनाए रखता है (ट्रैकिंग जारी रखता है)
ज़ोन के बाहर की डिटेक्शनों को संभालता है:
यदि remove_out_of_zone_detections True है: आउटपुट से सभी ज़ोनों के बाहर की डिटेक्शन फ़िल्टर करता है
यदि remove_out_of_zone_detections False है: समय = 0 के साथ ज़ोन के बाहर की डिटेक्शन शामिल करता है
प्रत्येक डिटेक्शन में time_in_zone जानकारी जोड़ता है:
प्रत्येक डिटेक्शन के साथ metadata के रूप में time_in_zone मान (सेकंड में) जोड़ता है
ज़ोन में मौजूद ऑब्जेक्ट्स: समय किसी भी ज़ोन में बिताई गई अवधि को दर्शाता है
सभी ज़ोनों के बाहर मौजूद ऑब्जेक्ट्स: समय 0 है (यदि रीसेट नहीं किया गया हो) या अपरिभाषित है (यदि हटाया गया हो)
time_in_zone जानकारी के साथ डिटेक्शन लौटाता है:
time_in_zone metadata से संवर्धित ट्रैक किए गए डिटेक्शन आउटपुट करता है
remove_out_of_zone_detections सेटिंग के आधार पर फ़िल्टर किए गए या बिना फ़िल्टर किए गए
सभी मूल डिटेक्शन गुणों के साथ-साथ समय ट्रैकिंग जानकारी बनाए रखता है
यह ब्लॉक फ्रेमों के बीच स्थायी ट्रैकिंग स्थिति बनाए रखता है, जिससे उन ऑब्जेक्ट्स के लिए सटीक संचयी समय मापन संभव होता है जो कई फ्रेमों में किसी भी ज़ोन में बने रहते हैं। समय उस क्षण से मापा जाता है जब ऑब्जेक्ट पहली बार किसी भी ज़ोन में प्रवेश करता है (उसके track_id के आधार पर) से लेकर वर्तमान फ्रेम तक, जिससे रीयल-टाइम अवधि ट्रैकिंग मिलती है। जब कई ज़ोन दिए जाते हैं, तो ऑब्जेक्ट्स को 'ज़ोन में' माना जाता है यदि उनका एंकर बिंदु किसी भी ज़ोन के अंदर हो, जिससे कई क्षेत्रों में ट्रैकिंग एक संयुक्त ज़ोन के रूप में संभव होती है। ज़ोन कैश FIFO eviction का उपयोग करके प्रत्येक वीडियो के लिए कई ज़ोन कॉन्फ़िगरेशन को कुशलतापूर्वक प्रबंधित करता है ताकि मेमोरी उपयोग सीमित रहे। ट्रिगरिंग एंकर यह निर्धारित करता है कि ज़ोन डिटेक्शन के लिए बाउंडिंग बॉक्स का कौन-सा भाग उपयोग होगा, जिससे ऑब्जेक्ट की स्थिति के आधार पर अलग-अलग ज़ोन प्रवेश/निकास व्यवहार संभव होते हैं।
सामान्य उपयोग के मामले
कई-ज़ोन ठहराव समय विश्लेषण: व्यवहार विश्लेषण के लिए ऑब्जेक्ट्स किसी एक या अधिक क्षेत्रों में कितनी देर रहते हैं, इसे मापें (जैसे, स्टोर के किसी भी सेक्शन में ग्राहक समय मापना, कई पार्किंग क्षेत्रों में बिताया गया समय ट्रैक करना, ओवरलैपिंग ज़ोनों में समय का विश्लेषण करना), जिससे कई-ज़ोन ठहराव समय विश्लेषण वर्कफ़्लो सक्षम होते हैं
ज़ोन-आधारित निगरानी: सुरक्षा और संरक्षा के लिए कई परिभाषित क्षेत्रों में ऑब्जेक्ट उपस्थिति की निगरानी करें (जैसे, किसी भी प्रतिबंधित क्षेत्र में रुके रहने का पता लगाना, कई खतरे वाले ज़ोनों में समय की निगरानी करना, सुरक्षित ज़ोनों में उपस्थिति ट्रैक करना), जिससे कई-ज़ोन निगरानी वर्कफ़्लो सक्षम होते हैं
रिटेल एनालिटिक्स: रिटेल अंतर्दृष्टि के लिए कई स्टोर सेक्शनों में ग्राहक समय ट्रैक करें (जैसे, किसी भी उत्पाद गलियारे में समय मापना, विभागों के बीच खरीदारी पैटर्न का विश्लेषण करना, कई ज़ोनों में सहभागिता ट्रैक करना), जिससे कई-ज़ोन रिटेल एनालिटिक्स वर्कफ़्लो सक्षम होते हैं
अधिभोग प्रबंधन: स्पेस उपयोग के लिए ऑब्जेक्ट्स द्वारा किसी एक या अधिक स्थानों में बिताया गया समय मापें (जैसे, कई लॉटों में वाहन पार्किंग अवधि ट्रैक करना, ज़ोनों में टेबल अधिभोग मापना, कई क्षेत्रों में स्थान उपयोग का विश्लेषण करना), जिससे कई-ज़ोन अधिभोग प्रबंधन वर्कफ़्लो सक्षम होते हैं
सुरक्षा अनुपालन: कई प्रतिबंधित या समय-सीमित ज़ोनों में समय उल्लंघनों की निगरानी करें (जैसे, किसी भी खतरनाक क्षेत्र में लंबे समय तक रुकने का पता लगाना, ज़ोनों के बीच समय सीमा उल्लंघनों की निगरानी करना, कई क्षेत्रों में सुरक्षा अनुपालन ट्रैक करना), जिससे कई-ज़ोन सुरक्षा निगरानी वर्कफ़्लो सक्षम होते हैं
यातायात विश्लेषण: ऑब्जेक्ट्स द्वारा किसी एक या अधिक ट्रैफ़िक ज़ोनों या चौराहों में बिताया गया समय मापें (जैसे, कई चौराहों पर समय ट्रैक करना, ज़ोनों में कतार प्रतीक्षा समय मापना, कई क्षेत्रों में यातायात प्रवाह का विश्लेषण करना), जिससे कई-ज़ोन यातायात एनालिटिक्स वर्कफ़्लो सक्षम होते हैं
अन्य ब्लॉक्स से कनेक्ट करना
यह ब्लॉक एम्बेडेड वीडियो मेटाडेटा, ट्रैक किए गए डिटेक्शन, और ज़ोन कोऑर्डिनेट्स वाली एक इमेज प्राप्त करता है, और time_in_zone metadata के साथ timed_detections उत्पन्न करता है:
Byte Tracker ब्लॉक्स के बाद कई ज़ोनों में ट्रैक किए गए ऑब्जेक्ट्स के समय को मापने के लिए (जैसे, ट्रैक किए गए ऑब्जेक्ट्स के लिए कई ज़ोनों में समय ट्रैक करना, क्षेत्रों में सुसंगत IDs के साथ ठहराव समय मापना, कई ज़ोनों में ट्रैक किए गए ऑब्जेक्ट की उपस्थिति का विश्लेषण करना), जिससे tracking-to-time वर्कफ़्लो सक्षम होते हैं
ज़ोन परिभाषा ब्लॉकों के बाद कई परिभाषित क्षेत्रों पर समय ट्रैकिंग लागू करने के लिए (जैसे, कई बहुभुज ज़ोनों में समय मापना, कस्टम कई-ज़ोन कॉन्फ़िगरेशन में अवधि ट्रैक करना, क्षेत्रों में ज़ोन-आधारित उपस्थिति का विश्लेषण करना), जिससे zone-to-time वर्कफ़्लो सक्षम होते हैं
लॉजिक ब्लॉक्स से पहले जैसे Continue If, ताकि किसी भी ज़ोन में समय के आधार पर निर्णय लिए जा सकें (जैसे, यदि समय किसी भी ज़ोन में थ्रेशहोल्ड से अधिक हो तो जारी रखें, ज़ोनों में ठहराव समय के आधार पर फ़िल्टर करें, कई क्षेत्रों में समय उल्लंघनों पर क्रियाएँ ट्रिगर करें), जिससे समय-आधारित निर्णय वर्कफ़्लो सक्षम होते हैं
विश्लेषण ब्लॉकों से पहले समय-आधारित मेट्रिक्स का विश्लेषण करने के लिए (जैसे, ज़ोनों में ठहराव समय पैटर्न का विश्लेषण, कई क्षेत्रों के लिए time-in-zone डेटा प्रोसेस करना, ज़ोनों में अवधि मेट्रिक्स के साथ काम करना), जिससे समय विश्लेषण वर्कफ़्लो सक्षम होते हैं
सूचना ब्लॉकों से पहले समय उल्लंघनों या थ्रेशहोल्ड पर अलर्ट करने के लिए (जैसे, लंबे समय तक रुकने पर अलर्ट, समय सीमा उल्लंघनों पर सूचना, समय-आधारित अलर्ट ट्रिगर करना), जिससे समय-आधारित सूचना वर्कफ़्लो सक्षम होते हैं
डेटा संग्रहण ब्लॉकों से पहले समय मेट्रिक्स रिकॉर्ड करने के लिए (जैसे, ठहराव समय डेटा संग्रहीत करना, time-in-zone मेट्रिक्स लॉग करना, अवधि मापन रिकॉर्ड करना), जिससे समय मेट्रिक्स लॉगिंग वर्कफ़्लो सक्षम होते हैं
संस्करणों के बीच अंतर
v2 से उन्नत:
कई ज़ोन समर्थन: एक साथ कई बहुभुज ज़ोनों में समय ट्रैक करने का समर्थन करता है, जहाँ ऑब्जेक्ट्स को किसी भी परिभाषित ज़ोन में उपस्थित होने पर 'ज़ोन में' माना जाता है, जिससे कई-ज़ोन समय ट्रैकिंग और विश्लेषण संभव होता है
लचीला ज़ोन इनपुट: एकल बहुभुज ज़ोन या बहुभुज ज़ोनों की सूची स्वीकार करता है, और दोनों प्रारूपों को सहजता से संभालने के लिए इनपुट को स्वतः सामान्यीकृत करता है
ज़ोन कैश प्रबंधन: प्रत्येक वीडियो के लिए कई ज़ोन कॉन्फ़िगरेशन को कुशलतापूर्वक प्रबंधित करने और मेमोरी उपयोग सीमित करने हेतु FIFO eviction (अधिकतम 100 ज़ोन संयोजन) के साथ एक ज़ोन कैश लागू करता है
संयुक्त ज़ोन लॉजिक: सभी ज़ोनों में लॉजिकल OR ऑपरेशन का उपयोग करता है, जिससे व्यापक उपस्थिति निगरानी के लिए कई क्षेत्रों में एकीकृत ज़ोन सिस्टम के रूप में ट्रैकिंग संभव होती है
उन्नत ज़ोन कुंजी सिस्टम: कैश लुकअप के लिए संयुक्त ज़ोन कुंजियों (video_identifier + zone coordinates) का उपयोग करता है, जिससे ज़ोन कॉन्फ़िगरेशन का कुशल संग्रहण और पुनर्प्राप्ति संभव होती है
आवश्यकताएँ
यह ब्लॉक tracker_id जानकारी वाले ट्रैक किए गए डिटेक्शन की आवश्यकता रखता है (डिटेक्शन किसी ट्रैकिंग ब्लॉक जैसे Byte Tracker से आने चाहिए)। ज़ोन एकल बहुभुज या बहुभुजों की एक सूची हो सकता है, जहाँ प्रत्येक बहुभुज कम से कम 3 बिंदुओं की सूची के रूप में परिभाषित होना चाहिए, और प्रत्येक बिंदु ठीक 2 कोऑर्डिनेट्स (x, y) की सूची या टपल होना चाहिए। सटीक समय मापन की गणना के लिए इमेज के video_metadata में वीडियो फ़ाइलों के लिए फ्रेम दर (fps) या स्ट्रीम किए गए वीडियो के लिए फ्रेम टाइमस्टैम्प शामिल होने चाहिए। यह ब्लॉक प्रत्येक वीडियो के लिए फ्रेमों के बीच स्थायी ट्रैकिंग स्थिति बनाए रखता है, इसलिए इसे उन वीडियो वर्कफ़्लो में उपयोग करना चाहिए जहाँ फ्रेम क्रमिक रूप से प्रोसेस होते हैं। सटीक समय मापन के लिए, डिटेक्शनों को वैध track IDs के साथ फ्रेमों में लगातार प्रदान किया जाना चाहिए। जब कई ज़ोन दिए जाते हैं, तो ऑब्जेक्ट्स को 'ज़ोन में' माना जाता है यदि वे किसी भी ज़ोन में उपस्थित हों।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/time_in_zone@v3 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
ज़ोन
List[Any]
बहुभुज ज़ोन कोऑर्डिनेट्स जो समय मापन के लिए एक या अधिक क्षेत्रों को परिभाषित करते हैं। यह एकल बहुभुज ज़ोन या बहुभुज ज़ोनों की सूची हो सकती है। प्रत्येक ज़ोन कम से कम 3 बिंदुओं की सूची होना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 कोऑर्डिनेट्स [x, y] या (x, y) की सूची या टपल होना चाहिए। कोऑर्डिनेट्स पिक्सेल स्पेस में होने चाहिए जो इमेज आयामों से मेल खाते हों। एकल ज़ोन का उदाहरण: [(100, 100), (100, 200), (300, 200), (300, 100)]। कई ज़ोनों का उदाहरण: [[(100, 100), (100, 200), (300, 200), (300, 100)], [(400, 400), (400, 500), (600, 500), (600, 400)]]. यदि उनका triggering_anchor बिंदु प्रदान किए गए किसी भी ज़ोन के अंदर है, तो ऑब्जेक्ट्स को 'ज़ोन में' माना जाता है। ज़ोन कोऑर्डिनेट्स सत्यापित किए जाते हैं और प्रत्येक ज़ोन के लिए PolygonZone ऑब्जेक्ट्स बनाए जाते हैं। ज़ोन कॉन्फ़िगरेशन कैश किए जाते हैं (अधिकतम 100 संयोजन) FIFO eviction के साथ..
✅
triggering_anchor
str
डिटेक्शन बाउंडिंग बॉक्स पर वह बिंदु जो ऑब्जेक्ट को 'ज़ोन में' मानने के लिए ज़ोन के अंदर होना चाहिए। विकल्पों में शामिल हैं: 'CENTER' (डिफ़ॉल्ट, बाउंडिंग बॉक्स का केंद्र), 'BOTTOM_CENTER' (निचला मध्य बिंदु), 'TOP_CENTER' (ऊपरी मध्य बिंदु), 'CENTER_LEFT' (मध्य बाएँ बिंदु), 'CENTER_RIGHT' (मध्य दाएँ बिंदु), और अन्य Position enum मान। triggering_anchor यह निर्धारित करता है कि ऑब्जेक्ट के बाउंडिंग बॉक्स के किस भाग की जाँच ज़ोन बहुभुज(ों) के विरुद्ध की जाएगी। जब कई ज़ोन प्रदान किए जाते हैं, तो यदि उसका एंकर बिंदु किसी भी ज़ोन के अंदर है तो ऑब्जेक्ट को 'ज़ोन में' माना जाता है। मानक ज़ोन डिटेक्शन के लिए CENTER का उपयोग करें, ग्राउंड-स्तर ज़ोनों के लिए BOTTOM_CENTER (जैसे, पैरों/वाहन के आधार को ट्रैक करना), या डिटेक्शन आवश्यकताओं के अनुसार अन्य एंकरों का उपयोग करें। डिफ़ॉल्ट 'CENTER' है..
✅
remove_out_of_zone_detections
bool
यदि True (डिफ़ॉल्ट) है, तो सभी ज़ोनों के बाहर पाए गए डिटेक्शनों को फ़िल्टर कर दिया जाता है और आउटपुट में शामिल नहीं किया जाता। केवल कम से कम एक ज़ोन के अंदर वाले डिटेक्शन लौटाए जाते हैं। यदि False है, तो सभी डिटेक्शन आउटपुट में शामिल किए जाते हैं, और सभी ज़ोनों के बाहर के ऑब्जेक्ट्स के लिए time_in_zone = 0 होता है। केवल किसी भी ज़ोन में मौजूद ऑब्जेक्ट्स पर विश्लेषण केंद्रित करने के लिए True का उपयोग करें, या सभी डिटेक्शनों को ज़ोन स्थिति सहित बनाए रखने के लिए False का उपयोग करें। जब कई ज़ोन प्रदान किए जाते हैं, तो ऑब्जेक्ट्स को 'ज़ोन में' माना जाता है यदि वे किसी भी ज़ोन में उपस्थित हों। स्वच्छ, ज़ोन गतिविधि-केंद्रित आउटपुट के लिए डिफ़ॉल्ट True है..
✅
reset_out_of_zone_detections
bool
यदि True (डिफ़ॉल्ट) है, तो जब कोई ट्रैक किया गया ऑब्जेक्ट सभी ज़ोनों को छोड़ देता है, उसकी समय ट्रैकिंग रीसेट हो जाती है (प्रवेश टाइमस्टैम्प साफ़ हो जाता है)। जब ऑब्जेक्ट किसी भी ज़ोन में पुनः प्रवेश करता है, समय ट्रैकिंग 0 से फिर शुरू होती है। यदि False है, तो सभी ज़ोनों को छोड़ने के बाद भी समय ट्रैकिंग जारी रहती है, और पुनः प्रवेश संचयी समय बनाए रखता है। किसी भी ज़ोन में वर्तमान निरंतर समय मापने के लिए True का उपयोग करें (सभी ज़ोनों से बाहर निकलने पर रीसेट होता है), या कई प्रविष्टियों में संचयी समय मापने के लिए False का उपयोग करें। जब कई ज़ोन प्रदान किए जाते हैं, तो समय केवल तभी रीसेट होता है जब ऑब्जेक्ट सभी ज़ोनों को छोड़ देता है। निरंतर उपस्थिति अवधि मापने के लिए डिफ़ॉल्ट True है..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
रनटाइम संगतता
सॉफ्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन दूरस्थ; इनपुट वीडियो : ब्लॉक प्रति-वीडियो स्थिति को प्रक्रिया मेमोरी में बनाए रखता है (video_metadata.video_identifier द्वारा कुंजीबद्ध)। स्टेटलेस या मल्टी-रिप्लिका HTTP रनटाइम्स पर दूरस्थ स्टेप निष्पादन के साथ, क्रमिक अनुरोधों को अलग-अलग वर्कर प्रक्रियाएँ सर्व कर सकती हैं, इसलिए कॉल्स के बीच स्थिति रीसेट हो जाती है और आउटपुट ट्रैकिंग / काउंटिंग / एग्रीगेशन के लिए अर्थहीन हो जाता है। स्थिर फ़्रेम-से-फ़्रेम परिणामों के लिए एक स्थायी WebRTC सत्र में स्थानीय स्टेप निष्पादन का उपयोग करें।
सॉफ्ट - इनपुट छवि : ब्लॉक वीडियो या दोहराए गए-फ़्रेम वर्कफ़्लो से समयगत संदर्भ पर निर्भर करता है। एक स्थिर छवि/फ़ोटो के साथ, ट्रैक करने, तुलना करने, समेकित करने या दृश्यीकृत करने के लिए कोई अर्थपूर्ण इतिहास नहीं होता, इसलिए ब्लॉक बहुत कम या कोई लाभ नहीं देता।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार ज़ोन में समय संस्करण v3 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवि(छवि): समय गणना और स्थिति प्रबंधन के लिए आवश्यक एम्बेडेड वीडियो मेटाडेटा (fps, frame_number, frame_timestamp, video_identifier, वीडियो स्रोत) वाली वर्तमान वीडियो फ्रेम की इनपुट इमेज। ब्लॉक WorkflowImageData ऑब्जेक्ट से video_metadata निकालता है। वीडियो फ़ाइलों के लिए टाइमस्टैम्प (timestamp = frame_number / fps) की गणना हेतु fps और frame_number का उपयोग किया जाता है। स्ट्रीम किए गए वीडियो के लिए, frame_timestamp सीधे उपयोग किया जाता है। video_identifier का उपयोग विभिन्न वीडियो के लिए अलग ट्रैकिंग स्थिति और ज़ोन कॉन्फ़िगरेशन बनाए रखने के लिए किया जाता है। ज़ोन विज़ुअलाइज़ेशन और संदर्भ के लिए उपयोग किया जाता है। इमेज आयामों का उपयोग ज़ोन कोऑर्डिनेट्स सत्यापित करने के लिए किया जाता है। यह संस्करण कुशल ज़ोन कैश प्रबंधन के साथ प्रति वीडियो कई ज़ोनों का समर्थन करता है..detections(Union[object_detection_prediction,instance_segmentation_prediction]): tracker_id जानकारी वाले ट्रैक किए गए डिटेक्शन प्रेडिक्शन (ऑब्जेक्ट डिटेक्शन या instance segmentation)। डिटेक्शनों को किसी ट्रैकिंग ब्लॉक (जैसे Byte Tracker) से आना चाहिए जिसने प्रत्येक फ्रेम में बने रहने वाले अद्वितीय tracker_id मान असाइन किए हों। समय ट्रैकिंग सक्षम करने के लिए प्रत्येक डिटेक्शन के पास tracker_id होना चाहिए। ब्लॉक प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए time_in_zone की गणना इस आधार पर करता है कि उसका track_id पहली बार किसी भी ज़ोन में कब प्रवेश किया। ऑब्जेक्ट्स को 'ज़ोन में' माना जाता है यदि उनका एंकर बिंदु प्रदान किए गए किसी भी ज़ोन के अंदर है। आउटपुट में वही डिटेक्शन time_in_zone metadata (अवधि सेकंड में) के साथ संवर्धित होकर शामिल होंगे। यदि remove_out_of_zone_detections True है, तो केवल किसी भी ज़ोन के अंदर वाले डिटेक्शन आउटपुट में शामिल किए जाते हैं..ज़ोन(list_of_values): बहुभुज ज़ोन कोऑर्डिनेट्स जो समय मापन के लिए एक या अधिक क्षेत्रों को परिभाषित करते हैं। यह एकल बहुभुज ज़ोन या बहुभुज ज़ोनों की सूची हो सकती है। प्रत्येक ज़ोन कम से कम 3 बिंदुओं की सूची होना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 कोऑर्डिनेट्स [x, y] या (x, y) की सूची या टपल होना चाहिए। कोऑर्डिनेट्स पिक्सेल स्पेस में होने चाहिए जो इमेज आयामों से मेल खाते हों। एकल ज़ोन का उदाहरण: [(100, 100), (100, 200), (300, 200), (300, 100)]। कई ज़ोनों का उदाहरण: [[(100, 100), (100, 200), (300, 200), (300, 100)], [(400, 400), (400, 500), (600, 500), (600, 400)]]. यदि उनका triggering_anchor बिंदु प्रदान किए गए किसी भी ज़ोन के अंदर है, तो ऑब्जेक्ट्स को 'ज़ोन में' माना जाता है। ज़ोन कोऑर्डिनेट्स सत्यापित किए जाते हैं और प्रत्येक ज़ोन के लिए PolygonZone ऑब्जेक्ट्स बनाए जाते हैं। ज़ोन कॉन्फ़िगरेशन कैश किए जाते हैं (अधिकतम 100 संयोजन) FIFO eviction के साथ..triggering_anchor(string): डिटेक्शन बाउंडिंग बॉक्स पर वह बिंदु जो ऑब्जेक्ट को 'ज़ोन में' मानने के लिए ज़ोन के अंदर होना चाहिए। विकल्पों में शामिल हैं: 'CENTER' (डिफ़ॉल्ट, बाउंडिंग बॉक्स का केंद्र), 'BOTTOM_CENTER' (निचला मध्य बिंदु), 'TOP_CENTER' (ऊपरी मध्य बिंदु), 'CENTER_LEFT' (मध्य बाएँ बिंदु), 'CENTER_RIGHT' (मध्य दाएँ बिंदु), और अन्य Position enum मान। triggering_anchor यह निर्धारित करता है कि ऑब्जेक्ट के बाउंडिंग बॉक्स के किस भाग की जाँच ज़ोन बहुभुज के विरुद्ध की जाएगी। मानक ज़ोन डिटेक्शन के लिए CENTER का उपयोग करें, ग्राउंड-स्तर ज़ोनों के लिए BOTTOM_CENTER (जैसे, पैरों/वाहन के आधार को ट्रैक करना), या डिटेक्शन आवश्यकताओं के अनुसार अन्य एंकरों का उपयोग करें। डिफ़ॉल्ट 'CENTER' है..remove_out_of_zone_detections(booleanयदि True (डिफ़ॉल्ट) है, तो ज़ोन के बाहर पाए गए डिटेक्शनों को फ़िल्टर कर दिया जाता है और आउटपुट में शामिल नहीं किया जाता। केवल ज़ोन के अंदर वाले डिटेक्शन लौटाए जाते हैं। यदि False है, तो सभी डिटेक्शन आउटपुट में शामिल किए जाते हैं, और ज़ोन के बाहर के ऑब्जेक्ट्स के लिए time_in_zone = 0 होता है। केवल ज़ोन के अंदर मौजूद ऑब्जेक्ट्स पर विश्लेषण केंद्रित करने के लिए True का उपयोग करें, या सभी डिटेक्शनों को ज़ोन स्थिति सहित बनाए रखने के लिए False का उपयोग करें। स्वच्छ, ज़ोन गतिविधि-केंद्रित आउटपुट के लिए डिफ़ॉल्ट True है..reset_out_of_zone_detections(booleanयदि True (डिफ़ॉल्ट) है, तो जब कोई ट्रैक किया गया ऑब्जेक्ट ज़ोन छोड़ देता है, उसकी समय ट्रैकिंग रीसेट हो जाती है (प्रवेश टाइमस्टैम्प साफ़ हो जाता है)। जब ऑब्जेक्ट ज़ोन में पुनः प्रवेश करता है, समय ट्रैकिंग 0 से फिर शुरू होती है। यदि False है, तो ज़ोन छोड़ने के बाद भी समय ट्रैकिंग जारी रहती है, और पुनः प्रवेश संचयी समय बनाए रखता है। ज़ोन में वर्तमान निरंतर समय मापने के लिए True का उपयोग करें (निकास पर रीसेट), या कई प्रविष्टियों में संचयी समय मापने के लिए False का उपयोग करें। निरंतर उपस्थिति अवधि मापने के लिए डिफ़ॉल्ट True है..
आउटपुट
timed_detections(Union[object_detection_prediction,instance_segmentation_prediction]): यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स वाली प्रेडिक्शनobject_detection_predictionया यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शनinstance_segmentation_prediction.
v2
एक परिभाषित बहुभुज ज़ोन के भीतर ट्रैक किए गए ऑब्जेक्ट्स द्वारा बिताए गए समय की गणना और ट्रैक करें, विशिष्ट क्षेत्रों में ऑब्जेक्ट उपस्थिति की अवधि मापें, ज़ोन सदस्यता के आधार पर डिटेक्शनों को फ़िल्टर करें, जब ऑब्जेक्ट ज़ोन छोड़ते हैं तो समय ट्रैकिंग रीसेट करें, और ज़ोन-आधारित एनालिटिक्स, ठहराव समय विश्लेषण, तथा उपस्थिति निगरानी वर्कफ़्लो सक्षम करें।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक प्रत्येक अद्वितीय track ID के लिए प्रवेश और निकास समय ट्रैक करके यह मापता है कि प्रत्येक ट्रैक किया गया ऑब्जेक्ट परिभाषित बहुभुज ज़ोन के भीतर कितनी देर से है। ब्लॉक:
track IDs के साथ ट्रैक किए गए डिटेक्शन प्रेडिक्शंस, एम्बेडेड वीडियो मेटाडेटा वाली एक इमेज, और एक बहुभुज ज़ोन परिभाषा प्राप्त करता है
छवि से वीडियो मेटाडेटा निकालता है:
WorkflowImageData ऑब्जेक्ट से video_metadata तक पहुँचता है
fps, frame_number, frame_timestamp, video_identifier, और वीडियो स्रोत जानकारी निकालता है
विभिन्न वीडियो के लिए अलग ट्रैकिंग स्थिति बनाए रखने हेतु video_identifier का उपयोग करता है
सत्यापित करता है कि डिटेक्शनों में track IDs हैं (tracker_id उपस्थित होना चाहिए):
डिटेक्शनों के किसी ट्रैकिंग ब्लॉक (जैसे Byte Tracker) से आने की आवश्यकता होती है
प्रत्येक ऑब्जेक्ट के पास एक अद्वितीय tracker_id होना चाहिए जो फ्रेमों के बीच बना रहे
यदि tracker_id गायब है तो त्रुटि उत्पन्न करता है
वीडियो के लिए बहुभुज ज़ोन आरंभ करता है या पुनः प्राप्त करता है:
प्रत्येक अद्वितीय वीडियो के लिए ज़ोन कोऑर्डिनेट्स से एक PolygonZone ऑब्जेक्ट बनाता है
ज़ोन कोऑर्डिनेट्स सत्यापित करता है (कम से कम 3 बिंदुओं की सूची होनी चाहिए, जिनमें प्रत्येक में 2 कोऑर्डिनेट होने चाहिए)
video_identifier का उपयोग करके प्रति वीडियो ज़ोन कॉन्फ़िगरेशन संग्रहीत करता है
ज़ोन डिटेक्शन के लिए ट्रिगरिंग एंकर बिंदु (जैसे CENTER, BOTTOM_CENTER) कॉन्फ़िगर करता है
वीडियो के लिए समय ट्रैकिंग स्थिति आरंभ करता है या पुनः प्राप्त करता है:
यह ट्रैक करने वाली एक dictionary बनाए रखता है कि प्रत्येक track_id ज़ोन में कब प्रवेश करता है
video_identifier का उपयोग करके प्रति वीडियो प्रवेश टाइमस्टैम्प संग्रहीत करता है
प्रत्येक वीडियो के लिए अलग ट्रैकिंग स्थिति बनाए रखता है
समय मापन के लिए वर्तमान टाइमस्टैम्प की गणना करता है:
वीडियो फ़ाइलों के लिए: frame_number / fps के रूप में टाइमस्टैम्प की गणना करता है
स्ट्रीम किए गए वीडियो के लिए: metadata से frame_timestamp का उपयोग करता है
अवधि गणना के लिए सटीक समय मापन प्रदान करता है
जाँचता है कि कौन-से डिटेक्शन ज़ोन में हैं:
प्रत्येक डिटेक्शन के एंकर बिंदु के ज़ोन के अंदर होने का परीक्षण करने के लिए polygon zone trigger का उपयोग करता है
triggering_anchor निर्धारित करता है कि बाउंडिंग बॉक्स का कौन-सा बिंदु जाँचा जाएगा (CENTER, BOTTOM_CENTER, आदि)
प्रत्येक डिटेक्शन के लिए एक boolean लौटाता है जो ज़ोन सदस्यता दर्शाता है
प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए समय ट्रैकिंग अपडेट करता है:
ज़ोन में प्रवेश करने वाले ऑब्जेक्ट्स के लिए: यदि पहले से ट्रैक नहीं है तो प्रवेश टाइमस्टैम्प रिकॉर्ड करता है
ज़ोन में मौजूद ऑब्जेक्ट्स के लिए: बिताया गया समय current_timestamp - entry_timestamp के रूप में गणना करता है
ज़ोन छोड़ने वाले ऑब्जेक्ट्स के लिए:
: यदि reset_out_of_zone_detections True है: प्रवेश टाइमस्टैम्प हटाता है (0 पर रीसेट करता है)
: यदि reset_out_of_zone_detections False है: प्रवेश टाइमस्टैम्प बनाए रखता है (ट्रैकिंग जारी रखता है)
ज़ोन के बाहर की डिटेक्शनों को संभालता है:
यदि remove_out_of_zone_detections True है: आउटपुट से ज़ोन के बाहर की डिटेक्शन फ़िल्टर करता है
यदि remove_out_of_zone_detections False है: समय = 0 के साथ ज़ोन के बाहर की डिटेक्शन शामिल करता है
प्रत्येक डिटेक्शन में time_in_zone जानकारी जोड़ता है:
प्रत्येक डिटेक्शन के साथ metadata के रूप में time_in_zone मान (सेकंड में) जोड़ता है
ज़ोन में मौजूद ऑब्जेक्ट्स: समय ज़ोन में बिताई गई अवधि को दर्शाता है
ज़ोन के बाहर मौजूद ऑब्जेक्ट्स: समय 0 है (यदि रीसेट नहीं किया गया हो) या अपरिभाषित है (यदि हटाया गया हो)
time_in_zone जानकारी के साथ डिटेक्शन लौटाता है:
time_in_zone metadata से संवर्धित ट्रैक किए गए डिटेक्शन आउटपुट करता है
remove_out_of_zone_detections सेटिंग के आधार पर फ़िल्टर किए गए या बिना फ़िल्टर किए गए
सभी मूल डिटेक्शन गुणों के साथ-साथ समय ट्रैकिंग जानकारी बनाए रखता है
यह ब्लॉक फ्रेमों के बीच स्थायी ट्रैकिंग स्थिति बनाए रखता है, जिससे उन ऑब्जेक्ट्स के लिए सटीक संचयी समय मापन संभव होता है जो कई फ्रेमों में ज़ोन के भीतर बने रहते हैं। समय उस क्षण से मापा जाता है जब ऑब्जेक्ट पहली बार ज़ोन में प्रवेश करता है (उसके track_id के आधार पर) से लेकर वर्तमान फ्रेम तक, जिससे रीयल-टाइम अवधि ट्रैकिंग मिलती है। ज़ोन को कई बिंदुओं वाले बहुभुज के रूप में परिभाषित किया गया है, जिससे लचीली क्षेत्र परिभाषाएँ संभव होती हैं। triggering_anchor यह निर्धारित करता है कि ज़ोन डिटेक्शन के लिए बाउंडिंग बॉक्स का कौन-सा भाग उपयोग होगा, जिससे ऑब्जेक्ट की स्थिति के आधार पर अलग-अलग ज़ोन प्रवेश/निकास व्यवहार संभव होते हैं।
सामान्य उपयोग के मामले
ठहराव समय विश्लेषण: व्यवहार विश्लेषण के लिए ऑब्जेक्ट्स विशिष्ट क्षेत्रों में कितनी देर रहते हैं, इसे मापें (जैसे, स्टोर सेक्शनों में ग्राहक ठहराव समय मापना, पार्किंग स्थानों में बिताया गया समय ट्रैक करना, प्रतीक्षा क्षेत्रों में समय का विश्लेषण करना), जिससे ठहराव समय एनालिटिक्स वर्कफ़्लो सक्षम होते हैं
ज़ोन-आधारित निगरानी: सुरक्षा और संरक्षा के लिए परिभाषित क्षेत्रों में ऑब्जेक्ट उपस्थिति की निगरानी करें (जैसे, प्रतिबंधित क्षेत्रों में रुके रहने का पता लगाना, खतरे वाले ज़ोनों में समय की निगरानी करना, सुरक्षित ज़ोनों में उपस्थिति ट्रैक करना), जिससे ज़ोन निगरानी वर्कफ़्लो सक्षम होते हैं
रिटेल एनालिटिक्स: रिटेल अंतर्दृष्टि के लिए अलग-अलग स्टोर सेक्शनों में ग्राहक समय ट्रैक करें (जैसे, उत्पाद गलियारों में समय मापना, खरीदारी पैटर्न का विश्लेषण करना, विभाग सहभागिता ट्रैक करना), जिससे रिटेल एनालिटिक्स वर्कफ़्लो सक्षम होते हैं
अधिभोग प्रबंधन: स्थान उपयोग के लिए स्थानों में ऑब्जेक्ट्स द्वारा बिताया गया समय मापें (जैसे, वाहन पार्किंग अवधि ट्रैक करना, टेबल अधिभोग समय मापना, स्थान उपयोग पैटर्न का विश्लेषण करना), जिससे अधिभोग प्रबंधन वर्कफ़्लो सक्षम होते हैं
सुरक्षा अनुपालन: प्रतिबंधित या समय-सीमित ज़ोनों में समय उल्लंघनों की निगरानी करें (जैसे, खतरनाक क्षेत्रों में लंबे समय तक रुकने का पता लगाना, समय सीमा उल्लंघनों की निगरानी करना, सुरक्षा अनुपालन ट्रैक करना), जिससे सुरक्षा निगरानी वर्कफ़्लो सक्षम होते हैं
यातायात विश्लेषण: ट्रैफ़िक ज़ोनों या चौराहों में वाहनों द्वारा बिताया गया समय मापें (जैसे, चौराहों पर समय ट्रैक करना, कतार प्रतीक्षा समय मापना, ट्रैफ़िक प्रवाह पैटर्न का विश्लेषण करना), जिससे यातायात एनालिटिक्स वर्कफ़्लो सक्षम होते हैं
अन्य ब्लॉक्स से कनेक्ट करना
यह ब्लॉक एम्बेडेड वीडियो मेटाडेटा, ट्रैक किए गए डिटेक्शन, और ज़ोन कोऑर्डिनेट्स वाली एक इमेज प्राप्त करता है, और time_in_zone metadata के साथ timed_detections उत्पन्न करता है:
Byte Tracker ब्लॉक्स के बाद ट्रैक किए गए ऑब्जेक्ट्स के समय को मापने के लिए (जैसे, ट्रैक किए गए ऑब्जेक्ट्स के लिए ज़ोनों में समय ट्रैक करना, सुसंगत IDs के साथ ठहराव समय मापना, ट्रैक किए गए ऑब्जेक्ट की उपस्थिति का विश्लेषण करना), जिससे tracking-to-time वर्कफ़्लो सक्षम होते हैं
ज़ोन परिभाषा ब्लॉकों के बाद परिभाषित क्षेत्रों पर समय ट्रैकिंग लागू करने के लिए (जैसे, बहुभुज ज़ोनों में समय मापना, कस्टम ज़ोनों में अवधि ट्रैक करना, ज़ोन-आधारित उपस्थिति का विश्लेषण करना), जिससे zone-to-time वर्कफ़्लो सक्षम होते हैं
लॉजिक ब्लॉक्स से पहले जैसे Continue If, ताकि ज़ोन में समय के आधार पर निर्णय लिए जा सकें (जैसे, यदि समय थ्रेशहोल्ड से अधिक हो तो जारी रखें, ठहराव समय के आधार पर फ़िल्टर करें, समय उल्लंघनों पर क्रियाएँ ट्रिगर करें), जिससे समय-आधारित निर्णय वर्कफ़्लो सक्षम होते हैं
विश्लेषण ब्लॉकों से पहले समय-आधारित मेट्रिक्स का विश्लेषण करने के लिए (जैसे, ठहराव समय पैटर्न का विश्लेषण, time-in-zone डेटा प्रोसेस करना, अवधि मेट्रिक्स के साथ काम करना), जिससे समय विश्लेषण वर्कफ़्लो सक्षम होते हैं
सूचना ब्लॉकों से पहले समय उल्लंघनों या थ्रेशहोल्ड पर अलर्ट करने के लिए (जैसे, लंबे समय तक रुकने पर अलर्ट, समय सीमा उल्लंघनों पर सूचना, समय-आधारित अलर्ट ट्रिगर करना), जिससे समय-आधारित सूचना वर्कफ़्लो सक्षम होते हैं
डेटा संग्रहण ब्लॉकों से पहले समय मेट्रिक्स रिकॉर्ड करने के लिए (जैसे, ठहराव समय डेटा संग्रहीत करना, time-in-zone मेट्रिक्स लॉग करना, अवधि मापन रिकॉर्ड करना), जिससे समय मेट्रिक्स लॉगिंग वर्कफ़्लो सक्षम होते हैं
संस्करणों के बीच अंतर
v1 से उन्नत:
सरल इनपुट: उपयोग करता है
छविऐसा input जो एक अलगmetadataफ़ील्ड की आवश्यकता के बजाय एम्बेडेड वीडियो मेटाडेटा रखता है, जिससे वर्कफ़्लो कनेक्शन सरल होते हैं और इनपुट जटिलता कम होती हैबेहतर एकीकरण: image-आधारित वर्कफ़्लो के साथ बेहतर एकीकरण, क्योंकि वीडियो मेटाडेटा अलग metadata input की आवश्यकता के बजाय सीधे इमेज ऑब्जेक्ट से एक्सेस किया जाता है
सुगठित वर्कफ़्लो: आवश्यक इनपुट की संख्या कम करता है, जिससे उन वर्कफ़्लो में कनेक्ट करना आसान हो जाता है जहाँ इमेज और मेटाडेटा एक ही स्रोत से आते हैं
आवश्यकताएँ
यह ब्लॉक tracker_id जानकारी वाले ट्रैक किए गए डिटेक्शन की आवश्यकता रखता है (डिटेक्शन किसी ट्रैकिंग ब्लॉक जैसे Byte Tracker से आने चाहिए)। ज़ोन को कम से कम 3 बिंदुओं की सूची के रूप में परिभाषित किया जाना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 कोऑर्डिनेट्स (x, y) की सूची या टपल हो। सटीक समय मापन की गणना के लिए इमेज के video_metadata में वीडियो फ़ाइलों के लिए फ्रेम दर (fps) या स्ट्रीम किए गए वीडियो के लिए फ्रेम टाइमस्टैम्प शामिल होने चाहिए। यह ब्लॉक प्रत्येक वीडियो के लिए फ्रेमों के बीच स्थायी ट्रैकिंग स्थिति बनाए रखता है, इसलिए इसे उन वीडियो वर्कफ़्लो में उपयोग करना चाहिए जहाँ फ्रेम क्रमिक रूप से प्रोसेस होते हैं। सटीक समय मापन के लिए, डिटेक्शनों को वैध track IDs के साथ फ्रेमों में लगातार प्रदान किया जाना चाहिए।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/time_in_zone@v2 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
ज़ोन
List[Any]
बहुभुज ज़ोन कोऑर्डिनेट्स जो समय मापन के लिए क्षेत्र को परिभाषित करते हैं। यह कम से कम 3 बिंदुओं की सूची होना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 कोऑर्डिनेट्स [x, y] या (x, y) की सूची या टपल हो। कोऑर्डिनेट्स पिक्सेल स्पेस में होने चाहिए जो इमेज आयामों से मेल खाते हों। उदाहरण: एक चतुर्भुज ज़ोन के लिए [(100, 100), (100, 200), (300, 200), (300, 100)]। ज़ोन वह बहुभुज क्षेत्र परिभाषित करता है जहाँ समय ट्रैकिंग होती है। जब उनका triggering_anchor बिंदु इस बहुभुज के अंदर होता है, तो ऑब्जेक्ट्स को 'ज़ोन में' माना जाता है। ज़ोन कोऑर्डिनेट्स सत्यापित किए जाते हैं और प्रत्येक वीडियो के लिए एक PolygonZone ऑब्जेक्ट बनाया जाता है..
✅
triggering_anchor
str
डिटेक्शन बाउंडिंग बॉक्स पर वह बिंदु जो ऑब्जेक्ट को 'ज़ोन में' मानने के लिए ज़ोन के अंदर होना चाहिए। विकल्पों में शामिल हैं: 'CENTER' (डिफ़ॉल्ट, बाउंडिंग बॉक्स का केंद्र), 'BOTTOM_CENTER' (निचला मध्य बिंदु), 'TOP_CENTER' (ऊपरी मध्य बिंदु), 'CENTER_LEFT' (मध्य बाएँ बिंदु), 'CENTER_RIGHT' (मध्य दाएँ बिंदु), और अन्य Position enum मान। triggering_anchor यह निर्धारित करता है कि ऑब्जेक्ट के बाउंडिंग बॉक्स के किस भाग की जाँच ज़ोन बहुभुज के विरुद्ध की जाएगी। मानक ज़ोन डिटेक्शन के लिए CENTER का उपयोग करें, ग्राउंड-स्तर ज़ोनों के लिए BOTTOM_CENTER (जैसे, पैरों/वाहन के आधार को ट्रैक करना), या डिटेक्शन आवश्यकताओं के अनुसार अन्य एंकरों का उपयोग करें। डिफ़ॉल्ट 'CENTER' है..
✅
remove_out_of_zone_detections
bool
यदि True (डिफ़ॉल्ट) है, तो ज़ोन के बाहर पाए गए डिटेक्शनों को फ़िल्टर कर दिया जाता है और आउटपुट में शामिल नहीं किया जाता। केवल ज़ोन के अंदर वाले डिटेक्शन लौटाए जाते हैं। यदि False है, तो सभी डिटेक्शन आउटपुट में शामिल किए जाते हैं, और ज़ोन के बाहर के ऑब्जेक्ट्स के लिए time_in_zone = 0 होता है। केवल ज़ोन के अंदर मौजूद ऑब्जेक्ट्स पर विश्लेषण केंद्रित करने के लिए True का उपयोग करें, या सभी डिटेक्शनों को ज़ोन स्थिति सहित बनाए रखने के लिए False का उपयोग करें। स्वच्छ, ज़ोन गतिविधि-केंद्रित आउटपुट के लिए डिफ़ॉल्ट True है..
✅
reset_out_of_zone_detections
bool
यदि True (डिफ़ॉल्ट) है, तो जब कोई ट्रैक किया गया ऑब्जेक्ट ज़ोन छोड़ देता है, उसकी समय ट्रैकिंग रीसेट हो जाती है (प्रवेश टाइमस्टैम्प साफ़ हो जाता है)। जब ऑब्जेक्ट ज़ोन में पुनः प्रवेश करता है, समय ट्रैकिंग 0 से फिर शुरू होती है। यदि False है, तो ज़ोन छोड़ने के बाद भी समय ट्रैकिंग जारी रहती है, और पुनः प्रवेश संचयी समय बनाए रखता है। ज़ोन में वर्तमान निरंतर समय मापने के लिए True का उपयोग करें (निकास पर रीसेट), या कई प्रविष्टियों में संचयी समय मापने के लिए False का उपयोग करें। निरंतर उपस्थिति अवधि मापने के लिए डिफ़ॉल्ट True है..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
रनटाइम संगतता
सॉफ्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन दूरस्थ; इनपुट वीडियो : ब्लॉक प्रति-वीडियो स्थिति को प्रक्रिया मेमोरी में बनाए रखता है (video_metadata.video_identifier द्वारा कुंजीबद्ध)। स्टेटलेस या मल्टी-रिप्लिका HTTP रनटाइम्स पर दूरस्थ स्टेप निष्पादन के साथ, क्रमिक अनुरोधों को अलग-अलग वर्कर प्रक्रियाएँ सर्व कर सकती हैं, इसलिए कॉल्स के बीच स्थिति रीसेट हो जाती है और आउटपुट ट्रैकिंग / काउंटिंग / एग्रीगेशन के लिए अर्थहीन हो जाता है। स्थिर फ़्रेम-से-फ़्रेम परिणामों के लिए एक स्थायी WebRTC सत्र में स्थानीय स्टेप निष्पादन का उपयोग करें।
सॉफ्ट - इनपुट छवि : ब्लॉक वीडियो या दोहराए गए-फ़्रेम वर्कफ़्लो से समयगत संदर्भ पर निर्भर करता है। एक स्थिर छवि/फ़ोटो के साथ, ट्रैक करने, तुलना करने, समेकित करने या दृश्यीकृत करने के लिए कोई अर्थपूर्ण इतिहास नहीं होता, इसलिए ब्लॉक बहुत कम या कोई लाभ नहीं देता।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार ज़ोन में समय संस्करण v2 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवि(छवि): समय गणना और स्थिति प्रबंधन के लिए आवश्यक एम्बेडेड वीडियो मेटाडेटा (fps, frame_number, frame_timestamp, video_identifier, video source) वाली वर्तमान वीडियो फ्रेम की इनपुट इमेज। ब्लॉक WorkflowImageData ऑब्जेक्ट से video_metadata निकालता है। वीडियो फ़ाइलों के लिए टाइमस्टैम्प (timestamp = frame_number / fps) की गणना हेतु fps और frame_number का उपयोग किया जाता है। स्ट्रीम किए गए वीडियो के लिए, frame_timestamp सीधे उपयोग किया जाता है। video_identifier का उपयोग विभिन्न वीडियो के लिए अलग ट्रैकिंग स्थिति और ज़ोन कॉन्फ़िगरेशन बनाए रखने के लिए किया जाता है। ज़ोन विज़ुअलाइज़ेशन और संदर्भ के लिए उपयोग किया जाता है। इमेज आयामों का उपयोग ज़ोन कोऑर्डिनेट्स सत्यापित करने के लिए किया जाता है। यह संस्करण इनपुट को इमेज ऑब्जेक्ट में मेटाडेटा एम्बेड करके सरल बनाता है, अलग metadata फ़ील्ड की आवश्यकता के बजाय..detections(Union[object_detection_prediction,instance_segmentation_prediction]): tracker_id जानकारी वाले ट्रैक किए गए डिटेक्शन प्रेडिक्शन (ऑब्जेक्ट डिटेक्शन या instance segmentation)। डिटेक्शनों को किसी ट्रैकिंग ब्लॉक (जैसे Byte Tracker) से आना चाहिए जिसने प्रत्येक फ्रेम में बने रहने वाले अद्वितीय tracker_id मान असाइन किए हों। समय ट्रैकिंग सक्षम करने के लिए प्रत्येक डिटेक्शन के पास tracker_id होना चाहिए। ब्लॉक प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए time_in_zone की गणना इस आधार पर करता है कि उसका track_id पहली बार ज़ोन में कब प्रवेश किया। आउटपुट में वही डिटेक्शन time_in_zone metadata (अवधि सेकंड में) के साथ संवर्धित होकर शामिल होंगे। यदि remove_out_of_zone_detections True है, तो केवल ज़ोन के अंदर वाले डिटेक्शन आउटपुट में शामिल किए जाते हैं..ज़ोन(list_of_values): बहुभुज ज़ोन कोऑर्डिनेट्स जो समय मापन के लिए क्षेत्र को परिभाषित करते हैं। यह कम से कम 3 बिंदुओं की सूची होना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 कोऑर्डिनेट्स [x, y] या (x, y) की सूची या टपल हो। कोऑर्डिनेट्स पिक्सेल स्पेस में होने चाहिए जो इमेज आयामों से मेल खाते हों। उदाहरण: एक चतुर्भुज ज़ोन के लिए [(100, 100), (100, 200), (300, 200), (300, 100)]। ज़ोन वह बहुभुज क्षेत्र परिभाषित करता है जहाँ समय ट्रैकिंग होती है। जब उनका triggering_anchor बिंदु इस बहुभुज के अंदर होता है, तो ऑब्जेक्ट्स को 'ज़ोन में' माना जाता है। ज़ोन कोऑर्डिनेट्स सत्यापित किए जाते हैं और प्रत्येक वीडियो के लिए एक PolygonZone ऑब्जेक्ट बनाया जाता है..triggering_anchor(string): डिटेक्शन बाउंडिंग बॉक्स पर वह बिंदु जो ऑब्जेक्ट को 'ज़ोन में' मानने के लिए ज़ोन के अंदर होना चाहिए। विकल्पों में शामिल हैं: 'CENTER' (डिफ़ॉल्ट, बाउंडिंग बॉक्स का केंद्र), 'BOTTOM_CENTER' (निचला मध्य बिंदु), 'TOP_CENTER' (ऊपरी मध्य बिंदु), 'CENTER_LEFT' (मध्य बाएँ बिंदु), 'CENTER_RIGHT' (मध्य दाएँ बिंदु), और अन्य Position enum मान। triggering_anchor यह निर्धारित करता है कि ऑब्जेक्ट के बाउंडिंग बॉक्स के किस भाग की जाँच ज़ोन बहुभुज के विरुद्ध की जाएगी। मानक ज़ोन डिटेक्शन के लिए CENTER का उपयोग करें, ग्राउंड-स्तर ज़ोनों के लिए BOTTOM_CENTER (जैसे, पैरों/वाहन के आधार को ट्रैक करना), या डिटेक्शन आवश्यकताओं के अनुसार अन्य एंकरों का उपयोग करें। डिफ़ॉल्ट 'CENTER' है..remove_out_of_zone_detections(booleanयदि True (डिफ़ॉल्ट) है, तो ज़ोन के बाहर पाए गए डिटेक्शनों को फ़िल्टर कर दिया जाता है और आउटपुट में शामिल नहीं किया जाता। केवल ज़ोन के अंदर वाले डिटेक्शन लौटाए जाते हैं। यदि False है, तो सभी डिटेक्शन आउटपुट में शामिल किए जाते हैं, और ज़ोन के बाहर के ऑब्जेक्ट्स के लिए time_in_zone = 0 होता है। केवल ज़ोन के अंदर मौजूद ऑब्जेक्ट्स पर विश्लेषण केंद्रित करने के लिए True का उपयोग करें, या सभी डिटेक्शनों को ज़ोन स्थिति सहित बनाए रखने के लिए False का उपयोग करें। स्वच्छ, ज़ोन गतिविधि-केंद्रित आउटपुट के लिए डिफ़ॉल्ट True है..reset_out_of_zone_detections(booleanयदि True (डिफ़ॉल्ट) है, तो जब कोई ट्रैक किया गया ऑब्जेक्ट ज़ोन छोड़ देता है, उसकी समय ट्रैकिंग रीसेट हो जाती है (प्रवेश टाइमस्टैम्प साफ़ हो जाता है)। जब ऑब्जेक्ट ज़ोन में पुनः प्रवेश करता है, समय ट्रैकिंग 0 से फिर शुरू होती है। यदि False है, तो ज़ोन छोड़ने के बाद भी समय ट्रैकिंग जारी रहती है, और पुनः प्रवेश संचयी समय बनाए रखता है। ज़ोन में वर्तमान निरंतर समय मापने के लिए True का उपयोग करें (निकास पर रीसेट), या कई प्रविष्टियों में संचयी समय मापने के लिए False का उपयोग करें। निरंतर उपस्थिति अवधि मापने के लिए डिफ़ॉल्ट True है..
आउटपुट
timed_detections(Union[object_detection_prediction,instance_segmentation_prediction]): यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स वाली प्रेडिक्शनobject_detection_predictionया यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शनinstance_segmentation_prediction.
v1
एक परिभाषित बहुभुज ज़ोन के भीतर ट्रैक किए गए ऑब्जेक्ट्स द्वारा बिताए गए समय की गणना और ट्रैक करें, विशिष्ट क्षेत्रों में ऑब्जेक्ट उपस्थिति की अवधि मापें, ज़ोन सदस्यता के आधार पर डिटेक्शनों को फ़िल्टर करें, जब ऑब्जेक्ट ज़ोन छोड़ते हैं तो समय ट्रैकिंग रीसेट करें, और ज़ोन-आधारित एनालिटिक्स, ठहराव समय विश्लेषण, तथा उपस्थिति निगरानी वर्कफ़्लो सक्षम करें।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक प्रत्येक अद्वितीय track ID के लिए प्रवेश और निकास समय ट्रैक करके यह मापता है कि प्रत्येक ट्रैक किया गया ऑब्जेक्ट परिभाषित बहुभुज ज़ोन के भीतर कितनी देर से है। ब्लॉक:
track IDs के साथ ट्रैक किए गए डिटेक्शन प्रेडिक्शंस, एक इमेज, वीडियो मेटाडेटा, और एक बहुभुज ज़ोन परिभाषा प्राप्त करता है
सत्यापित करता है कि डिटेक्शनों में track IDs हैं (tracker_id उपस्थित होना चाहिए):
डिटेक्शनों के किसी ट्रैकिंग ब्लॉक (जैसे Byte Tracker) से आने की आवश्यकता होती है
प्रत्येक ऑब्जेक्ट के पास एक अद्वितीय tracker_id होना चाहिए जो फ्रेमों के बीच बना रहे
यदि tracker_id गायब है तो त्रुटि उत्पन्न करता है
वीडियो के लिए बहुभुज ज़ोन आरंभ करता है या पुनः प्राप्त करता है:
प्रत्येक अद्वितीय वीडियो के लिए ज़ोन कोऑर्डिनेट्स से एक PolygonZone ऑब्जेक्ट बनाता है
ज़ोन कोऑर्डिनेट्स सत्यापित करता है (कम से कम 3 बिंदुओं की सूची होनी चाहिए, जिनमें प्रत्येक में 2 कोऑर्डिनेट होने चाहिए)
video_identifier का उपयोग करके प्रति वीडियो ज़ोन कॉन्फ़िगरेशन संग्रहीत करता है
ज़ोन डिटेक्शन के लिए ट्रिगरिंग एंकर बिंदु (जैसे CENTER, BOTTOM_CENTER) कॉन्फ़िगर करता है
वीडियो के लिए समय ट्रैकिंग स्थिति आरंभ करता है या पुनः प्राप्त करता है:
यह ट्रैक करने वाली एक dictionary बनाए रखता है कि प्रत्येक track_id ज़ोन में कब प्रवेश करता है
video_identifier का उपयोग करके प्रति वीडियो प्रवेश टाइमस्टैम्प संग्रहीत करता है
प्रत्येक वीडियो के लिए अलग ट्रैकिंग स्थिति बनाए रखता है
समय मापन के लिए वर्तमान टाइमस्टैम्प की गणना करता है:
वीडियो फ़ाइलों के लिए: frame_number / fps के रूप में टाइमस्टैम्प की गणना करता है
स्ट्रीम किए गए वीडियो के लिए: metadata से frame_timestamp का उपयोग करता है
अवधि गणना के लिए सटीक समय मापन प्रदान करता है
जाँचता है कि कौन-से डिटेक्शन ज़ोन में हैं:
प्रत्येक डिटेक्शन के एंकर बिंदु के ज़ोन के अंदर होने का परीक्षण करने के लिए polygon zone trigger का उपयोग करता है
triggering_anchor निर्धारित करता है कि बाउंडिंग बॉक्स का कौन-सा बिंदु जाँचा जाएगा (CENTER, BOTTOM_CENTER, आदि)
प्रत्येक डिटेक्शन के लिए एक boolean लौटाता है जो ज़ोन सदस्यता दर्शाता है
प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए समय ट्रैकिंग अपडेट करता है:
ज़ोन में प्रवेश करने वाले ऑब्जेक्ट्स के लिए: यदि पहले से ट्रैक नहीं है तो प्रवेश टाइमस्टैम्प रिकॉर्ड करता है
ज़ोन में मौजूद ऑब्जेक्ट्स के लिए: बिताया गया समय current_timestamp - entry_timestamp के रूप में गणना करता है
ज़ोन छोड़ने वाले ऑब्जेक्ट्स के लिए:
: यदि reset_out_of_zone_detections True है: प्रवेश टाइमस्टैम्प हटाता है (0 पर रीसेट करता है)
: यदि reset_out_of_zone_detections False है: प्रवेश टाइमस्टैम्प बनाए रखता है (ट्रैकिंग जारी रखता है)
ज़ोन के बाहर की डिटेक्शनों को संभालता है:
यदि remove_out_of_zone_detections True है: आउटपुट से ज़ोन के बाहर की डिटेक्शन फ़िल्टर करता है
यदि remove_out_of_zone_detections False है: समय = 0 के साथ ज़ोन के बाहर की डिटेक्शन शामिल करता है
प्रत्येक डिटेक्शन में time_in_zone जानकारी जोड़ता है:
प्रत्येक डिटेक्शन के साथ metadata के रूप में time_in_zone मान (सेकंड में) जोड़ता है
ज़ोन में मौजूद ऑब्जेक्ट्स: समय ज़ोन में बिताई गई अवधि को दर्शाता है
ज़ोन के बाहर मौजूद ऑब्जेक्ट्स: समय 0 है (यदि रीसेट नहीं किया गया हो) या अपरिभाषित है (यदि हटाया गया हो)
time_in_zone जानकारी के साथ डिटेक्शन लौटाता है:
time_in_zone metadata से संवर्धित ट्रैक किए गए डिटेक्शन आउटपुट करता है
remove_out_of_zone_detections सेटिंग के आधार पर फ़िल्टर किए गए या बिना फ़िल्टर किए गए
सभी मूल डिटेक्शन गुणों के साथ-साथ समय ट्रैकिंग जानकारी बनाए रखता है
यह ब्लॉक फ्रेमों के बीच स्थायी ट्रैकिंग स्थिति बनाए रखता है, जिससे उन ऑब्जेक्ट्स के लिए सटीक संचयी समय मापन संभव होता है जो कई फ्रेमों में ज़ोन के भीतर बने रहते हैं। समय उस क्षण से मापा जाता है जब ऑब्जेक्ट पहली बार ज़ोन में प्रवेश करता है (उसके track_id के आधार पर) से लेकर वर्तमान फ्रेम तक, जिससे रीयल-टाइम अवधि ट्रैकिंग मिलती है। ज़ोन को कई बिंदुओं वाले बहुभुज के रूप में परिभाषित किया गया है, जिससे लचीली क्षेत्र परिभाषाएँ संभव होती हैं। triggering_anchor यह निर्धारित करता है कि ज़ोन डिटेक्शन के लिए बाउंडिंग बॉक्स का कौन-सा भाग उपयोग होगा, जिससे ऑब्जेक्ट की स्थिति के आधार पर अलग-अलग ज़ोन प्रवेश/निकास व्यवहार संभव होते हैं।
सामान्य उपयोग के मामले
ठहराव समय विश्लेषण: व्यवहार विश्लेषण के लिए ऑब्जेक्ट्स विशिष्ट क्षेत्रों में कितनी देर रहते हैं, इसे मापें (जैसे, स्टोर सेक्शनों में ग्राहक ठहराव समय मापना, पार्किंग स्थानों में बिताया गया समय ट्रैक करना, प्रतीक्षा क्षेत्रों में समय का विश्लेषण करना), जिससे ठहराव समय एनालिटिक्स वर्कफ़्लो सक्षम होते हैं
ज़ोन-आधारित निगरानी: सुरक्षा और संरक्षा के लिए परिभाषित क्षेत्रों में ऑब्जेक्ट उपस्थिति की निगरानी करें (जैसे, प्रतिबंधित क्षेत्रों में रुके रहने का पता लगाना, खतरे वाले ज़ोनों में समय की निगरानी करना, सुरक्षित ज़ोनों में उपस्थिति ट्रैक करना), जिससे ज़ोन निगरानी वर्कफ़्लो सक्षम होते हैं
रिटेल एनालिटिक्स: रिटेल अंतर्दृष्टि के लिए अलग-अलग स्टोर सेक्शनों में ग्राहक समय ट्रैक करें (जैसे, उत्पाद गलियारों में समय मापना, खरीदारी पैटर्न का विश्लेषण करना, विभाग सहभागिता ट्रैक करना), जिससे रिटेल एनालिटिक्स वर्कफ़्लो सक्षम होते हैं
अधिभोग प्रबंधन: स्थान उपयोग के लिए स्थानों में ऑब्जेक्ट्स द्वारा बिताया गया समय मापें (जैसे, वाहन पार्किंग अवधि ट्रैक करना, टेबल अधिभोग समय मापना, स्थान उपयोग पैटर्न का विश्लेषण करना), जिससे अधिभोग प्रबंधन वर्कफ़्लो सक्षम होते हैं
सुरक्षा अनुपालन: प्रतिबंधित या समय-सीमित ज़ोनों में समय उल्लंघनों की निगरानी करें (जैसे, खतरनाक क्षेत्रों में लंबे समय तक रुकने का पता लगाना, समय सीमा उल्लंघनों की निगरानी करना, सुरक्षा अनुपालन ट्रैक करना), जिससे सुरक्षा निगरानी वर्कफ़्लो सक्षम होते हैं
यातायात विश्लेषण: ट्रैफ़िक ज़ोनों या चौराहों में वाहनों द्वारा बिताया गया समय मापें (जैसे, चौराहों पर समय ट्रैक करना, कतार प्रतीक्षा समय मापना, ट्रैफ़िक प्रवाह पैटर्न का विश्लेषण करना), जिससे यातायात एनालिटिक्स वर्कफ़्लो सक्षम होते हैं
अन्य ब्लॉक्स से कनेक्ट करना
यह ब्लॉक ट्रैक किए गए डिटेक्शन, इमेज, वीडियो मेटाडेटा, और ज़ोन कोऑर्डिनेट्स प्राप्त करता है, और time_in_zone metadata के साथ timed_detections उत्पन्न करता है:
Byte Tracker ब्लॉक्स के बाद ट्रैक किए गए ऑब्जेक्ट्स के समय को मापने के लिए (जैसे, ट्रैक किए गए ऑब्जेक्ट्स के लिए ज़ोनों में समय ट्रैक करना, सुसंगत IDs के साथ ठहराव समय मापना, ट्रैक किए गए ऑब्जेक्ट की उपस्थिति का विश्लेषण करना), जिससे tracking-to-time वर्कफ़्लो सक्षम होते हैं
ज़ोन परिभाषा ब्लॉकों के बाद परिभाषित क्षेत्रों पर समय ट्रैकिंग लागू करने के लिए (जैसे, बहुभुज ज़ोनों में समय मापना, कस्टम ज़ोनों में अवधि ट्रैक करना, ज़ोन-आधारित उपस्थिति का विश्लेषण करना), जिससे zone-to-time वर्कफ़्लो सक्षम होते हैं
लॉजिक ब्लॉक्स से पहले जैसे Continue If, ताकि ज़ोन में समय के आधार पर निर्णय लिए जा सकें (जैसे, यदि समय थ्रेशहोल्ड से अधिक हो तो जारी रखें, ठहराव समय के आधार पर फ़िल्टर करें, समय उल्लंघनों पर क्रियाएँ ट्रिगर करें), जिससे समय-आधारित निर्णय वर्कफ़्लो सक्षम होते हैं
विश्लेषण ब्लॉकों से पहले समय-आधारित मेट्रिक्स का विश्लेषण करने के लिए (जैसे, ठहराव समय पैटर्न का विश्लेषण, time-in-zone डेटा प्रोसेस करना, अवधि मेट्रिक्स के साथ काम करना), जिससे समय विश्लेषण वर्कफ़्लो सक्षम होते हैं
सूचना ब्लॉकों से पहले समय उल्लंघनों या थ्रेशहोल्ड पर अलर्ट करने के लिए (जैसे, लंबे समय तक रुकने पर अलर्ट, समय सीमा उल्लंघनों पर सूचना, समय-आधारित अलर्ट ट्रिगर करना), जिससे समय-आधारित सूचना वर्कफ़्लो सक्षम होते हैं
डेटा संग्रहण ब्लॉकों से पहले समय मेट्रिक्स रिकॉर्ड करने के लिए (जैसे, ठहराव समय डेटा संग्रहीत करना, time-in-zone मेट्रिक्स लॉग करना, अवधि मापन रिकॉर्ड करना), जिससे समय मेट्रिक्स लॉगिंग वर्कफ़्लो सक्षम होते हैं
आवश्यकताएँ
यह ब्लॉक tracker_id जानकारी वाले ट्रैक किए गए डिटेक्शन की आवश्यकता रखता है (डिटेक्शन किसी ट्रैकिंग ब्लॉक जैसे Byte Tracker से आने चाहिए)। ज़ोन को कम से कम 3 बिंदुओं की सूची के रूप में परिभाषित किया जाना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 कोऑर्डिनेट्स (x, y) की सूची या टपल हो। सटीक समय मापन की गणना के लिए ब्लॉक को वीडियो फ़ाइलों के लिए फ्रेम दर (fps) या स्ट्रीम किए गए वीडियो के लिए फ्रेम टाइमस्टैम्प सहित वीडियो मेटाडेटा की आवश्यकता होती है। यह ब्लॉक प्रत्येक वीडियो के लिए फ्रेमों के बीच स्थायी ट्रैकिंग स्थिति बनाए रखता है, इसलिए इसे उन वीडियो वर्कफ़्लो में उपयोग करना चाहिए जहाँ फ्रेम क्रमिक रूप से प्रोसेस होते हैं। सटीक समय मापन के लिए, डिटेक्शनों को वैध track IDs के साथ फ्रेमों में लगातार प्रदान किया जाना चाहिए।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/time_in_zone@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
ज़ोन
List[Any]
बहुभुज ज़ोन कोऑर्डिनेट्स जो समय मापन के लिए क्षेत्र को परिभाषित करते हैं। यह कम से कम 3 बिंदुओं की सूची होना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 कोऑर्डिनेट्स [x, y] या (x, y) की सूची या टपल हो। कोऑर्डिनेट्स पिक्सेल स्पेस में होने चाहिए जो इमेज आयामों से मेल खाते हों। उदाहरण: चतुर्भुज ज़ोन के लिए [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]। ज़ोन वह बहुभुज क्षेत्र परिभाषित करता है जहाँ समय ट्रैकिंग होती है। जब उनका triggering_anchor बिंदु इस बहुभुज के अंदर होता है, तो ऑब्जेक्ट्स को 'ज़ोन में' माना जाता है। ज़ोन कोऑर्डिनेट्स सत्यापित किए जाते हैं और प्रत्येक वीडियो के लिए एक PolygonZone ऑब्जेक्ट बनाया जाता है..
✅
triggering_anchor
str
डिटेक्शन बाउंडिंग बॉक्स पर वह बिंदु जो ऑब्जेक्ट को 'ज़ोन में' मानने के लिए ज़ोन के अंदर होना चाहिए। विकल्पों में शामिल हैं: 'CENTER' (डिफ़ॉल्ट, बाउंडिंग बॉक्स का केंद्र), 'BOTTOM_CENTER' (निचला मध्य बिंदु), 'TOP_CENTER' (ऊपरी मध्य बिंदु), 'CENTER_LEFT' (मध्य बाएँ बिंदु), 'CENTER_RIGHT' (मध्य दाएँ बिंदु), और अन्य Position enum मान। triggering_anchor यह निर्धारित करता है कि ऑब्जेक्ट के बाउंडिंग बॉक्स के किस भाग की जाँच ज़ोन बहुभुज के विरुद्ध की जाएगी। मानक ज़ोन डिटेक्शन के लिए CENTER का उपयोग करें, ग्राउंड-स्तर ज़ोनों के लिए BOTTOM_CENTER (जैसे, पैरों/वाहन के आधार को ट्रैक करना), या डिटेक्शन आवश्यकताओं के अनुसार अन्य एंकरों का उपयोग करें। डिफ़ॉल्ट 'CENTER' है..
✅
remove_out_of_zone_detections
bool
यदि True (डिफ़ॉल्ट) है, तो ज़ोन के बाहर पाए गए डिटेक्शनों को फ़िल्टर कर दिया जाता है और आउटपुट में शामिल नहीं किया जाता। केवल ज़ोन के अंदर वाले डिटेक्शन लौटाए जाते हैं। यदि False है, तो सभी डिटेक्शन आउटपुट में शामिल किए जाते हैं, और ज़ोन के बाहर के ऑब्जेक्ट्स के लिए time_in_zone = 0 होता है। केवल ज़ोन के अंदर मौजूद ऑब्जेक्ट्स पर विश्लेषण केंद्रित करने के लिए True का उपयोग करें, या सभी डिटेक्शनों को ज़ोन स्थिति सहित बनाए रखने के लिए False का उपयोग करें। स्वच्छ, ज़ोन गतिविधि-केंद्रित आउटपुट के लिए डिफ़ॉल्ट True है..
✅
reset_out_of_zone_detections
bool
यदि True (डिफ़ॉल्ट) है, तो जब कोई ट्रैक किया गया ऑब्जेक्ट ज़ोन छोड़ देता है, उसकी समय ट्रैकिंग रीसेट हो जाती है (प्रवेश टाइमस्टैम्प साफ़ हो जाता है)। जब ऑब्जेक्ट ज़ोन में पुनः प्रवेश करता है, समय ट्रैकिंग 0 से फिर शुरू होती है। यदि False है, तो ज़ोन छोड़ने के बाद भी समय ट्रैकिंग जारी रहती है, और पुनः प्रवेश संचयी समय बनाए रखता है। ज़ोन में वर्तमान निरंतर समय मापने के लिए True का उपयोग करें (निकास पर रीसेट), या कई प्रविष्टियों में संचयी समय मापने के लिए False का उपयोग करें। निरंतर उपस्थिति अवधि मापने के लिए डिफ़ॉल्ट True है..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
रनटाइम संगतता
सॉफ्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन दूरस्थ; इनपुट वीडियो : ब्लॉक प्रति-वीडियो स्थिति को प्रक्रिया मेमोरी में बनाए रखता है (video_metadata.video_identifier द्वारा कुंजीबद्ध)। स्टेटलेस या मल्टी-रिप्लिका HTTP रनटाइम्स पर दूरस्थ स्टेप निष्पादन के साथ, क्रमिक अनुरोधों को अलग-अलग वर्कर प्रक्रियाएँ सर्व कर सकती हैं, इसलिए कॉल्स के बीच स्थिति रीसेट हो जाती है और आउटपुट ट्रैकिंग / काउंटिंग / एग्रीगेशन के लिए अर्थहीन हो जाता है। स्थिर फ़्रेम-से-फ़्रेम परिणामों के लिए एक स्थायी WebRTC सत्र में स्थानीय स्टेप निष्पादन का उपयोग करें।
सॉफ्ट - इनपुट छवि : ब्लॉक वीडियो या दोहराए गए-फ़्रेम वर्कफ़्लो से समयगत संदर्भ पर निर्भर करता है। एक स्थिर छवि/फ़ोटो के साथ, ट्रैक करने, तुलना करने, समेकित करने या दृश्यीकृत करने के लिए कोई अर्थपूर्ण इतिहास नहीं होता, इसलिए ब्लॉक बहुत कम या कोई लाभ नहीं देता।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार ज़ोन में समय संस्करण v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवि(छवि): वर्तमान वीडियो फ्रेम के लिए इनपुट इमेज। ज़ोन विज़ुअलाइज़ेशन और संदर्भ के लिए उपयोग की जाती है। ब्लॉक ज़ोन कोऑर्डिनेट्स सत्यापित करने के लिए इमेज आयामों का उपयोग करता है। यदि frame timestamps की आवश्यकता हो, तो समय गणना के लिए इमेज मेटाडेटा का उपयोग किया जा सकता है..metadata(video_metadata): फ्रेम दर (fps), frame number, frame timestamp, video identifier, और वीडियो स्रोत जानकारी सहित वीडियो मेटाडेटा, जो समय गणना और स्थिति प्रबंधन के लिए आवश्यक है। वीडियो फ़ाइलों के लिए टाइमस्टैम्प (timestamp = frame_number / fps) की गणना हेतु fps और frame_number का उपयोग किया जाता है। स्ट्रीम किए गए वीडियो के लिए, frame_timestamp सीधे उपयोग किया जाता है। विभिन्न वीडियो के लिए अलग ट्रैकिंग स्थिति और ज़ोन कॉन्फ़िगरेशन बनाए रखने के लिए video_identifier का उपयोग किया जाता है। सटीक समय मापन सक्षम करने के लिए मेटाडेटा में वीडियो फ़ाइलों के लिए वैध fps या स्ट्रीम के लिए frame_timestamp शामिल होना चाहिए..detections(Union[object_detection_prediction,instance_segmentation_prediction]): tracker_id जानकारी वाले ट्रैक किए गए डिटेक्शन प्रेडिक्शन (ऑब्जेक्ट डिटेक्शन या instance segmentation)। डिटेक्शनों को किसी ट्रैकिंग ब्लॉक (जैसे Byte Tracker) से आना चाहिए जिसने प्रत्येक फ्रेम में बने रहने वाले अद्वितीय tracker_id मान असाइन किए हों। समय ट्रैकिंग सक्षम करने के लिए प्रत्येक डिटेक्शन के पास tracker_id होना चाहिए। ब्लॉक प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए time_in_zone की गणना इस आधार पर करता है कि उसका track_id पहली बार ज़ोन में कब प्रवेश किया। आउटपुट में वही डिटेक्शन time_in_zone metadata (अवधि सेकंड में) के साथ संवर्धित होकर शामिल होंगे। यदि remove_out_of_zone_detections True है, तो केवल ज़ोन के अंदर वाले डिटेक्शन आउटपुट में शामिल किए जाते हैं..ज़ोन(list_of_values): बहुभुज ज़ोन कोऑर्डिनेट्स जो समय मापन के लिए क्षेत्र को परिभाषित करते हैं। यह कम से कम 3 बिंदुओं की सूची होना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 कोऑर्डिनेट्स [x, y] या (x, y) की सूची या टपल हो। कोऑर्डिनेट्स पिक्सेल स्पेस में होने चाहिए जो इमेज आयामों से मेल खाते हों। उदाहरण: चतुर्भुज ज़ोन के लिए [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]। ज़ोन वह बहुभुज क्षेत्र परिभाषित करता है जहाँ समय ट्रैकिंग होती है। जब उनका triggering_anchor बिंदु इस बहुभुज के अंदर होता है, तो ऑब्जेक्ट्स को 'ज़ोन में' माना जाता है। ज़ोन कोऑर्डिनेट्स सत्यापित किए जाते हैं और प्रत्येक वीडियो के लिए एक PolygonZone ऑब्जेक्ट बनाया जाता है..triggering_anchor(string): डिटेक्शन बाउंडिंग बॉक्स पर वह बिंदु जो ऑब्जेक्ट को 'ज़ोन में' मानने के लिए ज़ोन के अंदर होना चाहिए। विकल्पों में शामिल हैं: 'CENTER' (डिफ़ॉल्ट, बाउंडिंग बॉक्स का केंद्र), 'BOTTOM_CENTER' (निचला मध्य बिंदु), 'TOP_CENTER' (ऊपरी मध्य बिंदु), 'CENTER_LEFT' (मध्य बाएँ बिंदु), 'CENTER_RIGHT' (मध्य दाएँ बिंदु), और अन्य Position enum मान। triggering_anchor यह निर्धारित करता है कि ऑब्जेक्ट के बाउंडिंग बॉक्स के किस भाग की जाँच ज़ोन बहुभुज के विरुद्ध की जाएगी। मानक ज़ोन डिटेक्शन के लिए CENTER का उपयोग करें, ग्राउंड-स्तर ज़ोनों के लिए BOTTOM_CENTER (जैसे, पैरों/वाहन के आधार को ट्रैक करना), या डिटेक्शन आवश्यकताओं के अनुसार अन्य एंकरों का उपयोग करें। डिफ़ॉल्ट 'CENTER' है..remove_out_of_zone_detections(booleanयदि True (डिफ़ॉल्ट) है, तो ज़ोन के बाहर पाए गए डिटेक्शनों को फ़िल्टर कर दिया जाता है और आउटपुट में शामिल नहीं किया जाता। केवल ज़ोन के अंदर वाले डिटेक्शन लौटाए जाते हैं। यदि False है, तो सभी डिटेक्शन आउटपुट में शामिल किए जाते हैं, और ज़ोन के बाहर के ऑब्जेक्ट्स के लिए time_in_zone = 0 होता है। केवल ज़ोन के अंदर मौजूद ऑब्जेक्ट्स पर विश्लेषण केंद्रित करने के लिए True का उपयोग करें, या सभी डिटेक्शनों को ज़ोन स्थिति सहित बनाए रखने के लिए False का उपयोग करें। स्वच्छ, ज़ोन गतिविधि-केंद्रित आउटपुट के लिए डिफ़ॉल्ट True है..reset_out_of_zone_detections(booleanयदि True (डिफ़ॉल्ट) है, तो जब कोई ट्रैक किया गया ऑब्जेक्ट ज़ोन छोड़ देता है, उसकी समय ट्रैकिंग रीसेट हो जाती है (प्रवेश टाइमस्टैम्प साफ़ हो जाता है)। जब ऑब्जेक्ट ज़ोन में पुनः प्रवेश करता है, समय ट्रैकिंग 0 से फिर शुरू होती है। यदि False है, तो ज़ोन छोड़ने के बाद भी समय ट्रैकिंग जारी रहती है, और पुनः प्रवेश संचयी समय बनाए रखता है। ज़ोन में वर्तमान निरंतर समय मापने के लिए True का उपयोग करें (निकास पर रीसेट), या कई प्रविष्टियों में संचयी समय मापने के लिए False का उपयोग करें। निरंतर उपस्थिति अवधि मापने के लिए डिफ़ॉल्ट True है..
आउटपुट
timed_detections(Union[object_detection_prediction,instance_segmentation_prediction]): यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स वाली प्रेडिक्शनobject_detection_predictionया यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शनinstance_segmentation_prediction.
अंतिम अपडेट
क्या यह उपयोगी था?