1. วัตถุประสงค์
ภาพรวม
Codelab นี้จะมุ่งเน้นที่การสร้างแอปพลิเคชัน Vertex AI Vision แบบครบวงจรเพื่อตรวจสอบฟุตเทจวิดีโอการจราจรแบบเรียลไทม์ เราจะใช้ฟีเจอร์ในตัวของโมเดลเฉพาะทางที่ฝึกล่วงหน้า Occupancy analytics เพื่อบันทึกสิ่งต่อไปนี้
- นับจำนวนยานพาหนะและผู้ที่ข้ามถนนที่เส้นหนึ่งๆ
- นับจำนวนยานพาหนะ/บุคคลในพื้นที่คงที่ของถนน
- ตรวจพบการจราจรติดขัดในส่วนใดส่วนหนึ่งของถนน
สิ่งที่คุณจะได้เรียนรู้
- วิธีตั้งค่า VM เพื่อส่งผ่านข้อมูลวิดีโอสำหรับการสตรีม
- วิธีสร้างแอปพลิเคชันใน Vertex AI Vision
- ฟีเจอร์ต่างๆ ที่มีในข้อมูลวิเคราะห์การเข้าพักและวิธีใช้
- วิธีติดตั้งใช้งานแอป
- วิธีค้นหาวิดีโอใน Media Warehouse ของ Vertex AI Vision ที่จัดเก็บไว้
- วิธีเชื่อมต่อเอาต์พุตกับ BigQuery, เขียนการค้นหา SQL เพื่อดึงข้อมูลเชิงลึกจากเอาต์พุต JSON ของโมเดล และแสดงผลลัพธ์เป็นภาพใน Looker Studio แบบเรียลไทม์
2. ก่อนที่คุณจะเริ่มต้น
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์ หมายเหตุ: หากไม่ต้องการเก็บทรัพยากรที่สร้างขึ้นในขั้นตอนนี้ ให้สร้างโปรเจ็กต์แทนการเลือกโปรเจ็กต์ที่มีอยู่ หลังจากทำตามขั้นตอนเหล่านี้แล้ว คุณจะลบโปรเจ็กต์ซึ่งเป็นการนำทรัพยากรทั้งหมดที่เชื่อมโยงกับโปรเจ็กต์นี้ออกได้ ไปที่เครื่องมือเลือกโปรเจ็กต์
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้วหรือไม่
- เปิดใช้ Compute Engine และ Vision AI API เปิดใช้ API
สร้างบัญชีบริการ
- ในคอนโซล Google Cloud ให้ไปที่หน้าสร้างบัญชีบริการ ไปที่สร้างบัญชีบริการ
- เลือกโปรเจ็กต์
- ป้อนชื่อในช่องชื่อบัญชีบริการ คอนโซล Google Cloud จะกรอกข้อมูลในช่องรหัสบัญชีบริการตามชื่อนี้ ป้อนคำอธิบายในช่องคำอธิบายบัญชีบริการ เช่น บัญชีบริการสำหรับ Quickstart
- คลิกสร้างและต่อไป
- หากต้องการให้สิทธิ์เข้าถึงโปรเจ็กต์ ให้มอบบทบาทต่อไปนี้ให้กับบัญชีบริการ Vision AI > ผู้แก้ไข Vision AI, Compute Engine > ผู้ดูแลอินสแตนซ์ Compute (เบต้า), พื้นที่เก็บข้อมูล > ผู้ดูออบเจ็กต์พื้นที่เก็บข้อมูล † เลือกบทบาทในรายการเลือกบทบาท หากต้องการเพิ่มบทบาทอื่น ให้คลิกเพิ่มบทบาทอื่น แล้วเพิ่มบทบาทเพิ่มเติมแต่ละบทบาท หมายเหตุ: ช่องบทบาทจะส่งผลต่อทรัพยากรที่บัญชีบริการเข้าถึงได้ในโปรเจ็กต์ คุณเพิกถอนบทบาทเหล่านี้หรือให้บทบาทเพิ่มเติมได้ในภายหลัง ดังนั้นในสภาพแวดล้อมการใช้งานจริง อย่าให้บทบาทเจ้าของ ผู้แก้ไข หรือผู้ดู แต่ให้มอบบทบาทที่กำหนดไว้ล่วงหน้าหรือบทบาทที่กำหนดเองที่ตรงกับความต้องการแทน
- คลิกต่อไป
- คลิกเสร็จสิ้นเพื่อสร้างบัญชีบริการให้เสร็จสมบูรณ์ อย่าปิดหน้าต่างเบราว์เซอร์ คุณจะต้องใช้รหัสนี้ในขั้นตอนถัดไป
สร้างคีย์บัญชีบริการ
- ในคอนโซล Google Cloud ให้คลิกอีเมลของบัญชีบริการที่คุณสร้างขึ้น
- คลิกคีย์
- คลิกเพิ่มคีย์ แล้วคลิกสร้างคีย์ใหม่
- คลิกสร้าง ระบบจะดาวน์โหลดไฟล์คีย์ 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
- ในส่วนเชื่อมต่อของบรรทัดอินสแตนซ์ที่คุณสร้าง ให้คลิก 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" ในภูมิภาค
- คลิกลงทะเบียน
ระบบจะใช้เวลา 2-3 นาทีในการลงทะเบียนสตรีม
คัดลอกวิดีโอตัวอย่างไปยัง 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 flag: ไม่บังคับ วนซ้ำข้อมูลไฟล์เพื่อจำลองการสตรีม
export PROJECT_ID=<Your Google Cloud project ID> export LOCATION_ID=us-central1 export LOCAL_FILE=street_vehicles_people.mp4
- คำสั่งนี้จะสตรีมไฟล์วิดีโอไปยังสตรีม หากใช้แฟล็ก –loop วิดีโอจะเล่นซ้ำในสตรีมจนกว่าคุณจะหยุดคำสั่ง เราจะเรียกใช้คำสั่งนี้เป็นงานเบื้องหลังเพื่อให้สตรีมต่อไปได้แม้ว่า 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 วินาทีระหว่างการเริ่มการดำเนินการส่งผ่านข้อมูล vaictl กับการปรากฏของวิดีโอในแดชบอร์ด
หลังจากที่การส่งผ่านข้อมูลไลฟ์สดพร้อมใช้งานแล้ว คุณจะดูฟีดวิดีโอได้ในแท็บไลฟ์สดของแดชบอร์ด Vertex AI Vision โดยเลือกไลฟ์สดการจราจร
ดูวิดีโอที่กำลังส่งไปยังสตรีมในคอนโซล Google Cloud แบบเรียลไทม์ เครดิตวิดีโอ: Elizabeth Mavor ใน Pixabay (เพิ่มการแตกพิกเซล)
5. สร้างแอปพลิเคชัน
ขั้นตอนแรกคือการสร้างแอปที่ประมวลผลข้อมูล คุณอาจคิดว่าแอปเป็นไปป์ไลน์อัตโนมัติที่เชื่อมต่อสิ่งต่อไปนี้
- การนำเข้าข้อมูล: ระบบจะนำเข้าฟีดวิดีโอลงในสตรีม
- การวิเคราะห์ข้อมูล: คุณเพิ่มโมเดล AI(Computer Vision) ได้หลังจากการนำเข้า
- การจัดเก็บข้อมูล: คุณจัดเก็บฟีดวิดีโอ 2 เวอร์ชัน (สตรีมต้นฉบับและสตรีมที่โมเดล AI ประมวลผล) ไว้ในคลังสื่อได้
ใน Google Cloud Console แอปจะแสดงเป็นกราฟ
สร้างแอปเปล่า
ก่อนที่จะสร้างกราฟแอป คุณต้องสร้างแอปที่ว่างเปล่าก่อน
สร้างแอปในคอนโซล Google Cloud
- ไปที่คอนโซล Google Cloud
- เปิดแท็บแอปพลิเคชันของแดชบอร์ด Vertex AI Vision
- คลิกปุ่มเพิ่ม Create
- ป้อน traffic-app เป็นชื่อแอป แล้วเลือกภูมิภาค
- คลิกสร้าง
เพิ่มโหนดคอมโพเนนต์ของแอป
หลังจากสร้างแอปพลิเคชันที่ว่างเปล่าแล้ว คุณจะเพิ่ม 3 โหนดลงในกราฟแอปได้
- โหนดการส่งผ่านข้อมูล: ทรัพยากรสตรีมที่ส่งผ่านข้อมูลซึ่งส่งจากอินสแตนซ์ VM ของ Compute Engine ที่คุณสร้าง
- โหนดการประมวลผล: โมเดลข้อมูลวิเคราะห์การเข้าพักที่ดำเนินการกับข้อมูลที่นำเข้า
- โหนดพื้นที่เก็บข้อมูล: คลังสื่อที่จัดเก็บวิดีโอที่ประมวลผลแล้ว และทำหน้าที่เป็นที่เก็บข้อมูลเมตา ที่เก็บข้อมูลเมตาประกอบด้วยข้อมูลวิเคราะห์เกี่ยวกับข้อมูลวิดีโอที่นำเข้า และข้อมูลที่โมเดล AI อนุมาน
เพิ่มโหนดคอมโพเนนต์ลงในแอปในคอนโซล
- เปิดแท็บแอปพลิเคชันของแดชบอร์ด Vertex AI Vision ไปที่แท็บแอปพลิเคชัน
- ในบรรทัดการเข้าชมแอป ให้เลือกดูกราฟ การดำเนินการนี้จะนำคุณไปยังการแสดงภาพกราฟของไปป์ไลน์การประมวลผล
เพิ่มโหนดการนำเข้าข้อมูล
- หากต้องการเพิ่มโหนดสตรีมอินพุต ให้เลือกตัวเลือกสตรีมในส่วนตัวเชื่อมต่อของเมนูด้านข้าง
- ในส่วนแหล่งที่มาของเมนูสตรีมที่เปิดขึ้น ให้เลือกเพิ่มสตรีม
- ในเมนูเพิ่มสตรีม ให้เลือกลงทะเบียนสตรีมใหม่ แล้วตั้งชื่อสตรีมเป็น traffic-stream
- หากต้องการเพิ่มสตรีมลงในกราฟแอป ให้คลิกเพิ่มสตรีม
เพิ่มโหนดการประมวลผลข้อมูล
- หากต้องการเพิ่มโหนดโมเดลการนับการเข้าพัก ให้เลือกตัวเลือกข้อมูลวิเคราะห์การเข้าพักในส่วนโมเดลเฉพาะทางของเมนูด้านข้าง
- ปล่อยให้การเลือกเริ่มต้นเป็นผู้คนและยานพาหนะ
- เพิ่มเส้นใน "การข้ามเส้น" ใช้เครื่องมือเส้นหลายจุดเพื่อวาดเส้นในตำแหน่งที่คุณต้องการตรวจจับรถยนต์หรือผู้คนเข้าหรือออก
- วาดโซนที่ใช้งานอยู่เพื่อนับคน/ยานพาหนะในโซนนั้น
- เพิ่มการตั้งค่าเวลาในการเข้าชมเพื่อตรวจหาความหนาแน่นหากมีการวาดโซนที่ใช้งานอยู่
- (ขณะนี้ระบบยังไม่รองรับการตรวจจับการบุกรุกพื้นที่และการตรวจจับการข้ามเส้นพร้อมกัน ใช้ได้ครั้งละ 1 ฟีเจอร์เท่านั้น)


เพิ่มโหนดที่เก็บข้อมูล
- หากต้องการเพิ่มโหนดปลายทางเอาต์พุต (ที่เก็บข้อมูล) ให้เลือกตัวเลือก Media Warehouse ของ Vertex AI Vision ในส่วนตัวเชื่อมต่อของเมนูด้านข้าง
- ในเมนูคลังสื่อของ Vertex AI Vision ให้คลิกเชื่อมต่อคลัง
- ในเมนูเชื่อมต่อคลัง ให้เลือกสร้างคลังใหม่ ตั้งชื่อการรับส่งข้อมูลคลังสินค้าเป็น warehouse และปล่อยให้ระยะเวลา TTL เป็น 14 วัน
- คลิกปุ่มสร้างเพื่อเพิ่มคลังสินค้า
6. เชื่อมต่อเอาต์พุตกับตาราง BigQuery
เมื่อเพิ่มเครื่องมือเชื่อมต่อ BigQuery ลงในแอป Vertex AI Vision ระบบจะนำเข้าเอาต์พุตโมเดลแอปที่เชื่อมต่อทั้งหมดไปยังตารางเป้าหมาย
คุณจะสร้างตาราง BigQuery ของตัวเองและระบุตารางนั้นเมื่อเพิ่มตัวเชื่อมต่อ BigQuery ลงในแอป หรือจะปล่อยให้แพลตฟอร์มแอป Vertex AI Vision สร้างตารางโดยอัตโนมัติก็ได้
การสร้างตารางอัตโนมัติ
หากคุณอนุญาตให้แพลตฟอร์มแอป Vertex AI Vision สร้างตารางโดยอัตโนมัติ คุณจะระบุตัวเลือกนี้ได้เมื่อเพิ่มโหนดตัวเชื่อมต่อ BigQuery
เงื่อนไขของชุดข้อมูลและตารางต่อไปนี้จะมีผลหากคุณต้องการใช้การสร้างตารางอัตโนมัติ
- ชุดข้อมูล: ชื่อชุดข้อมูลที่สร้างขึ้นโดยอัตโนมัติคือ visionai_dataset
- ตาราง: ชื่อตารางที่สร้างขึ้นโดยอัตโนมัติคือ visionai_dataset.APPLICATION_ID
- การจัดการข้อผิดพลาด
- หากมีตารางที่ใช้ชื่อเดียวกันภายใต้ชุดข้อมูลเดียวกัน ระบบจะไม่สร้างตารางโดยอัตโนมัติ
- เปิดแท็บแอปพลิเคชันของแดชบอร์ด Vertex AI Vision ไปที่แท็บแอปพลิเคชัน
- เลือกดูแอปข้างชื่อแอปพลิเคชันจากรายการ
- ในหน้าเครื่องมือสร้างแอปพลิเคชัน ให้เลือก BigQuery จากส่วนเครื่องมือเชื่อมต่อ
- ไม่ต้องใส่ข้อมูลในช่องเส้นทาง BigQuery

- ในข้อมูลเมตาของร้านค้าจาก: ให้เลือกเฉพาะ "ข้อมูลวิเคราะห์การเข้าพัก" และยกเลิกการเลือกสตรีม
กราฟแอปสุดท้ายควรมีลักษณะดังนี้

7. ทำให้แอปพร้อมใช้งาน
หลังจากสร้างแอปแบบครบวงจรที่มีคอมโพเนนต์ที่จำเป็นทั้งหมดแล้ว ขั้นตอนสุดท้ายในการใช้แอปคือการติดตั้งใช้งาน
- เปิดแท็บแอปพลิเคชันของแดชบอร์ด Vertex AI Vision ไปที่แท็บแอปพลิเคชัน
- เลือกดูกราฟข้างแอปการเข้าชมในรายการ
- จากหน้าเครื่องมือสร้างกราฟแอปพลิเคชัน ให้คลิกปุ่มติดตั้งใช้งาน
- ในกล่องโต้ตอบการยืนยันต่อไปนี้ ให้เลือกติดตั้งใช้งาน การดำเนินการทำให้ใช้งานได้อาจใช้เวลาหลายนาทีจึงจะเสร็จสมบูรณ์ หลังจากที่การติดตั้งใช้งานเสร็จสิ้น เครื่องหมายถูกสีเขียวจะปรากฏข้างโหนด

8. ค้นหาเนื้อหาวิดีโอในคลังเก็บข้อมูล
หลังจากนำเข้าข้อมูลวิดีโอลงในแอปประมวลผลแล้ว คุณจะดูข้อมูลวิดีโอที่วิเคราะห์แล้ว และค้นหาข้อมูลตามข้อมูลวิเคราะห์การเข้าพักได้
- เปิดแท็บคลังสินค้าของแดชบอร์ด Vertex AI Vision ไปที่แท็บคลังสินค้า
- ค้นหาคลังสินค้า traffic-warehouse ในรายการ แล้วคลิกดูชิ้นงาน
- ในส่วนจำนวนคนหรือจำนวนยานพาหนะ ให้ตั้งค่าต่ำสุดเป็น 1 และค่าสูงสุดเป็น 5
- หากต้องการกรองข้อมูลวิดีโอที่ประมวลผลแล้วซึ่งจัดเก็บไว้ในคลังสื่อของ Vertex AI Vision ให้คลิกค้นหา

มุมมองของข้อมูลวิดีโอที่จัดเก็บซึ่งตรงกับเกณฑ์การค้นหาในคอนโซล Google Cloud เครดิตวิดีโอ: Elizabeth Mavor ใน Pixabay (ใช้เกณฑ์การค้นหา)
9. วิเคราะห์เอาต์พุตในตาราง BigQuery
ไปที่ BigQuery
เลือกชุดข้อมูล: visionai_dataset
เลือกตาราง: APPLICATION_ID (ในกรณีนี้คือ traffic-app)
คลิกจุด 3 จุดทางด้านขวาของชื่อตาราง แล้วคลิก "คำค้นหา"
เขียนการค้นหาต่อไปนี้
คำค้นหา 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 เท่านั้น คุณสามารถทำตามกระบวนการที่คล้ายกันสำหรับคำค้นหา 2

คลิกสำรวจข้อมูลในเมนูด้านขวา แล้วเลือกสำรวจด้วย Looker Studio

ในแผง "มิติข้อมูล" ให้เพิ่มเวลาและเปลี่ยนการกำหนดค่าเวลาเป็นวันที่และเวลา ใน "มิติข้อมูลการแบ่งกลุ่ม" ให้เพิ่ม line_id 
กราฟด้านบนแสดงจำนวนยานพาหนะ/บุคคลที่ข้ามแต่ละเส้นต่อนาที
แถบสีน้ำเงินเข้มและสีน้ำเงินอ่อนแสดงถึง Line ID 2 รายการที่แตกต่างกัน
10. ขอแสดงความยินดี
ยินดีด้วย คุณทำแล็บเสร็จแล้ว
ล้างข้อมูล
โปรดลบโปรเจ็กต์ที่มีทรัพยากรหรือเก็บโปรเจ็กต์ไว้และลบทรัพยากรแต่ละรายการเพื่อหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้
ลบโปรเจ็กต์
ลบทรัพยากรแต่ละรายการ
แหล่งข้อมูล
https://cloud.google.com/vision-ai/docs/overview
https://cloud.google.com/vision-ai/docs/occupancy-count-tutorial
ความคิดเห็น
คลิกที่นี่เพื่อแสดงความคิดเห็น