> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/hi/blocks/blocks/video-processing/byte-tracker.md).

# Byte Tracker

{% hint style="warning" %}
**अप्रचलित**

यह ब्लॉक अप्रचलित है। इसके बजाय [ByteTrack ट्रैकर](/workflows/hi/blocks/blocks/video-processing/byte-track-tracker.md) ब्लॉक का उपयोग करें।
{% endhint %}

## v3

सुसंगत ऑब्जेक्ट पहचान बनाए रखने, ऑक्लूज़न और अस्थायी गायब होने को संभालने, मौजूदा ट्रैक्स के साथ डिटेक्शनों को जोड़ने, अद्वितीय ट्रैक IDs असाइन करने, इंस्टेंस को नए या पहले देखे गए के रूप में वर्गीकृत करने, और ऑब्जेक्ट व्यवहार विश्लेषण, मूवमेंट ट्रैकिंग, पहली-उपस्थिति डिटेक्शन, तथा वीडियो एनालिटिक्स वर्कफ़्लो सक्षम करने के लिए ByteTrack एल्गोरिद्म का उपयोग करके वीडियो फ़्रेमों में ऑब्जेक्ट्स को ट्रैक करें।

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

यह ब्लॉक प्रत्येक फ़्रेम से डिटेक्शनों को मौजूदा ट्रैक्स के साथ जोड़कर और नए ऑब्जेक्ट्स के लिए नए ट्रैक्स बनाकर क्रमिक वीडियो फ़्रेमों में ऑब्जेक्ट ट्रैकिंग बनाए रखता है, साथ ही यह इस आधार पर इंस्टेंस को वर्गीकृत भी करता है कि वे पहले देखे गए हैं या नहीं। ब्लॉक:

1. वर्तमान फ़्रेम के लिए डिटेक्शन प्रेडिक्शंस और एम्बेडेड वीडियो मेटाडेटा वाली एक इमेज प्राप्त करता है
2. इमेज से वीडियो मेटाडेटा निकालता है (जिसमें फ़्रेम रेट और वीडियो पहचानकर्ता शामिल हैं):
   * WorkflowImageData ऑब्जेक्ट से video\_metadata तक पहुँचता है
   * ट्रैकर कॉन्फ़िगरेशन के लिए fps (प्रति सेकंड फ़्रेम) निकालता है
   * विभिन्न वीडियो के लिए अलग ट्रैकिंग स्थिति बनाए रखने हेतु video\_identifier निकालता है
   * गुम fps को सहजता से संभालता है (विफल होने के बजाय 0 को डिफ़ॉल्ट करता है और चेतावनी लॉग करता है)
3. वीडियो के लिए ByteTrack ट्रैकर आरंभ करता है या उसे पुनः प्राप्त करता है:
   * प्रत्येक अद्वितीय वीडियो (video\_identifier द्वारा पहचाना गया) के लिए एक नया ट्रैकर इंस्टेंस बनाता है
   * फ़्रेमों के बीच ट्रैकिंग स्थिति बनाए रखने के लिए ट्रैकरों को मेमोरी में संग्रहीत करता है
   * मेटाडेटा से फ़्रेम रेट और उपयोगकर्ता-निर्दिष्ट पैरामीटरों के साथ ट्रैकर कॉन्फ़िगर करता है
   * उसी वीडियो के बाद के फ़्रेमों के लिए मौजूदा ट्रैकर का पुनः उपयोग करता है
4. वीडियो के लिए एक इंस्टेंस कैश आरंभ करता है या उसे पुनः प्राप्त करता है:
   * यह ट्रैक करने के लिए एक कैश बनाता है कि कौन-से ट्रैक IDs पहले देखे गए हैं
   * video\_identifier का उपयोग करके प्रत्येक वीडियो के लिए अलग कैश बनाए रखता है
   * instances\_cache\_size पैरामीटर का उपयोग करके कैश आकार कॉन्फ़िगर करता है
   * कैश क्षमता प्रबंधन के लिए FIFO (पहले आया, पहले गया) रणनीति का उपयोग करता है
5. यदि कई डिटेक्शन बैच दिए गए हैं, तो उन्हें मर्ज करता है:
   * कई स्रोतों से डिटेक्शनों को एक ही डिटेक्शन सेट में जोड़ता है
   * सुसंगत ट्रैकिंग के लिए सुनिश्चित करता है कि सभी डिटेक्शनों को एक साथ प्रोसेस किया जाए
6. ByteTrack एल्गोरिद्म का उपयोग करके ट्रैक्स अपडेट करता है:
   * **ट्रैक एसोसिएशन**: वर्तमान फ़्रेम के डिटेक्शनों को IoU (Intersection over Union) मैचिंग का उपयोग करके मौजूदा ट्रैक्स से मिलाता है
   * **ट्रैक सक्रियण**: track\_activation\_threshold से ऊपर विश्वास-स्तर वाले उन डिटेक्शनों के लिए नए ट्रैक्स बनाता है जो मौजूदा ट्रैक्स से मेल नहीं खाते
   * **ट्रैक मैचिंग**: जब IoU minimum\_matching\_threshold से अधिक होता है, तब डिटेक्शनों को ट्रैक्स से जोड़ता है
   * **ट्रैक स्थायित्व**: अस्थायी ऑक्लूज़न को संभालने के लिए lost\_track\_buffer का उपयोग करके उन ट्रैक्स को बनाए रखता है जिनका कोई मैच नहीं मिलता
   * **ट्रैक सत्यापन**: केवल वे ट्रैक्स आउटपुट करता है जो कम से कम minimum\_consecutive\_frames लगातार फ़्रेमों तक मौजूद रहे हों
7. ट्रैक किए गए इंस्टेंसों को नए या पहले से देखे गए के रूप में वर्गीकृत करता है:
   * track\_id वाले प्रत्येक ट्रैक किए गए डिटेक्शन के लिए, इंस्टेंस कैश की जाँच करता है
   * **नए इंस्टेंस**: कैश में न मिलने वाले ट्रैक IDs को नया (पहली उपस्थिति) के रूप में चिह्नित किया जाता है
   * **पहले से देखे गए इंस्टेंस**: कैश में पाए गए ट्रैक IDs को पहले से देखा गया (पुनः प्रकट होना) के रूप में चिह्नित किया जाता है
   * नए ट्रैक IDs के साथ कैश अपडेट करता है, और FIFO हटाने के साथ कैश आकार प्रबंधित करता है
8. ट्रैकिंग चुनौतियों को संभालता है:
   * **ऑक्लूज़न**: जब ऑब्जेक्ट्स अस्थायी रूप से छिप जाते हैं, तब ट्रैक्स बनाए रखता है (lost\_track\_buffer फ़्रेमों का उपयोग करके)
   * **छूटी हुई डिटेक्शनें**: जिन फ़्रेमों में डिटेक्शन नहीं हैं, उनमें भी ट्रैक्स को जीवित रखता है
   * **फ़ॉल्स पॉज़िटिव्स**: उन ट्रैक्स को फ़िल्टर करता है जो पर्याप्त लंबे समय तक बने नहीं रहते (minimum\_consecutive\_frames)
   * **ट्रैक विखंडन**: खोए हुए ऑब्जेक्ट्स के लिए बफ़र बनाए रखकर ट्रैक विभाजन को कम करता है
9. प्रत्येक ऑब्जेक्ट को अद्वितीय ट्रैक IDs असाइन करता है:
   * ट्रैक किया गया प्रत्येक ऑब्जेक्ट एक सुसंगत track\_id प्राप्त करता है जो फ़्रेमों के बीच बना रहता है
   * ट्रैक सक्रिय होने पर ट्रैक IDs असाइन किए जाते हैं और पूरे वीडियो में बनाए रखे जाते हैं
   * पूरे वीडियो अनुक्रम में अलग-अलग ऑब्जेक्ट्स को ट्रैक करने में सक्षम बनाता है
10. ट्रैक किए गए डिटेक्शनों के तीन सेट लौटाता है:
    * **tracked\_detections**: सभी ट्रैक किए गए डिटेक्शन track IDs के साथ (v2 के समान)
    * **new\_instances**: track IDs के साथ वे डिटेक्शन जो पहली बार दिखाई दे रहे हैं (प्रत्येक track ID पहली बार बनने पर केवल एक बार दिखाई देता है)
    * **already\_seen\_instances**: track IDs के साथ वे डिटेक्शन जो पहले देखे जा चुके हैं (जब-जब ट्रैकर उन्हें डिटेक्शनों के साथ जोड़ता है, track IDs दिखाई देते हैं)

ByteTrack एक दक्ष बहु-ऑब्जेक्ट ट्रैकिंग एल्गोरिद्म है जो tracking-by-detection करता है, और appearance features की आवश्यकता के बिना फ़्रेमों के बीच डिटेक्शनों को जोड़ता है। यह दो-चरणीय एसोसिएशन रणनीति का उपयोग करता है: पहले उच्च-विश्वास वाले डिटेक्शनों को ट्रैक्स से मिलाना, फिर कम-विश्वास वाले डिटेक्शनों को शेष ट्रैक्स और खोए हुए ट्रैक्स से मिलाना। एल्गोरिद्म खोए हुए ट्रैक्स के लिए एक बफ़र बनाए रखता है, जिससे ऑब्जेक्ट्स के ऑक्लूज़न या डिटेक्शन विफलताओं के कारण अस्थायी रूप से गायब होने पर वह ट्रैक्स को पुनः प्राप्त कर सके। इंस्टेंस वर्गीकरण सुविधा पहली उपस्थिति (सीन में प्रवेश करने वाले नए ऑब्जेक्ट्स) बनाम पुनः उपस्थिति (ऑक्लूज़न के बाद या फ़्रेम छोड़ने के बाद लौटने वाले ऑब्जेक्ट्स) का पता लगाने में सक्षम बनाती है, जो गिनती, व्यवहार विश्लेषण, और इवेंट डिटेक्शन के लिए उपयोगी है। कॉन्फ़िगर किए जा सकने वाले पैरामीटर ट्रैकिंग व्यवहार को सूक्ष्म रूप से समायोजित करने देते हैं: track\_activation\_threshold यह नियंत्रित करता है कि नए ट्रैक्स कब बनाए जाएँ (अधिक = अधिक सावधानीपूर्ण), lost\_track\_buffer ऑक्लूज़न हैंडलिंग को नियंत्रित करता है (अधिक = बेहतर ऑक्लूज़न रिकवरी), minimum\_matching\_threshold एसोसिएशन गुणवत्ता को नियंत्रित करता है (अधिक = सख़्त मैचिंग), minimum\_consecutive\_frames अल्पकालिक फ़ॉल्स ट्रैक्स को फ़िल्टर करता है (अधिक = कम फ़ॉल्स ट्रैक्स), और instances\_cache\_size यह नियंत्रित करता है कि नए/देखे गए वर्गीकरण के लिए कितने track IDs याद रखे जाएँ (अधिक = लंबी मेमोरी)।

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

* **वीडियो विश्लेषण**: व्यवहार विश्लेषण और मूवमेंट पैटर्न के लिए वीडियो फ़्रेमों में ऑब्जेक्ट्स को ट्रैक करें (जैसे, वीडियो में लोगों की गतिविधि ट्रैक करें, वाहन पथों की निगरानी करें, ऑब्जेक्ट प्रक्षेप पथों का विश्लेषण करें), जिससे वीडियो एनालिटिक्स वर्कफ़्लो सक्षम हों
* **पहली उपस्थिति डिटेक्शन**: गिनती और इवेंट डिटेक्शन के लिए सीन में प्रवेश करने वाले नए ऑब्जेक्ट्स की पहचान करें (जैसे, क्षेत्र में प्रवेश करने वाले नए लोगों का पता लगाना, नए दिखाई देने वाले वाहनों की पहचान, पहली बार दिखाई देने की ट्रैकिंग), जिससे नए इंस्टेंस डिटेक्शन वर्कफ़्लो सक्षम हों
* **यातायात निगरानी**: ट्रैफ़िक दृश्यों में वाहनों और ऑब्जेक्ट्स को appearance tracking के साथ ट्रैक करें (जैसे, फ़्रेमों में वाहनों को ट्रैक करें, वाहन पथों की निगरानी करें, सुसंगत IDs के साथ अद्वितीय वाहनों की गिनती करें, सीन में प्रवेश करने वाले नए वाहनों का पता लगाएँ), जिससे ट्रैफ़िक मॉनिटरिंग वर्कफ़्लो सक्षम हों
* **निगरानी प्रणालियाँ**: सुरक्षा निगरानी के लिए ऑब्जेक्ट पहचान बनाए रखें और नए प्रवेशों का पता लगाएँ (जैसे, सर्विलांस फ़ुटेज में व्यक्तियों को ट्रैक करें, क्षेत्र में प्रवेश करने वाले नए लोगों का पता लगाएँ, ऑब्जेक्ट मूवमेंट्स की निगरानी करें, ऑब्जेक्ट पहचान बनाए रखें), जिससे निगरानी ट्रैकिंग वर्कफ़्लो सक्षम हों
* **रिटेल एनालिटिक्स**: खुदरा अंतर्दृष्टि के लिए ग्राहकों और उत्पादों को प्रवेश डिटेक्शन के साथ ट्रैक करें (जैसे, ग्राहक पथों को ट्रैक करें, स्टोर में प्रवेश करने वाले नए ग्राहकों का पता लगाएँ, खरीदारी व्यवहार की निगरानी करें, फ़ुट ट्रैफ़िक पैटर्न का विश्लेषण करें), जिससे खुदरा एनालिटिक्स वर्कफ़्लो सक्षम हों
* **वस्तु गणना**: पहली उपस्थिति को ट्रैक करके अद्वितीय ऑब्जेक्ट्स की सटीक गिनती करें (जैसे, नए इंस्टेंस को ट्रैक करके अद्वितीय आगंतुकों की गिनती, चौराहे में प्रवेश करने वाले वाहनों की गिनती, अद्वितीय ऑब्जेक्ट उपस्थिति की ट्रैकिंग), जिससे सटीक गिनती वर्कफ़्लो सक्षम हों

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

यह ब्लॉक वीडियो मेटाडेटा और डिटेक्शन प्रेडिक्शंस वाली एक इमेज प्राप्त करता है, और tracked\_detections, new\_instances, तथा already\_seen\_instances उत्पन्न करता है:

* **ऑब्जेक्ट डिटेक्शन, इंस्टेंस सेगमेंटेशन, या कीपॉइंट डिटेक्शन ब्लॉक्स के बाद** पहचाने गए ऑब्जेक्ट्स को वीडियो फ़्रेमों में ट्रैक करने के लिए (जैसे, वीडियो में पहचाने गए ऑब्जेक्ट्स को ट्रैक करें, डिटेक्शनों में track IDs जोड़ें, फ़्रेमों के बीच ऑब्जेक्ट पहचान बनाए रखें), जिससे detection-to-tracking वर्कफ़्लो सक्षम हों
* **new\_instances आउटपुट का उपयोग करके** पहली उपस्थिति का पता लगाने और प्रोसेस करने के लिए (जैसे, नए ऑब्जेक्ट्स की गिनती, पहली उपस्थिति पर क्रियाएँ ट्रिगर करना, नए प्रवेशों का पता लगाना, नए ऑब्जेक्ट्स के लिए ट्रैकिंग आरंभ करना), जिससे नए इंस्टेंस डिटेक्शन वर्कफ़्लो सक्षम हों
* **already\_seen\_instances आउटपुट का उपयोग करके** पुनः उपस्थितियों और लौटने वाले ऑब्जेक्ट्स को प्रोसेस करने के लिए (जैसे, लौटने वाले ऑब्जेक्ट्स को संभालना, पुनः उपस्थितियों को प्रोसेस करना, मौजूदा ऑब्जेक्ट्स के लिए फ़िल्टर करना), जिससे पुनः उपस्थिति हैंडलिंग वर्कफ़्लो सक्षम हों
* **वीडियो विश्लेषण ब्लॉक्स से पहले** जिन्हें सुसंगत ऑब्जेक्ट पहचान की आवश्यकता होती है (जैसे, ट्रैक किए गए ऑब्जेक्ट व्यवहार का विश्लेषण, ऑब्जेक्ट प्रक्षेप पथों को प्रोसेस करना, ट्रैक किए गए ऑब्जेक्ट डेटा के साथ काम करना), जिससे tracking-to-analysis वर्कफ़्लो सक्षम हों
* **विज़ुअलाइज़ेशन ब्लॉकों से पहले** ट्रैक किए गए ऑब्जेक्ट्स को सुसंगत रंगों या लेबल्स के साथ प्रदर्शित करने के लिए (जैसे, ट्रैक किए गए ऑब्जेक्ट्स को विज़ुअलाइज़ करना, track IDs दिखाना, ऑब्जेक्ट पथ दिखाना, नए इंस्टेंस को हाइलाइट करना), जिससे ट्रैकिंग विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम हों
* **लॉजिक ब्लॉक्स से पहले** जैसे Continue If, ताकि track जानकारी या इंस्टेंस स्थिति के आधार पर निर्णय लिए जा सकें (जैसे, यदि ऑब्जेक्ट नया है तो जारी रखें, track IDs के आधार पर फ़िल्टर करें, ट्रैकिंग डेटा का उपयोग करके निर्णय लें, नए बनाम लौटने वाले ऑब्जेक्ट्स को संभालें), जिससे ट्रैकिंग-आधारित निर्णय वर्कफ़्लो सक्षम हों

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

**v2 से उन्नत:**

* **इंस्टेंस वर्गीकरण**: दो नए आउटपुट जोड़ता है (`new_instances` और `already_seen_instances`) जो इस आधार पर ट्रैक किए गए ऑब्जेक्ट्स को वर्गीकृत करते हैं कि उनके track IDs पहले देखे गए हैं या नहीं, जिससे पहली-उपस्थिति डिटेक्शन और पुनः-उपस्थिति ट्रैकिंग सक्षम होती है
* **इंस्टेंस कैश**: एक इंस्टेंस कैश सिस्टम प्रस्तुत करता है जो फ़्रेमों में पहले देखे गए track IDs को याद रखता है, जिससे सीन में प्रवेश करने वाले नए ऑब्जेक्ट्स और ऑक्लूज़न के बाद या फ़्रेम छोड़ने के बाद पुनः दिखाई देने वाले ऑब्जेक्ट्स के बीच अंतर करना संभव होता है
* **कीपॉइंट डिटेक्शन समर्थन**: ऑब्जेक्ट डिटेक्शन और इंस्टेंस सेगमेंटेशन के अतिरिक्त कीपॉइंट डिटेक्शन प्रेडिक्शंस के लिए समर्थन जोड़ता है, जिससे ट्रैकिंग क्षमताएँ कीपॉइंट-आधारित डिटेक्शन मॉडल्स तक विस्तारित होती हैं
* **कॉन्फ़िगर करने योग्य कैश आकार**: जोड़ता है `instances_cache_size` पैरामीटर, जिससे नियंत्रित किया जा सके कि कैश में कितने track IDs याद रखे जाएँ, और मेमोरी उपयोग तथा ट्रैकिंग इतिहास की लंबाई के बीच संतुलन बने
* **उन्नत आउटपुट**: एक के बजाय तीन आउटपुट लौटाता है - `tracked_detections` (सभी ट्रैक किए गए ऑब्जेक्ट्स), `new_instances` (पहली उपस्थिति), और `already_seen_instances` (पुनः उपस्थिति)

## आवश्यकताएँ

इस ब्लॉक को डिटेक्शन प्रेडिक्शंस (ऑब्जेक्ट डिटेक्शन, इंस्टेंस सेगमेंटेशन, या कीपॉइंट डिटेक्शन) और एम्बेडेड वीडियो मेटाडेटा वाली एक इमेज की आवश्यकता होती है, जिसमें फ़्रेम रेट (fps) और वीडियो पहचानकर्ता जानकारी शामिल हो। इमेज के video\_metadata में सर्वोत्तम ट्रैकिंग प्रदर्शन के लिए एक वैध fps मान होना चाहिए, हालांकि यदि यह अनुपलब्ध हो तो ब्लॉक fps=0 के साथ चलता रहेगा। यह ब्लॉक प्रत्येक वीडियो के लिए फ़्रेमों के बीच ट्रैकिंग स्थिति और इंस्टेंस कैश बनाए रखता है, इसलिए इसे ऐसे वीडियो वर्कफ़्लो में उपयोग करना चाहिए जहाँ फ़्रेम क्रम से प्रोसेस किए जाते हों। सर्वोत्तम ट्रैकिंग प्रदर्शन के लिए, डिटेक्शन फ़्रेमों में लगातार प्रदान किए जाने चाहिए। एल्गोरिद्म स्थिर डिटेक्शन प्रदर्शन के साथ सबसे अच्छा काम करता है और lost\_track\_buffer तंत्र के माध्यम से अस्थायी डिटेक्शन अंतराल को संभालता है। इंस्टेंस कैश FIFO हटाने के साथ देखे गए track IDs का इतिहास बनाए रखता है जब कैश आकार सीमा तक पहुँच जाता है।

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

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

### गुण

| **नाम**                      | **प्रकार** | **विवरण**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | संदर्भ |
| ---------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ |
| `name`                       | `str`      | इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | ❌      |
| `track_activation_threshold` | `float`    | डिटेक्शनों से नए ट्रैक्स सक्रिय करने के लिए विश्वास-स्तर सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.25 है। केवल इस सीमा से ऊपर विश्वास-स्तर वाले डिटेक्शन ही नए ट्रैक्स बना सकते हैं। इस सीमा को बढ़ाने से (जैसे, 0.3-0.5) केवल उच्च-विश्वास वाले डिटेक्शनों से ट्रैक बनाकर ट्रैकिंग सटीकता और स्थिरता बेहतर होती है, लेकिन कम विश्वास-स्तर वाले कुछ सही डिटेक्शन छूट सकते हैं। इस सीमा को घटाने से (जैसे, 0.15-0.2) कम-विश्वास वाले डिटेक्शनों को स्वीकार करके ट्रैकिंग पूर्णता बढ़ती है, लेकिन फ़ॉल्स पॉज़िटिव्स से शोर और अस्थिरता आ सकती है। डिटेक्शन मॉडल के प्रदर्शन के आधार पर समायोजित करें: यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें, यदि फ़ॉल्स पॉज़िटिव्स सामान्य हों तो अधिक मान उपयोग करें..                                                                                                                                                                            | ✅      |
| `lost_track_buffer`          | `int`      | जब ट्रैक खो जाए (कोई मेल खाता डिटेक्शन न हो) तो उसे बनाए रखने के लिए फ़्रेमों की संख्या। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 30 फ़्रेम है। जब कोई ऑब्जेक्ट अस्थायी रूप से गायब हो जाता है (ऑक्लूज़न, छूटी हुई डिटेक्शन, या फ़्रेम छोड़ने के कारण), तो ट्रैक को खोया हुआ माने जाने से पहले इतने फ़्रेमों तक बनाए रखा जाता है। इस मान को बढ़ाने से (जैसे, 50-100) ऑक्लूज़न हैंडलिंग बेहतर होती है और छोटी डिटेक्शन खाइयों के कारण होने वाले ट्रैक विखंडन या गायब होने में काफ़ी कमी आती है, लेकिन मेमोरी उपयोग बढ़ता है। इस मान को घटाने से (जैसे, 10-20) मेमोरी उपयोग कम होता है, लेकिन छोटे ऑक्लूज़न के दौरान ट्रैक्स गायब हो सकते हैं। ऑक्लूज़न आवृत्ति के आधार पर समायोजित करें: बार-बार होने वाले ऑक्लूज़न के लिए अधिक मान, और स्थिर ट्रैकिंग परिदृश्यों के लिए कम मान उपयोग करें..                                                                                                     | ✅      |
| `minimum_matching_threshold` | `float`    | मौजूदा ट्रैक्स के साथ डिटेक्शनों को मिलाने के लिए IoU (Intersection over Union) सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.8 है। जब किसी डिटेक्शन के bounding box का IoU इस सीमा से अधिक होता है, तो उसे ट्रैक से जोड़ा जाता है। इस सीमा को बढ़ाने से (जैसे, 0.85-0.95) अधिक सशक्त स्थानिक ओवरलैप की आवश्यकता देकर ट्रैकिंग सटीकता बेहतर होती है, लेकिन जब ऑब्जेक्ट्स तेज़ी से चलते हैं या डिटेक्शन बॉक्स बदलते हैं, तब ट्रैक विखंडन का जोखिम रहता है। इस सीमा को घटाने से (जैसे, 0.6-0.75) ढीले मैचों को स्वीकार करके ट्रैकिंग पूर्णता बेहतर होती है, लेकिन फ़ॉल्स पॉज़िटिव एसोसिएशन और ट्रैक ड्रिफ्ट का जोखिम बढ़ता है। ऑब्जेक्ट की गति और डिटेक्शन स्थिरता के आधार पर समायोजित करें: स्थिर ऑब्जेक्ट्स के लिए अधिक मान, तेज़ी से चलने वाले ऑब्जेक्ट्स के लिए कम मान उपयोग करें..                                                                                                          | ✅      |
| `minimum_consecutive_frames` | `int`      | किसी ऑब्जेक्ट को वैध मानने और आउटपुट करने से पहले उसे लगातार जितने फ़्रेमों तक ट्रैक किया जाना चाहिए, उनकी न्यूनतम संख्या। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 1 है (सभी ट्रैक्स तुरंत वैध हैं)। केवल वे ट्रैक्स जो कम-से-कम इतने लगातार फ़्रेमों तक बने रहते हैं, आउटपुट में शामिल किए जाते हैं। इस मान को बढ़ाने से (जैसे, 3-5) फ़ॉल्स डिटेक्शनों या डबल डिटेक्शनों से आकस्मिक ट्रैक्स बनने से रोकने में मदद मिलती है, और अल्पकालिक, अनावश्यक ट्रैक्स फ़िल्टर हो जाते हैं, लेकिन इससे छोटे वैध ट्रैक्स छूट सकते हैं। इस मान को घटाने से (जैसे, 1) सभी ट्रैक्स तुरंत शामिल हो जाते हैं, जिससे पूर्णता अधिकतम होती है, लेकिन फ़ॉल्स ट्रैक्स भी शामिल हो सकते हैं। फ़ॉल्स पॉज़िटिव दर के आधार पर समायोजित करें: यदि फ़ॉल्स डिटेक्शन आम हों तो अधिक मान, यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें..                                                                                   | ✅      |
| `instances_cache_size`       | `int`      | इंस्टेंस कैश में याद रखने योग्य track IDs की अधिकतम संख्या, ताकि यह तय किया जा सके कि इंस्टेंस नए हैं या पहले से देखे गए। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 16384 है। कैश FIFO (First-In-First-Out) हटाने का उपयोग करता है - जब कैश भर जाता है, तो नए के लिए जगह बनाने हेतु सबसे पुराना track ID हटाया जाता है। इस मान को बढ़ाने से (जैसे, 32768-65536) देखे गए track IDs का लंबा इतिहास बना रहता है, जिससे लंबे अंतराल के बाद पुनः उपस्थिति का पता लगाया जा सकता है, लेकिन अधिक मेमोरी लगती है। इस मान को घटाने से (जैसे, 8192) मेमोरी उपयोग कम होता है, लेकिन पहले दिखाई दिए track IDs का इतिहास खो सकता है, जिससे पुनः प्रकट होने वाले ऑब्जेक्ट्स नए के रूप में वर्गीकृत हो सकते हैं। वीडियो की लंबाई और ऑब्जेक्ट पुनः उपस्थिति पैटर्न के आधार पर समायोजित करें: लंबे वीडियो या बार-बार पुनः उपस्थिति के लिए अधिक मान, छोटे वीडियो या दुर्लभ पुनः उपस्थिति के लिए कम मान उपयोग करें.. | ❌      |

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

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

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

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

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

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

<details>

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

* इनपुट
  * `छवि` ([*`छवि`*](/workflows/hi/developer-guide/developer-guide/kinds/image.md) ): ByteTrack आरंभ करने और ट्रैकिंग स्थिति प्रबंधन के लिए आवश्यक एम्बेडेड वीडियो मेटाडेटा (fps और video\_identifier) वाली इनपुट इमेज। ब्लॉक WorkflowImageData ऑब्जेक्ट से video\_metadata निकालता है। fps मान का उपयोग ट्रैकर को कॉन्फ़िगर करने के लिए किया जाता है, और video\_identifier का उपयोग अलग-अलग वीडियो के लिए अलग ट्रैकिंग स्थिति और इंस्टेंस कैश बनाए रखने हेतु किया जाता है। यदि fps अनुपलब्ध या अमान्य हो, तो ब्लॉक 0 को डिफ़ॉल्ट करता है और चेतावनी लॉग करता है, लेकिन संचालन जारी रखता है। यदि कई वीडियो प्रोसेस किए जा रहे हों, तो प्रत्येक वीडियो के मेटाडेटा में अलग video\_identifier होना चाहिए ताकि अलग ट्रैकिंग स्थितियाँ और कैश बनाए रखे जा सकें। ब्लॉक video\_identifier का उपयोग करके प्रत्येक वीडियो के लिए फ़्रेमों के बीच स्थायी ट्रैकर और इंस्टेंस कैश बनाए रखता है..
  * `detections` (*Union\[*[*`object_detection_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/object-detection-prediction.md)*,* [*`instance_segmentation_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/instance-segmentation-prediction.md)*,* [*`keypoint_detection_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/keypoint-detection-prediction.md)*]* ): वर्तमान वीडियो फ़्रेम के लिए ट्रैक किए जाने वाले डिटेक्शन प्रेडिक्शंस (ऑब्जेक्ट डिटेक्शन, इंस्टेंस सेगमेंटेशन, या कीपॉइंट डिटेक्शन)। ब्लॉक इन डिटेक्शनों को मौजूदा ट्रैक्स के साथ जोड़ता है या नए ट्रैक्स बनाता है। ऑब्जेक्ट डिटेक्शन, इंस्टेंस सेगमेंटेशन, और कीपॉइंट डिटेक्शन प्रेडिक्शंस समर्थित हैं। सुसंगत ट्रैकिंग बनाए रखने के लिए डिटेक्शन प्रत्येक फ़्रेम के लिए क्रम से प्रदान किए जाने चाहिए। यदि कई डिटेक्शन बैच दिए गए हों, तो ट्रैकिंग से पहले उन्हें मर्ज किया जाएगा। डिटेक्शनों में bounding boxes और class names शामिल होने चाहिए (और यदि कीपॉइंट डिटेक्शन हो तो कीपॉइंट्स भी)। ट्रैकिंग के बाद, आउटपुट में वही डिटेक्शन track\_id जानकारी के साथ संवर्धित होंगे, जिससे फ़्रेमों के बीच एक ही ऑब्जेक्ट की पहचान संभव होगी..
  * `track_activation_threshold` ([*`float_zero_to_one`*](/workflows/hi/developer-guide/developer-guide/kinds/float-zero-to-one.md) ): डिटेक्शनों से नए ट्रैक्स सक्रिय करने के लिए विश्वास-स्तर सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.25 है। केवल इस सीमा से ऊपर विश्वास-स्तर वाले डिटेक्शन ही नए ट्रैक्स बना सकते हैं। इस सीमा को बढ़ाने से (जैसे, 0.3-0.5) केवल उच्च-विश्वास वाले डिटेक्शनों से ट्रैक बनाकर ट्रैकिंग सटीकता और स्थिरता बेहतर होती है, लेकिन कम विश्वास-स्तर वाले कुछ सही डिटेक्शन छूट सकते हैं। इस सीमा को घटाने से (जैसे, 0.15-0.2) कम-विश्वास वाले डिटेक्शनों को स्वीकार करके ट्रैकिंग पूर्णता बढ़ती है, लेकिन फ़ॉल्स पॉज़िटिव्स से शोर और अस्थिरता आ सकती है। डिटेक्शन मॉडल के प्रदर्शन के आधार पर समायोजित करें: यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें, यदि फ़ॉल्स पॉज़िटिव्स सामान्य हों तो अधिक मान उपयोग करें..
  * `lost_track_buffer` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md) ): ट्रैक खो जाने पर उसे बनाए रखने के लिए फ़्रेमों की संख्या (कोई मेल खाता डिटेक्शन न हो)। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 30 फ़्रेम है। जब कोई ऑब्जेक्ट अस्थायी रूप से गायब हो जाता है (ऑक्लूज़न, छूटी हुई डिटेक्शन, या फ़्रेम छोड़ने के कारण), तो ट्रैक को खोया हुआ माने जाने से पहले इतने फ़्रेमों तक बनाए रखा जाता है। इस मान को बढ़ाने से (जैसे, 50-100) ऑक्लूज़न हैंडलिंग बेहतर होती है और छोटी डिटेक्शन खाइयों के कारण होने वाले ट्रैक विखंडन या गायब होने में काफ़ी कमी आती है, लेकिन मेमोरी उपयोग बढ़ता है। इस मान को घटाने से (जैसे, 10-20) मेमोरी उपयोग कम होता है, लेकिन छोटे ऑक्लूज़न के दौरान ट्रैक्स गायब हो सकते हैं। ऑक्लूज़न आवृत्ति के आधार पर समायोजित करें: बार-बार होने वाले ऑक्लूज़न के लिए अधिक मान, और स्थिर ट्रैकिंग परिदृश्यों के लिए कम मान उपयोग करें..
  * `minimum_matching_threshold` ([*`float_zero_to_one`*](/workflows/hi/developer-guide/developer-guide/kinds/float-zero-to-one.md) ): मौजूदा ट्रैक्स के साथ डिटेक्शनों को मिलाने के लिए IoU (Intersection over Union) सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.8 है। जब किसी डिटेक्शन के bounding box का IoU इस सीमा से अधिक होता है, तो उसे ट्रैक से जोड़ा जाता है। इस सीमा को बढ़ाने से (जैसे, 0.85-0.95) अधिक सशक्त स्थानिक ओवरलैप की आवश्यकता देकर ट्रैकिंग सटीकता बेहतर होती है, लेकिन जब ऑब्जेक्ट्स तेज़ी से चलते हैं या डिटेक्शन बॉक्स बदलते हैं, तब ट्रैक विखंडन का जोखिम रहता है। इस सीमा को घटाने से (जैसे, 0.6-0.75) ढीले मैचों को स्वीकार करके ट्रैकिंग पूर्णता बेहतर होती है, लेकिन फ़ॉल्स पॉज़िटिव एसोसिएशन और ट्रैक ड्रिफ्ट का जोखिम बढ़ता है। ऑब्जेक्ट की गति और डिटेक्शन स्थिरता के आधार पर समायोजित करें: स्थिर ऑब्जेक्ट्स के लिए अधिक मान, तेज़ी से चलने वाले ऑब्जेक्ट्स के लिए कम मान उपयोग करें..
  * `minimum_consecutive_frames` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md) ): किसी ऑब्जेक्ट को वैध मानने और आउटपुट करने से पहले उसे लगातार जितने फ़्रेमों तक ट्रैक किया जाना चाहिए, उनकी न्यूनतम संख्या। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 1 है (सभी ट्रैक्स तुरंत वैध हैं)। केवल वे ट्रैक्स जो कम-से-कम इतने लगातार फ़्रेमों तक बने रहते हैं, आउटपुट में शामिल किए जाते हैं। इस मान को बढ़ाने से (जैसे, 3-5) फ़ॉल्स डिटेक्शनों या डबल डिटेक्शनों से आकस्मिक ट्रैक्स बनने से रोकने में मदद मिलती है, और अल्पकालिक, अनावश्यक ट्रैक्स फ़िल्टर हो जाते हैं, लेकिन इससे छोटे वैध ट्रैक्स छूट सकते हैं। इस मान को घटाने से (जैसे, 1) सभी ट्रैक्स तुरंत शामिल हो जाते हैं, जिससे पूर्णता अधिकतम होती है, लेकिन फ़ॉल्स ट्रैक्स भी शामिल हो सकते हैं। फ़ॉल्स पॉज़िटिव दर के आधार पर समायोजित करें: यदि फ़ॉल्स डिटेक्शन आम हों तो अधिक मान, यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें..
* आउटपुट
  * `tracked_detections` ([`object_detection_prediction`](/workflows/hi/developer-guide/developer-guide/kinds/object-detection-prediction.md)): sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स के साथ पूर्वानुमान।
  * `new_instances` ([`object_detection_prediction`](/workflows/hi/developer-guide/developer-guide/kinds/object-detection-prediction.md)): sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स के साथ पूर्वानुमान।
  * `already_seen_instances` ([`object_detection_prediction`](/workflows/hi/developer-guide/developer-guide/kinds/object-detection-prediction.md)): sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स के साथ पूर्वानुमान।

</details>

<details>

<summary>उदाहरण JSON परिभाषा</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/byte_tracker@v3",
	    "image": "<block_does_not_provide_example>",
	    "detections": "$steps.object_detection_model.predictions",
	    "track_activation_threshold": 0.25,
	    "lost_track_buffer": 30,
	    "minimum_matching_threshold": 0.8,
	    "minimum_consecutive_frames": 1,
	    "instances_cache_size": "<block_does_not_provide_example>"
	}
```

</details>

## v2

सुसंगत ऑब्जेक्ट पहचान बनाए रखने, ऑक्लूज़न और अस्थायी गायब होने को संभालने, मौजूदा ट्रैक्स के साथ डिटेक्शनों को जोड़ने, अद्वितीय ट्रैक IDs असाइन करने, और ऑब्जेक्ट व्यवहार विश्लेषण, मूवमेंट ट्रैकिंग, तथा वीडियो एनालिटिक्स वर्कफ़्लो सक्षम करने के लिए ByteTrack एल्गोरिद्म का उपयोग करके वीडियो फ़्रेमों में ऑब्जेक्ट्स को ट्रैक करें।

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

यह ब्लॉक प्रत्येक फ़्रेम से डिटेक्शनों को मौजूदा ट्रैक्स के साथ जोड़कर और नए ऑब्जेक्ट्स के लिए नए ट्रैक्स बनाकर क्रमिक वीडियो फ़्रेमों में ऑब्जेक्ट ट्रैकिंग बनाए रखता है। ब्लॉक:

1. वर्तमान फ़्रेम के लिए डिटेक्शन प्रेडिक्शंस और एम्बेडेड वीडियो मेटाडेटा वाली एक इमेज प्राप्त करता है
2. इमेज से वीडियो मेटाडेटा निकालता है (जिसमें फ़्रेम रेट और वीडियो पहचानकर्ता शामिल हैं):
   * WorkflowImageData ऑब्जेक्ट से video\_metadata तक पहुँचता है
   * ट्रैकर कॉन्फ़िगरेशन के लिए fps (प्रति सेकंड फ़्रेम) निकालता है
   * विभिन्न वीडियो के लिए अलग ट्रैकिंग स्थिति बनाए रखने हेतु video\_identifier निकालता है
   * गुम fps को सहजता से संभालता है (विफल होने के बजाय 0 को डिफ़ॉल्ट करता है और चेतावनी लॉग करता है)
3. वीडियो के लिए ByteTrack ट्रैकर आरंभ करता है या उसे पुनः प्राप्त करता है:
   * प्रत्येक अद्वितीय वीडियो (video\_identifier द्वारा पहचाना गया) के लिए एक नया ट्रैकर इंस्टेंस बनाता है
   * फ़्रेमों के बीच ट्रैकिंग स्थिति बनाए रखने के लिए ट्रैकरों को मेमोरी में संग्रहीत करता है
   * मेटाडेटा से फ़्रेम रेट और उपयोगकर्ता-निर्दिष्ट पैरामीटरों के साथ ट्रैकर कॉन्फ़िगर करता है
   * उसी वीडियो के बाद के फ़्रेमों के लिए मौजूदा ट्रैकर का पुनः उपयोग करता है
4. यदि कई डिटेक्शन बैच दिए गए हैं, तो उन्हें मर्ज करता है:
   * कई स्रोतों से डिटेक्शनों को एक ही डिटेक्शन सेट में जोड़ता है
   * सुसंगत ट्रैकिंग के लिए सुनिश्चित करता है कि सभी डिटेक्शनों को एक साथ प्रोसेस किया जाए
5. ByteTrack एल्गोरिद्म का उपयोग करके ट्रैक्स अपडेट करता है:
   * **ट्रैक एसोसिएशन**: वर्तमान फ़्रेम के डिटेक्शनों को IoU (Intersection over Union) मैचिंग का उपयोग करके मौजूदा ट्रैक्स से मिलाता है
   * **ट्रैक सक्रियण**: track\_activation\_threshold से ऊपर विश्वास-स्तर वाले उन डिटेक्शनों के लिए नए ट्रैक्स बनाता है जो मौजूदा ट्रैक्स से मेल नहीं खाते
   * **ट्रैक मैचिंग**: जब IoU minimum\_matching\_threshold से अधिक होता है, तब डिटेक्शनों को ट्रैक्स से जोड़ता है
   * **ट्रैक स्थायित्व**: अस्थायी ऑक्लूज़न को संभालने के लिए lost\_track\_buffer का उपयोग करके उन ट्रैक्स को बनाए रखता है जिनका कोई मैच नहीं मिलता
   * **ट्रैक सत्यापन**: केवल वे ट्रैक्स आउटपुट करता है जो कम से कम minimum\_consecutive\_frames लगातार फ़्रेमों तक मौजूद रहे हों
6. ट्रैकिंग चुनौतियों को संभालता है:
   * **ऑक्लूज़न**: जब ऑब्जेक्ट्स अस्थायी रूप से छिप जाते हैं, तब ट्रैक्स बनाए रखता है (lost\_track\_buffer फ़्रेमों का उपयोग करके)
   * **छूटी हुई डिटेक्शनें**: जिन फ़्रेमों में डिटेक्शन नहीं हैं, उनमें भी ट्रैक्स को जीवित रखता है
   * **फ़ॉल्स पॉज़िटिव्स**: उन ट्रैक्स को फ़िल्टर करता है जो पर्याप्त लंबे समय तक बने नहीं रहते (minimum\_consecutive\_frames)
   * **ट्रैक विखंडन**: खोए हुए ऑब्जेक्ट्स के लिए बफ़र बनाए रखकर ट्रैक विभाजन को कम करता है
7. प्रत्येक ऑब्जेक्ट को अद्वितीय ट्रैक IDs असाइन करता है:
   * ट्रैक किया गया प्रत्येक ऑब्जेक्ट एक सुसंगत track\_id प्राप्त करता है जो फ़्रेमों के बीच बना रहता है
   * ट्रैक सक्रिय होने पर ट्रैक IDs असाइन किए जाते हैं और पूरे वीडियो में बनाए रखे जाते हैं
   * पूरे वीडियो अनुक्रम में अलग-अलग ऑब्जेक्ट्स को ट्रैक करने में सक्षम बनाता है
8. ट्रैक IDs के साथ ट्रैक किए गए डिटेक्शन लौटाता है:
   * track\_id जानकारी से संवर्धित डिटेक्शन प्रेडिक्शंस आउटपुट करता है
   * प्रत्येक डिटेक्शन में उसी ऑब्जेक्ट की फ़्रेमों के बीच पहचान के लिए उसका असाइन किया गया track\_id शामिल होता है
   * सभी मूल डिटेक्शन गुणों (bounding boxes, confidence, class names) के साथ ट्रैकिंग जानकारी भी बनाए रखता है

ByteTrack एक दक्ष बहु-ऑब्जेक्ट ट्रैकिंग एल्गोरिद्म है जो tracking-by-detection करता है, और appearance features की आवश्यकता के बिना फ़्रेमों के बीच डिटेक्शनों को जोड़ता है। यह दो-चरणीय एसोसिएशन रणनीति का उपयोग करता है: पहले उच्च-विश्वास वाले डिटेक्शनों को ट्रैक्स से मिलाना, फिर कम-विश्वास वाले डिटेक्शनों को शेष ट्रैक्स और खोए हुए ट्रैक्स से मिलाना। एल्गोरिद्म खोए हुए ट्रैक्स के लिए एक बफ़र बनाए रखता है, जिससे ऑब्जेक्ट्स के ऑक्लूज़न या डिटेक्शन विफलताओं के कारण अस्थायी रूप से गायब होने पर वह ट्रैक्स को पुनः प्राप्त कर सके। कॉन्फ़िगर किए जा सकने वाले पैरामीटर ट्रैकिंग व्यवहार को सूक्ष्म रूप से समायोजित करने देते हैं: track\_activation\_threshold यह नियंत्रित करता है कि नए ट्रैक्स कब बनाए जाएँ (अधिक = अधिक सावधानीपूर्ण), lost\_track\_buffer ऑक्लूज़न हैंडलिंग को नियंत्रित करता है (अधिक = बेहतर ऑक्लूज़न रिकवरी), minimum\_matching\_threshold एसोसिएशन गुणवत्ता को नियंत्रित करता है (अधिक = सख़्त मैचिंग), और minimum\_consecutive\_frames अल्पकालिक फ़ॉल्स ट्रैक्स को फ़िल्टर करता है (अधिक = कम फ़ॉल्स ट्रैक्स)।

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

* **वीडियो विश्लेषण**: व्यवहार विश्लेषण और मूवमेंट पैटर्न के लिए वीडियो फ़्रेमों में ऑब्जेक्ट्स को ट्रैक करें (जैसे, वीडियो में लोगों की गतिविधि ट्रैक करें, वाहन पथों की निगरानी करें, ऑब्जेक्ट प्रक्षेप पथों का विश्लेषण करें), जिससे वीडियो एनालिटिक्स वर्कफ़्लो सक्षम हों
* **यातायात निगरानी**: ट्रैफ़िक विश्लेषण के लिए ट्रैफ़िक दृश्यों में वाहनों और ऑब्जेक्ट्स को ट्रैक करें (जैसे, फ़्रेमों में वाहनों को ट्रैक करें, वाहन पथों की निगरानी करें, सुसंगत IDs के साथ वाहनों की गिनती करें), जिससे ट्रैफ़िक मॉनिटरिंग वर्कफ़्लो सक्षम हों
* **निगरानी प्रणालियाँ**: सुरक्षा निगरानी के लिए वीडियो फ़्रेमों में ऑब्जेक्ट पहचान बनाए रखें (जैसे, सर्विलांस फ़ुटेज में व्यक्तियों को ट्रैक करें, ऑब्जेक्ट मूवमेंट्स की निगरानी करें, ऑब्जेक्ट पहचान बनाए रखें), जिससे निगरानी ट्रैकिंग वर्कफ़्लो सक्षम हों
* **खेल विश्लेषण**: प्रदर्शन विश्लेषण के लिए खेल वीडियो में खिलाड़ियों और ऑब्जेक्ट्स को ट्रैक करें (जैसे, खिलाड़ी मूवमेंट्स को ट्रैक करें, खिलाड़ी प्रक्षेप पथों का विश्लेषण करें, गेंद की स्थिति की निगरानी करें), जिससे खेल विश्लेषण वर्कफ़्लो सक्षम हों
* **रिटेल एनालिटिक्स**: खुदरा अंतर्दृष्टि के लिए वीडियो फ़्रेमों में ग्राहकों और उत्पादों को ट्रैक करें (जैसे, ग्राहक पथों को ट्रैक करें, खरीदारी व्यवहार की निगरानी करें, फ़ुट ट्रैफ़िक पैटर्न का विश्लेषण करें), जिससे खुदरा एनालिटिक्स वर्कफ़्लो सक्षम हों
* **ऑब्जेक्ट व्यवहार विश्लेषण**: समय के साथ उनके व्यवहार और अंतःक्रियाओं का विश्लेषण करने के लिए ऑब्जेक्ट्स को ट्रैक करें (जैसे, ऑब्जेक्ट अंतःक्रियाओं का विश्लेषण, मूवमेंट पैटर्न का अध्ययन, ऑब्जेक्ट संबंधों को ट्रैक करना), जिससे व्यवहार विश्लेषण वर्कफ़्लो सक्षम हों

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

यह ब्लॉक वीडियो मेटाडेटा और डिटेक्शन प्रेडिक्शंस वाली एक इमेज प्राप्त करता है, और track IDs के साथ tracked\_detections उत्पन्न करता है:

* **ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन ब्लॉक्स के बाद** पहचाने गए ऑब्जेक्ट्स को वीडियो फ़्रेमों में ट्रैक करने के लिए (जैसे, वीडियो में पहचाने गए ऑब्जेक्ट्स को ट्रैक करें, डिटेक्शनों में track IDs जोड़ें, फ़्रेमों के बीच ऑब्जेक्ट पहचान बनाए रखें), जिससे detection-to-tracking वर्कफ़्लो सक्षम हों
* **वीडियो विश्लेषण ब्लॉक्स से पहले** जिन्हें सुसंगत ऑब्जेक्ट पहचान की आवश्यकता होती है (जैसे, ट्रैक किए गए ऑब्जेक्ट व्यवहार का विश्लेषण, ऑब्जेक्ट प्रक्षेप पथों को प्रोसेस करना, ट्रैक किए गए ऑब्जेक्ट डेटा के साथ काम करना), जिससे tracking-to-analysis वर्कफ़्लो सक्षम हों
* **विज़ुअलाइज़ेशन ब्लॉकों से पहले** ट्रैक किए गए ऑब्जेक्ट्स को सुसंगत रंगों या लेबल्स के साथ प्रदर्शित करने के लिए (जैसे, ट्रैक किए गए ऑब्जेक्ट्स को विज़ुअलाइज़ करना, track IDs दिखाना, ऑब्जेक्ट पथ दिखाना), जिससे ट्रैकिंग विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम हों
* **लॉजिक ब्लॉक्स से पहले** जैसे Continue If, ताकि track जानकारी के आधार पर निर्णय लिए जा सकें (जैसे, यदि ऑब्जेक्ट ट्रैक किया गया है तो जारी रखें, track IDs के आधार पर फ़िल्टर करें, ट्रैकिंग डेटा का उपयोग करके निर्णय लें), जिससे ट्रैकिंग-आधारित निर्णय वर्कफ़्लो सक्षम हों
* **गिनती या एग्रीगेशन ब्लॉक्स से पहले** ट्रैक किए गए ऑब्जेक्ट्स की सटीक गिनती करने के लिए (जैसे, अद्वितीय ट्रैक किए गए ऑब्जेक्ट्स की गिनती, ट्रैक आँकड़ों का एग्रीगेशन, ट्रैक डेटा प्रोसेस करना), जिससे ट्रैकिंग-से-गिनती वर्कफ़्लो सक्षम हों
* **वीडियो प्रोसेसिंग पाइपलाइनों में** जहाँ ऑब्जेक्ट ट्रैकिंग एक बड़े वीडियो विश्लेषण वर्कफ़्लो का हिस्सा है (जैसे, वीडियो पाइपलाइनों में ऑब्जेक्ट्स को ट्रैक करना, प्रोसेसिंग चेन में पहचान बनाए रखना, वीडियो एनालिटिक्स सक्षम करना), जिससे वीडियो ट्रैकिंग पाइपलाइन वर्कफ़्लो सक्षम हों

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

**v1 से उन्नत:**

* **सरल इनपुट**: उपयोग करता है `छवि` ऐसा input जो एक अलग `metadata` फ़ील्ड की आवश्यकता के बजाय एम्बेडेड वीडियो मेटाडेटा रखता है, जिससे वर्कफ़्लो कनेक्शन सरल होते हैं और इनपुट जटिलता कम होती है
* **सहज FPS हैंडलिंग**: गुम या अमान्य fps मानों को त्रुटि देने के बजाय 0 पर डिफ़ॉल्ट करके और चेतावनी लॉग करके सहजता से संभालता है, जिससे ब्लॉक अपूर्ण मेटाडेटा के प्रति अधिक लचीला बनता है
* **बेहतर एकीकरण**: image-आधारित वर्कफ़्लो के साथ बेहतर एकीकरण, क्योंकि वीडियो मेटाडेटा अलग metadata input की आवश्यकता के बजाय सीधे इमेज ऑब्जेक्ट से एक्सेस किया जाता है

## आवश्यकताएँ

इस ब्लॉक को डिटेक्शन प्रेडिक्शंस (ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन) और फ़्रेम रेट (fps) तथा वीडियो पहचानकर्ता जानकारी वाले एम्बेडेड वीडियो मेटाडेटा की एक इमेज की आवश्यकता होती है। इमेज के video\_metadata में सर्वोत्तम ट्रैकिंग प्रदर्शन के लिए एक वैध fps मान होना चाहिए, हालांकि यदि यह अनुपलब्ध हो तो ब्लॉक fps=0 के साथ चलता रहेगा। यह ब्लॉक प्रत्येक वीडियो के लिए फ़्रेमों के बीच ट्रैकिंग स्थिति बनाए रखता है, इसलिए इसे ऐसे वीडियो वर्कफ़्लो में उपयोग करना चाहिए जहाँ फ़्रेम क्रम से प्रोसेस किए जाते हों। सर्वोत्तम ट्रैकिंग प्रदर्शन के लिए, डिटेक्शन फ़्रेमों में लगातार प्रदान किए जाने चाहिए। एल्गोरिद्म स्थिर डिटेक्शन प्रदर्शन के साथ सबसे अच्छा काम करता है और lost\_track\_buffer तंत्र के माध्यम से अस्थायी डिटेक्शन अंतराल को संभालता है।

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

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

### गुण

| **नाम**                      | **प्रकार** | **विवरण**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | संदर्भ |
| ---------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ |
| `name`                       | `str`      | इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | ❌      |
| `track_activation_threshold` | `float`    | डिटेक्शनों से नए ट्रैक्स सक्रिय करने के लिए विश्वास-स्तर सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.25 है। केवल इस सीमा से ऊपर विश्वास-स्तर वाले डिटेक्शन ही नए ट्रैक्स बना सकते हैं। इस सीमा को बढ़ाने से (जैसे, 0.3-0.5) केवल उच्च-विश्वास वाले डिटेक्शनों से ट्रैक बनाकर ट्रैकिंग सटीकता और स्थिरता बेहतर होती है, लेकिन कम विश्वास-स्तर वाले कुछ सही डिटेक्शन छूट सकते हैं। इस सीमा को घटाने से (जैसे, 0.15-0.2) कम-विश्वास वाले डिटेक्शनों को स्वीकार करके ट्रैकिंग पूर्णता बढ़ती है, लेकिन फ़ॉल्स पॉज़िटिव्स से शोर और अस्थिरता आ सकती है। डिटेक्शन मॉडल के प्रदर्शन के आधार पर समायोजित करें: यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें, यदि फ़ॉल्स पॉज़िटिव्स सामान्य हों तो अधिक मान उपयोग करें..                                                                                          | ✅      |
| `lost_track_buffer`          | `int`      | जब ट्रैक खो जाए (कोई मेल खाता डिटेक्शन न हो) तो उसे बनाए रखने के लिए फ़्रेमों की संख्या। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 30 फ़्रेम है। जब कोई ऑब्जेक्ट अस्थायी रूप से गायब हो जाता है (ऑक्लूज़न, छूटी हुई डिटेक्शन, या फ़्रेम छोड़ने के कारण), तो ट्रैक को खोया हुआ माने जाने से पहले इतने फ़्रेमों तक बनाए रखा जाता है। इस मान को बढ़ाने से (जैसे, 50-100) ऑक्लूज़न हैंडलिंग बेहतर होती है और छोटी डिटेक्शन खाइयों के कारण होने वाले ट्रैक विखंडन या गायब होने में काफ़ी कमी आती है, लेकिन मेमोरी उपयोग बढ़ता है। इस मान को घटाने से (जैसे, 10-20) मेमोरी उपयोग कम होता है, लेकिन छोटे ऑक्लूज़न के दौरान ट्रैक्स गायब हो सकते हैं। ऑक्लूज़न आवृत्ति के आधार पर समायोजित करें: बार-बार होने वाले ऑक्लूज़न के लिए अधिक मान, और स्थिर ट्रैकिंग परिदृश्यों के लिए कम मान उपयोग करें..                   | ✅      |
| `minimum_matching_threshold` | `float`    | मौजूदा ट्रैक्स के साथ डिटेक्शनों को मिलाने के लिए IoU (Intersection over Union) सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.8 है। जब किसी डिटेक्शन के bounding box का IoU इस सीमा से अधिक होता है, तो उसे ट्रैक से जोड़ा जाता है। इस सीमा को बढ़ाने से (जैसे, 0.85-0.95) अधिक सशक्त स्थानिक ओवरलैप की आवश्यकता देकर ट्रैकिंग सटीकता बेहतर होती है, लेकिन जब ऑब्जेक्ट्स तेज़ी से चलते हैं या डिटेक्शन बॉक्स बदलते हैं, तब ट्रैक विखंडन का जोखिम रहता है। इस सीमा को घटाने से (जैसे, 0.6-0.75) ढीले मैचों को स्वीकार करके ट्रैकिंग पूर्णता बेहतर होती है, लेकिन फ़ॉल्स पॉज़िटिव एसोसिएशन और ट्रैक ड्रिफ्ट का जोखिम बढ़ता है। ऑब्जेक्ट की गति और डिटेक्शन स्थिरता के आधार पर समायोजित करें: स्थिर ऑब्जेक्ट्स के लिए अधिक मान, तेज़ी से चलने वाले ऑब्जेक्ट्स के लिए कम मान उपयोग करें..                        | ✅      |
| `minimum_consecutive_frames` | `int`      | किसी ऑब्जेक्ट को वैध मानने और आउटपुट करने से पहले उसे लगातार जितने फ़्रेमों तक ट्रैक किया जाना चाहिए, उनकी न्यूनतम संख्या। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 1 है (सभी ट्रैक्स तुरंत वैध हैं)। केवल वे ट्रैक्स जो कम-से-कम इतने लगातार फ़्रेमों तक बने रहते हैं, आउटपुट में शामिल किए जाते हैं। इस मान को बढ़ाने से (जैसे, 3-5) फ़ॉल्स डिटेक्शनों या डबल डिटेक्शनों से आकस्मिक ट्रैक्स बनने से रोकने में मदद मिलती है, और अल्पकालिक, अनावश्यक ट्रैक्स फ़िल्टर हो जाते हैं, लेकिन इससे छोटे वैध ट्रैक्स छूट सकते हैं। इस मान को घटाने से (जैसे, 1) सभी ट्रैक्स तुरंत शामिल हो जाते हैं, जिससे पूर्णता अधिकतम होती है, लेकिन फ़ॉल्स ट्रैक्स भी शामिल हो सकते हैं। फ़ॉल्स पॉज़िटिव दर के आधार पर समायोजित करें: यदि फ़ॉल्स डिटेक्शन आम हों तो अधिक मान, यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें.. | ✅      |

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

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

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

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

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

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

<details>

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

* इनपुट
  * `छवि` ([*`छवि`*](/workflows/hi/developer-guide/developer-guide/kinds/image.md) ): ByteTrack आरंभ करने और ट्रैकिंग स्थिति प्रबंधन के लिए आवश्यक एम्बेडेड वीडियो मेटाडेटा (fps और video\_identifier) वाली इनपुट इमेज। ब्लॉक WorkflowImageData ऑब्जेक्ट से video\_metadata निकालता है। fps मान का उपयोग ट्रैकर को कॉन्फ़िगर करने के लिए किया जाता है, और video\_identifier का उपयोग अलग-अलग वीडियो के लिए अलग ट्रैकिंग स्थिति बनाए रखने हेतु किया जाता है। यदि fps अनुपलब्ध या अमान्य हो, तो ब्लॉक 0 को डिफ़ॉल्ट करता है और चेतावनी लॉग करता है, लेकिन संचालन जारी रखता है। यदि कई वीडियो प्रोसेस किए जा रहे हों, तो प्रत्येक वीडियो के मेटाडेटा में अलग video\_identifier होना चाहिए ताकि अलग ट्रैकिंग स्थितियाँ बनाए रखी जा सकें। ब्लॉक video\_identifier का उपयोग करके प्रत्येक वीडियो के लिए फ़्रेमों के बीच स्थायी ट्रैकर बनाए रखता है। यह संस्करण मेटाडेटा को अलग मेटाडेटा फ़ील्ड की आवश्यकता के बजाय इमेज ऑब्जेक्ट में एम्बेड करके इनपुट को सरल बनाता है..
  * `detections` (*Union\[*[*`object_detection_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/object-detection-prediction.md)*,* [*`instance_segmentation_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/instance-segmentation-prediction.md)*]* ): वर्तमान वीडियो फ़्रेम के लिए ट्रैक किए जाने वाले डिटेक्शन प्रेडिक्शंस (ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन)। ब्लॉक इन डिटेक्शनों को मौजूदा ट्रैक्स के साथ जोड़ता है या नए ट्रैक्स बनाता है। सुसंगत ट्रैकिंग बनाए रखने के लिए डिटेक्शन प्रत्येक फ़्रेम के लिए क्रम से प्रदान किए जाने चाहिए। यदि कई डिटेक्शन बैच दिए गए हों, तो ट्रैकिंग से पहले उन्हें मर्ज किया जाएगा। डिटेक्शनों में bounding boxes और class names शामिल होने चाहिए। ट्रैकिंग के बाद, आउटपुट में वही डिटेक्शन track\_id जानकारी के साथ संवर्धित होंगे, जिससे फ़्रेमों के बीच एक ही ऑब्जेक्ट की पहचान संभव होगी..
  * `track_activation_threshold` ([*`float_zero_to_one`*](/workflows/hi/developer-guide/developer-guide/kinds/float-zero-to-one.md) ): डिटेक्शनों से नए ट्रैक्स सक्रिय करने के लिए विश्वास-स्तर सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.25 है। केवल इस सीमा से ऊपर विश्वास-स्तर वाले डिटेक्शन ही नए ट्रैक्स बना सकते हैं। इस सीमा को बढ़ाने से (जैसे, 0.3-0.5) केवल उच्च-विश्वास वाले डिटेक्शनों से ट्रैक बनाकर ट्रैकिंग सटीकता और स्थिरता बेहतर होती है, लेकिन कम विश्वास-स्तर वाले कुछ सही डिटेक्शन छूट सकते हैं। इस सीमा को घटाने से (जैसे, 0.15-0.2) कम-विश्वास वाले डिटेक्शनों को स्वीकार करके ट्रैकिंग पूर्णता बढ़ती है, लेकिन फ़ॉल्स पॉज़िटिव्स से शोर और अस्थिरता आ सकती है। डिटेक्शन मॉडल के प्रदर्शन के आधार पर समायोजित करें: यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें, यदि फ़ॉल्स पॉज़िटिव्स सामान्य हों तो अधिक मान उपयोग करें..
  * `lost_track_buffer` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md) ): ट्रैक खो जाने पर उसे बनाए रखने के लिए फ़्रेमों की संख्या (कोई मेल खाता डिटेक्शन न हो)। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 30 फ़्रेम है। जब कोई ऑब्जेक्ट अस्थायी रूप से गायब हो जाता है (ऑक्लूज़न, छूटी हुई डिटेक्शन, या फ़्रेम छोड़ने के कारण), तो ट्रैक को खोया हुआ माने जाने से पहले इतने फ़्रेमों तक बनाए रखा जाता है। इस मान को बढ़ाने से (जैसे, 50-100) ऑक्लूज़न हैंडलिंग बेहतर होती है और छोटी डिटेक्शन खाइयों के कारण होने वाले ट्रैक विखंडन या गायब होने में काफ़ी कमी आती है, लेकिन मेमोरी उपयोग बढ़ता है। इस मान को घटाने से (जैसे, 10-20) मेमोरी उपयोग कम होता है, लेकिन छोटे ऑक्लूज़न के दौरान ट्रैक्स गायब हो सकते हैं। ऑक्लूज़न आवृत्ति के आधार पर समायोजित करें: बार-बार होने वाले ऑक्लूज़न के लिए अधिक मान, और स्थिर ट्रैकिंग परिदृश्यों के लिए कम मान उपयोग करें..
  * `minimum_matching_threshold` ([*`float_zero_to_one`*](/workflows/hi/developer-guide/developer-guide/kinds/float-zero-to-one.md) ): मौजूदा ट्रैक्स के साथ डिटेक्शनों को मिलाने के लिए IoU (Intersection over Union) सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.8 है। जब किसी डिटेक्शन के bounding box का IoU इस सीमा से अधिक होता है, तो उसे ट्रैक से जोड़ा जाता है। इस सीमा को बढ़ाने से (जैसे, 0.85-0.95) अधिक सशक्त स्थानिक ओवरलैप की आवश्यकता देकर ट्रैकिंग सटीकता बेहतर होती है, लेकिन जब ऑब्जेक्ट्स तेज़ी से चलते हैं या डिटेक्शन बॉक्स बदलते हैं, तब ट्रैक विखंडन का जोखिम रहता है। इस सीमा को घटाने से (जैसे, 0.6-0.75) ढीले मैचों को स्वीकार करके ट्रैकिंग पूर्णता बेहतर होती है, लेकिन फ़ॉल्स पॉज़िटिव एसोसिएशन और ट्रैक ड्रिफ्ट का जोखिम बढ़ता है। ऑब्जेक्ट की गति और डिटेक्शन स्थिरता के आधार पर समायोजित करें: स्थिर ऑब्जेक्ट्स के लिए अधिक मान, तेज़ी से चलने वाले ऑब्जेक्ट्स के लिए कम मान उपयोग करें..
  * `minimum_consecutive_frames` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md) ): किसी ऑब्जेक्ट को वैध मानने और आउटपुट करने से पहले उसे लगातार जितने फ़्रेमों तक ट्रैक किया जाना चाहिए, उनकी न्यूनतम संख्या। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 1 है (सभी ट्रैक्स तुरंत वैध हैं)। केवल वे ट्रैक्स जो कम-से-कम इतने लगातार फ़्रेमों तक बने रहते हैं, आउटपुट में शामिल किए जाते हैं। इस मान को बढ़ाने से (जैसे, 3-5) फ़ॉल्स डिटेक्शनों या डबल डिटेक्शनों से आकस्मिक ट्रैक्स बनने से रोकने में मदद मिलती है, और अल्पकालिक, अनावश्यक ट्रैक्स फ़िल्टर हो जाते हैं, लेकिन इससे छोटे वैध ट्रैक्स छूट सकते हैं। इस मान को घटाने से (जैसे, 1) सभी ट्रैक्स तुरंत शामिल हो जाते हैं, जिससे पूर्णता अधिकतम होती है, लेकिन फ़ॉल्स ट्रैक्स भी शामिल हो सकते हैं। फ़ॉल्स पॉज़िटिव दर के आधार पर समायोजित करें: यदि फ़ॉल्स डिटेक्शन आम हों तो अधिक मान, यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें..
* आउटपुट
  * `tracked_detections` ([`object_detection_prediction`](/workflows/hi/developer-guide/developer-guide/kinds/object-detection-prediction.md)): sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स के साथ पूर्वानुमान।

</details>

<details>

<summary>उदाहरण JSON परिभाषा</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/byte_tracker@v2",
	    "image": "<block_does_not_provide_example>",
	    "detections": "$steps.object_detection_model.predictions",
	    "track_activation_threshold": 0.25,
	    "lost_track_buffer": 30,
	    "minimum_matching_threshold": 0.8,
	    "minimum_consecutive_frames": 1
	}
```

</details>

## v1

सुसंगत ऑब्जेक्ट पहचान बनाए रखने, ऑक्लूज़न और अस्थायी गायब होने को संभालने, मौजूदा ट्रैक्स के साथ डिटेक्शनों को जोड़ने, अद्वितीय ट्रैक IDs असाइन करने, और ऑब्जेक्ट व्यवहार विश्लेषण, मूवमेंट ट्रैकिंग, तथा वीडियो एनालिटिक्स वर्कफ़्लो सक्षम करने के लिए ByteTrack एल्गोरिद्म का उपयोग करके वीडियो फ़्रेमों में ऑब्जेक्ट्स को ट्रैक करें।

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

यह ब्लॉक प्रत्येक फ़्रेम से डिटेक्शनों को मौजूदा ट्रैक्स के साथ जोड़कर और नए ऑब्जेक्ट्स के लिए नए ट्रैक्स बनाकर क्रमिक वीडियो फ़्रेमों में ऑब्जेक्ट ट्रैकिंग बनाए रखता है। ब्लॉक:

1. वर्तमान फ़्रेम के लिए डिटेक्शन प्रेडिक्शंस और वीडियो मेटाडेटा (जिसमें फ़्रेम रेट और वीडियो पहचानकर्ता शामिल हैं) प्राप्त करता है
2. वीडियो के लिए ByteTrack ट्रैकर आरंभ करता है या उसे पुनः प्राप्त करता है:
   * प्रत्येक अद्वितीय वीडियो (video\_identifier द्वारा पहचाना गया) के लिए एक नया ट्रैकर इंस्टेंस बनाता है
   * फ़्रेमों के बीच ट्रैकिंग स्थिति बनाए रखने के लिए ट्रैकरों को मेमोरी में संग्रहीत करता है
   * मेटाडेटा से फ़्रेम रेट और उपयोगकर्ता-निर्दिष्ट पैरामीटरों के साथ ट्रैकर कॉन्फ़िगर करता है
   * उसी वीडियो के बाद के फ़्रेमों के लिए मौजूदा ट्रैकर का पुनः उपयोग करता है
3. यदि कई डिटेक्शन बैच दिए गए हैं, तो उन्हें मर्ज करता है:
   * कई स्रोतों से डिटेक्शनों को एक ही डिटेक्शन सेट में जोड़ता है
   * सुसंगत ट्रैकिंग के लिए सुनिश्चित करता है कि सभी डिटेक्शनों को एक साथ प्रोसेस किया जाए
4. ByteTrack एल्गोरिद्म का उपयोग करके ट्रैक्स अपडेट करता है:
   * **ट्रैक एसोसिएशन**: वर्तमान फ़्रेम के डिटेक्शनों को IoU (Intersection over Union) मैचिंग का उपयोग करके मौजूदा ट्रैक्स से मिलाता है
   * **ट्रैक सक्रियण**: track\_activation\_threshold से ऊपर विश्वास-स्तर वाले उन डिटेक्शनों के लिए नए ट्रैक्स बनाता है जो मौजूदा ट्रैक्स से मेल नहीं खाते
   * **ट्रैक मैचिंग**: जब IoU minimum\_matching\_threshold से अधिक होता है, तब डिटेक्शनों को ट्रैक्स से जोड़ता है
   * **ट्रैक स्थायित्व**: अस्थायी ऑक्लूज़न को संभालने के लिए lost\_track\_buffer का उपयोग करके उन ट्रैक्स को बनाए रखता है जिनका कोई मैच नहीं मिलता
   * **ट्रैक सत्यापन**: केवल वे ट्रैक्स आउटपुट करता है जो कम से कम minimum\_consecutive\_frames लगातार फ़्रेमों तक मौजूद रहे हों
5. ट्रैकिंग चुनौतियों को संभालता है:
   * **ऑक्लूज़न**: जब ऑब्जेक्ट्स अस्थायी रूप से छिप जाते हैं, तब ट्रैक्स बनाए रखता है (lost\_track\_buffer फ़्रेमों का उपयोग करके)
   * **छूटी हुई डिटेक्शनें**: जिन फ़्रेमों में डिटेक्शन नहीं हैं, उनमें भी ट्रैक्स को जीवित रखता है
   * **फ़ॉल्स पॉज़िटिव्स**: उन ट्रैक्स को फ़िल्टर करता है जो पर्याप्त लंबे समय तक बने नहीं रहते (minimum\_consecutive\_frames)
   * **ट्रैक विखंडन**: खोए हुए ऑब्जेक्ट्स के लिए बफ़र बनाए रखकर ट्रैक विभाजन को कम करता है
6. प्रत्येक ऑब्जेक्ट को अद्वितीय ट्रैक IDs असाइन करता है:
   * ट्रैक किया गया प्रत्येक ऑब्जेक्ट एक सुसंगत track\_id प्राप्त करता है जो फ़्रेमों के बीच बना रहता है
   * ट्रैक सक्रिय होने पर ट्रैक IDs असाइन किए जाते हैं और पूरे वीडियो में बनाए रखे जाते हैं
   * पूरे वीडियो अनुक्रम में अलग-अलग ऑब्जेक्ट्स को ट्रैक करने में सक्षम बनाता है
7. ट्रैक IDs के साथ ट्रैक किए गए डिटेक्शन लौटाता है:
   * track\_id जानकारी से संवर्धित डिटेक्शन प्रेडिक्शंस आउटपुट करता है
   * प्रत्येक डिटेक्शन में उसी ऑब्जेक्ट की फ़्रेमों के बीच पहचान के लिए उसका असाइन किया गया track\_id शामिल होता है
   * सभी मूल डिटेक्शन गुणों (bounding boxes, confidence, class names) के साथ ट्रैकिंग जानकारी भी बनाए रखता है

ByteTrack एक दक्ष बहु-ऑब्जेक्ट ट्रैकिंग एल्गोरिद्म है जो tracking-by-detection करता है, और appearance features की आवश्यकता के बिना फ़्रेमों के बीच डिटेक्शनों को जोड़ता है। यह दो-चरणीय एसोसिएशन रणनीति का उपयोग करता है: पहले उच्च-विश्वास वाले डिटेक्शनों को ट्रैक्स से मिलाना, फिर कम-विश्वास वाले डिटेक्शनों को शेष ट्रैक्स और खोए हुए ट्रैक्स से मिलाना। एल्गोरिद्म खोए हुए ट्रैक्स के लिए एक बफ़र बनाए रखता है, जिससे ऑब्जेक्ट्स के ऑक्लूज़न या डिटेक्शन विफलताओं के कारण अस्थायी रूप से गायब होने पर वह ट्रैक्स को पुनः प्राप्त कर सके। कॉन्फ़िगर किए जा सकने वाले पैरामीटर ट्रैकिंग व्यवहार को सूक्ष्म रूप से समायोजित करने देते हैं: track\_activation\_threshold यह नियंत्रित करता है कि नए ट्रैक्स कब बनाए जाएँ (अधिक = अधिक सावधानीपूर्ण), lost\_track\_buffer ऑक्लूज़न हैंडलिंग को नियंत्रित करता है (अधिक = बेहतर ऑक्लूज़न रिकवरी), minimum\_matching\_threshold एसोसिएशन गुणवत्ता को नियंत्रित करता है (अधिक = सख़्त मैचिंग), और minimum\_consecutive\_frames अल्पकालिक फ़ॉल्स ट्रैक्स को फ़िल्टर करता है (अधिक = कम फ़ॉल्स ट्रैक्स)।

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

* **वीडियो विश्लेषण**: व्यवहार विश्लेषण और मूवमेंट पैटर्न के लिए वीडियो फ़्रेमों में ऑब्जेक्ट्स को ट्रैक करें (जैसे, वीडियो में लोगों की गतिविधि ट्रैक करें, वाहन पथों की निगरानी करें, ऑब्जेक्ट प्रक्षेप पथों का विश्लेषण करें), जिससे वीडियो एनालिटिक्स वर्कफ़्लो सक्षम हों
* **यातायात निगरानी**: ट्रैफ़िक विश्लेषण के लिए ट्रैफ़िक दृश्यों में वाहनों और ऑब्जेक्ट्स को ट्रैक करें (जैसे, फ़्रेमों में वाहनों को ट्रैक करें, वाहन पथों की निगरानी करें, सुसंगत IDs के साथ वाहनों की गिनती करें), जिससे ट्रैफ़िक मॉनिटरिंग वर्कफ़्लो सक्षम हों
* **निगरानी प्रणालियाँ**: सुरक्षा निगरानी के लिए वीडियो फ़्रेमों में ऑब्जेक्ट पहचान बनाए रखें (जैसे, सर्विलांस फ़ुटेज में व्यक्तियों को ट्रैक करें, ऑब्जेक्ट मूवमेंट्स की निगरानी करें, ऑब्जेक्ट पहचान बनाए रखें), जिससे निगरानी ट्रैकिंग वर्कफ़्लो सक्षम हों
* **खेल विश्लेषण**: प्रदर्शन विश्लेषण के लिए खेल वीडियो में खिलाड़ियों और ऑब्जेक्ट्स को ट्रैक करें (जैसे, खिलाड़ी मूवमेंट्स को ट्रैक करें, खिलाड़ी प्रक्षेप पथों का विश्लेषण करें, गेंद की स्थिति की निगरानी करें), जिससे खेल विश्लेषण वर्कफ़्लो सक्षम हों
* **रिटेल एनालिटिक्स**: खुदरा अंतर्दृष्टि के लिए वीडियो फ़्रेमों में ग्राहकों और उत्पादों को ट्रैक करें (जैसे, ग्राहक पथों को ट्रैक करें, खरीदारी व्यवहार की निगरानी करें, फ़ुट ट्रैफ़िक पैटर्न का विश्लेषण करें), जिससे खुदरा एनालिटिक्स वर्कफ़्लो सक्षम हों
* **ऑब्जेक्ट व्यवहार विश्लेषण**: समय के साथ उनके व्यवहार और अंतःक्रियाओं का विश्लेषण करने के लिए ऑब्जेक्ट्स को ट्रैक करें (जैसे, ऑब्जेक्ट अंतःक्रियाओं का विश्लेषण, मूवमेंट पैटर्न का अध्ययन, ऑब्जेक्ट संबंधों को ट्रैक करना), जिससे व्यवहार विश्लेषण वर्कफ़्लो सक्षम हों

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

यह ब्लॉक डिटेक्शन प्रेडिक्शंस और वीडियो मेटाडेटा प्राप्त करता है, और track IDs के साथ tracked\_detections उत्पन्न करता है:

* **ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन ब्लॉक्स के बाद** पहचाने गए ऑब्जेक्ट्स को वीडियो फ़्रेमों में ट्रैक करने के लिए (जैसे, वीडियो में पहचाने गए ऑब्जेक्ट्स को ट्रैक करें, डिटेक्शनों में track IDs जोड़ें, फ़्रेमों के बीच ऑब्जेक्ट पहचान बनाए रखें), जिससे detection-to-tracking वर्कफ़्लो सक्षम हों
* **वीडियो विश्लेषण ब्लॉक्स से पहले** जिन्हें सुसंगत ऑब्जेक्ट पहचान की आवश्यकता होती है (जैसे, ट्रैक किए गए ऑब्जेक्ट व्यवहार का विश्लेषण, ऑब्जेक्ट प्रक्षेप पथों को प्रोसेस करना, ट्रैक किए गए ऑब्जेक्ट डेटा के साथ काम करना), जिससे tracking-to-analysis वर्कफ़्लो सक्षम हों
* **विज़ुअलाइज़ेशन ब्लॉकों से पहले** ट्रैक किए गए ऑब्जेक्ट्स को सुसंगत रंगों या लेबल्स के साथ प्रदर्शित करने के लिए (जैसे, ट्रैक किए गए ऑब्जेक्ट्स को विज़ुअलाइज़ करना, track IDs दिखाना, ऑब्जेक्ट पथ दिखाना), जिससे ट्रैकिंग विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम हों
* **लॉजिक ब्लॉक्स से पहले** जैसे Continue If, ताकि track जानकारी के आधार पर निर्णय लिए जा सकें (जैसे, यदि ऑब्जेक्ट ट्रैक किया गया है तो जारी रखें, track IDs के आधार पर फ़िल्टर करें, ट्रैकिंग डेटा का उपयोग करके निर्णय लें), जिससे ट्रैकिंग-आधारित निर्णय वर्कफ़्लो सक्षम हों
* **गिनती या एग्रीगेशन ब्लॉक्स से पहले** ट्रैक किए गए ऑब्जेक्ट्स की सटीक गिनती करने के लिए (जैसे, अद्वितीय ट्रैक किए गए ऑब्जेक्ट्स की गिनती, ट्रैक आँकड़ों का एग्रीगेशन, ट्रैक डेटा प्रोसेस करना), जिससे ट्रैकिंग-से-गिनती वर्कफ़्लो सक्षम हों
* **वीडियो प्रोसेसिंग पाइपलाइनों में** जहाँ ऑब्जेक्ट ट्रैकिंग एक बड़े वीडियो विश्लेषण वर्कफ़्लो का हिस्सा है (जैसे, वीडियो पाइपलाइनों में ऑब्जेक्ट्स को ट्रैक करना, प्रोसेसिंग चेन में पहचान बनाए रखना, वीडियो एनालिटिक्स सक्षम करना), जिससे वीडियो ट्रैकिंग पाइपलाइन वर्कफ़्लो सक्षम हों

## आवश्यकताएँ

इस ब्लॉक को डिटेक्शन प्रेडिक्शंस (ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन) और फ़्रेम रेट (fps) जानकारी वाले वीडियो मेटाडेटा की आवश्यकता होती है। वीडियो मेटाडेटा में ByteTrack आरंभ करने के लिए एक वैध fps मान होना चाहिए। यह ब्लॉक प्रत्येक वीडियो के लिए फ़्रेमों के बीच ट्रैकिंग स्थिति बनाए रखता है, इसलिए इसे ऐसे वीडियो वर्कफ़्लो में उपयोग करना चाहिए जहाँ फ़्रेम क्रम से प्रोसेस किए जाते हों। सर्वोत्तम ट्रैकिंग प्रदर्शन के लिए, डिटेक्शन फ़्रेमों में लगातार प्रदान किए जाने चाहिए। एल्गोरिद्म स्थिर डिटेक्शन प्रदर्शन के साथ सबसे अच्छा काम करता है और lost\_track\_buffer तंत्र के माध्यम से अस्थायी डिटेक्शन अंतराल को संभालता है।

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

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

### गुण

| **नाम**                      | **प्रकार** | **विवरण**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | संदर्भ |
| ---------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ |
| `name`                       | `str`      | इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | ❌      |
| `track_activation_threshold` | `float`    | डिटेक्शनों से नए ट्रैक्स सक्रिय करने के लिए विश्वास-स्तर सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.25 है। केवल इस सीमा से ऊपर विश्वास-स्तर वाले डिटेक्शन ही नए ट्रैक्स बना सकते हैं। इस सीमा को बढ़ाने से (जैसे, 0.3-0.5) केवल उच्च-विश्वास वाले डिटेक्शनों से ट्रैक बनाकर ट्रैकिंग सटीकता और स्थिरता बेहतर होती है, लेकिन कम विश्वास-स्तर वाले कुछ सही डिटेक्शन छूट सकते हैं। इस सीमा को घटाने से (जैसे, 0.15-0.2) कम-विश्वास वाले डिटेक्शनों को स्वीकार करके ट्रैकिंग पूर्णता बढ़ती है, लेकिन फ़ॉल्स पॉज़िटिव्स से शोर और अस्थिरता आ सकती है। डिटेक्शन मॉडल के प्रदर्शन के आधार पर समायोजित करें: यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें, यदि फ़ॉल्स पॉज़िटिव्स सामान्य हों तो अधिक मान उपयोग करें..                                                                                          | ✅      |
| `lost_track_buffer`          | `int`      | जब ट्रैक खो जाए (कोई मेल खाता डिटेक्शन न हो) तो उसे बनाए रखने के लिए फ़्रेमों की संख्या। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 30 फ़्रेम है। जब कोई ऑब्जेक्ट अस्थायी रूप से गायब हो जाता है (ऑक्लूज़न, छूटी हुई डिटेक्शन, या फ़्रेम छोड़ने के कारण), तो ट्रैक को खोया हुआ माने जाने से पहले इतने फ़्रेमों तक बनाए रखा जाता है। इस मान को बढ़ाने से (जैसे, 50-100) ऑक्लूज़न हैंडलिंग बेहतर होती है और छोटी डिटेक्शन खाइयों के कारण होने वाले ट्रैक विखंडन या गायब होने में काफ़ी कमी आती है, लेकिन मेमोरी उपयोग बढ़ता है। इस मान को घटाने से (जैसे, 10-20) मेमोरी उपयोग कम होता है, लेकिन छोटे ऑक्लूज़न के दौरान ट्रैक्स गायब हो सकते हैं। ऑक्लूज़न आवृत्ति के आधार पर समायोजित करें: बार-बार होने वाले ऑक्लूज़न के लिए अधिक मान, और स्थिर ट्रैकिंग परिदृश्यों के लिए कम मान उपयोग करें..                   | ✅      |
| `minimum_matching_threshold` | `float`    | मौजूदा ट्रैक्स के साथ डिटेक्शनों को मिलाने के लिए IoU (Intersection over Union) सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.8 है। जब किसी डिटेक्शन के bounding box का IoU इस सीमा से अधिक होता है, तो उसे ट्रैक से जोड़ा जाता है। इस सीमा को बढ़ाने से (जैसे, 0.85-0.95) अधिक सशक्त स्थानिक ओवरलैप की आवश्यकता देकर ट्रैकिंग सटीकता बेहतर होती है, लेकिन जब ऑब्जेक्ट्स तेज़ी से चलते हैं या डिटेक्शन बॉक्स बदलते हैं, तब ट्रैक विखंडन का जोखिम रहता है। इस सीमा को घटाने से (जैसे, 0.6-0.75) ढीले मैचों को स्वीकार करके ट्रैकिंग पूर्णता बेहतर होती है, लेकिन फ़ॉल्स पॉज़िटिव एसोसिएशन और ट्रैक ड्रिफ्ट का जोखिम बढ़ता है। ऑब्जेक्ट की गति और डिटेक्शन स्थिरता के आधार पर समायोजित करें: स्थिर ऑब्जेक्ट्स के लिए अधिक मान, तेज़ी से चलने वाले ऑब्जेक्ट्स के लिए कम मान उपयोग करें..                        | ✅      |
| `minimum_consecutive_frames` | `int`      | किसी ऑब्जेक्ट को वैध मानने और आउटपुट करने से पहले उसे लगातार जितने फ़्रेमों तक ट्रैक किया जाना चाहिए, उनकी न्यूनतम संख्या। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 1 है (सभी ट्रैक्स तुरंत वैध हैं)। केवल वे ट्रैक्स जो कम-से-कम इतने लगातार फ़्रेमों तक बने रहते हैं, आउटपुट में शामिल किए जाते हैं। इस मान को बढ़ाने से (जैसे, 3-5) फ़ॉल्स डिटेक्शनों या डबल डिटेक्शनों से आकस्मिक ट्रैक्स बनने से रोकने में मदद मिलती है, और अल्पकालिक, अनावश्यक ट्रैक्स फ़िल्टर हो जाते हैं, लेकिन इससे छोटे वैध ट्रैक्स छूट सकते हैं। इस मान को घटाने से (जैसे, 1) सभी ट्रैक्स तुरंत शामिल हो जाते हैं, जिससे पूर्णता अधिकतम होती है, लेकिन फ़ॉल्स ट्रैक्स भी शामिल हो सकते हैं। फ़ॉल्स पॉज़िटिव दर के आधार पर समायोजित करें: यदि फ़ॉल्स डिटेक्शन आम हों तो अधिक मान, यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें.. | ✅      |

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

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

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

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

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

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

<details>

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

* इनपुट
  * `metadata` ([*`video_metadata`*](/workflows/hi/developer-guide/developer-guide/kinds/video-metadata.md) ): वीडियो मेटाडेटा जिसमें ByteTrack आरंभ करने और ट्रैकिंग स्थिति प्रबंधन के लिए आवश्यक फ़्रेम रेट (fps) और वीडियो पहचानकर्ता जानकारी शामिल हो। fps मान का उपयोग ट्रैकर को कॉन्फ़िगर करने के लिए किया जाता है, और video\_identifier का उपयोग अलग-अलग वीडियो के लिए अलग ट्रैकिंग स्थिति बनाए रखने हेतु किया जाता है। मेटाडेटा में वैध fps जानकारी होनी चाहिए - ByteTrack को आरंभ करने के लिए फ़्रेम रेट की आवश्यकता होती है। यदि कई वीडियो प्रोसेस किए जा रहे हों, तो प्रत्येक वीडियो के मेटाडेटा में अलग video\_identifier होना चाहिए ताकि अलग ट्रैकिंग स्थितियाँ बनाए रखी जा सकें। ब्लॉक video\_identifier का उपयोग करके प्रत्येक वीडियो के लिए फ़्रेमों के बीच स्थायी ट्रैकर बनाए रखता है..
  * `detections` (*Union\[*[*`object_detection_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/object-detection-prediction.md)*,* [*`instance_segmentation_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/instance-segmentation-prediction.md)*]* ): वर्तमान वीडियो फ़्रेम के लिए ट्रैक किए जाने वाले डिटेक्शन प्रेडिक्शंस (ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन)। ब्लॉक इन डिटेक्शनों को मौजूदा ट्रैक्स के साथ जोड़ता है या नए ट्रैक्स बनाता है। सुसंगत ट्रैकिंग बनाए रखने के लिए डिटेक्शन प्रत्येक फ़्रेम के लिए क्रम से प्रदान किए जाने चाहिए। यदि कई डिटेक्शन बैच दिए गए हों, तो ट्रैकिंग से पहले उन्हें मर्ज किया जाएगा। डिटेक्शनों में bounding boxes और class names शामिल होने चाहिए। ट्रैकिंग के बाद, आउटपुट में वही डिटेक्शन track\_id जानकारी के साथ संवर्धित होंगे, जिससे फ़्रेमों के बीच एक ही ऑब्जेक्ट की पहचान संभव होगी..
  * `track_activation_threshold` ([*`float_zero_to_one`*](/workflows/hi/developer-guide/developer-guide/kinds/float-zero-to-one.md) ): डिटेक्शनों से नए ट्रैक्स सक्रिय करने के लिए विश्वास-स्तर सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.25 है। केवल इस सीमा से ऊपर विश्वास-स्तर वाले डिटेक्शन ही नए ट्रैक्स बना सकते हैं। इस सीमा को बढ़ाने से (जैसे, 0.3-0.5) केवल उच्च-विश्वास वाले डिटेक्शनों से ट्रैक बनाकर ट्रैकिंग सटीकता और स्थिरता बेहतर होती है, लेकिन कम विश्वास-स्तर वाले कुछ सही डिटेक्शन छूट सकते हैं। इस सीमा को घटाने से (जैसे, 0.15-0.2) कम-विश्वास वाले डिटेक्शनों को स्वीकार करके ट्रैकिंग पूर्णता बढ़ती है, लेकिन फ़ॉल्स पॉज़िटिव्स से शोर और अस्थिरता आ सकती है। डिटेक्शन मॉडल के प्रदर्शन के आधार पर समायोजित करें: यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें, यदि फ़ॉल्स पॉज़िटिव्स सामान्य हों तो अधिक मान उपयोग करें..
  * `lost_track_buffer` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md) ): ट्रैक खो जाने पर उसे बनाए रखने के लिए फ़्रेमों की संख्या (कोई मेल खाता डिटेक्शन न हो)। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 30 फ़्रेम है। जब कोई ऑब्जेक्ट अस्थायी रूप से गायब हो जाता है (ऑक्लूज़न, छूटी हुई डिटेक्शन, या फ़्रेम छोड़ने के कारण), तो ट्रैक को खोया हुआ माने जाने से पहले इतने फ़्रेमों तक बनाए रखा जाता है। इस मान को बढ़ाने से (जैसे, 50-100) ऑक्लूज़न हैंडलिंग बेहतर होती है और छोटी डिटेक्शन खाइयों के कारण होने वाले ट्रैक विखंडन या गायब होने में काफ़ी कमी आती है, लेकिन मेमोरी उपयोग बढ़ता है। इस मान को घटाने से (जैसे, 10-20) मेमोरी उपयोग कम होता है, लेकिन छोटे ऑक्लूज़न के दौरान ट्रैक्स गायब हो सकते हैं। ऑक्लूज़न आवृत्ति के आधार पर समायोजित करें: बार-बार होने वाले ऑक्लूज़न के लिए अधिक मान, और स्थिर ट्रैकिंग परिदृश्यों के लिए कम मान उपयोग करें..
  * `minimum_matching_threshold` ([*`float_zero_to_one`*](/workflows/hi/developer-guide/developer-guide/kinds/float-zero-to-one.md) ): मौजूदा ट्रैक्स के साथ डिटेक्शनों को मिलाने के लिए IoU (Intersection over Union) सीमा। यह 0.0 और 1.0 के बीच होना चाहिए। डिफ़ॉल्ट 0.8 है। जब किसी डिटेक्शन के bounding box का IoU इस सीमा से अधिक होता है, तो उसे ट्रैक से जोड़ा जाता है। इस सीमा को बढ़ाने से (जैसे, 0.85-0.95) अधिक सशक्त स्थानिक ओवरलैप की आवश्यकता देकर ट्रैकिंग सटीकता बेहतर होती है, लेकिन जब ऑब्जेक्ट्स तेज़ी से चलते हैं या डिटेक्शन बॉक्स बदलते हैं, तब ट्रैक विखंडन का जोखिम रहता है। इस सीमा को घटाने से (जैसे, 0.6-0.75) ढीले मैचों को स्वीकार करके ट्रैकिंग पूर्णता बेहतर होती है, लेकिन फ़ॉल्स पॉज़िटिव एसोसिएशन और ट्रैक ड्रिफ्ट का जोखिम बढ़ता है। ऑब्जेक्ट की गति और डिटेक्शन स्थिरता के आधार पर समायोजित करें: स्थिर ऑब्जेक्ट्स के लिए अधिक मान, तेज़ी से चलने वाले ऑब्जेक्ट्स के लिए कम मान उपयोग करें..
  * `minimum_consecutive_frames` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md) ): किसी ऑब्जेक्ट को वैध मानने और आउटपुट करने से पहले उसे लगातार जितने फ़्रेमों तक ट्रैक किया जाना चाहिए, उनकी न्यूनतम संख्या। यह एक धनात्मक पूर्णांक होना चाहिए। डिफ़ॉल्ट 1 है (सभी ट्रैक्स तुरंत वैध हैं)। केवल वे ट्रैक्स जो कम-से-कम इतने लगातार फ़्रेमों तक बने रहते हैं, आउटपुट में शामिल किए जाते हैं। इस मान को बढ़ाने से (जैसे, 3-5) फ़ॉल्स डिटेक्शनों या डबल डिटेक्शनों से आकस्मिक ट्रैक्स बनने से रोकने में मदद मिलती है, और अल्पकालिक, अनावश्यक ट्रैक्स फ़िल्टर हो जाते हैं, लेकिन इससे छोटे वैध ट्रैक्स छूट सकते हैं। इस मान को घटाने से (जैसे, 1) सभी ट्रैक्स तुरंत शामिल हो जाते हैं, जिससे पूर्णता अधिकतम होती है, लेकिन फ़ॉल्स ट्रैक्स भी शामिल हो सकते हैं। फ़ॉल्स पॉज़िटिव दर के आधार पर समायोजित करें: यदि फ़ॉल्स डिटेक्शन आम हों तो अधिक मान, यदि डिटेक्शन विश्वसनीय हों तो कम मान उपयोग करें..
* आउटपुट
  * `tracked_detections` ([`object_detection_prediction`](/workflows/hi/developer-guide/developer-guide/kinds/object-detection-prediction.md)): sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स के साथ पूर्वानुमान।

</details>

<details>

<summary>उदाहरण JSON परिभाषा</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/byte_tracker@v1",}
	    "metadata": "<block_does_not_provide_example>",
	    "detections": "$steps.object_detection_model.predictions",
	    "track_activation_threshold": 0.25,
	    "lost_track_buffer": 30,
	    "minimum_matching_threshold": 0.8,
	    "minimum_consecutive_frames": 1
	}
```

</details>
