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
| Wymiar | Wizja oparta na ramach | Wizja oparta na zdarzeniach |
|---|---|---|
| Wyjście czujnika | Gęste obrazy w stałych odstępach czasu | Asynchroniczne zdarzenia zmiany jasności |
| Informacje o czasie | Ograniczone ekspozycją i rytmem klatek | Drobne znaczniki czasu powiązane z poszczególnymi wydarzeniami |
| Dane sceny statycznej | Kompletne ramki nadal napływają | Mała aktywność z niezmienionych regionów |
| Kontekst przestrzenny/kolorowy | Silny; bezwzględna intensywność obrazu i dojrzałe odwzorowanie kolorów | Pośredni; strumień zdarzeń opisuje zmiany, a nie konwencjonalny obraz |
| Szybki ruch | Wymaga odpowiedniej ekspozycji i liczby klatek na sekundę | Dobrze przystosowany do szybkich zmian czasowych |
| Ekosystem oprogramowania | Bardzo dojrzałe CV i narzędzia do głębokiego uczenia się | Bardziej wyspecjalizowane algorytmy, reprezentacje i zbiory danych |
| Najlepsze dopasowanie | Ogólne obrazowanie, rozpoznawanie, tekstura i obrazy czytelne dla człowieka | Szybka dynamika, cechy czasowe i percepcja ruchu o niskim opóźnieniu |
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 aplikacyjne | Podejdź do oceny w pierwszej kolejności | Co przetestować |
|---|---|---|
| Czy wydrukowana etykieta lub kolor są prawidłowe? | Obrazowanie oparte na ramkach | Rozdzielczość, oświetlenie, ekspozycja i dokładność kontroli |
| Kiedy szybko poruszająca się krawędź przecięła region? | Wykrywanie oparte na zdarzeniach | Jakość 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 warunkach | Dokł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ę.
| Granica | Rurociąg ramowy | Potok zdarzeń |
|---|---|---|
| Obserwacja | Czas ekspozycji i próbki | Reakcja na zmianę jasności i generowanie znacznika czasu |
| Transportu | Bufory odczytu, łącza i hosta | Kodowanie zdarzeń, bufory łącza i dekodera |
| Przygotowanie | Konwersja obrazu, zmiana rozmiaru i przygotowanie tensora | Filtrowanie, okna czasowe i konstrukcja reprezentacji |
| Decyzja | Algorytm i szeregowanie wyników | Algorytm 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ć
- Przed wybraniem ustawień zdefiniuj zadanie, ruch celu, zasięg oświetlenia i wymaganą moc.
- Optyka dokumentu, pole widzenia, ustawienia czujnika, wersje oprogramowania i kalibracja.
- Nagraj reprezentatywne warunki, w tym trudne sceny, takie jak migotanie lub wibracje, jeśli ma to zastosowanie.
- Oceń razem dokładność zadania, opóźnienie wyjściowe, szybkość transmisji danych i utrzymujące się obciążenie przetwarzania.
- 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
- Gallego i in.: Wizja oparta na zdarzeniach — ankieta
- Prophesee: strumieniowanie wydarzeń i dostęp przez okno
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.
