Vertex AI विज़न मोशन फ़िल्टर

1. मकसद

खास जानकारी

इस कोडलैब में, मोशन फ़िल्टर करने की सुविधा के साथ वीडियो भेजने के बारे में बताने के लिए, एक Vertex AI Vision ऐप्लिकेशन बनाने का तरीका बताया गया है. इस ट्यूटोरियल में, हम मोशन फ़िल्टर कॉन्फ़िगरेशन में मौजूद अलग-अलग पैरामीटर के बारे में जानेंगे:

  • हलचल का पता लगाने वाली सुविधा की संवेदनशीलता
  • इवेंट की कम से कम अवधि
  • लुक-बैक विंडो
  • कूल-डाउन टाइम
  • हलचल का पता लगाने वाली सुविधा का ज़ोन

आपको क्या सीखने को मिलेगा

  • स्ट्रीमिंग के लिए वीडियो अपलोड करने का तरीका
  • मोशन फ़िल्टर में उपलब्ध अलग-अलग सुविधाएं और उन्हें इस्तेमाल करने का तरीका
  • मोशन फ़िल्टर के आंकड़े कहां देखें
  • अपने वीडियो के हिसाब से सेटिंग में बदलाव करने का तरीका

2. शुरू करने से पहले

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, Google Cloud प्रोजेक्ट बनाएं या कोई प्रोजेक्ट चुनें. ध्यान दें: अगर आपको इस प्रोसेस में बनाए गए संसाधनों को सेव नहीं करना है, तो मौजूदा प्रोजेक्ट चुनने के बजाय एक नया प्रोजेक्ट बनाएं. यह तरीका पूरा करने के बाद, प्रोजेक्ट को मिटाया जा सकता है. इससे प्रोजेक्ट से जुड़े सभी संसाधन हट जाएंगे. प्रोजेक्ट चुनने वाले टूल पर जाएं
  2. पक्का करें कि आपके क्लाउड प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें.
  3. Compute Engine और Vision AI API चालू करें. एपीआई चालू करना

सेवा खाता बनाएं:

  1. Google Cloud Console में, सेवा खाता बनाएं पेज पर जाएं. 'सेवा खाता बनाएं' पर जाएं
  2. अपना प्रोजेक्ट चुनें.
  3. सेवा खाते का नाम फ़ील्ड में, कोई नाम डालें. Google Cloud Console, इस नाम के आधार पर सेवा खाता आईडी फ़ील्ड में जानकारी भरता है. सेवा खाते की जानकारी फ़ील्ड में, जानकारी डालें. उदाहरण के लिए, Quickstart के लिए सेवा खाता.
  4. बनाएं और जारी रखें पर क्लिक करें.
  5. अपने प्रोजेक्ट का ऐक्सेस देने के लिए, अपने सेवा खाते को ये भूमिकाएं असाइन करें: Vision AI > Vision AI Editor, Compute Engine > Compute Instance Admin (beta), Storage > Storage Object Viewer † . कोई भूमिका चुनें सूची में, कोई भूमिका चुनें. अन्य भूमिकाएं जोड़ने के लिए, कोई दूसरी भूमिका जोड़ें पर क्लिक करें और हर भूमिका को जोड़ें. ध्यान दें: भूमिका फ़ील्ड से यह तय होता है कि आपका सेवा खाता, आपके प्रोजेक्ट में किन संसाधनों को ऐक्सेस कर सकता है. इन भूमिकाओं को बाद में रद्द किया जा सकता है या अतिरिक्त भूमिकाएं दी जा सकती हैं. प्रोडक्शन का काम करते समय, मालिक, एडिटर या दर्शक की भूमिकाएं न दें. इसके बजाय, अपनी ज़रूरतों के हिसाब से पहले से तय की गई भूमिका या कस्टम भूमिका असाइन करें.
  6. जारी रखें पर क्लिक करें.
  7. सेवा खाता बनाने की प्रोसेस पूरी करने के लिए, हो गया पर क्लिक करें. अपने ब्राउज़र की विंडो को बंद न करें. इसका इस्तेमाल अगले चरण में किया जाएगा.

सेवा खाते की कुंजी बनाएं:

  1. Google Cloud Console में, बनाए गए सेवा खाते के ईमेल पते पर क्लिक करें.
  2. कुंजियां पर क्लिक करें.
  3. कुंजी जोड़ें पर क्लिक करें. इसके बाद, नई कुंजी बनाएं पर क्लिक करें.
  4. बनाएं पर क्लिक करें. आपके कंप्यूटर पर JSON फ़ाइल डाउनलोड हो जाएगी.
  5. बंद करें पर क्लिक करें.
  6. Google Cloud CLI को इंस्टॉल करें और इस्तेमाल करना शुरू करें.

† यह भूमिका सिर्फ़ तब ज़रूरी होती है, जब आपको Cloud Storage बकेट से किसी सैंपल वीडियो फ़ाइल को कॉपी करना हो.

3. मोशन फ़िल्टर

मोशन फ़िल्टर, मोशन और प्रॉडक्ट वीडियो सेगमेंट कैप्चर करता है. इनमें मोशन इवेंट शामिल होते हैं. मोशन सेंसिटिविटी, इवेंट की कम से कम अवधि, लुकबैक विंडो, कूल डाउन पीरियड, और मोशन डिटेक्शन ज़ोन को अडजस्ट करके, उपयोगकर्ता अपनी ज़रूरतों के हिसाब से फ़िल्टर को कॉन्फ़िगर कर सकता है.

मोशन फ़िल्टर का कॉन्फ़िगरेशन

मोशन फ़िल्टर में, पसंद के मुताबिक बनाने के लिए पांच कॉन्फ़िगरेशन उपलब्ध हैं.

  1. मोशन सेंसर की संवेदनशीलता: मोशन सेंसर को कितनी हलचल पर ट्रिगर होना चाहिए.
  2. इवेंट की कम से कम अवधि: मोशन इवेंट को कम से कम इस अवधि तक कैप्चर किया जाएगा.
  3. लुकबैक विंडो: मोशन इवेंट का पता चलने से पहले, वीडियो रिकॉर्डिंग कितने समय तक होनी चाहिए.
  4. कूल डाउन पीरियड: मोशन इवेंट खत्म होने के बाद, तय की गई अवधि के लिए कूलडाउन पीरियड शुरू हो जाएगा. कूल डाउन पीरियड के दौरान, मोशन इवेंट ट्रिगर नहीं होंगे.
  5. हलचल का पता लगाने वाली सुविधा का ज़ोन: उपयोगकर्ता की ओर से कॉन्फ़िगर किया गया ज़ोन. इससे यह तय किया जाता है कि हलचल का पता लगाने वाली सुविधा कहां काम करेगी. (इसके बारे में बाद के सेक्शन में ज़्यादा जानकारी दी जाएगी)

हलचल के लिए संवेदनशीलता

vaictl कमांड में motion_detection_sensitivity फ़्लैग का इस्तेमाल करें.
String. डिफ़ॉल्ट मीडियम. कम, सामान्य या ज़्यादा में से कोई विकल्प चुना जा सकता है.

हलचल का पता लगाने वाली सुविधा की संवेदनशीलता जितनी ज़्यादा होगी, यह उतनी ही ज़्यादा आवाज़ और छोटी-छोटी गतिविधियों के लिए संवेदनशील होगी. यह सेटिंग उन स्थितियों के लिए सुझाई जाती है जहां छोटे-छोटे ऑब्जेक्ट हिल रहे हों (जैसे, दूर से दिख रहे लोग) और रोशनी स्थिर हो.

वहीं दूसरी ओर, कम सेंसिटिविटी वाली सेटिंग में रोशनी से होने वाली रुकावट का असर कम पड़ता है. यह सेटिंग तब सबसे सही होती है, जब रोशनी में ज़्यादा रुकावट हो. जैसे, बाहर के माहौल में और कम क्वालिटी वाले वीडियो के लिए, जहां ज़्यादा आवाज़ें हो सकती हैं. यह सेटिंग, सभी सेटिंग में सबसे ज़्यादा फ़िल्टरिंग करती है. इसलिए, यह छोटे ऑब्जेक्ट की गतिविधियों को अनदेखा कर सकती है.

इवेंट की कम से कम अवधि

vaictl कमांड में min_event_length_in_seconds फ़्लैग का इस्तेमाल करें.
पूर्णांक. डिफ़ॉल्ट रूप से 10 सेकंड. इसकी रेंज 0 सेकंड से 3,600 सेकंड तक होती है.

मोशन इवेंट के वीडियो की कम से कम अवधि, जिसे फ़्रेम में मोशन इवेंट सेगमेंट का पता चलने के बाद पार्स किया जाएगा.

लुकबैक विंडो

vaictl कमांड में look_back_window_in_seconds फ़्लैग का इस्तेमाल करें.
पूर्णांक. डिफ़ॉल्ट रूप से तीन सेकंड. इसकी रेंज 0 सेकंड से 3,600 सेकंड तक होती है.

लुकबैक विंडो, हलचल का पता चलने से पहले कैश मेमोरी में सेव की गई अवधि होती है. यह तब काम आता है, जब हमें यह देखना हो कि मोशन इवेंट का पता चलने से कुछ सेकंड पहले फ़्रेम में क्या हो रहा था.

कूल डाउन पीरियड

vaictl कमांड में cool_down_period_in_seconds फ़्लैग का इस्तेमाल करें.
पूर्णांक. डिफ़ॉल्ट रूप से 300 सेकंड. इसकी रेंज 0 सेकंड से 3,600 सेकंड तक होती है.

कूल डाउन पीरियड वह समय होता है जब किसी मोशन इवेंट को कैप्चर करने के बाद, हलचल का पता लगाने वाली सुविधा कुछ समय के लिए रुक जाती है. कूल डाउन पीरियड के दौरान, हलचल का पता लगाने के लिए कोई भी कंप्यूटेशन नहीं किया जाएगा.

4. मोशन फ़िल्टर का सामान्य उदाहरण

Vaictl SDK का मैन्युअल

मोशन फ़िल्टर के साथ इनपुट स्ट्रीम के लिए vaictl मैन्युअल की जांच करने के लिए, नीचे दिए गए कमांड का इस्तेमाल करें.

vaictl send video-file applying motion-filter -h

सैंपल वीडियो तैयार करना

  1. gsutil cp कमांड का इस्तेमाल करके, सैंपल वीडियो कॉपी किया जा सकता है. इस वैरिएबल की जगह यह वैरिएबल डालें:
  • सोर्स: इस्तेमाल की जाने वाली वीडियो फ़ाइल की जगह. आपके पास अपनी वीडियो फ़ाइल का सोर्स (उदाहरण के लिए, gs://BUCKET_NAME/FILENAME.mp4) इस्तेमाल करने का विकल्प होता है. इसके अलावा, सैंपल वीडियो (gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4 )(लोगों और वाहनों वाला वीडियो, सोर्स) का इस्तेमाल भी किया जा सकता है
export SOURCE=gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4
gsutil cp $SOURCE .

एनवायरमेंट वैरिएबल तैयार करना

यहां दिए गए कमांड टेंप्लेट का इस्तेमाल करने के लिए, नीचे दिए गए एनवायरमेंट वैरिएबल सेट करें.

vaictl वैरिएबल

  • PROJECT_ID: यह आपके Google Cloud प्रोजेक्ट का आईडी होता है.
  • LOCATION_ID: यह आपकी जगह का आईडी है. उदाहरण के लिए, us-central1. ज़्यादा जानकारी के लिए, क्लाउड लोकेशन देखें.
  • LOCAL_FILE: यह लोकल वीडियो फ़ाइल का नाम होता है. उदाहरण के लिए, street_vehicles_people.mp4.
  • –loop फ़्लैग: ज़रूरी नहीं है. यह फ़ाइल के डेटा को लूप करता है, ताकि स्ट्रीमिंग का अनुभव मिल सके.
export PROJECT_ID=<Your Google Cloud project ID>
export LOCATION_ID=us-central1

मोशन फ़िल्टर वैरिएबल

  • MOTION_SENSITIVITY: इससे यह तय होता है कि हलचल का पता लगाने वाली सुविधा कितनी सटीक होगी.
  • MIN_EVENT_LENGTH: मोशन इवेंट की कम से कम अवधि.
  • LOOK_BACK_WINDOW: यह किसी मोशन इवेंट में पहली हलचल से पहले की अवधि होती है.
  • COOL_DOWN_PERIOD: यह वह अवधि होती है जब किसी मोशन इवेंट को कैप्चर किए जाने के बाद, हलचल का पता लगाने वाली सुविधा कुछ समय के लिए बंद हो जाती है.
export MOTION_SENSITIVITY=<low or medium or high>
export MIN_EVENT_LENGTH=<0-3600>
export LOOK_BACK_WINDOW=<0-3600>
export COOL_DOWN_PERIOD=<0-3600>

मोशन फ़िल्टर कमांड तैयार करना

इनपुट स्ट्रीम के साथ मोशन फ़िल्टर का इस्तेमाल करने के दो विकल्प हैं. पहला विकल्प, मोशन इवेंट को क्लाउड कंसोल में किसी स्ट्रीम पर भेजना है. दूसरा विकल्प, मोशन इवेंट को लोकल स्टोरेज में भेजना है.

Cloud Console को नतीजे भेजना

vaictl का इस्तेमाल करके, आउटपुट वीडियो डेटा को Cloud Console पर स्ट्रीम किया जा सकता है. सबसे पहले, Cloud Console में Vision AI API को चालू करें.

नई स्ट्रीम रजिस्टर करना

  1. Vertex AI Vision के बाएं पैनल में मौजूद, स्ट्रीम टैब पर क्लिक करें.
  2. 'रजिस्टर करें' पर क्लिक करें
  3. स्ट्रीम के नाम में motion-detection-stream डालें
  4. क्षेत्र में us-central1 डालें
  5. 'रजिस्टर करें' पर क्लिक करें

स्ट्रीम में नतीजे भेजे जा रहे हैं

इस कमांड से, किसी वीडियो फ़ाइल को स्ट्रीम किया जाता है. –loop फ़्लैग का इस्तेमाल करने पर, वीडियो को स्ट्रीम में तब तक लूप किया जाता है, जब तक कि कमांड को बंद नहीं किया जाता. हम इस कमांड को बैकग्राउंड जॉब के तौर पर चलाएंगे, ताकि यह स्ट्रीम होती रहे.

इसे बैकग्राउंड जॉब बनाने के लिए, शुरुआत में nohup और आखिर में & जोड़ें.

INPUT_VIDEO=street_vehicles_people.mp4

vaictl -p $PROJECT \
       -l $LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
  send video-file  --file-path $INPUT_VIDEO \
  applying motion-filter
         --motion-sensitivity=$MOTION_SENSITIVITY \
         --min-event-length=$MIN_EVENT_LENGTH \
         --lookback-length=$LOOK_BACK_WINDOW \
         --cooldown-length=$COOL_DOWN_PERIOD \
  to streams motion-detection-stream --loop

vaictl ingest ऑपरेशन शुरू करने और वीडियो के डैशबोर्ड में दिखने के बीच ~100 सेकंड लग सकते हैं.

स्ट्रीम का डेटा उपलब्ध होने के बाद, Vertex AI Vision डैशबोर्ड के स्ट्रीम टैब में जाकर, वीडियो फ़ीड देखा जा सकता है. इसके लिए, ट्रैफ़िक-स्ट्रीम स्ट्रीम को चुनें.

स्ट्रीम टैब पर जाएं

नतीजों को डिवाइस के स्टोरेज में भेजना

इस कमांड से, किसी वीडियो फ़ाइल को स्ट्रीम किया जाता है.

इसे बैकग्राउंड जॉब बनाने के लिए, शुरुआत में nohup और आखिर में & जोड़ें.

INPUT_VIDEO=street_vehicles_people.mp4
OUTPUT_PATH=<path_to_store_motion_events_on_local_disk>

nohup vaictl -p $PROJECT \
             -l $LOCATION_ID \
             -c application-cluster-0 \
             --service-endpoint visionai.googleapis.com \
  send video-file  --file-path $INPUT_VIDEO \
  applying motion-filter
         --motion-sensitivity=$MOTION_SENSITIVITY \
         --min-event-length=$MIN_EVENT_LENGTH \
         --lookback-length=$LOOK_BACK_WINDOW \
         --cooldown-length=$COOL_DOWN_PERIOD \
  to mp4file --mp4-file-path=$OUTPUT_PATH --loop

5. हलचल का पता लगाने वाली सुविधा का ज़ोन

इस सेक्शन में, हम मोशन डिटेक्शन ज़ोन के इस्तेमाल और इसे कॉन्फ़िगर करने के तरीके के बारे में जानेंगे. इस ज़ोन का इस्तेमाल, हलचल का पता लगाने वाली सुविधा को बेहतर बनाने के लिए किया जाता है. इसके लिए, उन जगहों से होने वाली गतिविधियों को छिपाया जाता है जिनमें आपकी दिलचस्पी नहीं है.

मोशन डिटेक्शन ज़ोन दो तरह के होते हैं: (1) पॉज़िटिव ज़ोन, जहां एनोटेट किए गए हिस्से में ही हलचल का पता लगाने वाली सुविधा काम करती है; (2) नेगेटिव ज़ोन, जहां एनोटेट किए गए हिस्से में होने वाली किसी भी गतिविधि को हलचल का पता लगाने वाली सुविधा अनदेखा करती है.

ज़ोन की व्याख्या

ज़ोन पॉलीगॉन के लिए निर्देशांक डालने के लिए, vaictl कमांड में फ़्लैग zone_annotation का इस्तेमाल करें.
String. ज़ोन के एनोटेशन के लिए डिफ़ॉल्ट रूप से खाली होता है.

ज़ोन एनोटेशन, उपयोगकर्ता से मिला स्ट्रिंग इनपुट होगा. इससे फ़्रेम में मौजूद उन ज़ोन के बारे में पता चलेगा जिन्हें उपयोगकर्ता को छिपाना है या जिन पर फ़ोकस करना है. ज़ोन को एनोटेट करने के लिए, उपयोगकर्ता को ज़ोन में मौजूद हर नोड के लिए, x और y ऐक्सिस के इमेज कोऑर्डिनेट तय करने होंगे. पॉलीगॉन बनाने के लिए, किसी ज़ोन में तीन या उससे ज़्यादा नोड होने चाहिए. किसी फ़्रेम में एक से ज़्यादा ज़ोन हो सकते हैं. अगर ज़ोन एक-दूसरे से ओवरलैप करते हैं, तो दोनों ज़ोन में आने वाला हिस्सा अब भी कवर किया जाएगा.

ज़ोन के एनोटेशन के लिए, इनपुट सिंटैक्स का पालन करना ज़रूरी है.

  • किसी एक नोड को दिखाने के लिए, इमेज कोऑर्डिनेशन के x और y ऐक्सिस को कनेक्ट करने के लिए : का इस्तेमाल करें. उदाहरण के लिए, ऊपर बाएं कोने में मौजूद (0,0) नोड को 0:0 के तौर पर दिखाया जाएगा.
  • एक ही ज़ोन में मौजूद सभी नोड को दिखाने के लिए, नोड को कनेक्ट करने के लिए ; का इस्तेमाल करें. उदाहरण के लिए, अगर किसी ज़ोन में (0,0), (100,0), (100,100), और (0, 100) नोड हैं, तो ज़ोन को 0:0;100:0;100:100;0:100 के तौर पर दिखाया जाएगा. नोड को हमेशा एक-दूसरे के बगल में कनेक्टिंग नोड के तौर पर डालें. इनका क्रम घड़ी की दिशा में या घड़ी की उलटी दिशा में हो सकता है.

हलचल का पता लगाने वाली सुविधा का ज़ोन - स्क्वेयर*चार नोड वाला स्क्वेयर ज़ोन.

हलचल का पता लगाने वाली सुविधा का ज़ोन - त्रिकोण*तीन नोड वाला त्रिकोण ज़ोन.

  • एक ही फ़्रेम में कई ज़ोन दिखाने के लिए, अलग-अलग ज़ोन को कनेक्ट करने के लिए - का इस्तेमाल करें. उदाहरण के लिए, अगर हमें (0,0), (100,0), (100,100), (0,100) और (120,120), (110,150), (200,160), दोनों को इनपुट करना है, तो इनपुट ज़ोन एनोटेशन 0:0;100:0;100:100;0:100-120:120;110:150;200:160 होगा.

हलचल का पता लगाने वाली सुविधा का ज़ोन - दो ज़ोन वाला फ़्रेम*एक फ़्रेम में दो ज़ोन.

इमेज से निर्देशांक पाने के लिए, ऑनलाइन कुछ टूल उपलब्ध हैं. इनसे निर्देशांक पाने में मदद मिलती है. उदाहरण के लिए, Wolfram - Get Coordinates from Image देखें

एनोटेट किए गए ज़ोन को बाहर रखें

ज़ोन में या ज़ोन के बाहर हलचल का पता लगाने की सुविधा को कॉन्फ़िगर करने के लिए, vaictl कमांड में exclude_annotated_zone फ़्लैग का इस्तेमाल करें.
बूलियन. डिफ़ॉल्ट रूप से गलत पर सेट होती है.

एनोटेट किए गए ज़ोन को बाहर रखें, उपयोगकर्ता से मिला बूलियन इनपुट होता है. इससे पता चलता है कि उपयोगकर्ता, हलचल का पता लगाने वाली सुविधा में एनोटेट किए गए ज़ोन को शामिल करना चाहता है या नहीं.

  • true पर सेट होने पर, एनोटेट किया गया ज़ोन, नेगेटिव ज़ोन के तौर पर काम करेगा. एनोटेट किए गए ज़ोन में होने वाली गतिविधियों का पता नहीं चलेगा.

हलचल का पता लगाने वाली सुविधा का ज़ोन - बाहर रखने का विकल्प *सिर्फ़ इनपुट ज़ोन के बाहर हलचल का पता लगाने वाली सुविधा चलाएं.

  • इसे फ़ॉल्स पर सेट करने पर, ज़ोन को पॉज़िटिव ज़ोन के तौर पर माना जाएगा. इसमें हलचल का पता लगाने वाली सुविधा पर फ़ोकस किया जाएगा.

हलचल का पता लगाने वाली सुविधा ज़ोन - शामिल करने का विकल्प *सिर्फ़ इनपुट ज़ोन में हलचल का पता लगाने वाली सुविधा चालू करें.

6. मोशन फ़िल्टर का उदाहरण, जिसमें हलचल का पता लगाने वाली सुविधा ज़ोन दिखाया गया है

इस उदाहरण में, हम ऐसे वीडियो का इस्तेमाल करेंगे जिसमें पेड़ लगातार फ़ोरग्राउंड में घूम रहा है. सामान्य मोशन फ़िल्टर की सेटिंग में, वीडियो में सिर्फ़ एक मोशन इवेंट दिखेगा. इसकी अवधि ओरिजनल वीडियो की अवधि के बराबर होगी. ऐसा इसलिए, क्योंकि मोशन फ़िल्टर हिलते हुए पेड़ को "पूरे वीडियो में लगातार हिलते हुए" के तौर पर रजिस्टर करता है. हालांकि, हलचल का पता लगाने वाली सुविधा ज़ोन की मदद से, हम पेड़ की गतिविधि को ठीक से मास्क कर सकते हैं. साथ ही, कारों और पैदल चलने वालों की गतिविधि पर फ़ोकस कर सकते हैं.

वीडियो तैयार करना

इस सैंपल वीडियो (gs://cloud-samples-data/vertex-ai-vision/dynamic-background-fall.mp4 ) में, www.changedetection.net से लिए गए पेड़, कारें, और पैदल चलने वाले लोग दिखाए गए हैं.

वीडियो क्रेडिट: एन. गोयेत, पी॰-एम॰ Jodoin, F. पोरिकली, जे. कॉनराड, और पी॰ ईश्वर, changedetection.net: A new change detection benchmark dataset, in Proc. IEEE Workshop on Change Detection (CDW-2012) at CVPR-2012, Providence, RI, 16-21 Jun., 2012

एनवायरमेंट वैरिएबल तैयार करना

Google Cloud प्रोजेक्ट के वैरिएबल.

export PROJECT_ID=<Your Google Cloud project ID>
export LOCATION_ID=us-central1
export LOCAL_FILE=street_vehicles_people.mp4

मोशन फ़िल्टर का बुनियादी कॉन्फ़िगरेशन.

export MOTION_SENSITIVITY=<low or medium or high>
export MIN_EVENT_LENGTH=<0-3600>
export LOOK_BACK_WINDOW=<0-3600>
export COOL_DOWN_PERIOD=<0-3600>

हलचल का पता लगाने वाली सुविधा ज़ोन का कॉन्फ़िगरेशन.

हलचल का पता लगाने वाली सुविधा ज़ोन के अलग-अलग इस्तेमाल के बारे में जानने के लिए, नीचे दिए गए विकल्पों में से कोई एक चुनें.

हलचल का पता लगाने वाली सुविधा के लिए, पेड़ को शामिल न करें.

export ZONE_ANNOTATION="0:0;680:0;660:70;380:320;100:150"
export EXCLUDE_ANNOTATED_ZONE=true

हलचल का पता लगाने वाली सुविधा वाला ज़ोन - उदाहरण के तौर पर दिए गए वीडियो में, एनोटेट किए गए ज़ोन में हलचल का पता लगाने वाली सुविधा को शामिल न करें *सिर्फ़ इनपुट ज़ोन के बाहर हलचल का पता लगाने वाली सुविधा चलाएं.

सड़क पर हलचल का पता लगाने वाली सुविधा चालू करें.

export ZONE_ANNOTATION="0:300;780:300;780:480;0:480"
export EXCLUDE_ANNOTATED_ZONE=false

मोशन डिटेक्शन ज़ोन - उदाहरण के तौर पर दिए गए वीडियो में, एनोटेट किए गए ज़ोन में हलचल का पता लगाने वाली सुविधा चालू करें *सिर्फ़ इनपुट ज़ोन के बाहर हलचल का पता लगाने वाली सुविधा चलाएं.

मोशन फ़िल्टर के साथ वीडियो स्ट्रीम भेजना

मोशन इवेंट को Cloud Console पर भेजना

vaictl का इस्तेमाल करके, आउटपुट वीडियो डेटा को Cloud Console पर स्ट्रीम किया जा सकता है. सबसे पहले, Cloud Console में Vision AI API को चालू करें.

नई स्ट्रीम रजिस्टर करना

  1. Vertex AI Vision के बाएं पैनल में मौजूद, स्ट्रीम टैब पर क्लिक करें.
  2. 'रजिस्टर करें' पर क्लिक करें
  3. स्ट्रीम के नाम में motion-detection-stream डालें
  4. क्षेत्र में us-central1 डालें
  5. 'रजिस्टर करें' पर क्लिक करें

स्ट्रीम में नतीजे भेजे जा रहे हैं

इस कमांड से, किसी वीडियो फ़ाइल को स्ट्रीम किया जाता है. –loop फ़्लैग का इस्तेमाल करने पर, वीडियो को स्ट्रीम में तब तक लूप किया जाता है, जब तक कि कमांड को बंद नहीं किया जाता. हम इस कमांड को बैकग्राउंड जॉब के तौर पर चलाएंगे, ताकि यह स्ट्रीम होती रहे.

इसे बैकग्राउंड जॉब बनाने के लिए, शुरुआत में nohup और आखिर में & जोड़ें.

vaictl -p $PROJECT \
       -l $LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
  send video-file  --file-path $INPUT_VIDEO \
  applying motion-filter
         --motion-sensitivity=$MOTION_SENSITIVITY \
         --min-event-length=$MIN_EVENT_LENGTH \
         --lookback-length=$LOOK_BACK_WINDOW \
         --cooldown-length=$COOL_DOWN_PERIOD \
         --zone_annotation=ZONE_ANNOTATION \
         --exclude_annotated_zone=$EXCLUDE_ANNOTATED_ZONE \
  to streams motion-detection-stream --loop

vaictl ingest ऑपरेशन शुरू करने और वीडियो के डैशबोर्ड में दिखने के बीच ~100 सेकंड लग सकते हैं.

स्ट्रीम का डेटा उपलब्ध होने के बाद, Vertex AI Vision डैशबोर्ड के स्ट्रीम टैब में वीडियो फ़ीड देखा जा सकता है. इसके लिए, ट्रैफ़िक-स्ट्रीम स्ट्रीम को चुनें.

स्ट्रीम टैब पर जाएं

नतीजों को डिवाइस के स्टोरेज में भेजना

इस कमांड से, किसी वीडियो फ़ाइल को स्ट्रीम किया जाता है. –loop फ़्लैग का इस्तेमाल करने पर, वीडियो को स्ट्रीम में तब तक लूप किया जाता है, जब तक कि कमांड को बंद नहीं किया जाता. हम इस कमांड को बैकग्राउंड जॉब के तौर पर चलाएंगे, ताकि यह स्ट्रीम होती रहे.

इसे बैकग्राउंड जॉब बनाने के लिए, शुरुआत में nohup और आखिर में & जोड़ें.

OUTPUT_PATH=<path_to_store_motion_events>

vaictl -p $PROJECT \
       -l $LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
  send video-file  --file-path $INPUT_VIDEO \
  applying motion-filter
         --motion-sensitivity=$MOTION_SENSITIVITY \
         --min-event-length=$MIN_EVENT_LENGTH \
         --lookback-length=$LOOK_BACK_WINDOW \
         --cooldown-length=$COOL_DOWN_PERIOD \
         --zone_annotation=$ZONE_ANNOTATION \
         --exclude_annotated_zone=$EXCLUDE_ANNOTATED_ZONE \
  to mp4file --mp4-file-path=$OUTPUT_PATH --loop

7. बधाई हो

बधाई हो, आपने लैब पूरी कर ली है!

खाली करने के लिए जगह

इस ट्यूटोरियल में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिए जाने के लिए, कमांड-लाइन के ज़रिए vaictl SDK टूल का ऑपरेशन बंद करें. इसके लिए, ctrl + z दबाएं.

संसाधन

https://cloud.google.com/vision-ai/docs/overview

https://cloud.google.com/vision-ai/docs/motion-filtering-model

https://cloud.google.com/vision-ai/docs/create-manage-streams

सुझाव, राय या शिकायत

सुझाव/राय देने या शिकायत करने के लिए यहां क्लिक करें

सर्वे

इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?

सिर्फ़ इसे पढ़ें इसे पढ़ें और एक्सरसाइज़ पूरी करें

यह कोडलैब आपके कितने काम का था?

बहुत काम की है कुछ हद तक काम की है