ซอฟต์แวร์วิชันซิสเต็มตามเหตุการณ์มีกระบวนการอย่างไร

กล้องบันทึกเหตุการณ์จะรายงานการเปลี่ยนแปลงของความสว่าง แทนที่จะส่งเฟรมวิดีโอแบบเดิมๆ ทุกๆ ช่วงเวลา โดยทั่วไปเหตุการณ์ที่ถอดรหัสจะระบุพิกเซล ขั้ว และการประทับเวลา ใบสมัครของคุณจะต้องรักษาความหมายของฟิลด์เหล่านั้นผ่านการได้มา การกรอง การบันทึก และการอนุมาน ที่ การเปรียบเทียบตามเหตุการณ์กับการเปรียบเทียบตามเฟรม อธิบายว่าโมเดลข้อมูลนั้นมีประโยชน์เมื่อใด

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

การเป็นตัวแทนมีประโยชน์สำหรับคำถามบูรณาการ
แพ็กเก็ต Raw หรือการบันทึกของผู้ขายการสร้างพฤติกรรมการได้มาและการถอดรหัสซ้ำตัวถอดรหัสที่ใช้งานสามารถอ่านอุปกรณ์และการแก้ไขรูปแบบนี้ได้หรือไม่
เหตุการณ์ที่ถอดรหัสการกรอง การวิเคราะห์เวลา และอัลกอริธึมเหตุการณ์หน่วยการประทับเวลา โดเมนนาฬิกา และแบบแผนพิกัดคืออะไร
พื้นผิวของเวลาหรือเทนเซอร์คล้ายว็อกเซลอัลกอริทึมที่ต้องการการนำเสนอชั่วคราวที่มีโครงสร้างการตั้งค่าประวัติ, binning และการทำให้เป็นมาตรฐานใดที่ต้องทำซ้ำ
ภาพกิจกรรมที่รวบรวมไว้การแสดงภาพหรือขั้นตอนการประมวลผลตามภาพที่เข้ากันได้หน้าต่างการสะสมทำให้เกิดความล่าช้าและการสูญเสียข้อมูลมากน้อยเพียงใด

วิธีประเมินกล้องเหตุการณ์ SDK

เริ่มต้นด้วย เซนเซอร์ เฟิร์มแวร์ของกล้อง และแพลตฟอร์มโฮสต์ที่แน่นอน การสาธิตเดสก์ท็อปไม่สนับสนุนอิมเมจ Linux ที่ฝังไว้, โปรเซสเซอร์ ARM หรือลิขสิทธิ์การผลิตของคุณ สอบถามซัพพลายเออร์เกี่ยวกับระบบปฏิบัติการที่รองรับ สถาปัตยกรรม CPU เงื่อนไขการแจกจ่ายซ้ำ และข้อกำหนดอินเทอร์เฟซของกล้อง ตรวจสอบแอปพลิเคชันบนแพลตฟอร์มที่ต้องการก่อนดำเนินการ บอร์ดฐานสำหรับโมดูลประมวลผล

  • การได้มา: การค้นหาอุปกรณ์ การกำหนดค่า การถอดรหัส และการรายงานข้อผิดพลาด
  • ระยะเวลา: ต้นกำเนิดการประทับเวลา การจัดการแบบโรลโอเวอร์ ทริกเกอร์ภายนอก และการจัดตำแหน่งหลายอุปกรณ์
  • ความสามารถในการทำซ้ำ: การบันทึก การส่งออกการกำหนดค่า และเวอร์ชันซอฟต์แวร์ที่ระบุ
  • การปรับใช้: การดำเนินการแบบไม่มีหัว, ไบนารีที่รองรับ, พฤติกรรมการรีสตาร์ทและข้อกำหนดสิทธิ์การใช้งาน
  • ความสามารถในการสังเกต: จำนวนเหตุการณ์ ความลึกของคิว ข้อมูลที่หลุด และการใช้ทรัพยากรโฮสต์

สร้างไปป์ไลน์ที่มีขอบเขตเวลาที่ชัดเจน

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

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

ใช้การประทับเวลา เซนเซอร์ เพื่ออธิบายว่าการสังเกตการณ์เกิดขึ้นเมื่อใด และใช้นาฬิกาโฮสต์แบบโมโนโทนิกเพื่อวัดระยะเวลาการประมวลผล การลบการประทับเวลาออกจากนาฬิกาที่ไม่เกี่ยวข้องไม่ได้สร้างเวลาแฝงจากต้นทางถึงปลายทางที่ถูกต้อง หากกล้องต้องใช้ร่วมกับ IMU หรือกล้องทั่วไป ให้สร้างความสัมพันธ์ของนาฬิกาและกระบวนการสอบเทียบตามที่อธิบายไว้ในของเรา คู่มือการซิงโครไนซ์เซ็นเซอร์-ฟิวชั่น.

ตัวอย่างการตรวจสอบการบันทึกขนาดเล็ก

ตัวอย่าง Python ต่อไปนี้นับเหตุการณ์ที่ถอดรหัสในการบันทึกที่รองรับ และรายงานช่วงเวลาของการประทับเวลา ใช้การสตรีม Metavision API ที่ได้รับการบันทึกไว้ และต้องมีการติดตั้งและการบันทึก SDK ที่เข้ากันได้ นี่เป็นตัวอย่างการตรวจสอบ ไม่ใช่เกณฑ์มาตรฐานของกล้อง ALVEXIS หรือเครื่องตรวจจับ

import argparse
from metavision_sdk_stream import Camera, CameraStreamSlicer

parser = argparse.ArgumentParser()
parser.add_argument("recording")
args = parser.parse_args()
source = Camera.from_file(args.recording)
count, first_us, last_us = 0, None, None

for batch in CameraStreamSlicer(source.move()):
    events = batch.events
    if events.size:
        start = int(events["t"][0])
        end = int(events["t"][-1])
        first_us = start if first_us is None else min(first_us, start)
        last_us = end if last_us is None else max(last_us, end)
        count += int(events.size)

span_s = 0.0 if first_us is None else (last_us - first_us) / 1_000_000
print({"events": count, "event_timestamp_span_s": span_s})

ช่วงการประทับเวลาครอบคลุมเหตุการณ์แรกถึงเหตุการณ์สุดท้ายที่สังเกตได้ มันไม่ได้วัดระยะเวลาของไฟล์ ความล่าช้าในการรับข้อมูล หรือปริมาณการประมวลผล ช่วงเวลาที่ว่างเปล่าและการรีเซ็ตนาฬิกาจำเป็นต้องมีการจัดการแยกต่างหากในการผลิต เก็บการกำหนดค่าอุปกรณ์และการบันทึกข้อมูลเมตาไว้ข้างไฟล์เพื่อให้วิศวกรคนที่สองสามารถทำซ้ำการตีความได้

ตรวจสอบฉากที่เงียบ ฉากที่วุ่นวาย และการกู้คืนความล้มเหลว

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

ทดสอบบันทึกมันสนับสนุนการตัดสินใจ
เล่นการบันทึกเดียวกันซ้ำการกำหนดค่า ความแตกต่างของเอาต์พุต และระยะเวลาการประมวลผลการเปลี่ยนแปลงซอฟต์แวร์สามารถประเมินซ้ำได้หรือไม่
เพิ่มกิจกรรมฉากความลึกของคิว การสูญเสียเหตุการณ์ และอายุเอาต์พุตระบบยังคงใช้งานได้ภายใต้โหลดสูงสุดหรือไม่?
เปลี่ยนหน้าต่างการประมวลผลความแม่นยำของแอปพลิเคชันและความล่าช้าของเซ็นเซอร์ต่อเอาต์พุตการแลกเปลี่ยนเวลา/รายละเอียดใดที่เหมาะกับความต้องการ
ยกเลิกการเชื่อมต่อและเชื่อมต่ออุปกรณ์อีกครั้งเวลาในการฟื้นตัว การรีเซ็ตนาฬิกา และความต่อเนื่องในการบันทึกบริการที่ปรับใช้สามารถกู้คืนได้อย่างคาดการณ์ได้หรือไม่

เมื่ออัลกอริทึมใช้โครงข่ายประสาทเทียม ให้ตรวจสอบเทนเซอร์ผลลัพธ์และตัวดำเนินการที่รองรับก่อนเลือกตัวเร่งความเร็ว กล้องเหตุการณ์ไม่จำเป็นต้องใช้ NPU โดยอัตโนมัติ และ NPU จะไม่ยอมรับสตรีมเหตุการณ์โดยอัตโนมัติ ของเรา คู่มือสถาปัตยกรรม FPGA, NPU และ MPU แยกบริการการได้มา การประมวลผลล่วงหน้า การอนุมาน และแอปพลิเคชันออกจากกัน

คำถามก่อนเลือกซอฟต์แวร์สแต็ค

ฉันสามารถใช้โมเดลคอมพิวเตอร์วิทัศน์ปกติได้หรือไม่

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

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

ไม่ ยืนยันสถาปัตยกรรม CPU, ระบบปฏิบัติการ, อินเทอร์เฟซ เซนเซอร์, ไดรเวอร์, ใบอนุญาต SDK และการใช้ทรัพยากรอย่างยั่งยืนของแพลตฟอร์มเป้าหมายจริง

ฉันควรส่งอะไรไปเพื่อหารือเกี่ยวกับการบูรณาการ?

ส่งกล้องหรือข้อมูลอ้างอิง เซนเซอร์, การบันทึกตัวอย่าง, เอาต์พุตที่ต้องการ, ความล่าช้าที่ยอมรับได้, แพลตฟอร์มโฮสต์, อินเทอร์เฟซ และสภาพแวดล้อมการใช้งาน ข้อมูลเหล่านี้ทำให้การอภิปรายเป็นรูปธรรมเพียงพอที่จะระบุความเสี่ยงในการบูรณาการครั้งแรก

การมองเห็นของ Neuromorphic ในไปป์ไลน์การมองเห็นของคอมพิวเตอร์

กล้องเหตุการณ์มักถูกกล่าวถึงภายใต้การมองเห็นแบบนิวโรมอร์ฟิก เนื่องจากบันทึกเอาต์พุตของกล้องเปลี่ยนแปลงที่แต่ละพิกเซล แทนที่จะเป็นลำดับภาพที่สมบูรณ์คงที่ การแสดงข้อมูลนั้นไม่ได้ให้การตรวจจับวัตถุหรือผลลัพธ์ของโครงข่ายประสาทเทียมโดยอัตโนมัติ ซอฟต์แวร์ยังคงต้องการงานที่กำหนดไว้ อัลกอริธึมที่เข้ากันได้ และเกณฑ์การยอมรับที่วัดผลได้

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

วางแผนกำหนดเวลาก่อน การผสานข้อมูลเซนเซอร์

ข้อมูลอ้างอิงทางเทคนิค

ตัวอย่างผู้จำหน่ายอธิบายถึงระบบนิเวศที่ได้รับการสนับสนุนของตนเอง ยืนยันความเข้ากันได้และใบอนุญาตสำหรับอุปกรณ์และการปรับใช้ที่เลือก

วางแผนการรวมกล้องเหตุการณ์ของคุณ