Какво обработва базираният на събития софтуер за зрение?

Камера за събития отчита промени в яркостта, вместо да доставя конвенционален видео кадър на всеки интервал. Декодираното събитие обикновено идентифицира пиксел, полярност и клеймо за време. Вашето приложение трябва да запази значението на тези полета чрез придобиване, филтриране, запис и извод. The сравнение на базата на събитие спрямо базирано на рамка обяснява кога този модел на данни е полезен.

Разграничете три формата в дизайна: сензорно или транспортно кодиране, декодирано представяне на събитие, използвано от софтуера, и представяне, предадено на алгоритъм. Файл, съдържащ необработени сензорни пакети, масив от декодирани събития и натрупано изображение, служи за различни цели. Преобразуването между тях може да промени използването на паметта, разходите за обработка и наличната информация за времето надолу по веригата.

ПредставителствоПолезно заВъпрос на интеграция
Необработени пакети или запис на доставчикВъзпроизвеждане на поведение при придобиване и декодиранеМоже ли внедреният декодер да разчете точно това устройство и ревизия на формата?
Декодирани събитияФилтриране, анализ на времето и собствени алгоритми за събитияКакво представлява единицата за клеймо за време, домейн на часовника и конвенция за координати?
Времеви повърхности или вокселоподобни тензориАлгоритми, които се нуждаят от структурирано времево представянеКои настройки за хронология, групиране и нормализиране трябва да бъдат възпроизведени?
Натрупани изображения на събитияВизуализация или съвместим етап на обработка, базиран на изображенияКолко забавяне и загуба на информация въвежда прозорецът за натрупване?

Как да оценим камера за събития SDK

Започнете с точния сензор, фърмуера на камерата и хост платформата. Демонстрацията на настолен компютър не установява поддръжка за вграден Linux образ, ARM процесор или вашия производствен лиценз. Попитайте доставчика за поддържаните операционни системи, процесорни архитектури, условия за преразпределение и изисквания за интерфейс на камерата. Проверете приложението на предвидената платформа, преди да ангажирате носеща платка.

  • Придобиване: откриване на устройства, конфигуриране, декодиране и докладване на грешки.
  • Време: произход на времевия печат, обработка на преобръщане, външни задействания и подравняване на множество устройства.
  • Възпроизводимост: записи, експорт на конфигурация и идентифицирана версия на софтуера.
  • Внедряване: операция без глава, поддържани двоични файлове, поведение при рестартиране и лицензионни условия.
  • Наблюдаемост: брой събития, дълбочина на опашката, изпуснати данни и използване на ресурсите на хоста.

Изградете тръбопровод с ясни времеви граници

ПридобийтеДекодиране и запазване на сензорното време
Подгответе сеФилтрирайте, синхронизирайте и формирайте прозорци
РешетеПроследете или изведете извода, след което маркирайте изхода

Съхранявайте придобиването отделно от скъпата визуализация, запис на диск и моделиране. В противен случай бавен потребител може да забави нови данни, преди алгоритъмът дори да започне. Дефинирайте ограничена опашка и изрична политика за претоварване. Изпускането на най-стария прозорец, намаляването на интересуващия ни регион и спирането с грешка имат различни последствия; изберете поведението, което отговаря на приложението, и запишете, когато се случи.

Използвайте времеви отпечатъци на сензора, за да опишете кога са възникнали наблюденията, и монотонен хост часовник за измерване на продължителността на обработката. Изваждането на времеви клейма от несвързани часовници не води до валидно закъснение от край до край. Ако камерата трябва да се комбинира с 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})

Обхватът на клеймото за време обхваща първото до последното наблюдавано събитие; не измерва продължителността на файла, забавянето на получаването или пропускателната способност на обработката. Празните периоди и нулирането на часовника се нуждаят от отделна обработка в производството. Запазете конфигурацията на устройството и метаданните за записа заедно с файла, така че втори инженер да може да възпроизведе интерпретацията.

Валидирайте тихи сцени, заети сцени и възстановяване при повреда

Тествайте неподвижна сцена, представително движение и съзнателно взискателна сцена. Трептенето, вибрациите на камерата и текстурираното движение могат да създадат много различни нива на събития. Запишете както типичното поведение, така и най-лошия случай, който сте наблюдавали. Повторете с активно съхранение и комуникации, защото тези натоварвания се конкурират за памет и процесорно време.

ТестЗаписвайтеРешението, което подкрепя
Повторете същия записКонфигурация, изходни разлики и продължителност на обработкатаМоже ли софтуерна промяна да бъде оценена възпроизводимо?
Увеличете активността на сценатаДълбочина на опашката, загуба на събитие и възраст на изходаОстава ли системата използваема при пиково натоварване?
Променете прозореца за обработкаТочност на приложението и забавяне от сензора до изходаКой компромис във времето/детайлите отговаря на изискването?
Изключете и свържете отново устройствотоВреме за възстановяване, нулиране на часовника и непрекъснатост на записаМоже ли внедрената услуга да се възстанови предвидимо?

Когато алгоритъмът използва невронна мрежа, проверете получения тензор и поддържаните оператори, преди да изберете ускорител. Една камера за събития не изисква автоматично NPU, а NPU не приема автоматично поток от събития. Нашите Ръководство за архитектура на FPGA, NPU и MPU разделя услугите за придобиване, предварителна обработка, изводи и приложни услуги.

Въпроси преди избора на софтуерен стек

Мога ли да използвам нормален модел за компютърно зрение?

Само след дефиниране на съвместимо входно представяне и валидиране на поведението му. Натрупването на събития в изображения може да позволи повторно използване на етапа на обработка на изображения, но променя разпределението на данните и добавя времеви прозорец. Оценете пълното приложение на представителни данни.

Работеща демонстрация на лаптоп доказва ли вградена съвместимост?

Не. Потвърдете архитектурата на процесора, операционната система, сензорния интерфейс, драйвера, SDK лиценза и устойчивото използване на ресурсите на действителната целева платформа.

Какво трябва да изпратя за обсъждане на интеграцията?

Изпратете препратка към камерата или сензора, примерен запис, планиран изход, приемливо забавяне, хост платформа, интерфейс и среда за внедряване. Тези данни правят дискусията достатъчно конкретна, за да идентифицира първите рискове за интеграция.

Невроморфно зрение в тръбопровод за компютърно зрение

Камерите за събития често се обсъждат под невроморфното зрение, тъй като техният изход записва промени в отделни пиксели, а не фиксирана последователност от пълни изображения. Това представяне на данни не осигурява автоматично откриване на обект или резултат от невронна мрежа. Софтуерът все още се нуждае от дефинирана задача, съвместим алгоритъм и измерими критерии за приемане.

Когато се интегрира с рамково ориентирани инструменти за компютърно зрение, поток от събития може да бъде преобразуван в изображение във времеви прозорец или друго представяне. Запазете оригиналните времеви клейма, ако задачата зависи от фина времева информация. Оценете цялостния тръбопровод за преобразуване и обработка; едно привлекателно реконструирано изображение само по себе си не установява точността или латентността на крайното приложение.

Планирайте времето преди сливане на сензорни данни

Технически справки

Примерите на доставчици описват тяхната собствена поддържана екосистема. Потвърдете съвместимостта и лицензирането за избраното устройство и внедряване.

Планирайте интеграцията на вашата камера за събития.