1. วัตถุประสงค์
ภาพรวม
Codelab นี้มุ่งเน้นที่การสร้างแอปพลิเคชัน Vertex AI Vision แบบต้นทางถึงปลายทางเพื่อสาธิตการส่งวิดีโอด้วยฟีเจอร์การกรองการเคลื่อนไหว ในบทแนะนำนี้ เราจะอธิบายพารามิเตอร์ต่างๆ ในการกำหนดค่าตัวกรองการเคลื่อนไหว
- ความไวในการตรวจจับการเคลื่อนไหว
- ระยะเวลาขั้นต่ำของเหตุการณ์
- กรอบเวลามองย้อนกลับ
- ระยะเวลาพัก
- โซนการตรวจจับการเคลื่อนไหว
สิ่งที่คุณจะได้เรียนรู้
- วิธีส่งผ่านข้อมูลวิดีโอสำหรับการสตรีม
- ฟีเจอร์ต่างๆ ที่มีให้ใช้งานในฟิลเตอร์การเคลื่อนไหวและวิธีใช้
- ตําแหน่งที่จะดูสถิติของตัวกรองการเคลื่อนไหว
- วิธีปรับการตั้งค่าตามวิดีโอ
2. ก่อนที่คุณจะเริ่มต้น
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์ หมายเหตุ: หากไม่มีแผนที่จะเก็บทรัพยากรที่สร้างในกระบวนการนี้ ให้สร้างโปรเจ็กต์แทนการเลือกโปรเจ็กต์ที่มีอยู่ หลังจากทำตามขั้นตอนเหล่านี้แล้ว คุณจะลบโปรเจ็กต์ซึ่งเป็นการนำทรัพยากรทั้งหมดที่เชื่อมโยงกับโปรเจ็กต์นี้ออกได้ ไปที่เครื่องมือเลือกโปรเจ็กต์
- ตรวจสอบว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธีตรวจสอบว่าเปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้ว
- เปิดใช้ Compute Engine และ Vision AI API เปิดใช้ API
สร้างบัญชีบริการ
- ในคอนโซล Google Cloud ให้ไปที่หน้าสร้างบัญชีบริการ ไปที่ "สร้างบัญชีบริการ"
- เลือกโปรเจ็กต์
- ป้อนชื่อในช่องชื่อบัญชีบริการ คอนโซล Google Cloud จะกรอกข้อมูลในช่องรหัสบัญชีบริการตามชื่อนี้ ป้อนคำอธิบายในช่องคำอธิบายบัญชีบริการ เช่น บัญชีบริการสําหรับการเริ่มต้นใช้งานอย่างรวดเร็ว
- คลิกสร้างและต่อไป
- หากต้องการให้สิทธิ์เข้าถึงโปรเจ็กต์ โปรดมอบบทบาทต่อไปนี้ให้กับบัญชีบริการของคุณ Vision AI > Vision AI Editor, Compute Engine > ผู้ดูแลระบบอินสแตนซ์คอมพิวเตอร์ (เบต้า), พื้นที่เก็บข้อมูล > ผู้ดูออบเจ็กต์พื้นที่เก็บข้อมูล † เลือกบทบาทในรายการเลือกบทบาท หากต้องการเพิ่มบทบาท ให้คลิกเพิ่มบทบาทอื่น แล้วเพิ่มบทบาทเพิ่มเติมแต่ละบทบาท หมายเหตุ: ช่องบทบาทจะส่งผลต่อทรัพยากรที่บัญชีบริการของคุณเข้าถึงได้ในโปรเจ็กต์ คุณจะเพิกถอนบทบาทเหล่านี้หรือให้บทบาทเพิ่มเติมในภายหลังได้ ในสภาพแวดล้อมการใช้งานจริง อย่าให้บทบาทเจ้าของ เอดิเตอร์ หรือผู้ดู แต่ให้มอบบทบาทที่กําหนดไว้ล่วงหน้าหรือบทบาทที่กําหนดเองที่ตรงกับความต้องการของคุณแทน
- คลิกต่อไป
- คลิกเสร็จสิ้นเพื่อสร้างบัญชีบริการให้เสร็จสมบูรณ์ อย่าปิดหน้าต่างเบราว์เซอร์ของคุณ คุณจะต้องใช้รหัสนี้ในขั้นตอนถัดไป
สร้างคีย์บัญชีบริการ
- ในคอนโซล Google Cloud ให้คลิกอีเมลของบัญชีบริการที่คุณสร้างขึ้น
- คลิก Keys
- คลิกเพิ่มคีย์ แล้วคลิกสร้างคีย์ใหม่
- คลิกสร้าง ระบบจะดาวน์โหลดไฟล์คีย์ JSON ลงในคอมพิวเตอร์
- คลิกปิด
- ติดตั้งและเริ่มต้นใช้งาน Google Cloud CLI
† บทบาทที่จําเป็นเฉพาะในกรณีที่คุณคัดลอกไฟล์วิดีโอตัวอย่างจากที่เก็บข้อมูล Cloud Storage
3. ตัวกรองการเคลื่อนไหว
ตัวกรองการเคลื่อนไหวจะจับภาพการเคลื่อนไหวและกลุ่มวิดีโอผลิตภัณฑ์ที่มีเหตุการณ์การเคลื่อนไหว การปรับความไวต่อการเคลื่อนไหว ระยะเวลาขั้นต่ำของเหตุการณ์ กรอบเวลามองย้อนกลับ ระยะเวลาพัก และโซนตรวจจับการเคลื่อนไหวจะช่วยให้ผู้ใช้กำหนดค่าตัวกรองตามความต้องการของตนเองได้
การกำหนดค่าตัวกรองการเคลื่อนไหว
ฟิลเตอร์การเคลื่อนไหวมีการกำหนดค่า 5 รายการสำหรับการปรับแต่ง
- ความไวในการตรวจจับการเคลื่อนไหว: ระดับความไวที่ควรเรียกให้การเคลื่อนไหวทำงาน
- ระยะเวลาขั้นต่ำของเหตุการณ์: ระยะเวลาขั้นต่ำที่ระบบจะบันทึกเหตุการณ์การเคลื่อนไหว
- กรอบเวลามองย้อนกลับ: ระยะเวลาที่วิดีโอควรเริ่มบันทึกก่อนที่จะตรวจพบเหตุการณ์การเคลื่อนไหว
- ระยะเวลาพัก: หลังจากเหตุการณ์การเคลื่อนไหวสิ้นสุดลง ระบบจะเข้าสู่ระยะเวลาพักที่มีระยะเวลาตามที่ระบุ ในระหว่างระยะเวลาพัก เหตุการณ์การเคลื่อนไหวจะไม่ทริกเกอร์
- โซนการตรวจจับการเคลื่อนไหว: โซนที่ผู้ใช้กําหนดค่าเพื่อระบุตําแหน่งที่ควรทําการตรวจจับการเคลื่อนไหว (จะอธิบายอย่างละเอียดในส่วนถัดไป)
ความไวในการตรวจจับการเคลื่อนไหว
ใช้ Flag 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 วินาทีก่อนที่ระบบจะตรวจพบเหตุการณ์การเคลื่อนไหว
ระยะเวลาพัก
ใช้ Flag cool_down_period_in_seconds
ในคําสั่ง vaictl
จำนวนเต็ม ค่าเริ่มต้นคือ 300 วินาที ช่วงเวลาตั้งแต่ 0 วินาทีถึง 3,600 วินาที
ระยะเวลาพักคือระยะเวลาที่การตรวจจับการเคลื่อนไหวจะหยุดชั่วคราวหลังจากที่จับเหตุการณ์การเคลื่อนไหวได้ ในระหว่างระยะเวลาพัก ระบบจะไม่ประมวลผลเพื่อตรวจหาการเคลื่อนไหว
4. ตัวอย่างตัวกรองการเคลื่อนไหวพื้นฐาน
คู่มือ Vaictl SDK
หากต้องการตรวจสอบvaictl
ด้วยตนเองสำหรับสตรีมอินพุตที่มีตัวกรองการเคลื่อนไหว ให้ใช้คำสั่งด้านล่าง
vaictl send video-file applying motion-filter -h
เตรียมวิดีโอตัวอย่าง
- คุณคัดลอกวิดีโอตัวอย่างได้ด้วยคำสั่ง 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 .
เตรียมตัวแปรสภาพแวดล้อม
ตั้งค่าตัวแปรสภาพแวดล้อมด้านล่างเพื่อใช้เทมเพลตคำสั่งที่ระบุ
ตัวแปร Vaictl
- 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
ตัวแปรตัวกรองการเคลื่อนไหว
- 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 เพื่อสตรีมข้อมูลวิดีโอเอาต์พุตไปยังคอนโซลระบบคลาวด์ได้ เริ่มต้นด้วยการเปิดใช้งาน 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 วินาทีระหว่างการเริ่มการนำเข้า Vaictl กับเวลาที่วิดีโอปรากฏในแดชบอร์ด
หลังจากการส่งผ่านข้อมูลสตรีมพร้อมใช้งานแล้ว คุณจะเห็นฟีดวิดีโอในแท็บสตรีมของหน้าแดชบอร์ด 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) โซนลบซึ่งการตรวจจับการเคลื่อนไหวจะไม่สนใจการเคลื่อนไหวในพื้นที่ที่กำกับเนื้อหาไว้
คําอธิบายประกอบโซน
ใช้ Flag 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 - Get Coordinates from Image
ยกเว้นโซนที่มีคำอธิบายประกอบ
ใช้ Flag exclude_annotated_zone
ในคำสั่ง vaictl เพื่อกำหนดค่าการตรวจจับการเคลื่อนไหวในโซนหรือนอกโซน
บูลีน เท็จเริ่มต้น
ยกเว้นโซนที่กำกับเนื้อหาคืออินพุตบูลีนจากผู้ใช้ ซึ่งระบุว่าผู้ใช้ต้องการยกเว้นโซนที่กำกับเนื้อหาในการตรวจจับการเคลื่อนไหวหรือไม่
- หากตั้งค่าเป็น
true
โซนที่มีคำอธิบายประกอบจะทำหน้าที่เป็นโซนเชิงลบ ระบบจะไม่ตรวจจับการเคลื่อนไหวในโซนที่กำกับเนื้อหา
*เรียกใช้การตรวจจับการเคลื่อนไหวนอกโซนอินพุตเท่านั้น
- หากตั้งค่าเป็นเท็จ โซนจะทำหน้าที่เป็นโซนบวก ซึ่งการตรวจจับการเคลื่อนไหวจะมุ่งเน้นไปที่โซนนี้
*เรียกใช้การตรวจจับการเคลื่อนไหวในโซนอินพุตเท่านั้น
6. ตัวอย่างฟิลเตอร์การเคลื่อนไหวที่มีโซนการตรวจจับการเคลื่อนไหว
ในตัวอย่างนี้ เราจะใช้วิดีโอที่มีต้นไม้เคลื่อนไหวอยู่ตลอดเวลาในเบื้องหน้าเป็นตัวอย่าง ในการตั้งค่าตัวกรองการเคลื่อนไหวปกติ วิดีโอจะสร้างเหตุการณ์การเคลื่อนไหวเพียงรายการเดียวที่มีระยะเวลาเท่ากับวิดีโอต้นฉบับ เนื่องจากตัวกรองการเคลื่อนไหวจะบันทึกต้นไม้ที่เคลื่อนไหวเป็น "เคลื่อนไหวอย่างต่อเนื่องตลอดทั้งวิดีโอ" อย่างไรก็ตาม โซนตรวจจับการเคลื่อนไหวช่วยให้เราปกปิดการเคลื่อนไหวจากต้นไม้ได้อย่างเหมาะสมและมุ่งเน้นที่การเคลื่อนไหวจากรถยนต์และคนเดินเท้า
การเตรียมวิดีโอ
วิดีโอตัวอย่าง (gs://cloud-samples-data/vertex-ai-vision/dynamic-background-fall.mp4 ) มีต้นไม้ รถยนต์ และคนเดินเท้าจาก www.changedetection.net
เครดิตวิดีโอ: N. โกเยตต์ พี. เอ็ม. Jodoin, F. Porikli, J. Konrad และ P. Ishwar, changedetection.net: A new change detection benchmark dataset, in Proc. IEEE Workshop on Change Detection (CDW-2012) at CVPR-2012, Providence, RI, 16-21 Jun., 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
*เรียกใช้การตรวจจับการเคลื่อนไหวนอกโซนอินพุตเท่านั้น
ส่งสตรีมวิดีโอที่มีฟิลเตอร์การเคลื่อนไหว
ส่งเหตุการณ์การเคลื่อนไหวไปยังคอนโซลระบบคลาวด์
คุณสามารถใช้ vaictl เพื่อสตรีมข้อมูลวิดีโอเอาต์พุตไปยังคอนโซลระบบคลาวด์ได้ เริ่มต้นด้วยการเปิดใช้งาน 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 วินาทีระหว่างการเริ่มการนำเข้า Vaictl กับเวลาที่วิดีโอปรากฏในแดชบอร์ด
หลังจากการส่งผ่านข้อมูลสตรีมพร้อมใช้งานแล้ว คุณจะเห็นฟีดวิดีโอในแท็บสตรีมของหน้าแดชบอร์ด Vertex AI Vision โดยเลือกสตรีมการจราจร
การส่งผลลัพธ์ไปยังพื้นที่เก็บข้อมูลในเครื่อง
คำสั่งนี้จะสตรีมไฟล์วิดีโอไปยังสตรีม หากใช้ Flag –loop ระบบจะเล่นวิดีโอซ้ำในสตรีมจนกว่าคุณจะหยุดคําสั่ง เราจะเรียกใช้คําสั่งนี้เป็นงานเบื้องหลังเพื่อให้สตรีมต่อไป
เพิ่ม 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. ขอแสดงความยินดี
ยินดีด้วย คุณใช้งานห้องทดลองเสร็จแล้ว
ล้างข้อมูล
โปรดสิ้นสุดการดำเนินการ Vaictl SDK ผ่านบรรทัดคำสั่งด้วย ctrl
+ z
เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้
แหล่งข้อมูล
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
ความคิดเห็น
คลิกที่นี่เพื่อแสดงความคิดเห็น