वेग
स्मूदिंग और इकाई रूपांतरण के साथ ट्रैक की गई वस्तुओं का वेग और गति गणना करें।
समय के साथ ऑब्जेक्ट केंद्रों के विस्थापन को मापकर, शोर को कम करने के लिए एक्सपोनेंशियल मूविंग एवरेज स्मूदिंग लागू करके, और ट्रैफ़िक गति निगरानी, गति विश्लेषण, व्यवहार ट्रैकिंग, तथा प्रदर्शन मापन वर्कफ़्लो के लिए पिक्सेल प्रति सेकंड से मीटर प्रति सेकंड में मापों को परिवर्तित करके, वीडियो फ़्रेमों में ट्रैक किए गए ऑब्जेक्ट्स की वेग और गति की गणना करें।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक वीडियो फ़्रेमों में ऑब्जेक्ट्स की स्थितियों को ट्रैक करके यह मापता है कि वे कितनी तेज़ी से चल रहे हैं। यह ब्लॉक:
अद्वितीय ट्रैकर IDs और एम्बेडेड वीडियो मेटाडेटा वाली एक छवि के साथ ट्रैक की गई डिटेक्शन भविष्यवाणियाँ प्राप्त करता है
छवि से वीडियो मेटाडेटा निकालता है:
फ़्रेम टाइमस्टैम्प या फ़्रेम नंबर और फ़्रेम दर (fps) प्राप्त करने के लिए video_metadata तक पहुँचता है
विभिन्न वीडियो के लिए अलग ट्रैकिंग स्थिति बनाए रखने हेतु video_identifier निकालता है
वीडियो फ़ाइलों के लिए frame_number/fps या स्ट्रीम के लिए frame_timestamp का उपयोग करके वर्तमान टाइमस्टैम्प निर्धारित करता है
सत्यापित करता है कि डिटेक्शनों में ट्रैकर IDs हैं (फ़्रेमों के बीच ऑब्जेक्ट गति को ट्रैक करने के लिए आवश्यक)
ऑब्जेक्ट केंद्र स्थितियों की गणना करता है:
वर्तमान फ़्रेम में प्रत्येक बाउंडिंग बॉक्स के केंद्र बिंदु (x, y) की गणना करता है
ज्यामितीय केंद्र खोजने के लिए बाउंडिंग बॉक्स निर्देशांकों का उपयोग करता है
ट्रैकिंग स्थिति को पुनः प्राप्त या प्रारंभ करता है:
प्रत्येक tracker_id के लिए, प्रति वीडियो पिछली स्थितियाँ और टाइमस्टैम्प बनाए रखता है
प्रत्येक tracker_id के लिए, प्रति वीडियो स्मूद किए गए वेग का इतिहास संग्रहीत करता है
पहली बार दिखाई देने वाले ऑब्जेक्ट्स के लिए नई ट्रैकिंग प्रविष्टियाँ बनाता है
प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए वेग और गति की गणना करता है:
पिछली स्थितियों वाले ऑब्जेक्ट्स के लिए: वर्तमान और पिछली फ़्रेमों के बीच विस्थापन (स्थिति में परिवर्तन) और समय अंतराल (समय में परिवर्तन) की गणना करता है
वेग: वेग सदिश को विस्थापन को समय अंतराल से भाग देकर गणना करता है (पिक्सेल प्रति सेकंड)
गति: गति को वेग सदिश के परिमाण (लंबाई) के रूप में गणना करता है (दिशा की परवाह किए बिना कुल पिक्सेल प्रति सेकंड)
नए ऑब्जेक्ट्स के लिए: वेग और गति को शून्य पर सेट करता है (अभी कोई गति डेटा उपलब्ध नहीं)
एक्सपोनेंशियल मूविंग एवरेज स्मूदिंग लागू करता है:
कॉन्फ़िगर किए जा सकने वाले स्मूदिंग फैक्टर (alpha) के साथ एक्सपोनेंशियल मूविंग एवरेज का उपयोग करके वेग मापों को स्मूद करता है
डिटेक्शन विविधताओं से वेग गणनाओं में शोर और झटके को कम करता है
कम alpha मान अधिक स्मूदिंग प्रदान करते हैं (परिवर्तनों के प्रति धीमी प्रतिक्रिया), अधिक alpha मान कम स्मूदिंग प्रदान करते हैं (परिवर्तनों के प्रति तेज़ प्रतिक्रिया)
प्रत्येक ऑब्जेक्ट के लिए स्मूद किया गया वेग और स्मूद की गई गति की गणना करता है
इकाइयों को मीटर प्रति सेकंड में परिवर्तित करता है:
पिक्सेल-आधारित वेग और गति को pixels_per_meter रूपांतरण कारक से विभाजित करता है
सभी मापों (velocity, speed, smoothed_velocity, smoothed_speed) को वास्तविक-दुनिया की इकाइयों में परिवर्तित करता है
वास्तविक-दुनिया की गति मापों (जैसे, km/h, mph) के साथ तुलना सक्षम करता है
डिटेक्शन मेटाडेटा में वेग डेटा संग्रहीत करता है:
प्रत्येक डिटेक्शन में चार वेग मेट्रिक्स जोड़ता है: velocity (m/s), speed (m/s), smoothed_velocity (m/s), smoothed_speed (m/s)
Velocity एक 2D सदिश [vx, vy] है जो गति की दिशा और परिमाण को दर्शाता है
Speed एक स्केलर मान है जो दिशा की परवाह किए बिना कुल गति को दर्शाता है
सभी माप detections.data में डाउनस्ट्रीम उपयोग के लिए संग्रहीत किए जाते हैं
अगले फ़्रेम के लिए ट्रैकिंग स्थिति अद्यतन करता है:
सभी ट्रैक किए गए ऑब्जेक्ट्स के लिए वर्तमान स्थितियाँ और टाइमस्टैम्प सहेजता है
अगले फ़्रेम की स्मूदिंग गणनाओं के लिए स्मूद किए गए वेग संग्रहीत करता है
वेग जानकारी से संवर्धित डिटेक्शन्स लौटाता है:
उसी डिटेक्शन ऑब्जेक्ट्स को अतिरिक्त वेग मेटाडेटा के साथ आउटपुट करता है
अब प्रत्येक डिटेक्शन में उसके मेटाडेटा में वेग और गति डेटा शामिल है
वेग की गणना समय के साथ ऑब्जेक्ट केंद्रों (बाउंडिंग बॉक्स केंद्रों) के विस्थापन के आधार पर की जाती है। यह ब्लॉक प्रत्येक वीडियो के लिए अलग ट्रैकिंग स्थिति बनाए रखता है, जिससे कई वीडियो स्ट्रीम्स में वेग की गणना संभव होती है। परिप्रेक्ष्य विकृति और कैमरा स्थिति के कारण, गणना किया गया वेग फ़्रेम में ऑब्जेक्ट के स्थान के अनुसार बदल सकता है - कैमरा के अधिक निकट या अलग गहराई पर स्थित ऑब्जेक्ट्स का समान वास्तविक-दुनिया गति के लिए पिक्सेल-प्रति-सेकंड मान अलग होगा। स्मूदिंग डिटेक्शन अशुद्धियों और फ़्रेम-दर-फ़्रेम बदलावों से आने वाले शोर को कम करने में मदद करती है।
सामान्य उपयोग के मामले
ट्रैफ़िक गति निगरानी: सड़कों और राजमार्गों पर वाहनों की गति मापें (उदाहरण के लिए, ट्रैफ़िक गति की निगरानी, तेज़ गति उल्लंघनों का पता लगाना, ट्रैफ़िक प्रवाह दरों का विश्लेषण), जिससे ट्रैफ़िक प्रवर्तन और विश्लेषण वर्कफ़्लो सक्षम होते हैं
खेल प्रदर्शन विश्लेषण: खेल गतिविधियों के दौरान एथलीट की गति और रफ़्तार को ट्रैक करें (उदाहरण के लिए, खिलाड़ी की गति मापना, स्प्रिंट प्रदर्शन का विश्लेषण, गति पैटर्न ट्रैक करना), जिससे खेल विश्लेषण वर्कफ़्लो सक्षम होते हैं
सुरक्षा और निगरानी: सुरक्षा परिदृश्यों में लोगों या वस्तुओं की गति की रफ़्तार की निगरानी करें (उदाहरण के लिए, दौड़ने या संदिग्ध तेज़ गति की पहचान, भीड़ प्रवाह की गति की निगरानी, ऑब्जेक्ट गति दरों को ट्रैक करना), जिससे सुरक्षा निगरानी वर्कफ़्लो सक्षम होते हैं
रिटेल एनालिटिक्स: रिटेल स्थानों में ग्राहक की गति के पैटर्न और चलने की रफ़्तार का विश्लेषण करें (उदाहरण के लिए, ग्राहक प्रवाह दरों को मापना, खरीदारी व्यवहार पैटर्न का विश्लेषण, गति दक्षता को ट्रैक करना), जिससे रिटेल व्यवहार विश्लेषण वर्कफ़्लो सक्षम होते हैं
वन्यजीव व्यवहार अध्ययन: प्राकृतिक आवासों में पशु गति रफ़्तार और पैटर्न को ट्रैक करें (उदाहरण के लिए, पशु गति मापना, प्रवासन पैटर्न का विश्लेषण, गति व्यवहार का अध्ययन), जिससे वन्यजीव अनुसंधान वर्कफ़्लो सक्षम होते हैं
औद्योगिक निगरानी: औद्योगिक सेटिंग्स में वाहनों, उपकरणों, या उत्पादों की गति की रफ़्तार की निगरानी करें (उदाहरण के लिए, कन्वेयर गति ट्रैक करना, सुविधाओं में वाहन गति मापना, उत्पादन लाइन गति दरों की निगरानी), जिससे औद्योगिक स्वचालन वर्कफ़्लो सक्षम होते हैं
अन्य ब्लॉक्स से कनेक्ट करना
यह ब्लॉक ट्रैक की गई डिटेक्शन्स और एम्बेडेड वीडियो मेटाडेटा वाली एक छवि प्राप्त करता है, और वेग मेटाडेटा से संवर्धित डिटेक्शन्स उत्पन्न करता है:
Byte Tracker ब्लॉक्स के बाद ट्रैक किए गए ऑब्जेक्ट्स के लिए वेग की गणना करने के लिए (उदाहरण के लिए, ट्रैक किए गए वाहनों की गति मापना, ट्रैक किए गए व्यक्ति की गति का विश्लेषण, ट्रैक किए गए ऑब्जेक्ट वेग की निगरानी), जिससे tracking-to-velocity वर्कफ़्लो सक्षम होते हैं
ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन ब्लॉक्स के बाद गति की रफ़्तार मापने के लिए ट्रैकिंग सक्षम के साथ (उदाहरण के लिए, वाहन गति की गणना, व्यक्ति गति दरों को ट्रैक करना, ऑब्जेक्ट वेग की निगरानी), जिससे detection-to-velocity वर्कफ़्लो सक्षम होते हैं
विज़ुअलाइज़ेशन ब्लॉक्स से पहले वेग जानकारी प्रदर्शित करने के लिए (उदाहरण के लिए, स्पीड ओवरले दिखाना, वेग सदिश प्रदर्शित करना, गति एनोटेशन दिखाना), जिससे वेग विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम होते हैं
लॉजिक ब्लॉक्स से पहले जैसे Continue If, गति सीमाओं के आधार पर निर्णय लेने के लिए (उदाहरण के लिए, यदि गति सीमा से अधिक हो तो जारी रखें, वेग सीमाओं के आधार पर फ़िल्टर करें, गति उल्लंघनों पर क्रियाएँ ट्रिगर करें), जिससे गति-आधारित निर्णय वर्कफ़्लो सक्षम होते हैं
सूचना ब्लॉकों से पहले गति उल्लंघनों या थ्रेशहोल्ड घटनाओं पर अलर्ट करने के लिए (उदाहरण के लिए, तेज़ गति उल्लंघनों पर अलर्ट, तेज़ गति की सूचना, गति-आधारित अलर्ट ट्रिगर करना), जिससे वेग-आधारित सूचना वर्कफ़्लो सक्षम होते हैं
डेटा संग्रहण ब्लॉकों से पहले वेग मापों को रिकॉर्ड करने के लिए (उदाहरण के लिए, गति डेटा लॉग करना, वेग आँकड़े संग्रहीत करना, गति मेट्रिक्स रिकॉर्ड करना), जिससे वेग डेटा लॉगिंग वर्कफ़्लो सक्षम होते हैं
आवश्यकताएँ
इस ब्लॉक को tracker_id जानकारी वाली ट्रैक की गई डिटेक्शन्स की आवश्यकता होती है (डिटेक्शन्स Byte Tracker जैसे ट्रैकिंग ब्लॉक से आने चाहिए)। सटीक समय अंतराल की गणना के लिए छवि के video_metadata में वीडियो फ़ाइलों के लिए फ़्रेम दर (fps) या स्ट्रीम किए गए वीडियो के लिए फ़्रेम टाइमस्टैम्प शामिल होने चाहिए। यह ब्लॉक video_identifier का उपयोग करके प्रत्येक वीडियो के लिए फ़्रेमों के बीच स्थायी ट्रैकिंग स्थिति बनाए रखता है, इसलिए इसे उन वीडियो वर्कफ़्लो में उपयोग किया जाना चाहिए जहाँ फ़्रेम क्रमवार संसाधित होते हैं। सटीक वेग माप के लिए, डिटेक्शन्स को वैध tracker IDs के साथ लगातार फ़्रेमों में प्रदान किया जाना चाहिए। वास्तविक-दुनिया की गति के सटीक माप के लिए pixels_per_meter रूपांतरण कारक को कैमरा सेटअप और दृश्य ज्यामिति के आधार पर कैलिब्रेट किया जाना चाहिए। ध्यान दें कि फ़्रेम में ऑब्जेक्ट की स्थिति के आधार पर परिप्रेक्ष्य विकृति के कारण वेग की सटीकता भिन्न हो सकती है।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/velocity@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
smoothing_alpha
float
एक्सपोनेंशियल मूविंग एवरेज के लिए स्मूदिंग फैक्टर (alpha), सीमा 0 < alpha <= 1। यह नियंत्रित करता है कि वेग मापों पर कितना स्मूदिंग लागू किया जाता है। कम मान (0 के करीब) अधिक स्मूदिंग प्रदान करते हैं - परिवर्तनों के प्रति धीमी प्रतिक्रिया, कम शोर। अधिक मान (1 के करीब) कम स्मूदिंग प्रदान करते हैं - परिवर्तनों के प्रति तेज़ प्रतिक्रिया, अधिक शोर। डिफ़ॉल्ट 0.5 स्मूदनेस और प्रतिक्रिया-क्षमता के बीच संतुलन बनाता है।
✅
pixels_per_meter
float
वास्तविक-दुनिया की गति गणना के लिए पिक्सेल से मीटर में रूपांतरण कारक। पिक्सेल प्रति सेकंड में वेग मापों को मीटर प्रति सेकंड में बदलने के लिए इस मान से विभाजित किया जाता है। यह 0 से अधिक होना चाहिए। सटीक वास्तविक-दुनिया की गतियों के लिए, कैमरा ऊँचाई, कोण, और दृश्य ज्यामिति के आधार पर कैलिब्रेट करें। उदाहरण: यदि 1 पिक्सेल = 0.01 मीटर (1cm) है, तो 0.01 उपयोग करें। डिफ़ॉल्ट 1.0 का अर्थ है कोई रूपांतरण नहीं (परिणाम पिक्सेल प्रति सेकंड में होंगे)।
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
रनटाइम संगतता
सॉफ्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन दूरस्थ; इनपुट वीडियो : ब्लॉक प्रति-वीडियो स्थिति को प्रक्रिया मेमोरी में बनाए रखता है (video_metadata.video_identifier द्वारा कुंजीबद्ध)। स्टेटलेस या मल्टी-रिप्लिका HTTP रनटाइम्स पर दूरस्थ स्टेप निष्पादन के साथ, क्रमिक अनुरोधों को अलग-अलग वर्कर प्रक्रियाएँ सर्व कर सकती हैं, इसलिए कॉल्स के बीच स्थिति रीसेट हो जाती है और आउटपुट ट्रैकिंग / काउंटिंग / एग्रीगेशन के लिए अर्थहीन हो जाता है। स्थिर फ़्रेम-से-फ़्रेम परिणामों के लिए एक स्थायी WebRTC सत्र में स्थानीय स्टेप निष्पादन का उपयोग करें।
सॉफ्ट - इनपुट छवि : ब्लॉक वीडियो या दोहराए गए-फ़्रेम वर्कफ़्लो से समयगत संदर्भ पर निर्भर करता है। एक स्थिर छवि/फ़ोटो के साथ, ट्रैक करने, तुलना करने, समेकित करने या दृश्यीकृत करने के लिए कोई अर्थपूर्ण इतिहास नहीं होता, इसलिए ब्लॉक बहुत कम या कोई लाभ नहीं देता।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार वेग संस्करण v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवि(छवि): एम्बेडेड वीडियो मेटाडेटा वाली छवि। video_metadata में fps, frame_number, frame_timestamp, और video_identifier शामिल हैं। समय अंतराल की गणना और विभिन्न वीडियो के लिए अलग वेग ट्रैकिंग स्थिति बनाए रखने हेतु आवश्यक।detections(Union[object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction]): ट्रैक किए गए ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन भविष्यवाणियाँ। इनमें ट्रैकिंग ब्लॉक से tracker_id जानकारी शामिल होनी चाहिए। वेग की गणना समय के साथ बाउंडिंग बॉक्स केंद्रों के विस्थापन के आधार पर की जाती है। आउटपुट डिटेक्शन्स में डिटेक्शन मेटाडेटा में velocity (m/s सदिश), speed (m/s स्केलर), smoothed_velocity (m/s सदिश), और smoothed_speed (m/s स्केलर) शामिल होते हैं।smoothing_alpha(float): एक्सपोनेंशियल मूविंग एवरेज के लिए स्मूदिंग फैक्टर (alpha), सीमा 0 < alpha <= 1। यह नियंत्रित करता है कि वेग मापों पर कितना स्मूदिंग लागू किया जाता है। कम मान (0 के करीब) अधिक स्मूदिंग प्रदान करते हैं - परिवर्तनों के प्रति धीमी प्रतिक्रिया, कम शोर। अधिक मान (1 के करीब) कम स्मूदिंग प्रदान करते हैं - परिवर्तनों के प्रति तेज़ प्रतिक्रिया, अधिक शोर। डिफ़ॉल्ट 0.5 स्मूदनेस और प्रतिक्रिया-क्षमता के बीच संतुलन बनाता है।pixels_per_meter(float): वास्तविक-दुनिया की गति गणना के लिए पिक्सेल से मीटर में रूपांतरण कारक। पिक्सेल प्रति सेकंड में वेग मापों को मीटर प्रति सेकंड में बदलने के लिए इस मान से विभाजित किया जाता है। यह 0 से अधिक होना चाहिए। सटीक वास्तविक-दुनिया की गतियों के लिए, कैमरा ऊँचाई, कोण, और दृश्य ज्यामिति के आधार पर कैलिब्रेट करें। उदाहरण: यदि 1 पिक्सेल = 0.01 मीटर (1cm) है, तो 0.01 उपयोग करें। डिफ़ॉल्ट 1.0 का अर्थ है कोई रूपांतरण नहीं (परिणाम पिक्सेल प्रति सेकंड में होंगे)।
आउटपुट
velocity_detections(Union[keypoint_detection_prediction,object_detection_prediction,instance_segmentation_prediction]): sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और पहचाने गए कीपॉइंट्स वाली भविष्यवाणी यदिkeypoint_detection_predictionया पहचाने गए बाउंडिंग बॉक्स वाली Prediction, sv.Detections(...) ऑब्जेक्ट के रूप में, यदिobject_detection_predictionया यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शनinstance_segmentation_prediction.
अंतिम अपडेट
क्या यह उपयोगी था?