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

1. मकसद

खास जानकारी

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

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

आपको इनके बारे में जानकारी मिलेगी

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

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

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

सेवा खाता बनाने के लिए:

  1. Google Cloud Console में, सेवा खाता बनाएं पेज पर जाएं. 'सेवा खाता बनाएं' पर जाएं
  2. अपना प्रोजेक्ट चुनें.
  3. सेवा खाते का नाम फ़ील्ड में, कोई नाम डालें. Google Cloud Console, इस नाम के आधार पर सेवा खाते का आईडी फ़ील्ड भर देता है. सेवा खाते की जानकारी फ़ील्ड में, जानकारी डालें. उदाहरण के लिए, तुरंत शुरू करने के लिए सेवा खाता.
  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. Close पर क्लिक करें.
  6. Google Cloud CLI को इंस्टॉल और शुरू करें.

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

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

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

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

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

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

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

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

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

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

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

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

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

लुकबैक विंडो

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

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

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

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

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

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 पर नतीजे भेजे जा रहे हैं

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

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

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

स्ट्रीम के लिए नतीजे भेजे जा रहे हैं

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

इसे बैकग्राउंड जॉब बनाने के लिए, शुरुआत में 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 इंजेस्ट ऑपरेशन शुरू करने और डैशबोर्ड में वीडियो दिखने में करीब 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 का इस्तेमाल करें.
स्ट्रिंग. ज़ोन एनोटेशन के लिए डिफ़ॉल्ट रूप से खाली है.

ज़ोन एनोटेशन, उपयोगकर्ता से मिली स्ट्रिंग इनपुट होगी. इससे फ़्रेम में उन ज़ोन का पता चलता है जिन्हें उपयोगकर्ता छिपाना चाहता है या जिन पर फ़ोकस करना चाहता है. ज़ोन में एनोटेट करने के लिए, उपयोगकर्ता को ज़ोन के हर नोड के लिए, इमेज के 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 - इमेज से कोऑर्डिनेट पाना देखें

जानकारी वाले ज़ोन को शामिल न करें

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

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

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

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

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

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

6. मोशन डिटेक्शन ज़ोन के साथ मोशन फ़िल्टर का उदाहरण

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

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

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

वीडियो क्रेडिट: एन. गोयेट, पी.-एम. Jodoin, F. Porikli, J. कोनराड, और पी. ईश्वर, changedetection.net: बदलाव का पता लगाने के लिए नया बेंचमार्क डेटासेट, 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 पर भेजना

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

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

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

स्ट्रीम के लिए नतीजे भेजे जा रहे हैं

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

इसे बैकग्राउंड जॉब बनाने के लिए, शुरुआत में 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 इंजेस्ट ऑपरेशन शुरू करने और डैशबोर्ड में वीडियो दिखने में करीब 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 खाते पर शुल्क न लगे. इसके लिए, कमांड-लाइन की मदद से ctrl + z का इस्तेमाल करके, vaictl SDK टूल की कार्रवाई खत्म करें.

संसाधन

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

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

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

सर्वे

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

सिर्फ़ इसे पढ़ें इसे पढ़ें और इसमें दिए गए अभ्यास पूरे करें

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

बहुत काम की है सामान्य काम की है