1. วัตถุประสงค์
ภาพรวม
โค้ดแล็บนี้จะมุ่งเน้นที่การสร้างแอปพลิเคชัน Vertex AI Vision ตั้งแต่ต้นจนจบเพื่อตรวจสอบฟุตเทจวิดีโอการจราจรแบบเรียลไทม์ เราจะใช้ฟีเจอร์ในตัวของการวิเคราะห์อัตราการเข้าพักของโมเดลเฉพาะทางที่ผ่านการฝึกล่วงหน้าเพื่อบันทึกข้อมูลต่อไปนี้
- นับจํานวนยานพาหนะและผู้ที่ข้ามถนนที่เส้นหนึ่งๆ
- นับจํานวนยานพาหนะ/บุคคลในบริเวณใดก็ได้บนถนน
- ตรวจจับการจราจรติดขัดบนถนน
สิ่งที่คุณจะได้เรียนรู้
- วิธีตั้งค่า VM เพื่อส่งผ่านข้อมูลวิดีโอสำหรับการสตรีม
- วิธีสร้างแอปพลิเคชันใน Vertex AI Vision
- ฟีเจอร์ต่างๆ ที่มีให้ใช้งานใน Analytics อัตราการเข้าพัก และวิธีใช้
- วิธีทำให้แอปใช้งานได้
- วิธีค้นหาวิดีโอในพื้นที่เก็บข้อมูล 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 จะกรอกข้อมูลในช่องรหัสบัญชีบริการตามชื่อนี้ ป้อนคำอธิบายในช่องคำอธิบายบัญชีบริการ เช่น บัญชีบริการสําหรับการเริ่มต้นใช้งานอย่างรวดเร็ว
- คลิกสร้างและต่อไป
- หากต้องการให้สิทธิ์เข้าถึงโปรเจ็กต์ ให้มอบบทบาทต่อไปนี้ให้กับบัญชีบริการ Vision AI > Vision AI Editor, Compute Engine > Compute Instance Admin (เบต้า), Storage > Storage Object Viewer † เลือกบทบาทในรายการเลือกบทบาท สําหรับบทบาทเพิ่มเติม ให้คลิกเพิ่มบทบาทอื่น แล้วเพิ่มบทบาทเพิ่มเติมแต่ละบทบาท หมายเหตุ: ช่องบทบาทจะส่งผลต่อทรัพยากรที่บัญชีบริการเข้าถึงได้ในโปรเจ็กต์ คุณสามารถเพิกถอนบทบาทเหล่านี้หรือมอบบทบาทเพิ่มเติมได้ในภายหลัง ในสภาพแวดล้อมการใช้งานจริง อย่าให้บทบาทเจ้าของ เอดิเตอร์ หรือผู้ดู แต่ให้มอบบทบาทที่กําหนดไว้ล่วงหน้าหรือบทบาทที่กําหนดเองที่ตรงกับความต้องการของคุณแทน
- คลิกต่อไป
- คลิกเสร็จสิ้นเพื่อสร้างบัญชีบริการให้เสร็จสมบูรณ์ อย่าปิดหน้าต่างเบราว์เซอร์ คุณจะต้องใช้รหัสนี้ในขั้นตอนถัดไป
สร้างคีย์บัญชีบริการ
- ในคอนโซล 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 ต่อไปนี้ แทนที่ตัวแปรต่อไปนี้
- แหล่งที่มา: ตำแหน่งของไฟล์วิดีโอที่จะใช้ คุณสามารถใช้แหล่งที่มาของไฟล์วิดีโอของคุณเอง (เช่น 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
- –flag loop: ไม่บังคับ วนข้อมูลไฟล์เพื่อจำลองการสตรีม
export PROJECT_ID=<Your Google Cloud project ID> export LOCATION_ID=us-central1 export LOCAL_FILE=street_vehicles_people.mp4
- คำสั่งนี้จะสตรีมไฟล์วิดีโอไปยังสตรีม หากใช้ Flag –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 แอปจะแสดงเป็นกราฟ
สร้างแอปว่าง
คุณต้องสร้างแอปเปล่าก่อนจึงจะป้อนข้อมูลกราฟแอปได้
สร้างแอปในคอนโซล Google Cloud
- ไปที่คอนโซล Google Cloud
- เปิดแท็บ Applications ของแดชบอร์ด Vertex AI Vision
- คลิกปุ่มเพิ่ม Create
- ป้อน traffic-app เป็นชื่อแอป แล้วเลือกภูมิภาค
- คลิกสร้าง
เพิ่มโหนดคอมโพเนนต์แอป
หลังจากสร้างแอปพลิเคชันว่างแล้ว คุณสามารถเพิ่มโหนด 3 รายการลงในกราฟแอปได้ดังนี้
- โหนดการส่งผ่านข้อมูล: ทรัพยากรสตรีมที่ส่งผ่านข้อมูลที่ส่งจากอินสแตนซ์ VM ของ Compute Engine ที่คุณสร้างขึ้น
- โหนดการประมวลผล: โมเดลการวิเคราะห์อัตราการเข้าพักที่ดำเนินการกับข้อมูลที่นำเข้า
- โหนดพื้นที่เก็บข้อมูล: คลังสื่อที่จัดเก็บวิดีโอที่ประมวลผลแล้ว และทำหน้าที่เป็นพื้นที่เก็บข้อมูลเมตา พื้นที่เก็บข้อมูลเมตาประกอบด้วยข้อมูลวิเคราะห์เกี่ยวกับข้อมูลวิดีโอที่ส่งผ่านข้อมูล และข้อมูลที่ได้จากโมเดล AI
เพิ่มโหนดคอมโพเนนต์ลงในแอปในคอนโซล
- เปิดแท็บแอปพลิเคชันของแดชบอร์ด Vertex AI Vision ไปที่แท็บแอปพลิเคชัน
- ในบรรทัดการเข้าชมแอป ให้เลือกดูกราฟ ซึ่งจะนำคุณไปยังการแสดงภาพกราฟของไปป์ไลน์การประมวลผล
เพิ่มโหนดการส่งผ่านข้อมูล
- หากต้องการเพิ่มโหนดสตรีมอินพุต ให้เลือกตัวเลือกสตรีมในส่วนคอนเนคเตอร์ของเมนูด้านข้าง
- ในส่วนแหล่งที่มาของเมนูสตรีมที่เปิดขึ้น ให้เลือกเพิ่มสตรีม
- ในเมนูเพิ่มสตรีม ให้เลือกลงทะเบียนสตรีมใหม่ แล้วเพิ่ม traffic-stream เป็นชื่อสตรีม
- หากต้องการเพิ่มสตรีมลงในกราฟแอป ให้คลิกเพิ่มสตรีม
เพิ่มโหนดการประมวลผลข้อมูล
- หากต้องการเพิ่มโหนดรูปแบบจํานวนผู้เข้าพัก ให้เลือกตัวเลือกข้อมูลวิเคราะห์อัตราการเข้าพักในส่วนรูปแบบเฉพาะของเมนูด้านข้าง
- เลือกผู้คนและยานพาหนะตามค่าเริ่มต้น
- เพิ่มเส้นใน "เส้นตัดกัน" ใช้เครื่องมือเส้นหลายจุดเพื่อวาดเส้นที่ต้องการตรวจจับรถยนต์หรือผู้คนที่ออกจากหรือเข้า
- วาดโซนตรวจจับเพื่อนับคน/ยานพาหนะในโซนนั้น
- เพิ่มการตั้งค่าสำหรับเวลาในการเข้าพักเพื่อตรวจหาความแออัดหากมีการวาดโซนตรวจจับกิจกรรม
- (ปัจจุบันระบบยังไม่รองรับทั้งโซนตรวจจับและเส้นที่ตัดกันพร้อมกัน ใช้ฟีเจอร์ได้ครั้งละ 1 รายการเท่านั้น)
เพิ่มโหนดพื้นที่เก็บข้อมูล
- หากต้องการเพิ่มโหนดปลายทางเอาต์พุต (พื้นที่เก็บข้อมูล) ให้เลือกตัวเลือกคลังสื่อของ Vertex AI Vision ในส่วนตัวเชื่อมต่อของเมนูด้านข้าง
- ในเมนูคลังสื่อของ Vertex AI Vision ให้คลิกเชื่อมต่อคลัง
- ในเมนูเชื่อมต่อคลังสินค้า ให้เลือกสร้างคลังสินค้าใหม่ ตั้งชื่อคลังสินค้าเป็น traffic-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. ทำให้แอปใช้งานได้
หลังจากสร้างแอปแบบต้นทางถึงปลายทางพร้อมคอมโพเนนต์ที่จำเป็นทั้งหมดแล้ว ขั้นตอนสุดท้ายในการใช้แอปก็คือการทำให้แอปใช้งานได้
- เปิดแท็บแอปพลิเคชันของแดชบอร์ด Vertex AI Vision ไปที่แท็บแอปพลิเคชัน
- เลือกดูกราฟข้างแอปการเข้าชมในรายการ
- จากหน้าเครื่องมือสร้างกราฟแอปพลิเคชัน ให้คลิกปุ่มทำให้ใช้งานได้
- เลือกทำให้ใช้งานได้ในกล่องโต้ตอบการยืนยันต่อไปนี้ การดำเนินการทำให้ใช้งานได้อาจใช้เวลาหลายนาทีจึงจะเสร็จสมบูรณ์ หลังจากการทำให้ใช้งานได้เสร็จสิ้นแล้ว เครื่องหมายถูกสีเขียวจะปรากฏขึ้นข้างโหนด
8. ค้นหาเนื้อหาวิดีโอในคลังพื้นที่เก็บข้อมูล
หลังจากนำเข้าข้อมูลวิดีโอลงในแอปการประมวลผลแล้ว คุณจะดูข้อมูลวิดีโอที่วิเคราะห์แล้ว และค้นหาข้อมูลตามข้อมูลการวิเคราะห์อัตราการเข้าพักได้
- เปิดแท็บคลังสินค้าของหน้าแดชบอร์ด Vertex AI Vision ไปที่แท็บคลังสินค้า
- ค้นหาคลังสินค้าและการขนส่งการจราจรในรายการ แล้วคลิกดูชิ้นงาน
- ในส่วนจํานวนคนหรือจํานวนยานพาหนะ ให้ตั้งค่าต่ำสุดเป็น 1 และค่าสูงสุดเป็น 5
- หากต้องการกรองข้อมูลวิดีโอที่ประมวลผลแล้วซึ่งจัดเก็บไว้ในคลังสื่อของ 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 นี้จะแสดงข้อมูลตัวอย่างและการแสดงภาพสําหรับคําค้นหา 1 เท่านั้น คุณทําตามกระบวนการที่คล้ายกันสําหรับ 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
ความคิดเห็น
คลิกที่นี่เพื่อแสดงความคิดเห็น