Çfarë proceson softueri i vizionit të bazuar në ngjarje?

Një kamerë ngjarjesh raporton ndryshime në ndriçimin në vend që të japë një kornizë konvencionale video në çdo interval. Një ngjarje e deshifruar zakonisht identifikon një piksel, një polaritet dhe një vulë kohore. Aplikacioni juaj duhet të ruajë kuptimin e atyre fushave përmes përvetësimit, filtrimit, regjistrimit dhe përfundimit. Të krahasimi i bazuar në ngjarje dhe krahasimi i bazuar në kornizë shpjegon kur ai model i të dhënave është i dobishëm.

Dalloni tre formate në dizajn: kodimin e sensorit ose transportit, paraqitjen e ngjarjes së dekoduar të përdorur nga softueri dhe paraqitjen e kaluar në një algoritëm. Një skedar që përmban pako sensorë të papërpunuar, një sërë ngjarjesh të deshifruara dhe një imazh të grumbulluar shërbejnë për qëllime të ndryshme. Konvertimi midis tyre mund të ndryshojë përdorimin e kujtesës, koston e përpunimit dhe informacionin e kohës që disponohet në rrjedhën e poshtme.

PërfaqësimiE dobishme përPyetja e integrimit
Paketa të papërpunuara ose një regjistrim nga shitësiRiprodhimi i sjelljes së përvetësimit dhe dekodimitA mund ta lexojë dekoderi i vendosur saktësisht këtë rishikim të pajisjes dhe formatit?
Ngjarjet e deshifruaraFiltrimi, analiza e kohës dhe algoritmet vendase të ngjarjeveCilat janë njësia e vulës kohore, domeni i orës dhe konventa e koordinatave?
Sipërfaqe kohore ose tensorë të ngjashëm me vokselAlgoritme që kanë nevojë për një paraqitje të strukturuar kohoreCilat cilësime të historisë, lidhjes dhe normalizimit duhet të riprodhohen?
Imazhet e grumbulluara të ngjarjeveVizualizimi ose një fazë e përputhshme e përpunimit të bazuar në imazhSa vonesë dhe humbje informacioni paraqet dritarja e akumulimit?

Si të vlerësoni një kamerë ngjarjesh SDK

Filloni me sensorin e saktë, firmuerin e kamerës dhe platformën pritës. Një demonstrim në desktop nuk krijon mbështetje për një imazh të integruar Linux, një procesor ARM ose licencën tuaj të prodhimit. Pyetni furnizuesin për sistemet operative të mbështetura, arkitekturat e CPU-së, kushtet e rishpërndarjes dhe kërkesat e ndërfaqes së kamerës. Verifikoni aplikacionin në platformën e synuar përpara se të vendosni bordin e qarkut mbajtës për një modul llogaritës.

  • Blerja: zbulimi i pajisjes, konfigurimi, dekodimi dhe raportimi i gabimeve.
  • Koha: Origjina e vulës kohore, trajtimi i përmbysjes, aktivizuesit e jashtëm dhe shtrirja me shumë pajisje.
  • Riprodhueshmëria: regjistrimet, eksportimi i konfigurimit dhe një version i identifikuar i softuerit.
  • Vendosja: funksionimi pa kokë, binarët e mbështetur, sjellja e rinisjes dhe kushtet e licencës.
  • Vëzhgueshmëria: numërimet e ngjarjeve, thellësia e radhës, të dhënat e humbura dhe përdorimi i burimeve të hostit.

Ndërtoni një tubacion me kufij të qartë të kohës

PërvetësoniDekodoni dhe ruani kohën e sensorit
PërgatitniFiltroni, sinkronizoni dhe formoni dritaret
VendosniGjurmoni ose nxirrni përfundimin, më pas vulosni kohën e prodhimit

Mbajeni blerjen të ndarë nga vizualizimi i shtrenjtë, shkrimi i diskut dhe përfundimi i modelit. Përndryshe, një konsumator i ngadalshëm mund të vonojë të dhënat e reja përpara se të fillojë algoritmi. Përcaktoni një radhë të kufizuar dhe një politikë të qartë të mbingarkesës. Heqja e dritares më të vjetër, zvogëlimi i zonës së interesit dhe ndalimi me një gabim kanë pasoja të ndryshme; zgjidhni sjelljen që i përshtatet aplikacionit dhe regjistroni kur ndodh.

Përdor vulat kohore të sensorëve për të përshkruar kur ndodhën vëzhgimet dhe një orë pritës monotonike për të matur kohëzgjatjet e përpunimit. Zbritja e stampave kohore nga orët e palidhura nuk prodhon një vonesë të vlefshme nga fundi në fund. Nëse kamera duhet të kombinohet me një aparat fotografik IMU ose konvencional, vendosni marrëdhënien e orës dhe procesin e kalibrimit të përshkruar në tonë udhëzues sinkronizimi sensor-fusion.

Një shembull i vogël regjistrimi-inspektimi

Shembulli i mëposhtëm i Python numëron ngjarjet e deshifruara në një regjistrim të mbështetur dhe raporton hapësirën e stampave të tyre kohore. Ai përdor transmetimin e dokumentuar të Metavision API dhe kërkon një instalim dhe regjistrim të pajtueshëm SDK. Është një shembull inspektimi, jo një pikë referimi ALVEXIS kamerash apo një detektor.

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})

Hapësira e vulës kohore mbulon ngjarjen e parë deri në të fundit të vëzhguar; ai nuk mat kohëzgjatjen e skedarit, vonesën e blerjes ose xhiron e përpunimit. Periudhat e zbrazëta dhe rivendosjet e orës kanë nevojë për trajtim të veçantë në prodhim. Mbani konfigurimin e pajisjes dhe metadatat e regjistrimit së bashku me skedarin në mënyrë që një inxhinier i dytë të mund të riprodhojë interpretimin.

Verifikoni skenat e qeta, skenat e zëna dhe rikuperimin e dështimit

Provoni një skenë të palëvizshme, lëvizje përfaqësuese dhe një skenë qëllimisht kërkuese. Dridhja, dridhja e kamerës dhe lëvizja me teksturë mund të krijojnë shkallë shumë të ndryshme të ngjarjeve. Regjistroni sjelljen tipike dhe rastin më të keq që keni vërejtur. Përsëriteni me ruajtjen dhe komunikimet aktive, sepse ato ngarkesa pune konkurrojnë për memorien dhe kohën e CPU-së.

TestRegjistroVendimi që ai mbështet
Riprodhoni të njëjtin regjistrimKonfigurimi, dallimet në dalje dhe kohëzgjatja e përpunimitA mund të vlerësohet në mënyrë të riprodhueshme një ndryshim i softuerit?
Rritja e aktivitetit të skenësThellësia e radhës, humbja e ngjarjes dhe mosha e prodhimitA mbetet sistemi i përdorshëm nën ngarkesën maksimale?
Ndryshoni dritaren e përpunimitSaktësia e aplikimit dhe vonesa nga sensori në daljeCili shkëmbim kohor/detaji i përshtatet kërkesës?
Shkëputeni dhe rilidheni pajisjenKoha e rikuperimit, rivendosja e orës dhe vazhdimësia e regjistrimitA mund të rikuperohet shërbimi i vendosur në mënyrë të parashikueshme?

Kur algoritmi përdor një rrjet nervor, kontrolloni tensorin që rezulton dhe operatorët e mbështetur përpara se të zgjidhni një përshpejtues. Një kamerë ngjarjesh nuk kërkon automatikisht një NPU dhe një NPU nuk pranon automatikisht një transmetim ngjarjeje. Jonë Udhëzuesi i arkitekturës FPGA, NPU dhe MPU ndan shërbimet e blerjes, parapërpunimit, konkluzionit dhe aplikimit.

Pyetje përpara se të zgjidhni një pirg softuerësh

A mund të përdor një model normal të vizionit kompjuterik?

Vetëm pas përcaktimit të një paraqitjeje të përputhshme të hyrjes dhe vërtetimit të sjelljes së saj. Grumbullimi i ngjarjeve në imazhe mund të lejojë ripërdorimin e një faze të përpunimit të imazhit, por ndryshon shpërndarjen e të dhënave dhe shton një dritare kohore. Vlerësoni aplikacionin e plotë mbi të dhënat përfaqësuese.

A provon një demonstrim i laptopit që funksionon përputhshmërinë e integruar?

Jo. Konfirmo arkitekturën e CPU-së, sistemin operativ, ndërfaqen e sensorit, drejtuesin, licencën SDK dhe përdorimin e qëndrueshëm të burimeve të platformës aktuale të synuar.

Çfarë duhet të dërgoj për një diskutim integrimi?

Dërgoni referencën e kamerës ose sensorit, regjistrimin e mostrës, daljen e synuar, vonesën e pranueshme, platformën e hostit, ndërfaqen dhe mjedisin e vendosjes. Këto të dhëna e bëjnë diskutimin mjaft konkret për të identifikuar rreziqet e para të integrimit.

Vizioni neuromorfik në një tubacion vizioni kompjuterik

Kamerat e ngjarjeve shpesh diskutohen nën vizionin neuromorfik, sepse rezultatet e tyre regjistrojnë ndryshime në pikselë individualë dhe jo në një sekuencë fikse imazhesh të plota. Ky përfaqësim i të dhënave nuk siguron automatikisht zbulimin e objektit ose një rezultat të rrjetit nervor. Softueri ka ende nevojë për një detyrë të përcaktuar, një algoritëm të pajtueshëm dhe kritere të matshme pranimi.

Kur integrohet me mjetet e vizionit kompjuterik të orientuar drejt kornizës, një transmetim ngjarjesh mund të shndërrohet në një imazh të dritares së kohës ose në një paraqitje tjetër. Ruani vulat kohore origjinale nëse detyra varet nga informacioni i mirë kohor. Vlerësoni tubacionin e plotë të konvertimit dhe përpunimit; vetëm një imazh tërheqës i rindërtuar nuk përcakton saktësinë ose vonesën e aplikimit përfundimtar.

Planifikoni kohën përpara bashkimit të të dhënave të sensorit

Referencat teknike

Shembujt e shitësve përshkruajnë ekosistemin e tyre të mbështetur. Konfirmoni përputhshmërinë dhe licencimin për pajisjen dhe vendosjen e zgjedhur.

Planifikoni integrimin e kamerës së ngjarjes.