LW IT Solutions
« Blog Overview /CCTV / Frigate i Coral TPU: ile kamer obsłuży...
This post in other languages:

Frigate i Coral TPU: ile kamer obsłuży jeden akcelerator

Frigate i Coral TPU: ile kamer obsłuży jeden akcelerator
Spis treści
  1. Ile naprawdę kosztuje jedna detekcja
  2. Rachunek w jednej linijce
  3. Dlaczego średnia to zła liczba
  4. Co daje który detektor
  5. Wąskim gardłem zwykle nie jest TPU
  6. Po czym poznać nasycenie

Przed każdą instalacją Frigate pada pytanie, ile kamer udźwignie jeden Coral, a odpowiedzią zawsze jest przedział – bo w tej postaci pytanie jest źle zadane. TPU nie przetwarza kamer. Przetwarza inferencje i ma na to dokładnie tysiąc milisekund na sekundę.

Reszta z tego wynika: ile detekcji na sekundę wytwarza instalacja, ile trwa jedna na wybranym akceleratorze i ile z tej sekundy zostaje, gdy kilka kamer ma jednocześnie coś do roboty. Trzy liczby, jedno mnożenie.

Trzy paski budżetu wobec linii pojemności jednej TPU Coral: cztery kamery wypełniają 24 procent, osiem kamer 48 procent, szesnaście kamer przy dziesięciu klatkach na sekundę wystrzeliwuje do 192 procent
Jedna sekunda czasu TPU. Trzeci pasek nie jest wolniejszy – tam połowa klatek trafia do kolejki, a potem do kosza.

Ile naprawdę kosztuje jedna detekcja

Frigate nie wysyła do detektora każdej klatki. Najpierw tani przebieg na procesorze szuka ruchu i wycina obszary, w których coś się zmieniło; tylko one idą do TPU, każdy jako osobna inferencja. Spokojna scena nie kosztuje więc nic, a scena z dwoma rozdzielonymi obszarami ruchu kosztuje dwie inferencje na klatkę zamiast jednej.

Właśnie ten szczegół zamienia liczbę kamer w zgadywankę. Obciążenie to nie kamery razy liczba klatek, tylko kamery razy liczba klatek razy liczba obszarów ruchu – a ostatni czynnik jest własnością kadru, nie sprzętu. Kamera skierowana na żywopłot na wietrze produkuje obszary cały dzień, kamera na zamkniętą bramę nie produkuje ich godzinami.

Rachunek w jednej linijce

inferencje/s = kamery × klatki detekcji × obszary na klatkę
zajętość     = inferencje/s × czas inferencji
zapas        = 1000 ms/s − zajętość

8 kamer × 5 kl./s × 1,5 obszaru = 60 inferencji/s
60/s × 8 ms                     = 480 ms/s   →  48 % jednego Corala

Współczynnik 1,5 obszaru na klatkę to sensowna wartość robocza dla mieszanych widoków zewnętrznych; ruchliwa ulica potrzebuje dwóch do trzech, cichy korytarz ledwie jednego. Zmierzenie tej liczby zamiast jej założenia opłaca się, bo jako jedyna w tej linijce nie stoi w żadnej specyfikacji.

Dlaczego średnia to zła liczba

Wymiarowanie pod średnią daje instalację, która przez miesiące chodzi wyśmienicie. Średnia jest niska, bo większość kamer przez większość czasu nic nie widzi, a zbudowany na niej budżet nie ma zapasu na popołudnie, gdy przyjeżdża dostawa, pies jest w ogrodzie, a wiatr się wzmaga – trzy kamery zajęte w tej samej sekundzie, i to w tej najważniejszej.

Użytecznym przypadkiem wymiarującym jest przypadek jednoczesny: wszystkie kamery, które wiarygodnie mogą mieć coś do roboty naraz, zajęte naraz, przy ustawionej liczbie klatek. Jeśli ten przypadek mieści się w jednej sekundzie czasu TPU, instalacja nie ma złych popołudni. Jeśli się nie mieści, błąd jest niewidoczny w dzienniku i oczywisty w brakującym nagraniu.

Co daje który detektor

Detektor Czas inferencji Inferencje/s Kamery przy 5 kl./s
Coral M.2 / PCIe ~7 ms 143 19
Coral USB w gnieździe USB 3.0 ~8 ms 125 16
Coral USB w gnieździe USB 2.0 ~22 ms 45 6
OpenVINO na iGPU Intela ~15 ms 66 8
Sam procesor, cztery rdzenie ~90 ms 11 1

Trzeci wiersz to najczęstsza rana zadana sobie samemu: ten sam moduł, ten sam model, ten sam kod, tylko w czarnym gnieździe zamiast niebieskiego – i jedna trzecia prędkości. Ostatni wiersz tłumaczy, dlaczego detektor procesorowy jest raczej dowodem wykonalności niż opcją: jedna kamera to nie instalacja.

Dwa akceleratory mniej więcej podwajają pułap, bo Frigate oddaje pracę temu detektorowi, który akurat jest wolny. Czego nie zmniejszają o połowę, opisuje kolejna część.

Wąskim gardłem zwykle nie jest TPU

Zanim klatka trafi do detektora, trzeba ją zdekodować, a dekodowanie to czysta praca procesora, której żaden akcelerator z tego budżetu nie dotyka. Dekodowanie podstrumienia 1280×720 przy 5 kl./s to drobne. Dekodowanie strumienia głównego 4K przy 20 kl./s kosztuje mniej więcej rdzeń na kamerę – dlatego instalacja z ośmioma kamerami potrafi położyć maszynę, podczas gdy TPU stoi na jedenastu procentach.

Układ, który tego unika, jest ten zwyczajny i wart wypowiedzenia wprost: detekcja idzie z podstrumienia, w rozdzielczości, którą kamera i tak nadaje, przy pięciu klatkach na sekundę. Nagrywanie idzie ze strumienia głównego i jest kopiowane, a nie kodowane od nowa – pełna rozdzielczość ląduje na dysku bez zdekodowania ani jednej klatki. Detektor nigdy nie widzi 4K i nigdy nie musi: człowieka znajduje się z kilkuset pikseli obrysu, a nagranie, które ktoś potem obejrzy, to nietknięty strumień główny.

Po czym poznać nasycenie

Frigate podaje dwie liczby rozstrzygające sprawę. Prędkość inferencji to liczba milisekund na detekcję; gdy rośnie ponad wartość z tabeli, akcelerator się dławi – Coral na USB, dostatecznie ciepły, by zwolnić, to w zamkniętej szafce widok znajomy. Liczba klatek detekcji to tempo faktycznie osiągane; gdy leży poniżej ustawionego, klatki trafiają do kolejki i są odrzucane.

Z zewnątrz obie usterki wyglądają tak samo, i to w sposób najmniej pomocny z możliwych: nagranie jest, oś czasu bez luk, a przy zdarzeniu po prostu nie wisi żaden obiekt. Nic nie padło głośno. Budżet był przekroczony przez cztery sekundy i były to dokładnie te cztery sekundy, na których zależało.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in Touch

Briefly describe your project or inquiry for a tailored response. This site is protected by reCAPTCHA.

Napisanie komentarza

Adres e-mail nie jest publikowany. Pola obowiązkowe oznaczono gwiazdką.

ALL ARTICLES & CATEGORIES

CCTV

Śledź tę kategorię przez RSS

Cloud & AI

Śledź tę kategorię przez RSS

Data Privacy

Wszystkie artykuły w tej kategorii (11) Śledź tę kategorię przez RSS

Digital Analytics

Wszystkie artykuły w tej kategorii (40) Śledź tę kategorię przez RSS

Digital Marketing

Wszystkie artykuły w tej kategorii (25) Śledź tę kategorię przez RSS

IT & Networks

Wszystkie artykuły w tej kategorii (13) Śledź tę kategorię przez RSS

Raspberry Pi

Śledź tę kategorię przez RSS

Smart Home

Śledź tę kategorię przez RSS

Tworzenie stron internetowych

Śledź tę kategorię przez RSS

Wtyczki i triki WordPress

Śledź tę kategorię przez RSS