1. मकसद
खास जानकारी
यह कोडलैब, शुरुआत से लेकर आखिर तक Vertex AI Vision ऐप्लिकेशन बनाने पर फ़ोकस करता है. इससे मोशन फ़िल्टर करने की सुविधा की मदद से वीडियो भेजने की जानकारी मिलती है. इस ट्यूटोरियल में, हम मोशन फ़िल्टर कॉन्फ़िगरेशन के अलग-अलग पैरामीटर के बारे में जानेंगे:
- हलचल का पता लगाने की संवेदनशीलता
- इवेंट की कम से कम अवधि
- लुक-बैक विंडो
- कूल डाउन टाइम
- हलचल का पता लगाने वाला ज़ोन
आपको इनके बारे में जानकारी मिलेगी
- स्ट्रीमिंग के लिए वीडियो का डेटा डालने का तरीका
- मोशन फ़िल्टर में उपलब्ध अलग-अलग सुविधाएं और उन्हें इस्तेमाल करने का तरीका
- मोशन फ़िल्टर के आंकड़े कहां देखें
- अपने वीडियो के हिसाब से सेटिंग में बदलाव करने का तरीका
2. शुरू करने से पहले
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं. ध्यान दें: अगर इस प्रोसेस में बनाए गए संसाधनों का इस्तेमाल नहीं करना है, तो मौजूदा प्रोजेक्ट चुनने के बजाय कोई प्रोजेक्ट बनाएं. इन चरणों को पूरा करने के बाद, प्रोजेक्ट से जुड़े सभी संसाधनों को हटाकर, प्रोजेक्ट को मिटाया जा सकता है. प्रोजेक्ट सिलेक्टर पर जाएं
- पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग की सुविधा चालू है या नहीं, यह देखने का तरीका जानें.
- Compute Engine और Vision AI API चालू करें. एपीआई चालू करना
सेवा खाता बनाएं:
- Google Cloud Console में, सेवा खाता बनाएं पेज पर जाएं. 'सेवा खाता बनाएं' पर जाएं
- अपना प्रोजेक्ट चुनें.
- सेवा खाते का नाम फ़ील्ड में, कोई नाम डालें. Google Cloud Console, इस नाम के आधार पर सेवा खाता आईडी फ़ील्ड में जानकारी भरता है. सेवा खाते की जानकारी फ़ील्ड में, ब्यौरा डालें. उदाहरण के लिए, क्विकस्टार्ट के लिए सेवा खाता.
- बनाएं और जारी रखें पर क्लिक करें.
- अपने प्रोजेक्ट का ऐक्सेस देने के लिए, अपने सेवा खाते को ये भूमिकाएं दें: Vision AI > विज़न एआई एडिटर, Compute Engine > कंप्यूट इंस्टेंस एडमिन (बीटा), स्टोरेज > स्टोरेज ऑब्जेक्ट व्यूअर † . भूमिका चुनें सूची में, कोई भूमिका चुनें. अन्य भूमिकाओं के लिए, कोई अन्य भूमिका जोड़ें पर क्लिक करें और हर अतिरिक्त भूमिका को जोड़ें. ध्यान दें: भूमिका फ़ील्ड से इस बात पर असर पड़ता है कि आपका सेवा खाता आपके प्रोजेक्ट में किन संसाधनों को ऐक्सेस कर सकता है. आपके पास बाद में इन भूमिकाओं को रद्द करने या अतिरिक्त भूमिकाएं देने का विकल्प है. प्रोडक्शन एनवायरमेंट में, मालिक, एडिटर या दर्शक की भूमिकाएं न दें. इसके बजाय, अपनी ज़रूरतों के हिसाब से पहले से तय की गई भूमिका या कस्टम भूमिका दें.
- जारी रखें पर क्लिक करें.
- सेवा खाता बनाने के लिए, हो गया पर क्लिक करें. अपनी ब्राउज़र विंडो बंद न करें. इसका इस्तेमाल अगले चरण में किया जाएगा.
सेवा खाते की कुंजी बनाएं:
- Google Cloud Console में, उस सेवा खाते के ईमेल पते पर क्लिक करें जिसे आपने बनाया है.
- कुंजी पर क्लिक करें.
- कुंजी जोड़ें पर क्लिक करें. इसके बाद, नई कुंजी बनाएं पर क्लिक करें.
- बनाएं पर क्लिक करें. आपके कंप्यूटर पर JSON कुंजी वाली फ़ाइल डाउनलोड हो गई है.
- बंद करें पर क्लिक करें.
- Google Cloud सीएलआई को इंस्टॉल करें और शुरू करें.
† भूमिका की ज़रूरत सिर्फ़ तब होती है, जब Cloud Storage बकेट से सैंपल वीडियो फ़ाइल कॉपी की जाती है.
3. मोशन फ़िल्टर
मोशन फ़िल्टर ऐसे मोशन और प्रॉडक्ट के वीडियो सेगमेंट को कैप्चर करता है जिनमें मोशन इवेंट होते हैं. मोशन सेंसिटिविटी, इवेंट की कम से कम अवधि, लुकबैक विंडो, कूल डाउन पीरियड, और मोशन डिटेक्शन ज़ोन में बदलाव करके, उपयोगकर्ता अपनी ज़रूरत के हिसाब से फ़िल्टर बेस को कॉन्फ़िगर कर सकते हैं.
मोशन फ़िल्टर का कॉन्फ़िगरेशन
मोशन फ़िल्टर को पसंद के मुताबिक बनाने के लिए, पांच कॉन्फ़िगरेशन उपलब्ध हैं.
- मोशन सेंसिटिविटी: मोशन को कितना संवेदनशील होना चाहिए.
- इवेंट की कम से कम अवधि: किसी मोशन इवेंट को कैप्चर किए जाने के लिए, तय की गई कम से कम अवधि.
- लुकबैक विंडो: किसी मोशन इवेंट का पता चलने से पहले, वीडियो को कितनी देर तक रिकॉर्डिंग शुरू करनी चाहिए.
- कूल डाउन पीरियड: किसी मोशन इवेंट के खत्म होने के बाद, तय की गई अवधि के साथ एक कूलडाउन लागू होगा. कूल डाउन पीरियड के दौरान, मोशन इवेंट ट्रिगर नहीं होंगे.
- हलचल का पता लगाने वाला ज़ोन: उपयोगकर्ता ने यह तय करने के लिए कॉन्फ़िगर किया है कि हलचल का पता लगाने वाली सुविधा कहां काम करनी चाहिए. (इसके बारे में बाद के सेक्शन में बताया जाएगा)
हलचल के लिए संवेदनशीलता
vaictl के निर्देश में, motion_detection_sensitivity
फ़्लैग का इस्तेमाल करें.
स्ट्रिंग. डिफ़ॉल्ट मीडियम. कम, मध्यम या ज़्यादा में से कोई भी विकल्प चुना जा सकता है.
हलचल का पता लगाने की संवेदनशीलता जितनी ज़्यादा होगी, शोर और कम गतिविधियों के लिए उतनी ही ज़्यादा संवेदनशीलता होगी. यह सेटिंग उन सेटिंग के लिए सुझाया जाता है जहां हिलने-डुलने वाली छोटी चीज़ें (जैसे कि दूर से लोग) और स्थिर रोशनी हो.
वहीं दूसरी ओर, कम संवेदनशीलता की वजह से, आस-पास की रोशनी में थोड़ी-बहुत रुकावट का सामना नहीं करना पड़ता. यह सेटिंग तब सबसे सही काम करती है, जब वीडियो में रोशनी की वजह से ज़्यादा रुकावट आ रही हो. जैसे, बाहर का माहौल. वीडियो की क्वालिटी कम होने पर, ज़्यादा शोर भी हो सकता है. यह सेटिंग, सभी चीज़ों में सबसे असरदार फ़िल्टर होती है. इसलिए, यह छोटी चीज़ों की हलचल को अनदेखा कर सकती है.
इवेंट की कम से कम अवधि
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
सैंपल वीडियो तैयार करना
- आप नीचे दिए गए gsutil cp निर्देश की मदद से, सैंपल वीडियो कॉपी कर सकते हैं. इस वैरिएबल को बदलें:
- स्रोत: उपयोग करने के लिए वीडियो फ़ाइल का स्थान. आपके पास अपनी वीडियो फ़ाइल के सोर्स (उदाहरण के लिए, gs://BUCKET_NAME/FILENAME.mp4) का इस्तेमाल करने का विकल्प है. इसके अलावा, सैंपल वीडियो (gs://cloud-sample-data/VERex-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: आपकी स्थान ID. उदाहरण के लिए, us-central1. ज़्यादा जानकारी के लिए, क्लाउड की जगहें देखें.
- LOCAL_FILE: किसी लोकल वीडियो फ़ाइल का फ़ाइल नाम. उदाहरण के लिए, Street_vehicles_people.mp4.
- –लूप फ़्लैग: ज़रूरी नहीं. स्ट्रीमिंग को सिम्युलेट करने के लिए, फ़ाइल के डेटा को लूप में चलाता है.
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 Console पर स्ट्रीम करने के लिए, vaictl का इस्तेमाल किया जा सकता है. Cloud Console में Vision AI API को चालू करके शुरुआत करें.
नई स्ट्रीम रजिस्टर करें
- Vertex AI Vision के बाएं पैनल में, स्ट्रीम टैब पर क्लिक करें.
- 'रजिस्टर करें' पर क्लिक करें
- स्ट्रीम के नाम में
motion-detection-stream
डालें - क्षेत्र में
us-central1
डालें - 'रजिस्टर करें' पर क्लिक करें
स्ट्रीम के लिए नतीजे भेजे जा रहे हैं
इस निर्देश से किसी वीडियो फ़ाइल को स्ट्रीम में स्ट्रीम किया जा सकता है. अगर आप –लूप फ़्लैग का इस्तेमाल करते हैं, तो वीडियो स्ट्रीम में तब तक लूप में चला जाता है, जब तक आप निर्देश को रोक नहीं देते. हम इस निर्देश को बैकग्राउंड जॉब के तौर पर चलाएंगे, ताकि यह स्ट्रीमिंग जारी रहे.
इसे बैकग्राउंड में चलाने के लिए, शुरुआत में 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
डेटा डालने की कार्रवाई शुरू करने और डैशबोर्ड पर वीडियो दिखने के बीच ~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) नेगेटिव ज़ोन, जहां हलचल का पता लगाने वाली सुविधा, एनोटेट की गई जगह की किसी भी हलचल को अनदेखा कर देती है.
ज़ोन की जानकारी
ज़ोन पॉलीगॉन के निर्देशांक डालने के लिए, वैक्ट कमांड में फ़्लैग 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-सैंपल-data/VERex-ai-vision/डाइनैमिक-बैकग्राउंड-फ़ॉल.mp4 ) में www.changedetection.net से लिया गया पेड़, कार, और पैदल चलने वाले लोग शामिल हैं.
वीडियो क्रेडिट: एन. पी॰-एम॰ गोयेट फ़रहान जोदोइन, पोरिक्ली, जे॰ पी॰ कोनराड, ईश्वर, changedetection.net: Proc में, बदलाव का पता लगाने वाला एक नया मानदंड डेटासेट. सीवीपीआर-2012, प्रोविडेंस, आरआई, 16-21 जून, 2012 में आईईईई वर्कशॉप ऑन चेंज डिटेक्शन (सीडीडब्ल्यू-2012), 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 Console पर स्ट्रीम करने के लिए, vaictl का इस्तेमाल किया जा सकता है. Cloud Console में Vision AI API को चालू करके शुरुआत करें.
नई स्ट्रीम रजिस्टर करें
- Vertex AI Vision के बाएं पैनल में, स्ट्रीम टैब पर क्लिक करें.
- 'रजिस्टर करें' पर क्लिक करें
- स्ट्रीम के नाम में
motion-detection-stream
डालें - क्षेत्र में
us-central1
डालें - 'रजिस्टर करें' पर क्लिक करें
स्ट्रीम के लिए नतीजे भेजे जा रहे हैं
इस निर्देश से किसी वीडियो फ़ाइल को स्ट्रीम में स्ट्रीम किया जा सकता है. अगर आप –लूप फ़्लैग का इस्तेमाल करते हैं, तो वीडियो स्ट्रीम में तब तक लूप में चला जाता है, जब तक आप निर्देश को रोक नहीं देते. हम इस निर्देश को बैकग्राउंड जॉब के तौर पर चलाएंगे, ताकि यह स्ट्रीमिंग जारी रहे.
इसे बैकग्राउंड में चलाने के लिए, शुरुआत में 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
डेटा डालने की कार्रवाई शुरू करने और डैशबोर्ड पर वीडियो दिखने के बीच ~100 सेकंड लग सकते हैं.
स्ट्रीम में डेटा डालने की सुविधा उपलब्ध होने के बाद, Vertex AI Vision डैशबोर्ड में मौजूद स्ट्रीम टैब में वीडियो फ़ीड देखा जा सकता है. इसके लिए, ट्रैफ़िक-स्ट्रीम स्ट्रीम को चुनें.
डिवाइस के लोकल स्टोरेज में नतीजे भेजे जा रहे हैं
इस निर्देश से किसी वीडियो फ़ाइल को स्ट्रीम में स्ट्रीम किया जा सकता है. अगर आप –लूप फ़्लैग का इस्तेमाल करते हैं, तो वीडियो स्ट्रीम में तब तक लूप में चला जाता है, जब तक आप निर्देश को रोक नहीं देते. हम इस निर्देश को बैकग्राउंड जॉब के तौर पर चलाएंगे, ताकि यह स्ट्रीमिंग जारी रहे.
इसे बैकग्राउंड में चलाने के लिए, शुरुआत में 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
सुझाव, राय या शिकायत
सुझाव देने के लिए यहां क्लिक करें