Monitoring wideo AI na krawędzi sieci: Frigate NVR z Google Coral TPU
Część 1 z 2 serii Monitoring wizyjny na własnym sprzęcie

Spis treści
Tradycyjna detekcja ruchu w systemach monitoringu wizyjnego (CCTV) opiera się na prostych zmianach kontrastu pikseli pomiędzy kolejnymi klatkami wideo. To podstawowe podejście generuje ciągłe fałszywe alarmy wywoływane przez opady deszczu, spadające liście, kołyszące się drzewa lub przemieszczające się cienie. Przesyłanie strumieni wideo w wysokiej rozdzielczości do chmurowych interfejsów API analizy obrazu generuje wysokie opóźnienia, zagrożenia dla prywatności oraz znaczne koszty przepustowości. Wdrożenie systemu Frigate NVR lokalnie z wykorzystaniem akceleratora Google Coral Edge TPU umożliwia rozpoznawanie obiektów w czasie rzeczywistym z prędkością ponad 100 klatek na sekundę i czasem inferencji poniżej 10 milisekund. Fałszywe alarmy pogodowe zostają całkowicie wyeliminowane, a wszystkie nagrania wideo pozostają ściśle w lokalnej infrastrukturze serwerowej.
1. Architektura sprzętowa i akceleracja Coral TPU
System Frigate NVR oddziela proces dekodowania wideo od inferencji sztucznej inteligencji. Zastosowanie układu ASIC, takiego jak Google Coral Edge TPU, odciąża procesor główny (CPU) z zasobochłonnych obliczeń sieci neuronowych:
- Wybór interfejsu: Akceleratory Google Coral w wersjach M.2 i PCIe oferują maksymalną przepustowość dzięki bezpośredniemu dostępowi do magistrali. Moduły USB 3.0 wymagają natywnego kontrolera USB 3.0; podłączenie przez huby USB 2.0 powoduje krytyczne wąskie gardła wydajnościowe.
- Przepuszczanie do kontenera (Pass-Through): W środowiskach Docker lub Proxmox urządzenie USB (
/dev/bus/usb) lub węzeł PCIe (/dev/apex_0) musi być przekazywany bezpośrednio do kontenera Frigate bez warstw wirtualizacji pośredniczącej. - Akceleracja dekodowania: Dekodowanie wideo należy powierzyć zintegrowanym procesorom graficznym (Intel QuickSync przez
VAAPIlub NVIDIA NVDEC), aby utrzymać obciążenie CPU hosta poniżej 15% nawet przy wielu jednoczesnych strumieniach.
2. Strategia podwójnego strumienia (Dual-Stream)
Przesyłanie strumieni 4K bezpośrednio do detektora obiektów marnuje zasoby obliczeniowe, ponieważ standardowe modele AI operują na mniejszych macierzach obrazu. Optymalna architektura CCTV wymaga konfiguracji dwóch strumieni dla każdej kamery:
- Strumień detekcji (Sub-Stream): Konfiguracja strumienia pomocniczego kamery IP w niższej rozdzielczości (np.
640x360lub1280x720) z prędkością 5 klatek na sekundę (FPS). Strumień ten jest analizowany wyłącznie przez układ Coral TPU pod kątem wykrywania obiektów. - Strumień nagrywania (Main-Stream): Konfiguracja głównego strumienia RTSP w maksymalnej rozdzielczości (np.
3840x21604K) z prędkością 15–20 FPS. Strumień ten jest zapisywany na dysku bez transkodowania w momencie weryfikacji wykrytego obiektu.
3. Konfiguracja pliku YAML dla Frigate NVR krok po kroku
Poniższy produkcyjny plik konfiguracyjny definiuje detektor Edge TPU, włącza sprzętowe dekodowanie Intel QuickSync i ustawia topologię dwóch strumieni w celu precyzyjnego filtrowania ludzi, pojazdów oraz zwierząt:
mqtt:
host: 192.168.10.10
topic_prefix: frigate
detectors:
coral_tpu:
type: edgetpu
device: usb
ffmpeg:
# Wykorzystanie akceleracji sprzętowej Intel QuickSync do dekodowania wideo
hwaccel_args: preset-vaapi
objects:
track:
- person
- car
- dog
- cat
filters:
person:
min_score: 0.75
threshold: 0.80
cameras:
driveway_camera:
ffmpeg:
inputs:
- path: rtsp://viewer:SecretPassword@192.168.10.101:554/stream2
roles:
- detect
- path: rtsp://viewer:SecretPassword@192.168.10.101:554/stream1
roles:
- record
detect:
width: 1280
height: 720
fps: 5
record:
enabled: true
retain:
days: 7
mode: motion
events:
retain:
default: 30
mode: active_objects
4. Zaawansowane filtrowanie stref i eliminacja fałszywych alarmów
Aby zapobiec alarmom wywoływanym przez zaparkowane na stałe samochody lub ruch na ulicy publicznej, należy skonfigurować reguły przestrzenne w interfejsie graficznym Frigate:
- Maskowanie prywatności (Privacy Masking): Wyznaczenie wielokątnych masek wykluczeń na znacznikach czasu kamery, nakładkach tekstowych oraz poruszających się drzewach w celu eliminacji zbędnych cykli inferencji.
- Wyznaczanie stref (Zones): Zdefiniowanie precyzyjnych stref (np.
podjazd_prywatnyvs.ulica_publiczna). Konfiguracja powiadomień tak, aby alarm był wyzwalany dopiero, gdy dolny środek (Bottom-Center) ramki wykrycia obiektu przekroczy granicę strefy prywatnej. - Filtr obiektów stacjonarnych: Aktywacja śledzenia obiektów nieruchomych, co zapobiega wielokrotnemu wysyłaniu powiadomień przez pojazdy zaparkowane na podjeździe po ich pierwotnej klasyfikacji.
5. Podsumowanie i wartość architektoniczna
Co da się osiągnąć dzięki temu poradnikowi: Wdrożenie lokalnego, zasilanego sztuczną inteligencją systemu monitoringu CCTV przy użyciu Frigate NVR, sprzętowej akceleracji Google Coral Edge TPU oraz architektury podwójnego strumienia wideo.
Wynikająca z tego wartość: Fałszywe alarmy wywoływane przez deszcz, cienie czy roślinność zostają w 100% wyeliminowane dzięki weryfikacji obiektów przez sieci neuronowe. Lokalna inferencja Edge TPU gwarantuje czasy reakcji poniżej 10 milisekund bez opłat abonamentowych, bez zależności od chmury i przy pełnym zachowaniu prywatności. Jednocześnie odseparowanie strumieni detekcji i nagrywania zapewnia najwyższą jakość dowodową wideo 4K przy minimalnym obciążeniu procesora serwera.
Źródła
Monitoring wizyjny na własnym sprzęcie
- Monitoring wideo AI na krawędzi sieci: Frigate NVR z Google Coral TPU
- Okablowanie CCTV: PoE i kabel koncentryczny w porównaniu