Co zpracovává software pro vidění založené na událostech?

Kamera událostí spíše hlásí změny jasu, než aby poskytovala konvenční video snímek v každém intervalu. Dekódovaná událost typicky identifikuje pixel, polaritu a časové razítko. Vaše aplikace musí zachovat význam těchto polí prostřednictvím získávání, filtrování, záznamu a vyvozování. The porovnání založené na událostech a na základě rámců vysvětluje, kdy je tento datový model užitečný.

V návrhu rozlišujte tři formáty: kódování senzoru nebo transportu, dekódovanou reprezentaci události používanou softwarem a reprezentaci předávanou algoritmu. Soubor obsahující nezpracované senzorové pakety, pole dekódovaných událostí a nashromážděný obraz slouží různým účelům. Převod mezi nimi může změnit využití paměti, náklady na zpracování a dostupné informace o časování.

ZastupováníUžitečné proIntegrační otázka
Nezpracované pakety nebo záznam dodavateleReprodukce chování při získávání a dekódováníDokáže nasazený dekodér přečíst přesně toto zařízení a revizi formátu?
Dekódované událostiFiltrování, časová analýza a nativní algoritmyJaká je jednotka časového razítka, doména hodin a konvence souřadnic?
Časové plochy nebo voxelovité tenzoryAlgoritmy, které potřebují strukturovanou časovou reprezentaciKterá nastavení historie, binningu a normalizace musí být reprodukována?
Nashromážděné obrázky událostíVizualizace nebo kompatibilní fáze zpracování na základě obrazuJak velké zpoždění a ztrátu informací přináší okno akumulace?

Jak hodnotit událostní kameru SDK

Začněte s přesným snímačem, firmwarem fotoaparátu a hostitelskou platformou. Demonstrace desktopu nezakládá podporu pro vestavěný obraz Linux, procesor ARM nebo vaši produkční licenci. Požádejte dodavatele o podporované operační systémy, architektury CPU, podmínky redistribuce a požadavky na rozhraní fotoaparátu. Před provedením základní desky pro výpočetní modul ověřte aplikaci na zamýšlené platformě.

  • akvizice: vyhledávání zařízení, konfigurace, dekódování a hlášení chyb.
  • Načasování: původ časového razítka, manipulace s převrácením, externí spouštěče a zarovnání více zařízení.
  • Reprodukovatelnost: záznamy, export konfigurace a identifikovaná verze softwaru.
  • Nasazení: bezhlavý provoz, podporované binární soubory, chování při restartu a licenční podmínky.
  • Pozorovatelnost: počet událostí, hloubka fronty, vynechaná data a využití zdrojů hostitele.

Vybudujte potrubí s jasnými časovými hranicemi

ZískatDekódujte a zachovejte čas senzoru
Připravte seFiltrovat, synchronizovat a vytvářet okna
Rozhodněte seSledujte nebo vyvozujte a označte výstup časovým razítkem

Udržujte akvizici oddělenou od drahé vizualizace, zápisu na disk a odvození modelu. V opačném případě může pomalý spotřebitel pozdržet nová data ještě před spuštěním algoritmu. Definujte ohraničenou frontu a explicitní politiku přetížení. Vypuštění nejstaršího okna, zmenšení oblasti zájmu a zastavení s chybou mají různé důsledky; vyberte chování, které odpovídá aplikaci, a zaznamenejte, kdy k němu dojde.

Použijte časová razítka senzoru k popisu, kdy došlo k pozorování, a monotónní hostitelské hodiny k měření doby zpracování. Odečtení časových razítek od nesouvisejících hodin nevytváří platnou end-to-end latenci. Pokud musí být kamera kombinována s IMU nebo konvenční kamerou, vytvořte vztah hodin a proces kalibrace popsaný v našem průvodce synchronizací senzor-fúze.

Malý příklad kontroly záznamu

Následující příklad Pythonu počítá dekódované události v podporovaném záznamu a uvádí rozsah jejich časových razítek. Používá zdokumentované streamování Metavision API a vyžaduje kompatibilní instalaci a nahrávání SDK. Jedná se o příklad inspekce, nikoli o měřítko kamery nebo detektoru 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})

Rozpětí časového razítka pokrývá první až poslední pozorovanou událost; neměří dobu trvání souboru, zpoždění akvizice ani propustnost zpracování. Prázdné periody a resety hodin vyžadují ve výrobě samostatné zpracování. Uchovávejte konfiguraci zařízení a metadata záznamu vedle souboru, aby druhý technik mohl interpretaci reprodukovat.

Ověřte tiché scény, rušné scény a zotavení po selhání

Vyzkoušejte stacionární scénu, reprezentativní pohyb a záměrně náročnou scénu. Blikání, vibrace kamery a texturovaný pohyb mohou vytvářet velmi rozdílné frekvence událostí. Zaznamenejte typické chování i nejhorší případ, který jste pozorovali. Opakujte s aktivním úložištěm a komunikací, protože tyto pracovní zátěže soutěží o paměť a čas CPU.

TestZáznamRozhodnutí to podporuje
Znovu přehrajte stejnou nahrávkuKonfigurace, výstupní rozdíly a doba zpracováníLze softwarovou změnu vyhodnocovat reprodukovatelně?
Zvyšte aktivitu scényHloubka fronty, ztráta událostí a stáří výstupuZůstane systém použitelný při špičkovém zatížení?
Změňte okno zpracováníPřesnost aplikace a zpoždění mezi snímačem a výstupemJaký kompromis mezi načasováním a podrobnostmi odpovídá požadavku?
Odpojte a znovu připojte zařízeníDoba zotavení, reset hodin a kontinuita nahráváníMůže se nasazená služba obnovit předvídatelně?

Když algoritmus používá neuronovou síť, před výběrem akcelerátoru zkontrolujte výsledný tenzor a podporované operátory. Kamera události automaticky nevyžaduje NPU a NPU automaticky nepřijímá tok událostí. naše Průvodce architekturou FPGA, NPU a MPU odděluje akvizice, předzpracování, odvození a aplikační služby.

Otázky před výběrem sady softwaru

Mohu použít normální model počítačového vidění?

Pouze po definování kompatibilní vstupní reprezentace a ověření jejího chování. Shromažďování událostí do snímků může umožnit opětovné použití fáze zpracování snímků, ale mění distribuci dat a přidává časové okno. Vyhodnoťte kompletní aplikaci na reprezentativních datech.

Prokazuje funkční ukázka notebooku integrovanou kompatibilitu?

Ne. Potvrďte architekturu CPU, operační systém, rozhraní senzoru, ovladač, licenci SDK a trvalé využití zdrojů aktuální cílové platformy.

Co mám poslat na diskuzi o integraci?

Odešlete referenci kamery nebo senzoru, záznam vzorku, zamýšlený výstup, přijatelné zpoždění, hostitelskou platformu, rozhraní a prostředí nasazení. Tyto vstupy činí diskusi dostatečně konkrétní, aby bylo možné identifikovat první integrační rizika.

Neuromorfní vidění v potrubí počítačového vidění

Kamery událostí jsou často diskutovány pod neuromorfním viděním, protože jejich výstup zaznamenává změny v jednotlivých pixelech spíše než pevnou sekvenci úplných snímků. Tato reprezentace dat automaticky neposkytuje detekci objektů nebo výsledek neuronové sítě. Software stále potřebuje definovaný úkol, kompatibilní algoritmus a měřitelná akceptační kritéria.

Při integraci s rámcově orientovanými nástroji počítačového vidění může být proud událostí převeden na obraz časového okna nebo jinou reprezentaci. Zachovejte původní časová razítka, pokud úkol závisí na jemných časových informacích. Vyhodnoťte kompletní konverzní a zpracovatelské potrubí; atraktivní rekonstruovaný obraz sám o sobě neurčuje přesnost nebo latenci konečné aplikace.

Naplánujte si načasování před spojením senzoru

Technické reference

Příklady dodavatelů popisují jejich vlastní podporovaný ekosystém. Potvrďte kompatibilitu a licencování pro zvolené zařízení a nasazení.

Naplánujte si integraci event-kamery.