पथ विचलन
संदर्भ पथ से वस्तु की फ़्रेचेट दूरी की गणना करें।
v2
ट्रैक किए गए ऑब्जेक्ट्स संदर्भ पथ का कितना निकटता से अनुसरण करते हैं, इसका मापन ऑब्जेक्ट की वास्तविक ट्रैजेक्टरी और अपेक्षित संदर्भ पथ के बीच Fréchet दूरी की गणना करके करें, जिससे पथ अनुपालन निगरानी, मार्ग विचलन पहचान, स्वचालित प्रणालियों में गुणवत्ता नियंत्रण, और व्यवहार विश्लेषण वर्कफ़्लो सक्षम हों।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक विचलन को मापने के लिए ट्रैक किए गए ऑब्जेक्ट्स के वास्तविक गति पथ की तुलना एक पूर्वनिर्धारित संदर्भ पथ से करता है। यह ब्लॉक:
विशिष्ट tracker IDs, एम्बेडेड वीडियो मेटाडेटा वाली एक छवि, और एक संदर्भ पथ परिभाषा के साथ ट्रैक की गई detection predictions प्राप्त करता है
छवि से वीडियो मेटाडेटा निकालता है:
WorkflowImageData ऑब्जेक्ट से video_metadata तक पहुँचता है
विभिन्न वीडियो के लिए अलग पथ ट्रैकिंग स्थिति बनाए रखने हेतु video_identifier निकालता है
प्रति वीडियो पथ ट्रैकिंग स्थिति को आरंभ और प्रबंधित करने के लिए वीडियो मेटाडेटा का उपयोग करता है
सत्यापित करता है कि डिटेक्शनों में ट्रैकर IDs हैं (फ़्रेमों के बीच ऑब्जेक्ट गति को ट्रैक करने के लिए आवश्यक)
वीडियो के लिए पथ ट्रैकिंग स्थिति को आरंभ या पुनः प्राप्त करता है:
प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए प्रति वीडियो स्थितियों का इतिहास बनाए रखता है
विभिन्न वीडियो के लिए स्थिति अलग करने हेतु video_identifier का उपयोग करके ऑब्जेक्ट पथ संग्रहीत करता है
जो ऑब्जेक्ट पहली बार दिखाई देते हैं, उनके लिए नए पथ ट्रैकिंग प्रविष्टियाँ बनाता है
प्रत्येक detection के लिए anchor point coordinates निकालता है:
bounding box पर किस बिंदु को ट्रैक करना है, यह निर्धारित करने के लिए triggering_anchor का उपयोग करता है (डिफ़ॉल्ट: CENTER)
वर्तमान फ़्रेम में प्रत्येक detection के लिए anchor point के (x, y) coordinates प्राप्त करता है
anchor point उस ऑब्जेक्ट की स्थिति दर्शाता है जिसका उपयोग पथ तुलना के लिए किया जाता है
समय के साथ ऑब्जेक्ट पथों को संचित करता है:
फ़्रेम संसाधित होने पर प्रत्येक ऑब्जेक्ट के anchor point को उसके पथ इतिहास में जोड़ता है
प्रत्येक अद्वितीय tracker_id के लिए अलग पथ इतिहास बनाए रखता है
सभी संसाधित फ़्रेमों में स्थितियाँ जोड़कर पूर्ण ट्रैजेक्टरी पथ बनाता है
प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए Fréchet दूरी की गणना करता है:
Fréchet दूरी: बिंदुओं के स्थान और क्रम दोनों को ध्यान में रखते हुए दो वक्रों (पथों) के बीच समानता को मापता है
ऑब्जेक्ट के संचित पथ (वास्तविक ट्रैजेक्टरी) की तुलना संदर्भ पथ (अपेक्षित ट्रैजेक्टरी) से करता है
दोनों पथों को एक साथ पार करने के लिए आवश्यक न्यूनतम "लीश लंबाई" की गणना करने हेतु डायनेमिक प्रोग्रामिंग का उपयोग करता है
प्रत्येक पथ के साथ बिंदुओं के क्रम को ध्यान में रखता है, केवल बिंदु-दर-बिंदु दूरी को नहीं
कम मान इंगित करते हैं कि ऑब्जेक्ट संदर्भ पथ का निकटता से अनुसरण कर रहा है, अधिक मान अधिक विचलन दर्शाते हैं
detction metadata में पथ विचलन संग्रहीत करता है:
प्रत्येक detection के metadata में Fréchet दूरी मान जोड़ता है
प्रत्येक detection में path_deviation शामिल होता है, जो यह दर्शाता है कि वह संदर्भ पथ से कितना विचलित है
दूरी pixels में मापी जाती है (image coordinates के समान units)
स्थायी पथ ट्रैकिंग बनाए रखता है:
पूरे वीडियो के लिए फ़्रेमों के साथ पथ इतिहास संचित होते रहते हैं
प्रत्येक ऑब्जेक्ट का विचलन ट्रैकिंग की शुरुआत से उसके पूर्ण पथ के आधार पर गणना किया जाता है
प्रत्येक video_identifier के लिए अलग tracking state बनाए रखा जाता है
पथ विचलन जानकारी से समृद्ध detections लौटाता है:
जोड़े गए path_deviation metadata के साथ detection objects आउटपुट करता है
अब प्रत्येक detection में Fréchet दूरी शामिल है जो संदर्भ पथ से उसके विचलन को मापती है
Fréchet दूरी एक metric है जो दो वक्रों के बीच समानता को मापता है, इसके लिए एक वक्र के साथ चल रहे एक बिंदु और दूसरे वक्र के साथ चल रहे एक बिंदु को जोड़ने वाली "लीश" की न्यूनतम लंबाई खोजी जाती है, जहाँ दोनों बिंदु अपने-अपने वक्रों के साथ आगे बढ़ते हैं। साधारण Euclidean दूरी के विपरीत, Fréchet दूरी पथों के साथ बिंदुओं के क्रम और निरंतरता दोनों को ध्यान में रखती है, जिससे यह उन ट्रैजेक्टरी की तुलना के लिए आदर्श बनती है जहाँ गति का क्रम महत्वपूर्ण होता है। जो ऑब्जेक्ट संदर्भ पथ का बिल्कुल अनुसरण करता है, उसकी Fréchet दूरी 0 होगी, जबकि जो ऑब्जेक्ट उल्लेखनीय रूप से विचलित होते हैं, उनकी दूरी अधिक होगी।
सामान्य उपयोग के मामले
पथ अनुपालन निगरानी: निगरानी करें कि वाहन, रोबोट, या ऑब्जेक्ट पूर्वनिर्धारित मार्गों का पालन करते हैं या नहीं (जैसे, जाँचें कि वाहन लेन में रहें, देखें कि रोबोट प्रोग्राम किए गए पथों का पालन करें, सुनिश्चित करें कि ऑब्जेक्ट अपेक्षित मार्गों का अनुसरण करें), जिससे अनुपालन निगरानी वर्कफ़्लो सक्षम हों
गुणवत्ता नियंत्रण: निर्माण या असेंबली प्रक्रियाओं में विचलनों का पता लगाएँ जहाँ ऑब्जेक्ट्स को विशिष्ट पथों का पालन करना चाहिए (जैसे, कन्वेयर बेल्ट विचलन का पता लगाएँ, असेंबली लाइन पथों की निगरानी करें, उत्पाद गति पैटर्न की जाँच करें), जिससे गुणवत्ता नियंत्रण वर्कफ़्लो सक्षम हों
यातायात विश्लेषण: वाहन गति पैटर्न का विश्लेषण करें और लेन छोड़ने या मार्ग विचलन का पता लगाएँ (जैसे, लेन छोड़ते वाहन पहचानें, मार्ग अनुपालन की निगरानी करें, ट्रैफ़िक पैटर्न अनुपालन का विश्लेषण करें), जिससे ट्रैफ़िक विश्लेषण वर्कफ़्लो सक्षम हों
सुरक्षा निगरानी: सुरक्षा परिदृश्यों में संदिग्ध गति पैटर्न या अपेक्षित पथों से विचलन का पता लगाएँ (जैसे, अनधिकृत मार्ग विचलन पहचानें, परिधि उल्लंघन प्रयासों की निगरानी करें, गति अनुपालन ट्रैक करें), जिससे सुरक्षा निगरानी वर्कफ़्लो सक्षम हों
स्वचालित प्रणालियाँ: निगरानी करें और सत्यापित करें कि स्वचालित प्रणालियाँ (रोबोट, AGVs, ड्रोन) अपेक्षित पथों का सही ढंग से पालन करें (जैसे, रोबोट नेविगेशन सटीकता सत्यापित करें, स्वचालित वाहन पथों की जाँच करें, ड्रोन उड़ान पथों का सत्यापन करें), जिससे स्वचालित प्रणाली सत्यापन वर्कफ़्लो सक्षम हों
व्यवहार विश्लेषण: व्यवहार अनुसंधान में गति पैटर्न और पथ अनुपालन का अध्ययन करें (जैसे, पशु गति पैटर्न का विश्लेषण करें, पथ अनुसरण व्यवहार का अध्ययन करें, मार्ग-वरीयता विचलनों को मापें), जिससे व्यवहार अनुसंधान वर्कफ़्लो सक्षम हों
अन्य ब्लॉक्स से कनेक्ट करना
यह ब्लॉक ट्रैक की गई detections, एम्बेडेड वीडियो मेटाडेटा वाली एक छवि, और एक संदर्भ पथ प्राप्त करता है, और path_deviation metadata से समृद्ध detections उत्पन्न करता है:
Byte Tracker ब्लॉक्स के बाद ट्रैक किए गए ऑब्जेक्ट्स के लिए पथ विचलन मापने हेतु (जैसे, ट्रैक किए गए वाहन के पथ अनुपालन को मापना, ट्रैक किए गए व्यक्ति के मार्ग अनुपालन का विश्लेषण करना, ट्रैक किए गए ऑब्जेक्ट पथ विचलनों की निगरानी करना), जिससे tracking-to-path-analysis वर्कफ़्लो सक्षम हों
ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन ब्लॉक्स के बाद गति पथों का विश्लेषण करने के लिए tracking सक्षम के साथ (जैसे, वाहन पथों का विश्लेषण करना, ऑब्जेक्ट मार्ग अनुपालन को ट्रैक करना, पथ विचलन मापना), जिससे detection-to-path-analysis वर्कफ़्लो सक्षम हों
विज़ुअलाइज़ेशन ब्लॉकों से पहले पथ विचलन जानकारी प्रदर्शित करने के लिए (जैसे, पथों और विचलनों को विज़ुअलाइज़ करना, संदर्भ और वास्तविक पथ दिखाना, विचलन मीट्रिक्स प्रदर्शित करना), जिससे पथ विचलन विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम हों
लॉजिक ब्लॉक्स से पहले Continue If जैसे का उपयोग करके पथ विचलन सीमाओं के आधार पर निर्णय लेने के लिए (जैसे, यदि विचलन सीमा से अधिक हो तो जारी रखें, पथ अनुपालन के आधार पर फ़िल्टर करें, मार्ग उल्लंघनों पर कार्रवाइयाँ ट्रिगर करें), जिससे पथ-आधारित निर्णय वर्कफ़्लो सक्षम हों
सूचना ब्लॉकों से पहले पथ विचलनों या अनुपालन उल्लंघनों पर अलर्ट देने के लिए (जैसे, मार्ग विचलनों पर अलर्ट करें, पथ अनुपालन समस्याओं की सूचना दें, विचलन-आधारित अलर्ट ट्रिगर करें), जिससे पथ-आधारित सूचना वर्कफ़्लो सक्षम हों
डेटा संग्रहण ब्लॉकों से पहले पथ विचलन मापों को रिकॉर्ड करने के लिए (जैसे, पथ अनुपालन डेटा लॉग करें, विचलन सांख्यिकी संग्रहीत करें, मार्ग अनुपालन मीट्रिक्स रिकॉर्ड करें), जिससे पथ विचलन डेटा लॉगिंग वर्कफ़्लो सक्षम हों
संस्करणों के बीच अंतर
v1 से उन्नत:
सरल इनपुट: उपयोग करता है
छविऐसा input जो एक अलगmetadataफ़ील्ड की आवश्यकता के बजाय एम्बेडेड वीडियो मेटाडेटा रखता है, जिससे वर्कफ़्लो कनेक्शन सरल होते हैं और इनपुट जटिलता कम होती हैबेहतर एकीकरण: image-आधारित वर्कफ़्लो के साथ बेहतर एकीकरण, क्योंकि वीडियो मेटाडेटा अलग metadata input की आवश्यकता के बजाय सीधे इमेज ऑब्जेक्ट से एक्सेस किया जाता है
आवश्यकताएँ
इस ब्लॉक के लिए tracker_id जानकारी वाली tracked detections आवश्यक हैं (detections किसी tracking ब्लॉक जैसे Byte Tracker से आनी चाहिए)। संदर्भ पथ को कम से कम 2 बिंदुओं की सूची के रूप में परिभाषित किया जाना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 coordinates (x, y) का एक tuple या list हो। अलग-अलग वीडियो के लिए अलग path tracking state बनाए रखने हेतु image का video_metadata में video_identifier शामिल होना चाहिए। यह ब्लॉक प्रत्येक वीडियो के लिए फ़्रेमों में persistent path tracking बनाए रखता है, और पूर्ण trajectories को संचित करता है, इसलिए इसे वीडियो वर्कफ़्लो में उपयोग किया जाना चाहिए जहाँ फ़्रेम क्रमिक रूप से संसाधित होते हैं। सटीक पथ विचलन मापन के लिए, detections को मान्य tracker IDs के साथ फ़्रेमों में लगातार प्रदान किया जाना चाहिए। Fréchet दूरी pixels में गणना की जाती है (image coordinates के समान units)।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/path_deviation_analytics@v2 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
triggering_anchor
str
bounding box पर वह बिंदु जिसका उपयोग path calculation के लिए ऑब्जेक्ट स्थिति ट्रैक करने हेतु किया जाता है। विकल्पों में CENTER (डिफ़ॉल्ट), BOTTOM_CENTER, TOP_CENTER, CENTER_LEFT, CENTER_RIGHT, आदि शामिल हैं। इस anchor point के coordinates फ़्रेमों के साथ संचित किए जाते हैं ताकि ऑब्जेक्ट का trajectory path बनाया जा सके, जिसकी तुलना Fréchet दूरी का उपयोग करके संदर्भ पथ से की जाती है..
✅
reference_path
List[Any]
अपेक्षित संदर्भ पथ कम से कम 2 बिंदुओं की सूची के रूप में, जहाँ प्रत्येक बिंदु [x, y] coordinates का tuple या list हो। उदाहरण: [(100, 200), (200, 300), (300, 400)] 3 बिंदुओं वाला एक पथ परिभाषित करता है। Fréchet दूरी मापती है कि ट्रैक किए गए ऑब्जेक्ट इस संदर्भ पथ का कितना निकटता से अनुसरण करते हैं। बिंदुओं को अपेक्षित ट्रैजेक्टरी के साथ क्रमबद्ध होना चाहिए..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
रनटाइम संगतता
सॉफ्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन दूरस्थ; इनपुट वीडियो : ब्लॉक प्रति-वीडियो स्थिति को प्रक्रिया मेमोरी में बनाए रखता है (video_metadata.video_identifier द्वारा कुंजीबद्ध)। स्टेटलेस या मल्टी-रिप्लिका HTTP रनटाइम्स पर दूरस्थ स्टेप निष्पादन के साथ, क्रमिक अनुरोधों को अलग-अलग वर्कर प्रक्रियाएँ सर्व कर सकती हैं, इसलिए कॉल्स के बीच स्थिति रीसेट हो जाती है और आउटपुट ट्रैकिंग / काउंटिंग / एग्रीगेशन के लिए अर्थहीन हो जाता है। स्थिर फ़्रेम-से-फ़्रेम परिणामों के लिए एक स्थायी WebRTC सत्र में स्थानीय स्टेप निष्पादन का उपयोग करें।
सॉफ्ट - इनपुट छवि : ब्लॉक वीडियो या दोहराए गए-फ़्रेम वर्कफ़्लो से समयगत संदर्भ पर निर्भर करता है। एक स्थिर छवि/फ़ोटो के साथ, ट्रैक करने, तुलना करने, समेकित करने या दृश्यीकृत करने के लिए कोई अर्थपूर्ण इतिहास नहीं होता, इसलिए ब्लॉक बहुत कम या कोई लाभ नहीं देता।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार पथ विचलन संस्करण v2 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवि(छवि): एम्बेडेड वीडियो मेटाडेटा वाली छवि। video_metadata में video_identifier होता है ताकि विभिन्न वीडियो के लिए अलग पथ ट्रैकिंग स्थिति बनी रहे। फ़्रेमों में स्थायी पथ संचय के लिए आवश्यक..detections(Union[object_detection_prediction,instance_segmentation_prediction]): tracked object detection या instance segmentation predictions। इनमें tracking ब्लॉक से tracker_id जानकारी शामिल होनी चाहिए। ब्लॉक ऑब्जेक्ट ट्रैजेक्टरी बनाने के लिए फ़्रेमों में anchor point स्थितियों को ट्रैक करता है और उनकी तुलना संदर्भ पथ से करता है। आउटपुट detections में path_deviation metadata शामिल होता है, जिसमें संदर्भ पथ से Fréchet दूरी होती है..triggering_anchor(string): bounding box पर वह बिंदु जिसका उपयोग path calculation के लिए ऑब्जेक्ट स्थिति ट्रैक करने हेतु किया जाता है। विकल्पों में CENTER (डिफ़ॉल्ट), BOTTOM_CENTER, TOP_CENTER, CENTER_LEFT, CENTER_RIGHT, आदि शामिल हैं। इस anchor point के coordinates फ़्रेमों के साथ संचित किए जाते हैं ताकि ऑब्जेक्ट का trajectory path बनाया जा सके, जिसकी तुलना Fréchet दूरी का उपयोग करके संदर्भ पथ से की जाती है..reference_path(list_of_values): अपेक्षित संदर्भ पथ कम से कम 2 बिंदुओं की सूची के रूप में, जहाँ प्रत्येक बिंदु [x, y] coordinates का tuple या list हो। उदाहरण: [(100, 200), (200, 300), (300, 400)] 3 बिंदुओं वाला एक पथ परिभाषित करता है। Fréchet दूरी मापती है कि ट्रैक किए गए ऑब्जेक्ट इस संदर्भ पथ का कितना निकटता से अनुसरण करते हैं। बिंदुओं को अपेक्षित ट्रैजेक्टरी के साथ क्रमबद्ध होना चाहिए..
आउटपुट
path_deviation_detections(Union[object_detection_prediction,instance_segmentation_prediction]): यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स वाली प्रेडिक्शनobject_detection_predictionया यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शनinstance_segmentation_prediction.
v1
ट्रैक किए गए ऑब्जेक्ट्स संदर्भ पथ का कितना निकटता से अनुसरण करते हैं, इसका मापन ऑब्जेक्ट की वास्तविक ट्रैजेक्टरी और अपेक्षित संदर्भ पथ के बीच Fréchet दूरी की गणना करके करें, जिससे पथ अनुपालन निगरानी, मार्ग विचलन पहचान, स्वचालित प्रणालियों में गुणवत्ता नियंत्रण, और व्यवहार विश्लेषण वर्कफ़्लो सक्षम हों।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक विचलन को मापने के लिए ट्रैक किए गए ऑब्जेक्ट्स के वास्तविक गति पथ की तुलना एक पूर्वनिर्धारित संदर्भ पथ से करता है। यह ब्लॉक:
विशिष्ट tracker IDs, वीडियो मेटाडेटा, और एक संदर्भ पथ परिभाषा के साथ ट्रैक की गई detection predictions प्राप्त करता है
सत्यापित करता है कि डिटेक्शनों में ट्रैकर IDs हैं (फ़्रेमों के बीच ऑब्जेक्ट गति को ट्रैक करने के लिए आवश्यक)
वीडियो के लिए पथ ट्रैकिंग स्थिति को आरंभ या पुनः प्राप्त करता है:
प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए प्रति वीडियो स्थितियों का इतिहास बनाए रखता है
विभिन्न वीडियो के लिए स्थिति अलग करने हेतु video_identifier का उपयोग करके ऑब्जेक्ट पथ संग्रहीत करता है
जो ऑब्जेक्ट पहली बार दिखाई देते हैं, उनके लिए नए पथ ट्रैकिंग प्रविष्टियाँ बनाता है
प्रत्येक detection के लिए anchor point coordinates निकालता है:
bounding box पर किस बिंदु को ट्रैक करना है, यह निर्धारित करने के लिए triggering_anchor का उपयोग करता है (डिफ़ॉल्ट: CENTER)
वर्तमान फ़्रेम में प्रत्येक detection के लिए anchor point के (x, y) coordinates प्राप्त करता है
anchor point उस ऑब्जेक्ट की स्थिति दर्शाता है जिसका उपयोग पथ तुलना के लिए किया जाता है
समय के साथ ऑब्जेक्ट पथों को संचित करता है:
फ़्रेम संसाधित होने पर प्रत्येक ऑब्जेक्ट के anchor point को उसके पथ इतिहास में जोड़ता है
प्रत्येक अद्वितीय tracker_id के लिए अलग पथ इतिहास बनाए रखता है
सभी संसाधित फ़्रेमों में स्थितियाँ जोड़कर पूर्ण ट्रैजेक्टरी पथ बनाता है
प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए Fréchet दूरी की गणना करता है:
Fréchet दूरी: बिंदुओं के स्थान और क्रम दोनों को ध्यान में रखते हुए दो वक्रों (पथों) के बीच समानता को मापता है
ऑब्जेक्ट के संचित पथ (वास्तविक ट्रैजेक्टरी) की तुलना संदर्भ पथ (अपेक्षित ट्रैजेक्टरी) से करता है
दोनों पथों को एक साथ पार करने के लिए आवश्यक न्यूनतम "लीश लंबाई" की गणना करने हेतु डायनेमिक प्रोग्रामिंग का उपयोग करता है
प्रत्येक पथ के साथ बिंदुओं के क्रम को ध्यान में रखता है, केवल बिंदु-दर-बिंदु दूरी को नहीं
कम मान इंगित करते हैं कि ऑब्जेक्ट संदर्भ पथ का निकटता से अनुसरण कर रहा है, अधिक मान अधिक विचलन दर्शाते हैं
detction metadata में पथ विचलन संग्रहीत करता है:
प्रत्येक detection के metadata में Fréchet दूरी मान जोड़ता है
प्रत्येक detection में path_deviation शामिल होता है, जो यह दर्शाता है कि वह संदर्भ पथ से कितना विचलित है
दूरी pixels में मापी जाती है (image coordinates के समान units)
स्थायी पथ ट्रैकिंग बनाए रखता है:
पूरे वीडियो के लिए फ़्रेमों के साथ पथ इतिहास संचित होते रहते हैं
प्रत्येक ऑब्जेक्ट का विचलन ट्रैकिंग की शुरुआत से उसके पूर्ण पथ के आधार पर गणना किया जाता है
प्रत्येक video_identifier के लिए अलग tracking state बनाए रखा जाता है
पथ विचलन जानकारी से समृद्ध detections लौटाता है:
जोड़े गए path_deviation metadata के साथ detection objects आउटपुट करता है
अब प्रत्येक detection में Fréchet दूरी शामिल है जो संदर्भ पथ से उसके विचलन को मापती है
Fréchet दूरी एक metric है जो दो वक्रों के बीच समानता को मापता है, इसके लिए एक वक्र के साथ चल रहे एक बिंदु और दूसरे वक्र के साथ चल रहे एक बिंदु को जोड़ने वाली "लीश" की न्यूनतम लंबाई खोजी जाती है, जहाँ दोनों बिंदु अपने-अपने वक्रों के साथ आगे बढ़ते हैं। साधारण Euclidean दूरी के विपरीत, Fréchet दूरी पथों के साथ बिंदुओं के क्रम और निरंतरता दोनों को ध्यान में रखती है, जिससे यह उन ट्रैजेक्टरी की तुलना के लिए आदर्श बनती है जहाँ गति का क्रम महत्वपूर्ण होता है। जो ऑब्जेक्ट संदर्भ पथ का बिल्कुल अनुसरण करता है, उसकी Fréchet दूरी 0 होगी, जबकि जो ऑब्जेक्ट उल्लेखनीय रूप से विचलित होते हैं, उनकी दूरी अधिक होगी।
सामान्य उपयोग के मामले
पथ अनुपालन निगरानी: निगरानी करें कि वाहन, रोबोट, या ऑब्जेक्ट पूर्वनिर्धारित मार्गों का पालन करते हैं या नहीं (जैसे, जाँचें कि वाहन लेन में रहें, देखें कि रोबोट प्रोग्राम किए गए पथों का पालन करें, सुनिश्चित करें कि ऑब्जेक्ट अपेक्षित मार्गों का अनुसरण करें), जिससे अनुपालन निगरानी वर्कफ़्लो सक्षम हों
गुणवत्ता नियंत्रण: निर्माण या असेंबली प्रक्रियाओं में विचलनों का पता लगाएँ जहाँ ऑब्जेक्ट्स को विशिष्ट पथों का पालन करना चाहिए (जैसे, कन्वेयर बेल्ट विचलन का पता लगाएँ, असेंबली लाइन पथों की निगरानी करें, उत्पाद गति पैटर्न की जाँच करें), जिससे गुणवत्ता नियंत्रण वर्कफ़्लो सक्षम हों
यातायात विश्लेषण: वाहन गति पैटर्न का विश्लेषण करें और लेन छोड़ने या मार्ग विचलन का पता लगाएँ (जैसे, लेन छोड़ते वाहन पहचानें, मार्ग अनुपालन की निगरानी करें, ट्रैफ़िक पैटर्न अनुपालन का विश्लेषण करें), जिससे ट्रैफ़िक विश्लेषण वर्कफ़्लो सक्षम हों
सुरक्षा निगरानी: सुरक्षा परिदृश्यों में संदिग्ध गति पैटर्न या अपेक्षित पथों से विचलन का पता लगाएँ (जैसे, अनधिकृत मार्ग विचलन पहचानें, परिधि उल्लंघन प्रयासों की निगरानी करें, गति अनुपालन ट्रैक करें), जिससे सुरक्षा निगरानी वर्कफ़्लो सक्षम हों
स्वचालित प्रणालियाँ: निगरानी करें और सत्यापित करें कि स्वचालित प्रणालियाँ (रोबोट, AGVs, ड्रोन) अपेक्षित पथों का सही ढंग से पालन करें (जैसे, रोबोट नेविगेशन सटीकता सत्यापित करें, स्वचालित वाहन पथों की जाँच करें, ड्रोन उड़ान पथों का सत्यापन करें), जिससे स्वचालित प्रणाली सत्यापन वर्कफ़्लो सक्षम हों
व्यवहार विश्लेषण: व्यवहार अनुसंधान में गति पैटर्न और पथ अनुपालन का अध्ययन करें (जैसे, पशु गति पैटर्न का विश्लेषण करें, पथ अनुसरण व्यवहार का अध्ययन करें, मार्ग-वरीयता विचलनों को मापें), जिससे व्यवहार अनुसंधान वर्कफ़्लो सक्षम हों
अन्य ब्लॉक्स से कनेक्ट करना
यह ब्लॉक ट्रैक की गई detections, वीडियो मेटाडेटा, और एक संदर्भ पथ प्राप्त करता है, और path_deviation metadata से समृद्ध detections उत्पन्न करता है:
Byte Tracker ब्लॉक्स के बाद ट्रैक किए गए ऑब्जेक्ट्स के लिए पथ विचलन मापने हेतु (जैसे, ट्रैक किए गए वाहन के पथ अनुपालन को मापना, ट्रैक किए गए व्यक्ति के मार्ग अनुपालन का विश्लेषण करना, ट्रैक किए गए ऑब्जेक्ट पथ विचलनों की निगरानी करना), जिससे tracking-to-path-analysis वर्कफ़्लो सक्षम हों
ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन ब्लॉक्स के बाद गति पथों का विश्लेषण करने के लिए tracking सक्षम के साथ (जैसे, वाहन पथों का विश्लेषण करना, ऑब्जेक्ट मार्ग अनुपालन को ट्रैक करना, पथ विचलन मापना), जिससे detection-to-path-analysis वर्कफ़्लो सक्षम हों
विज़ुअलाइज़ेशन ब्लॉकों से पहले पथ विचलन जानकारी प्रदर्शित करने के लिए (जैसे, पथों और विचलनों को विज़ुअलाइज़ करना, संदर्भ और वास्तविक पथ दिखाना, विचलन मीट्रिक्स प्रदर्शित करना), जिससे पथ विचलन विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम हों
लॉजिक ब्लॉक्स से पहले Continue If जैसे का उपयोग करके पथ विचलन सीमाओं के आधार पर निर्णय लेने के लिए (जैसे, यदि विचलन सीमा से अधिक हो तो जारी रखें, पथ अनुपालन के आधार पर फ़िल्टर करें, मार्ग उल्लंघनों पर कार्रवाइयाँ ट्रिगर करें), जिससे पथ-आधारित निर्णय वर्कफ़्लो सक्षम हों
सूचना ब्लॉकों से पहले पथ विचलनों या अनुपालन उल्लंघनों पर अलर्ट देने के लिए (जैसे, मार्ग विचलनों पर अलर्ट करें, पथ अनुपालन समस्याओं की सूचना दें, विचलन-आधारित अलर्ट ट्रिगर करें), जिससे पथ-आधारित सूचना वर्कफ़्लो सक्षम हों
डेटा संग्रहण ब्लॉकों से पहले पथ विचलन मापों को रिकॉर्ड करने के लिए (जैसे, पथ अनुपालन डेटा लॉग करें, विचलन सांख्यिकी संग्रहीत करें, मार्ग अनुपालन मीट्रिक्स रिकॉर्ड करें), जिससे पथ विचलन डेटा लॉगिंग वर्कफ़्लो सक्षम हों
आवश्यकताएँ
इस ब्लॉक के लिए tracker_id जानकारी वाली tracked detections आवश्यक हैं (detections किसी tracking ब्लॉक जैसे Byte Tracker से आनी चाहिए)। संदर्भ पथ को कम से कम 2 बिंदुओं की सूची के रूप में परिभाषित किया जाना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 coordinates (x, y) का एक tuple या list हो। ब्लॉक को विभिन्न वीडियो के लिए अलग path tracking state बनाए रखने हेतु video_identifier सहित वीडियो मेटाडेटा की आवश्यकता होती है। यह ब्लॉक प्रत्येक वीडियो के लिए फ़्रेमों में persistent path tracking बनाए रखता है, और पूर्ण trajectories को संचित करता है, इसलिए इसे वीडियो वर्कफ़्लो में उपयोग किया जाना चाहिए जहाँ फ़्रेम क्रमिक रूप से संसाधित होते हैं। सटीक पथ विचलन मापन के लिए, detections को मान्य tracker IDs के साथ फ़्रेमों में लगातार प्रदान किया जाना चाहिए। Fréchet दूरी pixels में गणना की जाती है (image coordinates के समान units)।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/path_deviation_analytics@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
triggering_anchor
str
bounding box पर वह बिंदु जिसका उपयोग path calculation के लिए ऑब्जेक्ट स्थिति ट्रैक करने हेतु किया जाता है। विकल्प: CENTER (डिफ़ॉल्ट), BOTTOM_CENTER, TOP_CENTER, CENTER_LEFT, CENTER_RIGHT, आदि। इस anchor point के coordinates फ़्रेमों के साथ संचित किए जाते हैं ताकि ऑब्जेक्ट का trajectory path बनाया जा सके, जिसकी तुलना Fréchet दूरी का उपयोग करके संदर्भ पथ से की जाती है..
✅
reference_path
List[Any]
अपेक्षित संदर्भ पथ कम से कम 2 बिंदुओं की सूची के रूप में, जहाँ प्रत्येक बिंदु [x, y] coordinates का tuple या list हो। उदाहरण: [(100, 200), (200, 300), (300, 400)] 3 बिंदुओं वाला एक पथ परिभाषित करता है। Fréchet दूरी मापती है कि ट्रैक किए गए ऑब्जेक्ट इस संदर्भ पथ का कितना निकटता से अनुसरण करते हैं। बिंदुओं को अपेक्षित ट्रैजेक्टरी के साथ क्रमबद्ध होना चाहिए..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
रनटाइम संगतता
सॉफ्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन दूरस्थ; इनपुट वीडियो : ब्लॉक प्रति-वीडियो स्थिति को प्रक्रिया मेमोरी में बनाए रखता है (video_metadata.video_identifier द्वारा कुंजीबद्ध)। स्टेटलेस या मल्टी-रिप्लिका HTTP रनटाइम्स पर दूरस्थ स्टेप निष्पादन के साथ, क्रमिक अनुरोधों को अलग-अलग वर्कर प्रक्रियाएँ सर्व कर सकती हैं, इसलिए कॉल्स के बीच स्थिति रीसेट हो जाती है और आउटपुट ट्रैकिंग / काउंटिंग / एग्रीगेशन के लिए अर्थहीन हो जाता है। स्थिर फ़्रेम-से-फ़्रेम परिणामों के लिए एक स्थायी WebRTC सत्र में स्थानीय स्टेप निष्पादन का उपयोग करें।
सॉफ्ट - इनपुट छवि : ब्लॉक वीडियो या दोहराए गए-फ़्रेम वर्कफ़्लो से समयगत संदर्भ पर निर्भर करता है। एक स्थिर छवि/फ़ोटो के साथ, ट्रैक करने, तुलना करने, समेकित करने या दृश्यीकृत करने के लिए कोई अर्थपूर्ण इतिहास नहीं होता, इसलिए ब्लॉक बहुत कम या कोई लाभ नहीं देता।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार पथ विचलन संस्करण v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
metadata(video_metadata): video_identifier युक्त वीडियो मेटाडेटा, ताकि विभिन्न वीडियो के लिए अलग path tracking state बनी रहे। फ़्रेमों में स्थायी path accumulation के लिए आवश्यक..detections(Union[object_detection_prediction,instance_segmentation_prediction]): tracked object detection या instance segmentation predictions। इनमें tracking ब्लॉक से tracker_id जानकारी शामिल होनी चाहिए। ब्लॉक ऑब्जेक्ट ट्रैजेक्टरी बनाने के लिए फ़्रेमों में anchor point स्थितियों को ट्रैक करता है और उनकी तुलना संदर्भ पथ से करता है। आउटपुट detections में path_deviation metadata शामिल होता है, जिसमें संदर्भ पथ से Fréchet दूरी होती है..triggering_anchor(string): bounding box पर वह बिंदु जिसका उपयोग path calculation के लिए ऑब्जेक्ट स्थिति ट्रैक करने हेतु किया जाता है। विकल्प: CENTER (डिफ़ॉल्ट), BOTTOM_CENTER, TOP_CENTER, CENTER_LEFT, CENTER_RIGHT, आदि। इस anchor point के coordinates फ़्रेमों के साथ संचित किए जाते हैं ताकि ऑब्जेक्ट का trajectory path बनाया जा सके, जिसकी तुलना Fréchet दूरी का उपयोग करके संदर्भ पथ से की जाती है..reference_path(list_of_values): अपेक्षित संदर्भ पथ कम से कम 2 बिंदुओं की सूची के रूप में, जहाँ प्रत्येक बिंदु [x, y] coordinates का tuple या list हो। उदाहरण: [(100, 200), (200, 300), (300, 400)] 3 बिंदुओं वाला एक पथ परिभाषित करता है। Fréchet दूरी मापती है कि ट्रैक किए गए ऑब्जेक्ट इस संदर्भ पथ का कितना निकटता से अनुसरण करते हैं। बिंदुओं को अपेक्षित ट्रैजेक्टरी के साथ क्रमबद्ध होना चाहिए..
आउटपुट
path_deviation_detections(Union[object_detection_prediction,instance_segmentation_prediction]): यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स वाली प्रेडिक्शनobject_detection_predictionया यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शनinstance_segmentation_prediction.
अंतिम अपडेट
क्या यह उपयोगी था?