1. วัตถุประสงค์
ภาพรวม
Codelab นี้มุ่งเน้นที่การสร้างแอปพลิเคชัน Vertex AI Vision แบบต้นทางถึงปลายทางเพื่อสาธิตการส่งวิดีโอด้วยฟีเจอร์การกรองการเคลื่อนไหว ในบทแนะนำนี้ เราจะอธิบายพารามิเตอร์ต่างๆ ในการกำหนดค่าตัวกรองการเคลื่อนไหว
- ความไวในการตรวจจับการเคลื่อนไหว
- ระยะเวลาขั้นต่ำของเหตุการณ์
- กรอบเวลามองย้อนกลับ
- ระยะเวลาพัก
- โซนตรวจจับการเคลื่อนไหว
สิ่งที่คุณจะได้เรียนรู้
- วิธีส่งผ่านข้อมูลวิดีโอสำหรับสตรีมมิง
- ฟีเจอร์ต่างๆ ที่มีในตัวกรองการเคลื่อนไหวและวิธีใช้
- วิธีการตรวจสอบสถิติของตัวกรองการเคลื่อนไหว
- วิธีปรับการตั้งค่าตามวิดีโอของคุณ
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. ตัวกรองการเคลื่อนไหว
ตัวกรองการเคลื่อนไหวจะจับภาพเคลื่อนไหวและกลุ่มวิดีโอผลิตภัณฑ์ที่มีเหตุการณ์การเคลื่อนไหว ผู้ใช้จะกำหนดค่าฐานตัวกรองตามความต้องการของตนเองได้โดยการปรับความไวต่อการเคลื่อนไหว ระยะเวลาขั้นต่ำของเหตุการณ์ กรอบเวลามองย้อนกลับ ระยะเวลาพัก และโซนตรวจจับการเคลื่อนไหว
การกำหนดค่าตัวกรองการเคลื่อนไหว
ตัวกรองการเคลื่อนไหวเพื่อการปรับแต่งมีอยู่ 5 รูปแบบ
- ความไวในการเคลื่อนไหว: ควรทริกเกอร์การเคลื่อนไหวมากน้อยเพียงใด
- ระยะเวลาขั้นต่ำของเหตุการณ์: ระยะเวลาขั้นต่ำที่เหตุการณ์การเคลื่อนไหวจะบันทึกไว้
- กรอบเวลามองย้อนกลับ: วิดีโอควรเริ่มบันทึกนานแค่ไหนก่อนที่จะตรวจพบเหตุการณ์การเคลื่อนไหว
- ระยะเวลาพัก: หลังจากเหตุการณ์การเคลื่อนไหวสิ้นสุดลง ระยะเวลาพักซึ่งมีระยะเวลาตามที่ระบุจะเกิดขึ้น ในระหว่างระยะเวลาพัก ระบบจะไม่ทริกเกอร์เหตุการณ์การเคลื่อนไหว
- โซนตรวจจับการเคลื่อนไหว: โซนที่ผู้ใช้กำหนดค่าไว้เพื่อระบุว่าควรใช้การตรวจจับการเคลื่อนไหวที่ใด (จะอธิบายเพิ่มเติมในส่วนต่อไป)
ความไวในการตรวจจับการเคลื่อนไหว
ใช้แฟล็ก motion_detection_sensitivity
ในคำสั่ง vaictlสตริง
สื่อเริ่มต้น โดยเลือกได้จากต่ำ ปานกลาง หรือสูง
ยิ่งความไวในการตรวจจับการเคลื่อนไหวสูงเท่าใด ก็ยิ่งมีความไวต่อเสียงรบกวนมากขึ้นเท่านั้นและการเคลื่อนไหวน้อยลง เราขอแนะนำให้ใช้การตั้งค่านี้สำหรับการตั้งค่าที่มีวัตถุเคลื่อนที่ขนาดเล็ก (เช่น คนอยู่ไกลๆ) และแสงคงที่
ในทางตรงกันข้าม ความไวต่ำจะไวต่อสัญญาณรบกวนของแสงน้อยกว่า การตั้งค่านี้เหมาะสำหรับเมื่อมีการรบกวนแสงมาก เช่น ในสภาพแวดล้อมกลางแจ้ง และสำหรับวิดีโอคุณภาพต่ำซึ่งอาจมีเสียงรบกวนมากกว่า เนื่องจากการตั้งค่านี้เป็นการกรองที่รุนแรงที่สุด จึงอาจเพิกเฉยต่อการเคลื่อนที่ของวัตถุขนาดเล็ก
ระยะเวลาขั้นต่ำของเหตุการณ์
ใช้แฟล็ก min_event_length_in_seconds
ในคำสั่ง vaictl
จำนวนเต็ม ค่าเริ่มต้นคือ 10 วินาที ช่วงเวลาตั้งแต่ 0 วินาทีถึง 3,600 วินาที
ระยะเวลาขั้นต่ำของวิดีโอเหตุการณ์การเคลื่อนไหวที่จะแยกวิเคราะห์เมื่อตรวจพบกลุ่มเหตุการณ์การเคลื่อนไหวในเฟรม
กรอบเวลามองย้อนกลับ
ใช้แฟล็ก look_back_window_in_seconds
ในคำสั่ง vaictl
จำนวนเต็ม ค่าเริ่มต้น 3 วินาที ช่วงเวลาตั้งแต่ 0 วินาทีถึง 3,600 วินาที
กรอบเวลามองย้อนกลับคือระยะเวลาที่แคชไว้ก่อนที่จะตรวจพบเหตุการณ์การเคลื่อนไหว ซึ่งจะเป็นประโยชน์เมื่อเราต้องการทราบสิ่งที่เกิดขึ้นในเฟรมก่อนตรวจพบเหตุการณ์การเคลื่อนไหว 2-3 วินาที
ระยะเวลาพัก
ใช้แฟล็ก cool_down_period_in_seconds
ในคำสั่ง vaictl
จำนวนเต็ม ค่าเริ่มต้น 300 วินาที ช่วงเวลาตั้งแต่ 0 วินาทีถึง 3,600 วินาที
ระยะเวลาพักคือระยะเวลาที่การตรวจจับการเคลื่อนไหวจะหยุดชั่วคราวหลังจากบันทึกเหตุการณ์การเคลื่อนไหว ระหว่างระยะเวลาพัก ระบบจะไม่ประมวลผลเพื่อตรวจจับการเคลื่อนไหว
4. ตัวอย่างตัวกรองการเคลื่อนไหวพื้นฐาน
คู่มือ SDK ของ Vaictl
หากต้องการตรวจสอบด้วยตนเองของ vaictl
สำหรับสตรีมอินพุตที่มีตัวกรองการเคลื่อนไหว ให้ใช้คำสั่งด้านล่าง
vaictl send video-file applying motion-filter -h
เตรียมวิดีโอตัวอย่าง
- คุณสามารถคัดลอกวิดีโอตัวอย่างด้วยคำสั่ง 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 .
เตรียมตัวแปรสภาพแวดล้อม
ตั้งค่าตัวแปรสภาพแวดล้อมด้านล่างเพื่อใช้เทมเพลตคำสั่งที่มีให้
ตัวแปร Vaictl
- 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
ตัวแปรตัวกรองการเคลื่อนไหว
- MOTION_SENSITIVITY: การตรวจจับการเคลื่อนไหวจะมีความละเอียดอ่อนมากน้อยเพียงใด
- MIN_EVENT_LENGTH: ระยะเวลาขั้นต่ำของเหตุการณ์การเคลื่อนไหว
- LOOK_BACK_WINDOW: ระยะเวลาที่จะจับภาพก่อนการเคลื่อนไหวแรกในเหตุการณ์การเคลื่อนไหว
- COOL_DOWN_PERIOD: ระยะเวลาที่การตรวจจับการเคลื่อนไหวจะหยุดชั่วคราวหลังจากบันทึกเหตุการณ์การเคลื่อนไหวแล้ว
export MOTION_SENSITIVITY=<low or medium or high> export MIN_EVENT_LENGTH=<0-3600> export LOOK_BACK_WINDOW=<0-3600> export COOL_DOWN_PERIOD=<0-3600>
เตรียมคำสั่งฟิลเตอร์การเคลื่อนไหว
การใช้ฟิลเตอร์การเคลื่อนไหวกับสตรีมอินพุตมี 2 แบบ ตัวเลือกแรกคือการส่งเหตุการณ์การเคลื่อนไหวไปยังสตรีมในคอนโซลระบบคลาวด์ ตัวเลือกที่ 2 คือการส่งเหตุการณ์การเคลื่อนไหวไปยังพื้นที่เก็บข้อมูลในเครื่อง
การส่งผลลัพธ์ไปยัง Cloud Console
คุณใช้ vaictl เพื่อสตรีมวิดีโอเอาต์พุตไปยัง Cloud Console ได้ เริ่มต้นด้วยการเปิดใช้งาน Vision AI API ใน Cloud Console
ลงทะเบียนสตรีมใหม่
- คลิกแท็บสตรีมในแผงด้านซ้ายของ Vertex AI Vision
- คลิก "ลงทะเบียน"
- ป้อน
motion-detection-stream
ในชื่อสตรีม - ในภูมิภาค ให้ป้อน
us-central1
- คลิกการลงทะเบียน
กำลังส่งผลลัพธ์ไปยังสตรีม
คำสั่งนี้จะสตรีมไฟล์วิดีโอไปยังสตรีม หากคุณใช้แฟล็ก –ลูป วิดีโอจะวนซ้ำในสตรีมจนกว่าคุณจะหยุดคำสั่ง เราจะเรียกใช้คำสั่งนี้เป็นงานเบื้องหลังเพื่อให้สตรีมได้อย่างต่อเนื่อง
เพิ่ม nohup
ที่ตอนต้นและ &
ที่ตอนท้ายเพื่อสร้างงานในเบื้องหลัง
INPUT_VIDEO=street_vehicles_people.mp4 vaictl -p $PROJECT \ -l $LOCATION_ID \ -c application-cluster-0 \ --service-endpoint visionai.googleapis.com \ send video-file --file-path $INPUT_VIDEO \ applying motion-filter --motion-sensitivity=$MOTION_SENSITIVITY \ --min-event-length=$MIN_EVENT_LENGTH \ --lookback-length=$LOOK_BACK_WINDOW \ --cooldown-length=$COOL_DOWN_PERIOD \ to streams motion-detection-stream --loop
ระบบอาจใช้เวลาประมาณ 100 วินาทีระหว่างที่เริ่มดำเนินการนำเข้าข้อมูลส่วนวิดีโอกับวิดีโอที่ปรากฏในแดชบอร์ด
หลังจากการส่งผ่านข้อมูลสตรีมพร้อมใช้งานแล้ว คุณจะดูฟีดวิดีโอในแท็บสตรีมของแดชบอร์ด Vertex AI Vision ได้โดยเลือกสตรีมสตรีมการเข้าชม
การส่งผลลัพธ์ไปยังพื้นที่เก็บข้อมูลในเครื่อง
คำสั่งนี้จะสตรีมไฟล์วิดีโอไปยังสตรีม
เพิ่ม nohup
ที่ตอนต้นและ &
ที่ตอนท้ายเพื่อสร้างงานในเบื้องหลัง
INPUT_VIDEO=street_vehicles_people.mp4 OUTPUT_PATH=<path_to_store_motion_events_on_local_disk> nohup vaictl -p $PROJECT \ -l $LOCATION_ID \ -c application-cluster-0 \ --service-endpoint visionai.googleapis.com \ send video-file --file-path $INPUT_VIDEO \ applying motion-filter --motion-sensitivity=$MOTION_SENSITIVITY \ --min-event-length=$MIN_EVENT_LENGTH \ --lookback-length=$LOOK_BACK_WINDOW \ --cooldown-length=$COOL_DOWN_PERIOD \ to mp4file --mp4-file-path=$OUTPUT_PATH --loop
5. โซนตรวจจับการเคลื่อนไหว
ในส่วนนี้ เราจะเจาะลึกเกี่ยวกับการใช้งานโซนตรวจจับการเคลื่อนไหวและวิธีกำหนดค่า โซนนี้มีวัตถุประสงค์เพื่อปรับปรุงการตรวจจับการเคลื่อนไหวโดยการมาสก์การเคลื่อนไหวที่มาจากพื้นที่ที่คุณไม่สนใจ
โซนตรวจจับการเคลื่อนไหวมี 2 ประเภทคือ (1) โซนบวกซึ่งการตรวจจับการเคลื่อนไหวจะทำงานเฉพาะในพื้นที่ที่มีคำอธิบายประกอบ (2) โซนลบที่การตรวจจับการเคลื่อนไหวจะไม่เกิดการเคลื่อนที่ใดๆ ในพื้นที่ที่มีคำอธิบายประกอบ
คำอธิบายประกอบโซน
ใช้แฟล็ก zone_annotation
ในคำสั่ง vaictl เพื่อป้อนพิกัดสำหรับรูปหลายเหลี่ยมโซนสตริง
ค่าเริ่มต้นว่างเปล่าสำหรับคำอธิบายประกอบโซน
คำอธิบายประกอบโซนจะเป็นอินพุตสตริงจากผู้ใช้ ซึ่งแสดงถึงโซนในเฟรมที่ผู้ใช้ต้องการซ่อนหรือโฟกัส ในการใส่คำอธิบายประกอบในโซน ผู้ใช้จะต้องระบุพิกัดรูปภาพของแกน x และแกน y สำหรับแต่ละโหนดในโซน โซนต้องมีโหนดอย่างน้อย 3 โหนดเพื่อสร้างรูปหลายเหลี่ยม เฟรมหนึ่งๆ อาจมีได้หลายโซนได้ หากโซนทับซ้อนกัน พื้นที่ซึ่งครอบคลุมโดยทั้ง 2 โซนจะยังคงครอบคลุมอยู่
คำอธิบายประกอบโซนมีไวยากรณ์อินพุตเฉพาะที่ต้องทำตาม
- หากต้องการแสดงถึงโหนดเดียว ให้ใช้
:
เพื่อเชื่อมแกน x และ y ของการทำงานร่วมกันของภาพ ตัวอย่างเช่น โหนดของ(0,0)
ที่มุมซ้ายบนจะแสดงเป็น0:0
- หากต้องการแสดงโหนดทั้งหมดในโซนเดียว ให้ใช้
;
เพื่อเชื่อมต่อโหนด ตัวอย่างเช่น สำหรับโซนที่มีโหนด(0,0)
,(100,0)
,(100,100)
และ(0, 100)
โซนจะมีเครื่องหมายเป็น0:0;100:0;100:100;0:100
ป้อนโหนดเป็นโหนดเชื่อมต่ออยู่ติดกันเสมอ โดยจะเลือกได้ทั้งลำดับตามเข็มนาฬิกาหรือทวนเข็มนาฬิกา
*โซนสี่เหลี่ยมจัตุรัสที่มี 4 โหนด
*โซนสามเหลี่ยมที่มีโหนด 3 โหนด
- หากต้องการแสดงหลายโซนในเฟรมเดียว ให้ใช้
-
เพื่อเชื่อมต่อโซนต่างๆ ตัวอย่างเช่น หากเราต้องการป้อนทั้ง(0,0)
,(100,0)
,(100,100)
,(0,100)
และ(120,120)
,(110,150)
,(200,160)
คำอธิบายประกอบโซนอินพุตจะเป็น0:0;100:0;100:100;0:100-120:120;110:150;200:160
*2 โซนภายในเฟรม
ในการหาพิกัดจากรูปภาพ มีเครื่องมือบางอย่างให้บริการทางออนไลน์เพื่อช่วยดูพิกัด ตัวอย่างเช่น โปรดดู Wolfram - ขอพิกัดจากรูปภาพ
ยกเว้นโซนที่มีคำอธิบายประกอบ
ใช้แฟล็ก exclude_annotated_zone
ในคำสั่ง vaictl เพื่อกำหนดค่าการตรวจจับการเคลื่อนไหวในโซนหรือนอกโซน
บูลีน เท็จเริ่มต้น
"ยกเว้นโซนที่มีคำอธิบายประกอบ" เป็นอินพุตบูลีนจากผู้ใช้ ซึ่งจะระบุว่าผู้ใช้ต้องการยกเว้นโซนที่มีคำอธิบายประกอบในการตรวจจับการเคลื่อนไหวหรือไม่
- หากตั้งค่าเป็น
true
โซนที่มีคำอธิบายประกอบจะทำหน้าที่เป็นโซนลบ ระบบจะไม่ตรวจจับการเคลื่อนไหวในโซนที่มีคำอธิบายประกอบ
*เรียกใช้การตรวจจับการเคลื่อนไหวนอกโซนอินพุตเท่านั้น
- หากตั้งค่าเป็น "เท็จ" โซนจะทำหน้าที่เป็นโซนบวกซึ่งจะโฟกัสการตรวจจับการเคลื่อนไหว
*เรียกใช้การตรวจจับการเคลื่อนไหวในโซนอินพุตเท่านั้น
6. ตัวอย่างตัวกรองการเคลื่อนไหวที่มีโซนตรวจจับการเคลื่อนไหว
ในตัวอย่างนี้ เราจะใช้วิดีโอที่มีต้นไม้อยู่ด้านหน้าอยู่ตลอดเวลาเป็นตัวอย่าง ในการตั้งค่าตัวกรองการเคลื่อนไหวแบบปกติ วิดีโอจะสร้างเหตุการณ์การเคลื่อนไหวเพียง 1 เหตุการณ์ซึ่งมีระยะเวลาของวิดีโอต้นฉบับ เนื่องจากตัวกรองการเคลื่อนไหวจะบันทึกโครงสร้างที่เคลื่อนไหวเป็น "เคลื่อนไหวตลอดเวลาตลอดทั้งวิดีโอ" อย่างไรก็ตาม โซนตรวจจับการเคลื่อนไหวช่วยให้เรามาสก์การเคลื่อนไหวออกจากต้นไม้ได้อย่างเหมาะสมและโฟกัสที่การเคลื่อนไหวจากรถและคนเดินเท้าได้
การเตรียมวิดีโอ
วิดีโอตัวอย่าง (gs://cloud-samples-data/vertex-ai-vision/dynamic-background-fall.mp4 ) ประกอบด้วยต้นไม้ รถยนต์ และคนเดินเท้าจาก www.changedetection.net
เครดิตวิดีโอ: N. กอยเอตต์ พี. เอ็ม. โจโดอิน เอฟ. Porikli, J. Konrad และ P. Ishwar, changedetection.net: ชุดข้อมูลการเปรียบเทียบการตรวจจับการเปลี่ยนแปลงใหม่ใน Proc IEEE Workshop on Change Detection (CDW-2012) ที่ CVPR-2012, พรอวิเดนซ์, รัฐโรดไอแลนด์, 16-21 มิ.ย., 2012
การเตรียมตัวแปรสภาพแวดล้อม
ตัวแปรของโปรเจ็กต์ Google Cloud
export PROJECT_ID=<Your Google Cloud project ID> export LOCATION_ID=us-central1 export LOCAL_FILE=street_vehicles_people.mp4
การกำหนดค่าตัวกรองการเคลื่อนไหวพื้นฐาน
export MOTION_SENSITIVITY=<low or medium or high> export MIN_EVENT_LENGTH=<0-3600> export LOOK_BACK_WINDOW=<0-3600> export COOL_DOWN_PERIOD=<0-3600>
การกำหนดค่าโซนตรวจจับการเคลื่อนไหว
เลือกจากด้านล่างเพื่อดูประเภทการใช้งานที่แตกต่างกันสำหรับโซนตรวจจับการเคลื่อนไหว
แยกต้นไม้ออกเพื่อการตรวจหาการเคลื่อนไหว
export ZONE_ANNOTATION="0:0;680:0;660:70;380:320;100:150" export EXCLUDE_ANNOTATED_ZONE=true
*เรียกใช้การตรวจจับการเคลื่อนไหวนอกโซนอินพุตเท่านั้น
โฟกัสการตรวจจับการเคลื่อนไหวบนถนน
export ZONE_ANNOTATION="0:300;780:300;780:480;0:480" export EXCLUDE_ANNOTATED_ZONE=false
*เรียกใช้การตรวจจับการเคลื่อนไหวนอกโซนอินพุตเท่านั้น
ส่งสตรีมวิดีโอที่มีตัวกรองการเคลื่อนไหว
ส่งเหตุการณ์การเคลื่อนไหวไปยัง Cloud Console
คุณใช้ vaictl เพื่อสตรีมวิดีโอเอาต์พุตไปยัง Cloud Console ได้ เริ่มต้นด้วยการเปิดใช้งาน Vision AI API ใน Cloud Console
ลงทะเบียนสตรีมใหม่
- คลิกแท็บสตรีมในแผงด้านซ้ายของ Vertex AI Vision
- คลิก "ลงทะเบียน"
- ป้อน
motion-detection-stream
ในชื่อสตรีม - ในภูมิภาค ให้ป้อน
us-central1
- คลิกการลงทะเบียน
กำลังส่งผลลัพธ์ไปยังสตรีม
คำสั่งนี้จะสตรีมไฟล์วิดีโอไปยังสตรีม หากคุณใช้แฟล็ก –ลูป วิดีโอจะวนซ้ำในสตรีมจนกว่าคุณจะหยุดคำสั่ง เราจะเรียกใช้คำสั่งนี้เป็นงานเบื้องหลังเพื่อให้สตรีมได้อย่างต่อเนื่อง
เพิ่ม nohup
ที่ตอนต้นและ &
ที่ตอนท้ายเพื่อสร้างงานในเบื้องหลัง
vaictl -p $PROJECT \ -l $LOCATION_ID \ -c application-cluster-0 \ --service-endpoint visionai.googleapis.com \ send video-file --file-path $INPUT_VIDEO \ applying motion-filter --motion-sensitivity=$MOTION_SENSITIVITY \ --min-event-length=$MIN_EVENT_LENGTH \ --lookback-length=$LOOK_BACK_WINDOW \ --cooldown-length=$COOL_DOWN_PERIOD \ --zone_annotation=ZONE_ANNOTATION \ --exclude_annotated_zone=$EXCLUDE_ANNOTATED_ZONE \ to streams motion-detection-stream --loop
ระบบอาจใช้เวลาประมาณ 100 วินาทีระหว่างที่เริ่มดำเนินการนำเข้าข้อมูลส่วนวิดีโอกับวิดีโอที่ปรากฏในแดชบอร์ด
หลังจากการส่งผ่านข้อมูลสตรีมพร้อมใช้งานแล้ว คุณจะดูฟีดวิดีโอในแท็บสตรีมของแดชบอร์ด Vertex AI Vision ได้โดยเลือกสตรีมสตรีมการเข้าชม
การส่งผลลัพธ์ไปยังพื้นที่เก็บข้อมูลในเครื่อง
คำสั่งนี้จะสตรีมไฟล์วิดีโอไปยังสตรีม หากคุณใช้แฟล็ก –ลูป วิดีโอจะวนซ้ำในสตรีมจนกว่าคุณจะหยุดคำสั่ง เราจะเรียกใช้คำสั่งนี้เป็นงานเบื้องหลังเพื่อให้สตรีมได้อย่างต่อเนื่อง
เพิ่ม nohup
ที่ตอนต้นและ &
ที่ตอนท้ายเพื่อสร้างงานในเบื้องหลัง
OUTPUT_PATH=<path_to_store_motion_events> vaictl -p $PROJECT \ -l $LOCATION_ID \ -c application-cluster-0 \ --service-endpoint visionai.googleapis.com \ send video-file --file-path $INPUT_VIDEO \ applying motion-filter --motion-sensitivity=$MOTION_SENSITIVITY \ --min-event-length=$MIN_EVENT_LENGTH \ --lookback-length=$LOOK_BACK_WINDOW \ --cooldown-length=$COOL_DOWN_PERIOD \ --zone_annotation=$ZONE_ANNOTATION \ --exclude_annotated_zone=$EXCLUDE_ANNOTATED_ZONE \ to mp4file --mp4-file-path=$OUTPUT_PATH --loop
7. ขอแสดงความยินดี
ยินดีด้วย คุณใช้งานห้องทดลองเสร็จแล้ว
ล้างข้อมูล
เพื่อหลีกเลี่ยงไม่ให้บัญชี Google Cloud เกิดการเรียกเก็บเงินสำหรับทรัพยากรที่ใช้ในบทแนะนำนี้ ให้สิ้นสุดการดำเนินการของ SDK VAT ผ่านบรรทัดคำสั่งด้วย ctrl
+ z
แหล่งข้อมูล
https://cloud.google.com/vision-ai/docs/overview
https://cloud.google.com/vision-ai/docs/motion-filtering-model
https://cloud.google.com/vision-ai/docs/create-manage-streams
ความคิดเห็น
คลิกที่นี่เพื่อแสดงความคิดเห็น