> 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/advanced-blocks/detection-event-log.md).

# डिटेक्शन इवेंट लॉग

यह ब्लॉक ट्रैक किए गए ऑब्जेक्ट्स से डिटेक्शन इवेंट्स का लॉग बनाए रखता है। प्रत्येक ट्रैक किए गए ऑब्जेक्ट के लिए यह रिकॉर्ड करता है: class name, पहली और आखिरी बार देखे गए फ़्रेम नंबर, पूर्ण वॉल-क्लॉक टाइमस्टैम्प (frame\_timestamp मेटाडेटा से निकाले गए Unix epoch फ़्लोट, या fallback के रूप में time.time()), और वीडियो शुरू होने के बाद से सेकंड में सापेक्ष टाइमस्टैम्प। ऑब्जेक्ट्स को 'pending' से 'logged' स्थिति में ले जाने से पहले न्यूनतम संख्या के फ़्रेमों (frame\_threshold) तक देखा जाना चाहिए। stale events (stale\_frames फ़्रेमों तक नहीं देखे गए) को आवधिक सफ़ाई (हर flush\_interval फ़्रेम) के दौरान हटाया जाता है। जब कोई logged इवेंट stale हो जाता है, तो उसे complete\_events आउटपुट में प्रेषित किया जाता है, जिसमें उन ऑब्जेक्ट्स के लिए पूर्ण इवेंट डेटा होता है जिन्हें लॉग किए जाने के लिए पर्याप्त समय तक ट्रैक किया गया था और जो तब से दृश्य छोड़ चुके हैं। reference\_timestamp पैरामीटर अप्रचलित है और अब उपयोग नहीं किया जाता।

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

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

### गुण

| **नाम**               | **प्रकार** | **विवरण**                                                                                                                                     | संदर्भ |
| --------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------ |
| `name`                | `str`      | इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..                                                                                             | ❌      |
| `frame_threshold`     | `int`      | किसी ऑब्जेक्ट को लॉग किए जाने से पहले जितने फ़्रेमों तक देखा जाना चाहिए..                                                                     | ✅      |
| `flush_interval`      | `int`      | पुराने इवेंट्स के लिए सफ़ाई ऑपरेशन कितनी बार (फ़्रेमों में) चलाना है..                                                                        | ✅      |
| `stale_frames`        | `int`      | इन फ़्रेमों तक नहीं देखे गए इवेंट्स हटाएँ..                                                                                                   | ✅      |
| `reference_timestamp` | `float`    | अप्रचलित, अब उपयोग नहीं किया जाता। पूर्ण टाइमस्टैम्प अब सीधे frame\_timestamp मेटाडेटा से लिए जाते हैं (या fallback के रूप में time.time()).. | ✅      |
| `fallback_fps`        | `float`    | जब वीडियो मेटाडेटा FPS जानकारी नहीं देता, तब उपयोग करने के लिए फ़ॉलबैक FPS। सापेक्ष टाइमस्टैम्प की गणना के लिए उपयोग किया जाता है..           | ✅      |

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

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

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

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

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

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

<details>

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

* इनपुट
  * `छवि` ([*`छवि`*](/workflows/hi/developer-guide/developer-guide/kinds/image.md)): वीडियो मेटाडेटा (फ़्रेम संख्या, टाइमस्टैम्प) के लिए छवि का संदर्भ।
  * `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)*]*): byte tracker से ट्रैक किए गए डिटेक्शन्स (tracker\_id होना चाहिए)..
  * `frame_threshold` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md)): किसी ऑब्जेक्ट को लॉग किए जाने से पहले जितने फ़्रेमों तक देखा जाना चाहिए..
  * `flush_interval` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md)): पुराने इवेंट्स के लिए सफ़ाई ऑपरेशन कितनी बार (फ़्रेमों में) चलाना है..
  * `stale_frames` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md)): इन फ़्रेमों तक नहीं देखे गए इवेंट्स हटाएँ..
  * `reference_timestamp` ([*`float`*](/workflows/hi/developer-guide/developer-guide/kinds/float.md)): अप्रचलित, अब उपयोग नहीं किया जाता। पूर्ण टाइमस्टैम्प अब सीधे frame\_timestamp मेटाडेटा से लिए जाते हैं (या time.time() fallback के रूप में)..
  * `fallback_fps` ([*`float`*](/workflows/hi/developer-guide/developer-guide/kinds/float.md)): जब वीडियो मेटाडेटा FPS जानकारी नहीं देता, तब उपयोग करने के लिए फ़ॉलबैक FPS। सापेक्ष टाइमस्टैम्प की गणना के लिए उपयोग किया जाता है..
* आउटपुट
  * `event_log` ([`शब्दकोश`](/workflows/hi/developer-guide/developer-guide/kinds/dictionary.md)): शब्दकोश।
  * `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)*]*): यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स वाली प्रेडिक्शन `object_detection_prediction` या यदि sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और सेगमेंटेशन मास्क वाली प्रेडिक्शन `instance_segmentation_prediction`.
  * `total_logged` ([`पूर्णांक`](/workflows/hi/developer-guide/developer-guide/kinds/integer.md)): पूर्णांक मान।
  * `total_pending` ([`पूर्णांक`](/workflows/hi/developer-guide/developer-guide/kinds/integer.md)): पूर्णांक मान।
  * `complete_events` ([`शब्दकोश`](/workflows/hi/developer-guide/developer-guide/kinds/dictionary.md)): शब्दकोश।

</details>

<details>

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

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/detection_event_log@v1",
	    "image": "$inputs.image",
	    "detections": "$steps.byte_tracker.tracked_detections",
	    "frame_threshold": 5,
	    "flush_interval": 30,
	    "stale_frames": 150,
	    "reference_timestamp": 1726570875.0,
	    "fallback_fps": 1.0
	}
```

</details>
