واقعہ پر مبنی وژن سافٹ ویئر کیا عمل کرتا ہے؟
ایک ایونٹ کیمرا ہر وقفہ پر روایتی ویڈیو فریم فراہم کرنے کے بجائے چمک میں تبدیلی کی اطلاع دیتا ہے۔ ڈی کوڈ شدہ واقعہ عام طور پر ایک پکسل، پولرٹی اور ٹائم اسٹیمپ کی شناخت کرتا ہے۔ آپ کی درخواست کو حصول، فلٹرنگ، ریکارڈنگ اور تخمینہ کے ذریعے ان فیلڈز کے معنی کو محفوظ رکھنا چاہیے۔ دی ایونٹ پر مبنی بمقابلہ فریم پر مبنی موازنہ وضاحت کرتا ہے کہ ڈیٹا ماڈل کب مفید ہے۔
ڈیزائن میں تین فارمیٹس کی تمیز کریں: سینسر یا ٹرانسپورٹ انکوڈنگ، ڈی کوڈ شدہ ایونٹ کی نمائندگی جو سافٹ ویئر کے ذریعے استعمال کی جاتی ہے، اور نمائندگی کو الگورتھم میں منتقل کیا جاتا ہے۔ خام سینسر پیکٹوں پر مشتمل ایک فائل، ڈی کوڈ شدہ واقعات کی ایک صف اور ایک جمع شدہ تصویر مختلف مقاصد کو پورا کرتی ہے۔ ان کے درمیان تبدیل کرنے سے میموری کا استعمال، پروسیسنگ لاگت اور نیچے کی طرف دستیاب وقت کی معلومات کو تبدیل کیا جا سکتا ہے۔
| نمائندگی | کے لیے مفید ہے۔ | انضمام کا سوال |
|---|---|---|
| خام پیکٹ یا وینڈر کی ریکارڈنگ | حصول اور ضابطہ کشائی کے رویے کو دوبارہ تیار کرنا | کیا تعینات کردہ ڈیکوڈر اس عین مطابق ڈیوائس اور فارمیٹ پر نظرثانی کو پڑھ سکتا ہے؟ |
| ڈی کوڈ شدہ واقعات | فلٹرنگ، ٹائمنگ کا تجزیہ اور ایونٹ کے مقامی الگورتھم | ٹائم اسٹیمپ یونٹ، کلاک ڈومین اور کوآرڈینیٹ کنونشن کیا ہیں؟ |
| وقت کی سطحیں یا ووکسیل نما ٹینسر | الگورتھم جن کو ایک منظم وقتی نمائندگی کی ضرورت ہے۔ | کون سی ہسٹری، بائننگ اور نارملائزیشن سیٹنگز کو دوبارہ پیش کیا جانا چاہیے؟ |
| جمع شدہ ایونٹ کی تصاویر | تصور یا ایک ہم آہنگ تصویر پر مبنی پروسیسنگ مرحلہ | جمع کرنے والی کھڑکی سے کتنی تاخیر اور معلومات کا نقصان ہوتا ہے؟ |
ایونٹ کیمرہ کا اندازہ کیسے لگایا جائے SDK
عین مطابق سینسر، کیمرہ فرم ویئر اور میزبان پلیٹ فارم کے ساتھ شروع کریں۔ ڈیسک ٹاپ کا مظاہرہ ایمبیڈڈ Linux امیج، اے آر ایم پروسیسر یا آپ کے پروڈکشن لائسنس کے لیے سپورٹ قائم نہیں کرتا ہے۔ فراہم کنندہ سے تعاون یافتہ آپریٹنگ سسٹمز، سی پی یو آرکیٹیکچرز، دوبارہ تقسیم کے حالات اور کیمرہ انٹرفیس کے تقاضوں کے لیے پوچھیں۔ کمپیوٹ ماڈیول کے لیے کیریئر سرکٹ بورڈ کو ارتکاب کرنے سے پہلے مطلوبہ پلیٹ فارم پر درخواست کی تصدیق کریں۔
- حصول: ڈیوائس کی دریافت، ترتیب، ضابطہ کشائی اور غلطی کی رپورٹنگ۔
- ٹائمنگ: ٹائم اسٹیمپ کی اصل، رول اوور ہینڈلنگ، بیرونی محرکات اور ملٹی ڈیوائس الائنمنٹ۔
- تولیدی صلاحیت: ریکارڈنگ، کنفیگریشن ایکسپورٹ اور ایک شناخت شدہ سافٹ ویئر ورژن۔
- تعیناتی: ہیڈ لیس آپریشن، تعاون یافتہ بائنریز، دوبارہ شروع کرنے کا برتاؤ اور لائسنس کی شرائط۔
- مشاہدہ: ایونٹ کی گنتی، قطار کی گہرائی، گرا ہوا ڈیٹا اور میزبان وسائل کا استعمال۔
واضح وقت کی حدود کے ساتھ ایک پائپ لائن بنائیں
حصول کو مہنگے ویژولائزیشن، ڈسک رائٹنگ اور ماڈل انفرنس سے الگ رکھیں۔ بصورت دیگر ایک سست صارف الگورتھم شروع ہونے سے پہلے نئے ڈیٹا میں تاخیر کر سکتا ہے۔ ایک پابند قطار اور ایک واضح اوورلوڈ پالیسی کی وضاحت کریں۔ سب سے پرانی کھڑکی کو گرانا، دلچسپی کے علاقے کو کم کرنا اور غلطی سے رکنے کے مختلف نتائج ہوتے ہیں۔ اس طرز عمل کا انتخاب کریں جو درخواست کے مطابق ہو اور جب ایسا ہوتا ہے تو اسے ریکارڈ کریں۔
مشاہدات کب ہوئے اس کی وضاحت کرنے کے لیے سینسر ٹائم اسٹیمپ، اور پروسیسنگ کے دورانیے کی پیمائش کے لیے ایک یکسر میزبان گھڑی کا استعمال کریں۔ غیر متعلقہ گھڑیوں سے ٹائم اسٹیمپ کو گھٹانے سے آخر سے آخر تک ایک درست تاخیر پیدا نہیں ہوتی ہے۔ اگر کیمرے کو 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 لائسنس اور اصل ہدف پلیٹ فارم کے مستقل وسائل کے استعمال کی تصدیق کریں۔
انضمام کی بحث کے لیے مجھے کیا بھیجنا چاہیے؟
کیمرہ یا سینسر کا حوالہ، نمونہ ریکارڈنگ، مطلوبہ آؤٹ پٹ، قابل قبول تاخیر، میزبان پلیٹ فارم، انٹرفیس اور تعیناتی کا ماحول بھیجیں۔ یہ ان پٹ بحث کو پہلے انضمام کے خطرات کی نشاندہی کرنے کے لیے کافی ٹھوس بناتے ہیں۔
کمپیوٹر وژن پائپ لائن میں نیورومورفک وژن
ایونٹ کیمروں پر اکثر نیورومورفک وژن کے تحت تبادلہ خیال کیا جاتا ہے کیونکہ ان کے آؤٹ پٹ ریکارڈ مکمل تصاویر کی ایک مقررہ ترتیب کے بجائے انفرادی پکسلز میں تبدیل ہوتے ہیں۔ ڈیٹا کی وہ نمائندگی خود بخود آبجیکٹ کا پتہ لگانے یا نیورل نیٹ ورک کا نتیجہ فراہم نہیں کرتی ہے۔ سافٹ ویئر کو اب بھی ایک متعین کام، ایک ہم آہنگ الگورتھم اور قابل قبول قبولیت کے معیار کی ضرورت ہے۔
فریم پر مبنی کمپیوٹر ویژن ٹولز کے ساتھ انضمام کرتے وقت، ایک ایونٹ اسٹریم کو ٹائم ونڈو امیج یا کسی اور نمائندگی میں تبدیل کیا جا سکتا ہے۔ اگر کام ٹھیک وقتی معلومات پر منحصر ہے تو اصل ٹائم اسٹیمپ کو برقرار رکھیں۔ مکمل تبادلوں اور پروسیسنگ پائپ لائن کا اندازہ کریں؛ اکیلے ایک پرکشش دوبارہ تعمیر شدہ تصویر حتمی اطلاق کی درستگی یا تاخیر کو قائم نہیں کرتی ہے۔
سینسر ڈیٹا فیوژن سے پہلے وقت کی منصوبہ بندی کریں۔
تکنیکی حوالہ جات
- Prophesee: Python سٹریمنگ کے ساتھ شروعات کرنا API
- پیشن گوئی: کیمروں اور فائلوں سے واقعات پڑھنا
- Gallego et al.: واقعہ پر مبنی وژن - ایک سروے
وینڈر کی مثالیں ان کے اپنے تعاون یافتہ ماحولیاتی نظام کی وضاحت کرتی ہیں۔ منتخب کردہ ڈیوائس اور تعیناتی کے لیے مطابقت اور لائسنسنگ کی تصدیق کریں۔
