1. วัตถุประสงค์
ภาพรวม
Codelab นี้จะมุ่งเน้นที่การสร้างแอปพลิเคชัน Vertex AI Vision จากต้นทางถึงปลายทางเพื่อตรวจสอบฟุตเทจวิดีโอการเข้าชมแบบเรียลไทม์ เราจะใช้ข้อมูลวิเคราะห์เกี่ยวกับอัตราการเข้าพักของโมเดลเฉพาะทางที่ฝึกไว้แล้ว ฟีเจอร์ในตัวเพื่อบันทึกสิ่งต่อไปนี้
- นับจำนวนยานพาหนะและบุคคลที่ข้ามถนนในบางเส้น
- นับจำนวนยานพาหนะ/คนในพื้นที่ที่กำหนดไว้ตายตัวของถนน
- ตรวจพบความคับคั่งในส่วนใดก็ตามของถนน
สิ่งที่คุณจะได้เรียนรู้
- วิธีตั้งค่า VM เพื่อนำเข้าวิดีโอสำหรับสตรีมมิง
- วิธีสร้างแอปพลิเคชันใน Vertex AI Vision
- ฟีเจอร์ต่างๆ ที่มีอยู่ในข้อมูลวิเคราะห์อัตราการเข้าพักและวิธีใช้ฟีเจอร์เหล่านั้น
- วิธีทำให้แอปใช้งานได้
- วิธีค้นหาวิดีโอใน Media Warehouse ของ Vertex AI Vision ในพื้นที่เก็บข้อมูล
- วิธีเชื่อมต่อเอาต์พุตกับ BigQuery ให้เขียนการค้นหา SQL เพื่อดึงข้อมูลเชิงลึกจากเอาต์พุต JSON ของโมเดลและแสดงภาพผลลัพธ์ใน Looker Studio แบบเรียลไทม์
2. ก่อนที่คุณจะเริ่มต้น
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์ หมายเหตุ: หากไม่มีแผนที่จะเก็บทรัพยากรที่สร้างในกระบวนการนี้ ให้สร้างโปรเจ็กต์แทนการเลือกโปรเจ็กต์ที่มีอยู่ หลังจากเสร็จสิ้นขั้นตอนเหล่านี้แล้ว คุณจะลบโปรเจ็กต์ซึ่งเป็นการนำทรัพยากรทั้งหมดที่เชื่อมโยงกับโปรเจ็กต์ออกได้ ไปที่ตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธีตรวจสอบว่าเปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้ว
- เปิดใช้ Compute Engine และ Vision AI API เปิดใช้ API
สร้างบัญชีบริการ
- ในคอนโซล Google Cloud ให้ไปที่หน้าสร้างบัญชีบริการ ไปที่ "สร้างบัญชีบริการ"
- เลือกโปรเจ็กต์
- ป้อนชื่อลงในช่องชื่อบัญชีบริการ คอนโซล Google Cloud จะกรอกข้อมูลในช่องรหัสบัญชีบริการตามชื่อนี้ กรอกคำอธิบายในช่องคำอธิบายบัญชีบริการ เช่น บัญชีบริการสำหรับการเริ่มต้นอย่างรวดเร็ว
- คลิกสร้างและต่อไป
- หากต้องการให้สิทธิ์เข้าถึงโปรเจ็กต์ โปรดมอบบทบาทต่อไปนี้ให้กับบัญชีบริการของคุณ: Vision AI > ผู้แก้ไข Vision AI, Compute Engine > ผู้ดูแลระบบอินสแตนซ์คอมพิวเตอร์ (เบต้า), พื้นที่เก็บข้อมูล > ผู้ดูออบเจ็กต์พื้นที่เก็บข้อมูล † เลือกบทบาทในรายการเลือกบทบาท สําหรับบทบาทเพิ่มเติม ให้คลิกเพิ่มบทบาทอื่น แล้วเพิ่มบทบาทอื่น หมายเหตุ: ช่องบทบาทจะส่งผลต่อทรัพยากรที่บัญชีบริการของคุณเข้าถึงได้ในโปรเจ็กต์ คุณสามารถเพิกถอนบทบาทเหล่านี้หรือมอบบทบาทเพิ่มเติมได้ในภายหลัง ในสภาพแวดล้อมการใช้งานจริง อย่ามอบบทบาทเจ้าของ ผู้แก้ไข หรือผู้ดู แต่ให้มอบบทบาทที่กำหนดไว้ล่วงหน้าหรือบทบาทที่กำหนดเองที่ตรงกับความต้องการของคุณแทน
- คลิกต่อไป
- คลิกเสร็จสิ้นเพื่อสร้างบัญชีบริการให้เสร็จสิ้น อย่าปิดหน้าต่างเบราว์เซอร์ของคุณ ซึ่งคุณจะต้องใช้ในขั้นตอนถัดไป
สร้างคีย์บัญชีบริการ
- ในคอนโซล Google Cloud ให้คลิกอีเมลของบัญชีบริการที่คุณสร้างขึ้น
- คลิก Keys
- คลิกเพิ่มคีย์ แล้วคลิกสร้างคีย์ใหม่
- คลิกสร้าง ระบบจะดาวน์โหลดไฟล์คีย์ JSON ลงในคอมพิวเตอร์
- คลิกปิด
- ติดตั้งและเริ่มต้น Google Cloud CLI
† บทบาทจำเป็นเฉพาะเมื่อคุณคัดลอกไฟล์วิดีโอตัวอย่างจากที่เก็บข้อมูล Cloud Storage เท่านั้น
3. ตั้งค่า VM เพื่อสตรีมวิดีโอ
ก่อนที่จะสร้างแอปในข้อมูลวิเคราะห์อัตราการเข้าพัก คุณต้องลงทะเบียนสตรีมซึ่งแอปจะใช้ในภายหลังได้
ในบทแนะนำนี้ คุณจะสร้างอินสแตนซ์ VM ของ Compute Engine ที่โฮสต์วิดีโอ แล้วส่งข้อมูลสตรีมวิดีโอนั้นจาก VM
สร้าง VM ของ Linux
ขั้นตอนแรกในการส่งวิดีโอจากอินสแตนซ์ VM ของ Compute Engine คือการสร้างอินสแตนซ์ VM
- ในคอนโซล ให้ไปที่หน้าอินสแตนซ์ VM ไปที่อินสแตนซ์ VM
- เลือกโปรเจ็กต์แล้วคลิกต่อไป
- คลิกสร้างอินสแตนซ์
- ระบุชื่อสำหรับ VM ดูข้อมูลเพิ่มเติมได้ที่แบบแผนการตั้งชื่อทรัพยากร
- ไม่บังคับ: เปลี่ยนโซนสำหรับ VM นี้ Compute Engine จะสุ่มรายการโซนภายในแต่ละภูมิภาคเพื่อกระตุ้นการใช้งานในหลายโซน
- ยอมรับตัวเลือกเริ่มต้นที่เหลืออยู่ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ได้ที่หัวข้อสร้างและเริ่ม VM
- หากต้องการสร้างและเริ่มต้น VM ให้คลิกสร้าง
ตั้งค่าสภาพแวดล้อม VM
หลังจากที่ VM เริ่มทำงานแล้ว คุณจะใช้คอนโซลเพื่อ SSH ไปยัง VM จากเบราว์เซอร์ได้ จากนั้นคุณจะดาวน์โหลดเครื่องมือบรรทัดคำสั่ง vaictl เพื่อนำเข้าวิดีโอไปยังสตรีมได้
สร้างการเชื่อมต่อ SSH กับ VM
- ในคอนโซล ให้ไปที่หน้าอินสแตนซ์ VM ไปที่อินสแตนซ์ VM
- ในส่วน Connect ของบรรทัดอินสแตนซ์ที่คุณสร้าง ให้คลิก SSH การดำเนินการนี้จะเปิดการเชื่อมต่อ SSH ในหน้าต่างเบราว์เซอร์ใหม่
ดาวน์โหลดเครื่องมือบรรทัดคำสั่ง 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. นำเข้าไฟล์วิดีโอสำหรับสตรีมมิง
หลังจากตั้งค่าสภาพแวดล้อม VM แล้ว คุณจะคัดลอกไฟล์วิดีโอตัวอย่างแล้วใช้ vaictl เพื่อสตรีมข้อมูลวิดีโอไปยังแอปข้อมูลวิเคราะห์เกี่ยวกับการเข้าใช้ได้
เริ่มต้นโดยการเปิดใช้งาน Vision AI API ใน Cloud Console
ลงทะเบียนสตรีมใหม่
- คลิกแท็บสตรีมในแผงด้านซ้ายของ Vertex AI Vision
- คลิก "ลงทะเบียน"
- ป้อนชื่อสตรีม ให้ป้อน "traffic-stream"
- ในภูมิภาค ให้ป้อน "us-central1"
- คลิกการลงทะเบียน
สตรีมจะใช้เวลาสักครู่ในการลงทะเบียน
คัดลอกวิดีโอตัวอย่างไปยัง VM
- ในหน้าต่าง SSH ในเบราว์เซอร์สำหรับ VM ให้คัดลอกวิดีโอตัวอย่างด้วยคำสั่ง gsutil cp ต่อไปนี้ แทนที่ตัวแปรต่อไปนี้
- SOURCE: ตำแหน่งของไฟล์วิดีโอที่จะใช้ คุณสามารถใช้แหล่งที่มาของไฟล์วิดีโอของคุณเอง (เช่น 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 .
สตรีมวิดีโอจาก VM และนำเข้าข้อมูลไปยังสตรีม
- หากต้องการส่งไฟล์วิดีโอในเครื่องนี้ไปยังสตรีมอินพุตแอป ให้ใช้คำสั่งต่อไปนี้ คุณต้องแทนที่ตัวแปรต่อไปนี้
- PROJECT_ID: รหัสโครงการ Google Cloud
- LOCATION_ID: รหัสสถานที่ตั้งของคุณ เช่น us-central1 ดูข้อมูลเพิ่มเติมได้ที่ตำแหน่งระบบคลาวด์
- LOCAL_FILE: ชื่อไฟล์ของไฟล์วิดีโอในเครื่อง เช่น street_vehicles_people.mp4
- – Loop Loop: ไม่บังคับ ส่งข้อมูลไฟล์แบบวนซ้ำเพื่อจำลองการสตรีม
export PROJECT_ID=<Your Google Cloud project ID> export LOCATION_ID=us-central1 export LOCAL_FILE=street_vehicles_people.mp4
- คำสั่งนี้จะสตรีมไฟล์วิดีโอไปยังสตรีม หากคุณใช้แฟล็ก –ลูป วิดีโอจะวนซ้ำในสตรีมจนกว่าคุณจะหยุดคำสั่ง เราจะเรียกใช้คำสั่งนี้เป็นงานเบื้องหลังเพื่อให้สตรีมสตรีมได้อย่างต่อเนื่องแม้ว่า VM จะถูกตัดการเชื่อมต่อแล้วก็ตาม
- ( ใส่ 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 เครดิตวิดีโอ: Elizabeth Mavor จาก Pixabay (เพิ่มภาพแตกแบบพิกเซล)
5. สร้างแอปพลิเคชัน
ขั้นตอนแรกคือการสร้างแอปที่ประมวลผลข้อมูล แอปอาจเรียกได้ว่าเป็นไปป์ไลน์อัตโนมัติที่เชื่อมต่อสิ่งต่างๆ ต่อไปนี้
- การนำเข้าข้อมูล: จะมีการส่งผ่านข้อมูลฟีดวิดีโอไปยังสตรีม
- การวิเคราะห์ข้อมูล: คุณจะเพิ่มโมเดล AI(คอมพิวเตอร์วิทัศน์) ได้หลังจากการส่งผ่านข้อมูล
- พื้นที่เก็บข้อมูล: ฟีดวิดีโอทั้ง 2 เวอร์ชัน (สตรีมดั้งเดิมและสตรีมที่ประมวลผลโดยโมเดล AI) สามารถจัดเก็บในคลังสื่อได้
ในคอนโซล Google Cloud แอปจะแสดงเป็นกราฟ
สร้างแอปเปล่า
ก่อนที่จะใส่ข้อมูลกราฟของแอป คุณต้องสร้างแอปเปล่าก่อน
สร้างแอปในคอนโซล Google Cloud
- ไปที่คอนโซล Google Cloud
- เปิดแท็บ Applications ของแดชบอร์ด Vertex AI Vision
- คลิกปุ่มสร้าง
- ป้อนชื่อแอปการเข้าชมเป็นชื่อแอป แล้วเลือกภูมิภาคของคุณ
- คลิกสร้าง
เพิ่มโหนดคอมโพเนนต์แอป
หลังจากสร้างแอปพลิเคชันเปล่าแล้ว คุณเพิ่มโหนด 3 โหนดดังกล่าวลงในกราฟแอปได้โดยทำดังนี้
- โหนดการส่งผ่านข้อมูล: ทรัพยากรของสตรีมที่นำเข้าข้อมูลที่ส่งจากอินสแตนซ์ VM ของ Compute Engine ที่คุณสร้าง
- โหนดการประมวลผล: โมเดลข้อมูลวิเคราะห์เกี่ยวกับการเข้าใช้ที่ดำเนินการกับข้อมูลที่นำเข้า
- โหนดพื้นที่เก็บข้อมูล: คลังสื่อที่จัดเก็บวิดีโอที่ประมวลผลแล้วและทำหน้าที่เป็นที่เก็บข้อมูลเมตา ข้อมูลเมตาที่จัดเก็บประกอบด้วยข้อมูลวิเคราะห์เกี่ยวกับข้อมูลวิดีโอที่นำเข้า และข้อมูลที่อนุมานโดยโมเดล AI
เพิ่มโหนดคอมโพเนนต์ลงในแอปในคอนโซล
- เปิดแท็บ Applications ของแดชบอร์ด Vertex AI Vision ไปที่แท็บแอปพลิเคชัน
- ในบรรทัดการเข้าชมแอป ให้เลือกดูกราฟ ระบบจะนำคุณไปยังภาพกราฟของไปป์ไลน์การประมวลผล
เพิ่มโหนดการนำเข้าข้อมูล
- หากต้องการเพิ่มโหนดสตรีมอินพุต ให้เลือกตัวเลือกสตรีมในส่วนเครื่องมือเชื่อมต่อของเมนูด้านข้าง
- ในส่วนแหล่งที่มาของเมนูสตรีมที่เปิดขึ้น ให้เลือกเพิ่มสตรีม
- ในเมนูเพิ่มสตรีม ให้เลือกลงทะเบียนสตรีมใหม่ แล้วเพิ่มสตรีมการเข้าชมเป็นชื่อสตรีม
- หากต้องการเพิ่มสตรีมลงในกราฟของแอป ให้คลิกเพิ่มสตรีม
เพิ่มโหนดการประมวลผลข้อมูล
- หากต้องการเพิ่มโหนดโมเดลจำนวนการเข้าใช้ ให้เลือกตัวเลือกข้อมูลวิเคราะห์เกี่ยวกับอัตราการเข้าพักในส่วนโมเดลเฉพาะทางของเมนูด้านข้าง
- คงการเลือกผู้คนและยานพาหนะซึ่งเป็นค่าเริ่มต้นไว้
- เพิ่ม บรรทัด ในการข้ามเส้น ใช้เครื่องมือเส้นแบบหลายจุดเพื่อวาดเส้นตรงจุดที่ต้องการตรวจจับรถหรือคนออกจากรถหรือเข้า
- วาดโซนที่ใช้งานอยู่เพื่อนับผู้คน/ยานพาหนะในโซนนั้น
- เพิ่มการตั้งค่าสำหรับเวลาที่ไม่มีการขยับเมาส์เพื่อตรวจหาความคับคั่งหากมีการวาดโซนแอ็กทีฟ
- (ปัจจุบันระบบไม่รองรับทั้งโซนแอ็กทีฟและการข้ามเส้นพร้อมกัน ใช้ครั้งละ 1 ฟีเจอร์เท่านั้น)
เพิ่มโหนดพื้นที่เก็บข้อมูล
- หากต้องการเพิ่มโหนดปลายทางเอาต์พุต (พื้นที่เก็บข้อมูล) ให้เลือกตัวเลือก Media Warehouse ของ Vertex AI Vision ในส่วนเครื่องมือเชื่อมต่อของเมนูด้านข้าง
- ในเมนู Vertex AI Vision's Media Warehouse ให้คลิกเชื่อมต่อคลังสินค้า
- ในเมนูเชื่อมต่อคลังสินค้า ให้เลือกสร้างคลังสินค้าใหม่ ตั้งชื่อคลังสินค้า/คลังสินค้า และเว้นระยะเวลา TTL ไว้ที่ 14 วัน
- คลิกปุ่มสร้างเพื่อเพิ่มคลังสินค้า
6. เชื่อมต่อเอาต์พุตไปยังตาราง BigQuery
เมื่อเพิ่มเครื่องมือเชื่อมต่อ BigQuery ลงในแอป Vertex AI Vision แล้ว ระบบจะนำเข้าเอาต์พุตของโมเดลแอปที่เชื่อมต่อทั้งหมดไปยังตารางเป้าหมาย
คุณจะสร้างตาราง BigQuery ของคุณเองและระบุตารางดังกล่าวเมื่อเพิ่มเครื่องมือเชื่อมต่อ BigQuery ลงในแอป หรือจะให้แพลตฟอร์มแอป Vertex AI Vision สร้างตารางให้โดยอัตโนมัติก็ได้
การสร้างตารางอัตโนมัติ
หากอนุญาตให้แพลตฟอร์มแอป Vertex AI Vision สร้างตารางโดยอัตโนมัติ คุณจะระบุตัวเลือกนี้ได้เมื่อเพิ่มโหนดเครื่องมือเชื่อมต่อ BigQuery
ระบบจะใช้ชุดข้อมูลและเงื่อนไขตารางต่อไปนี้หากคุณต้องการใช้การสร้างตารางอัตโนมัติ
- ชุดข้อมูล: ชื่อชุดข้อมูลที่สร้างโดยอัตโนมัติคือ visionai_dataset
- ตาราง: ชื่อตารางที่สร้างโดยอัตโนมัติคือ visionai_dataset.APPLICATION_ID
- การจัดการข้อผิดพลาด:
- หากมีตารางที่มีชื่อเดียวกันภายใต้ชุดข้อมูลเดียวกัน จะไม่มีการสร้างอัตโนมัติเกิดขึ้น
- เปิดแท็บ Applications ของแดชบอร์ด Vertex AI Vision ไปที่แท็บแอปพลิเคชัน
- เลือกดูแอปถัดจากชื่อแอปพลิเคชันจากรายการ
- ในหน้าเครื่องมือสร้างแอปพลิเคชัน ให้เลือก BigQuery จากส่วนเครื่องมือเชื่อมต่อ
- เว้นช่องเส้นทาง BigQuery ว่างไว้
- ในข้อมูลเมตาของร้านค้าจาก: ให้เลือกเฉพาะ "ข้อมูลวิเคราะห์เกี่ยวกับอัตราการเข้าพัก" และยกเลิกการเลือกสตรีม
กราฟแอปขั้นสุดท้ายควรมีลักษณะดังนี้
7. ทำให้แอปใช้งานได้เพื่อการใช้งาน
หลังจากสร้างแอปแบบต้นทางถึงปลายทางพร้อมคอมโพเนนต์ที่จำเป็นทั้งหมดแล้ว ขั้นตอนสุดท้ายในการใช้แอปก็คือการทำให้แอปใช้งานได้
- เปิดแท็บ Applications ของแดชบอร์ด Vertex AI Vision ไปที่แท็บแอปพลิเคชัน
- เลือกดูกราฟข้างแอปการเข้าชมในรายการ
- จากหน้าเครื่องมือสร้างกราฟของแอปพลิเคชัน ให้คลิกปุ่มทำให้ใช้งานได้
- ในกล่องโต้ตอบการยืนยันต่อไปนี้ ให้เลือกทำให้ใช้งานได้ การดำเนินการทำให้ใช้งานได้อาจใช้เวลาหลายนาทีจึงจะเสร็จสมบูรณ์ หลังจากการทำให้ใช้งานได้เสร็จสิ้นแล้ว เครื่องหมายถูกสีเขียวจะปรากฏขึ้นข้างโหนด
8. ค้นหาเนื้อหาวิดีโอในคลังพื้นที่เก็บข้อมูล
หลังจากนำเข้าข้อมูลวิดีโอลงในแอปการประมวลผลแล้ว คุณจะดูข้อมูลวิดีโอที่วิเคราะห์แล้ว และค้นหาข้อมูลตามข้อมูลการวิเคราะห์อัตราการเข้าพักได้
- เปิดแท็บ Warehouses ของแดชบอร์ด Vertex AI Vision ไปที่แท็บคลังสินค้า
- ค้นหาคลังสินค้าและการขนส่งการจราจรในรายการ แล้วคลิกดูชิ้นงาน
- ในส่วนจำนวนผู้คนหรือจำนวนยานพาหนะ ให้กำหนดค่าต่ำสุดเป็น 1 และค่าสูงสุดเป็น 5
- หากต้องการกรองข้อมูลวิดีโอที่ประมวลผลแล้วที่จัดเก็บไว้ใน Media Warehouse ของ Vertex AI Vision ให้คลิกค้นหา
มุมมองข้อมูลวิดีโอที่จัดเก็บไว้ซึ่งตรงกับเกณฑ์การค้นหาในคอนโซล Google Cloud เครดิตวิดีโอ: Elizabeth Mavor จาก Pixabay (ใช้เกณฑ์การค้นหา)
9. วิเคราะห์เอาต์พุตในตาราง BigQuery
ไปที่ BigQuery
เลือกชุดข้อมูล: visionai_dataset
เลือกตาราง: APPLICATION_ID ของคุณ (ในกรณีนี้ traffic-app)
คลิกจุด 3 จุดทางด้านขวาของชื่อตาราง แล้วคลิก "การค้นหา"
เขียนคำค้นหาต่อไปนี้
ข้อความค้นหา 1: ข้อความค้นหาเพื่อตรวจสอบจำนวนยานพาหนะที่ข้ามบรรทัดละ 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
ในการค้นหาข้างต้น คุณสามารถเปลี่ยน "ยานพาหนะ" ได้ เป็น "บุคคล" ในการนับบุคคล
Codelab นี้จะแสดงตัวอย่างข้อมูลและการแสดงข้อมูลผ่านภาพสำหรับ Query1 เท่านั้น คุณสามารถทำตามขั้นตอนที่คล้ายกันสำหรับ Query2 ได้
คลิก "สํารวจข้อมูล" ในเมนูด้านขวา แล้วเลือก "สํารวจ" ด้วย Looker Studio
ใน "มิติข้อมูล" เพิ่มเวลาและเปลี่ยนการกำหนดค่าเวลาเป็นวันที่และเวลา ใน "มิติข้อมูลรายละเอียด" เพิ่ม line_id
กราฟด้านบนแสดงจำนวนยานพาหนะ/คนข้ามแต่ละเส้นต่อนาที
แถบสีฟ้าเข้มและสีฟ้าอ่อนระบุรหัสเส้น 2 รหัสที่แตกต่างกัน
10. ขอแสดงความยินดี
ยินดีด้วย คุณใช้งานห้องทดลองเสร็จแล้ว
ล้างข้อมูล
เพื่อหลีกเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้ โปรดลบโปรเจ็กต์ที่มีทรัพยากรดังกล่าวหรือเก็บโปรเจ็กต์ไว้และลบทรัพยากรแต่ละรายการ
ลบโปรเจ็กต์
ลบทรัพยากรแต่ละรายการ
แหล่งข้อมูล
https://cloud.google.com/vision-ai/docs/overview
https://cloud.google.com/vision-ai/docs/occupancy-count-tutorial
ความคิดเห็น
คลิกที่นี่เพื่อแสดงความคิดเห็น