For the complete documentation index, see llms.txt. This page is also available as Markdown.

लाइन काउंटर

एक रेखा को पार करने वाले detections की गणना करें।

v2

ट्रैक किए गए डिटेक्शनों का उपयोग करके वीडियो में एक परिभाषित लाइन सेगमेंट को पार करने वाले ऑब्जेक्ट्स की गिनती करें, विपरीत दिशाओं में (अंदर और बाहर) लाइन पार करने वाले ऑब्जेक्ट्स के लिए अलग-अलग गिनती बनाए रखें, और यातायात विश्लेषण, लोगों की गिनती, प्रवेश/निकास निगरानी, तथा दिशात्मक प्रवाह मापन वर्कफ़्लो के लिए गिनती के दोनों मानों और लाइन पार करने वाले वास्तविक डिटेक्शन ऑब्जेक्ट्स को आउटपुट करें।

यह ब्लॉक कैसे काम करता है

यह ब्लॉक वीडियो फ़्रेमों में उनकी गति को ट्रैक करके एक लाइन सेगमेंट को पार करने वाले ऑब्जेक्ट्स की गिनती करता है। ब्लॉक:

  1. अद्वितीय ट्रैकर IDs और एम्बेडेड वीडियो मेटाडेटा वाली एक छवि के साथ ट्रैक की गई डिटेक्शन भविष्यवाणियाँ प्राप्त करता है

  2. छवि से वीडियो मेटाडेटा निकालता है:

    • WorkflowImageData ऑब्जेक्ट से video_metadata तक पहुँचता है

    • विभिन्न वीडियो के लिए अलग-अलग गिनती स्थिति बनाए रखने हेतु video_identifier निकालता है

    • प्रति वीडियो लाइन ज़ोन स्थिति को आरंभ और प्रबंधित करने के लिए वीडियो मेटाडेटा का उपयोग करता है

  3. सत्यापित करता है कि डिटेक्शनों में ट्रैकर IDs हैं (फ़्रेमों के बीच ऑब्जेक्ट गति को ट्रैक करने के लिए आवश्यक)

  4. वीडियो के लिए एक लाइन ज़ोन आरंभ करता है या पुनः प्राप्त करता है:

    • लाइन सेगमेंट को परिभाषित करने वाले दो कोऑर्डिनेट बिंदुओं से एक LineZone बनाता है

    • यदि निर्दिष्ट हो तो ट्रिगरिंग एंकर पॉइंट कॉन्फ़िगर करता है (वैकल्पिक - यदि निर्दिष्ट न हो, तो डिफ़ॉल्ट एंकर व्यवहार का उपयोग करता है)

    • video_identifier का उपयोग करके प्रति वीडियो लाइन ज़ोन कॉन्फ़िगरेशन संग्रहीत करता है

    • प्रत्येक वीडियो के लिए अलग-अलग गिनती स्थिति बनाए रखता है

  5. फ़्रेमों में ऑब्जेक्ट की स्थितियों की निगरानी करता है:

    • प्रत्येक ऑब्जेक्ट की स्थिति को उसके अद्वितीय tracker_id का उपयोग करके ट्रैक करता है

    • यह पता लगाता है कि किसी ऑब्जेक्ट का ट्रिगरिंग एंकर पॉइंट (यदि निर्दिष्ट हो) या डिफ़ॉल्ट एंकर लाइन को कब पार करता है

    • यह निर्धारित करता है कि ऑब्जेक्ट लाइन के किस पक्ष से आता है, उसके आधार पर पार करने की दिशा

  6. लाइन पार करने की गणना करता है:

    • अंदर दिशा: जो ऑब्जेक्ट्स एक दिशा में लाइन पार करते हैं, वे count_in काउंटर बढ़ाते हैं

    • बाहर दिशा: जो ऑब्जेक्ट्स विपरीत दिशा में लाइन पार करते हैं, वे count_out काउंटर बढ़ाते हैं

    • प्रत्येक अद्वितीय tracker_id को प्रति पार केवल एक बार गिना जाता है (यदि ऑब्जेक्ट लाइन के पास दोलन करे तो डुप्लीकेट गिनती को रोकता है)

  7. पार करने वाले डिटेक्शनों की पहचान करता है:

    • वर्तमान फ़्रेम में प्रत्येक दिशा में कौन से डिटेक्शन पार हुए, यह पहचानने वाले मास्क बनाता है

    • डिटेक्शनों को अलग करके उन डिटेक्शनों को अलग करता है जो "in" पार हुए और जो "out" पार हुए

    • आगे की प्रोसेसिंग के लिए वास्तविक डिटेक्शन ऑब्जेक्ट्स (सिर्फ गिनती नहीं) लौटाता है

  8. स्थायी गिनती स्थिति बनाए रखता है:

    • पूरे वीडियो के लिए फ़्रेमों के साथ गिनतियाँ संचित होती रहती हैं

    • वर्कफ़्लो निष्पादन पूर्ण होने तक प्रत्येक वीडियो के लिए स्थिति बनी रहती है

    • प्रत्येक अद्वितीय video_identifier के लिए अलग काउंटर

  9. चार आउटपुट लौटाता है:

    • count_in: "in" दिशा में लाइन पार करने वाले ऑब्जेक्ट्स की कुल संख्या (वीडियो भर में संचयी)

    • count_out: "out" दिशा में लाइन पार करने वाले ऑब्जेक्ट्स की कुल संख्या (वीडियो भर में संचयी)

    • detections_in: "in" दिशा में लाइन पार करने वाले डिटेक्शन ऑब्जेक्ट्स (वर्तमान फ़्रेम के पार)

    • detections_out: "out" दिशा में लाइन पार करने वाले डिटेक्शन ऑब्जेक्ट्स (वर्तमान फ़्रेम के पार)

लाइन सेगमेंट वीडियो फ़्रेम में एक आभासी सीमा परिभाषित करता है। दिशा (in/out) इस बात से निर्धारित होती है कि ऑब्जेक्ट्स लाइन के किस पक्ष से आते हैं - एक क्षैतिज लाइन के लिए, ऊपर से आने वाले ऑब्जेक्ट्स को "in" माना जा सकता है जबकि नीचे से आने वाले ऑब्जेक्ट्स को "out" माना जा सकता है (या इसके विपरीत, लाइन के अभिविन्यास पर निर्भर करते हुए)। ट्रिगरिंग एंकर (यदि निर्दिष्ट हो) यह निर्धारित करता है कि बाउंडिंग बॉक्स का कौन-सा बिंदु गिनती के लिए लाइन को पार करना चाहिए - यदि निर्दिष्ट न हो, तो लाइन ज़ोन अपने डिफ़ॉल्ट एंकर व्यवहार का उपयोग करता है। गिनती आउटपुट वीडियो भर में संचयी कुल प्रदान करते हैं, जबकि डिटेक्शन आउटपुट वर्तमान फ़्रेम में पार करने वाले वास्तविक ऑब्जेक्ट्स प्रदान करते हैं, जिससे पार करने की घटनाओं का आगे विश्लेषण या विज़ुअलाइज़ेशन संभव होता है।

सामान्य उपयोग के मामले

  • लोगों की गिनती: इमारतों, दुकानों, या आयोजनों में प्रवेश और निकास करने वाले लोगों की गिनती करें (जैसे, स्टोर में प्रवेश करने वाले आगंतुकों की गिनती, इमारत में प्रवेश/निकास करने वाले लोगों को ट्रैक करना, कार्यक्रम उपस्थिति की निगरानी), जिससे प्रवेश/निकास गिनती वर्कफ़्लो सक्षम होते हैं

  • यातायात विश्लेषण: चौराहों या सड़क खंडों से गुजरने वाले वाहनों की गिनती करें (जैसे, चौराहा पार करने वाले वाहनों की गिनती, विशिष्ट दिशाओं में यातायात प्रवाह को ट्रैक करना, चेकपॉइंट्स पर वाहन आवागमन की निगरानी), जिससे यातायात प्रवाह विश्लेषण वर्कफ़्लो सक्षम होते हैं

  • रिटेल एनालिटिक्स: रिटेल स्थानों में ग्राहक की गतिविधि और फुट ट्रैफ़िक को ट्रैक करें (जैसे, स्टोर अनुभागों में प्रवेश करने वाले ग्राहकों की गिनती, विभागों के बीच गति को ट्रैक करना, शॉपिंग प्रवाह पैटर्न की निगरानी), जिससे रिटेल फुट ट्रैफ़िक विश्लेषण वर्कफ़्लो सक्षम होते हैं

  • सुरक्षा निगरानी: सुरक्षित क्षेत्रों या चेकपॉइंट्स पर प्रवेश और निकास की निगरानी करें (जैसे, प्रतिबंधित क्षेत्रों में प्रविष्टियों को ट्रैक करना, एक्सेस पॉइंट्स पर लोगों की गिनती, चेकपॉइंट क्रॉसिंग की निगरानी), जिससे सुरक्षा पहुँच निगरानी वर्कफ़्लो सक्षम होते हैं

  • अधिभोग प्रबंधन: स्थानों में प्रवेश और छोड़ने वाले ऑब्जेक्ट्स की गिनती करके अधिभोग (occupancy) में बदलाव को ट्रैक करें (जैसे, कमरे की क्षमता प्रबंधित करने के लिए प्रवेश/निकास की गिनती, पार्किंग में वाहन आगमन/प्रस्थान ट्रैक करना, स्थान अधिभोग में बदलाव की निगरानी), जिससे अधिभोग ट्रैकिंग वर्कफ़्लो सक्षम होते हैं

  • वन्यजीव निगरानी: परिभाषित पथों या सीमाओं को पार करने वाले जानवरों की गिनती करें (जैसे, पशु प्रवासन पैटर्न को ट्रैक करना, सड़कें पार करने वाले वन्यजीवों की गिनती, आवासों में पशु गतिविधि की निगरानी), जिससे वन्यजीव व्यवहार विश्लेषण वर्कफ़्लो सक्षम होते हैं

अन्य ब्लॉक्स से कनेक्ट करना

यह ब्लॉक ट्रैक किए गए डिटेक्शन और एम्बेडेड वीडियो मेटाडेटा वाली एक इमेज प्राप्त करता है, और count_in, count_out, detections_in, तथा detections_out उत्पन्न करता है:

  • Byte Tracker ब्लॉक्स के बाद ट्रैक किए गए ऑब्जेक्ट्स को लाइनों को पार करते हुए गिनने के लिए (जैसे, ट्रैक किए गए लोगों का लाइन पार करना गिनना, सुसंगत IDs के साथ वाहन क्रॉसिंग को ट्रैक करना, ट्रैक किए गए ऑब्जेक्ट की गतियों की निगरानी), जिससे ट्रैकिंग-से-गिनती वर्कफ़्लो सक्षम होते हैं

  • ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन ब्लॉक्स के बाद डिटेक्ट किए गए ऑब्जेक्ट्स को गिनने के लिए ट्रैकिंग सक्षम के साथ (जैसे, डिटेक्ट किए गए वाहनों की गिनती, लोगों के क्रॉसिंग को ट्रैक करना, ऑब्जेक्ट की गतियों की निगरानी), जिससे डिटेक्शन-से-गिनती वर्कफ़्लो सक्षम होते हैं

  • detections_in या detections_out आउटपुट का उपयोग करके उन ऑब्जेक्ट्स को प्रोसेस या विज़ुअलाइज़ करने के लिए जो लाइन पार कर चुके हैं (जैसे, पार करने वाले ऑब्जेक्ट्स को विज़ुअलाइज़ करना, क्रॉसिंग ऑब्जेक्ट्स का विश्लेषण, क्रॉसिंग घटनाओं के लिए फ़िल्टर करना), जिससे क्रॉसिंग ऑब्जेक्ट विश्लेषण वर्कफ़्लो सक्षम होते हैं

  • विज़ुअलाइज़ेशन ब्लॉकों से पहले लाइन काउंटर जानकारी और क्रॉसिंग ऑब्जेक्ट्स प्रदर्शित करने के लिए (जैसे, लाइन और गिनतियाँ विज़ुअलाइज़ करना, क्रॉसिंग आँकड़े प्रदर्शित करना, एनोटेशन के साथ क्रॉसिंग ऑब्जेक्ट्स दिखाना), जिससे गिनती विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम होते हैं

  • डेटा संग्रहण ब्लॉकों से पहले गिनती डेटा और क्रॉसिंग घटनाओं को रिकॉर्ड करने के लिए (जैसे, प्रवेश/निकास गिनतियाँ लॉग करना, यातायात आँकड़े संग्रहीत करना, मेटाडेटा के साथ क्रॉसिंग ऑब्जेक्ट्स रिकॉर्ड करना), जिससे गिनती डेटा लॉगिंग वर्कफ़्लो सक्षम होते हैं

  • सूचना ब्लॉकों से पहले गिनती सीमाओं या क्रॉसिंग घटनाओं पर अलर्ट करने के लिए (जैसे, जब गिनती सीमा से अधिक हो तो अलर्ट करना, विशिष्ट ऑब्जेक्ट क्रॉसिंग पर सूचित करना, गिनतियों के आधार पर क्रियाएँ ट्रिगर करना), जिससे गिनती-आधारित सूचना वर्कफ़्लो सक्षम होते हैं

संस्करणों के बीच अंतर

v1 से उन्नत:

  • डिटेक्शन आउटपुट: दो नए आउटपुट जोड़ता है (detections_in और detections_out) जो केवल कुल गिनती नहीं, बल्कि प्रत्येक दिशा में लाइन पार करने वाले वास्तविक डिटेक्शन ऑब्जेक्ट्स प्रदान करते हैं, जिससे क्रॉसिंग ऑब्जेक्ट्स की डाउनस्ट्रीम प्रोसेसिंग और विज़ुअलाइज़ेशन संभव होता है

  • सरल इनपुट: उपयोग करता है छवि ऐसा input जो एक अलग metadata फ़ील्ड की आवश्यकता के बजाय एम्बेडेड वीडियो मेटाडेटा रखता है, जिससे वर्कफ़्लो कनेक्शन सरल होते हैं और इनपुट जटिलता कम होती है

  • वैकल्पिक ट्रिगरिंग एंकर: बनाता है triggering_anchor वैकल्पिक (डिफ़ॉल्ट None) बनाता है, आवश्यक नहीं, जिससे जब किसी विशिष्ट एंकर की आवश्यकता न हो तो लाइन ज़ोन अपने डिफ़ॉल्ट एंकर व्यवहार का उपयोग कर सकता है

  • बेहतर एकीकरण: image-आधारित वर्कफ़्लो के साथ बेहतर एकीकरण, क्योंकि वीडियो मेटाडेटा अलग metadata input की आवश्यकता के बजाय सीधे इमेज ऑब्जेक्ट से एक्सेस किया जाता है

आवश्यकताएँ

इस ब्लॉक को tracker_id जानकारी वाले ट्रैक किए गए डिटेक्शन की आवश्यकता होती है (डिटेक्शन Byte Tracker जैसे ट्रैकिंग ब्लॉक से आने चाहिए)। लाइन को ठीक 2 बिंदुओं की एक सूची के रूप में परिभाषित किया जाना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 निर्देशांकों (x, y) वाली एक सूची या टपल हो। इमेज के video_metadata में विभिन्न वीडियो के लिए अलग-अलग गिनती स्थिति बनाए रखने हेतु video_identifier शामिल होना चाहिए। ब्लॉक प्रत्येक वीडियो के लिए फ़्रेमों के बीच स्थायी गिनती स्थिति बनाए रखता है, इसलिए इसका उपयोग ऐसे वीडियो वर्कफ़्लो में किया जाना चाहिए जहाँ फ़्रेम क्रमिक रूप से प्रोसेस होते हैं। सटीक गिनती के लिए, वैध tracker IDs के साथ डिटेक्शन को फ़्रेमों में सुसंगत रूप से प्रदान किया जाना चाहिए।

प्रकार पहचानकर्ता

स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/line_counter@v2 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।

गुण

नाम

प्रकार

विवरण

संदर्भ

name

str

इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..

line_segment

List[Any]

ठीक दो बिंदुओं द्वारा परिभाषित लाइन सेगमेंट, जहाँ प्रत्येक के कोऑर्डिनेट [x, y] हों। एक पक्ष से पार करने वाले ऑब्जेक्ट्स को 'in' माना जाता है, दूसरे पक्ष से पार करने वाले ऑब्जेक्ट्स को 'out' माना जाता है। उदाहरण: [[0, 100], [500, 100]] y=100 पर एक क्षैतिज लाइन बनाता है। पार करने की दिशा इस पर निर्भर करती है कि ऑब्जेक्ट्स किस पक्ष से आते हैं..

triggering_anchor

str

बाउंडिंग बॉक्स पर वैकल्पिक बिंदु जिसे गिनती के लिए लाइन को पार करना चाहिए। यदि निर्दिष्ट न हो (None), तो लाइन ज़ोन अपने डिफ़ॉल्ट एंकर व्यवहार का उपयोग करता है। निर्दिष्ट होने पर विकल्प: CENTER, BOTTOM_CENTER, TOP_CENTER, CENTER_LEFT, CENTER_RIGHT, आदि। CENTER निर्दिष्ट करने से यह सुनिश्चित होता है कि गिनती से पहले ऑब्जेक्ट पर्याप्त रूप से लाइन के पार हो, जिससे लाइन के पास लेकिन पूरी तरह न पार करने वाले ऑब्जेक्ट्स से गलत पॉज़िटिव कम होते हैं..

यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।

रनटाइम संगतता

सॉफ्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन दूरस्थ; इनपुट वीडियो : ब्लॉक प्रति-वीडियो स्थिति को प्रक्रिया मेमोरी में बनाए रखता है (video_metadata.video_identifier द्वारा कुंजीबद्ध)। स्टेटलेस या मल्टी-रिप्लिका HTTP रनटाइम्स पर दूरस्थ स्टेप निष्पादन के साथ, क्रमिक अनुरोधों को अलग-अलग वर्कर प्रक्रियाएँ सर्व कर सकती हैं, इसलिए कॉल्स के बीच स्थिति रीसेट हो जाती है और आउटपुट ट्रैकिंग / काउंटिंग / एग्रीगेशन के लिए अर्थहीन हो जाता है। स्थिर फ़्रेम-से-फ़्रेम परिणामों के लिए एक स्थायी WebRTC सत्र में स्थानीय स्टेप निष्पादन का उपयोग करें।

सॉफ्ट - इनपुट छवि : ब्लॉक वीडियो या दोहराए गए-फ़्रेम वर्कफ़्लो से समयगत संदर्भ पर निर्भर करता है। एक स्थिर छवि/फ़ोटो के साथ, ट्रैक करने, तुलना करने, समेकित करने या दृश्यीकृत करने के लिए कोई अर्थपूर्ण इतिहास नहीं होता, इसलिए ब्लॉक बहुत कम या कोई लाभ नहीं देता।

इनपुट और आउटपुट बाइंडिंग्स

उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार लाइन काउंटर संस्करण v2 है।

इनपुट और आउटपुट बाइंडिंग्स
  • इनपुट

    • छवि (छवि): एम्बेडेड वीडियो मेटाडेटा वाली इमेज। video_metadata में विभिन्न वीडियो के लिए अलग-अलग गिनती स्थिति बनाए रखने हेतु video_identifier होता है। फ़्रेमों में स्थायी गिनती के लिए आवश्यक..

    • detections (Union[object_detection_prediction, instance_segmentation_prediction]): ट्रैक किए गए ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन प्रेडिक्शन। इसमें ट्रैकिंग ब्लॉक से tracker_id जानकारी शामिल होनी चाहिए। जब किसी ऑब्जेक्ट का ट्रिगरिंग एंकर पॉइंट (यदि निर्दिष्ट हो) लाइन सेगमेंट को पार करता है, तब ऑब्जेक्ट्स को गिना जाता है। detections_in और detections_out आउटपुट प्रत्येक दिशा में लाइन पार करने वाले वास्तविक डिटेक्शन ऑब्जेक्ट्स प्रदान करते हैं..

    • line_segment (list_of_values): ठीक दो बिंदुओं द्वारा परिभाषित लाइन सेगमेंट, जहाँ प्रत्येक के कोऑर्डिनेट [x, y] हों। एक पक्ष से पार करने वाले ऑब्जेक्ट्स को 'in' माना जाता है, दूसरे पक्ष से पार करने वाले ऑब्जेक्ट्स को 'out' माना जाता है। उदाहरण: [[0, 100], [500, 100]] y=100 पर एक क्षैतिज लाइन बनाता है। पार करने की दिशा इस पर निर्भर करती है कि ऑब्जेक्ट्स किस पक्ष से आते हैं..

    • triggering_anchor (string): बाउंडिंग बॉक्स पर वैकल्पिक बिंदु जिसे गिनती के लिए लाइन को पार करना चाहिए। यदि निर्दिष्ट न हो (None), तो लाइन ज़ोन अपने डिफ़ॉल्ट एंकर व्यवहार का उपयोग करता है। निर्दिष्ट होने पर विकल्प: CENTER, BOTTOM_CENTER, TOP_CENTER, CENTER_LEFT, CENTER_RIGHT, आदि। CENTER निर्दिष्ट करने से यह सुनिश्चित होता है कि गिनती से पहले ऑब्जेक्ट पर्याप्त रूप से लाइन के पार हो, जिससे लाइन के पास लेकिन पूरी तरह न पार करने वाले ऑब्जेक्ट्स से गलत पॉज़िटिव कम होते हैं..

  • आउटपुट

    • count_in (पूर्णांक): पूर्णांक मान।

    • count_out (पूर्णांक): पूर्णांक मान।

    • detections_in (Union[object_detection_prediction, instance_segmentation_prediction]): यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स वाली प्रेडिक्शन object_detection_prediction या यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शन instance_segmentation_prediction.

    • detections_out (Union[object_detection_prediction, instance_segmentation_prediction]): यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स वाली प्रेडिक्शन object_detection_prediction या यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शन instance_segmentation_prediction.

उदाहरण JSON परिभाषा

v1

ट्रैक किए गए डिटेक्शन का उपयोग करके वीडियो में एक परिभाषित लाइन सेगमेंट को पार करने वाले ऑब्जेक्ट्स की गिनती करें, विपरीत दिशाओं में (अंदर और बाहर) लाइन पार करने वाले ऑब्जेक्ट्स के लिए अलग-अलग गिनती बनाए रखें, और यातायात विश्लेषण, लोगों की गिनती, प्रवेश/निकास निगरानी, तथा दिशात्मक प्रवाह मापन वर्कफ़्लो के लिए।

यह ब्लॉक कैसे काम करता है

यह ब्लॉक वीडियो फ़्रेमों में उनकी गति को ट्रैक करके एक लाइन सेगमेंट को पार करने वाले ऑब्जेक्ट्स की गिनती करता है। ब्लॉक:

  1. अद्वितीय tracker IDs और वीडियो मेटाडेटा वाले ट्रैक किए गए डिटेक्शन प्रेडिक्शन प्राप्त करता है

  2. सत्यापित करता है कि डिटेक्शनों में ट्रैकर IDs हैं (फ़्रेमों के बीच ऑब्जेक्ट गति को ट्रैक करने के लिए आवश्यक)

  3. वीडियो के लिए एक लाइन ज़ोन आरंभ करता है या पुनः प्राप्त करता है:

    • लाइन सेगमेंट को परिभाषित करने वाले दो कोऑर्डिनेट बिंदुओं से एक LineZone बनाता है

    • video_identifier का उपयोग करके प्रति वीडियो लाइन ज़ोन कॉन्फ़िगरेशन संग्रहीत करता है

    • प्रत्येक वीडियो के लिए अलग-अलग गिनती स्थिति बनाए रखता है

  4. फ़्रेमों में ऑब्जेक्ट की स्थितियों की निगरानी करता है:

    • प्रत्येक ऑब्जेक्ट की स्थिति को उसके अद्वितीय tracker_id का उपयोग करके ट्रैक करता है

    • यह पता लगाता है कि किसी ऑब्जेक्ट का ट्रिगरिंग एंकर पॉइंट (डिफ़ॉल्ट: बाउंडिंग बॉक्स का CENTER) लाइन को कब पार करता है

    • यह निर्धारित करता है कि ऑब्जेक्ट लाइन के किस पक्ष से आता है, उसके आधार पर पार करने की दिशा

  5. लाइन पार करने की गणना करता है:

    • अंदर दिशा: जो ऑब्जेक्ट्स एक दिशा में लाइन पार करते हैं, वे count_in काउंटर बढ़ाते हैं

    • बाहर दिशा: जो ऑब्जेक्ट्स विपरीत दिशा में लाइन पार करते हैं, वे count_out काउंटर बढ़ाते हैं

    • प्रत्येक अद्वितीय tracker_id को प्रति पार केवल एक बार गिना जाता है (यदि ऑब्जेक्ट लाइन के पास दोलन करे तो डुप्लीकेट गिनती को रोकता है)

  6. स्थायी गिनती स्थिति बनाए रखता है:

    • पूरे वीडियो के लिए फ़्रेमों के साथ गिनतियाँ संचित होती रहती हैं

    • वर्कफ़्लो निष्पादन पूर्ण होने तक प्रत्येक वीडियो के लिए स्थिति बनी रहती है

    • प्रत्येक अद्वितीय video_identifier के लिए अलग काउंटर

  7. दो गिनती मान लौटाता है:

    • count_in: "in" दिशा में लाइन पार करने वाले ऑब्जेक्ट्स की कुल संख्या

    • count_out: "out" दिशा में लाइन पार करने वाले ऑब्जेक्ट्स की कुल संख्या

लाइन सेगमेंट वीडियो फ़्रेम में एक आभासी सीमा परिभाषित करता है। दिशा (in/out) इस बात से निर्धारित होती है कि ऑब्जेक्ट्स लाइन के किस पक्ष से आते हैं - एक क्षैतिज लाइन के लिए, ऊपर से आने वाले ऑब्जेक्ट्स को "in" माना जा सकता है जबकि नीचे से आने वाले ऑब्जेक्ट्स को "out" माना जा सकता है (या इसके विपरीत, लाइन के अभिविन्यास पर निर्भर करते हुए)। ट्रिगरिंग एंकर यह निर्धारित करता है कि बाउंडिंग बॉक्स का कौन-सा बिंदु गिनती के लिए लाइन को पार करना चाहिए - CENTER का उपयोग यह सुनिश्चित करता है कि गिनती से पहले ऑब्जेक्ट पर्याप्त रूप से लाइन के पार हो।

सामान्य उपयोग के मामले

  • लोगों की गिनती: इमारतों, दुकानों, या आयोजनों में प्रवेश और निकास करने वाले लोगों की गिनती करें (जैसे, स्टोर में प्रवेश करने वाले आगंतुकों की गिनती, इमारत में प्रवेश/निकास करने वाले लोगों को ट्रैक करना, कार्यक्रम उपस्थिति की निगरानी), जिससे प्रवेश/निकास गिनती वर्कफ़्लो सक्षम होते हैं

  • यातायात विश्लेषण: चौराहों या सड़क खंडों से गुजरने वाले वाहनों की गिनती करें (जैसे, चौराहा पार करने वाले वाहनों की गिनती, विशिष्ट दिशाओं में यातायात प्रवाह को ट्रैक करना, चेकपॉइंट्स पर वाहन आवागमन की निगरानी), जिससे यातायात प्रवाह विश्लेषण वर्कफ़्लो सक्षम होते हैं

  • रिटेल एनालिटिक्स: रिटेल स्थानों में ग्राहक की गतिविधि और फुट ट्रैफ़िक को ट्रैक करें (जैसे, स्टोर अनुभागों में प्रवेश करने वाले ग्राहकों की गिनती, विभागों के बीच गति को ट्रैक करना, शॉपिंग प्रवाह पैटर्न की निगरानी), जिससे रिटेल फुट ट्रैफ़िक विश्लेषण वर्कफ़्लो सक्षम होते हैं

  • सुरक्षा निगरानी: सुरक्षित क्षेत्रों या चेकपॉइंट्स पर प्रवेश और निकास की निगरानी करें (जैसे, प्रतिबंधित क्षेत्रों में प्रविष्टियों को ट्रैक करना, एक्सेस पॉइंट्स पर लोगों की गिनती, चेकपॉइंट क्रॉसिंग की निगरानी), जिससे सुरक्षा पहुँच निगरानी वर्कफ़्लो सक्षम होते हैं

  • अधिभोग प्रबंधन: स्थानों में प्रवेश और छोड़ने वाले ऑब्जेक्ट्स की गिनती करके अधिभोग (occupancy) में बदलाव को ट्रैक करें (जैसे, कमरे की क्षमता प्रबंधित करने के लिए प्रवेश/निकास की गिनती, पार्किंग में वाहन आगमन/प्रस्थान ट्रैक करना, स्थान अधिभोग में बदलाव की निगरानी), जिससे अधिभोग ट्रैकिंग वर्कफ़्लो सक्षम होते हैं

  • वन्यजीव निगरानी: परिभाषित पथों या सीमाओं को पार करने वाले जानवरों की गिनती करें (जैसे, पशु प्रवासन पैटर्न को ट्रैक करना, सड़कें पार करने वाले वन्यजीवों की गिनती, आवासों में पशु गतिविधि की निगरानी), जिससे वन्यजीव व्यवहार विश्लेषण वर्कफ़्लो सक्षम होते हैं

अन्य ब्लॉक्स से कनेक्ट करना

यह ब्लॉक ट्रैक किए गए डिटेक्शन और वीडियो मेटाडेटा प्राप्त करता है, और count_in तथा count_out मान उत्पन्न करता है:

  • Byte Tracker ब्लॉक्स के बाद ट्रैक किए गए ऑब्जेक्ट्स को लाइनों को पार करते हुए गिनने के लिए (जैसे, ट्रैक किए गए लोगों का लाइन पार करना गिनना, सुसंगत IDs के साथ वाहन क्रॉसिंग को ट्रैक करना, ट्रैक किए गए ऑब्जेक्ट की गतियों की निगरानी), जिससे ट्रैकिंग-से-गिनती वर्कफ़्लो सक्षम होते हैं

  • ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन ब्लॉक्स के बाद डिटेक्ट किए गए ऑब्जेक्ट्स को गिनने के लिए ट्रैकिंग सक्षम के साथ (जैसे, डिटेक्ट किए गए वाहनों की गिनती, लोगों के क्रॉसिंग को ट्रैक करना, ऑब्जेक्ट की गतियों की निगरानी), जिससे डिटेक्शन-से-गिनती वर्कफ़्लो सक्षम होते हैं

  • विज़ुअलाइज़ेशन ब्लॉकों से पहले लाइन काउंटर जानकारी प्रदर्शित करने के लिए (जैसे, लाइन और गिनतियाँ विज़ुअलाइज़ करना, क्रॉसिंग आँकड़े प्रदर्शित करना, गिनती परिणाम दिखाना), जिससे गिनती विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम होते हैं

  • डेटा संग्रहण ब्लॉकों से पहले गिनती डेटा रिकॉर्ड करने के लिए (जैसे, प्रवेश/निकास गिनतियाँ लॉग करना, यातायात आँकड़े संग्रहीत करना, अधिभोग मेट्रिक्स रिकॉर्ड करना), जिससे गिनती डेटा लॉगिंग वर्कफ़्लो सक्षम होते हैं

  • सूचना ब्लॉकों से पहले गिनती सीमाओं या घटनाओं पर अलर्ट करने के लिए (जैसे, जब गिनती सीमा से अधिक हो तो अलर्ट करना, अधिभोग परिवर्तनों पर सूचित करना, गिनतियों के आधार पर क्रियाएँ ट्रिगर करना), जिससे गिनती-आधारित सूचना वर्कफ़्लो सक्षम होते हैं

  • विश्लेषण ब्लॉकों से पहले गिनती मेट्रिक्स को प्रोसेस करने के लिए (जैसे, यातायात पैटर्न का विश्लेषण, अधिभोग डेटा प्रोसेस करना, गिनती आँकड़ों के साथ काम करना), जिससे गिनती विश्लेषण वर्कफ़्लो सक्षम होते हैं

आवश्यकताएँ

इस ब्लॉक को tracker_id जानकारी वाले ट्रैक किए गए डिटेक्शन की आवश्यकता होती है (डिटेक्शन Byte Tracker जैसे ट्रैकिंग ब्लॉक से आने चाहिए)। लाइन को ठीक 2 बिंदुओं की एक सूची के रूप में परिभाषित किया जाना चाहिए, जहाँ प्रत्येक बिंदु ठीक 2 निर्देशांकों (x, y) वाली एक सूची या टपल हो। ब्लॉक को विभिन्न वीडियो के लिए अलग-अलग गिनती स्थिति बनाए रखने हेतु video_identifier के साथ वीडियो मेटाडेटा की आवश्यकता होती है। ब्लॉक प्रत्येक वीडियो के लिए फ़्रेमों के बीच स्थायी गिनती स्थिति बनाए रखता है, इसलिए इसका उपयोग ऐसे वीडियो वर्कफ़्लो में किया जाना चाहिए जहाँ फ़्रेम क्रमिक रूप से प्रोसेस होते हैं। सटीक गिनती के लिए, वैध tracker IDs के साथ डिटेक्शन को फ़्रेमों में सुसंगत रूप से प्रदान किया जाना चाहिए।

प्रकार पहचानकर्ता

स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/line_counter@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।

गुण

नाम

प्रकार

विवरण

संदर्भ

name

str

इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..

line_segment

List[Any]

ठीक दो बिंदुओं द्वारा परिभाषित लाइन सेगमेंट, जहाँ प्रत्येक के कोऑर्डिनेट [x, y] हों। एक पक्ष से पार करने वाले ऑब्जेक्ट्स को 'in' माना जाता है, दूसरे पक्ष से पार करने वाले ऑब्जेक्ट्स को 'out' माना जाता है। उदाहरण: [[0, 100], [500, 100]] y=100 पर एक क्षैतिज लाइन बनाता है। पार करने की दिशा इस पर निर्भर करती है कि ऑब्जेक्ट्स किस पक्ष से आते हैं..

triggering_anchor

str

बाउंडिंग बॉक्स पर वह बिंदु जिसे गिनती के लिए लाइन को पार करना चाहिए। विकल्प: CENTER (डिफ़ॉल्ट), BOTTOM_CENTER, TOP_CENTER, CENTER_LEFT, CENTER_RIGHT, आदि। CENTER यह सुनिश्चित करता है कि गिनती से पहले ऑब्जेक्ट पर्याप्त रूप से लाइन के पार हो, जिससे लाइन के पास लेकिन पूरी तरह न पार करने वाले ऑब्जेक्ट्स से गलत पॉज़िटिव कम होते हैं..

यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।

रनटाइम संगतता

सॉफ्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन दूरस्थ; इनपुट वीडियो : ब्लॉक प्रति-वीडियो स्थिति को प्रक्रिया मेमोरी में बनाए रखता है (video_metadata.video_identifier द्वारा कुंजीबद्ध)। स्टेटलेस या मल्टी-रिप्लिका HTTP रनटाइम्स पर दूरस्थ स्टेप निष्पादन के साथ, क्रमिक अनुरोधों को अलग-अलग वर्कर प्रक्रियाएँ सर्व कर सकती हैं, इसलिए कॉल्स के बीच स्थिति रीसेट हो जाती है और आउटपुट ट्रैकिंग / काउंटिंग / एग्रीगेशन के लिए अर्थहीन हो जाता है। स्थिर फ़्रेम-से-फ़्रेम परिणामों के लिए एक स्थायी WebRTC सत्र में स्थानीय स्टेप निष्पादन का उपयोग करें।

सॉफ्ट - इनपुट छवि : ब्लॉक वीडियो या दोहराए गए-फ़्रेम वर्कफ़्लो से समयगत संदर्भ पर निर्भर करता है। एक स्थिर छवि/फ़ोटो के साथ, ट्रैक करने, तुलना करने, समेकित करने या दृश्यीकृत करने के लिए कोई अर्थपूर्ण इतिहास नहीं होता, इसलिए ब्लॉक बहुत कम या कोई लाभ नहीं देता।

इनपुट और आउटपुट बाइंडिंग्स

उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार लाइन काउंटर संस्करण v1 है।

इनपुट और आउटपुट बाइंडिंग्स
  • इनपुट

    • metadata (video_metadata): विभिन्न वीडियो के लिए अलग-अलग गिनती स्थिति बनाए रखने हेतु video_identifier युक्त वीडियो मेटाडेटा। फ़्रेमों में स्थायी गिनती के लिए आवश्यक..

    • detections (Union[object_detection_prediction, instance_segmentation_prediction]): ट्रैक किए गए ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन प्रेडिक्शन। इसमें ट्रैकिंग ब्लॉक से tracker_id जानकारी शामिल होनी चाहिए। जब किसी ऑब्जेक्ट का ट्रिगरिंग एंकर पॉइंट लाइन सेगमेंट को पार करता है, तब ऑब्जेक्ट्स को गिना जाता है..

    • line_segment (list_of_values): ठीक दो बिंदुओं द्वारा परिभाषित लाइन सेगमेंट, जहाँ प्रत्येक के कोऑर्डिनेट [x, y] हों। एक पक्ष से पार करने वाले ऑब्जेक्ट्स को 'in' माना जाता है, दूसरे पक्ष से पार करने वाले ऑब्जेक्ट्स को 'out' माना जाता है। उदाहरण: [[0, 100], [500, 100]] y=100 पर एक क्षैतिज लाइन बनाता है। पार करने की दिशा इस पर निर्भर करती है कि ऑब्जेक्ट्स किस पक्ष से आते हैं..

    • triggering_anchor (string): बाउंडिंग बॉक्स पर वह बिंदु जिसे गिनती के लिए लाइन को पार करना चाहिए। विकल्प: CENTER (डिफ़ॉल्ट), BOTTOM_CENTER, TOP_CENTER, CENTER_LEFT, CENTER_RIGHT, आदि। CENTER यह सुनिश्चित करता है कि गिनती से पहले ऑब्जेक्ट पर्याप्त रूप से लाइन के पार हो, जिससे लाइन के पास लेकिन पूरी तरह न पार करने वाले ऑब्जेक्ट्स से गलत पॉज़िटिव कम होते हैं..

  • आउटपुट

उदाहरण JSON परिभाषा

अंतिम अपडेट

क्या यह उपयोगी था?