> 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-track-tracker.md).

# ByteTrack ट्रैकर

वीडियो फ़्रेमों के पार ऑब्जेक्ट्स को ट्रैक करें **ByteTrack** roboflow/trackers पैकेज के एल्गोरिद्म का उपयोग करके।

ByteTrack डिटेक्शनों को उच्च-विश्वास और निम्न-विश्वास वाले समूहों में विभाजित करता है और IoU-आधारित एसोसिएशन के दो दौर चलाता है। पहला दौर उच्च-विश्वास डिटेक्शनों को मौजूदा ट्रैक्स से मिलाता है; दूसरा बेमेल ट्रैक्स के साथ ओवरलैप करने वाले कमजोर डिटेक्शनों को पुनः प्राप्त करता है। इससे ByteTrack विशेष रूप से प्रभावी बनता है **घने वातावरणों में** जहाँ वस्तुएँ अक्सर आंशिक रूप से ढकी होती हैं और डिटेक्टर का विश्वास बदलता रहता है।

**ByteTrack का उपयोग कब करें:**

* विविध दृश्यों में सामान्य-उद्देश्य ट्रैकिंग।
* आंशिक अवरोधों वाले घने या भीड़भाड़ वाले वातावरण।
* खेल ट्रैकिंग और तेज़ी से चलने वाली वस्तुएँ (SportsMOT पर सर्वोच्च बेंचमार्क स्कोर)।
* जब आपका डिटेक्टर उच्च- और निम्न-विश्वास वाले डिटेक्शनों का मिश्रण उत्पन्न करता है जिन्हें आप बनाए रखना चाहते हैं।

**विकल्पों पर कब विचार करें:**

* अधिकतम सरलता और गति के लिए, एक मजबूत डिटेक्टर के साथ, उपयोग करें **SORT**.
* भारी अवरोध और गैर-रेखीय गति वाले दृश्यों के लिए, उपयोग करें **OC-SORT**.

तीन detection सेट आउटपुट करता है:

* **tracked\_detections**: सभी पुष्टि किए गए tracked detections, जिनके track IDs असाइन किए गए हैं।
* **new\_instances**: ऐसी detections जिनका track ID पहली बार दिखाई देता है।
* **already\_seen\_instances**: ऐसी detections जिनका track ID पहले किसी फ़्रेम में देखा जा चुका है।

यह block प्रत्येक `video_identifier`के लिए अलग tracker state और instance cache बनाए रखता है, जिससे एक ही workflow के भीतर multi-stream tracking संभव होती है।

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

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

### गुण

| **नाम**                      | **प्रकार** | **विवरण**                                                                                                                                                    | संदर्भ |
| ---------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------ |
| `name`                       | `str`      | इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..                                                                                                            | ❌      |
| `minimum_iou_threshold`      | `float`    | किसी मौजूदा ट्रैक के साथ डिटेक्शन को जोड़ने के लिए आवश्यक न्यूनतम IoU. डिफ़ॉल्ट: 0.1..                                                                       | ✅      |
| `minimum_consecutive_frames` | `int`      | एक ट्रैक को पुष्टि किए गए ट्रैक (tracker\_id != -1) के रूप में जारी करने से पहले जितने लगातार फ़्रेमों में उसका मिलान होना चाहिए. डिफ़ॉल्ट: 2..              | ✅      |
| `lost_track_buffer`          | `int`      | ट्रैक के अपने matched detection को खो देने के बाद उसे alive रखने के लिए फ़्रेमों की संख्या। अधिक मान occlusion recovery में सुधार करते हैं। Default: 30..    | ✅      |
| `track_activation_threshold` | `float`    | नया ट्रैक शुरू करने के लिए आवश्यक न्यूनतम डिटेक्शन कॉन्फ़िडेंस। इस थ्रेशहोल्ड से नीचे के डिटेक्शन नए ट्रैक बनाने के लिए उपयोग नहीं किए जाते। डिफ़ॉल्ट: 0.7.. | ✅      |
| `high_conf_det_threshold`    | `float`    | एसोसिएशन में उपयोग किए जाने वाले उच्च-विश्वास डिटेक्शनों के लिए विश्वास सीमा. डिफ़ॉल्ट: 0.6..                                                                | ✅      |
| `instances_cache_size`       | `int`      | new/already-seen categorisation के लिए instance cache में रखे जाने वाले track IDs की अधिकतम संख्या। FIFO eviction का उपयोग करता है। Default: 16384..         | ❌      |

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

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

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

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

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

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

<details>

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

* इनपुट
  * `छवि` ([*`छवि`*](/workflows/hi/developer-guide/developer-guide/kinds/image.md)): इनपुट छवि जिसमें एम्बेडेड वीडियो metadata (fps और video\_identifier) हो। प्रति-वीडियो tracker state को initialize और retrieve करने के लिए उपयोग की जाती है..
  * `detections` (*Union\[*[*`rle_instance_segmentation_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/rle-instance-segmentation-prediction.md)*,* [*`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)*]*): वर्तमान फ़्रेम के लिए tracking हेतु detection predictions..
  * `minimum_iou_threshold` ([*`float_zero_to_one`*](/workflows/hi/developer-guide/developer-guide/kinds/float-zero-to-one.md)): किसी मौजूदा ट्रैक के साथ डिटेक्शन को जोड़ने के लिए आवश्यक न्यूनतम IoU. डिफ़ॉल्ट: 0.1..
  * `minimum_consecutive_frames` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md)): एक ट्रैक को पुष्टि किए गए ट्रैक (tracker\_id != -1) के रूप में जारी करने से पहले जितने लगातार फ़्रेमों में उसका मिलान होना चाहिए. डिफ़ॉल्ट: 2..
  * `lost_track_buffer` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md)): ट्रैक के अपने matched detection को खो देने के बाद उसे alive रखने के लिए फ़्रेमों की संख्या। अधिक मान occlusion recovery में सुधार करते हैं। Default: 30..
  * `track_activation_threshold` ([*`float_zero_to_one`*](/workflows/hi/developer-guide/developer-guide/kinds/float-zero-to-one.md)): नया ट्रैक शुरू करने के लिए आवश्यक न्यूनतम डिटेक्शन कॉन्फ़िडेंस। इस थ्रेशहोल्ड से नीचे के डिटेक्शन नए ट्रैक बनाने के लिए उपयोग नहीं किए जाते। डिफ़ॉल्ट: 0.7..
  * `high_conf_det_threshold` ([*`float_zero_to_one`*](/workflows/hi/developer-guide/developer-guide/kinds/float-zero-to-one.md)): एसोसिएशन में उपयोग किए जाने वाले उच्च-विश्वास डिटेक्शनों के लिए विश्वास सीमा. डिफ़ॉल्ट: 0.6..
* आउटपुट
  * `tracked_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)*,* [*`rle_instance_segmentation_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/rle-instance-segmentation-prediction.md)*]*): यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स वाली प्रेडिक्शन `object_detection_prediction` या यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शन `instance_segmentation_prediction` या पहचाने गए बाउंडिंग बॉक्स और पहचाने गए कीपॉइंट्स वाली Prediction, sv.Detections(...) ऑब्जेक्ट के रूप में, यदि `keypoint_detection_prediction` या detected bounding boxes और RLE-encoded segmentation masks के साथ Prediction, sv.Detections(...) ऑब्जेक्ट के रूप में यदि `rle_instance_segmentation_prediction`.
  * `new_instances` (*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)*,* [*`rle_instance_segmentation_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/rle-instance-segmentation-prediction.md)*]*): यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स वाली प्रेडिक्शन `object_detection_prediction` या यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शन `instance_segmentation_prediction` या पहचाने गए बाउंडिंग बॉक्स और पहचाने गए कीपॉइंट्स वाली Prediction, sv.Detections(...) ऑब्जेक्ट के रूप में, यदि `keypoint_detection_prediction` या detected bounding boxes और RLE-encoded segmentation masks के साथ Prediction, sv.Detections(...) ऑब्जेक्ट के रूप में यदि `rle_instance_segmentation_prediction`.
  * `already_seen_instances` (*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)*,* [*`rle_instance_segmentation_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/rle-instance-segmentation-prediction.md)*]*): यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स वाली प्रेडिक्शन `object_detection_prediction` या यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शन `instance_segmentation_prediction` या पहचाने गए बाउंडिंग बॉक्स और पहचाने गए कीपॉइंट्स वाली Prediction, sv.Detections(...) ऑब्जेक्ट के रूप में, यदि `keypoint_detection_prediction` या detected bounding boxes और RLE-encoded segmentation masks के साथ Prediction, sv.Detections(...) ऑब्जेक्ट के रूप में यदि `rle_instance_segmentation_prediction`.

</details>

<details>

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

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/trackers_bytetrack@v1",
	    "image": "<block_does_not_provide_example>",
	    "detections": "$steps.object_detection_model.predictions",
	    "minimum_iou_threshold": 0.1,
	    "minimum_consecutive_frames": 2,
	    "lost_track_buffer": 30,
	    "track_activation_threshold": 0.7,
	    "high_conf_det_threshold": 0.6,
	    "instances_cache_size": "<block_does_not_provide_example>"
	}
```

</details>
