SORT ट्रैकर
तेज़, हल्का वस्तु ट्रैकिंग। जब वस्तुएँ स्पष्ट रूप से दिखाई देती हों, तब सर्वोत्तम।
वीडियो फ़्रेमों के पार ऑब्जेक्ट्स को ट्रैक करें SORT roboflow/trackers पैकेज के एल्गोरिद्म का उपयोग करके।
SORT एक Kalman filter motion model को single-stage IoU-based Hungarian assignment के साथ जोड़ता है। इसमें सबसे कम पैरामीटर और सबसे कम ओवरहेड होता है, और यह प्रति सेकंड सैकड़ों फ़्रेम प्रोसेस करता है। हालांकि, इसमें re-identification और occlusion-recovery mechanisms नहीं हैं, इसलिए जब ऑब्जेक्ट्स अस्थायी रूप से छिप जाते हैं तो ट्रैक्स टूट सकते हैं या IDs बदल सकते हैं।
SORT का उपयोग कब करें:
नियंत्रित वातावरण, जहाँ detections विश्वसनीय और उच्च-confidence हों।
रियल-टाइम पाइपलाइन्स जहाँ अधिकतम throughput महत्वपूर्ण है।
सरल दृश्य, जिनमें बहुत कम occlusion हो और रैखिक गति अनुमानित हो।
विकल्पों पर कब विचार करें:
यदि आपको टूटे हुए ट्रैक या छूटी हुई कमजोर detections दिखें, तो आज़माएँ ByteTrack.
यदि ऑब्जेक्ट्स में भारी occlusion या non-linear motion हो, तो आज़माएँ 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_sort@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
minimum_iou_threshold
float
किसी detection को मौजूदा track से जोड़ने के लिए आवश्यक न्यूनतम IoU। Default: 0.3..
✅
minimum_consecutive_frames
int
वे लगातार फ़्रेमों की संख्या जिनमें track का match होना चाहिए, इससे पहले कि उसे confirmed track (tracker_id != -1) के रूप में emit किया जाए। Default: 3..
✅
lost_track_buffer
int
ट्रैक के अपने matched detection को खो देने के बाद उसे alive रखने के लिए फ़्रेमों की संख्या। अधिक मान occlusion recovery में सुधार करते हैं। Default: 30..
✅
track_activation_threshold
float
नया track बनाने के लिए आवश्यक न्यूनतम detection confidence। इस threshold से नीचे की detections का उपयोग नए tracks बनाने के लिए नहीं किया जाता। Default: 0.25..
✅
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 सत्र में स्थानीय स्टेप निष्पादन का उपयोग करें।
सॉफ्ट - इनपुट छवि : ब्लॉक वीडियो या दोहराए गए-फ़्रेम वर्कफ़्लो से समयगत संदर्भ पर निर्भर करता है। एक स्थिर छवि/फ़ोटो के साथ, ट्रैक करने, तुलना करने, समेकित करने या दृश्यीकृत करने के लिए कोई अर्थपूर्ण इतिहास नहीं होता, इसलिए ब्लॉक बहुत कम या कोई लाभ नहीं देता।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार SORT Tracker संस्करण 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): किसी detection को मौजूदा track से जोड़ने के लिए आवश्यक न्यूनतम IoU। Default: 0.3..minimum_consecutive_frames(पूर्णांक): वे लगातार फ़्रेमों की संख्या जिनमें track का match होना चाहिए, इससे पहले कि उसे confirmed track (tracker_id != -1) के रूप में emit किया जाए। Default: 3..lost_track_buffer(पूर्णांक): ट्रैक के अपने matched detection को खो देने के बाद उसे alive रखने के लिए फ़्रेमों की संख्या। अधिक मान occlusion recovery में सुधार करते हैं। Default: 30..track_activation_threshold(float_zero_to_one): नया track बनाने के लिए आवश्यक न्यूनतम detection confidence। इस threshold से नीचे की detections का उपयोग नए tracks बनाने के लिए नहीं किया जाता। Default: 0.25..
आउटपुट
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.
अंतिम अपडेट
क्या यह उपयोगी था?