แอป Vertex AI Vision Traffic Monitoring

1. วัตถุประสงค์

ภาพรวม

Codelab นี้จะมุ่งเน้นที่การสร้างแอปพลิเคชัน Vertex AI Vision แบบครบวงจรเพื่อตรวจสอบฟุตเทจวิดีโอการจราจรแบบเรียลไทม์ เราจะใช้ฟีเจอร์ในตัวของโมเดลเฉพาะทางที่ฝึกล่วงหน้า Occupancy analytics เพื่อบันทึกสิ่งต่อไปนี้

  • นับจำนวนยานพาหนะและผู้ที่ข้ามถนนที่เส้นหนึ่งๆ
  • นับจำนวนยานพาหนะ/บุคคลในพื้นที่คงที่ของถนน
  • ตรวจพบการจราจรติดขัดในส่วนใดส่วนหนึ่งของถนน

สิ่งที่คุณจะได้เรียนรู้

  • วิธีตั้งค่า VM เพื่อส่งผ่านข้อมูลวิดีโอสำหรับการสตรีม
  • วิธีสร้างแอปพลิเคชันใน Vertex AI Vision
  • ฟีเจอร์ต่างๆ ที่มีในข้อมูลวิเคราะห์การเข้าพักและวิธีใช้
  • วิธีติดตั้งใช้งานแอป
  • วิธีค้นหาวิดีโอใน Media Warehouse ของ Vertex AI Vision ที่จัดเก็บไว้
  • วิธีเชื่อมต่อเอาต์พุตกับ BigQuery, เขียนการค้นหา SQL เพื่อดึงข้อมูลเชิงลึกจากเอาต์พุต JSON ของโมเดล และแสดงผลลัพธ์เป็นภาพใน Looker Studio แบบเรียลไทม์

2. ก่อนที่คุณจะเริ่มต้น

  1. ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์ หมายเหตุ: หากไม่ต้องการเก็บทรัพยากรที่สร้างขึ้นในขั้นตอนนี้ ให้สร้างโปรเจ็กต์แทนการเลือกโปรเจ็กต์ที่มีอยู่ หลังจากทำตามขั้นตอนเหล่านี้แล้ว คุณจะลบโปรเจ็กต์ซึ่งเป็นการนำทรัพยากรทั้งหมดที่เชื่อมโยงกับโปรเจ็กต์นี้ออกได้ ไปที่เครื่องมือเลือกโปรเจ็กต์
  2. ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้วหรือไม่
  3. เปิดใช้ Compute Engine และ Vision AI API เปิดใช้ API

สร้างบัญชีบริการ

  1. ในคอนโซล Google Cloud ให้ไปที่หน้าสร้างบัญชีบริการ ไปที่สร้างบัญชีบริการ
  2. เลือกโปรเจ็กต์
  3. ป้อนชื่อในช่องชื่อบัญชีบริการ คอนโซล Google Cloud จะกรอกข้อมูลในช่องรหัสบัญชีบริการตามชื่อนี้ ป้อนคำอธิบายในช่องคำอธิบายบัญชีบริการ เช่น บัญชีบริการสำหรับ Quickstart
  4. คลิกสร้างและต่อไป
  5. หากต้องการให้สิทธิ์เข้าถึงโปรเจ็กต์ ให้มอบบทบาทต่อไปนี้ให้กับบัญชีบริการ Vision AI > ผู้แก้ไข Vision AI, Compute Engine > ผู้ดูแลอินสแตนซ์ Compute (เบต้า), พื้นที่เก็บข้อมูล > ผู้ดูออบเจ็กต์พื้นที่เก็บข้อมูล † เลือกบทบาทในรายการเลือกบทบาท หากต้องการเพิ่มบทบาทอื่น ให้คลิกเพิ่มบทบาทอื่น แล้วเพิ่มบทบาทเพิ่มเติมแต่ละบทบาท หมายเหตุ: ช่องบทบาทจะส่งผลต่อทรัพยากรที่บัญชีบริการเข้าถึงได้ในโปรเจ็กต์ คุณเพิกถอนบทบาทเหล่านี้หรือให้บทบาทเพิ่มเติมได้ในภายหลัง ดังนั้นในสภาพแวดล้อมการใช้งานจริง อย่าให้บทบาทเจ้าของ ผู้แก้ไข หรือผู้ดู แต่ให้มอบบทบาทที่กำหนดไว้ล่วงหน้าหรือบทบาทที่กำหนดเองที่ตรงกับความต้องการแทน
  6. คลิกต่อไป
  7. คลิกเสร็จสิ้นเพื่อสร้างบัญชีบริการให้เสร็จสมบูรณ์ อย่าปิดหน้าต่างเบราว์เซอร์ คุณจะต้องใช้รหัสนี้ในขั้นตอนถัดไป

สร้างคีย์บัญชีบริการ

  1. ในคอนโซล Google Cloud ให้คลิกอีเมลของบัญชีบริการที่คุณสร้างขึ้น
  2. คลิกคีย์
  3. คลิกเพิ่มคีย์ แล้วคลิกสร้างคีย์ใหม่
  4. คลิกสร้าง ระบบจะดาวน์โหลดไฟล์คีย์ JSON ลงในคอมพิวเตอร์
  5. คลิกปิด
  6. ติดตั้งและเริ่มต้นใช้งาน Google Cloud CLI

† คุณต้องมีบทบาทนี้ก็ต่อเมื่อคัดลอกไฟล์วิดีโอตัวอย่างจากที่เก็บข้อมูล Cloud Storage

3. ตั้งค่า VM เพื่อสตรีมวิดีโอ

ก่อนสร้างแอปในข้อมูลวิเคราะห์การเข้าพัก คุณต้องลงทะเบียนสตรีมที่แอปจะใช้ในภายหลังได้

ในบทแนะนำนี้ คุณจะสร้างอินสแตนซ์ VM ของ Compute Engine ที่โฮสต์วิดีโอ และส่งข้อมูลวิดีโอสตรีมมิงจาก VM นั้น

สร้าง VM ของ Linux

ขั้นตอนแรกในการส่งวิดีโอจากอินสแตนซ์ VM ของ Compute Engine คือการสร้างอินสแตนซ์ VM

  1. ไปที่หน้าอินสแตนซ์ VM ในคอนโซล ไปที่อินสแตนซ์ VM
  2. เลือกโปรเจ็กต์แล้วคลิกต่อไป
  3. คลิกสร้างอินสแตนซ์
  4. ระบุชื่อสำหรับ VM ดูข้อมูลเพิ่มเติมได้ที่แบบแผนการตั้งชื่อทรัพยากร
  5. ไม่บังคับ: เปลี่ยนโซนสำหรับ VM นี้ Compute Engine จะสุ่มรายการโซนภายในแต่ละภูมิภาคเพื่อกระตุ้นให้ใช้ในหลายโซน
  6. ยอมรับตัวเลือกเริ่มต้นที่เหลือ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ได้ที่สร้างและเริ่ม VM
  7. หากต้องการสร้างและเริ่ม VM ให้คลิกสร้าง

ตั้งค่าสภาพแวดล้อม VM

หลังจากที่ VM เริ่มทำงานแล้ว คุณจะใช้คอนโซลเพื่อ SSH ไปยัง VM จากเบราว์เซอร์ได้ จากนั้นคุณสามารถดาวน์โหลดเครื่องมือบรรทัดคำสั่ง vaictl เพื่อส่งผ่านวิดีโอไปยังสตรีม

สร้างการเชื่อมต่อ SSH กับ VM

  1. ไปที่หน้าอินสแตนซ์ VM ในคอนโซล ไปที่อินสแตนซ์ VM
  2. ในส่วนเชื่อมต่อของบรรทัดอินสแตนซ์ที่คุณสร้าง ให้คลิก SSH ซึ่งจะเปิดการเชื่อมต่อ SSH ในหน้าต่างเบราว์เซอร์ใหม่ ตัวเลือก SSH ใน UI

ดาวน์โหลดเครื่องมือบรรทัดคำสั่ง vaictl

  1. ในหน้าต่าง SSH ในเบราว์เซอร์ ให้ดาวน์โหลดเครื่องมือบรรทัดคำสั่ง Vertex AI Vision (vaictl) โดยใช้คำสั่งต่อไปนี้
wget https://github.com/google/visionai/releases/download/v0.0.4/visionai_0.0-4_amd64.deb
  1. ติดตั้งเครื่องมือบรรทัดคำสั่งโดยเรียกใช้คำสั่งต่อไปนี้
sudo apt install ./visionai_0.0-4_amd64.deb
  1. คุณทดสอบการติดตั้งได้โดยเรียกใช้คำสั่งต่อไปนี้
vaictl --help

4. ส่งผ่านข้อมูลไฟล์วิดีโอสำหรับการสตรีม

หลังจากตั้งค่าสภาพแวดล้อม VM แล้ว คุณสามารถคัดลอกไฟล์วิดีโอตัวอย่าง แล้วใช้ vaictl เพื่อสตรีมข้อมูลวิดีโอไปยังแอปวิเคราะห์การเข้าพักได้

เริ่มต้นด้วยการเปิดใช้งาน Vision AI API ใน Cloud Console

ลงทะเบียนสตรีมใหม่

  1. คลิกแท็บสตรีมในแผงด้านซ้ายของ Vertex AI Vision
  2. คลิกลงทะเบียน
  3. ป้อน "traffic-stream" ในชื่อสตรีม
  4. ป้อน "us-central1" ในภูมิภาค
  5. คลิกลงทะเบียน

ระบบจะใช้เวลา 2-3 นาทีในการลงทะเบียนสตรีม

คัดลอกวิดีโอตัวอย่างไปยัง VM

  1. ในหน้าต่าง 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 และส่งผ่านข้อมูลไปยังสตรีม

  1. หากต้องการส่งไฟล์วิดีโอในเครื่องนี้ไปยังสตรีมอินพุตของแอป ให้ใช้คำสั่งต่อไปนี้ คุณต้องทำการแทนที่ตัวแปรต่อไปนี้
  • 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
  1. คำสั่งนี้จะสตรีมไฟล์วิดีโอไปยังสตรีม หากใช้แฟล็ก –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 โดยเลือกไลฟ์สดการจราจร

ไปที่แท็บสตรีม

มุมมองของวิดีโอสดที่สตรีมใน UIดูวิดีโอที่กำลังส่งไปยังสตรีมในคอนโซล Google Cloud แบบเรียลไทม์ เครดิตวิดีโอ: Elizabeth Mavor ใน Pixabay (เพิ่มการแตกพิกเซล)

5. สร้างแอปพลิเคชัน

ขั้นตอนแรกคือการสร้างแอปที่ประมวลผลข้อมูล คุณอาจคิดว่าแอปเป็นไปป์ไลน์อัตโนมัติที่เชื่อมต่อสิ่งต่อไปนี้

  • การนำเข้าข้อมูล: ระบบจะนำเข้าฟีดวิดีโอลงในสตรีม
  • การวิเคราะห์ข้อมูล: คุณเพิ่มโมเดล AI(Computer Vision) ได้หลังจากการนำเข้า
  • การจัดเก็บข้อมูล: คุณจัดเก็บฟีดวิดีโอ 2 เวอร์ชัน (สตรีมต้นฉบับและสตรีมที่โมเดล AI ประมวลผล) ไว้ในคลังสื่อได้

ใน Google Cloud Console แอปจะแสดงเป็นกราฟ

สร้างแอปเปล่า

ก่อนที่จะสร้างกราฟแอป คุณต้องสร้างแอปที่ว่างเปล่าก่อน

สร้างแอปในคอนโซล Google Cloud

  1. ไปที่คอนโซล Google Cloud
  2. เปิดแท็บแอปพลิเคชันของแดชบอร์ด Vertex AI Vision

ไปที่แท็บแอปพลิเคชัน

  1. คลิกปุ่มเพิ่ม Create
  2. ป้อน traffic-app เป็นชื่อแอป แล้วเลือกภูมิภาค
  3. คลิกสร้าง

เพิ่มโหนดคอมโพเนนต์ของแอป

หลังจากสร้างแอปพลิเคชันที่ว่างเปล่าแล้ว คุณจะเพิ่ม 3 โหนดลงในกราฟแอปได้

  1. โหนดการส่งผ่านข้อมูล: ทรัพยากรสตรีมที่ส่งผ่านข้อมูลซึ่งส่งจากอินสแตนซ์ VM ของ Compute Engine ที่คุณสร้าง
  2. โหนดการประมวลผล: โมเดลข้อมูลวิเคราะห์การเข้าพักที่ดำเนินการกับข้อมูลที่นำเข้า
  3. โหนดพื้นที่เก็บข้อมูล: คลังสื่อที่จัดเก็บวิดีโอที่ประมวลผลแล้ว และทำหน้าที่เป็นที่เก็บข้อมูลเมตา ที่เก็บข้อมูลเมตาประกอบด้วยข้อมูลวิเคราะห์เกี่ยวกับข้อมูลวิดีโอที่นำเข้า และข้อมูลที่โมเดล AI อนุมาน

เพิ่มโหนดคอมโพเนนต์ลงในแอปในคอนโซล

  1. เปิดแท็บแอปพลิเคชันของแดชบอร์ด Vertex AI Vision ไปที่แท็บแอปพลิเคชัน
  2. ในบรรทัดการเข้าชมแอป ให้เลือกดูกราฟ การดำเนินการนี้จะนำคุณไปยังการแสดงภาพกราฟของไปป์ไลน์การประมวลผล

เพิ่มโหนดการนำเข้าข้อมูล

  1. หากต้องการเพิ่มโหนดสตรีมอินพุต ให้เลือกตัวเลือกสตรีมในส่วนตัวเชื่อมต่อของเมนูด้านข้าง
  2. ในส่วนแหล่งที่มาของเมนูสตรีมที่เปิดขึ้น ให้เลือกเพิ่มสตรีม
  3. ในเมนูเพิ่มสตรีม ให้เลือกลงทะเบียนสตรีมใหม่ แล้วตั้งชื่อสตรีมเป็น traffic-stream
  4. หากต้องการเพิ่มสตรีมลงในกราฟแอป ให้คลิกเพิ่มสตรีม

เพิ่มโหนดการประมวลผลข้อมูล

  1. หากต้องการเพิ่มโหนดโมเดลการนับการเข้าพัก ให้เลือกตัวเลือกข้อมูลวิเคราะห์การเข้าพักในส่วนโมเดลเฉพาะทางของเมนูด้านข้าง
  2. ปล่อยให้การเลือกเริ่มต้นเป็นผู้คนและยานพาหนะ
  3. เพิ่มเส้นใน "การข้ามเส้น" ใช้เครื่องมือเส้นหลายจุดเพื่อวาดเส้นในตำแหน่งที่คุณต้องการตรวจจับรถยนต์หรือผู้คนเข้าหรือออก
  4. วาดโซนที่ใช้งานอยู่เพื่อนับคน/ยานพาหนะในโซนนั้น
  5. เพิ่มการตั้งค่าเวลาในการเข้าชมเพื่อตรวจหาความหนาแน่นหากมีการวาดโซนที่ใช้งานอยู่
  • (ขณะนี้ระบบยังไม่รองรับการตรวจจับการบุกรุกพื้นที่และการตรวจจับการข้ามเส้นพร้อมกัน ใช้ได้ครั้งละ 1 ฟีเจอร์เท่านั้น)

3acdb6f1e8474e07.png ce63449d601995e9.png

194c54d2bbcf7e8a.png

เพิ่มโหนดที่เก็บข้อมูล

  1. หากต้องการเพิ่มโหนดปลายทางเอาต์พุต (ที่เก็บข้อมูล) ให้เลือกตัวเลือก Media Warehouse ของ Vertex AI Vision ในส่วนตัวเชื่อมต่อของเมนูด้านข้าง
  2. ในเมนูคลังสื่อของ Vertex AI Vision ให้คลิกเชื่อมต่อคลัง
  3. ในเมนูเชื่อมต่อคลัง ให้เลือกสร้างคลังใหม่ ตั้งชื่อการรับส่งข้อมูลคลังสินค้าเป็น warehouse และปล่อยให้ระยะเวลา TTL เป็น 14 วัน
  4. คลิกปุ่มสร้างเพื่อเพิ่มคลังสินค้า

6. เชื่อมต่อเอาต์พุตกับตาราง BigQuery

เมื่อเพิ่มเครื่องมือเชื่อมต่อ BigQuery ลงในแอป Vertex AI Vision ระบบจะนำเข้าเอาต์พุตโมเดลแอปที่เชื่อมต่อทั้งหมดไปยังตารางเป้าหมาย

คุณจะสร้างตาราง BigQuery ของตัวเองและระบุตารางนั้นเมื่อเพิ่มตัวเชื่อมต่อ BigQuery ลงในแอป หรือจะปล่อยให้แพลตฟอร์มแอป Vertex AI Vision สร้างตารางโดยอัตโนมัติก็ได้

การสร้างตารางอัตโนมัติ

หากคุณอนุญาตให้แพลตฟอร์มแอป Vertex AI Vision สร้างตารางโดยอัตโนมัติ คุณจะระบุตัวเลือกนี้ได้เมื่อเพิ่มโหนดตัวเชื่อมต่อ BigQuery

เงื่อนไขของชุดข้อมูลและตารางต่อไปนี้จะมีผลหากคุณต้องการใช้การสร้างตารางอัตโนมัติ

  • ชุดข้อมูล: ชื่อชุดข้อมูลที่สร้างขึ้นโดยอัตโนมัติคือ visionai_dataset
  • ตาราง: ชื่อตารางที่สร้างขึ้นโดยอัตโนมัติคือ visionai_dataset.APPLICATION_ID
  • การจัดการข้อผิดพลาด
  • หากมีตารางที่ใช้ชื่อเดียวกันภายใต้ชุดข้อมูลเดียวกัน ระบบจะไม่สร้างตารางโดยอัตโนมัติ
  1. เปิดแท็บแอปพลิเคชันของแดชบอร์ด Vertex AI Vision ไปที่แท็บแอปพลิเคชัน
  2. เลือกดูแอปข้างชื่อแอปพลิเคชันจากรายการ
  3. ในหน้าเครื่องมือสร้างแอปพลิเคชัน ให้เลือก BigQuery จากส่วนเครื่องมือเชื่อมต่อ
  4. ไม่ต้องใส่ข้อมูลในช่องเส้นทาง BigQuery ee0b67d4ab2263d.png
  5. ในข้อมูลเมตาของร้านค้าจาก: ให้เลือกเฉพาะ "ข้อมูลวิเคราะห์การเข้าพัก" และยกเลิกการเลือกสตรีม

กราฟแอปสุดท้ายควรมีลักษณะดังนี้

1787242465fd6da7.png

7. ทำให้แอปพร้อมใช้งาน

หลังจากสร้างแอปแบบครบวงจรที่มีคอมโพเนนต์ที่จำเป็นทั้งหมดแล้ว ขั้นตอนสุดท้ายในการใช้แอปคือการติดตั้งใช้งาน

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

8. ค้นหาเนื้อหาวิดีโอในคลังเก็บข้อมูล

หลังจากนำเข้าข้อมูลวิดีโอลงในแอปประมวลผลแล้ว คุณจะดูข้อมูลวิดีโอที่วิเคราะห์แล้ว และค้นหาข้อมูลตามข้อมูลวิเคราะห์การเข้าพักได้

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

e636361b19738c8d.png

มุมมองของข้อมูลวิดีโอที่จัดเก็บซึ่งตรงกับเกณฑ์การค้นหาในคอนโซล 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

e6fd891f3a46246.png

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

9e737ddb4d0d25b6.png

ในแผง "มิติข้อมูล" ให้เพิ่มเวลาและเปลี่ยนการกำหนดค่าเวลาเป็นวันที่และเวลา ใน "มิติข้อมูลการแบ่งกลุ่ม" ให้เพิ่ม line_id b5da9704ccd8db.png

กราฟด้านบนแสดงจำนวนยานพาหนะ/บุคคลที่ข้ามแต่ละเส้นต่อนาที

แถบสีน้ำเงินเข้มและสีน้ำเงินอ่อนแสดงถึง Line ID 2 รายการที่แตกต่างกัน

10. ขอแสดงความยินดี

ยินดีด้วย คุณทำแล็บเสร็จแล้ว

ล้างข้อมูล

โปรดลบโปรเจ็กต์ที่มีทรัพยากรหรือเก็บโปรเจ็กต์ไว้และลบทรัพยากรแต่ละรายการเพื่อหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้

ลบโปรเจ็กต์

ลบทรัพยากรแต่ละรายการ

แหล่งข้อมูล

https://cloud.google.com/vision-ai/docs/overview

https://cloud.google.com/vision-ai/docs/occupancy-count-tutorial

ความคิดเห็น

คลิกที่นี่เพื่อแสดงความคิดเห็น

แบบสำรวจ

คุณจะใช้บทแนะนำนี้อย่างไร

อ่านอย่างเดียว อ่านและทำแบบฝึกหัด

Codelab นี้มีประโยชน์มากน้อยเพียงใด

มีประโยชน์มาก มีประโยชน์พอสมควร