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 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवि(छवि): इनपुट छवि जिसमें एम्बेडेड वीडियो metadata (fps और video_identifier) हो। प्रति-वीडियो tracker state को initialize और retrieve करने के लिए उपयोग की जाती है..detections(Union[rle_instance_segmentation_prediction,object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction]): वर्तमान फ़्रेम के लिए tracking हेतु detection predictions..minimum_iou_threshold(float_zero_to_one): किसी मौजूदा ट्रैक के साथ डिटेक्शन को जोड़ने के लिए आवश्यक न्यूनतम IoU. डिफ़ॉल्ट: 0.1..minimum_consecutive_frames(पूर्णांक): एक ट्रैक को पुष्टि किए गए ट्रैक (tracker_id != -1) के रूप में जारी करने से पहले जितने लगातार फ़्रेमों में उसका मिलान होना चाहिए. डिफ़ॉल्ट: 2..lost_track_buffer(पूर्णांक): ट्रैक के अपने matched detection को खो देने के बाद उसे alive रखने के लिए फ़्रेमों की संख्या। अधिक मान occlusion recovery में सुधार करते हैं। Default: 30..track_activation_threshold(float_zero_to_one): नया ट्रैक शुरू करने के लिए आवश्यक न्यूनतम डिटेक्शन कॉन्फ़िडेंस। इस थ्रेशहोल्ड से नीचे के डिटेक्शन नए ट्रैक बनाने के लिए उपयोग नहीं किए जाते। डिफ़ॉल्ट: 0.7..high_conf_det_threshold(float_zero_to_one): एसोसिएशन में उपयोग किए जाने वाले उच्च-विश्वास डिटेक्शनों के लिए विश्वास सीमा. डिफ़ॉल्ट: 0.6..
आउटपुट
tracked_detections(Union[object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction,rle_instance_segmentation_prediction]): यदि 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,instance_segmentation_prediction,keypoint_detection_prediction,rle_instance_segmentation_prediction]): यदि 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,instance_segmentation_prediction,keypoint_detection_prediction,rle_instance_segmentation_prediction]): यदि 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.
अंतिम अपडेट
क्या यह उपयोगी था?