फ़्रेम विलंब
उसी वीडियो स्ट्रीम के किसी पहले फ़्रेम (N-k, अतीत में) से एक मान का संदर्भ लें।
एक पर उत्पन्न मान का संदर्भ लें पूर्व उसी वीडियो स्ट्रीम के पिछले फ़्रेम पर। किसी भी वर्कफ़्लो आउटपुट (डिटेक्शन, संख्याएँ, स्ट्रिंग्स, चित्र, ...) को इस ब्लॉक में जोड़ें, एक ऋणात्मक ऑफ़सेट, और ब्लॉक उस मान को वैसा ही लौटाता है जैसा वह था |offset| फ़्रेम पहले।
केवल अतीत (गैर-धनात्मक) ऑफ़सेट समर्थित हैं। वास्तविक भविष्य की ओर देखना पूरे वर्कफ़्लो आउटपुट में देरी करने की मांग करेगा, जो समकालिक रनटाइम (WebRTC/webexec, single-image HTTP) पर संभव नहीं है, इसलिए इसे यहाँ जानबूझकर उपलब्ध नहीं कराया गया है।
यह ब्लॉक कैसे काम करता है
पढ़ता है
video_metadataजुड़े हुएछविसे प्राप्त करने के लिएvideo_identifier(प्रति-स्ट्रीम स्थिति को पृथक रखने के लिए उपयोग किया जाता है) और एकरूपीframe_number(N).आने वाले को संग्रहीत करता है
डेटाको फ़्रेम संख्या द्वारा कुंजीबद्ध प्रति-वीडियो रिंग बफ़र में।सुलझाता है
target_frame = N + offset(के साथoffset <= 0) और लौटाता हैdata[target_frame]जब बफ़र में हो, अन्यथाdefault_value.रिपोर्ट करता है
is_available(क्या लक्ष्य फ़्रेम बफ़र किया गया था) औरreference_frame_number(हमेशा वर्तमान फ़्रेमN).
सामान्य उपयोग के मामले
वर्तमान फ़्रेम की तुलना किसी पिछले फ़्रेम (
-1,-5) का उपयोग परिवर्तन/प्रवृत्ति पहचान के लिए करें।एक धीमे, विलंबित सिग्नल को उस फ़्रेम के साथ संरेखित करें जिससे वह संबंधित है।
याद रखें कि N फ़्रेम पहले कोई मान क्या था (जैसे, 10 फ़्रेम पहले प्रमुख रंग)।
आवश्यकताएँ और सीमाएँ
ऑफ़सेटहोना चाहिए<= 0. धनात्मक ऑफ़सेट अस्वीकार किए जाते हैं।|offset|256 से अधिक नहीं हो सकता। प्रत्येक बफ़र किया गया फ़्रेम मेमोरी में रखा जाता है, इसलिए किसी इमेज स्ट्रीम को बड़े ऑफ़सेट से विलंबित करना महंगा है (~1080p पर प्रति फ़्रेम ~6 MB, ~4K पर ~25 MB)। जहाँ संभव हो, पूर्ण छवि की बजाय किसी छोटे व्युत्पन्न मान को विलंबित करना बेहतर है।पिछले ऑफ़सेट हर निष्पादन संदर्भ में काम करते हैं; कोई आउटपुट विलंब नहीं जोड़ा जाता।
स्थिति प्रोसेस मेमोरी में द्वारा कुंजीबद्ध रखी जाती है
video_identifier; यह स्टेटलेस/मल्टी-रेप्लिका रिमोट HTTP रनटाइम पर कमजोर पड़ती है।अधिकतम 16 स्ट्रीमों को एक साथ ट्रैक किया जाता है; उसके बाद सबसे कम हाल में देखी गई स्ट्रीम का बफ़र हटा दिया जाता है।
एक स्ट्रीम जिसकी
frame_numberपुनः आरंभ होती है (जैसे reconnect पर) उसका बफ़र साफ़ कर दिया जाता है।स्थिति वर्कफ़्लो के जीवनकाल तक बनी रहती है और पुनः आरंभ पर रीसेट हो जाती है।
मान उपलब्ध नहीं होते (लौटाते हुए
default_value) जब तक कि अनुरोधित तक पहुँचने के लिए पर्याप्त फ़्रेम संसाधित न हो जाएँ|offset|गहराई।जब
ऑफ़सेटको एक रनटाइम चयनकर्ता से जोड़ा जाता है, तो बफ़र का आकार सबसे बड़े के अनुसार तय किया जाता है|offset|जो अब तक स्ट्रीम पर देखा गया है, इसलिए उथले और गहरे ऑफ़सेट के बीच अदला-बदली करने से गहरा इतिहास उपलब्ध बना रहता है। स्ट्रीम के बीच में ऑफ़सेट बढ़ाने पर गहरे फ़्रेम केवल तभी उपलब्ध होते हैं जब पर्याप्त नए फ़्रेम बफ़र हो जाएँ।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/frame_delay@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
ऑफ़सेट
int
अतीत में सापेक्ष फ़्रेम ऑफ़सेट। <= 0 होना चाहिए: जैसे -1 पिछला फ़्रेम है, -10 दस फ़्रेम पहले है, 0 वर्तमान फ़्रेम है। -256 तक सीमित, क्योंकि प्रत्येक बफ़र किया गया फ़्रेम मेमोरी में रखा जाता है..
✅
default_value
Optional[bool, float, int, str]
जब अनुरोधित फ़्रेम बफ़र में (अभी तक) उपलब्ध न हो, तब लौटाया जाने वाला मान..
❌
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
रनटाइम संगतता
सॉफ्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन दूरस्थ; इनपुट वीडियो : ब्लॉक प्रति-वीडियो स्थिति को प्रक्रिया मेमोरी में बनाए रखता है (video_metadata.video_identifier द्वारा कुंजीबद्ध)। स्टेटलेस या मल्टी-रिप्लिका HTTP रनटाइम्स पर दूरस्थ स्टेप निष्पादन के साथ, क्रमिक अनुरोधों को अलग-अलग वर्कर प्रक्रियाएँ सर्व कर सकती हैं, इसलिए कॉल्स के बीच स्थिति रीसेट हो जाती है और आउटपुट ट्रैकिंग / काउंटिंग / एग्रीगेशन के लिए अर्थहीन हो जाता है। स्थिर फ़्रेम-से-फ़्रेम परिणामों के लिए एक स्थायी WebRTC सत्र में स्थानीय स्टेप निष्पादन का उपयोग करें।
सॉफ्ट - इनपुट छवि : ब्लॉक वीडियो या दोहराए गए-फ़्रेम वर्कफ़्लो से समयगत संदर्भ पर निर्भर करता है। एक स्थिर छवि/फ़ोटो के साथ, ट्रैक करने, तुलना करने, समेकित करने या दृश्यीकृत करने के लिए कोई अर्थपूर्ण इतिहास नहीं होता, इसलिए ब्लॉक बहुत कम या कोई लाभ नहीं देता।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार फ़्रेम विलंब संस्करण v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवि(छवि): बफ़र को अनुक्रमित करने के लिए उपयोग किए जाने वाले वीडियो मेटाडेटा (फ़्रेम संख्या और स्ट्रीम पहचानकर्ता) प्रदान करने वाला छवि / वीडियो फ़्रेम..डेटा(Union[list_of_values,छवि,instance_segmentation_prediction,*,keypoint_detection_prediction,object_detection_prediction]): विलंबित किया जाने वाला मान। यह डिटेक्शन, संख्याएँ, स्ट्रिंग्स, चित्र, या कोई अन्य वर्कफ़्लो आउटपुट हो सकता है..ऑफ़सेट(पूर्णांक): अतीत में सापेक्ष फ़्रेम ऑफ़सेट। <= 0 होना चाहिए: जैसे -1 पिछला फ़्रेम है, -10 दस फ़्रेम पहले है, 0 वर्तमान फ़्रेम है। -256 तक सीमित, क्योंकि प्रत्येक बफ़र किया गया फ़्रेम मेमोरी में रखा जाता है..
अंतिम अपडेट
क्या यह उपयोगी था?