1. मकसद
खास जानकारी
इस कोडलैब में, रीयल-टाइम ट्रैफ़िक वीडियो फ़ुटेज को मॉनिटर करने के लिए, Vertex AI Vision ऐप्लिकेशन को एंड-टू-एंड बनाने पर फ़ोकस किया जाएगा. हम इन चीज़ों को कैप्चर करने के लिए, पहले से ट्रेन किए गए स्पेशलाइज़्ड मॉडल बुकिंग की जानकारी की इनबिल्ट सुविधाओं का इस्तेमाल करेंगे:
- किसी खास लाइन पर सड़क पार करने वाले वाहनों और लोगों की संख्या की गिनती करना.
- सड़क के किसी तय क्षेत्र में वाहन/व्यक्ति की संख्या की गिनती करें.
- सड़क के किसी भी हिस्से में ट्रैफ़िक की स्थिति का पता लगाना.
आपको इनके बारे में जानकारी मिलेगी
- स्ट्रीमिंग के लिए वीडियो डालने के लिए, वीएम सेट अप करने का तरीका
- Vertex AI Vision में ऐप्लिकेशन बनाने का तरीका
- बुकिंग के आंकड़े देखने की सुविधा में उपलब्ध अलग-अलग सुविधाएं और उनका इस्तेमाल करने का तरीका
- ऐप्लिकेशन को डिप्लॉय करने का तरीका
- Vertex AI Vision के मीडिया वेयरहाउस में मौजूद स्टोरेज में वीडियो खोजने का तरीका.
- आउटपुट को BigQuery से कनेक्ट करने, मॉडल के json आउटपुट से अहम जानकारी निकालने, और Looker Studio में रीयल टाइम में नतीजे को विज़ुअलाइज़ करने के लिए, SQL क्वेरी लिखने का तरीका.
2. शुरू करने से पहले
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट बनाएं या कोई मौजूदा प्रोजेक्ट चुनें. ध्यान दें: अगर आपको इस प्रोसेस में बनाए गए संसाधनों को सेव नहीं करना है, तो किसी मौजूदा प्रोजेक्ट को चुनने के बजाय, नया प्रोजेक्ट बनाएं. इन चरणों को पूरा करने के बाद, प्रोजेक्ट से जुड़े सभी संसाधनों को हटाकर, प्रोजेक्ट को मिटाया जा सकता है. प्रोजेक्ट सिलेक्टर पर जाएं
- पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग की सुविधा चालू है या नहीं, यह देखने का तरीका जानें.
- Compute Engine और Vision AI API चालू करें. एपीआई चालू करना
सेवा खाता बनाएं:
- Google Cloud Console में, सेवा खाता बनाएं पेज पर जाएं. 'सेवा खाता बनाएं' पर जाएं
- अपना प्रोजेक्ट चुनें.
- सेवा खाते का नाम फ़ील्ड में, कोई नाम डालें. Google Cloud Console, इस नाम के आधार पर सेवा खाते का आईडी फ़ील्ड भर देता है. सेवा खाते की जानकारी फ़ील्ड में, जानकारी डालें. उदाहरण के लिए, क्विकस्टार्ट के लिए सेवा खाता.
- बनाएं और जारी रखें पर क्लिक करें.
- अपने प्रोजेक्ट का ऐक्सेस देने के लिए, अपने सेवा खाते को ये भूमिकाएं दें: Vision AI > Vision AI Editor, Compute Engine > Compute Instance Admin (beta), Storage > Storage Object Viewer † . कोई भूमिका चुनें सूची में, कोई भूमिका चुनें. अन्य भूमिकाओं के लिए, कोई अन्य भूमिका जोड़ें पर क्लिक करें और हर अतिरिक्त भूमिका को जोड़ें. ध्यान दें: भूमिका फ़ील्ड से इस बात पर असर पड़ता है कि आपका सेवा खाता आपके प्रोजेक्ट में किन संसाधनों को ऐक्सेस कर सकता है. आपके पास बाद में इन भूमिकाओं को रद्द करने या अतिरिक्त भूमिकाएं देने का विकल्प होता है. प्रोडक्शन का काम करते समय, मालिक, एडिटर या दर्शक की भूमिकाएं न दें. इसके बजाय, अपनी ज़रूरतों के हिसाब से पहले से तय की गई भूमिका या कस्टम भूमिका दें.
- जारी रखें पर क्लिक करें.
- सेवा खाता बनाने की प्रोसेस पूरी करने के लिए, हो गया पर क्लिक करें. ब्राउज़र विंडो बंद न करें. इसका इस्तेमाल अगले चरण में किया जाएगा.
सेवा खाता कुंजी बनाएं:
- Google Cloud Console में, उस सेवा खाते के ईमेल पते पर क्लिक करें जिसे आपने बनाया है.
- बटन पर क्लिक करें.
- कुंजी जोड़ें पर क्लिक करें. इसके बाद, नई कुंजी बनाएं पर क्लिक करें.
- बनाएं पर क्लिक करें. आपके कंप्यूटर पर JSON कुंजी फ़ाइल डाउनलोड हो जाती है.
- Close पर क्लिक करें.
- Google Cloud सीएलआई को इंस्टॉल करें और शुरू करें.
† भूमिका की ज़रूरत सिर्फ़ तब होती है, जब Cloud Storage बकेट से सैंपल वीडियो फ़ाइल कॉपी की जाती है.
3. वीडियो स्ट्रीम करने के लिए, वीएम सेट अप करना
ऑक्युपेंसी आंकड़ों में ऐप्लिकेशन बनाने से पहले, आपको एक स्ट्रीम रजिस्टर करनी होगी. इसका इस्तेमाल, ऐप्लिकेशन बाद में कर सकता है.
इस ट्यूटोरियल में, एक ऐसा Compute Engine VM इंस्टेंस बनाया जाता है जो वीडियो होस्ट करता है. साथ ही, उस स्ट्रीमिंग वीडियो का डेटा, VM से भेजा जाता है.
Linux वीएम बनाना
Compute Engine VM इंस्टेंस से वीडियो भेजने के लिए, सबसे पहले VM इंस्टेंस बनाना होगा.
- कंसोल में, VM इंस्टेंस पेज पर जाएं. VM इंस्टेंस पर जाएं
- अपना प्रोजेक्ट चुनें और जारी रखें पर क्लिक करें.
- इंस्टेंस बनाएं पर क्लिक करें.
- अपने वीएम के लिए कोई नाम तय करें. ज़्यादा जानकारी के लिए, संसाधन के नाम तय करने का तरीका देखें.
- ज़रूरी नहीं: इस वीएम के लिए ज़ोन बदलें. Compute Engine, हर इलाके में ज़ोन की सूची को रैंडम तरीके से बनाता है, ताकि कई ज़ोन में इसका इस्तेमाल किया जा सके.
- बाकी बचे डिफ़ॉल्ट विकल्पों को स्वीकार करें. इन विकल्पों के बारे में ज़्यादा जानने के लिए, वीएम बनाना और उसे शुरू करना लेख पढ़ें.
- वीएम बनाने और उसे शुरू करने के लिए, बनाएं पर क्लिक करें.
वीएम एनवायरमेंट सेट अप करना
वीएम शुरू होने के बाद, अपने ब्राउज़र से वीएम में एसएसएच के लिए कंसोल का इस्तेमाल करें. इसके बाद, vaictl कमांड-लाइन टूल डाउनलोड करके, वीडियो को अपनी स्ट्रीम में डाला जा सकता है.
अपने वर्चुअल मशीन (वीएम) से एसएसएच कनेक्शन बनाना
- कंसोल में, VM इंस्टेंस पेज पर जाएं. वीएम इंस्टेंस पर जाएं
- आपने जो इंस्टेंस लाइन बनाई है उसके कनेक्ट करें सेक्शन में, एसएसएच पर क्लिक करें. इससे एसएसएच कनेक्शन, नई ब्राउज़र विंडो में खुलेगा.
vaictl कमांड-लाइन टूल डाउनलोड करना
- ब्राउज़र में SSH विंडो में, Vertex AI Vision (vaictl) कमांड-लाइन टूल डाउनलोड करने के लिए, यह कमांड इस्तेमाल करें:
wget https://github.com/google/visionai/releases/download/v0.0.4/visionai_0.0-4_amd64.deb
- नीचे दिए गए कमांड चलाकर कमांड-लाइन टूल इंस्टॉल करें:
sudo apt install ./visionai_0.0-4_amd64.deb
- इंस्टॉलेशन की जांच करने के लिए, यह निर्देश चलाएं:
vaictl --help
4. स्ट्रीमिंग के लिए वीडियो फ़ाइल डालना
वर्चुअल मशीन (वीएम) का एनवायरमेंट सेट अप करने के बाद, सैंपल वीडियो फ़ाइल कॉपी की जा सकती है. इसके बाद, vaictl का इस्तेमाल करके, वीडियो डेटा को अपने ऑक्युपेंसी आंकड़ों के ऐप्लिकेशन पर स्ट्रीम किया जा सकता है.
सबसे पहले, Cloud Console में Vision AI API को चालू करें
नई स्ट्रीम रजिस्टर करें
- Vertex AI Vision के बाएं पैनल में, स्ट्रीम टैब पर क्लिक करें.
- 'रजिस्टर करें' पर क्लिक करें
- स्ट्रीम के नाम में ‘traffic-stream' डालें
- क्षेत्र में ‘us-central1' डालें
- रजिस्टर करें पर क्लिक करें
स्ट्रीम को रजिस्टर होने में कुछ मिनट लगेंगे.
सैंपल वीडियो को अपने VM में कॉपी करना
- अपने वर्चुअल मशीन के लिए ब्राउज़र में एसएसएच विंडो में, 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 .
वीएम से वीडियो स्ट्रीम करना और अपनी स्ट्रीम में डेटा डालना
- इस लोकल वीडियो फ़ाइल को ऐप्लिकेशन की इनपुट स्ट्रीम पर भेजने के लिए, नीचे दिए गए निर्देश का इस्तेमाल करें. आपको वैरिएबल के लिए ये सबस्टिट्यूशन करने होंगे:
- 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 export LOCAL_FILE=street_vehicles_people.mp4
- यह कमांड, किसी वीडियो फ़ाइल को स्ट्रीम पर स्ट्रीम करता है. अगर आप –लूप फ़्लैग का इस्तेमाल करते हैं, तो वीडियो स्ट्रीम में तब तक लूप में चला जाता है, जब तक आप निर्देश को रोक नहीं देते. हम इस निर्देश को बैकग्राउंड जॉब के तौर पर चलाएंगे, ताकि वीएम डिसकनेक्ट होने के बाद भी स्ट्रीमिंग जारी रहे.
- ( इसे बैकग्राउंड जॉब बनाने के लिए, शुरुआत में nohup और आखिर में ‘&' जोड़ें)
nohup vaictl -p $PROJECT_ID \ -l $LOCATION_ID \ -c application-cluster-0 \ --service-endpoint visionai.googleapis.com \ send video-file to streams 'traffic-stream' --file-path $LOCAL_FILE --loop &
डेटा डालने की कार्रवाई शुरू करने और डैशबोर्ड पर वीडियो दिखने के बीच ~100 सेकंड लग सकते हैं.
स्ट्रीम डालने की सुविधा उपलब्ध होने के बाद, Vertex AI Vision के डैशबोर्ड के स्ट्रीम टैब में जाकर, ट्रैफ़िक-स्ट्रीम स्ट्रीम चुनकर वीडियो फ़ीड देखा जा सकता है.
Google Cloud Console में, स्ट्रीम में डाले जा रहे वीडियो का लाइव व्यू. वीडियो का क्रेडिट: Pixabay पर मौजूद Elizabeth Mavor (पिक्सलेशन जोड़ा गया है).
5. एक ऐप्लिकेशन बनाएं
सबसे पहले, आपको ऐसा ऐप्लिकेशन बनाना होगा जो आपके डेटा को प्रोसेस करता हो. ऐप्लिकेशन को एक ऑटोमेटेड पाइपलाइन माना जा सकता है, जो इन्हें कनेक्ट करती है:
- डेटा डालना: किसी वीडियो फ़ीड को स्ट्रीम में डाला जाता है.
- डेटा का विश्लेषण: डेटा डालने के बाद, एआई(कंप्यूटर विज़न) मॉडल जोड़ा जा सकता है.
- डेटा स्टोरेज: वीडियो फ़ीड के दो वर्शन (ओरिजनल स्ट्रीम और एआई मॉडल से प्रोसेस की जाने वाली स्ट्रीम) को मीडिया वेयरहाउस में सेव किया जा सकता है.
Google Cloud Console में, किसी ऐप्लिकेशन को ग्राफ़ के तौर पर दिखाया जाता है.
खाली ऐप्लिकेशन बनाना
ऐप्लिकेशन ग्राफ़ भरने से पहले, आपको एक खाली ऐप्लिकेशन बनाना होगा.
Google Cloud Console में कोई ऐप्लिकेशन बनाएं.
- Google Cloud console पर जाएं.
- Vertex AI Vision के डैशबोर्ड में, ऐप्लिकेशन टैब खोलें.
- जोड़ें बनाएं बटन पर क्लिक करें.
- ऐप्लिकेशन के नाम के तौर पर traffic-app डालें और अपना इलाका चुनें.
- बनाएं पर क्लिक करें.
ऐप्लिकेशन कॉम्पोनेंट नोड जोड़ना
खाली ऐप्लिकेशन बनाने के बाद, ऐप्लिकेशन ग्राफ़ में ये तीन नोड जोड़े जा सकते हैं:
- डेटा डालने वाला नोड: यह स्ट्रीम रिसॉर्स, आपके बनाए गए Compute Engine VM इंस्टेंस से भेजे गए डेटा को डालता है.
- प्रोसेसिंग नोड: यह बुकिंग के डेटा पर काम करने वाला, बुकिंग के आंकड़े का विश्लेषण करने वाला मॉडल है.
- स्टोरेज नोड: यह एक मीडिया वेयरहाउस है, जिसमें प्रोसेस किए गए वीडियो सेव किए जाते हैं. साथ ही, यह मेटाडेटा स्टोर के तौर पर भी काम करता है. मेटाडेटा स्टोर में, डाले गए वीडियो डेटा के आंकड़े और एआई मॉडल से अनुमानित जानकारी शामिल होती है.
कंसोल में अपने ऐप्लिकेशन में कॉम्पोनेंट नोड जोड़ें.
- Vertex AI Vision के डैशबोर्ड में, ऐप्लिकेशन टैब खोलें. ऐप्लिकेशन टैब पर जाएं
- ट्रैफ़िक-ऐप्लिकेशन लाइन में, ग्राफ़ देखें को चुनें. इससे, आपको प्रोसेसिंग पाइपलाइन का ग्राफ़ विज़ुअलाइज़ेशन दिखेगा.
डेटा डालने वाला नोड जोड़ना
- इनपुट स्ट्रीम नोड जोड़ने के लिए, साइड मेन्यू के कनेक्टर सेक्शन में जाकर, स्ट्रीम विकल्प चुनें.
- इसके बाद, खुलने वाले स्ट्रीम मेन्यू के सोर्स सेक्शन में, स्ट्रीम जोड़ें को चुनें.
- स्ट्रीम जोड़ें मेन्यू में, नई स्ट्रीम रजिस्टर करें चुनें और स्ट्रीम के नाम के तौर पर traffic-stream जोड़ें.
- ऐप्लिकेशन ग्राफ़ में स्ट्रीम जोड़ने के लिए, स्ट्रीम जोड़ें पर क्लिक करें.
डेटा प्रोसेसिंग नोड जोड़ना
- बुकिंग के हिसाब से वयस्कों और बच्चों की संख्या वाला मॉडल नोड जोड़ने के लिए, साइड मेन्यू के खास मॉडल सेक्शन में, व्यस्तता की दर के आंकड़े का विकल्प चुनें.
- डिफ़ॉल्ट तौर पर चुने गए लोग और वाहन विकल्पों को चुना रहने दें.
- लाइन क्रॉसिंग में लाइन जोड़ना. मल्टी पॉइंट लाइन टूल का इस्तेमाल करके, ऐसी लाइनें खींचें जहां आपको कार या लोगों के आने-जाने का पता लगाना है.
- उस ज़ोन में लोगों/वाहनों की गिनती करने के लिए, ऐक्टिव ज़ोन बनाएं.
- ऐक्टिव ज़ोन बनाने पर, भीड़-भाड़ का पता लगाने के लिए, रुकने के समय की सेटिंग जोड़ें.
- (फ़िलहाल, ऐक्टिव ज़ोन और लाइन क्रॉसिंग, दोनों का इस्तेमाल एक साथ नहीं किया जा सकता. एक बार में सिर्फ़ एक सुविधा का इस्तेमाल करें.)
डेटा स्टोरेज नोड जोड़ना
- आउटपुट डेस्टिनेशन (स्टोरेज) नोड जोड़ने के लिए, साइड मेन्यू के कनेक्टर सेक्शन में, Vertex AI Vision का मीडिया वेयरहाउस विकल्प चुनें.
- Vertex AI Vision के मीडिया वेयरहाउस मेन्यू में, वेयरहाउस कनेक्ट करें पर क्लिक करें.
- वेयरहाउस कनेक्ट करें मेन्यू में जाकर, नया वेयरहाउस बनाएं को चुनें. वेयरहाउस का नाम traffic-warehouse रखें और टीटीएल की अवधि को 14 दिन पर सेट करें.
- वेयरहाउस जोड़ने के लिए, बनाएं बटन पर क्लिक करें.
6. आउटपुट को BigQuery टेबल से कनेक्ट करना
Vertex AI Vision ऐप्लिकेशन में BigQuery कनेक्टर जोड़ने पर, कनेक्ट किए गए ऐप्लिकेशन मॉडल के सभी आउटपुट, टारगेट टेबल में डाल दिए जाएंगे.
आपके पास अपनी BigQuery टेबल बनाने का विकल्प है. साथ ही, ऐप्लिकेशन में BigQuery कनेक्टर जोड़ते समय, उस टेबल को तय किया जा सकता है. इसके अलावा, Vertex AI Vision ऐप्लिकेशन प्लैटफ़ॉर्म को टेबल अपने-आप बनाने की अनुमति भी दी जा सकती है.
टेबल अपने-आप बनना
अगर आपको Vertex AI Vision ऐप्लिकेशन प्लैटफ़ॉर्म को टेबल अपने-आप बनाने की अनुमति देनी है, तो BigQuery कनेक्टर नोड जोड़ते समय यह विकल्प चुना जा सकता है.
अगर आपको टेबल अपने-आप बनने की सुविधा का इस्तेमाल करना है, तो डेटासेट और टेबल के लिए ये शर्तें लागू होनी चाहिए:
- डेटासेट: अपने-आप जनरेट हुए डेटासेट का नाम visionai_dataset है.
- टेबल: अपने-आप जनरेट हुई टेबल का नाम visionai_dataset.APPLICATION_ID है.
- गड़बड़ी ठीक करना:
- अगर एक ही डेटासेट में, एक ही नाम वाली टेबल मौजूद है, तो अपने-आप कोई टेबल नहीं बनती.
- Vertex AI Vision के डैशबोर्ड में, ऐप्लिकेशन टैब खोलें. ऐप्लिकेशन टैब पर जाएं
- सूची में अपने ऐप्लिकेशन के नाम के बगल में मौजूद, ऐप्लिकेशन देखें को चुनें.
- ऐप्लिकेशन बिल्डर पेज पर, कनेक्टर सेक्शन से BigQuery चुनें.
- BigQuery पाथ फ़ील्ड को खाली छोड़ दें.
- स्टोर का मेटाडेटा इनसे लें: में जाकर, सिर्फ़ 'बुकिंग की जानकारी का Analytics' चुनें और स्ट्रीम से सही का निशान हटाएं.
ऐप्लिकेशन का फ़ाइनल ग्राफ़ ऐसा दिखना चाहिए:
7. इस्तेमाल के लिए अपना ऐप्लिकेशन डिप्लॉय करना
सभी ज़रूरी कॉम्पोनेंट के साथ अपना एंड-टू-एंड ऐप्लिकेशन बनाने के बाद, ऐप्लिकेशन को डिप्लॉय करना ही इसका आखिरी चरण है.
- Vertex AI Vision के डैशबोर्ड में, ऐप्लिकेशन टैब खोलें. ऐप्लिकेशन टैब पर जाएं
- सूची में, traffic-app ऐप्लिकेशन के बगल में मौजूद, ग्राफ़ देखें को चुनें.
- ऐप्लिकेशन ग्राफ़ बिल्डर पेज पर, डिप्लॉय करें बटन पर क्लिक करें.
- नीचे दिए गए पुष्टि करने वाले डायलॉग में, डिप्लॉय करें चुनें. डिप्लॉय करने की प्रोसेस पूरी होने में कुछ मिनट लग सकते हैं. डिप्लॉयमेंट पूरा होने के बाद, नोड के बगल में हरे रंग के सही का निशान दिखते हैं.
8. स्टोरेज वेयरहाउस में वीडियो कॉन्टेंट खोजना
वीडियो डेटा को प्रोसेस करने वाले ऐप्लिकेशन में डालने के बाद, विश्लेषण किया गया वीडियो डेटा देखा जा सकता है. साथ ही, बुकिंग की संख्या के आंकड़ों की जानकारी के आधार पर डेटा खोजा जा सकता है.
- Vertex AI Vision के डैशबोर्ड में, वेयरहाउस टैब खोलें. वेयरहाउस टैब पर जाएं
- सूची में traffic-warehouse वेयरहाउस ढूंढें और ऐसेट देखें पर क्लिक करें.
- लोगों की संख्या या वाहनों की संख्या सेक्शन में, कम से कम वैल्यू को 1 पर और ज़्यादा से ज़्यादा वैल्यू को 5 पर सेट करें.
- Vertex AI Vision के मीडिया वेयरहाउस में सेव किए गए, प्रोसेस किए गए वीडियो डेटा को फ़िल्टर करने के लिए, खोजें पर क्लिक करें.
Google Cloud console में, खोज के लिए इस्तेमाल की गई शर्तों से मैच करने वाले सेव किए गए वीडियो डेटा का व्यू. वीडियो का क्रेडिट: Pixabay पर मौजूद Elizabeth Mavor (खोज के लिए इस्तेमाल की गई शर्तें लागू हैं).
9. BigQuery टेबल में आउटपुट का विश्लेषण करना
BigQuery पर जाएं
डेटासेट चुनें: visionai_dataset
टेबल चुनें: आपका APPLICATION_ID (इस मामले में traffic-app)
टेबल के नाम के दाईं ओर मौजूद तीन बिंदुओं पर क्लिक करें. इसके बाद, क्वेरी पर क्लिक करें
यह क्वेरी लिखें
क्वेरी 1: हर मिनट हर लाइन को पार करने वाले वाहनों की संख्या देखने के लिए क्वेरी
abc.sql
—- Get list of active marked lines for each timeframe
WITH line_array AS (
SELECT
t.ingestion_time AS ingestion_time,
JSON_QUERY_ARRAY(t.annotation.stats["crossingLineCounts"]) AS lines
FROM
`PROJ_ID.visionai_dataset.APP_ID` AS t
),
—- Flatten active lines to get individual entities details
flattened AS (
SELECT
line_array.ingestion_time,
JSON_VALUE(line.annotation.id) as line_id,
JSON_QUERY_ARRAY(line["positiveDirectionCounts"]) AS entities
FROM line_array, unnest(line_array.lines) as line
)
—- Generate aggregate vehicle count per zone w.r.t time
SELECT
STRING(TIMESTAMP_TRUNC(ingestion_time, MINUTE) ) AS time, line_id,
SUM(INT64(entity["count"])) as vehicle_count
FROM
flattened, UNNEST(flattened.entities) AS entity
WHERE JSON_VALUE(entity['entity']['labelString']) = 'Vehicle'
GROUP BY time, line_id
क्वेरी 2: हर ज़ोन में हर मिनट वाहनों की संख्या देखने के लिए क्वेरी
—- Get list of active zones for each timeframe
WITH zone_array AS (
SELECT
t.ingestion_time AS ingestion_time,
JSON_QUERY_ARRAY(t.annotation.stats["activeZoneCounts"]) AS zones
FROM
`PROJ_ID.visionai_dataset.APP_ID` AS t
),
—- Flatten active zones to get individual entities details
flattened AS (
SELECT zone_array.ingestion_time, JSON_VALUE(zone.annotation.id) as zone_id,
JSON_QUERY_ARRAY(zone["counts"]) AS entities
FROM zone_array, unnest(zone_array.zones) as zone
)
—- Generate aggregate vehicle count per zone w.r.t time
SELECT
STRING(TIMESTAMP_TRUNC(ingestion_time, MINUTE) ) AS time,
zone_id,
SUM(INT64(entity["count"])) as vehicle_count
FROM flattened, UNNEST(flattened.entities) AS entity
WHERE JSON_VALUE(entity['entity']['labelString']) = 'Vehicle'
GROUP BY time, zone_id
ऊपर दी गई क्वेरी में, व्यक्ति की संख्या गिनने के लिए "वाहन" को "व्यक्ति" में बदला जा सकता है.
इस कोडलैब में, सिर्फ़ क्वेरी 1 के लिए सैंपल डेटा और विज़ुअलाइज़ेशन दिखेगा. क्वेरी 2 के लिए भी यही तरीका अपनाया जा सकता है.
दाईं ओर मौजूद मेन्यू में, 'डेटा एक्सप्लोर करें' पर क्लिक करें. इसके बाद, 'Looker Studio की मदद से एक्सप्लोर करें' को चुनें
'डाइमेंशन' पैनल में समय जोड़ें और समय के कॉन्फ़िगरेशन को तारीख-समय में बदलें. 'ब्रेकडाउन डाइमेंशन' में Line_id जोड़ें.
ऊपर दिया गया ग्राफ़, हर मिनट में हर लाइन को पार करने वाले वाहनों/व्यक्तियों की संख्या दिखाता है.
गहरे नीले और हल्के नीले रंग के बार, दो अलग-अलग लाइन-आईडी दिखाते हैं.
10. बधाई हो
बधाई हो, आपने लैब पूरा कर लिया है!
खाली करने के लिए जगह
इस ट्यूटोरियल में इस्तेमाल किए गए संसाधनों के लिए, आपके Google Cloud खाते से शुल्क न लिया जाए, इसके लिए संसाधनों वाले प्रोजेक्ट को मिटाएं या प्रोजेक्ट को बनाए रखें और अलग-अलग संसाधनों को मिटाएं.
प्रोजेक्ट मिटाना
एक-एक करके संसाधन मिटाएं
संसाधन
https://cloud.google.com/vision-ai/docs/overview
https://cloud.google.com/vision-ai/docs/occupancy-count-tutorial
सुझाव, राय या शिकायत
सुझाव/राय देने या शिकायत करने के लिए यहां क्लिक करें