Ile strumieni z kamer może analizować domowy rejestrator NVR przy tej samej częstotliwości detekcji?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Domowy NVR może analizować tylko tyle strumieni, ile obsłużą jego detektor i potok wideo bez obniżania skonfigurowanej częstotliwości detekcji dla każdej kamery.

Jeśli każda z ośmiu kamer żąda pięciu klatek detekcji na sekundę, detektor musi po uwzględnieniu narzutu obsługiwać co najmniej 40 inferencji na sekundę. Jednak dekodowanie, zmiana rozmiaru, śledzenie, nagrywanie i filtrowanie ruchu również zużywają zasoby procesora, GPU, przepustowość pamięci oraz operacje wejścia-wyjścia. Rzeczywisty limit strumieni zostaje osiągnięty, gdy częstotliwość detekcji dla poszczególnych kamer lub opóźnienie zdarzeń zaczynają się pogarszać podczas jednoczesnej aktywności domowych urządzeń.

Zapotrzzebowanie na detekcję to liczba strumieni pomnożona przez liczbę klatek detekcji na sekundę

Najprostsza wartość minimalna to liczba kamer pomnożona przez skonfigurowaną liczbę klatek detekcji na sekundę. Dziesięć kamer przy pięciu FPS wymaga analizy 50 klatek w każdej sekundzie. Filtrowanie ruchu może ograniczyć rzeczywiste obciążenie, ale przy planowaniu wydajności należy uwzględnić okresy, w których wiele kamer jest aktywnych jednocześnie.

Projekt lokalnej detekcji obiektów oddziela lokalne nagrywanie od detekcji obiektów w czasie rzeczywistym i zaleca dedykowane przyspieszanie zamiast detekcji wyłącznie na CPU. Te ścieżki obciążają ten sam serwer w różny sposób.

Liczba klatek na sekundę źródła kamery nie musi być równa liczbie klatek detekcji. Strumień nagrywany z prędkością 25 FPS może zasilać strumień detekcji z prędkością pięciu FPS, zmniejszając zapotrzebowanie na inferencję bez pogorszenia płynności nagrywanego obrazu. Pomylenie tych wartości prowadzi do nieefektywnych lub niebezpiecznych szacunków wydajności.

Dekodowanie i wstępne przetwarzanie mogą wcześniej stać się wąskim gardłem

Przed inferencją skompresowany obraz musi zostać zdekodowany, przeskalowany, poddany konwersji kolorów i skopiowany do detektora. Sprzętowe dekodowanie może odciążyć CPU, ale znaczenie mają kodek, rozdzielczość, głębia bitowa oraz limity jednoczesnych sesji. Zapis nagrań i transkodowanie obrazu na żywo konkurują o ten sam potok.

Przegląd akceleratorów AI wyjaśnia, że akceleratory mogą przewyższać uniwersalne procesory w powtarzalnej inferencji, zapewniając mniejsze obciążenie hosta. Dekodowanie nadal musi dostarczać klatki na czas.

Dlatego szybki detektor nie gwarantuje obsługi większej liczby kamer. Jeśli kolejka klatek rośnie przed inferencją, dodatkowa wydajność detektora pozostaje niewykorzystana. Jeśli operacje na pamięci masowej są blokowane, nagrywanie może ucierpieć, nawet gdy liczba klatek detekcji wygląda prawidłowo.

Gdzie zawodzi wzór dzielenia

Dzielenie liczby klatek detektora przez liczbę klatek na kamerę zakłada jednakowy koszt modelu i niezależność klatek. Dodatkowe modele twarzy, tablic rejestracyjnych, pozy lub klasyfikacji zwiększają obciążenie tylko dla wybranych detekcji. Kafelkowanie obrazu o zmiennej rozdzielczości i zdalne strumienie mogą powodować nierównomierne koszty.

Opis produktu dotyczący rozpoznawania dodatkowego wskazuje, że takie rozpoznawanie może spowolnić potok, jeśli zadania nie współdzielą detekcji efektywnie. Wybór funkcji zmienia wydajność nawet przy tej samej bazowej liczbie klatek na sekundę.

Szacunek zawodzi również wtedy, gdy ograniczeniem jest opóźnienie, a nie przepustowość. Detektor może średnio osiągać 60 FPS, a mimo to czasami opóźniać obraz z jednej kamery o całe sekundy z powodu niesprawiedliwego zarządzania kolejkami. Równe średnie wartości nie gwarantują jednakowej szybkości reakcji dla każdego strumienia.

-15% OFF

Zwiększaj liczbę strumieni, aż najwolniejsza kamera zacznie tracić wydajność

Włączaj kamery pojedynczo, korzystając z docelowego kodeka, rozdzielczości, trybu nagrywania i liczby klatek detekcji na sekundę. Wywołaj jednoczesny ruch we wszystkich ujęciach i rejestruj osiągniętą liczbę klatek detekcji dla każdej kamery, wiek klatek w kolejce, czas inferencji, wykorzystanie dekodera, pominięte klatki, opóźnienie zdarzeń oraz opóźnienie operacji na dysku.

Przeprowadź test na tej samej konfiguracji hosta z współdzielonym przetwarzaniem wideo, która będzie współdzielić usługi wideo i AI. Wyłączaj niezwiązane zadania tylko wtedy, gdy w środowisku produkcyjnym również będą planowane poza okresami obciążenia.

Zachowaj najwyższą liczbę kamer, przy której najwolniejszy strumień utrzymuje co najmniej 95 procent skonfigurowanej częstotliwości detekcji, a opóźnienie zdarzeń p95 pozostaje w obrębie wybranego celu. Zarezerwuj 20 procent zapasu wydajności detektora i dekodera na jednoczesny ruch oraz dodatkowe modele.

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.