Co to jest widzenie oparte na ramkach?

Widzenie oparte na klatkach rejestruje scenę jako pełne obrazy w regularnych odstępach czasu, na przykład klatki 30, 60 lub 120 na sekundę. Każda klatka zawiera gęstą informację przestrzenną, co sprawia, że ​​konwencjonalne kamery w naturalny sposób nadają się do rozpoznawania obiektów, analizy kolorów, inspekcji, mapowania i dużego ekosystemu oprogramowania zbudowanego wokół tensorów obrazu.

Kompromis polega na tym, że każda klatka przenosi cały obraz przez potok, niezależnie od tego, czy scena uległa zmianie, czy nie. W przypadku szybkiej pętli decyzyjnej czas ekspozycji, okres klatek, odczyt z czujnika, transport, konwersja obrazu i wnioskowanie przyczyniają się do kompleksowego opóźnienia. Wysoka liczba klatek na sekundę zmniejsza interwał próbkowania, ale zwykle zwiększa przepustowość, ruch w pamięci, moc i obciążenie termiczne.

Czym jest wizja oparta na zdarzeniach?

Wizja oparta na zdarzeniach wykorzystuje czujnik obrazu oparty na zdarzeniach, którego piksele reagują asynchronicznie na zmiany jasności. Zamiast dostarczać prostokątny obraz ze stałą częstotliwością, czujnik wytwarza strumień zawierający współrzędne pikseli, polaryzację i dokładne znaczniki czasu. Dlatego regiony statyczne generują niewiele danych lub nie generują ich wcale, podczas gdy ruchome krawędzie mogą generować zdarzenia z bardzo dobrą rozdzielczością czasową.

Ta reprezentacja jest przydatna, gdy czas ruchu ma większe znaczenie niż wielokrotne otrzymanie pełnego obrazu. Może obsługiwać śledzenie z niskim opóźnieniem, szybką robotykę i trudne przejścia oświetlenia, ale strumień zdarzeń nie jest normalną fotografią. Algorytmy, narzędzia do wizualizacji, rejestrowania i walidacji muszą być zaprojektowane wokół modelu danych.

Jak czujnik obrazu oparty na zdarzeniach zmienia ścieżkę danych

Przydatny system odniesienia udostępnia pełną ścieżkę od pozyskania czujnika, poprzez filtrowanie i przetwarzanie, aż do danych wyjściowych aplikacji. Instrumentuj te granice, aby można było kompleksowo oceniać roszczenia dotyczące opóźnień i szybkości transmisji danych.

Kluczowa różnica w architekturze nie polega po prostu na „szybszej kamerze w porównaniu z wolniejszą kamerą”. Konwencjonalny potok wizyjny często zaczyna się od pełnego bufora obrazu. Potok oparty na zdarzeniach może rozpocząć przetwarzanie pojedynczych zdarzeń lub małych okien zdarzeń natychmiast po ich przybyciu. Umożliwia to filtrowanie, dopasowywanie znaczników czasu, logikę obszaru zainteresowania i funkcje ruchu blisko czujnika bez czekania na pełną klatkę.

Jednak dane zdarzeń mogą stać się gęste w scenach o dużej teksturze lub w przypadku wibracji i migotania. Dlatego projekt systemu powinien mierzyć częstotliwość najgorszych przypadków, wykorzystanie interfejsu i przepustowość pamięci, zamiast zakładać, że wykrywanie zdarzeń zawsze oznacza małą przepustowość.

Wizja oparta na zdarzeniach a wizja oparta na ramkach

WymiarWizja oparta na ramachWizja oparta na zdarzeniach
Wyjście czujnikaGęste obrazy w stałych odstępach czasuAsynchroniczne zdarzenia zmiany jasności
Informacje o czasieOgraniczone ekspozycją i rytmem klatekDrobne znaczniki czasu powiązane z poszczególnymi wydarzeniami
Dane sceny statycznejKompletne ramki nadal napływająMała aktywność z niezmienionych regionów
Kontekst przestrzenny/kolorowySilny; bezwzględna intensywność obrazu i dojrzałe odwzorowanie kolorówPośredni; strumień zdarzeń opisuje zmiany, a nie konwencjonalny obraz
Szybki ruchWymaga odpowiedniej ekspozycji i liczby klatek na sekundęDobrze przystosowany do szybkich zmian czasowych
Ekosystem oprogramowaniaBardzo dojrzałe CV i narzędzia do głębokiego uczenia sięBardziej wyspecjalizowane algorytmy, reprezentacje i zbiory danych
Najlepsze dopasowanieOgólne obrazowanie, rozpoznawanie, tekstura i obrazy czytelne dla człowiekaSzybka dynamika, cechy czasowe i percepcja ruchu o niskim opóźnieniu
Wizja oparta na ramach
Wizja oparta na zdarzeniach

Opóźnienie: mierz czujnik do decyzji, a nie jeden komponent

Kamery zdarzeń są często wybierane pod kątem percepcji o małych opóźnieniach, ale rozdzielczość sygnatury czasowej czujnika nie jest taka sama, jak opóźnienie aplikacji. Przydatną metryką inżynierską jest czas od rzeczywistej zmiany do decyzji pojawiającej się w interfejsie systemu. Ścieżka ta obejmuje reakcję czujnika, transport, buforowanie, przetwarzanie wstępne, wnioskowanie lub śledzenie, planowanie oprogramowania i komunikację wyjściową.

Ta sama zasada dotyczy aparatu ramowego. Dobrze zaprojektowany potok o dużej liczbie klatek na sekundę z bezpośrednimi ścieżkami pamięci może przewyższać słabo zintegrowany potok zdarzeń. Dlatego architekturę należy porównać z reprezentatywnym ruchem, oświetleniem i algorytmami.

Oprogramowanie wizyjne oparte na zdarzeniach i zagadnienia związane z SDK

Stos oprogramowania wizyjnego opartego na zdarzeniach zazwyczaj wymaga konfiguracji urządzenia, dekodowania zdarzeń, obsługi znaczników czasu, filtrowania, wizualizacji, nagrywania i odtwarzania. Przydatna wizja oparta na zdarzeniach SDK powinna również ułatwiać synchronizację zewnętrznych wyzwalaczy i innych czujników, sprawdzać częstotliwość zdarzeń i odtwarzać przechwyconą sekwencję podczas opracowywania algorytmu.

W przypadku systemów produkcyjnych oprogramowanie musi wykraczać poza komputer stacjonarny SDK. Zespoły powinny zdefiniować sposób przenoszenia zdarzeń do zasobów FPGA, MCU, MPU lub NPU; sposób przechowywania kalibracji; jak czas jest synchronizowany; oraz w jaki sposób można odtwarzać dzienniki terenowe. Jeśli algorytm konwertuje zdarzenia na skumulowane ramki, okno akumulacji staje się wyraźnym kompromisem między opóźnieniem a informacją.

Gdzie przydatna jest wizja oparta na zdarzeniach

Typowe zastosowania wizyjne oparte na zdarzeniach obejmują szybkie śledzenie celów, manipulację robotyczną, przepływ optyczny, analizę wibracji lub ruchu, szybką inspekcję przemysłową i autonomiczną percepcję w scenach o dużych zmianach jasności. Najsilniejsze przypadki użycia to zazwyczaj te, w których delikatna struktura czasowa bezpośrednio poprawia decyzję, a nie tylko zastępuje konwencjonalną kamerę.

Oparta na zdarzeniach wizja platform obronnych i autonomicznych

W systemach obronnych, bezpieczeństwa i autonomicznych wykrywanie zdarzeń może mieć zastosowanie w przypadku sygnałów szybkiego ruchu, eksperymentów ze śledzeniem, ładunków optycznych o niskim opóźnieniu i badań nad fuzją czujników. System nadal musi spełniać wymagania platformy, takie jak synchronizacja, deterministyczne interfejsy, projektowanie środowiskowe, rejestracja, cyberbezpieczeństwo i walidacja. Wykrywanie zdarzeń to jeden z elementów łańcucha misji, a nie samo w sobie kompletne rozwiązanie w zakresie percepcji.

Kiedy hybrydowa architektura aparatu jest lepsza

Wiele praktycznych systemów korzysta z łączenia modalności. Ramki mogą zapewniać kontekst semantyczny i obrazy czytelne dla człowieka, podczas gdy zdarzenia dostarczają szczegółów czasowych. Czujniki termiczne, bezwładnościowe lub dalmierzowe mogą zwiększyć niezawodność. Fuzja jest szczególnie przydatna, gdy aplikacja potrzebuje zarówno pytania „co to jest?” oraz „dokładnie kiedy i jak się przesunął?”

W przypadku systemów hybrydowych niezbędny jest wspólny czas. Przed sfinalizowaniem algorytmów należy rozważyć wyzwalacze sprzętowe, domeny znaczników czasu i kalibrację.

Praktyczna architektura referencyjna wizji oparta na zdarzeniach

System referencyjny może umieścić deterministyczne filtrowanie i pracę znacznika czasu w FPGA, wnioskowanie AI w NPU lub akceleratorze, usługi aplikacyjne w MPU i nadzór w MCU lub rdzeniu czasu rzeczywistego. Wybór prawidłowej partycji zależy od częstotliwości zdarzeń, architektury modelu, przepustowości pamięci i interfejsów zewnętrznych. Nasz Przewodnik po FPGA vs NPU vs MPU Edge AI wyjaśnia ten podział bardziej szczegółowo.

Lista kontrolna wyboru

  • Zdefiniuj maksymalne dopuszczalne opóźnienie między czujnikiem a podjęciem decyzji.
  • Zmierz oczekiwaną prędkość ruchu, zasięg oświetlenia i aktywność sceny w najgorszym przypadku.
  • Zdecyduj, czy wymagana jest bezwzględna intensywność obrazu, kolor czy wideo czytelne dla człowieka.
  • Oszacuj przepustowość i ruch pamięci zarówno dla typowych, jak i najgorszych scen.
  • Potwierdź dojrzałość algorytmu, zestawu danych i wizji opartej na zdarzeniach SDK.
  • Zaplanuj synchronizację ze źródłami wyzwalania ramowymi, termicznymi, inercyjnymi lub zewnętrznymi.
  • Przed zatwierdzeniem układu obliczeniowego, płytki bazowej i konstrukcji termicznej zmierz wydajność całego toru przetwarzania.

Wybierz obserwację potrzeb aplikacji

Pytanie aplikacyjnePodejdź do oceny w pierwszej kolejnościCo przetestować
Czy wydrukowana etykieta lub kolor są prawidłowe?Obrazowanie oparte na ramkachRozdzielczość, oświetlenie, ekspozycja i dokładność kontroli
Kiedy szybko poruszająca się krawędź przecięła region?Wykrywanie oparte na zdarzeniachJakość synchronizacji, aktywność sceny, fałszywe zdarzenia i całkowite opóźnienie wyjściowe
Jaki obiekt się tam znajduje i z jaką precyzją się porusza?Hybrydowy potok ramek i zdarzeńKalibracja, wspólny czas, reprezentacja i korzyści z fuzji
Czy system będzie działał przy zmieniającym się świetle lub wibracjach?Obaj kandydaci na tych samych reprezentatywnych warunkachDokładność aplikacji, częstotliwość zdarzeń lub jakość klatek oraz wykorzystanie zasobów

Porównując kandydatów, używaj tego samego zadania i sceny. Wyraźna wizualizacja sama w sobie nie jest wynikiem wykrycia, a duża liczba zdarzeń nie jest dowodem na uzyskanie przydatnych informacji. Uzgodnij metrykę wyjściową przed zarejestrowaniem porównania.

Praktyczny sposób na budowanie budżetu opóźnień

Przy 60 klatek na sekundę interwał klatek wynosi w przybliżeniu 16.7 ms. W uproszczonym modelu, w którym zmiana sceny następuje równomiernie pomiędzy chwilowymi próbkami, średni czas oczekiwania na następną próbkę wynosi około 8.3 ms. Ekspozycja, odczyt, transport i obróbka to efekty dodatkowe. Ta arytmetyka opisuje interwał próbkowania; nie jest to zmierzone opóźnienie kamery.

Potok zdarzeń ma również opcje projektowe, które zwiększają opóźnienie. Jeśli aplikacja czeka na zamknięcie okna zdarzeń 5 ms przed przetworzeniem, zdarzenie na początku tego okna może czekać samo na tym etapie prawie 5 ms. Dokładne znaczniki czasu czujnika nie usuwają wyboru buforowania. Skorzystaj z tych przykładów, aby zidentyfikować etapy warte pomiaru, a nie po to, aby twierdzić, że którykolwiek z czujników ma stałą przewagę.

GranicaRurociąg ramowyPotok zdarzeń
ObserwacjaCzas ekspozycji i próbkiReakcja na zmianę jasności i generowanie znacznika czasu
TransportuBufory odczytu, łącza i hostaKodowanie zdarzeń, bufory łącza i dekodera
PrzygotowanieKonwersja obrazu, zmiana rozmiaru i przygotowanie tensoraFiltrowanie, okna czasowe i konstrukcja reprezentacji
DecyzjaAlgorytm i szeregowanie wynikówAlgorytm i szeregowanie wyników

Zmierz wiek wyjściowy za pomocą ważnej zależności między zegarem obserwacyjnym a zegarem wynikowym. Znacznik czasu oprogramowania na końcu połączenia odczytywanego z kamery niekoniecznie odzwierciedla czas ekspozycji. Podobnie dokładny znacznik czasu zdarzenia może należeć do zegara, który nie jest jeszcze dostosowany do hosta.

Zaprojektuj porównanie, które inny inżynier będzie mógł odtworzyć

  1. Przed wybraniem ustawień zdefiniuj zadanie, ruch celu, zasięg oświetlenia i wymaganą moc.
  2. Optyka dokumentu, pole widzenia, ustawienia czujnika, wersje oprogramowania i kalibracja.
  3. Nagraj reprezentatywne warunki, w tym trudne sceny, takie jak migotanie lub wibracje, jeśli ma to zastosowanie.
  4. Oceń razem dokładność zadania, opóźnienie wyjściowe, szybkość transmisji danych i utrzymujące się obciążenie przetwarzania.
  5. Zachowaj nagrania i pliki konfiguracyjne, aby można było porównywać zmiany algorytmów na tych samych wejściach.

Na etapie realizacji nasz oprogramowanie kamery eventowej i przewodnik SDK obejmuje reprezentację danych, rejestrację i wdrażanie. Skorzystaj z przewodnik synchronizacji czasu podczas łączenia modalności.

Którą kamerę ocenić do kontroli jakości?

Zacznij od wady, którą chcesz zaobserwować. Brakujący element, wydrukowana etykieta lub znak powierzchniowy mogą dobrze pasować do konwencjonalnego obrazowania ramki z kontrolowaną optyką i oświetleniem. Gdy ważnym sygnałem jest szybki ruch lub dokładny moment zmiany, oceń wykrywanie zdarzeń w odniesieniu do tego samego zadania.

Zapisz najmniejszą istotną cechę, prędkość obiektu, pole widzenia, zmienność oświetlenia i dostępny czas decyzji. Podczas oceny należy zachować normalne zróżnicowanie produkcji: różne partie, zmiany, wykończenia powierzchni i pozycje części. Porównaj pominięte defekty i fałszywe odrzucenia, a także prędkość przetwarzania.

Wykrywanie zdarzeń jest kandydatem do przetestowania, a nie wymogiem dla każdego systemu inspekcji. Zobacz nasze rozwiązanie w zakresie wizji przemysłowej i kontroli jakości do integracji kamery z maszyną i planowania pilotażu.

Często zadawane pytania dotyczące wizji opartej na zdarzeniach

Czym jest wizja oparta na zdarzeniach?

Widzenie oparte na zdarzeniach to podejście polegające na wykrywaniu, w którym piksele zgłaszają lokalne zmiany jasności asynchronicznie, zamiast czekać na całą klatkę obrazu. Każde zdarzenie zazwyczaj zawiera współrzędne pikseli, polaryzację i znacznik czasu, dzięki czemu informacje związane z ruchem docierają do potoku przetwarzania z dużą rozdzielczością czasową.

Jaka jest różnica między wizją opartą na zdarzeniach a wizją opartą na ramkach?

Wizja oparta na klatkach rejestruje pełne obrazy w ustalonych odstępach czasu, natomiast wizja oparta na zdarzeniach informuje o zmianach w miarę ich występowania. Kamery ramowe zapewniają gęsty kontekst przestrzenny i kolorystyczny; czujniki zdarzeń mogą zredukować zbędne dane dotyczące sceny statycznej i poprawić synchronizację w przypadku szybkiego ruchu. Najlepsza architektura zależy od zadania, oświetlenia, stosu oprogramowania i wymaganego opóźnienia decyzji.

Jakie oprogramowanie lub SDK jest potrzebne do widzenia opartego na zdarzeniach?

Oprogramowanie wizyjne oparte na zdarzeniach musi obsługiwać asynchroniczne strumienie zdarzeń, a nie tylko konwencjonalne tensory obrazu. Praktyczny SDK powinien obsługiwać konfigurację czujników, filtrowanie zdarzeń, obsługę znaczników czasu, wizualizację, nagrywanie, odtwarzanie, kalibrację, synchronizację i konwersję na reprezentacje wymagane przez potoki śledzenia lub sieci neuronowe.

Gdzie wykorzystywana jest wizja oparta na zdarzeniach?

Typowe zastosowania wizyjne oparte na zdarzeniach obejmują szybką robotykę, śledzenie ruchu, systemy autonomiczne, monitorowanie przemysłowe i wykrywanie, gdzie szybkie zmiany sceny lub trudne oświetlenie wymagają wyczucia czasu. Może także stanowić uzupełnienie konwencjonalnych kamer w hybrydowych systemach percepcyjnych.

W jaki sposób można wykorzystać wizję opartą na zdarzeniach w platformach obronnych?

W przypadku platform obronnych i autonomicznych czujniki zdarzeń mogą obsługiwać sygnały ruchu, śledzenie i percepcję o niskim opóźnieniu w warunkach dużego zakresu dynamiki lub szybkiego ruchu. System możliwy do wdrożenia nadal wymaga deterministycznego znacznika czasu, wytrzymałych interfejsów, zsynchronizowanego połączenia czujników, zatwierdzonego oprogramowania i dokładnego pomiaru częstości występowania najgorszych przypadków.

Czy czujnik obrazu oparty na zdarzeniach zawsze ma mniejszą przepustowość?

Nie. Sceny statyczne mogą generować niewielką ilość danych, ale wibracje, migotanie lub ruch o dużej teksturze mogą powodować gęste strumienie zdarzeń. Dlatego też projekt interfejsu i pamięci powinien opierać się na zmierzonej częstotliwości zdarzeń w najgorszych przypadkach, zamiast zakładać, że wykrywanie zdarzeń ma zawsze niską przepustowość.

Referencje techniczne

Przykłady czasów mają charakter poglądowy. Opóźnienia i wykrycia na poziomie produktu wymagają pomiarów całej implementacji.

Oceń wizję opartą na zdarzeniach w rzeczywistej pętli decyzyjnej.

Udostępnij cel, profil ruchu, interfejsy, środowisko i liczbę pilotów. Możemy zmapować wymagania na czujnik, FPGA i architekturę obliczeń lokalnych.