Jak Frigate person detection działa w Home Assistant
Frigate to dodatek do Home Assistant, który zamienia strumień z kamery w dane, na których można budować automatyzacje. Zamiast nagrywać wszystko i liczyć, że ktoś to kiedyś przejrzy, system sam rozpoznaje, czy w kadrze pojawił się człowiek. Detekcja działa lokalnie, na własnym sprzęcie. Żadnej chmury, żadnego wysyłania obrazu na zewnątrz.
Pod spodem pracuje model detekcji obiektów, najczęściej Coral TPU albo GPU, który analizuje klatki wideo. Gdy wykryje obiekt, Frigate sprawdza, czy pasuje do zdefiniowanej kategorii, np. person, car czy dog. Dopiero potem uruchamiane są zdarzenia, które trafiają do Home Assistant przez integrację MQTT.
| Etap | Co się dzieje | Efekt w Home Assistant |
|---|---|---|
| Analiza klatki | Model sprawdza obecność obiektów na obrazie | Brak akcji, dopóki nic nie zostanie wykryte |
| Klasyfikacja | Obiekt dostaje etykietę, np. person | Powstaje zdarzenie z typem obiektu |
| Filtrowanie strefą | Sprawdzenie, czy obiekt jest w wyznaczonym obszarze | Zdarzenie przechodzi dalej tylko dla wybranej strefy |
| Publikacja MQTT | Frigate wysyła temat z danymi zdarzenia | Automacja może zareagować natychmiast |
Najważniejsze jest to, że Frigate nie analizuje każdej klatki z pełną dokładnością. Stosuje strefy i linie, żeby odfiltrować szum. Dzięki temu pies sąsiada przebiegający za płotem nie odpala alarmu. Diabeł tkwi w szczegółach konfiguracji.
Moim zdaniem detekcja po stronie Frigate działa lepiej niż natywne rozwiązania niektórych kamer, ponieważ daje pełną kontrolę nad tym, co i gdzie jest wykrywane, a przy tym nie zamyka użytkownika w jednym ekosystemie. Kamera może być dowolnej marki, byle dostarczała strumień RTSP.
A co jeśli się okaże, że kamera ma słaby procesor i sama nie radzi sobie z detekcją? Wtedy Frigate przejmuje to zadanie i całość działa sprawniej. Brzmi prosto. W praktyce wymaga jednak dopracowania stref i czułości.
Konfiguracja detekcji osób: model, czułość i wydajność
Frigate do wykrywania obiektów korzysta z modeli opartych na sieciach neuronowych, najczęściej z rodziny YOLO. Domyślny model w zupełności wystarcza do podstawowej detekcji, ale przy gorszym oświetleniu lub nietypowych kątach kamery warto rozważyć lżejszy albo cięższy wariant. Diabeł tkwi w szczegółach, bo źle dobrany model potrafi zjeść cały zapas mocy obliczeniowej.
Kluczowy parametr to próg pewności detekcji. Zbyt wysoki sprawia, że Frigate ignoruje realne zdarzenia, zbyt niski generuje mnóstwo fałszywych alarmów. Wartości w okolicach 0,5–0,6 sprawdzają się w większości scenariuszy, ale przy słabym kontraście warto zejść nieco niżej. Minimalny rozmiar obiektu to drugi filtr, który odsiewa pomyłki na małych fragmentach obrazu.
- Ustaw min_score na poziomie 0,5 i koryguj go dopiero po analizie nagrań.
- Zwiększ rozdzielczość strumienia detekcji, jeśli kamera łapie osoby z dużej odległości.
- Włącz detekcję tylko na wybranych kanałach, żeby nie obciążać procesora bez potrzeby.
- Testuj zmiany pojedynczo, inaczej nie ustalisz, co poprawiło skuteczność.
- Sprawdzaj obciążenie CPU i GPU po każdej modyfikacji modelu.
| Parametr | Zbyt niska wartość | Zbyt wysoka wartość | Efekt uboczny |
|---|---|---|---|
| Próg pewności | Fałszywe alarmy | Pomijanie zdarzeń | Więcej pracy przy przeglądaniu nagrań |
| Minimalny rozmiar | Detekcje cieni i liści | Brak reakcji na osoby z dystansu | Konieczna korekta po testach |
| Rozdzielczość detekcji | Słabe rozpoznawanie kształtów | Wysokie zużycie zasobów | Możliwe opóźnienia w analizie |
| Interwał klatek | Płynniejsza analiza | Pominięcie szybkich zdarzeń | Większe obciążenie sprzętu |
Moim zdaniem lżejszy model z wyższą rozdzielczością detekcji działa lepiej niż ciężki model na niskiej rozdzielczości, ponieważ liczba pikseli przypadających na sylwetkę ma większe znaczenie dla skuteczności niż sama złożoność sieci. Brzmi prosto, ale wielu użytkowników idzie na całość z najcięższym modelem i dziwi się, że serwer nie wyrabia.
Strefy w Frigate: precyzyjne wykrywanie obecności w wybranych obszarach
Domyślnie Frigate analizuje cały obraz z kamery. To oznacza, że każdy ruch na chodniku przed domem albo samochód przejeżdżający ulicą może wywołać alert. Strefy rozwiązują ten problem, bo pozwalają wskazać konkretne fragmenty kadru, które faktycznie cię interesują.
W konfiguracji definiujesz je jako wielokąty na obrazie kamery, podając współrzędne punktów. Frigate sprawdza wtedy, czy wykryty obiekt znajduje się w środku danego obszaru. Brzmi prosto. Diabeł tkwi w szczegółach, bo źle narysowana strefa potrafi wyciąć połowę podjazdu albo objąć sąsiednią działkę.
Typowy przykład: kamera patrzy na podjazd i fragment ulicy. Rysujesz strefę tylko na podjezdzie, ustawiasz ją na wykrywanie osób i samochodów, a przechodnie za płotem przestają generować powiadomienia. Proste posunięcie, a liczba fałszywych alarmów spada zauważalnie.
| Parametr strefy | Do czego służy | Kiedy zmienić |
|---|---|---|
| coordinates | Punkty wielokąta na obrazie | Gdy kamera zmieni kadr lub rozdzielczość |
| objects | Typy obiektów w danej strefie | Gdy chcesz osobno łapać osoby i auta |
| inertia | Liczba klatek wymagana do zaliczenia obecności | Gdy obiekt miga na granicy strefy |
| filters | Progi pewności dla konkretnej strefy | Gdy wykrycia są zbyt czułe lub zbyt rzadkie |
Moim zdaniem lepiej zdefiniować kilka mniejszych stref niż jedną wielką, ponieważ łatwiej wtedy przypisać różne automatyzacje do różnych obszarów. Osobna strefa na bramę, osobna na taras. Każda może mieć własny próg czułości i własny scenariusz reakcji.
A co jeśli ktoś stanie dokładnie na granicy dwóch stref? Wtedy warto podnieść parametr inertia, żeby pojedyncza klatka nie wywołała alarmu. To nie czarna magia, wystarczy kilka prób z podglądem na żywo.
Linie przekraczania: liczenie i alarmowanie o ruchu
Strefy mówią, gdzie coś się dzieje. Linie przekraczania odpowiadają na inne pytanie: w którą stronę i czy w ogóle ktoś przekroczył granicę. Frigate rysuje linię na kadrze, a każdy obiekt, który ją przetnie, dostaje zdarzenie z etykietą kierunku. Brzmi prosto. Tylko że diabeł tkwi w szczegółach.
Linia to odcinek zdefiniowany dwoma punktami na obrazie. Gdy środek bounding boxa obiektu przechodzi z jednej strony na drugą, Frigate zapisuje zdarzenie enter lub exit w zależności od kierunku. W praktyce liczy się nie sam moment przecięcia, a ścieżka obiektu między klatkami. Dlatego źle dobrana linia potrafi generować fałszywe alarmy albo, co gorsza, całkiem je wyciszyć.
Kilka rzeczy, które warto ustawić świadomie:
- Rysuj linię prostopadle do spodziewanego kierunku ruchu, nie pod skosem, bo skos zwiększa ryzyko podwójnego zliczenia.
- Ustaw min_area na tyle wysoko, żeby ptak albo liść nie odpalał zdarzenia, a na tyle nisko, żeby mały zwierzak domowy nadal był wykrywany, jeśli tego chcesz.
- Włącz opcję inertia, gdy obiekt porusza się szybko i potrafi „przeskoczyć” linię między klatkami bez przecięcia.
- Dla dwóch równoległych linii (np. wjazd i wyjazd) ustaw różne strefy, inaczej zdarzenia będą się nakładać.
- Testuj na nagraniach z różnych pór dnia, bo nocą kontrast spada i detekcja bywa mniej pewna.
Typowy przykład: masz podjazd i chcesz wiedzieć, kiedy samochód wjeżdża, a kiedy wyjeżdża. Jedna linia w poprzek podjazdu załatwia sprawę. Dwie linie po bokach już nie, bo pojazd przetnie obie i dostaniesz dwa zdarzenia o tym samym kierunku.
Moim zdaniem liczenie przekroczeń liniowych sprawdza się lepiej w wąskich przejściach niż w szerokich strefach, ponieważ wąski kadr ogranicza liczbę obiektów w tle i zmniejsza ryzyko fałszywych trafień. W otwartej przestrzeni strefy bywają skuteczniejsze, ale wymagają więcej strojenia.
Do automatyzacji w Home Assistant wystarczy nasłuchiwać na zdarzenie frigate/events i filtrować po typie oraz strefie. Wtedy alarm włącza się tylko wtedy, gdy ktoś faktycznie przekroczył granicę, a nie za każdym razem, gdy przeszedł obok. To zmienia wszystko.
Automatyzacje bezpieczeństwa w Home Assistant na bazie zdarzeń Frigate
Samo wykrycie osoby to dopiero początek. Prawdziwa wartość Frigate pojawia się dopiero wtedy, gdy zdarzenia trafiają do automatyzacji Home Assistant. Wtedy kamera przestaje być rejestratorem, a staje się elementem systemu, który reaguje.
Frigate publikuje zdarzenia przez MQTT. Każde zdarzenie zawiera typ obiektu, nazwę kamery, strefę i poziom pewności. Home Assistant odbiera to jako sensory binarne oraz atrybuty, po których można budować warunki. Diabeł tkwi w szczegółach, bo źle skonfigurowana automatyzacja potrafi wyć o każdym przechodniu na ulicy.
Typowy przykład: ktoś ustawia powiadomienie na person detected bez filtra strefy. Efekt? Telefon wibruje kilkadziesiąt razy dziennie, a po tygodniu użytkownik wyłącza cały system. Rozwiązanie jest proste: zawęź wyzwalacz do strefy wejściowej i dodaj warunek na czas przebywania.
| Wyzwalacz | Warunek | Akcja | Zastosowanie |
|---|---|---|---|
| Osoba w strefie wejściowej | Nieobecność domowników | Powiadomienie z podglądem | Monitoring nieobecności |
| Osoba w strefie podjazdu | Pora nocna | Zapalenie światła | Oświetlenie reaktywne |
| Przekroczenie linii | Tryb uzbrojenia aktywny | Alarm i nagranie | Ochrona obwodowa |
| Osoba w strefie prywatnej | Dowolny | Wyciszenie kamery | Ochrona sąsiada |
Moim zdaniem automatyzacje oparte na liniach działają lepiej niż te oparte wyłącznie na strefach, ponieważ linia daje jednoznaczny moment przekroczenia granicy. Strefa informuje tylko, że ktoś jest w środku. Przy strefach łatwo o fałszywe alarmy, gdy osoba stoi w miejscu albo wchodzi i wychodzi z pola widzenia.
Kilka zasad, które trzymają system użytecznym:
- Zawsze dodawaj warunek czasu, żeby dzienne przejścia nie budziły nikogo w nocy.
- Ustaw próg pewności detekcji odpowiednio do kamery, bo zbyt niski generuje śmieci.
- Łącz zdarzenia z trybem uzbrojenia, zamiast wysyłać powiadomienia bez przerwy.
- Testuj każdą automatyzację w trybie tylko powiadomień, zanim podłączysz alarm.
- Loguj zdarzenia do historii, żeby po fakcie sprawdzić, co zadziałało.
Bezpieczeństwo to nie jedna automatyzacja, a zestaw reguł. Brzmi prosto. Tylko że każda reguła wymaga dostrojenia pod konkretny dom i konkretne otoczenie kamery.
Najczęściej zadawane pytania (FAQ)
Zebrałam pytania, które wracają najczęściej przy konfiguracji detekcji osób w Frigate. Odpowiedzi są krótkie i konkretne, żeby dało się je zastosować od razu, bez przekopywania dokumentacji.
Czy strefy działają bez detekcji obiektów? Nie. Strefy to warstwa filtrowania na tym, co już wykrył model. Jeśli detekcja jest wyłączona dla danej kamery, strefa nic nie zrobi. Najpierw detekcja, potem strefy i linie szerzej opisaliśmy to w artykule "Frigate nvr instalacja home assistant os".
Krótkie odpowiedzi na typowe wątpliwości
- Strefa definiuje obszar, w którym zdarzenie jest istotne, a linia wykrywa przekroczenie granicy w określonym kierunku.
- Maska ruchu nie zastępuje strefy, ogranicza tylko analizę do wybranego fragmentu kadru.
- Automatyzacja w Home Assistant może reagować na zdarzenie z Frigate przez MQTT albo przez integrację.
- Zbyt czułe progi generują fałszywe alarmy, zbyt wysokie gubią realne zdarzenia.
- Nagrania warto trzymać na osobnym dysku, żeby zapis nie konkurował z systemem.
Wyobraź sobie sytuację, w której kamera łapie przechodniów na chodniku obok posesji. Strefa obejmująca tylko podjazd odcina te zdarzenia, a linia na furtce dodaje drugi warunek. Efekt: powiadomienie przychodzi wtedy, gdy ktoś faktycznie wchodzi na teren.
Szybkie zestawienie parametrów
| Element | Do czego służy | Kiedy go użyć | Typowy błąd |
|---|---|---|---|
| Strefa | Filtruje zdarzenia po obszarze kadru | Gdy chcesz ograniczyć detekcję do konkretnego terenu | Zbyt duży obszar łapie ruch z ulicy |
| Linia | Wykrywa przekroczenie granicy i kierunek | Przy furtce, bramie lub wejściu | Brak kierunku daje podwójne zdarzenia |
| Maska ruchu | Wyklucza fragmenty kadru z analizy | Gdy drzewo albo flaga generują fałszywy ruch | Maska zasłania realny obszar wejścia |
| Automatyzacja | Reaguje na zdarzenie i uruchamia akcję | Gdy chcesz powiadomienie, światło lub alarm | Brak warunku czasu dla trybu dziennego |
Moim zdaniem strefy i linie lepiej łączyć niż stawiać na jeden mechanizm, ponieważ strefa daje kontekst miejsca, a linia precyzję momentu. Samodzielnie żadne z nich nie odsieje wszystkich fałszywych alarmów. Diabeł tkwi w szczegółach, czyli w kalibracji progów pod konkretny kadr.
Reszta ustawień zależy już od instalacji i tego, jak masz ułożone kamery. Jeśli dopiero zaczynasz, zacznij od jednej strefy i jednej linii, sprawdź je przez kilka dni, a potem dokładaj kolejne. Pośpiech przy konfiguracji zwykle kończy się lawiną powiadomień.
Komentarze (0)
Dodaj komentarz