> 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/motion-detection.md).

# गति पहचान

OpenCV के बैकग्राउंड सब्ट्रैक्शन एल्गोरिदम का उपयोग करके वीडियो स्ट्रीम में गति का पता लगाएँ।

## यह ब्लॉक कैसे काम करता है

यह ब्लॉक वीडियो फ़्रेमों में गति का पता लगाने के लिए बैकग्राउंड सब्ट्रैक्शन (विशेष रूप से MOG2 एल्गोरिदम) का उपयोग करता है। यह ब्लॉक बैकग्राउंड मॉडल बनाने और गति पैटर्न को ट्रैक करने के लिए फ़्रेमों के बीच स्थिति बनाए रखता है:

1. **बैकग्राउंड मॉडल आरंभ करता है** - पहले फ्रेम पर, निर्दिष्ट history और threshold पैरामीटर का उपयोग करके एक बैकग्राउंड सब्ट्रैक्टर बनाता है
2. **प्रत्येक फ्रेम को प्रोसेस करता है** - सीखे गए बैकग्राउंड मॉडल से भिन्न पिक्सल्स की पहचान करने के लिए बैकग्राउंड सब्ट्रैक्शन लागू करता है
3. **शोर फ़िल्टर करता है** - शोर हटाने और आस-पास के गति क्षेत्रों को एक सुसंगत कॉन्टूर में जोड़ने के लिए मॉर्फोलॉजिकल ऑपरेशनों को लागू करता है
4. **गति क्षेत्रों को निकालता है** - गति क्षेत्रों का प्रतिनिधित्व करने वाले कॉन्टूर ढूँढता है, उन्हें न्यूनतम आकार के आधार पर फ़िल्टर करता है, और वैकल्पिक रूप से उन्हें डिटेक्शन ज़ोन तक सीमित करता है
5. **कॉन्टूरों को सरल बनाता है** - डिटेक्शन डेटा को प्रबंधनीय बनाए रखने के लिए कॉन्टूर की जटिलता कम करता है
6. **आउटपुट उत्पन्न करता है** - बाउंडिंग बॉक्स के साथ ऑब्जेक्ट डिटेक्शन प्रेडिक्शन बनाता है, गति की स्थिति निर्धारित करता है, गति शुरू होने पर अलार्म ट्रिगर करता है, और गति क्षेत्र पॉलीगॉन प्रदान करता है

यह ब्लॉक फ़्रेमों के बीच गति की स्थिति को ट्रैक करता है - **अलार्म** आउटपुट केवल तब true होता है जब गति का पता न लगने से पता लगने में परिवर्तन होता है, जिससे यह तब क्रियाएँ ट्रिगर करने के लिए उपयोगी होता है जब गति पहली बार दिखाई देती है।

## सामान्य उपयोग के मामले

* **सुरक्षा निगरानी**: गतिविधि का पता चलने पर अलर्ट, रिकॉर्डिंग या सूचनाएँ ट्रिगर करने के लिए निगरानी कैमरों में गति का पता लगाएँ
* **संसाधन अनुकूलन**: कम्प्यूटेशनल संसाधन बचाने के लिए केवल तब महंगे इन्फरेंस ऑपरेशनों (जैसे, ऑब्जेक्ट डिटेक्शन, वर्गीकरण) को चलाएँ जब गति का पता चले
* **गतिविधि पहचान**: उपस्थिति ट्रैक करने, प्रवेश/निकास घटनाओं की पहचान करने, या अनधिकृत पहुँच का पता लगाने के लिए गति के लिए क्षेत्रों की निगरानी करें
* **वीडियो विश्लेषण**: वीडियो स्ट्रीमों का विश्लेषण करके गति पैटर्न पहचानें, गतिविधि स्तर ट्रैक करें, या निगरानी किए गए क्षेत्रों में असामान्यताओं का पता लगाएँ
* **स्मार्ट रिकॉर्डिंग**: सतत रिकॉर्डिंग की तुलना में स्टोरेज आवश्यकता कम करने के लिए, गति का पता चलने पर वीडियो रिकॉर्डिंग या स्नैपशॉट कैप्चर ट्रिगर करें
* **ज़ोन मॉनिटरिंग**: प्रासंगिक क्षेत्रों पर गति पहचान केंद्रित करने और व्यस्त लेकिन अप्रासंगिक क्षेत्रों को अनदेखा करने के लिए डिटेक्शन ज़ोन्स का उपयोग करके फ़्रेम के भीतर विशिष्ट क्षेत्रों की निगरानी करें

## अन्य ब्लॉक्स से कनेक्ट करना

इस ब्लॉक से प्राप्त गति पहचान आउटपुट को इससे जोड़ा जा सकता है:

* **सशर्त लॉजिक ब्लॉक्स** (उदा., Continue If) केवल तब वर्कफ़्लो चरण निष्पादित करने के लिए जब गति का पता चले या अलार्म ट्रिगर हों
* **ऑब्जेक्ट डिटेक्शन ब्लॉक्स** कम्प्यूटेशनल संसाधन बचाने के लिए केवल गति वाले फ़्रेमों पर डिटेक्शन मॉडल चलाने के लिए
* **सूचना ब्लॉक** (उदा., Email Notification, Slack Notification) गति का पता चलने या अलार्म ट्रिगर होने पर अलर्ट भेजने के लिए
* **डेटा स्टोरेज ब्लॉक्स** (उदा., Roboflow Dataset Upload, CSV Formatter) विश्लेषण के लिए गति घटनाएँ, टाइमस्टैम्प, और डिटेक्शन डेटा लॉग करने के लिए
* **विज़ुअलाइज़ेशन ब्लॉक्स** पता चली गति दिखाने वाले फ़्रेमों पर गति ज़ोन्स, बाउंडिंग बॉक्स, या एनोटेशन बनाने के लिए
* **फ़िल्टर ब्लॉक** डाउनस्ट्रीम प्रोसेसिंग को भेजने से पहले गति स्थिति के आधार पर छवियों या डेटा को फ़िल्टर करने के लिए

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

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

### गुण

| **नाम**                     | **प्रकार**              | **विवरण**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | संदर्भ |
| --------------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ |
| `name`                      | `str`                   | इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | ❌      |
| `minimum_contour_area`      | `int`                   | किसी गति क्षेत्र का पता लगाने के लिए न्यूनतम क्षेत्रफल, वर्ग पिक्सेल में। इस सीमा से छोटे कॉन्टूर शोर, छोटी छायाएँ, या छोटे पिक्सेल बदलावों को अनदेखा करने के लिए फ़िल्टर कर दिए जाते हैं। कम मान संवेदनशीलता बढ़ाते हैं लेकिन अधिक false positives का पता लगा सकते हैं (उदा., बहुत संवेदनशील पहचान के लिए 100, केवल बड़े ऑब्जेक्ट्स के लिए 500)। डिफ़ॉल्ट 200 वर्ग पिक्सेल है..                                                                                                                                                                                                                                                                           | ✅      |
| `morphological_kernel_size` | `int`                   | शोर को फ़िल्टर करने और पास-पास के गति क्षेत्रों को जोड़ने के लिए उपयोग किए जाने वाले मॉर्फोलॉजिकल कर्नेल का आकार, पिक्सेल में। बड़े मान अधिक दूर के गति क्षेत्रों को एकल कॉन्टूर में मिला देते हैं, लेकिन अलग-अलग ऑब्जेक्ट्स को भी मिला सकते हैं। छोटे मान अधिक विवरण बनाए रखते हैं, लेकिन खंडित डिटेक्शन छोड़ सकते हैं। कर्नेल दीर्घवृत्ताकार आकार का उपयोग करता है। डिफ़ॉल्ट 3 पिक्सेल है..                                                                                                                                                                                                                                                              | ✅      |
| `थ्रेशहोल्ड`                | `int`                   | MOG2 बैकग्राउंड सब्ट्रैक्शन एल्गोरिद्म द्वारा उपयोग की जाने वाली वर्गित महालनोबिस दूरी के लिए थ्रेशहोल्ड मान। यह मोशन के प्रति संवेदनशीलता को नियंत्रित करता है - छोटे मान संवेदनशीलता बढ़ाते हैं (छोटे परिवर्तनों का पता लगाते हैं) लेकिन अधिक फ़ॉल्स पॉज़िटिव उत्पन्न कर सकते हैं, जबकि बड़े मान संवेदनशीलता घटाते हैं (केवल महत्वपूर्ण परिवर्तनों का पता लगाते हैं) लेकिन सूक्ष्म मोशन छूट सकता है। अनुशंसित सीमा 8-32 है। डिफ़ॉल्ट 16 है..                                                                                                                                                                                                             | ✅      |
| `इतिहास`                    | `int`                   | बैकग्राउंड मॉडल बनाने के लिए उपयोग किए गए पिछले फ्रेम्स की संख्या। यह नियंत्रित करता है कि बैकग्राउंड परिवर्तनों के अनुसार कितनी तेज़ी से अनुकूलित होता है - बड़े मान (जैसे, 50-100) एक अधिक स्थिर बैकग्राउंड मॉडल बनाते हैं जो अस्थायी परिवर्तनों के प्रति कम संवेदनशील होता है, लेकिन स्थायी बैकग्राउंड परिवर्तनों के अनुसार धीरे अनुकूलित होता है। छोटे मान (जैसे, 10-20) तेज़ अनुकूलन की अनुमति देते हैं, लेकिन यदि गतिशील ऑब्जेक्ट्स चलना बंद कर दें, तो उन्हें बैकग्राउंड के रूप में मान सकते हैं। डिफ़ॉल्ट 30 फ्रेम्स है..                                                                                                                          | ✅      |
| `detection_zone`            | `Union[List[Any], str]` | फ़्रेम के किसी विशिष्ट क्षेत्र तक गति पहचान सीमित करने के लिए वैकल्पिक बहुभुज ज़ोन। गति केवल इसी ज़ोन के भीतर पहचानी जाती है, बाहर की गतिविधि को अनदेखा किया जाता है। प्रारूप: \[\[x1, y1], \[x2, y2], \[x3, y3], ...] जहाँ निर्देशांक पिक्सेल में होते हैं। बहुभुज में 3 से अधिक बिंदु होने चाहिए। इसे सूची, JSON स्ट्रिंग, या अन्य ब्लॉकों के ज़ोन आउटपुट को संदर्भित करने वाले सेलेक्टर के रूप में प्रदान किया जा सकता है। विशिष्ट क्षेत्रों (उदा., दरवाज़े, खिड़कियाँ, प्रतिबंधित क्षेत्र) पर ध्यान केंद्रित करने और व्यस्त लेकिन अप्रासंगिक क्षेत्रों को अनदेखा करने के लिए उपयोगी। यदि प्रदान नहीं किया गया, तो पूरी फ़्रेम में गति पहचानी जाती है.. | ✅      |
| `suppress_first_detections` | `bool`                  | यदि true है, तो बैकग्राउंड मॉडल को पर्याप्त फ़्रेमों (history पैरामीटर में निर्दिष्ट) के साथ आरंभ होने तक गति पहचान को दबा देता है। इससे शुरुआती फ़्रेमों से होने वाले false positives रोके जाते हैं, जहाँ बैकग्राउंड मॉडल ने अभी दृश्य सीखना शुरू किया होता है। जब false होता है, तो ब्लॉक तुरंत गति पहचानने का प्रयास करता है, जिससे आरंभिकरण के दौरान अविश्वसनीय परिणाम मिल सकते हैं। डिफ़ॉल्ट true है (अधिकांश उपयोग मामलों के लिए अनुशंसित)..                                                                                                                                                                                                         | ✅      |

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

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

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

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

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

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

<details>

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

* इनपुट
  * `छवि` ([*`छवि`*](/workflows/hi/developer-guide/developer-guide/kinds/image.md)): विश्लेषण के लिए इनपुट छवि या वीडियो फ़्रेम। ब्लॉक बैकग्राउंड मॉडल बनाने के लिए फ़्रेमों को क्रमिक रूप से प्रोसेस करता है - प्रत्येक फ़्रेम बैकग्राउंड मॉडल को अपडेट करता है और सीखे गए बैकग्राउंड पैटर्न के सापेक्ष गति का पता लगाता है। वर्कफ़्लो इनपुट या पिछले चरणों से जोड़ा जा सकता है..
  * `minimum_contour_area` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md)): किसी गति क्षेत्र का पता लगाने के लिए न्यूनतम क्षेत्रफल, वर्ग पिक्सेल में। इस सीमा से छोटे कॉन्टूर शोर, छोटी छायाएँ, या छोटे पिक्सेल बदलावों को अनदेखा करने के लिए फ़िल्टर कर दिए जाते हैं। कम मान संवेदनशीलता बढ़ाते हैं लेकिन अधिक false positives का पता लगा सकते हैं (उदा., बहुत संवेदनशील पहचान के लिए 100, केवल बड़े ऑब्जेक्ट्स के लिए 500)। डिफ़ॉल्ट 200 वर्ग पिक्सेल है..
  * `morphological_kernel_size` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md)): शोर को फ़िल्टर करने और पास-पास के गति क्षेत्रों को जोड़ने के लिए उपयोग किए जाने वाले मॉर्फोलॉजिकल कर्नेल का आकार, पिक्सेल में। बड़े मान अधिक दूर के गति क्षेत्रों को एकल कॉन्टूर में मिला देते हैं, लेकिन अलग-अलग ऑब्जेक्ट्स को भी मिला सकते हैं। छोटे मान अधिक विवरण बनाए रखते हैं, लेकिन खंडित डिटेक्शन छोड़ सकते हैं। कर्नेल दीर्घवृत्ताकार आकार का उपयोग करता है। डिफ़ॉल्ट 3 पिक्सेल है..
  * `थ्रेशहोल्ड` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md)): MOG2 बैकग्राउंड सब्ट्रैक्शन एल्गोरिद्म द्वारा उपयोग की जाने वाली वर्गित महालनोबिस दूरी के लिए थ्रेशहोल्ड मान। यह मोशन के प्रति संवेदनशीलता को नियंत्रित करता है - छोटे मान संवेदनशीलता बढ़ाते हैं (छोटे परिवर्तनों का पता लगाते हैं) लेकिन अधिक फ़ॉल्स पॉज़िटिव उत्पन्न कर सकते हैं, जबकि बड़े मान संवेदनशीलता घटाते हैं (केवल महत्वपूर्ण परिवर्तनों का पता लगाते हैं) लेकिन सूक्ष्म मोशन छूट सकता है। अनुशंसित सीमा 8-32 है। डिफ़ॉल्ट 16 है..
  * `इतिहास` ([*`पूर्णांक`*](/workflows/hi/developer-guide/developer-guide/kinds/integer.md)): बैकग्राउंड मॉडल बनाने के लिए उपयोग किए गए पिछले फ्रेम्स की संख्या। यह नियंत्रित करता है कि बैकग्राउंड परिवर्तनों के अनुसार कितनी तेज़ी से अनुकूलित होता है - बड़े मान (जैसे, 50-100) एक अधिक स्थिर बैकग्राउंड मॉडल बनाते हैं जो अस्थायी परिवर्तनों के प्रति कम संवेदनशील होता है, लेकिन स्थायी बैकग्राउंड परिवर्तनों के अनुसार धीरे अनुकूलित होता है। छोटे मान (जैसे, 10-20) तेज़ अनुकूलन की अनुमति देते हैं, लेकिन यदि गतिशील ऑब्जेक्ट्स चलना बंद कर दें, तो उन्हें बैकग्राउंड के रूप में मान सकते हैं। डिफ़ॉल्ट 30 फ्रेम्स है..
  * `detection_zone` (*Union\[*[*`ज़ोन`*](/workflows/hi/developer-guide/developer-guide/kinds/zone.md)*,* [*`list_of_values`*](/workflows/hi/developer-guide/developer-guide/kinds/list-of-values.md)*]*): फ़्रेम के किसी विशिष्ट क्षेत्र तक गति पहचान सीमित करने के लिए वैकल्पिक बहुभुज ज़ोन। गति केवल इसी ज़ोन के भीतर पहचानी जाती है, बाहर की गतिविधि को अनदेखा किया जाता है। प्रारूप: \[\[x1, y1], \[x2, y2], \[x3, y3], ...] जहाँ निर्देशांक पिक्सेल में होते हैं। बहुभुज में 3 से अधिक बिंदु होने चाहिए। इसे सूची, JSON स्ट्रिंग, या अन्य ब्लॉकों के ज़ोन आउटपुट को संदर्भित करने वाले सेलेक्टर के रूप में प्रदान किया जा सकता है। विशिष्ट क्षेत्रों (उदा., दरवाज़े, खिड़कियाँ, प्रतिबंधित क्षेत्र) पर ध्यान केंद्रित करने और व्यस्त लेकिन अप्रासंगिक क्षेत्रों को अनदेखा करने के लिए उपयोगी। यदि प्रदान नहीं किया गया, तो पूरी फ़्रेम में गति पहचानी जाती है..
  * `suppress_first_detections` ([*`boolean`*](/workflows/hi/developer-guide/developer-guide/kinds/boolean.md)): यदि true है, तो बैकग्राउंड मॉडल को पर्याप्त फ़्रेमों (history पैरामीटर में निर्दिष्ट) के साथ आरंभ होने तक गति पहचान को दबा देता है। इससे शुरुआती फ़्रेमों से होने वाले false positives रोके जाते हैं, जहाँ बैकग्राउंड मॉडल ने अभी दृश्य सीखना शुरू किया होता है। जब false होता है, तो ब्लॉक तुरंत गति पहचानने का प्रयास करता है, जिससे आरंभिकरण के दौरान अविश्वसनीय परिणाम मिल सकते हैं। डिफ़ॉल्ट true है (अधिकांश उपयोग मामलों के लिए अनुशंसित)..
* आउटपुट
  * `गति` ([`boolean`](/workflows/hi/developer-guide/developer-guide/kinds/boolean.md)): बूलियन फ़्लैग.
  * `अलार्म` ([`boolean`](/workflows/hi/developer-guide/developer-guide/kinds/boolean.md)): बूलियन फ़्लैग.
  * `detections` ([`object_detection_prediction`](/workflows/hi/developer-guide/developer-guide/kinds/object-detection-prediction.md)): sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स के साथ पूर्वानुमान।
  * `गति_क्षेत्र` ([`list_of_values`](/workflows/hi/developer-guide/developer-guide/kinds/list-of-values.md)): किसी भी प्रकार के मानों की सूची।

</details>

<details>

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

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/motion_detection@v1",
	    "image": "$inputs.image",
	    "minimum_contour_area": 200,
	    "morphological_kernel_size": 3,
	    "threshold": 16,
	    "history": 30,
	    "detection_zone": "<block_does_not_provide_example>",
	    "suppress_first_detections": true
	}
```

</details>
