Neuromorphic Vision
تستشعر الرؤية العصبية الشكل المشاهد كما تفعل الشبكية: إذ تسجّل كاميرات الأحداث تغيرات السطوع لكل بكسل في غضون ميكروثوانٍ. تعرّف على آلية عمل الأحداث واستخداماتها.
الرؤية العصبية الشكل نهج في الرؤية الحاسوبية يستشعر الصور ويعالجها بالطريقة التي تعمل بها شبكية العين والدماغ البيولوجيان. وجهازها الأساسي، وهو كاميرا الأحداث أو مستشعر الرؤية الديناميكية (DVS)، مزود ببكسلات تعمل استقلالًا، ويبلّغ كل منها عن تغير السطوع لحظة حدوثه بدلًا من التقاط إطارات كاملة بمعدل ثابت. ويكون الناتج تدفقًا متناثرًا من الأحداث ذات توقيت بدقة الميكروثانية، ونطاق ديناميكي عالٍ، وضبابية حركة شبه معدومة، فيما لا ينتج المشهد الساكن إلا قدرًا ضئيلًا جدًا من البيانات. ونشأ هذا المجال من الهندسة العصبية الشكل التي طورتها مجموعة كارفر ميد في Caltech أواخر ثمانينيات القرن العشرين، حيث حاكت شرائحها التناظرية الدارات العصبية، وتُعد الشبكات العصبية النابضة نظيرها الطبيعي للمعالجة، إذ تحسب باستخدام النوع نفسه من الأحداث المتناثرة والمؤقتة.
آلية عمل كاميرات الأحداث#
يخزن كل بكسل لوغاريتم السطوع الذي رصده عند آخر حدث. وعندما يختلف لوغاريتم السطوع الحالي عن تلك القيمة المرجعية بأكثر من عتبة التباين، يصدر البكسل حدثًا يشفّر موقعه وطابعه الزمني وقطبيته، ON للسطوع الأعلى أو OFF للسطوع الأقل، ثم يعيد ضبط قيمته المرجعية. ويجعل العمل في المجال اللوغاريتمي البكسل يستجيب للتباين النسبي، لذا يتعامل المستشعر نفسه مع الظلال العميقة وضوء الشمس المباشر، مع نطاق ديناميكي يبلغ نحو 140 dB مقارنة بنحو 60 dB لكاميرات الإطارات.
يمكن تطبيق القاعدة نفسها على الفيديو العادي لمعرفة مدى تناثر الناتج:
import cv2
import numpy as np
# Read a clip of a person exercising in front of a fixed camera
cap = cv2.VideoCapture("https://github.com/ultralytics/assets/releases/download/v0.0.0/solution_ci_pose_demo.mp4")
ok, frame = cap.read()
reference = np.log1p(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY).astype(np.float32))
threshold = 0.2 # contrast threshold on log brightness
events, samples = 0, 0
while True:
ok, frame = cap.read()
if not ok:
break
brightness = np.log1p(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY).astype(np.float32))
# A pixel fires an ON or OFF event only when its brightness changed by more than the threshold
fired = np.abs(brightness - reference) >= threshold
reference[fired] = brightness[fired]
events += fired.sum()
samples += fired.size
print(f"{events:,} events vs {samples:,} pixel values in frames ({100 * events / samples:.2f}%)")يطبع 233,492 events vs 13,593,600 pixel values in frames (1.72%): مع كاميرا ثابتة، لا يتغير من إطار إلى آخر سوى الشخص الذي يمارس التمارين، لذا لا يحمل تدفق الأحداث سوى 1.72% من القيم التي كانت ستحملها الإطارات الكاملة. وتحول المحاكيات مثل v2e مقاطع الفيديو إلى بيانات تدريب للأحداث بالطريقة نفسها، مع إمكانية رفع معدل أخذ العينات أولًا باستخدام استيفاء الإطارات وإضافة اختلاف العتبة والضوضاء لكل بكسل.
كاميرات الأحداث مقابل كاميرات الإطارات#
تلائم كاميرات الأحداث الحركة السريعة والمشاهد ذات الإضاءة الشديدة التفاوت والاستشعار الدائم التشغيل باستخدام الذكاء الاصطناعي الطرفي حين لا يتغير الكثير، كما يتناسب عرض نطاقها مع النشاط في المشهد. ولا تسجل هذه الكاميرات السطوع المطلق أو الألوان؛ فالكاميرا الساكنة التي تراقب مشهدًا ساكنًا لا ترصد شيئًا، بينما تغمر الكاميرا المتحركة المخرجات بأحداث صادرة عن كل حافة. وتلتقط المستشعرات الهجينة مثل DAVIS من iniVation أيضًا إطارات قياسية من البكسلات نفسها، كما تجمع أنظمة كثيرة بين كاميرا أحداث وكاميرا إطارات عبر دمج المستشعرات. وتتوقع النماذج القياسية مثل الشبكات العصبية الالتفافية (CNNs) صورًا كثيفة، لذا تحوّل خطوط المعالجة الأحداث إلى تمثيل كثيف أو تعالجها مباشرةً:
- إطارات الأحداث: يؤدي عدّ أحداث ON وOFF لكل بكسل خلال نافذة زمنية إلى صورة ذات قناتين يمكن لأي CNN قراءتها.
- الأسطح الزمنية والشبكات الحجمية: يحافظ تخزين أحدث طابع زمني لكل بكسل، أو تقسيم الأحداث إلى عدة شرائح زمنية، على المعلومات الزمنية التي تتجاهلها الأعداد العادية.
- الشبكات النابضة على الشرائح العصبية الشكل: تعالج معالجات مثل Loihi 2 من Intel الأحداث مباشرةً على هيئة نبضات، ولا تستهلك الطاقة إلا عند وصول الأحداث.
- إعادة بناء الشدة: تعيد شبكات مثل E2VID بناء فيديو بتدرج رمادي من تدفق الأحداث، ما يتيح تشغيل النماذج المعتمدة على الإطارات عليه.
تقرأ Ultralytics YOLO عدد قنوات الإدخال من المفتاح channels في ملف YAML لمجموعة البيانات، كما في مجموعة بيانات COCO8-Multispectral ذات القنوات العشر، بحيث يمكن لنموذج YOLO26 اكتشاف الأجسام أن يتدرب مباشرةً على إطارات أحداث ذات قناتين لعدّي ON وOFF.
تطبيقات عملية#
- الإدراك للسيارات: جمعت دراسة نُشرت في Nature عام 2024 بين كاميرا ملونة بمعدل 20 FPS وكاميرا أحداث، واكتشفت أجسامًا على الطريق بزمن استجابة كاميرا بمعدل 5,000 FPS، وبعرض نطاق كاميرا بمعدل 45 FPS.
- الطائرات المسيّرة والروبوتات: تفادت طائرة رباعية المراوح مزودة بكاميرا أحداث من جامعة زيورخ عوائق قُذفت نحوها بسرعات نسبية تصل إلى 10 أمتار في الثانية، بزمن استجابة إجمالي بلغ 3.5 ميلي ثانية.
- المراقبة الصناعية: تعد كاميرات الأحداث الأجزاء سريعة الحركة، وتقيس اهتزاز الآلات، وتتتبع العمليات عالية السرعة، كما تبيع شركات تصنيع الكاميرات الصناعية مثل IDS نماذج قائمة على الأحداث ومبنية على مستشعرات Prophesee.










